{"version":3,"sources":["../../src/bridge/module.js","../../src/bridge/services/AndroidBridge.js","../../src/bridge/services/Bridge.js","../../src/bridge/services/CustomModuleRunService.js","../../src/bridge/services/IosBridge.js","../../src/bridge/services/PrmBridge.js","../../src/bridge/services/WebBridge.js","../../src/bridge/services/XamarinBridge.js"],"names":["angular","module","factory","XamarinBridge","_","cloneDeep","$log","IosBridge","AndroidBridge","WebBridge","PrmBridge","DeviceSettings","getLog","delegate","isStandaloneBrowser","info","isIos","isAndroid","isPrm","window","$injector","hasRun","runFns","add","fn","Error","push","run","forEach","invoke","$rootScope","onNavigate","noop","changeUserInfo","setupPage","setHeaderMode","goBack","pageFinished","pickMedia","updateSettings","settings","JSON","stringify","createModalAlert","alert","error","title","message","closeSearchHeader","updateBadges","updatePageIndicator","overriddenMessages","debugModeToggled","updateInactivityTimeout","scanBarcode","on","event","$scope","removerEventListener","$on","e","args","handler","$evalAsync","fireEvent","data","$broadcast","$timeout","HostedBridgeService","getBridge","eventName","navigate","appRoute","route","transition","command","Route","Page","State","state","ListUiControlName","listUiControlName","Options","opts","PageOptions","pageOpts","console","warn","addEventListener","handlerForScope","removeEventListener","jsonWebToken","clientUrl","userId","UserInfo","JsonWebToken","ClientUrl","UserId","s","isArray","nativeSettings","mode","id","buttonText","Id","SaveButtonText","itemCount","currentItem","useLastHeader","fileKey","logData","slice","call","debugMessage","extraInfo","userInactivityTimeout","timeout"],"mappings":"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","file":"aprima-bridge.min.js","sourcesContent":["angular.module('aprima-bridge', [\r\n //aprima\r\n 'aprima-core',\r\n\r\n //third party\r\n 'lodash']);","angular.module('aprima-bridge').factory('AndroidBridge', ['XamarinBridge', '_', function (XamarinBridge, _) {\r\n 'use strict';\r\n\r\n var androidBridge = _.cloneDeep(XamarinBridge);\r\n\r\n //add properties unique to android here\r\n\r\n return androidBridge;\r\n}]);\r\n","angular.module('aprima-bridge').factory('Bridge',\r\n ['$log', 'IosBridge', 'AndroidBridge', 'WebBridge', 'PrmBridge', 'DeviceSettings',\r\n function ($log, IosBridge, AndroidBridge, WebBridge, PrmBridge, DeviceSettings) {\r\n\r\n 'use strict';\r\n\r\n var getLog = function() {\r\n return $log.delegate || $log; \r\n };\r\n\r\n if (DeviceSettings.isStandaloneBrowser) {\r\n getLog().info('Using WebBridge for standalone browser');\r\n return WebBridge;\r\n }\r\n else if (DeviceSettings.isIos) {\r\n getLog().info('Using iOSBridge');\r\n return IosBridge;\r\n }\r\n else if (DeviceSettings.isAndroid) {\r\n getLog().info('Using AndroidBridge');\r\n return AndroidBridge;\r\n }\r\n else if (DeviceSettings.isPrm) {\r\n getLog().info('Using PrmBridge');\r\n return PrmBridge;\r\n }\r\n else {\r\n getLog().info('Using WebBridge');\r\n return WebBridge;\r\n }\r\n }]);\r\n\r\n","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-bridge').factory('CustomModuleRunService', [\r\n '$injector',\r\n CustomModuleRunService,\r\n ]);\r\n\r\n function CustomModuleRunService(\r\n $injector\r\n ) {\r\n var hasRun = false;\r\n var runFns = [];\r\n\r\n return {\r\n add: add,\r\n run: run,\r\n };\r\n\r\n function add(fn) {\r\n if (hasRun) {\r\n throw new Error('CustomModuleRunService has already run');\r\n }\r\n runFns.push(fn);\r\n }\r\n\r\n function run() {\r\n if (hasRun) {\r\n throw new Error('CustomModuleRunService has already run');\r\n }\r\n hasRun = true;\r\n runFns.forEach($injector.invoke);\r\n }\r\n }\r\n})(window.angular);\r\n","angular.module('aprima-bridge').factory('IosBridge',\r\n ['XamarinBridge', '_', function (XamarinBridge, _) {\r\n 'use strict';\r\n\r\n var iosBridge = _.cloneDeep(XamarinBridge);\r\n\r\n //add properties unique to android here\r\n\r\n return iosBridge;\r\n }]);\r\n","angular.module('aprima-bridge').factory('PrmBridge', ['XamarinBridge', '_', function (XamarinBridge, _) {\r\n 'use strict';\r\n\r\n var prmBridge = _.cloneDeep(XamarinBridge);\r\n\r\n //add properties unique to prm here\r\n\r\n return prmBridge;\r\n}]);\r\n","angular.module('aprima-bridge').factory('WebBridge',\r\n ['$rootScope', '$log',\r\n function ($rootScope, $log) {\r\n 'use strict';\r\n \r\n var getLog = function() {\r\n return $log.delegate || $log; \r\n };\r\n \r\n var _updateSettings = function (settings) {\r\n getLog().info('calling web bridge: settings = ' + JSON.stringify(settings));\r\n };\r\n\r\n var _modalAlert = function (alert) {\r\n getLog().error('WebBridge.createModalAlert ----------');\r\n getLog().error('alert.title = ' + alert.title);\r\n getLog().error('alert.message = ' + alert.message);\r\n };\r\n\r\n return {\r\n onNavigate: angular.noop,\r\n changeUserInfo: angular.noop,\r\n setupPage: angular.noop,\r\n setHeaderMode: angular.noop,\r\n goBack: angular.noop,\r\n pageFinished: angular.noop,\r\n pickMedia: angular.noop,\r\n updateSettings: _updateSettings,\r\n createModalAlert: _modalAlert,\r\n closeSearchHeader: angular.noop,\r\n updateBadges: angular.noop,\r\n updatePageIndicator: angular.noop,\r\n overriddenMessages: angular.noop,\r\n debugModeToggled: angular.noop,\r\n updateInactivityTimeout: angular.noop,\r\n scanBarcode: angular.noop,\r\n\r\n on: function (event, $scope, fn) {\r\n //handles events received from the getBridge() and removes the event when the scope is destroyed\r\n var handlerForScope = function (e, args) {\r\n\r\n function handler () {\r\n fn(args);\r\n }\r\n\r\n if($scope && $scope.$evalAsync) {\r\n $scope.$evalAsync(function() {\r\n handler();\r\n });\r\n }\r\n else {\r\n handler();\r\n }\r\n };\r\n\r\n var removerEventListener = $rootScope.$on(event, handlerForScope);\r\n\r\n if($scope){\r\n $scope.$on('$destroy', function () {\r\n getLog().info('removing listener from bridge due to $scope.$destroy event');\r\n removerEventListener();\r\n $scope = fn = null;\r\n });\r\n }\r\n\r\n return removerEventListener;\r\n },\r\n //only for the webbridge\r\n fireEvent: function (event, data) {\r\n $rootScope.$broadcast(event, data); \r\n } \r\n };\r\n }]);\r\n","angular.module('aprima-bridge').factory('XamarinBridge',\r\n ['$timeout', '_', 'HostedBridgeService', function ($timeout, _, HostedBridgeService) {\r\n 'use strict';\r\n\r\n var getBridge = function () {\r\n return HostedBridgeService;\r\n };\r\n\r\n return {\r\n fireEvent: function fireEvent(eventName, data){\r\n getBridge().fireEvent(eventName, data);\r\n },\r\n navigate: function (appRoute, route, transition) {\r\n try {\r\n getBridge().fireEvent('navigate', {\r\n command: {\r\n Route: route,\r\n Page: '/index.html',\r\n State: appRoute.state,\r\n ListUiControlName: appRoute.listUiControlName,\r\n Options: JSON.stringify(transition.opts),\r\n PageOptions: JSON.stringify(transition.pageOpts)\r\n }\r\n });\r\n }\r\n catch (e) {\r\n console.warn(e.message);\r\n }\r\n },\r\n\r\n onNavigate: function (fn) {\r\n getBridge().addEventListener('navigate', fn);\r\n },\r\n\r\n on: function (event, $scope, fn) {\r\n //handles events received from the getBridge() and removes the event when the scope is destroyed\r\n\r\n var handlerForScope = function (args) {\r\n\r\n function handler () {\r\n fn(args);\r\n }\r\n\r\n if($scope && $scope.$evalAsync) {\r\n $scope.$evalAsync(function() {\r\n handler();\r\n });\r\n }\r\n else {\r\n handler();\r\n }\r\n };\r\n\r\n var removeEventListener = function(){\r\n getBridge().removeEventListener(event, handlerForScope);\r\n\r\n //only allow this function to be called once\r\n removeEventListener = angular.noop;\r\n };\r\n\r\n if ($scope) {\r\n $scope.$on('$destroy', function () {\r\n removeEventListener();\r\n });\r\n }\r\n\r\n getBridge().addEventListener(event, handlerForScope);\r\n\r\n return removeEventListener;\r\n },\r\n\r\n changeUserInfo: function (jsonWebToken, clientUrl, userId) {\r\n getBridge().fireEvent('changeUserInfo', {UserInfo: {\r\n JsonWebToken: jsonWebToken,\r\n ClientUrl: clientUrl,\r\n UserId: userId\r\n }});\r\n },\r\n\r\n updateSettings: function (s) {\r\n var settings = [];\r\n if (_.isArray(s) === false) {\r\n settings.push(s);\r\n }\r\n else {\r\n settings = s;\r\n }\r\n\r\n getBridge().fireEvent('updateSettings', {settings: settings});\r\n },\r\n\r\n setupPage: function (nativeSettings) {\r\n getBridge().fireEvent('setupPage', nativeSettings);\r\n },\r\n setHeaderMode: function (mode) {\r\n getBridge().fireEvent('setHeaderMode', {\r\n mode: mode\r\n });\r\n },\r\n\r\n createModalAlert: function (args) {\r\n getBridge().fireEvent('createModalAlert', args);\r\n },\r\n\r\n closeSearchHeader: function () {\r\n getBridge().fireEvent('closeSearchHeader', {});\r\n },\r\n goBack: function () {\r\n getBridge().fireEvent('goBack', {});\r\n },\r\n pageFinished: function () {\r\n $timeout(function(){\r\n getBridge().fireEvent('pagefinished', {});\r\n }, 0);\r\n },\r\n pickMedia: function (id, buttonText) {\r\n getBridge().fireEvent('pickMedia', {Id: id, SaveButtonText: buttonText});\r\n },\r\n updateBadges: function() {\r\n getBridge().fireEvent('updateBadges', {});\r\n },\r\n updatePageIndicator: function(itemCount, currentItem, useLastHeader) {\r\n getBridge().fireEvent('updatePageIndicator', { itemCount: itemCount, currentItem: currentItem, useLastHeader: useLastHeader});\r\n }, \r\n overriddenMessages: function(args) { \r\n getBridge().fireEvent('overriddenMessages', {fileKey: args[1], logData: JSON.stringify([].slice.call(args, 2)) });\r\n },\r\n debugModeToggled: function(args){\r\n getBridge().fireEvent('debugModeToggled', {debugMessage: args[0],fileKey: args[1], extraInfo: JSON.stringify([].slice.call(args,2))});\r\n },\r\n updateInactivityTimeout: function(userInactivityTimeout) {\r\n getBridge().fireEvent('updateInactivityTimeout', { timeout: userInactivityTimeout });\r\n },\r\n scanBarcode: function(id) {\r\n getBridge().fireEvent('scanBarcode', {Id: id});\r\n },\r\n };\r\n }]);\r\n"]}