{"version":3,"sources":["../../src/core/module.js","../../src/core/config/Mathtruncpolyfill.js","../../src/core/config/qallsettled.js","../../src/core/constants/GeneralNoteTypeKeys.js","../../src/core/constants/MedicationHistoryFilterSubtype.js","../../src/core/constants/PrmState.js","../../src/core/filters/apExprFilter.js","../../src/core/filters/formatNum.js","../../src/core/filters/hasKeys.js","../../src/core/filters/hasNoKeys.js","../../src/core/services/BrowserService.js","../../src/core/services/DeviceSettings.js","../../src/core/services/Guid.js","../../src/core/services/SingleAccessSet.js","../../src/core/services/StrConvert.js"],"names":["angular","module","Math","isFinite","config","trunc","v","window","$provide","decorator","$delegate","$q","allSettled","promises","wrapped","isArray","forEach","promise","key","hasOwnProperty","when","then","value","state","reason","wrap","all","Object","generalNoteTypeKeys","readonlyProp","val","writable","enumerable","configurable","defineProperties","DrugScreeningOverrideReason","MedicationConsent","SigPharmacyInstructions","SigInternalNotes","MedicalDeviceHistoryNotes","DrugDiscontinueOverrideReason","DrugReactionReason","RxChangeMessageResponseComment","constant","Default","Rx","Fnc","HxTab","RxTab","History","Patient","Medication","Message","ManualRxRefill","filter","$parse","_","parsedExpression","locals","expressionDefinition","arguments","tail","index","isObject","assign","apply","NumUtil","format","input","keys","length","hasKeys","factory","$window","$log","DeviceSettings","ie","navigator","userAgent","match","ie11","ieEDGE","ieVer","base64ToBlob","base64String","contentType","byteCharacters","atob","byteArray","Array","i","charCodeAt","byteArrayInt","Uint8Array","Blob","type","isBlobCompatible","isIE","saveBlob","document","blobObj","fileName","msSaveBlob","downloadLink","createElement","download","href","URL","createObjectURL","onclick","e","body","removeChild","target","style","display","appendChild","click","downloadDocumentToFile","fileNameToSaveAs","isLegacyIE","supportsInlinePdf","isIos","isAndroid","DeviceSettingsFactory","DeviceSettingsRepository","provider","$get","Guid","newGuid","replace","c","r","random","toString","empty","SingleAccessSet","this","set","prototype","add","contains","exists","replaceNewLine","str","newVal","oldVal","isString","valToReplace","isNil","replacement"],"mappings":"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","file":"aprima-core.min.js","sourcesContent":["angular.module('aprima-core', [\r\n 'lodash', \r\n]);\r\n","(function(angular, Math, isFinite) {\r\n 'use strict';\r\n\r\n // according to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc\r\n // ie doesn't support Math.trunc(), so this is a polyfill for it; it's listed at the bottom of the linked page\r\n \r\n angular.module('aprima-core').config([\r\n MathTruncPolyfill,\r\n ]);\r\n\r\n function MathTruncPolyfill() {\r\n if (!Math.trunc) {\r\n Math.trunc = function(v) {\r\n v = +v;\r\n if (!isFinite(v)) return v;\r\n\r\n return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0);\r\n\r\n // returns:\r\n // 0 -> 0\r\n // -0 -> -0\r\n // 0.2 -> 0\r\n // -0.2 -> -0\r\n // 0.7 -> 0\r\n // -0.7 -> -0\r\n // Infinity -> Infinity\r\n // -Infinity -> -Infinity\r\n // NaN -> NaN\r\n // null -> 0\r\n };\r\n }\r\n }\r\n \r\n})(window.angular, window.Math, window.isFinite);\r\n","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-core').config([\r\n '$provide',\r\n QAllSettled,\r\n ]);\r\n\r\n function QAllSettled($provide) {\r\n // https://stackoverflow.com/questions/18888104/angularjs-q-wait-for-all-even-when-1-rejected\r\n $provide.decorator('$q', [\r\n '$delegate',\r\n addAllSettled,\r\n ]);\r\n\r\n function addAllSettled($delegate) {\r\n var $q = $delegate;\r\n\r\n $q.allSettled = $q.allSettled || allSettled;\r\n\r\n return $q;\r\n\r\n function allSettled(promises) {\r\n // Implementation of allSettled function from Kris Kowal's Q:\r\n // https://github.com/kriskowal/q/wiki/API-Reference#promiseallsettled\r\n\r\n var wrapped = angular.isArray(promises) ? [] : {};\r\n\r\n angular.forEach(promises, function(promise, key) {\r\n if (!wrapped.hasOwnProperty(key)) {\r\n wrapped[key] = wrap(promise);\r\n }\r\n });\r\n\r\n return $q.all(wrapped);\r\n }\r\n\r\n function wrap(promise) {\r\n return $q.when(promise)\r\n .then(function (value) {\r\n return { state: 'fulfilled', value: value };\r\n }, function (reason) {\r\n return { state: 'rejected', reason: reason };\r\n });\r\n }\r\n }\r\n }\r\n})(window.angular);","(function(angular, Object) {\r\n 'use strict';\r\n\r\n // Add to this as necessary\r\n var generalNoteTypeKeys = {};\r\n Object.defineProperties(generalNoteTypeKeys, {\r\n DrugScreeningOverrideReason: readonlyProp('Medication_Override'),\r\n MedicationConsent: readonlyProp('MedicationConsent'),\r\n SigPharmacyInstructions: readonlyProp('Sig_Item'),\r\n SigInternalNotes: readonlyProp('SigInternal'),\r\n MedicalDeviceHistoryNotes: readonlyProp('MEDICALDEVICE-HISTORY'),\r\n DrugDiscontinueOverrideReason: readonlyProp('RX_Discontinue'),\r\n DrugReactionReason: readonlyProp('DrugReaction'),\r\n RxChangeMessageResponseComment:readonlyProp('RXChangeResponseComment'),\r\n });\r\n\r\n function readonlyProp(val) {\r\n return {\r\n value: val,\r\n writable: false,\r\n enumerable: true,\r\n configurable: false,\r\n };\r\n }\r\n\r\n angular.module('aprima-core').constant('GeneralNoteTypeKeys', generalNoteTypeKeys);\r\n\r\n})(window.angular, window.Object);\r\n"," angular.module('aprima-core').constant('MedicationHistoryFilterSubtype', {\r\n Default: 0,\r\n Rx: 1 \r\n });\r\n\r\n"," angular.module('aprima-core').constant('PrmState', {\r\n Fnc: {\r\n HxTab: 'HxTab',\r\n RxTab: 'RxTab',\r\n },\r\n History: {\r\n Patient: {\r\n Medication: 'PatientMedicationHistory'\r\n }\r\n },\r\n Message: {\r\n ManualRxRefill: 'ManualRxRefillMessage'\r\n }\r\n });\r\n\r\n","// Filter that allows angular expressions and has lodash(_) in its context\r\n\r\n// It converts angular expression to a function, \r\n// and then delegates to the default angular 'filter' with this function\r\n\r\n// Usage: \r\n// $scope.items = [{a: 1}, {a: {b: 1}}, {a: {b: 2}}, {a: 2}, {a: 3}];\r\n// $scope.scopeValue = 2;\r\n// ng-repeat=\"item in items | apExprFilter:'!_.isObject($exprItem.a)'\"\r\n// => [{a: 1}, {a: 2}, {a: 3}]\r\n// ng-repeat=\"item in items | apExprFilter:'_.isObject($exprItem.a)'\"\r\n// => [{a: {b: 1}}, {a: {b: 2}}]\r\n\r\n// Parameterized (because this filter doesn't know anything about the scope, and it shouldn't, but if we pass values in, then it can use those):\r\n// Array:\r\n// $0, $1, $2, etc. are locals to the expression that correspond to the other values in the array in order\r\n// ng-repeat=\"item in items | apExprFilter:['$exprItem.a === $0', scopeValue]\"\r\n// => '$exprItem.a === 2'\r\n// => [{a: 2}]\r\n// Object:\r\n// the expression should be expr property of object, the other properties become locals to the expression\r\n// ng-repeat=\"item in items | apExprFilter:{expr: '$exprItem.a === someProperty', someProperty: scopeValue}\"\r\n// => '$exprItem.a === 2'\r\n// => [{a: 2}]\r\n\r\nangular.module('aprima-core').filter('apExprFilter', ['filterFilter', '$parse', '_', function(filter, $parse, _) {\r\n 'use strict';\r\n\r\n var localKeyPrefix = '$';\r\n var localItemKey = '$exprItem';\r\n var exprKey = 'expr';\r\n\r\n return _filter;\r\n\r\n function _filter() {\r\n var locals = {\r\n _: _\r\n };\r\n var expressionDefinition = arguments[1];\r\n var parsedExpression;\r\n\r\n if(_.isArray(expressionDefinition)) {\r\n parsedExpression = $parse(expressionDefinition[0]);\r\n _(expressionDefinition).tail().forEach(function(value, index) {\r\n locals[localKeyPrefix + index] = value;\r\n });\r\n }\r\n else if(_.isObject(expressionDefinition)) {\r\n parsedExpression = $parse(expressionDefinition[exprKey]);\r\n delete expressionDefinition[exprKey];\r\n _.assign(locals, expressionDefinition);\r\n }\r\n else {\r\n parsedExpression = $parse(expressionDefinition);\r\n }\r\n\r\n arguments[1] = filterExpression;\r\n return filter.apply(null, arguments);\r\n\r\n function filterExpression(value) {\r\n locals[localItemKey] = value;\r\n return parsedExpression(locals);\r\n }\r\n }\r\n}]);\r\n","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-core').filter('formatNum', [\r\n 'NumUtil',\r\n formatNum,\r\n ]);\r\n\r\n function formatNum(\r\n NumUtil\r\n ) {\r\n return NumUtil.format;\r\n }\r\n\r\n})(window.angular);\r\n","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-core').filter('hasKeys', [\r\n '_',\r\n hasKeysFactory,\r\n ]);\r\n\r\n function hasKeysFactory(\r\n _\r\n ) {\r\n\r\n return hasKeys;\r\n\r\n\r\n function hasKeys(input) {\r\n var keys = _.keys(input);\r\n return keys && keys.length;\r\n }\r\n }\r\n\r\n})(window.angular);","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-core').filter('hasNoKeys', [\r\n 'hasKeysFilter',\r\n hasNoKeysFactory,\r\n ]);\r\n\r\n function hasNoKeysFactory(\r\n hasKeys\r\n ) {\r\n\r\n return hasNoKeys;\r\n\r\n\r\n function hasNoKeys(input) {\r\n var result = !hasKeys(input);\r\n return result;\r\n }\r\n }\r\n\r\n})(window.angular);","angular.module('aprima-core').factory('BrowserService',\r\n [\r\n '$window',\r\n '$log',\r\n 'DeviceSettings', \r\n function (\r\n $window, \r\n $log,\r\n DeviceSettings\r\n ) {\r\n 'use strict';\r\n\r\n var ie = navigator.userAgent.match(/MSIE\\s([\\d.]+)/),\r\n ie11 = navigator.userAgent.match(/Trident\\/7.0/) && navigator.userAgent.match(/rv:11/),\r\n ieEDGE = navigator.userAgent.match(/Edge/g),\r\n ieVer = (ie ? ie[1] : (ie11 ? 11 : (ieEDGE ? 12 : -1)));\r\n\r\n function base64ToBlob(base64String, contentType){\r\n var byteCharacters = atob(base64String);\r\n var byteArray = new Array(byteCharacters.length);\r\n\r\n for (var i = 0; i < byteCharacters.length; i++) {\r\n byteArray[i] = byteCharacters.charCodeAt(i);\r\n }\r\n var byteArrayInt = new Uint8Array(byteArray);\r\n\r\n return new Blob([byteArrayInt], {type: contentType});\r\n }\r\n\r\n function downloadDocumentToFile(fileNameToSaveAs, base64String, contentType, document){\r\n if (!isBlobCompatible()) {\r\n return;\r\n }\r\n\r\n var blob = base64ToBlob(base64String, contentType);\r\n saveBlob(document, blob, fileNameToSaveAs);\r\n }\r\n\r\n function isBlobCompatible(){\r\n if (ie && ieVer<10) {\r\n $log('No blobs on IE ver<10');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n function isLegacyIE() {\r\n return !!(ie || ie11);\r\n }\r\n\r\n function isIE(){\r\n return !!(ie || ie11 || ieEDGE);\r\n }\r\n\r\n function saveBlob(document, blobObj, fileName) {\r\n if (ieVer > -1) {\r\n $window.navigator.msSaveBlob(blobObj, fileName);\r\n\r\n } else {\r\n var downloadLink = document.createElement('a');\r\n downloadLink.download = fileName;\r\n downloadLink.href = $window.URL.createObjectURL(blobObj);\r\n downloadLink.onclick = function (e) {\r\n document.body.removeChild(e.target);\r\n };\r\n downloadLink.style.display = 'none';\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n }\r\n }\r\n\r\n function supportsInlinePdf() {\r\n if (isIE() || DeviceSettings.isIos || DeviceSettings.isAndroid) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n return {\r\n base64ToBlob : base64ToBlob,\r\n downloadDocumentToFile : downloadDocumentToFile,\r\n isBlobCompatible: isBlobCompatible,\r\n isIE: isIE,\r\n isLegacyIE: isLegacyIE,\r\n saveBlob: saveBlob,\r\n supportsInlinePdf: supportsInlinePdf,\r\n };\r\n }\r\n ]);","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-core').provider('DeviceSettings', [\r\n DeviceSettingsProvider,\r\n ]);\r\n\r\n function DeviceSettingsProvider() {\r\n return {\r\n $get: [\r\n 'DeviceSettingsRepository',\r\n DeviceSettingsFactory,\r\n ],\r\n };\r\n }\r\n\r\n function DeviceSettingsFactory(DeviceSettingsRepository) {\r\n return DeviceSettingsRepository;\r\n }\r\n})(angular);\r\n","angular.module('aprima-core').factory('Guid', [\r\n function() {\r\n 'use strict';\r\n var Guid = {};\r\n Guid.newGuid = function newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n Guid.empty = function empty() {\r\n return '00000000-0000-0000-0000-000000000000';\r\n };\r\n return Guid;\r\n }\r\n]);","/*\r\nA set that allows adding values and checking if it contains a value. contains() removes the item from the list.\r\n */\r\nangular.module('aprima-core').factory('SingleAccessSet', [function() {\r\n 'use strict';\r\n\r\n function SingleAccessSet() {\r\n this.set = {};\r\n }\r\n\r\n SingleAccessSet.prototype.add = function add(key) {\r\n this.set[key] = true;\r\n };\r\n\r\n SingleAccessSet.prototype.contains = function contains(key) {\r\n var exists = !!this.set[key];\r\n delete this.set[key];\r\n return exists;\r\n };\r\n\r\n return SingleAccessSet;\r\n}]);","(function(angular) {\r\n 'use strict';\r\n\r\n angular.module('aprima-core').factory('StrConvert', [\r\n '_',\r\n StrConvert,\r\n ]);\r\n\r\n function StrConvert(\r\n _\r\n ) {\r\n\r\n var service = {\r\n replaceNewLine: replaceNewLine,\r\n };\r\n\r\n return service;\r\n\r\n function replaceNewLine(str, newVal, oldVal) {\r\n if(!str || !_.isString(str)) {\r\n return str;\r\n }\r\n\r\n var valToReplace = _.isNil(oldVal) ? /(\\r\\n|\\r|\\n)/g : oldVal;\r\n var replacement = _.isNil(newVal) ? '
' : newVal;\r\n\r\n var result = str.replace(valToReplace, replacement);\r\n return result;\r\n }\r\n }\r\n})(window.angular);\r\n"]}