{"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","trackPageChange","location","debug","pad","trackEvent","category","action","label","value","trackException","message","trackTiming","timingValue","page","changeUserInfo","setupPage","setHeaderMode","goBack","logoff","pageFinished","pickMedia","updateSettings","settings","JSON","stringify","createModalAlert","alert","error","title","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","msg","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 trackPageChange: function(location) {\r\n getLog().debug('Page Change: ' + _.pad(location, 30));\r\n },\r\n trackEvent: function(category, action, label, value) {\r\n getLog().debug('Event: ' + _.pad(category, 20) + ' | ' + _.pad(action, 20) + ' | ' + _.pad(label, 20) + ' | ' + _.pad(value, 20));\r\n },\r\n trackException: function(message) {\r\n getLog().debug('Exception: ' + message);\r\n },\r\n trackTiming: function(category, label, timingValue, page) {\r\n getLog().debug('Timing: ' + _.pad(page, 30) + ' | ' + _.pad(category, 7) + ' | ' + _.pad(label, 30) + ' | ' + _.pad(timingValue, 5) + 'ms');\r\n },\r\n \r\n changeUserInfo: angular.noop,\r\n setupPage: angular.noop,\r\n setHeaderMode: angular.noop,\r\n goBack: angular.noop,\r\n logoff: 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 trackPageChange: function (location) {\r\n getBridge().fireEvent('trackPageChange', {page: location});\r\n },\r\n\r\n trackException: function (msg) {\r\n getBridge().fireEvent('trackException', {message: msg});\r\n },\r\n\r\n trackEvent: function (category, action, label, value) {\r\n getBridge().fireEvent('trackEvent', {\r\n category: category || '',\r\n action: action || '',\r\n label: label || '',\r\n value: value || ''\r\n });\r\n },\r\n\r\n trackTiming: function (category, label, value, page) {\r\n getBridge().fireEvent('trackTiming', {\r\n category: category || '',\r\n label: label || '',\r\n value: value || '',\r\n page: page || ''\r\n\r\n });\r\n },\r\n\r\n logoff: function (message) {\r\n getBridge().fireEvent('logoff', {message: message});\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"]}