{"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"]}