﻿!function () { "use strict"; angular.module("ngMask", []) }(), function () { "use strict"; angular.module("ngMask").directive("mask", ["$log", "$timeout", "MaskService", function (e, t, r) { return { restrict: "A", require: "ngModel", compile: function (n, a) { if (a.mask && a.ngModel) { var i, o, u = r.create(); return { pre: function (e, t, r, n) { o = u.generateRegex({ mask: r.mask, repeat: r.repeat || r.maskRepeat, clean: "true" === (r.clean || r.maskClean), limit: "true" === (r.limit || r.maskLimit || "true"), restrict: r.restrict || r.maskRestrict || "select", validate: "true" === (r.validate || r.maskValidate || "true"), model: r.ngModel, value: r.ngValue }) }, post: function (r, n, a, i) { var c, l = u.getOptions(); function g(t) { var r = t; l = u.getOptions(), t = t || ""; var n = u.getViewValue(t), a = l.maskWithoutOptionals || "", o = n.withDivisors(!0), c = n.withoutDivisors(!0); try { var g = u.getRegex(o.length - 1), f = u.getRegex(a.length - 1), v = g.test(o) || f.test(o), h = t.length - o.length == 1, p = a.length - o.length > 0; if ("accept" !== l.restrict) if ("select" !== l.restrict || v && !h) "reject" !== l.restrict || v || (o = (n = u.removeWrongPositions(o)).withDivisors(!0), c = n.withoutDivisors(!0)); else { var m = t[t.length - 1]; m !== o[o.length - 1] && p && (o += m); var k = u.getFirstWrongPosition(o); angular.isDefined(k) && s(k) } l.limit || (o = n.withDivisors(!1), c = n.withoutDivisors(!1)), l.validate && i.$dirty && (f.test(o) || i.$isEmpty(r) ? i.$setValidity("mask", !0) : i.$setValidity("mask", !1)), t !== o && (i.$setViewValue(angular.copy(o), "input"), i.$render()) } catch (t) { throw e.error("[mask - parseViewValue]"), t } return l.clean ? c : o } var f = function () { g(), i.$parsers.push(g), l.value && r.$evalAsync((function (e) { i.$setViewValue(angular.copy(l.value), "input"), i.$render() })) }; n.on("click input paste keyup change", (function () { c = t((function () { t.cancel(c), g(n.val()), r.$apply() }), 100) })), r.$watch(a.ngModel, (function (e, t) { angular.isDefined(e) && g(e) })), r.$watch((function () { return [a.mask] }), (function () { (o = u.generateRegex({ mask: a.mask, repeat: a.repeat || a.maskRepeat, clean: "true" === (a.clean || a.maskClean), limit: "true" === (a.limit || a.maskLimit || "true"), restrict: a.restrict || a.maskRestrict || "select", validate: "true" === (a.validate || a.maskValidate || "true"), model: a.ngModel, value: a.ngValue }).then((function () { n.triggerHandler("click") }))).then(f) }), !0), o.then(f) } } } function s(e) { "number" == typeof e && (t.cancel(i), i = t((function () { var t = e + 1, r = n[0]; if (r.setSelectionRange) r.focus(), r.setSelectionRange(e, t); else if (r.createTextRange) { var a = r.createTextRange(); a.collapse(!0), a.moveEnd("character", t), a.moveStart("character", e), a.select() } }))) } e.info("Mask and ng-model attributes are required!") } } }]) }(), function () { "use strict"; angular.module("ngMask").factory("MaskService", ["$q", "OptionalService", "UtilService", function (e, t, r) { return { create: function () { var n, a, i = 0, o = 0, u = [], s = {}, c = [], l = [], g = {}, f = [], v = { 9: /[0-9]/, 8: /[0-8]/, 7: /[0-7]/, 6: /[0-6]/, 5: /[0-5]/, 4: /[0-4]/, 3: /[0-3]/, 2: /[0-2]/, 1: /[0-1]/, 0: /[0]/, "*": /./, w: /\w/, W: /\W/, d: /\d/, D: /\D/, s: /\s/, S: /\S/, b: /\b/, A: /[A-Z]/, a: /[a-z]/, Z: /[A-ZÇÀÁÂÃÈÉÊẼÌÍÎĨÒÓÔÕÙÚÛŨ]/, z: /[a-zçáàãâéèêẽíìĩîóòôõúùũüû]/, "@": /[a-zA-Z]/, "#": /[a-zA-ZçáàãâéèêẽíìĩîóòôõúùũüûÇÀÁÂÃÈÉÊẼÌÍÎĨÒÓÔÕÙÚÛŨ]/, "%": /[0-9a-zA-ZçáàãâéèêẽíìĩîóòôõúùũüûÇÀÁÂÃÈÉÊẼÌÍÎĨÒÓÔÕÙÚÛŨ]/ }; function h(e, t) { var n, i; try { var o = a[e], u = v[o], s = k(e); u ? n = "(" + u.source + ")" : (i = e, r.inArray(i, l) || (l.push(e), g[e] = o), n = "(\\" + o + ")") } catch (e) { throw e } return (s || t) && (n += "?"), new RegExp(n) } function p(e, t) { var r, n; try { var a = h(e, t); r = a; var o = k(e), u = a.source; if (o && e + 1 < i) u += p(e + 1, !0).elementOptionalRegex().source; n = new RegExp(u) } catch (e) { throw e } return { elementRegex: function () { return r }, elementOptionalRegex: function () { return n } } } function m(e) { var t; try { t = f[e] ? f[e].source : "" } catch (e) { throw e } return new RegExp("^" + t + "$") } function k(e) { return r.inArray(e, u) } function y(e) { e = e.toString(); try { if (l.length > 0 && e) { for (var t = Object.keys(g), n = [], a = t.length - 1; a >= 0; a--) { var i = g[t[a]]; i && n.push(i) } n = r.uniqueArray(n); var o = new RegExp("[\\" + n.join("\\") + "]", "g"); return e.replace(o, "") } return e } catch (e) { throw e } } function d(e, t) { function n(e, t) { for (var r = t, n = 0; n < e.length; n++) { var a = e[n]; a < r.length && r.splice(a, 0, g[a]) } return r } var a = e, i = l.filter((function (e) { var n = Object.keys(s).map((function (e) { return parseInt(e) })); return !r.inArray(e, t) && !r.inArray(e, n) })); return angular.isArray(e) && angular.isArray(t) ? (a = n(i, a), a = n(t, a)) : a } function w(e) { try { var t = y(e), n = function (e) { var t = e.split(""), n = !0; if (u.length > 0) { for (var i = [], o = Object.keys(s), g = 0; g < o.length; g++) { var f = s[o[g]]; i.push(f) } for (0 === c.length && r.lazyProduct(i, (function () { c.push(Array.prototype.slice.call(arguments)) })), g = c.length - 1; g >= 0; g--) { var v = angular.copy(t), h = (v = d(v, c[g])).join(""); if (m(a.length - 1).test(h)) { n = !1, t = v; break } } } return n && (t = d(t, l)), t.join("") }(t); return { withDivisors: function (e) { return e ? n.substr(0, i) : n }, withoutDivisors: function (e) { return e ? t.substr(0, o) : t } } } catch (e) { throw e } } function R(e, t) { var r = []; if (!e) return 0; for (var n = 0; n < e.length; n++) { var a = m(n), i = e.substr(0, n + 1); if (a && !a.test(i) && (r.push(n), t)) break } return r } return { getViewValue: w, generateRegex: function (r) { var v = e.defer(); a = null, i = 0, o = 0, u = [], s = {}, c = [], l = [], g = {}, f = [], n = r; try { var h, m = r.mask, k = r.repeat; if (!m) return; k && (m = Array(parseInt(k) + 1).join(m)), u = t.getOptionals(m).fromMaskWithoutOptionals(), n.maskWithoutOptionals = a = t.removeOptionals(m), i = a.length; for (var d = 0; d < i; d++) { var w = p(d), R = w.elementRegex(), x = w.elementOptionalRegex(), O = h ? h.source + x.source : x.source; O = new RegExp(O), h = h ? h.source + R.source : R.source, h = new RegExp(h), f.push(O) } !function () { function e(e, t) { return e - t } for (var t = l.sort(e), r = u.sort(e), n = 0; n < t.length; n++)for (var a = t[n], i = 1; i <= r.length; i++) { if (r[i - 1] >= a) break; s[a] ? s[a] = s[a].concat(a - i) : s[a] = [a - i], g[a - i] = g[a] } }(), o = y(a).length, v.resolve({ options: n, divisors: l, divisorElements: g, optionalIndexes: u, optionalDivisors: s, optionalDivisorsCombinations: c }) } catch (e) { throw v.reject(e), e } return v.promise }, getRegex: m, getOptions: function () { return n }, removeDivisors: y, getFirstWrongPosition: function (e) { return R(e, !0)[0] }, removeWrongPositions: function (e) { for (var t = R(e, !1), r = e, n = 0; n < t.length; n++) { var a = t[n], i = e.split(""); i.splice(a, 1), r = i.join("") } return w(r) } } } } }]) }(), function () { "use strict"; angular.module("ngMask").factory("OptionalService", [function () { return { removeOptionals: function (e) { var t; try { t = e.replace(/\?/g, "") } catch (e) { throw e } return t }, getOptionals: function (e) { var t = []; try { for (var r = /\?/g, n = []; null != (n = r.exec(e));)t.push(n.index - 1) } catch (e) { throw e } return { fromMask: function () { return t }, fromMaskWithoutOptionals: function () { return function (e) { for (var t = [], r = 0; r < e.length; r++)t.push(e[r] - r); return t }(t) } } } } }]) }(), function () { "use strict"; angular.module("ngMask").factory("UtilService", [function () { return { lazyProduct: function (e, t, r) { r || (r = this); for (var n = [], a = e.length - 1, i = [], o = e.length; o--;)i[o] = e[o].length; !function o(u) { var s = e[u], c = i[u]; if (u === a) for (var l = 0; l < c; ++l)n[u] = s[l], t.apply(r, n); else for (l = 0; l < c; ++l)n[u] = s[l], o(u + 1); n.pop() }(0) }, inArray: function (e, t) { var r; try { r = t.indexOf(e) > -1 } catch (e) { throw e } return r }, uniqueArray: function (e) { for (var t = {}, r = [], n = 0, a = e.length; n < a; ++n)t.hasOwnProperty(e[n]) || (r.push(e[n]), t[e[n]] = 1); return r } } }]) }();
//# sourceMappingURL=ngMask.min.map