{"version":3,"sources":["webpack://ng-currency/webpack/universalModuleDefinition","webpack://ng-currency/webpack/bootstrap","webpack://ng-currency/external \"angular\"","webpack://ng-currency/./ng-currency-settings.provider.js","webpack://ng-currency/./ng-currency.directive.js","webpack://ng-currency/./ng-currency.module.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","ngCurrencySettings","_classCallCheck","this","_defaults","fraction","hardCap","min","undefined","max","currencySymbol","provider","defaults","ngCurrency","$filter","$locale","$timeout","link","scope","element","attrs","controller","_ngCurrencySettings$d","ngRequired","required","active","reformat","updateOn","debounce","$options","getOption","$viewValue","$parsers","length","$$rawModelValue","$formatters","$render","revalidate","$validate","keepInRange","$setViewValue","toFixed","$commitViewValue","decimalRex","dChar","RegExp","clearValue","replaceSeparator","arguments","String","decimalSeparator","NUMBER_FORMATS","DECIMAL_SEP","cleared","neg_dummy","getCurrencySymbol","neg_regexp","GROUP_SEP","replace","exec","test","match","join","CURRENCY_SYM","$observe","Number","$emit","push","indexOf","$validators","isNaN","$on","triggerHandler","$inject","angular","directive"],"mappings":"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","file":"ng-currency.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ng-currency\", [\"angular\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ng-currency\"] = factory(require(\"angular\"));\n\telse\n\t\troot[\"ng-currency\"] = factory(root[\"angular\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","export default class ngCurrencySettings {\n constructor() {\n this._defaults = {\n fraction: 2,\n hardCap: false,\n min: undefined,\n max: undefined,\n currencySymbol: undefined\n };\n }\n\n /**\n * The default property values for 'ng-currency'\n */\n get defaults() {\n return this._defaults;\n }\n\n set defaults(defaults) {\n this._defaults = defaults;\n }\n\n $get() {\n const provider = this;\n return {\n /**\n * The default property values for 'ng-currency'\n */\n get defaults() {\n return provider.defaults;\n }\n };\n }\n}\n","export default function ngCurrency($filter, $locale, $timeout, ngCurrencySettings) {\n return {\n require: 'ngModel',\n link: (scope, element, attrs, controller) => {\n let { hardCap, min, max, currencySymbol, fraction } = ngCurrencySettings.defaults;\n let ngRequired = attrs.required;\n let active = true;\n\n attrs.$observe('ngCurrency', (value) => {\n active = (value !== 'false');\n if (active) {\n reformat();\n } else {\n controller.$viewValue = controller.$$rawModelValue;\n controller.$render();\n }\n });\n attrs.$observe('hardCap', (value) => {\n hardCap = (value === 'true');\n revalidate();\n });\n attrs.$observe('min', (value) => {\n min = value ? Number(value) : undefined;\n revalidate();\n });\n attrs.$observe('max', (value) => {\n max = value ? Number(value) : undefined;\n revalidate();\n });\n attrs.$observe('currencySymbol', (value) => {\n currencySymbol = value;\n reformat();\n });\n attrs.$observe('required', (value) => {\n ngRequired = value;\n revalidate();\n });\n attrs.$observe('fraction', (value) => {\n fraction = value || 2;\n reformat();\n revalidate();\n });\n\n // HACK(nick-woodward): Seriously angular?\n $timeout(() => {\n scope.$emit('currencyRedraw');\n });\n\n controller.$parsers.push((value) => {\n if (active && [undefined, null, ''].indexOf(value) === -1) {\n value = clearValue(value);\n value = keepInRange(Number(value));\n return value;\n }\n return value;\n });\n\n controller.$formatters.push((value) => {\n if (active && [undefined, null, ''].indexOf(value) === -1) {\n return $filter('currency')(value, getCurrencySymbol(), fraction);\n }\n return value;\n });\n\n controller.$validators.min = (value) => {\n if (!ngRequired && ([undefined, null, ''].indexOf(value) !== -1 || isNaN(value))) {\n return true;\n }\n return !active ||\n [undefined, null].indexOf(min) !== -1 || isNaN(min) ||\n value >= min;\n };\n\n controller.$validators.max = (value) => {\n if (!ngRequired && ([undefined, null, ''].indexOf(value) !== -1 || isNaN(value))) {\n return true;\n }\n return !active ||\n [undefined, null].indexOf(max) !== -1 || isNaN(max) ||\n value <= max;\n };\n\n controller.$validators.fraction = (value) => {\n return !active || !value || !isNaN(value);\n };\n\n function reformat() {\n if (active) {\n let value;\n let updateOn, debounce;\n if (controller.$options) {\n // HACK(nick-woodward): this is to maintain backwards compatability with Angular 1.5.9 and lower.\n // TODO(nick-woodward): This should be removed when ngCurrency does a 2.0.0 release\n // Reference: https://github.com/angular/angular.js/commit/296cfce40c25e9438bfa46a0eb27240707a10ffa\n if (controller.$options.getOption) {\n updateOn = controller.$options.getOption('updateOn');\n debounce = controller.$options.getOption('debounce');\n } else {\n updateOn = controller.$options.updateOn;\n debounce = controller.$options.debounce;\n }\n }\n if (updateOn === 'blur' || debounce) {\n value = controller.$viewValue;\n for (let i = controller.$parsers.length - 1; i >= 0; i--) {\n value = controller.$parsers[i](value);\n }\n } else {\n value = controller.$$rawModelValue;\n }\n for (let i = controller.$formatters.length - 1; i >= 0; i--) {\n value = controller.$formatters[i](value);\n }\n controller.$viewValue = value;\n controller.$render();\n }\n }\n\n function revalidate() {\n controller.$validate();\n if (active) {\n const value = keepInRange(controller.$$rawModelValue);\n if (value !== controller.$$rawModelValue) {\n controller.$setViewValue(value.toFixed(fraction));\n controller.$commitViewValue();\n reformat();\n }\n }\n }\n\n function keepInRange(value) {\n if (hardCap) {\n if (max !== undefined && value > max) {\n value = max;\n } else if (min !== undefined && value < min) {\n value = min;\n }\n }\n return value;\n }\n\n scope.$on('currencyRedraw', () => {\n revalidate();\n reformat();\n });\n\n element.bind('focus', () => {\n if (active) {\n const value = clearValue(controller.$viewValue, false);\n\n if (controller.$viewValue !== value) {\n controller.$viewValue = value;\n controller.$render();\n element.triggerHandler('focus');\n }\n }\n });\n\n element.bind('blur', reformat);\n\n // TODO: Rewrite this parsing logic to more readable.\n\n function decimalRex(dChar) {\n return RegExp('\\\\d|\\\\-|\\\\' + dChar, 'g');\n }\n\n function clearRex(dChar) {\n return RegExp('\\\\-{0,1}((\\\\' + dChar + ')|([0-9]{1,}\\\\' + dChar + '?))&?[0-9]{0,' + fraction + '}', 'g');\n }\n\n function clearValue(value, replaceSeparator = true) {\n value = String(value);\n const decimalSeparator = $locale.NUMBER_FORMATS.DECIMAL_SEP;\n let cleared = null;\n\n // Replace negative pattern to minus sign (-)\n const neg_dummy = $filter('currency')('-1', getCurrencySymbol(), fraction);\n const neg_regexp = RegExp('[0-9.' + decimalSeparator + $locale.NUMBER_FORMATS.GROUP_SEP + ']+');\n const neg_dummy_txt = neg_dummy.replace(neg_regexp.exec(neg_dummy), '');\n const value_dummy_txt = value.replace(neg_regexp.exec(value), '');\n\n // If is negative\n if (neg_dummy_txt === value_dummy_txt) {\n value = '-' + neg_regexp.exec(value);\n }\n\n if (RegExp('^-[\\\\s]*$', 'g').test(value)) {\n value = '-0';\n }\n\n if (decimalRex(decimalSeparator).test(value)) {\n cleared = value.match(decimalRex(decimalSeparator))\n .join('').match(clearRex(decimalSeparator)) || [''];\n\n cleared = cleared[0];\n cleared = replaceSeparator ? cleared.replace(decimalSeparator, '.') : cleared;\n }\n\n return cleared || null;\n }\n\n function getCurrencySymbol() {\n return currencySymbol === undefined ? $locale.NUMBER_FORMATS.CURRENCY_SYM : currencySymbol;\n }\n }\n };\n}\nngCurrency.$inject = ['$filter', '$locale', '$timeout', 'ngCurrencySettings'];\n","import angular from 'angular';\nimport ngCurrencySettings from './ng-currency-settings.provider.js';\nimport ngCurrency from './ng-currency.directive.js';\n\nconst module = angular.module('ng-currency', []);\n\nmodule.provider('ngCurrencySettings', ngCurrencySettings);\nmodule.directive('ngCurrency', ngCurrency);\n\nexport default module.name;\n"],"sourceRoot":""}