From 9b29e4de7d5725f42e5fb1cc12c2b44d805a1972 Mon Sep 17 00:00:00 2001 From: Kryazhev Alexey Date: Wed, 28 Jun 2017 14:44:43 +0300 Subject: [PATCH] replace gulp&webpack by rollup, update readme --- .babelrc | 2 +- .eslintrc | 31 +- README.md | 13 +- dist/imask.es.js | 962 ++++++++++++ dist/imask.es.js.map | 1 + dist/imask.js | 1982 ++++++++++--------------- dist/imask.js.map | 2 +- dist/imask.min.es.js | 2 + dist/imask.min.es.js.map | 1 + dist/imask.min.js | 4 +- dist/imask.min.js.map | 2 +- gulpfile.js | 77 - index.html | 1 + karma.conf.js | 64 +- package-lock.json | 3051 +++++--------------------------------- package.json | 45 +- rollup.config.js | 32 + src/masks/pattern.js | 2 +- webpack.config.js | 30 - 19 files changed, 2200 insertions(+), 4104 deletions(-) create mode 100644 dist/imask.es.js create mode 100644 dist/imask.es.js.map create mode 100644 dist/imask.min.es.js create mode 100644 dist/imask.min.es.js.map delete mode 100644 gulpfile.js create mode 100644 rollup.config.js delete mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc index cdc23179..3f9431c1 100644 --- a/.babelrc +++ b/.babelrc @@ -8,5 +8,5 @@ } ] ], - "plugins": ["transform-object-rest-spread", "transform-es2015-modules-umd"] + "plugins": ["transform-object-rest-spread", "external-helpers"] } diff --git a/.eslintrc b/.eslintrc index 22764935..283b331a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,23 +1,24 @@ { - "extends": "eslint:recommended", + "extends": "eslint:recommended", - "parser": "babel-eslint", + "parser": "babel-eslint", - "env": { - "browser": true, - "es6": true - }, + "env": { + "browser": true, + "es6": true, + "mocha": true + }, - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", - "ecmaFeatures": { - "classes": true - }, + "ecmaFeatures": { + "classes": true }, + }, - "globals": { - "IMask": false - } + "globals": { + "IMask": false + } } diff --git a/README.md b/README.md index dc41896f..18927730 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,14 @@ May coming soon: * jQuery integration * composite mask (for date, datetime etc.) -* unit tests +* more unit tests * ?RTL +## Build & test +`npm run build` + +`npm run test` + ## Compatibility IE11+ [need support older?](https://unmanner.github.io/imaskjs/#under-the-hood) @@ -23,6 +28,12 @@ IE11+ [need support older?](https://unmanner.github.io/imaskjs/#under-the-hood) ## Changes +### 0.4.0 +* **breaking change**: add _quote_ (') to definitions to prevent symbols shift back. Should be escaped from now. +* fix some bugs with cursor +* write some tests +* use _rollup_ for build and test + ### 0.3.0 * add mobile support * fix some bugs with cursor diff --git a/dist/imask.es.js b/dist/imask.es.js new file mode 100644 index 00000000..3d5c7dea --- /dev/null +++ b/dist/imask.es.js @@ -0,0 +1,962 @@ +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + + + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + + + +var inherits = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; +}; + + + + + + + + + + + +var possibleConstructorReturn = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; +}; + +function isString(str) { + return typeof str === 'string' || str instanceof String; +} + +function conform(res, str) { + var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + + return isString(res) ? res : res ? str : fallback; +} + +var DIRECTION = { + NONE: 0, + LEFT: -1, + RIGHT: 1 +}; + +function extendDetailsAdjustments(str, details) { + var cursorPos = details.cursorPos; + var oldSelection = details.oldSelection; + var oldValue = details.oldValue; + + var startChangePos = Math.min(cursorPos, oldSelection.start); + var insertedCount = cursorPos - startChangePos; + // Math.max for opposite operation + var removedCount = Math.max(oldSelection.end - startChangePos || + // for Delete + oldValue.length - str.length, 0); + + return _extends({}, details, { + startChangePos: startChangePos, + head: str.substring(0, startChangePos), + tail: str.substring(startChangePos + insertedCount), + inserted: str.substr(startChangePos, insertedCount), + removed: oldValue.substr(startChangePos, removedCount), + removeDirection: removedCount && (oldSelection.end === cursorPos || insertedCount ? DIRECTION.RIGHT : DIRECTION.LEFT) + }); +} + +function indexInDirection(pos, direction) { + if (direction === DIRECTION.LEFT) --pos; + return pos; +} + +var BaseMask = function () { + function BaseMask(el, opts) { + classCallCheck(this, BaseMask); + + this.el = el; + this.mask = opts.mask; + + this._listeners = {}; + this._refreshingCount = 0; + this._rawValue = ""; + this._unmaskedValue = ""; + + this.saveSelection = this.saveSelection.bind(this); + this._onInput = this._onInput.bind(this); + this._onDrop = this._onDrop.bind(this); + } + + BaseMask.prototype.on = function on(ev, handler) { + if (!this._listeners[ev]) this._listeners[ev] = []; + this._listeners[ev].push(handler); + return this; + }; + + BaseMask.prototype.off = function off(ev, handler) { + if (!this._listeners[ev]) return; + if (!handler) { + delete this._listeners[ev]; + return; + } + var hIndex = this._listeners[ev].indexOf(handler); + if (hIndex >= 0) this._listeners.splice(hIndex, 1); + return this; + }; + + BaseMask.prototype.bindEvents = function bindEvents() { + this.el.addEventListener('keydown', this.saveSelection); + this.el.addEventListener('input', this._onInput); + this.el.addEventListener('drop', this._onDrop); + }; + + BaseMask.prototype.unbindEvents = function unbindEvents() { + this.el.removeEventListener('keydown', this.saveSelection); + this.el.removeEventListener('input', this._onInput); + this.el.removeEventListener('drop', this._onDrop); + }; + + BaseMask.prototype.fireEvent = function fireEvent(ev) { + var listeners = this._listeners[ev] || []; + listeners.forEach(function (l) { + return l(); + }); + }; + + BaseMask.prototype.processInput = function processInput(inputValue, details) { + details = _extends({ + cursorPos: this.cursorPos, + oldSelection: this._selection, + oldValue: this.rawValue, + oldUnmaskedValue: this.unmaskedValue + }, details); + + details = extendDetailsAdjustments(inputValue, details); + + var res = conform(this.resolve(inputValue, details), inputValue, this.rawValue); + + this.updateElement(res, details.cursorPos); + return res; + }; + + BaseMask.prototype.saveSelection = function saveSelection(ev) { + if (this.rawValue !== this.el.value) { + console.warn("Uncontrolled input change, refresh mask manually!"); + } + this._selection = { + start: this.selectionStart, + end: this.cursorPos + }; + }; + + BaseMask.prototype.destroy = function destroy() { + this.unbindEvents(); + this._listeners.length = 0; + }; + + BaseMask.prototype.updateElement = function updateElement(value, cursorPos) { + var unmaskedValue = this._calcUnmasked(value); + var isChanged = this.unmaskedValue !== unmaskedValue || this.rawValue !== value; + + this._unmaskedValue = unmaskedValue; + this._rawValue = value; + + if (this.el.value !== value) this.el.value = value; + this.updateCursor(cursorPos); + + if (isChanged) this._fireChangeEvents(); + }; + + BaseMask.prototype._fireChangeEvents = function _fireChangeEvents() { + this.fireEvent("accept"); + }; + + BaseMask.prototype.updateCursor = function updateCursor(cursorPos) { + if (cursorPos == null) return; + this.cursorPos = cursorPos; + + // also queue change cursor for mobile browsers + this._delayUpdateCursor(cursorPos); + }; + + BaseMask.prototype._delayUpdateCursor = function _delayUpdateCursor(cursorPos) { + var _this = this; + + this._abortUpdateCursor(); + this._changingCursorPos = cursorPos; + this._cursorChanging = setTimeout(function () { + _this._abortUpdateCursor(); + _this.cursorPos = _this._changingCursorPos; + }, 10); + }; + + BaseMask.prototype._abortUpdateCursor = function _abortUpdateCursor() { + if (this._cursorChanging) { + clearTimeout(this._cursorChanging); + delete this._cursorChanging; + } + }; + + BaseMask.prototype._onInput = function _onInput(ev) { + this._abortUpdateCursor(); + this.processInput(this.el.value); + }; + + BaseMask.prototype._onDrop = function _onDrop(ev) { + ev.preventDefault(); + ev.stopPropagation(); + }; + + // override + + + BaseMask.prototype.resolve = function resolve(str, details) { + return str; + }; + + BaseMask.prototype._calcUnmasked = function _calcUnmasked(value) { + return value; + }; + + createClass(BaseMask, [{ + key: "rawValue", + get: function get$$1() { + return this._rawValue; + }, + set: function set$$1(str) { + this.processInput(str, { + cursorPos: str.length, + oldValue: this.rawValue, + oldSelection: { + start: 0, + end: this.rawValue.length + } + }); + } + }, { + key: "unmaskedValue", + get: function get$$1() { + return this._unmaskedValue; + }, + set: function set$$1(value) { + this.rawValue = value; + } + }, { + key: "selectionStart", + get: function get$$1() { + return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart; + } + }, { + key: "cursorPos", + get: function get$$1() { + return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd; + }, + set: function set$$1(pos) { + if (this.el !== document.activeElement) return; + + this.el.setSelectionRange(pos, pos); + this.saveSelection(); + } + }]); + return BaseMask; +}(); + +var RegExpMask = function (_BaseMask) { + inherits(RegExpMask, _BaseMask); + + function RegExpMask() { + classCallCheck(this, RegExpMask); + return possibleConstructorReturn(this, _BaseMask.apply(this, arguments)); + } + + RegExpMask.prototype.resolve = function resolve(str) { + return this.mask.test(str); + }; + + return RegExpMask; +}(BaseMask); + +var FuncMask = function (_BaseMask) { + inherits(FuncMask, _BaseMask); + + function FuncMask() { + classCallCheck(this, FuncMask); + return possibleConstructorReturn(this, _BaseMask.apply(this, arguments)); + } + + FuncMask.prototype.resolve = function resolve() { + return this.mask.apply(this, arguments); + }; + + return FuncMask; +}(BaseMask); + +var PatternMask = function (_BaseMask) { + inherits(PatternMask, _BaseMask); + + function PatternMask(el, opts) { + classCallCheck(this, PatternMask); + + var _this = possibleConstructorReturn(this, _BaseMask.call(this, el, opts)); + + _this._hollows = []; + _this.placeholder = opts.placeholder; + _this.definitions = _extends({}, PatternMask.DEFINITIONS, opts.definitions); + + _this._alignCursor = _this._alignCursor.bind(_this); + _this._alignCursorFriendly = _this._alignCursorFriendly.bind(_this); + + _this._initialized = true; + return _this; + } + + PatternMask.prototype._alignCursorFriendly = function _alignCursorFriendly() { + if (this.selectionStart !== this.cursorPos) return; + this._alignCursor(); + }; + + PatternMask.prototype.bindEvents = function bindEvents() { + _BaseMask.prototype.bindEvents.call(this); + this.el.addEventListener('click', this._alignCursorFriendly); + }; + + PatternMask.prototype.unbindEvents = function unbindEvents() { + _BaseMask.prototype.unbindEvents.call(this); + this.el.removeEventListener('click', this._alignCursorFriendly); + }; + + PatternMask.prototype._installDefinitions = function _installDefinitions(definitions) { + this._definitions = definitions; + this._charDefs = []; + this._alignStops = []; + + var pattern = this.mask; + if (!pattern || !definitions) return; + + var unmaskingBlock = false; + var optionalBlock = false; + for (var i = 0; i < pattern.length; ++i) { + var ch = pattern[i]; + var type = !unmaskingBlock && ch in definitions ? PatternMask.DEF_TYPES.INPUT : PatternMask.DEF_TYPES.FIXED; + var unmasking = type === PatternMask.DEF_TYPES.INPUT || unmaskingBlock; + var optional = type === PatternMask.DEF_TYPES.INPUT && optionalBlock; + + if (ch === PatternMask.STOP_CHAR) { + this._alignStops.push(this._charDefs.length); + continue; + } + + if (ch === '{' || ch === '}') { + unmaskingBlock = !unmaskingBlock; + continue; + } + + if (ch === '[' || ch === ']') { + optionalBlock = !optionalBlock; + continue; + } + + if (ch === PatternMask.ESCAPE_CHAR) { + ++i; + ch = pattern[i]; + // TODO validation + if (!ch) break; + type = PatternMask.DEF_TYPES.FIXED; + } + + this._charDefs.push({ + char: ch, + type: type, + optional: optional, + unmasking: unmasking + }); + } + + this._buildResolvers(); + }; + + PatternMask.prototype._buildResolvers = function _buildResolvers() { + this._resolvers = {}; + for (var defKey in this.definitions) { + this._resolvers[defKey] = IMask.MaskFactory(this.el, { + mask: this.definitions[defKey] + }); + } + }; + + PatternMask.prototype._appendTail = function _appendTail(str, tail) { + var skipUnresolvedInput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + + var placeholderBuffer = ''; + var hollows = this._hollows.slice(); + var overflow = false; + + for (var ci = 0, di = this._mapPosToDefIndex(str.length); ci < tail.length;) { + if (this._isHollow(di)) { + // TODO check other cases + ++di; + continue; + } + + var ch = tail[ci]; + var def = this.def(di, str + placeholderBuffer); + + // failed + if (!def) { + overflow = true; + break; + } + + if (def.type === PatternMask.DEF_TYPES.INPUT) { + var resolver = this._resolvers[def.char]; + var chres = resolver.resolve(ch, di, str + placeholderBuffer) || ''; + var isResolved = !!chres; + + // if ok - next di + if (chres) { + chres = conform(chres, ch); + } else { + if (!def.optional && skipUnresolvedInput) chres = this._placeholder.char; + // TODO seems check is useless + if (hollows.indexOf(di) < 0) hollows.push(di); + } + + if (chres) { + str += placeholderBuffer + conform(chres, ch); + placeholderBuffer = ''; + } + if (chres || def.optional || !skipUnresolvedInput) ++di; + if (isResolved || !def.optional && !skipUnresolvedInput) ++ci; + } else { + placeholderBuffer += def.char; + + if (ch === def.char && (def.unmasking || !skipUnresolvedInput)) ++ci; + ++di; + } + } + + return [str, hollows, overflow]; + }; + + PatternMask.prototype._appendTailChunks = function _appendTailChunks(str, chunks, skipUnresolvedInput) { + var overflow = false; + for (var ci = 0; ci < chunks.length; ++ci) { + var _chunks$ci = chunks[ci], + input = _chunks$ci[1]; + + var _appendTail2 = this._appendTail(str, input, skipUnresolvedInput); + + str = _appendTail2[0]; + this._hollows = _appendTail2[1]; + overflow = _appendTail2[2]; + + if (overflow) break; + + // not last - append placeholder between stops + var chunk2 = chunks[ci + 1]; + var stop2 = chunk2 && chunk2[0]; + if (stop2) str = this._appendPlaceholderEnd(str, stop2); + } + return [str, this._hollows, overflow]; + }; + + PatternMask.prototype._extractInput = function _extractInput(str) { + var fromPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var toPos = arguments[2]; + + var input = ''; + + var toDefIndex = toPos && this._mapPosToDefIndex(toPos); + for (var ci = 0, di = this._mapPosToDefIndex(fromPos); ci < str.length && (!toDefIndex || di < toDefIndex); ++di) { + var ch = str[ci]; + var def = this.def(di, str); + + if (!def) break; + if (this._isHiddenHollow(di)) continue; + + if (this._isInput(di) && !this._isHollow(di)) input += ch; + ++ci; + } + return input; + }; + + PatternMask.prototype._extractInputChunks = function _extractInputChunks(str, stops) { + var chunks = []; + for (var si = 0; si < stops.length && str; ++si) { + var s = stops[si]; + var s2 = stops[si + 1]; + chunks.push([s, this._extractInput(str, s, s2)]); + if (s2) str = str.slice(s2 - s); + } + return chunks; + }; + + PatternMask.prototype._isHollow = function _isHollow(defIndex) { + return this._hollows.indexOf(defIndex) >= 0; + }; + + PatternMask.prototype._isHiddenHollow = function _isHiddenHollow(defIndex) { + return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional; + }; + + PatternMask.prototype._isInput = function _isInput(defIndex) { + return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT; + }; + + PatternMask.prototype._hollowsBefore = function _hollowsBefore(defIndex) { + var _this2 = this; + + return this._hollows.filter(function (h) { + return h < defIndex && _this2._isHiddenHollow(h); + }); + }; + + PatternMask.prototype._mapDefIndexToPos = function _mapDefIndexToPos(defIndex) { + return defIndex - this._hollowsBefore(defIndex).length; + }; + + PatternMask.prototype._mapPosToDefIndex = function _mapPosToDefIndex(pos) { + var defIndex = pos; + for (var hi = 0; hi < this._hollows.length; ++hi) { + var h = this._hollows[hi]; + if (h >= defIndex) break; + if (this._isHiddenHollow(h)) ++defIndex; + } + return defIndex; + }; + + PatternMask.prototype._generateInsertSteps = function _generateInsertSteps(head, inserted) { + var overflow = false; + + // save hollow during generation + var hollows = this._hollows; + + var insertSteps = [[head, hollows.slice()]]; + + for (var ci = 0; ci < inserted.length && !overflow; ++ci) { + var ch = inserted[ci]; + + var _appendTail3 = this._appendTail(head, ch, false), + res = _appendTail3[0], + hollows = _appendTail3[1], + overflow = _appendTail3[2]; + + this._hollows = hollows; + if (!overflow && res !== head) { + insertSteps.push([res, hollows]); + head = res; + } + } + + // pop hollows back + this._hollows = hollows; + + return insertSteps; + }; + + PatternMask.prototype.resolve = function resolve(str, details) { + var _this3 = this; + + var cursorPos = details.cursorPos; + var startChangePos = details.startChangePos; + var inserted = details.inserted; + var removedCount = details.removed.length; + var tailPos = startChangePos + removedCount; + var tailDefIndex = this._mapPosToDefIndex(tailPos); + var tailAlignStopsPos = [tailPos].concat(this._alignStops.filter(function (s) { + return s >= tailDefIndex; + }).map(function (s) { + return _this3._mapDefIndexToPos(s); + })); + var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos); + + // remove hollows after cursor + var lastHollowIndex = this._mapPosToDefIndex(startChangePos); + this._hollows = this._hollows.filter(function (h) { + return h < lastHollowIndex; + }); + + var res = details.head; + // if remove at left - adjust start change pos + if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos)); + + // insert available + var insertSteps = this._generateInsertSteps(res, inserted); + for (var istep = insertSteps.length - 1; istep >= 0; --istep) { + var step, tres, overflow; + var _insertSteps$istep = insertSteps[istep]; + step = _insertSteps$istep[0]; + this._hollows = _insertSteps$istep[1]; + + var _appendTailChunks2 = this._appendTailChunks(step, tailInputChunks); + + tres = _appendTailChunks2[0]; + this._hollows = _appendTailChunks2[1]; + overflow = _appendTailChunks2[2]; + + if (!overflow) { + res = tres; + cursorPos = step.length; + break; + } + } + + res = this._appendPlaceholderEnd(res); + details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection); + + return res; + }; + + PatternMask.prototype._fireChangeEvents = function _fireChangeEvents() { + // fire 'complete' after 'accept' event + _BaseMask.prototype._fireChangeEvents.call(this); + if (this.isComplete) this.fireEvent("complete"); + }; + + PatternMask.prototype._appendFixedEnd = function _appendFixedEnd(res) { + for (var di = this._mapPosToDefIndex(res.length);; ++di) { + var def = this.def(di, res); + if (!def) break; + + if (this._isHiddenHollow(di)) continue; + if (this._isInput(di)) break; + if (di >= res.length) res += def.char; + } + return res; + }; + + PatternMask.prototype._appendPlaceholderEnd = function _appendPlaceholderEnd(res, toPos) { + var toDefIndex = toPos && this._mapPosToDefIndex(toPos); + for (var di = this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) { + var def = this.def(di, res); + if (!def) break; + + if (this._isInput(di) && !this._isHollow(di)) { + this._hollows.push(di); + } + if (this._placeholder.show === 'always' || toPos) { + res += def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? this._placeholder.char : ''; + } + } + return res; + }; + + PatternMask.prototype._calcUnmasked = function _calcUnmasked(str) { + var unmasked = ''; + for (var ci = 0, di = 0; ci < str.length; ++di) { + var ch = str[ci]; + var def = this.def(di, str); + + if (!def) break; + if (this._isHiddenHollow(di)) continue; + + if (def.unmasking && !this._isHollow(di) && (this._isInput(di) && this._resolvers[def.char].resolve(ch, ci, str) || def.char === ch)) { + unmasked += ch; + } + ++ci; + } + return unmasked; + }; + + PatternMask.prototype.defs = function defs(str) { + var defs = []; + for (var i = 0;; ++i) { + var def = this.def(i, str); + if (!def) break; + defs.push(def); + } + return defs; + }; + + PatternMask.prototype.def = function def(index, str) { + return this._charDefs[index]; + }; + + PatternMask.prototype._nearestInputPos = function _nearestInputPos(cursorPos) { + var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DIRECTION.LEFT; + + if (!direction) return cursorPos; + + var initialDefIndex = this._mapPosToDefIndex(cursorPos); + var di = initialDefIndex; + + var firstInputIndex, firstFilledInputIndex, firstVisibleHollowIndex, nextdi; + + // search forward + for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) { + if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di; + if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di; + if (this._isInput(nextdi) && !this._isHollow(nextdi)) { + firstFilledInputIndex = di; + break; + } + } + + if (direction === DIRECTION.LEFT || firstInputIndex == null) { + // search backwards + direction = -direction; + var overflow = false; + + // find hollows only before initial pos + for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) { + if (this._isInput(nextdi)) { + firstInputIndex = di; + if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break; + } + + // if hollow not found before start position - set `overflow` + // and try to find just any input + if (di === initialDefIndex) overflow = true; + + // first input found + if (overflow && firstInputIndex != null) break; + } + + // process overflow + overflow = overflow || !this.def(nextdi); + if (overflow && firstInputIndex != null) di = firstInputIndex; + } else if (firstFilledInputIndex == null) { + // adjust index if delete at right and filled input not found at right + di = firstVisibleHollowIndex != null ? firstVisibleHollowIndex : firstInputIndex; + } + + return this._mapDefIndexToPos(di); + }; + + PatternMask.prototype._alignCursor = function _alignCursor() { + this.cursorPos = this._nearestInputPos(this.cursorPos); + }; + + createClass(PatternMask, [{ + key: 'isComplete', + get: function get$$1() { + for (var di = 0;; ++di) { + var def = this.def(di); + if (!def) break; + if (this._isInput(di) && !def.optional && this._isHollow(di)) return false; + } + return true; + } + }, { + key: 'unmaskedValue', + get: function get$$1() { + return this._unmaskedValue; + }, + set: function set$$1(str) { + this._hollows.length = 0; + var res; + + var _appendTail4 = this._appendTail('', str); + + res = _appendTail4[0]; + this._hollows = _appendTail4[1]; + + this.updateElement(this._appendPlaceholderEnd(res)); + + this._alignCursor(); + } + }, { + key: 'placeholder', + get: function get$$1() { + return this._placeholder; + }, + set: function set$$1(ph) { + this._placeholder = _extends({}, PatternMask.DEFAULT_PLACEHOLDER, ph); + if (this._initialized) this.unmaskedValue = this.unmaskedValue; + } + }, { + key: 'placeholderLabel', + get: function get$$1() { + var _this4 = this; + + return this.defs().map(function (def) { + return def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? _this4._placeholder.char : ''; + }).join(''); + } + }, { + key: 'definitions', + get: function get$$1() { + return this._definitions; + }, + set: function set$$1(defs) { + this._installDefinitions(defs); + if (this._initialized) this.unmaskedValue = this.unmaskedValue; + } + }, { + key: 'mask', + get: function get$$1() { + return this._mask; + }, + set: function set$$1(mask) { + this._mask = mask; + if (this._initialized) this.definitions = this.definitions; + } + }]); + return PatternMask; +}(BaseMask); + +PatternMask.DEFINITIONS = { + '0': /\d/, + 'a': /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, // http://stackoverflow.com/a/22075070 + '*': /./ +}; +PatternMask.DEF_TYPES = { + INPUT: 'input', + FIXED: 'fixed' +}; +PatternMask.DEFAULT_PLACEHOLDER = { + show: 'lazy', + char: '_' +}; +PatternMask.STOP_CHAR = '\''; +PatternMask.ESCAPE_CHAR = '\\'; + +var PipeMask = function (_BaseMask) { + inherits(PipeMask, _BaseMask); + + function PipeMask(el, opts) { + classCallCheck(this, PipeMask); + + var _this = possibleConstructorReturn(this, _BaseMask.call(this, el, opts)); + + _this.multipass = opts.multipass; + + _this._compiledMasks = _this.mask.map(function (m) { + return IMask.MaskFactory(el, m); + }); + return _this; + } + + PipeMask.prototype.resolve = function resolve(str, details) { + var res = this._pipe(str, details); + if (!this.multipass) return res; + + var cursorPos = details.cursorPos; + + var stepRes; + var tempRes = res; + + while (stepRes !== tempRes) { + stepRes = tempRes; + tempRes = this._pipe(stepRes, { + cursorPos: stepRes.length, + oldValue: stepRes, + oldSelection: { + start: 0, + end: stepRes.length + } + }); + } + + details.cursorPos = cursorPos - (res.length - stepRes.length); + + return stepRes; + }; + + PipeMask.prototype._pipe = function _pipe(str, details) { + return this._compiledMasks.reduce(function (s, m) { + var d = extendDetailsAdjustments(s, details); + var res = m.resolve(s, d); + details.cursorPos = d.cursorPos; + return res; + }, str); + }; + + PipeMask.prototype.bindEvents = function bindEvents() { + _BaseMask.prototype.bindEvents.call(this); + this._compiledMasks.forEach(function (m) { + m.bindEvents(); + // disable basemask events for child masks + BaseMask.prototype.unbindEvents.apply(m); + }); + }; + + PipeMask.prototype.unbindEvents = function unbindEvents() { + _BaseMask.prototype.unbindEvents.call(this); + this._compiledMasks.forEach(function (m) { + return m.unbindEvents(); + }); + }; + + return PipeMask; +}(BaseMask); + +function IMask$1(el) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var mask = IMask$1.MaskFactory(el, opts); + mask.bindEvents(); + // refresh + mask.rawValue = el.value; + return mask; +} + +IMask$1.MaskFactory = function (el, opts) { + var mask = opts.mask; + if (mask instanceof BaseMask) return mask; + if (mask instanceof RegExp) return new RegExpMask(el, opts); + if (mask instanceof Array) return new PipeMask(el, opts); + if (isString(mask)) return new PatternMask(el, opts); + if (mask.prototype instanceof BaseMask) return new mask(el, opts); + if (mask instanceof Function) return new FuncMask(el, opts); + return new BaseMask(el, opts); +}; +IMask$1.BaseMask = BaseMask; +IMask$1.FuncMask = FuncMask; +IMask$1.RegExpMask = RegExpMask; +IMask$1.PatternMask = PatternMask; +window.IMask = IMask$1; + +export default IMask$1; +//# sourceMappingURL=imask.es.js.map diff --git a/dist/imask.es.js.map b/dist/imask.es.js.map new file mode 100644 index 00000000..6eb12016 --- /dev/null +++ b/dist/imask.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"imask.es.js","sources":["../src/utils.js","../src/masks/base.js","../src/masks/regexp.js","../src/masks/func.js","../src/masks/pattern.js","../src/masks/pipe.js","../src/imask.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nvar DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\n\r\nexport\r\nfunction extendDetailsAdjustments(str, details) {\r\n var cursorPos = details.cursorPos;\r\n var oldSelection = details.oldSelection;\r\n var oldValue = details.oldValue;\r\n\r\n var startChangePos = Math.min(cursorPos, oldSelection.start);\r\n var insertedCount = cursorPos - startChangePos;\r\n // Math.max for opposite operation\r\n var removedCount = Math.max((oldSelection.end - startChangePos) ||\r\n // for Delete\r\n oldValue.length - str.length, 0);\r\n\r\n return {\r\n ...details,\r\n startChangePos,\r\n head: str.substring(0, startChangePos),\r\n tail: str.substring(startChangePos + insertedCount),\r\n inserted: str.substr(startChangePos, insertedCount),\r\n removed: oldValue.substr(startChangePos, removedCount),\r\n removeDirection: removedCount &&\r\n ((oldSelection.end === cursorPos || insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT)\r\n };\r\n}\r\n\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n","import {conform, extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass BaseMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.mask = opts.mask;\r\n\r\n this._listeners = {};\r\n this._refreshingCount = 0;\r\n this._rawValue = \"\";\r\n this._unmaskedValue = \"\";\r\n\r\n this.saveSelection = this.saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n var hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n get rawValue () {\r\n return this._rawValue;\r\n }\r\n\r\n set rawValue (str) {\r\n this.processInput(str, {\r\n cursorPos: str.length,\r\n oldValue: this.rawValue,\r\n oldSelection: {\r\n start: 0,\r\n end: this.rawValue.length\r\n }\r\n });\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.rawValue = value;\r\n }\r\n\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this.saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this.saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n }\r\n\r\n fireEvent (ev) {\r\n var listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n processInput (inputValue, details) {\r\n details = {\r\n cursorPos: this.cursorPos,\r\n oldSelection: this._selection,\r\n oldValue: this.rawValue,\r\n oldUnmaskedValue: this.unmaskedValue,\r\n ...details\r\n };\r\n\r\n details = extendDetailsAdjustments(inputValue, details);\r\n\r\n var res = conform(this.resolve(inputValue, details),\r\n inputValue,\r\n this.rawValue);\r\n\r\n this.updateElement(res, details.cursorPos);\r\n return res;\r\n }\r\n\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this.saveSelection();\r\n }\r\n\r\n saveSelection (ev) {\r\n if (this.rawValue !== this.el.value) {\r\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n\r\n updateElement (value, cursorPos) {\r\n var unmaskedValue = this._calcUnmasked(value);\r\n var isChanged = (this.unmaskedValue !== unmaskedValue ||\r\n this.rawValue !== value);\r\n\r\n this._unmaskedValue = unmaskedValue;\r\n this._rawValue = value;\r\n\r\n if (this.el.value !== value) this.el.value = value;\r\n this.updateCursor(cursorPos);\r\n\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent(\"accept\");\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this._abortUpdateCursor();\r\n this.cursorPos = this._changingCursorPos;\r\n }, 10);\r\n }\r\n\r\n _abortUpdateCursor() {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _onInput (ev) {\r\n this._abortUpdateCursor();\r\n this.processInput(this.el.value);\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n // override\r\n resolve (str, details) { return str; }\r\n\r\n _calcUnmasked (value) { return value; }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass RegExpMask extends BaseMask {\r\n resolve (str) {\r\n return this.mask.test(str);\r\n }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass FuncMask extends BaseMask {\r\n resolve (...args) {\r\n return this.mask(...args);\r\n }\r\n}\r\n","import {conform, indexInDirection, DIRECTION} from '../utils';\r\nimport BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass PatternMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this._hollows = [];\r\n this.placeholder = opts.placeholder;\r\n this.definitions = {\r\n ...PatternMask.DEFINITIONS,\r\n ...opts.definitions\r\n };\r\n\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n _installDefinitions (definitions) {\r\n this._definitions = definitions;\r\n this._charDefs = [];\r\n this._alignStops = [];\r\n\r\n var pattern = this.mask;\r\n if (!pattern || !definitions) return;\r\n\r\n var unmaskingBlock = false;\r\n var optionalBlock = false;\r\n for (var i=0; i= 0;\r\n }\r\n\r\n _isHiddenHollow (defIndex) {\r\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\r\n }\r\n\r\n _isInput (defIndex) {\r\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\r\n }\r\n\r\n _hollowsBefore (defIndex) {\r\n return this._hollows.filter(h => h < defIndex && this._isHiddenHollow(h));\r\n }\r\n\r\n _mapDefIndexToPos (defIndex) {\r\n return defIndex - this._hollowsBefore(defIndex).length;\r\n }\r\n\r\n _mapPosToDefIndex (pos) {\r\n var defIndex = pos;\r\n for (var hi=0; hi= defIndex) break;\r\n if (this._isHiddenHollow(h)) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _generateInsertSteps (head, inserted) {\r\n var overflow = false;\r\n\r\n // save hollow during generation\r\n var hollows = this._hollows;\r\n\r\n var insertSteps = [[head, hollows.slice()]];\r\n\r\n for (var ci=0; ci s >= tailDefIndex)\r\n .map(s => this._mapDefIndexToPos(s))\r\n ];\r\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\r\n\r\n // remove hollows after cursor\r\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\r\n this._hollows = this._hollows.filter(h => h < lastHollowIndex);\r\n\r\n var res = details.head;\r\n // if remove at left - adjust start change pos\r\n if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\r\n\r\n // insert available\r\n var insertSteps = this._generateInsertSteps(res, inserted);\r\n for (var istep=insertSteps.length-1; istep >= 0; --istep) {\r\n var step, tres, overflow;\r\n [step, this._hollows] = insertSteps[istep];\r\n [tres, this._hollows, overflow] = this._appendTailChunks(step, tailInputChunks);\r\n if (!overflow) {\r\n res = tres;\r\n cursorPos = step.length;\r\n break;\r\n }\r\n }\r\n\r\n res = this._appendPlaceholderEnd(res);\r\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\r\n\r\n return res;\r\n }\r\n\r\n _fireChangeEvents () {\r\n // fire 'complete' after 'accept' event\r\n super._fireChangeEvents();\r\n if (this.isComplete) this.fireEvent(\"complete\");\r\n }\r\n\r\n get isComplete () {\r\n for (var di=0; ;++di) {\r\n var def = this.def(di);\r\n if (!def) break;\r\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n _appendFixedEnd (res) {\r\n for (var di=this._mapPosToDefIndex(res.length); ; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isHiddenHollow(di)) continue;\r\n if (this._isInput(di)) break;\r\n if (di >= res.length) res += def.char;\r\n }\r\n return res;\r\n }\r\n\r\n _appendPlaceholderEnd (res, toPos) {\r\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\r\n for (var di=this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isInput(di) && !this._isHollow(di)) {\r\n this._hollows.push(di);\r\n }\r\n if (this._placeholder.show === 'always' || toPos) {\r\n res += def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '';\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n _calcUnmasked (str) {\r\n var unmasked = '';\r\n for (var ci=0, di=0; ci\r\n def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '').join('');\r\n }\r\n\r\n get definitions () { return this._definitions; }\r\n\r\n set definitions (defs) {\r\n this._installDefinitions(defs);\r\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\r\n }\r\n\r\n get mask () { return this._mask; }\r\n\r\n set mask (mask) {\r\n this._mask = mask;\r\n if (this._initialized) this.definitions = this.definitions;\r\n }\r\n\r\n defs (str) {\r\n var defs = [];\r\n for (var i=0; ;++i) {\r\n var def = this.def(i, str);\r\n if (!def) break;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n\r\n def (index, str) {\r\n return this._charDefs[index];\r\n }\r\n\r\n _nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\r\n var di = initialDefIndex;\r\n\r\n var firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\r\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n var overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (this._isInput(nextdi)) {\r\n firstInputIndex = di;\r\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || !this.def(nextdi);\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this._mapDefIndexToPos(di);\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this._nearestInputPos(this.cursorPos);\r\n }\r\n}\r\nPatternMask.DEFINITIONS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternMask.DEF_TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n}\r\nPatternMask.DEFAULT_PLACEHOLDER = {\r\n show: 'lazy',\r\n char: '_'\r\n};\r\nPatternMask.STOP_CHAR = '\\'';\r\nPatternMask.ESCAPE_CHAR = '\\\\';\r\n","import BaseMask from './base';\r\nimport {extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass PipeMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this.multipass = opts.multipass;\r\n\r\n this._compiledMasks = this.mask.map(m => IMask.MaskFactory(el, m));\r\n }\r\n\r\n resolve (str, details) {\r\n var res = this._pipe(str, details);\r\n if (!this.multipass) return res;\r\n\r\n var cursorPos = details.cursorPos;\r\n\r\n var stepRes;\r\n var tempRes = res;\r\n\r\n while (stepRes !== tempRes) {\r\n stepRes = tempRes;\r\n tempRes = this._pipe(stepRes, {\r\n cursorPos: stepRes.length,\r\n oldValue: stepRes,\r\n oldSelection: {\r\n start: 0,\r\n end: stepRes.length\r\n }\r\n });\r\n }\r\n\r\n details.cursorPos = cursorPos - (res.length - stepRes.length);\r\n\r\n return stepRes;\r\n }\r\n\r\n _pipe (str, details) {\r\n return this._compiledMasks.reduce((s, m) => {\r\n var d = extendDetailsAdjustments(s, details);\r\n var res = m.resolve(s, d);\r\n details.cursorPos = d.cursorPos;\r\n return res;\r\n }, str);\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this._compiledMasks.forEach(m => {\r\n m.bindEvents();\r\n // disable basemask events for child masks\r\n BaseMask.prototype.unbindEvents.apply(m);\r\n });\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this._compiledMasks.forEach(m => m.unbindEvents());\r\n }\r\n}\r\n","import {isString} from './utils';\r\n\r\nimport BaseMask from './masks/base';\r\nimport RegExpMask from './masks/regexp';\r\nimport FuncMask from './masks/func';\r\nimport PatternMask from './masks/pattern';\r\nimport PipeMask from './masks/pipe';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n var mask = IMask.MaskFactory(el, opts);\r\n mask.bindEvents();\r\n // refresh\r\n mask.rawValue = el.value;\r\n return mask;\r\n}\r\n\r\nIMask.MaskFactory = function (el, opts) {\r\n var mask = opts.mask;\r\n if (mask instanceof BaseMask) return mask;\r\n if (mask instanceof RegExp) return new RegExpMask(el, opts);\r\n if (mask instanceof Array) return new PipeMask(el, opts);\r\n if (isString(mask)) return new PatternMask(el, opts);\r\n if (mask.prototype instanceof BaseMask) return new mask(el, opts);\r\n if (mask instanceof Function) return new FuncMask(el, opts);\r\n return new BaseMask(el, opts);\r\n}\r\nIMask.BaseMask = BaseMask;\r\nIMask.FuncMask = FuncMask;\r\nIMask.RegExpMask = RegExpMask;\r\nIMask.PatternMask = PatternMask;\r\nwindow.IMask = IMask;\r\n"],"names":["isString","str","String","conform","res","fallback","DIRECTION","extendDetailsAdjustments","details","cursorPos","oldSelection","oldValue","startChangePos","Math","min","start","insertedCount","removedCount","max","end","length","substring","substr","RIGHT","LEFT","indexInDirection","pos","direction","BaseMask","el","opts","mask","_listeners","_refreshingCount","_rawValue","_unmaskedValue","saveSelection","bind","_onInput","_onDrop","on","ev","handler","push","off","hIndex","indexOf","splice","bindEvents","addEventListener","unbindEvents","removeEventListener","fireEvent","listeners","forEach","l","processInput","inputValue","_selection","rawValue","unmaskedValue","resolve","updateElement","value","warn","selectionStart","destroy","_calcUnmasked","isChanged","updateCursor","_fireChangeEvents","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","preventDefault","stopPropagation","selectionEnd","document","activeElement","setSelectionRange","RegExpMask","test","FuncMask","PatternMask","_hollows","placeholder","definitions","DEFINITIONS","_alignCursor","_alignCursorFriendly","_initialized","_installDefinitions","_definitions","_charDefs","_alignStops","pattern","unmaskingBlock","optionalBlock","i","ch","type","DEF_TYPES","INPUT","FIXED","unmasking","optional","STOP_CHAR","ESCAPE_CHAR","_buildResolvers","_resolvers","defKey","IMask","MaskFactory","_appendTail","tail","skipUnresolvedInput","placeholderBuffer","hollows","slice","overflow","ci","di","_mapPosToDefIndex","_isHollow","def","resolver","char","chres","isResolved","_placeholder","_appendTailChunks","chunks","input","chunk2","stop2","_appendPlaceholderEnd","_extractInput","fromPos","toPos","toDefIndex","_isHiddenHollow","_isInput","_extractInputChunks","stops","si","s","s2","defIndex","_hollowsBefore","filter","h","_mapDefIndexToPos","hi","_generateInsertSteps","head","inserted","insertSteps","removed","tailPos","tailDefIndex","tailAlignStopsPos","map","tailInputChunks","lastHollowIndex","removeDirection","_nearestInputPos","istep","step","tres","isComplete","_appendFixedEnd","show","unmasked","defs","index","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","ph","DEFAULT_PLACEHOLDER","join","_mask","PipeMask","multipass","_compiledMasks","m","_pipe","stepRes","tempRes","reduce","d","prototype","apply","RegExp","Array","Function","window"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,QAAT,CAAmBC,GAAnB,EAAwB;SACf,OAAOA,GAAP,KAAe,QAAf,IAA2BA,eAAeC,MAAjD;;;AAGF,AACA,SAASC,OAAT,CAAkBC,GAAlB,EAAuBH,GAAvB,EAAyC;MAAbI,QAAa,uEAAJ,EAAI;;SAChCL,SAASI,GAAT,IACLA,GADK,GAELA,MACEH,GADF,GAEEI,QAJJ;;;AAOF,AACA,IAAIC,YAAY;QACR,CADQ;QAER,CAAC,CAFO;SAGP;CAHT;;AAOA,AACA,SAASC,wBAAT,CAAkCN,GAAlC,EAAuCO,OAAvC,EAAgD;MAC1CC,YAAYD,QAAQC,SAAxB;MACIC,eAAeF,QAAQE,YAA3B;MACIC,WAAWH,QAAQG,QAAvB;;MAEIC,iBAAiBC,KAAKC,GAAL,CAASL,SAAT,EAAoBC,aAAaK,KAAjC,CAArB;MACIC,gBAAgBP,YAAYG,cAAhC;;MAEIK,eAAeJ,KAAKK,GAAL,CAAUR,aAAaS,GAAb,GAAmBP,cAApB;;WAEjBQ,MAAT,GAAkBnB,IAAImB,MAFL,EAEa,CAFb,CAAnB;;sBAKKZ,OADL;kCAAA;UAGQP,IAAIoB,SAAJ,CAAc,CAAd,EAAiBT,cAAjB,CAHR;UAIQX,IAAIoB,SAAJ,CAAcT,iBAAiBI,aAA/B,CAJR;cAKYf,IAAIqB,MAAJ,CAAWV,cAAX,EAA2BI,aAA3B,CALZ;aAMWL,SAASW,MAAT,CAAgBV,cAAhB,EAAgCK,YAAhC,CANX;qBAOmBA,iBACbP,aAAaS,GAAb,KAAqBV,SAArB,IAAkCO,aAAnC,GACCV,UAAUiB,KADX,GAECjB,UAAUkB,IAHG;;;;AAQrB,AACA,SAASC,gBAAT,CAA2BC,GAA3B,EAAgCC,SAAhC,EAA2C;MACrCA,cAAcrB,UAAUkB,IAA5B,EAAkC,EAAEE,GAAF;SAC3BA,GAAP;;;ICjDIE;oBACSC,EAAb,EAAiBC,IAAjB,EAAuB;;;SAChBD,EAAL,GAAUA,EAAV;SACKE,IAAL,GAAYD,KAAKC,IAAjB;;SAEKC,UAAL,GAAkB,EAAlB;SACKC,gBAAL,GAAwB,CAAxB;SACKC,SAAL,GAAiB,EAAjB;SACKC,cAAL,GAAsB,EAAtB;;SAEKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAArB;SACKC,QAAL,GAAgB,KAAKA,QAAL,CAAcD,IAAd,CAAmB,IAAnB,CAAhB;SACKE,OAAL,GAAe,KAAKA,OAAL,CAAaF,IAAb,CAAkB,IAAlB,CAAf;;;qBAGFG,iBAAIC,IAAIC,SAAS;QACX,CAAC,KAAKV,UAAL,CAAgBS,EAAhB,CAAL,EAA0B,KAAKT,UAAL,CAAgBS,EAAhB,IAAsB,EAAtB;SACrBT,UAAL,CAAgBS,EAAhB,EAAoBE,IAApB,CAAyBD,OAAzB;WACO,IAAP;;;qBAGFE,mBAAKH,IAAIC,SAAS;QACZ,CAAC,KAAKV,UAAL,CAAgBS,EAAhB,CAAL,EAA0B;QACtB,CAACC,OAAL,EAAc;aACL,KAAKV,UAAL,CAAgBS,EAAhB,CAAP;;;QAGEI,SAAS,KAAKb,UAAL,CAAgBS,EAAhB,EAAoBK,OAApB,CAA4BJ,OAA5B,CAAb;QACIG,UAAU,CAAd,EAAiB,KAAKb,UAAL,CAAgBe,MAAhB,CAAuBF,MAAvB,EAA+B,CAA/B;WACV,IAAP;;;qBA2BFG,mCAAc;SACPnB,EAAL,CAAQoB,gBAAR,CAAyB,SAAzB,EAAoC,KAAKb,aAAzC;SACKP,EAAL,CAAQoB,gBAAR,CAAyB,OAAzB,EAAkC,KAAKX,QAAvC;SACKT,EAAL,CAAQoB,gBAAR,CAAyB,MAAzB,EAAiC,KAAKV,OAAtC;;;qBAGFW,uCAAgB;SACTrB,EAAL,CAAQsB,mBAAR,CAA4B,SAA5B,EAAuC,KAAKf,aAA5C;SACKP,EAAL,CAAQsB,mBAAR,CAA4B,OAA5B,EAAqC,KAAKb,QAA1C;SACKT,EAAL,CAAQsB,mBAAR,CAA4B,MAA5B,EAAoC,KAAKZ,OAAzC;;;qBAGFa,+BAAWX,IAAI;QACTY,YAAY,KAAKrB,UAAL,CAAgBS,EAAhB,KAAuB,EAAvC;cACUa,OAAV,CAAkB;aAAKC,GAAL;KAAlB;;;qBAGFC,qCAAcC,YAAYjD,SAAS;;iBAEpB,KAAKC,SADlB;oBAEgB,KAAKiD,UAFrB;gBAGY,KAAKC,QAHjB;wBAIoB,KAAKC;OACpBpD,OALL;;cAQUD,yBAAyBkD,UAAzB,EAAqCjD,OAArC,CAAV;;QAEIJ,MAAMD,QAAQ,KAAK0D,OAAL,CAAaJ,UAAb,EAAyBjD,OAAzB,CAAR,EACRiD,UADQ,EAER,KAAKE,QAFG,CAAV;;SAIKG,aAAL,CAAmB1D,GAAnB,EAAwBI,QAAQC,SAAhC;WACOL,GAAP;;;qBAyBFgC,uCAAeK,IAAI;QACb,KAAKkB,QAAL,KAAkB,KAAK9B,EAAL,CAAQkC,KAA9B,EAAqC;cAC3BC,IAAR,CAAa,mDAAb;;SAEGN,UAAL,GAAkB;aACT,KAAKO,cADI;WAEX,KAAKxD;KAFZ;;;qBAMFyD,6BAAW;SACJhB,YAAL;SACKlB,UAAL,CAAgBZ,MAAhB,GAAyB,CAAzB;;;qBAGF0C,uCAAeC,OAAOtD,WAAW;QAC3BmD,gBAAgB,KAAKO,aAAL,CAAmBJ,KAAnB,CAApB;QACIK,YAAa,KAAKR,aAAL,KAAuBA,aAAvB,IACf,KAAKD,QAAL,KAAkBI,KADpB;;SAGK5B,cAAL,GAAsByB,aAAtB;SACK1B,SAAL,GAAiB6B,KAAjB;;QAEI,KAAKlC,EAAL,CAAQkC,KAAR,KAAkBA,KAAtB,EAA6B,KAAKlC,EAAL,CAAQkC,KAAR,GAAgBA,KAAhB;SACxBM,YAAL,CAAkB5D,SAAlB;;QAEI2D,SAAJ,EAAe,KAAKE,iBAAL;;;qBAGjBA,iDAAqB;SACdlB,SAAL,CAAe,QAAf;;;qBAGFiB,qCAAc5D,WAAW;QACnBA,aAAa,IAAjB,EAAuB;SAClBA,SAAL,GAAiBA,SAAjB;;;SAGK8D,kBAAL,CAAwB9D,SAAxB;;;qBAGF8D,iDAAoB9D,WAAW;;;SACxB+D,kBAAL;SACKC,kBAAL,GAA0BhE,SAA1B;SACKiE,eAAL,GAAuBC,WAAW,YAAM;YACjCH,kBAAL;YACK/D,SAAL,GAAiB,MAAKgE,kBAAtB;KAFqB,EAGpB,EAHoB,CAAvB;;;qBAMFD,mDAAqB;QACf,KAAKE,eAAT,EAA0B;mBACX,KAAKA,eAAlB;aACO,KAAKA,eAAZ;;;;qBAIJpC,6BAAUG,IAAI;SACP+B,kBAAL;SACKhB,YAAL,CAAkB,KAAK3B,EAAL,CAAQkC,KAA1B;;;qBAGFxB,2BAASE,IAAI;OACRmC,cAAH;OACGC,eAAH;;;;;;qBAIFhB,2BAAS5D,KAAKO,SAAS;WAASP,GAAP;;;qBAEzBkE,uCAAeJ,OAAO;WAASA,KAAP;;;;;2BAxJR;aACP,KAAK7B,SAAZ;;yBAGYjC,KAAK;WACZuD,YAAL,CAAkBvD,GAAlB,EAAuB;mBACVA,IAAImB,MADM;kBAEX,KAAKuC,QAFM;sBAGP;iBACL,CADK;eAEP,KAAKA,QAAL,CAAcvC;;OALvB;;;;2BAUmB;aACZ,KAAKe,cAAZ;;yBAGiB4B,OAAO;WACnBJ,QAAL,GAAgBI,KAAhB;;;;2BAyCoB;aACb,KAAKW,eAAL,GACL,KAAKD,kBADA,GAGL,KAAK5C,EAAL,CAAQoC,cAHV;;;;2BAMe;aACR,KAAKS,eAAL,GACL,KAAKD,kBADA,GAGL,KAAK5C,EAAL,CAAQiD,YAHV;;yBAMapD,KAAK;UACd,KAAKG,EAAL,KAAYkD,SAASC,aAAzB,EAAwC;;WAEnCnD,EAAL,CAAQoD,iBAAR,CAA0BvD,GAA1B,EAA+BA,GAA/B;WACKU,aAAL;;;;;;IC/GE8C;;;;;;;;uBACJrB,2BAAS5D,KAAK;WACL,KAAK8B,IAAL,CAAUoD,IAAV,CAAelF,GAAf,CAAP;;;;EAFqB2B;;ICAnBwD;;;;;;;;qBACJvB,6BAAkB;WACT,KAAK9B,IAAL,uBAAP;;;;EAFmBH;;ICCjByD;;;uBACSxD,EAAb,EAAiBC,IAAjB,EAAuB;;;gDACrB,qBAAMD,EAAN,EAAUC,IAAV,CADqB;;UAGhBwD,QAAL,GAAgB,EAAhB;UACKC,WAAL,GAAmBzD,KAAKyD,WAAxB;UACKC,WAAL,gBACKH,YAAYI,WADjB,EAEK3D,KAAK0D,WAFV;;UAKKE,YAAL,GAAoB,MAAKA,YAAL,CAAkBrD,IAAlB,OAApB;UACKsD,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BtD,IAA1B,OAA5B;;UAEKuD,YAAL,GAAoB,IAApB;;;;wBAGFD,uDAAwB;QAClB,KAAK1B,cAAL,KAAwB,KAAKxD,SAAjC,EAA4C;SACvCiF,YAAL;;;wBAGF1C,mCAAc;wBACNA,UAAN;SACKnB,EAAL,CAAQoB,gBAAR,CAAyB,OAAzB,EAAkC,KAAK0C,oBAAvC;;;wBAGFzC,uCAAgB;wBACRA,YAAN;SACKrB,EAAL,CAAQsB,mBAAR,CAA4B,OAA5B,EAAqC,KAAKwC,oBAA1C;;;wBAGFE,mDAAqBL,aAAa;SAC3BM,YAAL,GAAoBN,WAApB;SACKO,SAAL,GAAiB,EAAjB;SACKC,WAAL,GAAmB,EAAnB;;QAEIC,UAAU,KAAKlE,IAAnB;QACI,CAACkE,OAAD,IAAY,CAACT,WAAjB,EAA8B;;QAE1BU,iBAAiB,KAArB;QACIC,gBAAgB,KAApB;SACK,IAAIC,IAAE,CAAX,EAAcA,IAAEH,QAAQ7E,MAAxB,EAAgC,EAAEgF,CAAlC,EAAqC;UAC/BC,KAAKJ,QAAQG,CAAR,CAAT;UACIE,OAAO,CAACJ,cAAD,IAAmBG,MAAMb,WAAzB,GACTH,YAAYkB,SAAZ,CAAsBC,KADb,GAETnB,YAAYkB,SAAZ,CAAsBE,KAFxB;UAGIC,YAAYJ,SAASjB,YAAYkB,SAAZ,CAAsBC,KAA/B,IAAwCN,cAAxD;UACIS,WAAWL,SAASjB,YAAYkB,SAAZ,CAAsBC,KAA/B,IAAwCL,aAAvD;;UAEIE,OAAOhB,YAAYuB,SAAvB,EAAkC;aAC3BZ,WAAL,CAAiBrD,IAAjB,CAAsB,KAAKoD,SAAL,CAAe3E,MAArC;;;;UAIEiF,OAAO,GAAP,IAAcA,OAAO,GAAzB,EAA8B;yBACX,CAACH,cAAlB;;;;UAIEG,OAAO,GAAP,IAAcA,OAAO,GAAzB,EAA8B;wBACZ,CAACF,aAAjB;;;;UAIEE,OAAOhB,YAAYwB,WAAvB,EAAoC;UAChCT,CAAF;aACKH,QAAQG,CAAR,CAAL;;YAEI,CAACC,EAAL,EAAS;eACFhB,YAAYkB,SAAZ,CAAsBE,KAA7B;;;WAGGV,SAAL,CAAepD,IAAf,CAAoB;cACZ0D,EADY;cAEZC,IAFY;kBAGRK,QAHQ;mBAIPD;OAJb;;;SAQGI,eAAL;;;wBAGFA,6CAAmB;SACZC,UAAL,GAAkB,EAAlB;SACK,IAAIC,MAAT,IAAmB,KAAKxB,WAAxB,EAAqC;WAC9BuB,UAAL,CAAgBC,MAAhB,IAA0BC,MAAMC,WAAN,CAAkB,KAAKrF,EAAvB,EAA2B;cAC7C,KAAK2D,WAAL,CAAiBwB,MAAjB;OADkB,CAA1B;;;;wBAMJG,mCAAalH,KAAKmH,MAAgC;QAA1BC,mBAA0B,uEAAN,IAAM;;QAC5CC,oBAAoB,EAAxB;QACIC,UAAU,KAAKjC,QAAL,CAAckC,KAAd,EAAd;QACIC,WAAW,KAAf;;SAEK,IAAIC,KAAG,CAAP,EAAUC,KAAG,KAAKC,iBAAL,CAAuB3H,IAAImB,MAA3B,CAAlB,EAAsDsG,KAAKN,KAAKhG,MAAhE,GAAyE;UACnE,KAAKyG,SAAL,CAAeF,EAAf,CAAJ,EAAwB;;UAEpBA,EAAF;;;;UAIEtB,KAAKe,KAAKM,EAAL,CAAT;UACII,MAAM,KAAKA,GAAL,CAASH,EAAT,EAAa1H,MAAMqH,iBAAnB,CAAV;;;UAGI,CAACQ,GAAL,EAAU;mBACG,IAAX;;;;UAIEA,IAAIxB,IAAJ,KAAajB,YAAYkB,SAAZ,CAAsBC,KAAvC,EAA8C;YACxCuB,WAAW,KAAKhB,UAAL,CAAgBe,IAAIE,IAApB,CAAf;YACIC,QAAQF,SAASlE,OAAT,CAAiBwC,EAAjB,EAAqBsB,EAArB,EAAyB1H,MAAMqH,iBAA/B,KAAqD,EAAjE;YACIY,aAAa,CAAC,CAACD,KAAnB;;;YAGIA,KAAJ,EAAW;kBACD9H,QAAQ8H,KAAR,EAAe5B,EAAf,CAAR;SADF,MAEO;cACD,CAACyB,IAAInB,QAAL,IAAiBU,mBAArB,EAA0CY,QAAQ,KAAKE,YAAL,CAAkBH,IAA1B;;cAEtCT,QAAQzE,OAAR,CAAgB6E,EAAhB,IAAsB,CAA1B,EAA6BJ,QAAQ5E,IAAR,CAAagF,EAAb;;;YAG3BM,KAAJ,EAAW;iBACFX,oBAAoBnH,QAAQ8H,KAAR,EAAe5B,EAAf,CAA3B;8BACoB,EAApB;;YAEE4B,SAASH,IAAInB,QAAb,IAAyB,CAACU,mBAA9B,EAAmD,EAAEM,EAAF;YAC/CO,cAAc,CAACJ,IAAInB,QAAL,IAAiB,CAACU,mBAApC,EAAyD,EAAEK,EAAF;OAnB3D,MAoBO;6BACgBI,IAAIE,IAAzB;;YAEI3B,OAAOyB,IAAIE,IAAX,KAAoBF,IAAIpB,SAAJ,IAAiB,CAACW,mBAAtC,CAAJ,EAAgE,EAAEK,EAAF;UAC9DC,EAAF;;;;WAIG,CAAC1H,GAAD,EAAMsH,OAAN,EAAeE,QAAf,CAAP;;;wBAGFW,+CAAmBnI,KAAKoI,QAAQhB,qBAAqB;QAC/CI,WAAW,KAAf;SACK,IAAIC,KAAG,CAAZ,EAAeA,KAAKW,OAAOjH,MAA3B,EAAmC,EAAEsG,EAArC,EAAyC;uBACvBW,OAAOX,EAAP,CADuB;UAChCY,KADgC;;yBAEN,KAAKnB,WAAL,CAAiBlH,GAAjB,EAAsBqI,KAAtB,EAA6BjB,mBAA7B,CAFM;;SAAA;WAE5B/B,QAF4B;cAAA;;UAGnCmC,QAAJ,EAAc;;;UAGVc,SAASF,OAAOX,KAAG,CAAV,CAAb;UACIc,QAAQD,UAAUA,OAAO,CAAP,CAAtB;UACIC,KAAJ,EAAWvI,MAAM,KAAKwI,qBAAL,CAA2BxI,GAA3B,EAAgCuI,KAAhC,CAAN;;WAEN,CAACvI,GAAD,EAAM,KAAKqF,QAAX,EAAqBmC,QAArB,CAAP;;;wBAGFiB,uCAAezI,KAAuB;QAAlB0I,OAAkB,uEAAV,CAAU;QAAPC,KAAO;;QAChCN,QAAQ,EAAZ;;QAEIO,aAAaD,SAAS,KAAKhB,iBAAL,CAAuBgB,KAAvB,CAA1B;SACK,IAAIlB,KAAG,CAAP,EAAUC,KAAG,KAAKC,iBAAL,CAAuBe,OAAvB,CAAlB,EAAmDjB,KAAGzH,IAAImB,MAAP,KAAkB,CAACyH,UAAD,IAAelB,KAAKkB,UAAtC,CAAnD,EAAsG,EAAElB,EAAxG,EAA4G;UACtGtB,KAAKpG,IAAIyH,EAAJ,CAAT;UACII,MAAM,KAAKA,GAAL,CAASH,EAAT,EAAa1H,GAAb,CAAV;;UAEI,CAAC6H,GAAL,EAAU;UACN,KAAKgB,eAAL,CAAqBnB,EAArB,CAAJ,EAA8B;;UAE1B,KAAKoB,QAAL,CAAcpB,EAAd,KAAqB,CAAC,KAAKE,SAAL,CAAeF,EAAf,CAA1B,EAA8CW,SAASjC,EAAT;QAC5CqB,EAAF;;WAEKY,KAAP;;;wBAGFU,mDAAqB/I,KAAKgJ,OAAO;QAC3BZ,SAAS,EAAb;SACK,IAAIa,KAAG,CAAZ,EAAeA,KAAGD,MAAM7H,MAAT,IAAmBnB,GAAlC,EAAuC,EAAEiJ,EAAzC,EAA6C;UACvCC,IAAIF,MAAMC,EAAN,CAAR;UACIE,KAAKH,MAAMC,KAAG,CAAT,CAAT;aACOvG,IAAP,CAAY,CAACwG,CAAD,EAAI,KAAKT,aAAL,CAAmBzI,GAAnB,EAAwBkJ,CAAxB,EAA2BC,EAA3B,CAAJ,CAAZ;UACIA,EAAJ,EAAQnJ,MAAMA,IAAIuH,KAAJ,CAAU4B,KAAKD,CAAf,CAAN;;WAEHd,MAAP;;;wBAGFR,+BAAWwB,UAAU;WACZ,KAAK/D,QAAL,CAAcxC,OAAd,CAAsBuG,QAAtB,KAAmC,CAA1C;;;wBAGFP,2CAAiBO,UAAU;WAClB,KAAKxB,SAAL,CAAewB,QAAf,KAA4B,KAAKvB,GAAL,CAASuB,QAAT,CAA5B,IAAkD,KAAKvB,GAAL,CAASuB,QAAT,EAAmB1C,QAA5E;;;wBAGFoC,6BAAUM,UAAU;WACX,KAAKvB,GAAL,CAASuB,QAAT,KAAsB,KAAKvB,GAAL,CAASuB,QAAT,EAAmB/C,IAAnB,KAA4BjB,YAAYkB,SAAZ,CAAsBC,KAA/E;;;wBAGF8C,yCAAgBD,UAAU;;;WACjB,KAAK/D,QAAL,CAAciE,MAAd,CAAqB;aAAKC,IAAIH,QAAJ,IAAgB,OAAKP,eAAL,CAAqBU,CAArB,CAArB;KAArB,CAAP;;;wBAGFC,+CAAmBJ,UAAU;WACpBA,WAAW,KAAKC,cAAL,CAAoBD,QAApB,EAA8BjI,MAAhD;;;wBAGFwG,+CAAmBlG,KAAK;QAClB2H,WAAW3H,GAAf;SACK,IAAIgI,KAAG,CAAZ,EAAeA,KAAG,KAAKpE,QAAL,CAAclE,MAAhC,EAAwC,EAAEsI,EAA1C,EAA8C;UACxCF,IAAI,KAAKlE,QAAL,CAAcoE,EAAd,CAAR;UACIF,KAAKH,QAAT,EAAmB;UACf,KAAKP,eAAL,CAAqBU,CAArB,CAAJ,EAA6B,EAAEH,QAAF;;WAExBA,QAAP;;;wBAGFM,qDAAsBC,MAAMC,UAAU;QAChCpC,WAAW,KAAf;;;QAGIF,UAAU,KAAKjC,QAAnB;;QAEIwE,cAAc,CAAC,CAACF,IAAD,EAAOrC,QAAQC,KAAR,EAAP,CAAD,CAAlB;;SAEK,IAAIE,KAAG,CAAZ,EAAeA,KAAGmC,SAASzI,MAAZ,IAAsB,CAACqG,QAAtC,EAAgD,EAAEC,EAAlD,EAAsD;UAChDrB,KAAKwD,SAASnC,EAAT,CAAT;;yBAC+B,KAAKP,WAAL,CAAiByC,IAAjB,EAAuBvD,EAAvB,EAA2B,KAA3B,CAFqB;UAE/CjG,GAF+C;UAE1CmH,OAF0C;UAEjCE,QAFiC;;WAG/CnC,QAAL,GAAgBiC,OAAhB;UACI,CAACE,QAAD,IAAarH,QAAQwJ,IAAzB,EAA+B;oBACjBjH,IAAZ,CAAiB,CAACvC,GAAD,EAAMmH,OAAN,CAAjB;eACOnH,GAAP;;;;;SAKCkF,QAAL,GAAgBiC,OAAhB;;WAEOuC,WAAP;;;wBAGFjG,2BAAS5D,KAAKO,SAAS;;;QACjBC,YAAYD,QAAQC,SAAxB;QACIG,iBAAiBJ,QAAQI,cAA7B;QACIiJ,WAAWrJ,QAAQqJ,QAAvB;QACI5I,eAAeT,QAAQuJ,OAAR,CAAgB3I,MAAnC;QACI4I,UAAUpJ,iBAAiBK,YAA/B;QACIgJ,eAAe,KAAKrC,iBAAL,CAAuBoC,OAAvB,CAAnB;QACIE,qBACFF,OADE,SAEC,KAAKhE,WAAL,CACAuD,MADA,CACO;aAAKJ,KAAKc,YAAV;KADP,EAEAE,GAFA,CAEI;aAAK,OAAKV,iBAAL,CAAuBN,CAAvB,CAAL;KAFJ,CAFD,CAAJ;QAMIiB,kBAAkB,KAAKpB,mBAAL,CAAyBxI,QAAQ4G,IAAjC,EAAuC8C,iBAAvC,CAAtB;;;QAGIG,kBAAkB,KAAKzC,iBAAL,CAAuBhH,cAAvB,CAAtB;SACK0E,QAAL,GAAgB,KAAKA,QAAL,CAAciE,MAAd,CAAqB;aAAKC,IAAIa,eAAT;KAArB,CAAhB;;QAEIjK,MAAMI,QAAQoJ,IAAlB;;QAEIpJ,QAAQ8J,eAAR,KAA4BhK,UAAUkB,IAA1C,EAAgDpB,MAAMA,IAAIoH,KAAJ,CAAU,CAAV,EAAa,KAAK+C,gBAAL,CAAsB3J,cAAtB,CAAb,CAAN;;;QAG5CkJ,cAAc,KAAKH,oBAAL,CAA0BvJ,GAA1B,EAA+ByJ,QAA/B,CAAlB;SACK,IAAIW,QAAMV,YAAY1I,MAAZ,GAAmB,CAAlC,EAAqCoJ,SAAS,CAA9C,EAAiD,EAAEA,KAAnD,EAA0D;UACpDC,IAAJ,EAAUC,IAAV,EAAgBjD,QAAhB;+BACwBqC,YAAYU,KAAZ,CAFgC;UAAA;WAE5ClF,QAF4C;;+BAGtB,KAAK8C,iBAAL,CAAuBqC,IAAvB,EAA6BL,eAA7B,CAHsB;;UAAA;WAG5C9E,QAH4C;cAAA;;UAIpD,CAACmC,QAAL,EAAe;cACPiD,IAAN;oBACYD,KAAKrJ,MAAjB;;;;;UAKE,KAAKqH,qBAAL,CAA2BrI,GAA3B,CAAN;YACQK,SAAR,GAAoB,KAAK8J,gBAAL,CAAsB9J,SAAtB,EAAiCD,QAAQ8J,eAAzC,CAApB;;WAEOlK,GAAP;;;wBAGFkE,iDAAqB;;wBAEbA,iBAAN;QACI,KAAKqG,UAAT,EAAqB,KAAKvH,SAAL,CAAe,UAAf;;;wBAYvBwH,2CAAiBxK,KAAK;SACf,IAAIuH,KAAG,KAAKC,iBAAL,CAAuBxH,IAAIgB,MAA3B,CAAZ,GAAkD,EAAEuG,EAApD,EAAwD;UAClDG,MAAM,KAAKA,GAAL,CAASH,EAAT,EAAavH,GAAb,CAAV;UACI,CAAC0H,GAAL,EAAU;;UAEN,KAAKgB,eAAL,CAAqBnB,EAArB,CAAJ,EAA8B;UAC1B,KAAKoB,QAAL,CAAcpB,EAAd,CAAJ,EAAuB;UACnBA,MAAMvH,IAAIgB,MAAd,EAAsBhB,OAAO0H,IAAIE,IAAX;;WAEjB5H,GAAP;;;wBAGFqI,uDAAuBrI,KAAKwI,OAAO;QAC7BC,aAAaD,SAAS,KAAKhB,iBAAL,CAAuBgB,KAAvB,CAA1B;SACK,IAAIjB,KAAG,KAAKC,iBAAL,CAAuBxH,IAAIgB,MAA3B,CAAZ,EAAgD,CAACyH,UAAD,IAAelB,KAAKkB,UAApE,EAAgF,EAAElB,EAAlF,EAAsF;UAChFG,MAAM,KAAKA,GAAL,CAASH,EAAT,EAAavH,GAAb,CAAV;UACI,CAAC0H,GAAL,EAAU;;UAEN,KAAKiB,QAAL,CAAcpB,EAAd,KAAqB,CAAC,KAAKE,SAAL,CAAeF,EAAf,CAA1B,EAA8C;aACvCrC,QAAL,CAAc3C,IAAd,CAAmBgF,EAAnB;;UAEE,KAAKQ,YAAL,CAAkB0C,IAAlB,KAA2B,QAA3B,IAAuCjC,KAA3C,EAAkD;eACzCd,IAAIxB,IAAJ,KAAajB,YAAYkB,SAAZ,CAAsBE,KAAnC,GACLqB,IAAIE,IADC,GAEL,CAACF,IAAInB,QAAL,GACE,KAAKwB,YAAL,CAAkBH,IADpB,GAEE,EAJJ;;;WAOG5H,GAAP;;;wBAGF+D,uCAAelE,KAAK;QACd6K,WAAW,EAAf;SACK,IAAIpD,KAAG,CAAP,EAAUC,KAAG,CAAlB,EAAqBD,KAAGzH,IAAImB,MAA5B,EAAoC,EAAEuG,EAAtC,EAA0C;UACpCtB,KAAKpG,IAAIyH,EAAJ,CAAT;UACII,MAAM,KAAKA,GAAL,CAASH,EAAT,EAAa1H,GAAb,CAAV;;UAEI,CAAC6H,GAAL,EAAU;UACN,KAAKgB,eAAL,CAAqBnB,EAArB,CAAJ,EAA8B;;UAE1BG,IAAIpB,SAAJ,IAAiB,CAAC,KAAKmB,SAAL,CAAeF,EAAf,CAAlB,KACD,KAAKoB,QAAL,CAAcpB,EAAd,KAAqB,KAAKZ,UAAL,CAAgBe,IAAIE,IAApB,EAA0BnE,OAA1B,CAAkCwC,EAAlC,EAAsCqB,EAAtC,EAA0CzH,GAA1C,CAArB,IACC6H,IAAIE,IAAJ,KAAa3B,EAFb,CAAJ,EAEsB;oBACRA,EAAZ;;QAEAqB,EAAF;;WAEKoD,QAAP;;;wBAiDFC,qBAAM9K,KAAK;QACL8K,OAAO,EAAX;SACK,IAAI3E,IAAE,CAAX,GAAe,EAAEA,CAAjB,EAAoB;UACd0B,MAAM,KAAKA,GAAL,CAAS1B,CAAT,EAAYnG,GAAZ,CAAV;UACI,CAAC6H,GAAL,EAAU;WACLnF,IAAL,CAAUmF,GAAV;;WAEKiD,IAAP;;;wBAGFjD,mBAAKkD,OAAO/K,KAAK;WACR,KAAK8F,SAAL,CAAeiF,KAAf,CAAP;;;wBAGFT,6CAAkB9J,WAAqC;QAA1BkB,SAA0B,uEAAhBrB,UAAUkB,IAAM;;QACjD,CAACG,SAAL,EAAgB,OAAOlB,SAAP;;QAEZwK,kBAAkB,KAAKrD,iBAAL,CAAuBnH,SAAvB,CAAtB;QACIkH,KAAKsD,eAAT;;QAEIC,eAAJ,EACIC,qBADJ,EAEIC,uBAFJ,EAGIC,MAHJ;;;SAMKA,SAAS5J,iBAAiBkG,EAAjB,EAAqBhG,SAArB,CAAd,EAA+C,KAAKmG,GAAL,CAASuD,MAAT,CAA/C,EAAiE1D,MAAMhG,SAAN,EAAiB0J,UAAU1J,SAA5F,EAAuG;UACjGuJ,mBAAmB,IAAnB,IAA2B,KAAKnC,QAAL,CAAcsC,MAAd,CAA/B,EAAsDH,kBAAkBvD,EAAlB;UAClDyD,2BAA2B,IAA3B,IAAmC,KAAKvD,SAAL,CAAewD,MAAf,CAAnC,IAA6D,CAAC,KAAKvC,eAAL,CAAqBuC,MAArB,CAAlE,EAAgGD,0BAA0BzD,EAA1B;UAC5F,KAAKoB,QAAL,CAAcsC,MAAd,KAAyB,CAAC,KAAKxD,SAAL,CAAewD,MAAf,CAA9B,EAAsD;gCAC5B1D,EAAxB;;;;;QAKAhG,cAAcrB,UAAUkB,IAAxB,IAAgC0J,mBAAmB,IAAvD,EAA6D;;kBAE/C,CAACvJ,SAAb;UACI8F,WAAW,KAAf;;;WAGK4D,SAAS5J,iBAAiBkG,EAAjB,EAAqBhG,SAArB,CAAd,EAA+C,KAAKmG,GAAL,CAASuD,MAAT,CAA/C,EAAiE1D,MAAMhG,SAAN,EAAiB0J,UAAU1J,SAA5F,EAAuG;YACjG,KAAKoH,QAAL,CAAcsC,MAAd,CAAJ,EAA2B;4BACP1D,EAAlB;cACI,KAAKE,SAAL,CAAewD,MAAf,KAA0B,CAAC,KAAKvC,eAAL,CAAqBuC,MAArB,CAA/B,EAA6D;;;;;YAK3D1D,OAAOsD,eAAX,EAA4BxD,WAAW,IAAX;;;YAGxBA,YAAYyD,mBAAmB,IAAnC,EAAyC;;;;iBAIhCzD,YAAY,CAAC,KAAKK,GAAL,CAASuD,MAAT,CAAxB;UACI5D,YAAYyD,mBAAmB,IAAnC,EAAyCvD,KAAKuD,eAAL;KAtB3C,MAuBO,IAAIC,yBAAyB,IAA7B,EAAmC;;WAEnCC,2BAA2B,IAA3B,GACHA,uBADG,GAEHF,eAFF;;;WAKK,KAAKzB,iBAAL,CAAuB9B,EAAvB,CAAP;;;wBAGFjC,uCAAgB;SACTjF,SAAL,GAAiB,KAAK8J,gBAAL,CAAsB,KAAK9J,SAA3B,CAAjB;;;;;2BA/KgB;WACX,IAAIkH,KAAG,CAAZ,GAAgB,EAAEA,EAAlB,EAAsB;YAChBG,MAAM,KAAKA,GAAL,CAASH,EAAT,CAAV;YACI,CAACG,GAAL,EAAU;YACN,KAAKiB,QAAL,CAAcpB,EAAd,KAAqB,CAACG,IAAInB,QAA1B,IAAsC,KAAKkB,SAAL,CAAeF,EAAf,CAA1C,EAA8D,OAAO,KAAP;;aAEzD,IAAP;;;;2BAsDmB;aACZ,KAAKxF,cAAZ;;yBAGiBlC,KAAK;WACjBqF,QAAL,CAAclE,MAAd,GAAuB,CAAvB;UACIhB,GAAJ;;yBACuB,KAAK+G,WAAL,CAAiB,EAAjB,EAAqBlH,GAArB,CAHD;;SAAA;WAGXqF,QAHW;;WAIjBxB,aAAL,CAAmB,KAAK2E,qBAAL,CAA2BrI,GAA3B,CAAnB;;WAEKsF,YAAL;;;;2BAGiB;aAAS,KAAKyC,YAAZ;;yBAEJmD,IAAI;WACdnD,YAAL,gBACK9C,YAAYkG,mBADjB,EAEKD,EAFL;UAII,KAAK1F,YAAT,EAAuB,KAAKhC,aAAL,GAAqB,KAAKA,aAA1B;;;;2BAGD;;;aACf,KAAKmH,IAAL,GAAYZ,GAAZ,CAAgB;eACrBrC,IAAIxB,IAAJ,KAAajB,YAAYkB,SAAZ,CAAsBE,KAAnC,GACEqB,IAAIE,IADN,GAEE,CAACF,IAAInB,QAAL,GACE,OAAKwB,YAAL,CAAkBH,IADpB,GAEE,EALiB;OAAhB,EAKGwD,IALH,CAKQ,EALR,CAAP;;;;2BAQiB;aAAS,KAAK1F,YAAZ;;yBAEJiF,MAAM;WAChBlF,mBAAL,CAAyBkF,IAAzB;UACI,KAAKnF,YAAT,EAAuB,KAAKhC,aAAL,GAAqB,KAAKA,aAA1B;;;;2BAGb;aAAS,KAAK6H,KAAZ;;yBAEJ1J,MAAM;WACT0J,KAAL,GAAa1J,IAAb;UACI,KAAK6D,YAAT,EAAuB,KAAKJ,WAAL,GAAmB,KAAKA,WAAxB;;;;EAzYD5D;;AAod1ByD,YAAYI,WAAZ,GAA0B;OACnB,IADmB;OAEnB,qnIAFmB;OAGnB;CAHP;AAKAJ,YAAYkB,SAAZ,GAAwB;SACf,OADe;SAEf;CAFT;AAIAlB,YAAYkG,mBAAZ,GAAkC;QAC1B,MAD0B;QAE1B;CAFR;AAIAlG,YAAYuB,SAAZ,GAAwB,IAAxB;AACAvB,YAAYwB,WAAZ,GAA0B,IAA1B;;ICleM6E;;;oBACS7J,EAAb,EAAiBC,IAAjB,EAAuB;;;gDACrB,qBAAMD,EAAN,EAAUC,IAAV,CADqB;;UAGhB6J,SAAL,GAAiB7J,KAAK6J,SAAtB;;UAEKC,cAAL,GAAsB,MAAK7J,IAAL,CAAUoI,GAAV,CAAc;aAAKlD,MAAMC,WAAN,CAAkBrF,EAAlB,EAAsBgK,CAAtB,CAAL;KAAd,CAAtB;;;;qBAGFhI,2BAAS5D,KAAKO,SAAS;QACjBJ,MAAM,KAAK0L,KAAL,CAAW7L,GAAX,EAAgBO,OAAhB,CAAV;QACI,CAAC,KAAKmL,SAAV,EAAqB,OAAOvL,GAAP;;QAEjBK,YAAYD,QAAQC,SAAxB;;QAEIsL,OAAJ;QACIC,UAAU5L,GAAd;;WAEO2L,YAAYC,OAAnB,EAA4B;gBAChBA,OAAV;gBACU,KAAKF,KAAL,CAAWC,OAAX,EAAoB;mBACjBA,QAAQ3K,MADS;kBAElB2K,OAFkB;sBAGd;iBACL,CADK;eAEPA,QAAQ3K;;OALP,CAAV;;;YAUMX,SAAR,GAAoBA,aAAaL,IAAIgB,MAAJ,GAAa2K,QAAQ3K,MAAlC,CAApB;;WAEO2K,OAAP;;;qBAGFD,uBAAO7L,KAAKO,SAAS;WACZ,KAAKoL,cAAL,CAAoBK,MAApB,CAA2B,UAAC9C,CAAD,EAAI0C,CAAJ,EAAU;UACtCK,IAAI3L,yBAAyB4I,CAAzB,EAA4B3I,OAA5B,CAAR;UACIJ,MAAMyL,EAAEhI,OAAF,CAAUsF,CAAV,EAAa+C,CAAb,CAAV;cACQzL,SAAR,GAAoByL,EAAEzL,SAAtB;aACOL,GAAP;KAJK,EAKJH,GALI,CAAP;;;qBAQF+C,mCAAc;wBACNA,UAAN;SACK4I,cAAL,CAAoBtI,OAApB,CAA4B,aAAK;QAC7BN,UAAF;;eAESmJ,SAAT,CAAmBjJ,YAAnB,CAAgCkJ,KAAhC,CAAsCP,CAAtC;KAHF;;;qBAOF3I,uCAAgB;wBACRA,YAAN;SACK0I,cAAL,CAAoBtI,OAApB,CAA4B;aAAKuI,EAAE3I,YAAF,EAAL;KAA5B;;;;EAvDmBtB;;ACKvB,SAASqF,OAAT,CAAgBpF,EAAhB,EAA6B;MAATC,IAAS,uEAAJ,EAAI;;MACvBC,OAAOkF,QAAMC,WAAN,CAAkBrF,EAAlB,EAAsBC,IAAtB,CAAX;OACKkB,UAAL;;OAEKW,QAAL,GAAgB9B,GAAGkC,KAAnB;SACOhC,IAAP;;;AAGFkF,QAAMC,WAAN,GAAoB,UAAUrF,EAAV,EAAcC,IAAd,EAAoB;MAClCC,OAAOD,KAAKC,IAAhB;MACIA,gBAAgBH,QAApB,EAA8B,OAAOG,IAAP;MAC1BA,gBAAgBsK,MAApB,EAA4B,OAAO,IAAInH,UAAJ,CAAerD,EAAf,EAAmBC,IAAnB,CAAP;MACxBC,gBAAgBuK,KAApB,EAA2B,OAAO,IAAIZ,QAAJ,CAAa7J,EAAb,EAAiBC,IAAjB,CAAP;MACvB9B,SAAS+B,IAAT,CAAJ,EAAoB,OAAO,IAAIsD,WAAJ,CAAgBxD,EAAhB,EAAoBC,IAApB,CAAP;MAChBC,KAAKoK,SAAL,YAA0BvK,QAA9B,EAAwC,OAAO,IAAIG,IAAJ,CAASF,EAAT,EAAaC,IAAb,CAAP;MACpCC,gBAAgBwK,QAApB,EAA8B,OAAO,IAAInH,QAAJ,CAAavD,EAAb,EAAiBC,IAAjB,CAAP;SACvB,IAAIF,QAAJ,CAAaC,EAAb,EAAiBC,IAAjB,CAAP;CARF;AAUAmF,QAAMrF,QAAN,GAAiBA,QAAjB;AACAqF,QAAM7B,QAAN,GAAiBA,QAAjB;AACA6B,QAAM/B,UAAN,GAAmBA,UAAnB;AACA+B,QAAM5B,WAAN,GAAoBA,WAApB;AACAmH,OAAOvF,KAAP,GAAeA,OAAf;;;;"} \ No newline at end of file diff --git a/dist/imask.js b/dist/imask.js index 8ce845a6..1d4ef403 100644 --- a/dist/imask.js +++ b/dist/imask.js @@ -1,1416 +1,970 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else { - var a = factory(); - for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; - } -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 2); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports, require("../utils")); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.utils); - global.base = mod.exports; +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.IMask = factory()); +}(this, (function () { 'use strict'; + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } -})(this, function (exports, _utils) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); } + } - return target; + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; }; +}(); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - var BaseMask = function () { - function BaseMask(el, opts) { - _classCallCheck(this, BaseMask); - this.el = el; - this.mask = opts.mask; - this._listeners = {}; - this._refreshingCount = 0; - this._rawValue = ""; - this._unmaskedValue = ""; - this.saveSelection = this.saveSelection.bind(this); - this._onInput = this._onInput.bind(this); - this._onDrop = this._onDrop.bind(this); - } - BaseMask.prototype.on = function on(ev, handler) { - if (!this._listeners[ev]) this._listeners[ev] = []; - this._listeners[ev].push(handler); - return this; - }; +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; - BaseMask.prototype.off = function off(ev, handler) { - if (!this._listeners[ev]) return; - if (!handler) { - delete this._listeners[ev]; - return; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; } - var hIndex = this._listeners[ev].indexOf(handler); - if (hIndex >= 0) this._listeners.splice(hIndex, 1); - return this; - }; - - BaseMask.prototype.bindEvents = function bindEvents() { - this.el.addEventListener('keydown', this.saveSelection); - this.el.addEventListener('input', this._onInput); - this.el.addEventListener('drop', this._onDrop); - }; - - BaseMask.prototype.unbindEvents = function unbindEvents() { - this.el.removeEventListener('keydown', this.saveSelection); - this.el.removeEventListener('input', this._onInput); - this.el.removeEventListener('drop', this._onDrop); - }; + } + } - BaseMask.prototype.fireEvent = function fireEvent(ev) { - var listeners = this._listeners[ev] || []; - listeners.forEach(function (l) { - return l(); - }); - }; + return target; +}; - BaseMask.prototype.processInput = function processInput(inputValue, details) { - details = _extends({ - cursorPos: this.cursorPos, - oldSelection: this._selection, - oldValue: this.rawValue, - oldUnmaskedValue: this.unmaskedValue - }, details); - details = (0, _utils.extendDetailsAdjustments)(inputValue, details); - var res = (0, _utils.conform)(this.resolve(inputValue, details), inputValue, this.rawValue); +var inherits = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } - this.updateElement(res, details.cursorPos); - return res; - }; + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; +}; - BaseMask.prototype.saveSelection = function saveSelection(ev) { - if (this.rawValue !== this.el.value) { - console.warn("Uncontrolled input change, refresh mask manually!"); - } - this._selection = { - start: this.selectionStart, - end: this.cursorPos - }; - }; - BaseMask.prototype.destroy = function destroy() { - this.unbindEvents(); - this._listeners.length = 0; - }; - BaseMask.prototype.updateElement = function updateElement(value, cursorPos) { - var unmaskedValue = this._calcUnmasked(value); - var isChanged = this.unmaskedValue !== unmaskedValue || this.rawValue !== value; - this._unmaskedValue = unmaskedValue; - this._rawValue = value; - if (this.el.value !== value) this.el.value = value; - this.updateCursor(cursorPos); - if (isChanged) this._fireChangeEvents(); - }; - BaseMask.prototype._fireChangeEvents = function _fireChangeEvents() { - this.fireEvent("accept"); - }; - BaseMask.prototype.updateCursor = function updateCursor(cursorPos) { - if (cursorPos == null) return; - this.cursorPos = cursorPos; - // also queue change cursor for mobile browsers - this._delayUpdateCursor(cursorPos); - }; - BaseMask.prototype._delayUpdateCursor = function _delayUpdateCursor(cursorPos) { - var _this = this; - this._abortUpdateCursor(); - this._changingCursorPos = cursorPos; - this._cursorChanging = setTimeout(function () { - _this._abortUpdateCursor(); - _this.cursorPos = _this._changingCursorPos; - }, 10); - }; +var possibleConstructorReturn = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } - BaseMask.prototype._abortUpdateCursor = function _abortUpdateCursor() { - if (this._cursorChanging) { - clearTimeout(this._cursorChanging); - delete this._cursorChanging; - } - }; + return call && (typeof call === "object" || typeof call === "function") ? call : self; +}; + +function isString(str) { + return typeof str === 'string' || str instanceof String; +} + +function conform(res, str) { + var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + + return isString(res) ? res : res ? str : fallback; +} + +var DIRECTION = { + NONE: 0, + LEFT: -1, + RIGHT: 1 +}; + +function extendDetailsAdjustments(str, details) { + var cursorPos = details.cursorPos; + var oldSelection = details.oldSelection; + var oldValue = details.oldValue; + + var startChangePos = Math.min(cursorPos, oldSelection.start); + var insertedCount = cursorPos - startChangePos; + // Math.max for opposite operation + var removedCount = Math.max(oldSelection.end - startChangePos || + // for Delete + oldValue.length - str.length, 0); + + return _extends({}, details, { + startChangePos: startChangePos, + head: str.substring(0, startChangePos), + tail: str.substring(startChangePos + insertedCount), + inserted: str.substr(startChangePos, insertedCount), + removed: oldValue.substr(startChangePos, removedCount), + removeDirection: removedCount && (oldSelection.end === cursorPos || insertedCount ? DIRECTION.RIGHT : DIRECTION.LEFT) + }); +} - BaseMask.prototype._onInput = function _onInput(ev) { - this._abortUpdateCursor(); - this.processInput(this.el.value); - }; +function indexInDirection(pos, direction) { + if (direction === DIRECTION.LEFT) --pos; + return pos; +} - BaseMask.prototype._onDrop = function _onDrop(ev) { - ev.preventDefault(); - ev.stopPropagation(); - }; +var BaseMask = function () { + function BaseMask(el, opts) { + classCallCheck(this, BaseMask); - BaseMask.prototype.resolve = function resolve(str, details) { - return str; - }; + this.el = el; + this.mask = opts.mask; - BaseMask.prototype._calcUnmasked = function _calcUnmasked(value) { - return value; - }; + this._listeners = {}; + this._refreshingCount = 0; + this._rawValue = ""; + this._unmaskedValue = ""; - _createClass(BaseMask, [{ - key: "rawValue", - get: function get() { - return this._rawValue; - }, - set: function set(str) { - this.processInput(str, { - cursorPos: str.length, - oldValue: this.rawValue, - oldSelection: { - start: 0, - end: this.rawValue.length - } - }); - } - }, { - key: "unmaskedValue", - get: function get() { - return this._unmaskedValue; - }, - set: function set(value) { - this.rawValue = value; - } - }, { - key: "selectionStart", - get: function get() { - return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart; - } - }, { - key: "cursorPos", - get: function get() { - return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd; - }, - set: function set(pos) { - if (this.el !== document.activeElement) return; - - this.el.setSelectionRange(pos, pos); - this.saveSelection(); - } - }]); - - return BaseMask; - }(); - - exports.default = BaseMask; -}); - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports); - } else { - var mod = { - exports: {} - }; - factory(mod.exports); - global.utils = mod.exports; + this.saveSelection = this.saveSelection.bind(this); + this._onInput = this._onInput.bind(this); + this._onDrop = this._onDrop.bind(this); } -})(this, function (exports) { - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isString = isString; - exports.conform = conform; - exports.extendDetailsAdjustments = extendDetailsAdjustments; - exports.indexInDirection = indexInDirection; - - var _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; + BaseMask.prototype.on = function on(ev, handler) { + if (!this._listeners[ev]) this._listeners[ev] = []; + this._listeners[ev].push(handler); + return this; }; - function isString(str) { - return typeof str === 'string' || str instanceof String; - } - - function conform(res, str) { - var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + BaseMask.prototype.off = function off(ev, handler) { + if (!this._listeners[ev]) return; + if (!handler) { + delete this._listeners[ev]; + return; + } + var hIndex = this._listeners[ev].indexOf(handler); + if (hIndex >= 0) this._listeners.splice(hIndex, 1); + return this; + }; - return isString(res) ? res : res ? str : fallback; - } + BaseMask.prototype.bindEvents = function bindEvents() { + this.el.addEventListener('keydown', this.saveSelection); + this.el.addEventListener('input', this._onInput); + this.el.addEventListener('drop', this._onDrop); + }; - var DIRECTION = exports.DIRECTION = { - NONE: 0, - LEFT: -1, - RIGHT: 1 + BaseMask.prototype.unbindEvents = function unbindEvents() { + this.el.removeEventListener('keydown', this.saveSelection); + this.el.removeEventListener('input', this._onInput); + this.el.removeEventListener('drop', this._onDrop); }; - function extendDetailsAdjustments(str, details) { - var cursorPos = details.cursorPos; - var oldSelection = details.oldSelection; - var oldValue = details.oldValue; - - var startChangePos = Math.min(cursorPos, oldSelection.start); - var insertedCount = cursorPos - startChangePos; - // Math.max for opposite operation - var removedCount = Math.max(oldSelection.end - startChangePos || - // for Delete - oldValue.length - str.length, 0); - - return _extends({}, details, { - startChangePos: startChangePos, - head: str.substring(0, startChangePos), - tail: str.substring(startChangePos + insertedCount), - inserted: str.substr(startChangePos, insertedCount), - removed: oldValue.substr(startChangePos, removedCount), - removeDirection: removedCount && (oldSelection.end === cursorPos || insertedCount ? DIRECTION.RIGHT : DIRECTION.LEFT) + BaseMask.prototype.fireEvent = function fireEvent(ev) { + var listeners = this._listeners[ev] || []; + listeners.forEach(function (l) { + return l(); }); - } - - function indexInDirection(pos, direction) { - if (direction === DIRECTION.LEFT) --pos; - return pos; - } -}); - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1), __webpack_require__(0), __webpack_require__(3), __webpack_require__(4), __webpack_require__(5), __webpack_require__(6)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports, require('./utils'), require('./masks/base'), require('./masks/regexp'), require('./masks/func'), require('./masks/pattern'), require('./masks/pipe')); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.utils, global.base, global.regexp, global.func, global.pattern, global.pipe); - global.imask = mod.exports; - } -})(this, function (exports, _utils, _base, _regexp, _func, _pattern, _pipe) { - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = IMask; - - var _base2 = _interopRequireDefault(_base); + }; - var _regexp2 = _interopRequireDefault(_regexp); + BaseMask.prototype.processInput = function processInput(inputValue, details) { + details = _extends({ + cursorPos: this.cursorPos, + oldSelection: this._selection, + oldValue: this.rawValue, + oldUnmaskedValue: this.unmaskedValue + }, details); - var _func2 = _interopRequireDefault(_func); + details = extendDetailsAdjustments(inputValue, details); - var _pattern2 = _interopRequireDefault(_pattern); + var res = conform(this.resolve(inputValue, details), inputValue, this.rawValue); - var _pipe2 = _interopRequireDefault(_pipe); + this.updateElement(res, details.cursorPos); + return res; + }; - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj + BaseMask.prototype.saveSelection = function saveSelection(ev) { + if (this.rawValue !== this.el.value) { + console.warn("Uncontrolled input change, refresh mask manually!"); + } + this._selection = { + start: this.selectionStart, + end: this.cursorPos }; - } - - function IMask(el) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var mask = IMask.MaskFactory(el, opts); - mask.bindEvents(); - // refresh - mask.rawValue = el.value; - return mask; - } - - IMask.MaskFactory = function (el, opts) { - var mask = opts.mask; - if (mask instanceof _base2.default) return mask; - if (mask instanceof RegExp) return new _regexp2.default(el, opts); - if (mask instanceof Array) return new _pipe2.default(el, opts); - if ((0, _utils.isString)(mask)) return new _pattern2.default(el, opts); - if (mask.prototype instanceof _base2.default) return new mask(el, opts); - if (mask instanceof Function) return new _func2.default(el, opts); - return new _base2.default(el, opts); }; - IMask.BaseMask = _base2.default; - IMask.FuncMask = _func2.default; - IMask.RegExpMask = _regexp2.default; - IMask.PatternMask = _pattern2.default; - window.IMask = IMask; -}); - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports, require('./base')); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.base); - global.regexp = mod.exports; - } -})(this, function (exports, _base) { - 'use strict'; - Object.defineProperty(exports, "__esModule", { - value: true - }); + BaseMask.prototype.destroy = function destroy() { + this.unbindEvents(); + this._listeners.length = 0; + }; - var _base2 = _interopRequireDefault(_base); + BaseMask.prototype.updateElement = function updateElement(value, cursorPos) { + var unmaskedValue = this._calcUnmasked(value); + var isChanged = this.unmaskedValue !== unmaskedValue || this.rawValue !== value; - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } + this._unmaskedValue = unmaskedValue; + this._rawValue = value; - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } + if (this.el.value !== value) this.el.value = value; + this.updateCursor(cursorPos); - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } + if (isChanged) this._fireChangeEvents(); + }; - return call && (typeof call === "object" || typeof call === "function") ? call : self; - } + BaseMask.prototype._fireChangeEvents = function _fireChangeEvents() { + this.fireEvent("accept"); + }; - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } + BaseMask.prototype.updateCursor = function updateCursor(cursorPos) { + if (cursorPos == null) return; + this.cursorPos = cursorPos; - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } + // also queue change cursor for mobile browsers + this._delayUpdateCursor(cursorPos); + }; - var RegExpMask = function (_BaseMask) { - _inherits(RegExpMask, _BaseMask); + BaseMask.prototype._delayUpdateCursor = function _delayUpdateCursor(cursorPos) { + var _this = this; - function RegExpMask() { - _classCallCheck(this, RegExpMask); + this._abortUpdateCursor(); + this._changingCursorPos = cursorPos; + this._cursorChanging = setTimeout(function () { + _this._abortUpdateCursor(); + _this.cursorPos = _this._changingCursorPos; + }, 10); + }; - return _possibleConstructorReturn(this, _BaseMask.apply(this, arguments)); + BaseMask.prototype._abortUpdateCursor = function _abortUpdateCursor() { + if (this._cursorChanging) { + clearTimeout(this._cursorChanging); + delete this._cursorChanging; } + }; - RegExpMask.prototype.resolve = function resolve(str) { - return this.mask.test(str); - }; + BaseMask.prototype._onInput = function _onInput(ev) { + this._abortUpdateCursor(); + this.processInput(this.el.value); + }; - return RegExpMask; - }(_base2.default); - - exports.default = RegExpMask; -}); - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports, require('./base')); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.base); - global.func = mod.exports; - } -})(this, function (exports, _base) { - 'use strict'; + BaseMask.prototype._onDrop = function _onDrop(ev) { + ev.preventDefault(); + ev.stopPropagation(); + }; - Object.defineProperty(exports, "__esModule", { - value: true - }); + // override - var _base2 = _interopRequireDefault(_base); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } + BaseMask.prototype.resolve = function resolve(str, details) { + return str; + }; - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } + BaseMask.prototype._calcUnmasked = function _calcUnmasked(value) { + return value; + }; - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + createClass(BaseMask, [{ + key: "rawValue", + get: function get$$1() { + return this._rawValue; + }, + set: function set$$1(str) { + this.processInput(str, { + cursorPos: str.length, + oldValue: this.rawValue, + oldSelection: { + start: 0, + end: this.rawValue.length + } + }); } - - return call && (typeof call === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + }, { + key: "unmaskedValue", + get: function get$$1() { + return this._unmaskedValue; + }, + set: function set$$1(value) { + this.rawValue = value; } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var FuncMask = function (_BaseMask) { - _inherits(FuncMask, _BaseMask); - - function FuncMask() { - _classCallCheck(this, FuncMask); - - return _possibleConstructorReturn(this, _BaseMask.apply(this, arguments)); + }, { + key: "selectionStart", + get: function get$$1() { + return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart; + } + }, { + key: "cursorPos", + get: function get$$1() { + return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd; + }, + set: function set$$1(pos) { + if (this.el !== document.activeElement) return; + + this.el.setSelectionRange(pos, pos); + this.saveSelection(); } + }]); + return BaseMask; +}(); - FuncMask.prototype.resolve = function resolve() { - return this.mask.apply(this, arguments); - }; +var RegExpMask = function (_BaseMask) { + inherits(RegExpMask, _BaseMask); - return FuncMask; - }(_base2.default); - - exports.default = FuncMask; -}); - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1), __webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports, require('../utils'), require('./base')); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.utils, global.base); - global.pattern = mod.exports; + function RegExpMask() { + classCallCheck(this, RegExpMask); + return possibleConstructorReturn(this, _BaseMask.apply(this, arguments)); } -})(this, function (exports, _utils, _base) { - 'use strict'; - Object.defineProperty(exports, "__esModule", { - value: true - }); + RegExpMask.prototype.resolve = function resolve(str) { + return this.mask.test(str); + }; - var _base2 = _interopRequireDefault(_base); + return RegExpMask; +}(BaseMask); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; +var FuncMask = function (_BaseMask) { + inherits(FuncMask, _BaseMask); + + function FuncMask() { + classCallCheck(this, FuncMask); + return possibleConstructorReturn(this, _BaseMask.apply(this, arguments)); } - var _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; + FuncMask.prototype.resolve = function resolve() { + return this.mask.apply(this, arguments); + }; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } + return FuncMask; +}(BaseMask); - return target; - }; +var PatternMask = function (_BaseMask) { + inherits(PatternMask, _BaseMask); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } + function PatternMask(el, opts) { + classCallCheck(this, PatternMask); - var _createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } + var _this = possibleConstructorReturn(this, _BaseMask.call(this, el, opts)); - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); + _this._hollows = []; + _this.placeholder = opts.placeholder; + _this.definitions = _extends({}, PatternMask.DEFINITIONS, opts.definitions); - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } + _this._alignCursor = _this._alignCursor.bind(_this); + _this._alignCursorFriendly = _this._alignCursorFriendly.bind(_this); - return call && (typeof call === "object" || typeof call === "function") ? call : self; + _this._initialized = true; + return _this; } - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } + PatternMask.prototype._alignCursorFriendly = function _alignCursorFriendly() { + if (this.selectionStart !== this.cursorPos) return; + this._alignCursor(); + }; - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } + PatternMask.prototype.bindEvents = function bindEvents() { + _BaseMask.prototype.bindEvents.call(this); + this.el.addEventListener('click', this._alignCursorFriendly); + }; - var PatternMask = function (_BaseMask) { - _inherits(PatternMask, _BaseMask); + PatternMask.prototype.unbindEvents = function unbindEvents() { + _BaseMask.prototype.unbindEvents.call(this); + this.el.removeEventListener('click', this._alignCursorFriendly); + }; - function PatternMask(el, opts) { - _classCallCheck(this, PatternMask); + PatternMask.prototype._installDefinitions = function _installDefinitions(definitions) { + this._definitions = definitions; + this._charDefs = []; + this._alignStops = []; - var _this = _possibleConstructorReturn(this, _BaseMask.call(this, el, opts)); + var pattern = this.mask; + if (!pattern || !definitions) return; - _this._hollows = []; - _this.placeholder = opts.placeholder; - _this.definitions = _extends({}, PatternMask.DEFINITIONS, opts.definitions); + var unmaskingBlock = false; + var optionalBlock = false; + for (var i = 0; i < pattern.length; ++i) { + var ch = pattern[i]; + var type = !unmaskingBlock && ch in definitions ? PatternMask.DEF_TYPES.INPUT : PatternMask.DEF_TYPES.FIXED; + var unmasking = type === PatternMask.DEF_TYPES.INPUT || unmaskingBlock; + var optional = type === PatternMask.DEF_TYPES.INPUT && optionalBlock; - _this._alignCursor = _this._alignCursor.bind(_this); - _this._alignCursorFriendly = _this._alignCursorFriendly.bind(_this); + if (ch === PatternMask.STOP_CHAR) { + this._alignStops.push(this._charDefs.length); + continue; + } - _this._initialized = true; - return _this; - } + if (ch === '{' || ch === '}') { + unmaskingBlock = !unmaskingBlock; + continue; + } - PatternMask.prototype._alignCursorFriendly = function _alignCursorFriendly() { - if (this.selectionStart !== this.cursorPos) return; - this._alignCursor(); - }; + if (ch === '[' || ch === ']') { + optionalBlock = !optionalBlock; + continue; + } - PatternMask.prototype.bindEvents = function bindEvents() { - _BaseMask.prototype.bindEvents.call(this); - this.el.addEventListener('click', this._alignCursorFriendly); - }; + if (ch === PatternMask.ESCAPE_CHAR) { + ++i; + ch = pattern[i]; + // TODO validation + if (!ch) break; + type = PatternMask.DEF_TYPES.FIXED; + } - PatternMask.prototype.unbindEvents = function unbindEvents() { - _BaseMask.prototype.unbindEvents.call(this); - this.el.removeEventListener('click', this._alignCursorFriendly); - }; + this._charDefs.push({ + char: ch, + type: type, + optional: optional, + unmasking: unmasking + }); + } - PatternMask.prototype._installDefinitions = function _installDefinitions(definitions) { - this._definitions = definitions; - this._charDefs = []; - this._alignStops = []; - - var pattern = this.mask; - if (!pattern || !definitions) return; - - var unmaskingBlock = false; - var optionalBlock = false; - for (var i = 0; i < pattern.length; ++i) { - var ch = pattern[i]; - var type = !unmaskingBlock && ch in definitions ? PatternMask.DEF_TYPES.INPUT : PatternMask.DEF_TYPES.FIXED; - var unmasking = type === PatternMask.DEF_TYPES.INPUT || unmaskingBlock; - var optional = type === PatternMask.DEF_TYPES.INPUT && optionalBlock; - - if (ch === PatternMask.STOP_CHAR) { - this._alignStops.push(this._charDefs.length); - continue; - } + this._buildResolvers(); + }; - if (ch === '{' || ch === '}') { - unmaskingBlock = !unmaskingBlock; - continue; - } + PatternMask.prototype._buildResolvers = function _buildResolvers() { + this._resolvers = {}; + for (var defKey in this.definitions) { + this._resolvers[defKey] = IMask.MaskFactory(this.el, { + mask: this.definitions[defKey] + }); + } + }; - if (ch === '[' || ch === ']') { - optionalBlock = !optionalBlock; - continue; - } + PatternMask.prototype._appendTail = function _appendTail(str, tail) { + var skipUnresolvedInput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - if (ch === PatternMask.ESCAPE_CHAR) { - ++i; - ch = pattern[i]; - // TODO validation - if (!ch) break; - type = PatternMask.DEF_TYPES.FIXED; - } + var placeholderBuffer = ''; + var hollows = this._hollows.slice(); + var overflow = false; - this._charDefs.push({ - char: ch, - type: type, - optional: optional, - unmasking: unmasking - }); + for (var ci = 0, di = this._mapPosToDefIndex(str.length); ci < tail.length;) { + if (this._isHollow(di)) { + // TODO check other cases + ++di; + continue; } - this._buildResolvers(); - }; + var ch = tail[ci]; + var def = this.def(di, str + placeholderBuffer); - PatternMask.prototype._buildResolvers = function _buildResolvers() { - this._resolvers = {}; - for (var defKey in this.definitions) { - this._resolvers[defKey] = IMask.MaskFactory(this.el, { - mask: this.definitions[defKey] - }); + // failed + if (!def) { + overflow = true; + break; } - }; - - PatternMask.prototype._appendTail = function _appendTail(str, tail) { - var skipUnresolvedInput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var placeholderBuffer = ''; - var hollows = this._hollows.slice(); - var overflow = false; + if (def.type === PatternMask.DEF_TYPES.INPUT) { + var resolver = this._resolvers[def.char]; + var chres = resolver.resolve(ch, di, str + placeholderBuffer) || ''; + var isResolved = !!chres; - for (var ci = 0, di = this._mapPosToDefIndex(str.length); ci < tail.length;) { - if (this._isHollow(di)) { - // TODO check other cases - ++di; - continue; + // if ok - next di + if (chres) { + chres = conform(chres, ch); + } else { + if (!def.optional && skipUnresolvedInput) chres = this._placeholder.char; + // TODO seems check is useless + if (hollows.indexOf(di) < 0) hollows.push(di); } - var ch = tail[ci]; - var def = this.def(di, str + placeholderBuffer); - - // failed - if (!def) { - overflow = true; - break; + if (chres) { + str += placeholderBuffer + conform(chres, ch); + placeholderBuffer = ''; } + if (chres || def.optional || !skipUnresolvedInput) ++di; + if (isResolved || !def.optional && !skipUnresolvedInput) ++ci; + } else { + placeholderBuffer += def.char; - if (def.type === PatternMask.DEF_TYPES.INPUT) { - var resolver = this._resolvers[def.char]; - var chres = resolver.resolve(ch, di, str + placeholderBuffer) || ''; - var isResolved = !!chres; - - // if ok - next di - if (chres) { - chres = (0, _utils.conform)(chres, ch); - } else { - if (!def.optional && skipUnresolvedInput) chres = this._placeholder.char; - // TODO seems check is useless - if (hollows.indexOf(di) < 0) hollows.push(di); - } - - if (chres) { - str += placeholderBuffer + (0, _utils.conform)(chres, ch); - placeholderBuffer = ''; - } - if (chres || def.optional || !skipUnresolvedInput) ++di; - if (isResolved || !def.optional && !skipUnresolvedInput) ++ci; - } else { - placeholderBuffer += def.char; - - if (ch === def.char && (def.unmasking || !skipUnresolvedInput)) ++ci; - ++di; - } + if (ch === def.char && (def.unmasking || !skipUnresolvedInput)) ++ci; + ++di; } + } - return [str, hollows, overflow]; - }; + return [str, hollows, overflow]; + }; - PatternMask.prototype._appendTailChunks = function _appendTailChunks(str, chunks, skipUnresolvedInput) { - var overflow = false; - for (var ci = 0; ci < chunks.length; ++ci) { - var _chunks$ci = chunks[ci], - input = _chunks$ci[1]; + PatternMask.prototype._appendTailChunks = function _appendTailChunks(str, chunks, skipUnresolvedInput) { + var overflow = false; + for (var ci = 0; ci < chunks.length; ++ci) { + var _chunks$ci = chunks[ci], + input = _chunks$ci[1]; - var _appendTail2 = this._appendTail(str, input, skipUnresolvedInput); + var _appendTail2 = this._appendTail(str, input, skipUnresolvedInput); - str = _appendTail2[0]; - this._hollows = _appendTail2[1]; - overflow = _appendTail2[2]; + str = _appendTail2[0]; + this._hollows = _appendTail2[1]; + overflow = _appendTail2[2]; - if (overflow) break; + if (overflow) break; - // not last - append placeholder between stops - var chunk2 = chunks[ci + 1]; - var stop2 = chunk2 && chunk2[0]; - if (stop2) str = this._appendPlaceholderEnd(str, stop2); - } - return [str, this._hollows, overflow]; - }; + // not last - append placeholder between stops + var chunk2 = chunks[ci + 1]; + var stop2 = chunk2 && chunk2[0]; + if (stop2) str = this._appendPlaceholderEnd(str, stop2); + } + return [str, this._hollows, overflow]; + }; - PatternMask.prototype._extractInput = function _extractInput(str) { - var fromPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var toPos = arguments[2]; + PatternMask.prototype._extractInput = function _extractInput(str) { + var fromPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var toPos = arguments[2]; - var input = ''; + var input = ''; - var toDefIndex = toPos && this._mapPosToDefIndex(toPos); - for (var ci = 0, di = this._mapPosToDefIndex(fromPos); ci < str.length && (!toDefIndex || di < toDefIndex); ++di) { - var ch = str[ci]; - var def = this.def(di, str); + var toDefIndex = toPos && this._mapPosToDefIndex(toPos); + for (var ci = 0, di = this._mapPosToDefIndex(fromPos); ci < str.length && (!toDefIndex || di < toDefIndex); ++di) { + var ch = str[ci]; + var def = this.def(di, str); - if (!def) break; - if (this._isHiddenHollow(di)) continue; + if (!def) break; + if (this._isHiddenHollow(di)) continue; - if (this._isInput(di) && !this._isHollow(di)) input += ch; - ++ci; - } - return input; - }; + if (this._isInput(di) && !this._isHollow(di)) input += ch; + ++ci; + } + return input; + }; - PatternMask.prototype._extractInputChunks = function _extractInputChunks(str, stops) { - var chunks = []; - for (var si = 0; si < stops.length && str; ++si) { - var s = stops[si]; - var s2 = stops[si + 1]; - chunks.push([s, this._extractInput(str, s, s2)]); - if (s2) str = str.slice(s2 - s); - } - return chunks; - }; + PatternMask.prototype._extractInputChunks = function _extractInputChunks(str, stops) { + var chunks = []; + for (var si = 0; si < stops.length && str; ++si) { + var s = stops[si]; + var s2 = stops[si + 1]; + chunks.push([s, this._extractInput(str, s, s2)]); + if (s2) str = str.slice(s2 - s); + } + return chunks; + }; - PatternMask.prototype._isHollow = function _isHollow(defIndex) { - return this._hollows.indexOf(defIndex) >= 0; - }; + PatternMask.prototype._isHollow = function _isHollow(defIndex) { + return this._hollows.indexOf(defIndex) >= 0; + }; - PatternMask.prototype._isHiddenHollow = function _isHiddenHollow(defIndex) { - return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional; - }; + PatternMask.prototype._isHiddenHollow = function _isHiddenHollow(defIndex) { + return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional; + }; - PatternMask.prototype._isInput = function _isInput(defIndex) { - return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT; - }; + PatternMask.prototype._isInput = function _isInput(defIndex) { + return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT; + }; - PatternMask.prototype._hollowsBefore = function _hollowsBefore(defIndex) { - var _this2 = this; + PatternMask.prototype._hollowsBefore = function _hollowsBefore(defIndex) { + var _this2 = this; - return this._hollows.filter(function (h) { - return h < defIndex && _this2._isHiddenHollow(h); - }); - }; + return this._hollows.filter(function (h) { + return h < defIndex && _this2._isHiddenHollow(h); + }); + }; - PatternMask.prototype._mapDefIndexToPos = function _mapDefIndexToPos(defIndex) { - return defIndex - this._hollowsBefore(defIndex).length; - }; + PatternMask.prototype._mapDefIndexToPos = function _mapDefIndexToPos(defIndex) { + return defIndex - this._hollowsBefore(defIndex).length; + }; - PatternMask.prototype._mapPosToDefIndex = function _mapPosToDefIndex(pos) { - var defIndex = pos; - for (var hi = 0; hi < this._hollows.length; ++hi) { - var h = this._hollows[hi]; - if (h >= defIndex) break; - if (this._isHiddenHollow(h)) ++defIndex; - } - return defIndex; - }; + PatternMask.prototype._mapPosToDefIndex = function _mapPosToDefIndex(pos) { + var defIndex = pos; + for (var hi = 0; hi < this._hollows.length; ++hi) { + var h = this._hollows[hi]; + if (h >= defIndex) break; + if (this._isHiddenHollow(h)) ++defIndex; + } + return defIndex; + }; - PatternMask.prototype._generateInsertSteps = function _generateInsertSteps(head, inserted) { - var overflow = false; + PatternMask.prototype._generateInsertSteps = function _generateInsertSteps(head, inserted) { + var overflow = false; - // save hollow during generation - var hollows = this._hollows; + // save hollow during generation + var hollows = this._hollows; - var insertSteps = [[head, hollows.slice()]]; + var insertSteps = [[head, hollows.slice()]]; - for (var ci = 0; ci < inserted.length && !overflow; ++ci) { - var ch = inserted[ci]; + for (var ci = 0; ci < inserted.length && !overflow; ++ci) { + var ch = inserted[ci]; - var _appendTail3 = this._appendTail(head, ch, false), - res = _appendTail3[0], - hollows = _appendTail3[1], - overflow = _appendTail3[2]; + var _appendTail3 = this._appendTail(head, ch, false), + res = _appendTail3[0], + hollows = _appendTail3[1], + overflow = _appendTail3[2]; - this._hollows = hollows; - if (!overflow && res !== head) { - insertSteps.push([res, hollows]); - head = res; - } + this._hollows = hollows; + if (!overflow && res !== head) { + insertSteps.push([res, hollows]); + head = res; } + } - // pop hollows back - this._hollows = hollows; + // pop hollows back + this._hollows = hollows; - return insertSteps; - }; + return insertSteps; + }; - PatternMask.prototype.resolve = function resolve(str, details) { - var _this3 = this; - - var cursorPos = details.cursorPos; - var startChangePos = details.startChangePos; - var inserted = details.inserted; - var removedCount = details.removed.length; - var tailPos = startChangePos + removedCount; - var tailDefIndex = this._mapPosToDefIndex(tailPos); - var tailAlignStopsPos = [tailPos].concat(this._alignStops.filter(function (s) { - return s >= tailDefIndex; - }).map(function (s) { - return _this3._mapDefIndexToPos(s); - })); - var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos); - - // remove hollows after cursor - var lastHollowIndex = this._mapPosToDefIndex(startChangePos); - this._hollows = this._hollows.filter(function (h) { - return h < lastHollowIndex; - }); + PatternMask.prototype.resolve = function resolve(str, details) { + var _this3 = this; - var res = details.head; - // if remove at left - adjust start change pos - if (details.removeDirection === _utils.DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos)); + var cursorPos = details.cursorPos; + var startChangePos = details.startChangePos; + var inserted = details.inserted; + var removedCount = details.removed.length; + var tailPos = startChangePos + removedCount; + var tailDefIndex = this._mapPosToDefIndex(tailPos); + var tailAlignStopsPos = [tailPos].concat(this._alignStops.filter(function (s) { + return s >= tailDefIndex; + }).map(function (s) { + return _this3._mapDefIndexToPos(s); + })); + var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos); + + // remove hollows after cursor + var lastHollowIndex = this._mapPosToDefIndex(startChangePos); + this._hollows = this._hollows.filter(function (h) { + return h < lastHollowIndex; + }); - // insert available - var insertSteps = this._generateInsertSteps(res, inserted); - for (var istep = insertSteps.length - 1; istep >= 0; --istep) { - var step, tres, overflow; - var _insertSteps$istep = insertSteps[istep]; - step = _insertSteps$istep[0]; - this._hollows = _insertSteps$istep[1]; + var res = details.head; + // if remove at left - adjust start change pos + if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos)); - var _appendTailChunks2 = this._appendTailChunks(step, tailInputChunks); + // insert available + var insertSteps = this._generateInsertSteps(res, inserted); + for (var istep = insertSteps.length - 1; istep >= 0; --istep) { + var step, tres, overflow; + var _insertSteps$istep = insertSteps[istep]; + step = _insertSteps$istep[0]; + this._hollows = _insertSteps$istep[1]; - tres = _appendTailChunks2[0]; - this._hollows = _appendTailChunks2[1]; - overflow = _appendTailChunks2[2]; + var _appendTailChunks2 = this._appendTailChunks(step, tailInputChunks); - if (!overflow) { - res = tres; - cursorPos = step.length; - break; - } + tres = _appendTailChunks2[0]; + this._hollows = _appendTailChunks2[1]; + overflow = _appendTailChunks2[2]; + + if (!overflow) { + res = tres; + cursorPos = step.length; + break; } + } - res = this._appendPlaceholderEnd(res); - details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection); + res = this._appendPlaceholderEnd(res); + details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection); - return res; - }; + return res; + }; - PatternMask.prototype._fireChangeEvents = function _fireChangeEvents() { - // fire 'complete' after 'accept' event - _BaseMask.prototype._fireChangeEvents.call(this); - if (this.isComplete) this.fireEvent("complete"); - }; + PatternMask.prototype._fireChangeEvents = function _fireChangeEvents() { + // fire 'complete' after 'accept' event + _BaseMask.prototype._fireChangeEvents.call(this); + if (this.isComplete) this.fireEvent("complete"); + }; - PatternMask.prototype._appendFixedEnd = function _appendFixedEnd(res) { - for (var di = this._mapPosToDefIndex(res.length);; ++di) { - var def = this.def(di, res); - if (!def) break; + PatternMask.prototype._appendFixedEnd = function _appendFixedEnd(res) { + for (var di = this._mapPosToDefIndex(res.length);; ++di) { + var def = this.def(di, res); + if (!def) break; - if (this._isHiddenHollow(di)) continue; - if (this._isInput(di)) break; - if (di >= res.length) res += def.char; - } - return res; - }; + if (this._isHiddenHollow(di)) continue; + if (this._isInput(di)) break; + if (di >= res.length) res += def.char; + } + return res; + }; - PatternMask.prototype._appendPlaceholderEnd = function _appendPlaceholderEnd(res, toPos) { - var toDefIndex = toPos && this._mapPosToDefIndex(toPos); - for (var di = this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) { - var def = this.def(di, res); - if (!def) break; + PatternMask.prototype._appendPlaceholderEnd = function _appendPlaceholderEnd(res, toPos) { + var toDefIndex = toPos && this._mapPosToDefIndex(toPos); + for (var di = this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) { + var def = this.def(di, res); + if (!def) break; - if (this._isInput(di) && !this._isHollow(di)) { - this._hollows.push(di); - } - if (this._placeholder.show === 'always' || toPos) { - res += def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? this._placeholder.char : ''; - } + if (this._isInput(di) && !this._isHollow(di)) { + this._hollows.push(di); } - return res; - }; + if (this._placeholder.show === 'always' || toPos) { + res += def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? this._placeholder.char : ''; + } + } + return res; + }; - PatternMask.prototype._calcUnmasked = function _calcUnmasked(str) { - var unmasked = ''; - for (var ci = 0, di = 0; ci < str.length; ++di) { - var ch = str[ci]; - var def = this.def(di, str); + PatternMask.prototype._calcUnmasked = function _calcUnmasked(str) { + var unmasked = ''; + for (var ci = 0, di = 0; ci < str.length; ++di) { + var ch = str[ci]; + var def = this.def(di, str); - if (!def) break; - if (this._isHiddenHollow(di)) continue; + if (!def) break; + if (this._isHiddenHollow(di)) continue; - if (def.unmasking && !this._isHollow(di) && (this._isInput(di) && this._resolvers[def.char].resolve(ch, ci, str) || def.char === ch)) { - unmasked += ch; - } - ++ci; + if (def.unmasking && !this._isHollow(di) && (this._isInput(di) && this._resolvers[def.char].resolve(ch, ci, str) || def.char === ch)) { + unmasked += ch; } - return unmasked; - }; + ++ci; + } + return unmasked; + }; - PatternMask.prototype.defs = function defs(str) { - var defs = []; - for (var i = 0;; ++i) { - var def = this.def(i, str); - if (!def) break; - defs.push(def); - } - return defs; - }; + PatternMask.prototype.defs = function defs(str) { + var defs = []; + for (var i = 0;; ++i) { + var def = this.def(i, str); + if (!def) break; + defs.push(def); + } + return defs; + }; - PatternMask.prototype.def = function def(index, str) { - return this._charDefs[index]; - }; + PatternMask.prototype.def = function def(index, str) { + return this._charDefs[index]; + }; - PatternMask.prototype._nearestInputPos = function _nearestInputPos(cursorPos) { - var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.DIRECTION.LEFT; + PatternMask.prototype._nearestInputPos = function _nearestInputPos(cursorPos) { + var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DIRECTION.LEFT; - if (!direction) return cursorPos; + if (!direction) return cursorPos; - var initialDefIndex = this._mapPosToDefIndex(cursorPos); - var di = initialDefIndex; + var initialDefIndex = this._mapPosToDefIndex(cursorPos); + var di = initialDefIndex; - var firstInputIndex, firstFilledInputIndex, firstVisibleHollowIndex, nextdi; + var firstInputIndex, firstFilledInputIndex, firstVisibleHollowIndex, nextdi; - // search forward - for (nextdi = (0, _utils.indexInDirection)(di, direction); this.def(nextdi); di += direction, nextdi += direction) { - if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di; - if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di; - if (this._isInput(nextdi) && !this._isHollow(nextdi)) { - firstFilledInputIndex = di; - break; - } + // search forward + for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) { + if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di; + if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di; + if (this._isInput(nextdi) && !this._isHollow(nextdi)) { + firstFilledInputIndex = di; + break; } + } - if (direction === _utils.DIRECTION.LEFT || firstInputIndex == null) { - // search backwards - direction = -direction; - var overflow = false; - - // find hollows only before initial pos - for (nextdi = (0, _utils.indexInDirection)(di, direction); this.def(nextdi); di += direction, nextdi += direction) { - if (this._isInput(nextdi)) { - firstInputIndex = di; - if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break; - } - - // if hollow not found before start position - set `overflow` - // and try to find just any input - if (di === initialDefIndex) overflow = true; + if (direction === DIRECTION.LEFT || firstInputIndex == null) { + // search backwards + direction = -direction; + var overflow = false; - // first input found - if (overflow && firstInputIndex != null) break; + // find hollows only before initial pos + for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) { + if (this._isInput(nextdi)) { + firstInputIndex = di; + if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break; } - // process overflow - overflow = overflow || !this.def(nextdi); - if (overflow && firstInputIndex != null) di = firstInputIndex; - } else if (firstFilledInputIndex == null) { - // adjust index if delete at right and filled input not found at right - di = firstVisibleHollowIndex != null ? firstVisibleHollowIndex : firstInputIndex; - } - - return this._mapDefIndexToPos(di); - }; - - PatternMask.prototype._alignCursor = function _alignCursor() { - this.cursorPos = this._nearestInputPos(this.cursorPos); - }; + // if hollow not found before start position - set `overflow` + // and try to find just any input + if (di === initialDefIndex) overflow = true; - _createClass(PatternMask, [{ - key: 'isComplete', - get: function get() { - for (var di = 0;; ++di) { - var def = this.def(di); - if (!def) break; - if (this._isInput(di) && !def.optional && this._isHollow(di)) return false; - } - return true; + // first input found + if (overflow && firstInputIndex != null) break; } - }, { - key: 'unmaskedValue', - get: function get() { - return this._unmaskedValue; - }, - set: function set(str) { - this._hollows.length = 0; - var res; - var _appendTail4 = this._appendTail('', str); + // process overflow + overflow = overflow || !this.def(nextdi); + if (overflow && firstInputIndex != null) di = firstInputIndex; + } else if (firstFilledInputIndex == null) { + // adjust index if delete at right and filled input not found at right + di = firstVisibleHollowIndex != null ? firstVisibleHollowIndex : firstInputIndex; + } - res = _appendTail4[0]; - this._hollows = _appendTail4[1]; + return this._mapDefIndexToPos(di); + }; - this.updateElement(this._appendPlaceholderEnd(res)); + PatternMask.prototype._alignCursor = function _alignCursor() { + this.cursorPos = this._nearestInputPos(this.cursorPos); + }; - this._alignCursor(); - } - }, { - key: 'placeholder', - get: function get() { - return this._placeholder; - }, - set: function set(ph) { - this._placeholder = _extends({}, PatternMask.DEFAULT_PLACEHOLDER, ph); - if (this._initialized) this.unmaskedValue = this.unmaskedValue; - } - }, { - key: 'placeholderLabel', - get: function get() { - var _this4 = this; - - return this.defs().map(function (def) { - return def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? _this4._placeholder.char : ''; - }).join(''); - } - }, { - key: 'definitions', - get: function get() { - return this._definitions; - }, - set: function set(defs) { - this._installDefinitions(defs); - if (this._initialized) this.unmaskedValue = this.unmaskedValue; - } - }, { - key: 'mask', - get: function get() { - return this._mask; - }, - set: function set(mask) { - this._mask = mask; - if (this._initialized) this.definitions = this.definitions; + createClass(PatternMask, [{ + key: 'isComplete', + get: function get$$1() { + for (var di = 0;; ++di) { + var def = this.def(di); + if (!def) break; + if (this._isInput(di) && !def.optional && this._isHollow(di)) return false; } - }]); - - return PatternMask; - }(_base2.default); - - exports.default = PatternMask; - - PatternMask.DEFINITIONS = { - '0': /\d/, - 'a': /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, // http://stackoverflow.com/a/22075070 - '*': /./ - }; - PatternMask.DEF_TYPES = { - INPUT: 'input', - FIXED: 'fixed' - }; - PatternMask.DEFAULT_PLACEHOLDER = { - show: 'lazy', - char: '_' - }; - PatternMask.STOP_CHAR = '\''; - PatternMask.ESCAPE_CHAR = '\\'; -}); - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(0), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - factory(exports, require('./base'), require('../utils')); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.base, global.utils); - global.pipe = mod.exports; - } -})(this, function (exports, _base, _utils) { - 'use strict'; + return true; + } + }, { + key: 'unmaskedValue', + get: function get$$1() { + return this._unmaskedValue; + }, + set: function set$$1(str) { + this._hollows.length = 0; + var res; - Object.defineProperty(exports, "__esModule", { - value: true - }); + var _appendTail4 = this._appendTail('', str); - var _base2 = _interopRequireDefault(_base); + res = _appendTail4[0]; + this._hollows = _appendTail4[1]; - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } + this.updateElement(this._appendPlaceholderEnd(res)); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); + this._alignCursor(); } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + }, { + key: 'placeholder', + get: function get$$1() { + return this._placeholder; + }, + set: function set$$1(ph) { + this._placeholder = _extends({}, PatternMask.DEFAULT_PLACEHOLDER, ph); + if (this._initialized) this.unmaskedValue = this.unmaskedValue; } - - return call && (typeof call === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + }, { + key: 'placeholderLabel', + get: function get$$1() { + var _this4 = this; + + return this.defs().map(function (def) { + return def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? _this4._placeholder.char : ''; + }).join(''); } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } + }, { + key: 'definitions', + get: function get$$1() { + return this._definitions; + }, + set: function set$$1(defs) { + this._installDefinitions(defs); + if (this._initialized) this.unmaskedValue = this.unmaskedValue; + } + }, { + key: 'mask', + get: function get$$1() { + return this._mask; + }, + set: function set$$1(mask) { + this._mask = mask; + if (this._initialized) this.definitions = this.definitions; + } + }]); + return PatternMask; +}(BaseMask); + +PatternMask.DEFINITIONS = { + '0': /\d/, + 'a': /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, // http://stackoverflow.com/a/22075070 + '*': /./ +}; +PatternMask.DEF_TYPES = { + INPUT: 'input', + FIXED: 'fixed' +}; +PatternMask.DEFAULT_PLACEHOLDER = { + show: 'lazy', + char: '_' +}; +PatternMask.STOP_CHAR = '\''; +PatternMask.ESCAPE_CHAR = '\\'; + +var PipeMask = function (_BaseMask) { + inherits(PipeMask, _BaseMask); + + function PipeMask(el, opts) { + classCallCheck(this, PipeMask); + + var _this = possibleConstructorReturn(this, _BaseMask.call(this, el, opts)); + + _this.multipass = opts.multipass; + + _this._compiledMasks = _this.mask.map(function (m) { + return IMask.MaskFactory(el, m); }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + return _this; } - var PipeMask = function (_BaseMask) { - _inherits(PipeMask, _BaseMask); - - function PipeMask(el, opts) { - _classCallCheck(this, PipeMask); - - var _this = _possibleConstructorReturn(this, _BaseMask.call(this, el, opts)); + PipeMask.prototype.resolve = function resolve(str, details) { + var res = this._pipe(str, details); + if (!this.multipass) return res; - _this.multipass = opts.multipass; + var cursorPos = details.cursorPos; - _this._compiledMasks = _this.mask.map(function (m) { - return IMask.MaskFactory(el, m); + var stepRes; + var tempRes = res; + + while (stepRes !== tempRes) { + stepRes = tempRes; + tempRes = this._pipe(stepRes, { + cursorPos: stepRes.length, + oldValue: stepRes, + oldSelection: { + start: 0, + end: stepRes.length + } }); - return _this; } - PipeMask.prototype.resolve = function resolve(str, details) { - var res = this._pipe(str, details); - if (!this.multipass) return res; - - var cursorPos = details.cursorPos; - - var stepRes; - var tempRes = res; - - while (stepRes !== tempRes) { - stepRes = tempRes; - tempRes = this._pipe(stepRes, { - cursorPos: stepRes.length, - oldValue: stepRes, - oldSelection: { - start: 0, - end: stepRes.length - } - }); - } - - details.cursorPos = cursorPos - (res.length - stepRes.length); - - return stepRes; - }; - - PipeMask.prototype._pipe = function _pipe(str, details) { - return this._compiledMasks.reduce(function (s, m) { - var d = (0, _utils.extendDetailsAdjustments)(s, details); - var res = m.resolve(s, d); - details.cursorPos = d.cursorPos; - return res; - }, str); - }; + details.cursorPos = cursorPos - (res.length - stepRes.length); - PipeMask.prototype.bindEvents = function bindEvents() { - _BaseMask.prototype.bindEvents.call(this); - this._compiledMasks.forEach(function (m) { - m.bindEvents(); - // disable basemask events for child masks - _base2.default.prototype.unbindEvents.apply(m); - }); - }; + return stepRes; + }; - PipeMask.prototype.unbindEvents = function unbindEvents() { - _BaseMask.prototype.unbindEvents.call(this); - this._compiledMasks.forEach(function (m) { - return m.unbindEvents(); - }); - }; + PipeMask.prototype._pipe = function _pipe(str, details) { + return this._compiledMasks.reduce(function (s, m) { + var d = extendDetailsAdjustments(s, details); + var res = m.resolve(s, d); + details.cursorPos = d.cursorPos; + return res; + }, str); + }; - return PipeMask; - }(_base2.default); + PipeMask.prototype.bindEvents = function bindEvents() { + _BaseMask.prototype.bindEvents.call(this); + this._compiledMasks.forEach(function (m) { + m.bindEvents(); + // disable basemask events for child masks + BaseMask.prototype.unbindEvents.apply(m); + }); + }; - exports.default = PipeMask; -}); + PipeMask.prototype.unbindEvents = function unbindEvents() { + _BaseMask.prototype.unbindEvents.call(this); + this._compiledMasks.forEach(function (m) { + return m.unbindEvents(); + }); + }; -/***/ }) -/******/ ]); -}); -//# sourceMappingURL=imask.js.map \ No newline at end of file + return PipeMask; +}(BaseMask); + +function IMask$1(el) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var mask = IMask$1.MaskFactory(el, opts); + mask.bindEvents(); + // refresh + mask.rawValue = el.value; + return mask; +} + +IMask$1.MaskFactory = function (el, opts) { + var mask = opts.mask; + if (mask instanceof BaseMask) return mask; + if (mask instanceof RegExp) return new RegExpMask(el, opts); + if (mask instanceof Array) return new PipeMask(el, opts); + if (isString(mask)) return new PatternMask(el, opts); + if (mask.prototype instanceof BaseMask) return new mask(el, opts); + if (mask instanceof Function) return new FuncMask(el, opts); + return new BaseMask(el, opts); +}; +IMask$1.BaseMask = BaseMask; +IMask$1.FuncMask = FuncMask; +IMask$1.RegExpMask = RegExpMask; +IMask$1.PatternMask = PatternMask; +window.IMask = IMask$1; + +return IMask$1; + +}))); +//# sourceMappingURL=imask.js.map diff --git a/dist/imask.js.map b/dist/imask.js.map index 21aeabfc..38b3300d 100644 --- a/dist/imask.js.map +++ b/dist/imask.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap c9ab0c916abd7b3d939d","webpack:///./src/masks/base.js","webpack:///./src/utils.js","webpack:///./src/imask.js","webpack:///./src/masks/regexp.js","webpack:///./src/masks/func.js","webpack:///./src/masks/pattern.js","webpack:///./src/masks/pipe.js"],"names":["BaseMask","el","opts","mask","_listeners","_refreshingCount","_rawValue","_unmaskedValue","saveSelection","bind","_onInput","_onDrop","on","ev","handler","push","off","hIndex","indexOf","splice","bindEvents","addEventListener","unbindEvents","removeEventListener","fireEvent","listeners","forEach","l","processInput","inputValue","details","cursorPos","oldSelection","_selection","oldValue","rawValue","oldUnmaskedValue","unmaskedValue","res","resolve","updateElement","value","console","warn","start","selectionStart","end","destroy","length","_calcUnmasked","isChanged","updateCursor","_fireChangeEvents","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","clearTimeout","preventDefault","stopPropagation","str","selectionEnd","pos","document","activeElement","setSelectionRange","isString","conform","extendDetailsAdjustments","indexInDirection","String","fallback","DIRECTION","NONE","LEFT","RIGHT","startChangePos","Math","min","insertedCount","removedCount","max","head","substring","tail","inserted","substr","removed","removeDirection","direction","IMask","MaskFactory","RegExp","Array","prototype","Function","FuncMask","RegExpMask","PatternMask","window","test","_hollows","placeholder","definitions","DEFINITIONS","_alignCursor","_alignCursorFriendly","_initialized","_installDefinitions","_definitions","_charDefs","_alignStops","pattern","unmaskingBlock","optionalBlock","i","ch","type","DEF_TYPES","INPUT","FIXED","unmasking","optional","STOP_CHAR","ESCAPE_CHAR","char","_buildResolvers","_resolvers","defKey","_appendTail","skipUnresolvedInput","placeholderBuffer","hollows","slice","overflow","ci","di","_mapPosToDefIndex","_isHollow","def","resolver","chres","isResolved","_placeholder","_appendTailChunks","chunks","input","chunk2","stop2","_appendPlaceholderEnd","_extractInput","fromPos","toPos","toDefIndex","_isHiddenHollow","_isInput","_extractInputChunks","stops","si","s","s2","defIndex","_hollowsBefore","filter","h","_mapDefIndexToPos","hi","_generateInsertSteps","insertSteps","tailPos","tailDefIndex","tailAlignStopsPos","map","tailInputChunks","lastHollowIndex","_nearestInputPos","istep","step","tres","isComplete","_appendFixedEnd","show","unmasked","defs","index","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","ph","DEFAULT_PLACEHOLDER","join","_mask","PipeMask","multipass","_compiledMasks","m","_pipe","stepRes","tempRes","reduce","d","apply"],"mappings":"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","file":"imask.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c9ab0c916abd7b3d939d","import {conform, extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass BaseMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.mask = opts.mask;\r\n\r\n this._listeners = {};\r\n this._refreshingCount = 0;\r\n this._rawValue = \"\";\r\n this._unmaskedValue = \"\";\r\n\r\n this.saveSelection = this.saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n var hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n get rawValue () {\r\n return this._rawValue;\r\n }\r\n\r\n set rawValue (str) {\r\n this.processInput(str, {\r\n cursorPos: str.length,\r\n oldValue: this.rawValue,\r\n oldSelection: {\r\n start: 0,\r\n end: this.rawValue.length\r\n }\r\n });\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.rawValue = value;\r\n }\r\n\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this.saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this.saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n }\r\n\r\n fireEvent (ev) {\r\n var listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n processInput (inputValue, details) {\r\n details = {\r\n cursorPos: this.cursorPos,\r\n oldSelection: this._selection,\r\n oldValue: this.rawValue,\r\n oldUnmaskedValue: this.unmaskedValue,\r\n ...details\r\n };\r\n\r\n details = extendDetailsAdjustments(inputValue, details);\r\n\r\n var res = conform(this.resolve(inputValue, details),\r\n inputValue,\r\n this.rawValue);\r\n\r\n this.updateElement(res, details.cursorPos);\r\n return res;\r\n }\r\n\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this.saveSelection();\r\n }\r\n\r\n saveSelection (ev) {\r\n if (this.rawValue !== this.el.value) {\r\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n\r\n updateElement (value, cursorPos) {\r\n var unmaskedValue = this._calcUnmasked(value);\r\n var isChanged = (this.unmaskedValue !== unmaskedValue ||\r\n this.rawValue !== value);\r\n\r\n this._unmaskedValue = unmaskedValue;\r\n this._rawValue = value;\r\n\r\n if (this.el.value !== value) this.el.value = value;\r\n this.updateCursor(cursorPos);\r\n\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent(\"accept\");\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this._abortUpdateCursor();\r\n this.cursorPos = this._changingCursorPos;\r\n }, 10);\r\n }\r\n\r\n _abortUpdateCursor() {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _onInput (ev) {\r\n this._abortUpdateCursor();\r\n this.processInput(this.el.value);\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n // override\r\n resolve (str, details) { return str; }\r\n\r\n _calcUnmasked (value) { return value; }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/base.js","export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nvar DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\n\r\nexport\r\nfunction extendDetailsAdjustments(str, details) {\r\n var cursorPos = details.cursorPos;\r\n var oldSelection = details.oldSelection;\r\n var oldValue = details.oldValue;\r\n\r\n var startChangePos = Math.min(cursorPos, oldSelection.start);\r\n var insertedCount = cursorPos - startChangePos;\r\n // Math.max for opposite operation\r\n var removedCount = Math.max((oldSelection.end - startChangePos) ||\r\n // for Delete\r\n oldValue.length - str.length, 0);\r\n\r\n return {\r\n ...details,\r\n startChangePos,\r\n head: str.substring(0, startChangePos),\r\n tail: str.substring(startChangePos + insertedCount),\r\n inserted: str.substr(startChangePos, insertedCount),\r\n removed: oldValue.substr(startChangePos, removedCount),\r\n removeDirection: removedCount &&\r\n ((oldSelection.end === cursorPos || insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT)\r\n };\r\n}\r\n\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import {isString} from './utils';\r\n\r\nimport BaseMask from './masks/base';\r\nimport RegExpMask from './masks/regexp';\r\nimport FuncMask from './masks/func';\r\nimport PatternMask from './masks/pattern';\r\nimport PipeMask from './masks/pipe';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n var mask = IMask.MaskFactory(el, opts);\r\n mask.bindEvents();\r\n // refresh\r\n mask.rawValue = el.value;\r\n return mask;\r\n}\r\n\r\nIMask.MaskFactory = function (el, opts) {\r\n var mask = opts.mask;\r\n if (mask instanceof BaseMask) return mask;\r\n if (mask instanceof RegExp) return new RegExpMask(el, opts);\r\n if (mask instanceof Array) return new PipeMask(el, opts);\r\n if (isString(mask)) return new PatternMask(el, opts);\r\n if (mask.prototype instanceof BaseMask) return new mask(el, opts);\r\n if (mask instanceof Function) return new FuncMask(el, opts);\r\n return new BaseMask(el, opts);\r\n}\r\nIMask.BaseMask = BaseMask;\r\nIMask.FuncMask = FuncMask;\r\nIMask.RegExpMask = RegExpMask;\r\nIMask.PatternMask = PatternMask;\r\nwindow.IMask = IMask;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/imask.js","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass RegExpMask extends BaseMask {\r\n resolve (str) {\r\n return this.mask.test(str);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/regexp.js","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass FuncMask extends BaseMask {\r\n resolve (...args) {\r\n return this.mask(...args);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/func.js","import {conform, extendDetailsAdjustments, indexInDirection, DIRECTION} from '../utils';\r\nimport BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass PatternMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this._hollows = [];\r\n this.placeholder = opts.placeholder;\r\n this.definitions = {\r\n ...PatternMask.DEFINITIONS,\r\n ...opts.definitions\r\n };\r\n\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n _installDefinitions (definitions) {\r\n this._definitions = definitions;\r\n this._charDefs = [];\r\n this._alignStops = [];\r\n\r\n var pattern = this.mask;\r\n if (!pattern || !definitions) return;\r\n\r\n var unmaskingBlock = false;\r\n var optionalBlock = false;\r\n for (var i=0; i= 0;\r\n }\r\n\r\n _isHiddenHollow (defIndex) {\r\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\r\n }\r\n\r\n _isInput (defIndex) {\r\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\r\n }\r\n\r\n _hollowsBefore (defIndex) {\r\n return this._hollows.filter(h => h < defIndex && this._isHiddenHollow(h));\r\n }\r\n\r\n _mapDefIndexToPos (defIndex) {\r\n return defIndex - this._hollowsBefore(defIndex).length;\r\n }\r\n\r\n _mapPosToDefIndex (pos) {\r\n var defIndex = pos;\r\n for (var hi=0; hi= defIndex) break;\r\n if (this._isHiddenHollow(h)) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _generateInsertSteps (head, inserted) {\r\n var overflow = false;\r\n\r\n // save hollow during generation\r\n var hollows = this._hollows;\r\n\r\n var insertSteps = [[head, hollows.slice()]];\r\n\r\n for (var ci=0; ci s >= tailDefIndex)\r\n .map(s => this._mapDefIndexToPos(s))\r\n ];\r\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\r\n\r\n // remove hollows after cursor\r\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\r\n this._hollows = this._hollows.filter(h => h < lastHollowIndex);\r\n\r\n var res = details.head;\r\n // if remove at left - adjust start change pos\r\n if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\r\n\r\n // insert available\r\n var insertSteps = this._generateInsertSteps(res, inserted);\r\n for (var istep=insertSteps.length-1; istep >= 0; --istep) {\r\n var step, tres, overflow;\r\n [step, this._hollows] = insertSteps[istep];\r\n [tres, this._hollows, overflow] = this._appendTailChunks(step, tailInputChunks);\r\n if (!overflow) {\r\n res = tres;\r\n cursorPos = step.length;\r\n break;\r\n }\r\n }\r\n\r\n res = this._appendPlaceholderEnd(res);\r\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\r\n\r\n return res;\r\n }\r\n\r\n _fireChangeEvents () {\r\n // fire 'complete' after 'accept' event\r\n super._fireChangeEvents();\r\n if (this.isComplete) this.fireEvent(\"complete\");\r\n }\r\n\r\n get isComplete () {\r\n for (var di=0; ;++di) {\r\n var def = this.def(di);\r\n if (!def) break;\r\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n _appendFixedEnd (res) {\r\n for (var di=this._mapPosToDefIndex(res.length); ; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isHiddenHollow(di)) continue;\r\n if (this._isInput(di)) break;\r\n if (di >= res.length) res += def.char;\r\n }\r\n return res;\r\n }\r\n\r\n _appendPlaceholderEnd (res, toPos) {\r\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\r\n for (var di=this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isInput(di) && !this._isHollow(di)) {\r\n this._hollows.push(di);\r\n }\r\n if (this._placeholder.show === 'always' || toPos) {\r\n res += def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '';\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n _calcUnmasked (str) {\r\n var unmasked = '';\r\n for (var ci=0, di=0; ci\r\n def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '').join('');\r\n }\r\n\r\n get definitions () { return this._definitions; }\r\n\r\n set definitions (defs) {\r\n this._installDefinitions(defs);\r\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\r\n }\r\n\r\n get mask () { return this._mask; }\r\n\r\n set mask (mask) {\r\n this._mask = mask;\r\n if (this._initialized) this.definitions = this.definitions;\r\n }\r\n\r\n defs (str) {\r\n var defs = [];\r\n for (var i=0; ;++i) {\r\n var def = this.def(i, str);\r\n if (!def) break;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n\r\n def (index, str) {\r\n return this._charDefs[index];\r\n }\r\n\r\n _nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\r\n var di = initialDefIndex;\r\n\r\n var firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\r\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n var overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (this._isInput(nextdi)) {\r\n firstInputIndex = di;\r\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || !this.def(nextdi);\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this._mapDefIndexToPos(di);\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this._nearestInputPos(this.cursorPos);\r\n }\r\n}\r\nPatternMask.DEFINITIONS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternMask.DEF_TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n}\r\nPatternMask.DEFAULT_PLACEHOLDER = {\r\n show: 'lazy',\r\n char: '_'\r\n};\r\nPatternMask.STOP_CHAR = '\\'';\r\nPatternMask.ESCAPE_CHAR = '\\\\';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/pattern.js","import BaseMask from './base';\r\nimport {extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass PipeMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this.multipass = opts.multipass;\r\n\r\n this._compiledMasks = this.mask.map(m => IMask.MaskFactory(el, m));\r\n }\r\n\r\n resolve (str, details) {\r\n var res = this._pipe(str, details);\r\n if (!this.multipass) return res;\r\n\r\n var cursorPos = details.cursorPos;\r\n\r\n var stepRes;\r\n var tempRes = res;\r\n\r\n while (stepRes !== tempRes) {\r\n stepRes = tempRes;\r\n tempRes = this._pipe(stepRes, {\r\n cursorPos: stepRes.length,\r\n oldValue: stepRes,\r\n oldSelection: {\r\n start: 0,\r\n end: stepRes.length\r\n }\r\n });\r\n }\r\n\r\n details.cursorPos = cursorPos - (res.length - stepRes.length);\r\n\r\n return stepRes;\r\n }\r\n\r\n _pipe (str, details) {\r\n return this._compiledMasks.reduce((s, m) => {\r\n var d = extendDetailsAdjustments(s, details);\r\n var res = m.resolve(s, d);\r\n details.cursorPos = d.cursorPos;\r\n return res;\r\n }, str);\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this._compiledMasks.forEach(m => {\r\n m.bindEvents();\r\n // disable basemask events for child masks\r\n BaseMask.prototype.unbindEvents.apply(m);\r\n });\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this._compiledMasks.forEach(m => m.unbindEvents());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/pipe.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"imask.js","sources":["../src/utils.js","../src/masks/base.js","../src/masks/regexp.js","../src/masks/func.js","../src/masks/pattern.js","../src/masks/pipe.js","../src/imask.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nvar DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\n\r\nexport\r\nfunction extendDetailsAdjustments(str, details) {\r\n var cursorPos = details.cursorPos;\r\n var oldSelection = details.oldSelection;\r\n var oldValue = details.oldValue;\r\n\r\n var startChangePos = Math.min(cursorPos, oldSelection.start);\r\n var insertedCount = cursorPos - startChangePos;\r\n // Math.max for opposite operation\r\n var removedCount = Math.max((oldSelection.end - startChangePos) ||\r\n // for Delete\r\n oldValue.length - str.length, 0);\r\n\r\n return {\r\n ...details,\r\n startChangePos,\r\n head: str.substring(0, startChangePos),\r\n tail: str.substring(startChangePos + insertedCount),\r\n inserted: str.substr(startChangePos, insertedCount),\r\n removed: oldValue.substr(startChangePos, removedCount),\r\n removeDirection: removedCount &&\r\n ((oldSelection.end === cursorPos || insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT)\r\n };\r\n}\r\n\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n","import {conform, extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass BaseMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.mask = opts.mask;\r\n\r\n this._listeners = {};\r\n this._refreshingCount = 0;\r\n this._rawValue = \"\";\r\n this._unmaskedValue = \"\";\r\n\r\n this.saveSelection = this.saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n var hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n get rawValue () {\r\n return this._rawValue;\r\n }\r\n\r\n set rawValue (str) {\r\n this.processInput(str, {\r\n cursorPos: str.length,\r\n oldValue: this.rawValue,\r\n oldSelection: {\r\n start: 0,\r\n end: this.rawValue.length\r\n }\r\n });\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.rawValue = value;\r\n }\r\n\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this.saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this.saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n }\r\n\r\n fireEvent (ev) {\r\n var listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n processInput (inputValue, details) {\r\n details = {\r\n cursorPos: this.cursorPos,\r\n oldSelection: this._selection,\r\n oldValue: this.rawValue,\r\n oldUnmaskedValue: this.unmaskedValue,\r\n ...details\r\n };\r\n\r\n details = extendDetailsAdjustments(inputValue, details);\r\n\r\n var res = conform(this.resolve(inputValue, details),\r\n inputValue,\r\n this.rawValue);\r\n\r\n this.updateElement(res, details.cursorPos);\r\n return res;\r\n }\r\n\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this.saveSelection();\r\n }\r\n\r\n saveSelection (ev) {\r\n if (this.rawValue !== this.el.value) {\r\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n\r\n updateElement (value, cursorPos) {\r\n var unmaskedValue = this._calcUnmasked(value);\r\n var isChanged = (this.unmaskedValue !== unmaskedValue ||\r\n this.rawValue !== value);\r\n\r\n this._unmaskedValue = unmaskedValue;\r\n this._rawValue = value;\r\n\r\n if (this.el.value !== value) this.el.value = value;\r\n this.updateCursor(cursorPos);\r\n\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent(\"accept\");\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this._abortUpdateCursor();\r\n this.cursorPos = this._changingCursorPos;\r\n }, 10);\r\n }\r\n\r\n _abortUpdateCursor() {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _onInput (ev) {\r\n this._abortUpdateCursor();\r\n this.processInput(this.el.value);\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n // override\r\n resolve (str, details) { return str; }\r\n\r\n _calcUnmasked (value) { return value; }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass RegExpMask extends BaseMask {\r\n resolve (str) {\r\n return this.mask.test(str);\r\n }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass FuncMask extends BaseMask {\r\n resolve (...args) {\r\n return this.mask(...args);\r\n }\r\n}\r\n","import {conform, indexInDirection, DIRECTION} from '../utils';\r\nimport BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass PatternMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this._hollows = [];\r\n this.placeholder = opts.placeholder;\r\n this.definitions = {\r\n ...PatternMask.DEFINITIONS,\r\n ...opts.definitions\r\n };\r\n\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n _installDefinitions (definitions) {\r\n this._definitions = definitions;\r\n this._charDefs = [];\r\n this._alignStops = [];\r\n\r\n var pattern = this.mask;\r\n if (!pattern || !definitions) return;\r\n\r\n var unmaskingBlock = false;\r\n var optionalBlock = false;\r\n for (var i=0; i= 0;\r\n }\r\n\r\n _isHiddenHollow (defIndex) {\r\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\r\n }\r\n\r\n _isInput (defIndex) {\r\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\r\n }\r\n\r\n _hollowsBefore (defIndex) {\r\n return this._hollows.filter(h => h < defIndex && this._isHiddenHollow(h));\r\n }\r\n\r\n _mapDefIndexToPos (defIndex) {\r\n return defIndex - this._hollowsBefore(defIndex).length;\r\n }\r\n\r\n _mapPosToDefIndex (pos) {\r\n var defIndex = pos;\r\n for (var hi=0; hi= defIndex) break;\r\n if (this._isHiddenHollow(h)) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _generateInsertSteps (head, inserted) {\r\n var overflow = false;\r\n\r\n // save hollow during generation\r\n var hollows = this._hollows;\r\n\r\n var insertSteps = [[head, hollows.slice()]];\r\n\r\n for (var ci=0; ci s >= tailDefIndex)\r\n .map(s => this._mapDefIndexToPos(s))\r\n ];\r\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\r\n\r\n // remove hollows after cursor\r\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\r\n this._hollows = this._hollows.filter(h => h < lastHollowIndex);\r\n\r\n var res = details.head;\r\n // if remove at left - adjust start change pos\r\n if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\r\n\r\n // insert available\r\n var insertSteps = this._generateInsertSteps(res, inserted);\r\n for (var istep=insertSteps.length-1; istep >= 0; --istep) {\r\n var step, tres, overflow;\r\n [step, this._hollows] = insertSteps[istep];\r\n [tres, this._hollows, overflow] = this._appendTailChunks(step, tailInputChunks);\r\n if (!overflow) {\r\n res = tres;\r\n cursorPos = step.length;\r\n break;\r\n }\r\n }\r\n\r\n res = this._appendPlaceholderEnd(res);\r\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\r\n\r\n return res;\r\n }\r\n\r\n _fireChangeEvents () {\r\n // fire 'complete' after 'accept' event\r\n super._fireChangeEvents();\r\n if (this.isComplete) this.fireEvent(\"complete\");\r\n }\r\n\r\n get isComplete () {\r\n for (var di=0; ;++di) {\r\n var def = this.def(di);\r\n if (!def) break;\r\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n _appendFixedEnd (res) {\r\n for (var di=this._mapPosToDefIndex(res.length); ; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isHiddenHollow(di)) continue;\r\n if (this._isInput(di)) break;\r\n if (di >= res.length) res += def.char;\r\n }\r\n return res;\r\n }\r\n\r\n _appendPlaceholderEnd (res, toPos) {\r\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\r\n for (var di=this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isInput(di) && !this._isHollow(di)) {\r\n this._hollows.push(di);\r\n }\r\n if (this._placeholder.show === 'always' || toPos) {\r\n res += def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '';\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n _calcUnmasked (str) {\r\n var unmasked = '';\r\n for (var ci=0, di=0; ci\r\n def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '').join('');\r\n }\r\n\r\n get definitions () { return this._definitions; }\r\n\r\n set definitions (defs) {\r\n this._installDefinitions(defs);\r\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\r\n }\r\n\r\n get mask () { return this._mask; }\r\n\r\n set mask (mask) {\r\n this._mask = mask;\r\n if (this._initialized) this.definitions = this.definitions;\r\n }\r\n\r\n defs (str) {\r\n var defs = [];\r\n for (var i=0; ;++i) {\r\n var def = this.def(i, str);\r\n if (!def) break;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n\r\n def (index, str) {\r\n return this._charDefs[index];\r\n }\r\n\r\n _nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\r\n var di = initialDefIndex;\r\n\r\n var firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\r\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n var overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (this._isInput(nextdi)) {\r\n firstInputIndex = di;\r\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || !this.def(nextdi);\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this._mapDefIndexToPos(di);\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this._nearestInputPos(this.cursorPos);\r\n }\r\n}\r\nPatternMask.DEFINITIONS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternMask.DEF_TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n}\r\nPatternMask.DEFAULT_PLACEHOLDER = {\r\n show: 'lazy',\r\n char: '_'\r\n};\r\nPatternMask.STOP_CHAR = '\\'';\r\nPatternMask.ESCAPE_CHAR = '\\\\';\r\n","import BaseMask from './base';\r\nimport {extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass PipeMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this.multipass = opts.multipass;\r\n\r\n this._compiledMasks = this.mask.map(m => IMask.MaskFactory(el, m));\r\n }\r\n\r\n resolve (str, details) {\r\n var res = this._pipe(str, details);\r\n if (!this.multipass) return res;\r\n\r\n var cursorPos = details.cursorPos;\r\n\r\n var stepRes;\r\n var tempRes = res;\r\n\r\n while (stepRes !== tempRes) {\r\n stepRes = tempRes;\r\n tempRes = this._pipe(stepRes, {\r\n cursorPos: stepRes.length,\r\n oldValue: stepRes,\r\n oldSelection: {\r\n start: 0,\r\n end: stepRes.length\r\n }\r\n });\r\n }\r\n\r\n details.cursorPos = cursorPos - (res.length - stepRes.length);\r\n\r\n return stepRes;\r\n }\r\n\r\n _pipe (str, details) {\r\n return this._compiledMasks.reduce((s, m) => {\r\n var d = extendDetailsAdjustments(s, details);\r\n var res = m.resolve(s, d);\r\n details.cursorPos = d.cursorPos;\r\n return res;\r\n }, str);\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this._compiledMasks.forEach(m => {\r\n m.bindEvents();\r\n // disable basemask events for child masks\r\n BaseMask.prototype.unbindEvents.apply(m);\r\n });\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this._compiledMasks.forEach(m => m.unbindEvents());\r\n }\r\n}\r\n","import {isString} from './utils';\r\n\r\nimport BaseMask from './masks/base';\r\nimport RegExpMask from './masks/regexp';\r\nimport FuncMask from './masks/func';\r\nimport PatternMask from './masks/pattern';\r\nimport PipeMask from './masks/pipe';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n var mask = IMask.MaskFactory(el, opts);\r\n mask.bindEvents();\r\n // refresh\r\n mask.rawValue = el.value;\r\n return mask;\r\n}\r\n\r\nIMask.MaskFactory = function (el, opts) {\r\n var mask = opts.mask;\r\n if (mask instanceof BaseMask) return mask;\r\n if (mask instanceof RegExp) return new RegExpMask(el, opts);\r\n if (mask instanceof Array) return new PipeMask(el, opts);\r\n if (isString(mask)) return new PatternMask(el, opts);\r\n if (mask.prototype instanceof BaseMask) return new mask(el, opts);\r\n if (mask instanceof Function) return new FuncMask(el, opts);\r\n return new BaseMask(el, opts);\r\n}\r\nIMask.BaseMask = BaseMask;\r\nIMask.FuncMask = FuncMask;\r\nIMask.RegExpMask = RegExpMask;\r\nIMask.PatternMask = PatternMask;\r\nwindow.IMask = IMask;\r\n"],"names":["isString","str","String","conform","res","fallback","DIRECTION","extendDetailsAdjustments","details","cursorPos","oldSelection","oldValue","startChangePos","Math","min","start","insertedCount","removedCount","max","end","length","substring","substr","RIGHT","LEFT","indexInDirection","pos","direction","BaseMask","el","opts","mask","_listeners","_refreshingCount","_rawValue","_unmaskedValue","saveSelection","bind","_onInput","_onDrop","on","ev","handler","push","off","hIndex","indexOf","splice","bindEvents","addEventListener","unbindEvents","removeEventListener","fireEvent","listeners","forEach","l","processInput","inputValue","_selection","rawValue","unmaskedValue","resolve","updateElement","value","warn","selectionStart","destroy","_calcUnmasked","isChanged","updateCursor","_fireChangeEvents","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","preventDefault","stopPropagation","selectionEnd","document","activeElement","setSelectionRange","RegExpMask","test","FuncMask","PatternMask","_hollows","placeholder","definitions","DEFINITIONS","_alignCursor","_alignCursorFriendly","_initialized","_installDefinitions","_definitions","_charDefs","_alignStops","pattern","unmaskingBlock","optionalBlock","i","ch","type","DEF_TYPES","INPUT","FIXED","unmasking","optional","STOP_CHAR","ESCAPE_CHAR","_buildResolvers","_resolvers","defKey","IMask","MaskFactory","_appendTail","tail","skipUnresolvedInput","placeholderBuffer","hollows","slice","overflow","ci","di","_mapPosToDefIndex","_isHollow","def","resolver","char","chres","isResolved","_placeholder","_appendTailChunks","chunks","input","chunk2","stop2","_appendPlaceholderEnd","_extractInput","fromPos","toPos","toDefIndex","_isHiddenHollow","_isInput","_extractInputChunks","stops","si","s","s2","defIndex","_hollowsBefore","filter","h","_mapDefIndexToPos","hi","_generateInsertSteps","head","inserted","insertSteps","removed","tailPos","tailDefIndex","tailAlignStopsPos","map","tailInputChunks","lastHollowIndex","removeDirection","_nearestInputPos","istep","step","tres","isComplete","_appendFixedEnd","show","unmasked","defs","index","initialDefIndex","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","ph","DEFAULT_PLACEHOLDER","join","_mask","PipeMask","multipass","_compiledMasks","m","_pipe","stepRes","tempRes","reduce","d","prototype","apply","RegExp","Array","Function","window"],"mappings":"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"} \ No newline at end of file diff --git a/dist/imask.min.es.js b/dist/imask.min.es.js new file mode 100644 index 00000000..74cf66f9 --- /dev/null +++ b/dist/imask.min.es.js @@ -0,0 +1,2 @@ +function isString(u){return"string"==typeof u||u instanceof String}function conform(u,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return isString(u)?u:u?t:e}function extendDetailsAdjustments(u,t){var e=t.cursorPos,n=t.oldSelection,s=t.oldValue,i=Math.min(e,n.start),o=e-i,r=Math.max(n.end-i||s.length-u.length,0);return _extends({},t,{startChangePos:i,head:u.substring(0,i),tail:u.substring(i+o),inserted:u.substr(i,o),removed:s.substr(i,r),removeDirection:r&&(n.end===e||o?DIRECTION.RIGHT:DIRECTION.LEFT)})}function indexInDirection(u,t){return t===DIRECTION.LEFT&&--u,u}function IMask$1(u){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=IMask$1.MaskFactory(u,t);return e.bindEvents(),e.rawValue=u.value,e}var classCallCheck=function(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")},createClass=function(){function u(u,t){for(var e=0;e=0&&this._listeners.splice(e,1),this}delete this._listeners[u]}},u.prototype.bindEvents=function(){this.el.addEventListener("keydown",this.saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop)},u.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this.saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop)},u.prototype.fireEvent=function(u){(this._listeners[u]||[]).forEach(function(u){return u()})},u.prototype.processInput=function(u,t){t=extendDetailsAdjustments(u,t=_extends({cursorPos:this.cursorPos,oldSelection:this._selection,oldValue:this.rawValue,oldUnmaskedValue:this.unmaskedValue},t));var e=conform(this.resolve(u,t),u,this.rawValue);return this.updateElement(e,t.cursorPos),e},u.prototype.saveSelection=function(u){this.rawValue!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},u.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},u.prototype.updateElement=function(u,t){var e=this._calcUnmasked(u),n=this.unmaskedValue!==e||this.rawValue!==u;this._unmaskedValue=e,this._rawValue=u,this.el.value!==u&&(this.el.value=u),this.updateCursor(t),n&&this._fireChangeEvents()},u.prototype._fireChangeEvents=function(){this.fireEvent("accept")},u.prototype.updateCursor=function(u){null!=u&&(this.cursorPos=u,this._delayUpdateCursor(u))},u.prototype._delayUpdateCursor=function(u){var t=this;this._abortUpdateCursor(),this._changingCursorPos=u,this._cursorChanging=setTimeout(function(){t._abortUpdateCursor(),t.cursorPos=t._changingCursorPos},10)},u.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},u.prototype._onInput=function(u){this._abortUpdateCursor(),this.processInput(this.el.value)},u.prototype._onDrop=function(u){u.preventDefault(),u.stopPropagation()},u.prototype.resolve=function(u,t){return u},u.prototype._calcUnmasked=function(u){return u},createClass(u,[{key:"rawValue",get:function(){return this._rawValue},set:function(u){this.processInput(u,{cursorPos:u.length,oldValue:this.rawValue,oldSelection:{start:0,end:this.rawValue.length}})}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(u){this.rawValue=u}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(u){this.el===document.activeElement&&(this.el.setSelectionRange(u,u),this.saveSelection())}}]),u}(),RegExpMask=function(u){function t(){return classCallCheck(this,t),possibleConstructorReturn(this,u.apply(this,arguments))}return inherits(t,u),t.prototype.resolve=function(u){return this.mask.test(u)},t}(BaseMask),FuncMask=function(u){function t(){return classCallCheck(this,t),possibleConstructorReturn(this,u.apply(this,arguments))}return inherits(t,u),t.prototype.resolve=function(){return this.mask.apply(this,arguments)},t}(BaseMask),PatternMask=function(u){function t(e,n){classCallCheck(this,t);var s=possibleConstructorReturn(this,u.call(this,e,n));return s._hollows=[],s.placeholder=n.placeholder,s.definitions=_extends({},t.DEFINITIONS,n.definitions),s._alignCursor=s._alignCursor.bind(s),s._alignCursorFriendly=s._alignCursorFriendly.bind(s),s._initialized=!0,s}return inherits(t,u),t.prototype._alignCursorFriendly=function(){this.selectionStart===this.cursorPos&&this._alignCursor()},t.prototype.bindEvents=function(){u.prototype.bindEvents.call(this),this.el.addEventListener("click",this._alignCursorFriendly)},t.prototype.unbindEvents=function(){u.prototype.unbindEvents.call(this),this.el.removeEventListener("click",this._alignCursorFriendly)},t.prototype._installDefinitions=function(u){this._definitions=u,this._charDefs=[],this._alignStops=[];var e=this.mask;if(e&&u){for(var n=!1,s=!1,i=0;i2&&void 0!==arguments[2])||arguments[2],s="",i=this._hollows.slice(),o=!1,r=0,a=this._mapPosToDefIndex(u.length);r1&&void 0!==arguments[1]?arguments[1]:0,e=arguments[2],n="",s=e&&this._mapPosToDefIndex(e),i=0,o=this._mapPosToDefIndex(t);i=0},t.prototype._isHiddenHollow=function(u){return this._isHollow(u)&&this.def(u)&&this.def(u).optional},t.prototype._isInput=function(u){return this.def(u)&&this.def(u).type===t.DEF_TYPES.INPUT},t.prototype._hollowsBefore=function(u){var t=this;return this._hollows.filter(function(e){return e=t)break;this._isHiddenHollow(n)&&++t}return t},t.prototype._generateInsertSteps=function(u,t){for(var e=!1,n=[[u,(a=this._hollows).slice()]],s=0;s=r}).map(function(u){return e._mapDefIndexToPos(u)})),l=this._extractInputChunks(t.tail,a),h=this._mapPosToDefIndex(s);this._hollows=this._hollows.filter(function(u){return u=0;--A){var f,F,d=c[A];f=d[0],this._hollows=d[1];var C=this._appendTailChunks(f,l);if(F=C[0],this._hollows=C[1],!C[2]){p=F,n=f.length;break}}return p=this._appendPlaceholderEnd(p),t.cursorPos=this._nearestInputPos(n,t.removeDirection),p},t.prototype._fireChangeEvents=function(){u.prototype._fireChangeEvents.call(this),this.isComplete&&this.fireEvent("complete")},t.prototype._appendFixedEnd=function(u){for(var t=this._mapPosToDefIndex(u.length);;++t){var e=this.def(t,u);if(!e)break;if(!this._isHiddenHollow(t)){if(this._isInput(t))break;t>=u.length&&(u+=e.char)}}return u},t.prototype._appendPlaceholderEnd=function(u,e){for(var n=e&&this._mapPosToDefIndex(e),s=this._mapPosToDefIndex(u.length);!n||s1&&void 0!==arguments[1]?arguments[1]:DIRECTION.LEFT;if(!t)return u;var e,n,s,i,o=this._mapPosToDefIndex(u),r=o;for(i=indexInDirection(r,t);this.def(i);r+=t,i+=t)if(null==e&&this._isInput(i)&&(e=r),null==s&&this._isHollow(i)&&!this._isHiddenHollow(i)&&(s=r),this._isInput(i)&&!this._isHollow(i)){n=r;break}if(t===DIRECTION.LEFT||null==e){var a=!1;for(i=indexInDirection(r,t=-t);this.def(i)&&(!this._isInput(i)||(e=r,!this._isHollow(i)||this._isHiddenHollow(i)))&&(r===o&&(a=!0),!a||null==e);r+=t,i+=t);(a=a||!this.def(i))&&null!=e&&(r=e)}else null==n&&(r=null!=s?s:e);return this._mapDefIndexToPos(r)},t.prototype._alignCursor=function(){this.cursorPos=this._nearestInputPos(this.cursorPos)},createClass(t,[{key:"isComplete",get:function(){for(var u=0;;++u){var t=this.def(u);if(!t)break;if(this._isInput(u)&&!t.optional&&this._isHollow(u))return!1}return!0}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(u){this._hollows.length=0;var t,e=this._appendTail("",u);t=e[0],this._hollows=e[1],this.updateElement(this._appendPlaceholderEnd(t)),this._alignCursor()}},{key:"placeholder",get:function(){return this._placeholder},set:function(u){this._placeholder=_extends({},t.DEFAULT_PLACEHOLDER,u),this._initialized&&(this.unmaskedValue=this.unmaskedValue)}},{key:"placeholderLabel",get:function(){var u=this;return this.defs().map(function(e){return e.type===t.DEF_TYPES.FIXED?e.char:e.optional?"":u._placeholder.char}).join("")}},{key:"definitions",get:function(){return this._definitions},set:function(u){this._installDefinitions(u),this._initialized&&(this.unmaskedValue=this.unmaskedValue)}},{key:"mask",get:function(){return this._mask},set:function(u){this._mask=u,this._initialized&&(this.definitions=this.definitions)}}]),t}(BaseMask);PatternMask.DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},PatternMask.DEF_TYPES={INPUT:"input",FIXED:"fixed"},PatternMask.DEFAULT_PLACEHOLDER={show:"lazy",char:"_"},PatternMask.STOP_CHAR="'",PatternMask.ESCAPE_CHAR="\\";var PipeMask=function(u){function t(e,n){classCallCheck(this,t);var s=possibleConstructorReturn(this,u.call(this,e,n));return s.multipass=n.multipass,s._compiledMasks=s.mask.map(function(u){return IMask.MaskFactory(e,u)}),s}return inherits(t,u),t.prototype.resolve=function(u,t){var e=this._pipe(u,t);if(!this.multipass)return e;for(var n,s=t.cursorPos,i=e;n!==i;)n=i,i=this._pipe(n,{cursorPos:n.length,oldValue:n,oldSelection:{start:0,end:n.length}});return t.cursorPos=s-(e.length-n.length),n},t.prototype._pipe=function(u,t){return this._compiledMasks.reduce(function(u,e){var n=extendDetailsAdjustments(u,t),s=e.resolve(u,n);return t.cursorPos=n.cursorPos,s},u)},t.prototype.bindEvents=function(){u.prototype.bindEvents.call(this),this._compiledMasks.forEach(function(u){u.bindEvents(),BaseMask.prototype.unbindEvents.apply(u)})},t.prototype.unbindEvents=function(){u.prototype.unbindEvents.call(this),this._compiledMasks.forEach(function(u){return u.unbindEvents()})},t}(BaseMask);IMask$1.MaskFactory=function(u,t){var e=t.mask;return e instanceof BaseMask?e:e instanceof RegExp?new RegExpMask(u,t):e instanceof Array?new PipeMask(u,t):isString(e)?new PatternMask(u,t):e.prototype instanceof BaseMask?new e(u,t):e instanceof Function?new FuncMask(u,t):new BaseMask(u,t)},IMask$1.BaseMask=BaseMask,IMask$1.FuncMask=FuncMask,IMask$1.RegExpMask=RegExpMask,IMask$1.PatternMask=PatternMask,window.IMask=IMask$1;export default IMask$1; +//# sourceMappingURL=imask.min.es.js.map diff --git a/dist/imask.min.es.js.map b/dist/imask.min.es.js.map new file mode 100644 index 00000000..6e5610b2 --- /dev/null +++ b/dist/imask.min.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"imask.min.es.js","sources":["../src/utils.js","../src/imask.js","../src/masks/base.js","../src/masks/regexp.js","../src/masks/func.js","../src/masks/pattern.js","../src/masks/pipe.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nvar DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\n\r\nexport\r\nfunction extendDetailsAdjustments(str, details) {\r\n var cursorPos = details.cursorPos;\r\n var oldSelection = details.oldSelection;\r\n var oldValue = details.oldValue;\r\n\r\n var startChangePos = Math.min(cursorPos, oldSelection.start);\r\n var insertedCount = cursorPos - startChangePos;\r\n // Math.max for opposite operation\r\n var removedCount = Math.max((oldSelection.end - startChangePos) ||\r\n // for Delete\r\n oldValue.length - str.length, 0);\r\n\r\n return {\r\n ...details,\r\n startChangePos,\r\n head: str.substring(0, startChangePos),\r\n tail: str.substring(startChangePos + insertedCount),\r\n inserted: str.substr(startChangePos, insertedCount),\r\n removed: oldValue.substr(startChangePos, removedCount),\r\n removeDirection: removedCount &&\r\n ((oldSelection.end === cursorPos || insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT)\r\n };\r\n}\r\n\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n","import {isString} from './utils';\r\n\r\nimport BaseMask from './masks/base';\r\nimport RegExpMask from './masks/regexp';\r\nimport FuncMask from './masks/func';\r\nimport PatternMask from './masks/pattern';\r\nimport PipeMask from './masks/pipe';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n var mask = IMask.MaskFactory(el, opts);\r\n mask.bindEvents();\r\n // refresh\r\n mask.rawValue = el.value;\r\n return mask;\r\n}\r\n\r\nIMask.MaskFactory = function (el, opts) {\r\n var mask = opts.mask;\r\n if (mask instanceof BaseMask) return mask;\r\n if (mask instanceof RegExp) return new RegExpMask(el, opts);\r\n if (mask instanceof Array) return new PipeMask(el, opts);\r\n if (isString(mask)) return new PatternMask(el, opts);\r\n if (mask.prototype instanceof BaseMask) return new mask(el, opts);\r\n if (mask instanceof Function) return new FuncMask(el, opts);\r\n return new BaseMask(el, opts);\r\n}\r\nIMask.BaseMask = BaseMask;\r\nIMask.FuncMask = FuncMask;\r\nIMask.RegExpMask = RegExpMask;\r\nIMask.PatternMask = PatternMask;\r\nwindow.IMask = IMask;\r\n","import {conform, extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass BaseMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.mask = opts.mask;\r\n\r\n this._listeners = {};\r\n this._refreshingCount = 0;\r\n this._rawValue = \"\";\r\n this._unmaskedValue = \"\";\r\n\r\n this.saveSelection = this.saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n var hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n get rawValue () {\r\n return this._rawValue;\r\n }\r\n\r\n set rawValue (str) {\r\n this.processInput(str, {\r\n cursorPos: str.length,\r\n oldValue: this.rawValue,\r\n oldSelection: {\r\n start: 0,\r\n end: this.rawValue.length\r\n }\r\n });\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.rawValue = value;\r\n }\r\n\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this.saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this.saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n }\r\n\r\n fireEvent (ev) {\r\n var listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n processInput (inputValue, details) {\r\n details = {\r\n cursorPos: this.cursorPos,\r\n oldSelection: this._selection,\r\n oldValue: this.rawValue,\r\n oldUnmaskedValue: this.unmaskedValue,\r\n ...details\r\n };\r\n\r\n details = extendDetailsAdjustments(inputValue, details);\r\n\r\n var res = conform(this.resolve(inputValue, details),\r\n inputValue,\r\n this.rawValue);\r\n\r\n this.updateElement(res, details.cursorPos);\r\n return res;\r\n }\r\n\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this.saveSelection();\r\n }\r\n\r\n saveSelection (ev) {\r\n if (this.rawValue !== this.el.value) {\r\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n\r\n updateElement (value, cursorPos) {\r\n var unmaskedValue = this._calcUnmasked(value);\r\n var isChanged = (this.unmaskedValue !== unmaskedValue ||\r\n this.rawValue !== value);\r\n\r\n this._unmaskedValue = unmaskedValue;\r\n this._rawValue = value;\r\n\r\n if (this.el.value !== value) this.el.value = value;\r\n this.updateCursor(cursorPos);\r\n\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent(\"accept\");\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this._abortUpdateCursor();\r\n this.cursorPos = this._changingCursorPos;\r\n }, 10);\r\n }\r\n\r\n _abortUpdateCursor() {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _onInput (ev) {\r\n this._abortUpdateCursor();\r\n this.processInput(this.el.value);\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n // override\r\n resolve (str, details) { return str; }\r\n\r\n _calcUnmasked (value) { return value; }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass RegExpMask extends BaseMask {\r\n resolve (str) {\r\n return this.mask.test(str);\r\n }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass FuncMask extends BaseMask {\r\n resolve (...args) {\r\n return this.mask(...args);\r\n }\r\n}\r\n","import {conform, indexInDirection, DIRECTION} from '../utils';\r\nimport BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass PatternMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this._hollows = [];\r\n this.placeholder = opts.placeholder;\r\n this.definitions = {\r\n ...PatternMask.DEFINITIONS,\r\n ...opts.definitions\r\n };\r\n\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n _installDefinitions (definitions) {\r\n this._definitions = definitions;\r\n this._charDefs = [];\r\n this._alignStops = [];\r\n\r\n var pattern = this.mask;\r\n if (!pattern || !definitions) return;\r\n\r\n var unmaskingBlock = false;\r\n var optionalBlock = false;\r\n for (var i=0; i= 0;\r\n }\r\n\r\n _isHiddenHollow (defIndex) {\r\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\r\n }\r\n\r\n _isInput (defIndex) {\r\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\r\n }\r\n\r\n _hollowsBefore (defIndex) {\r\n return this._hollows.filter(h => h < defIndex && this._isHiddenHollow(h));\r\n }\r\n\r\n _mapDefIndexToPos (defIndex) {\r\n return defIndex - this._hollowsBefore(defIndex).length;\r\n }\r\n\r\n _mapPosToDefIndex (pos) {\r\n var defIndex = pos;\r\n for (var hi=0; hi= defIndex) break;\r\n if (this._isHiddenHollow(h)) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _generateInsertSteps (head, inserted) {\r\n var overflow = false;\r\n\r\n // save hollow during generation\r\n var hollows = this._hollows;\r\n\r\n var insertSteps = [[head, hollows.slice()]];\r\n\r\n for (var ci=0; ci s >= tailDefIndex)\r\n .map(s => this._mapDefIndexToPos(s))\r\n ];\r\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\r\n\r\n // remove hollows after cursor\r\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\r\n this._hollows = this._hollows.filter(h => h < lastHollowIndex);\r\n\r\n var res = details.head;\r\n // if remove at left - adjust start change pos\r\n if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\r\n\r\n // insert available\r\n var insertSteps = this._generateInsertSteps(res, inserted);\r\n for (var istep=insertSteps.length-1; istep >= 0; --istep) {\r\n var step, tres, overflow;\r\n [step, this._hollows] = insertSteps[istep];\r\n [tres, this._hollows, overflow] = this._appendTailChunks(step, tailInputChunks);\r\n if (!overflow) {\r\n res = tres;\r\n cursorPos = step.length;\r\n break;\r\n }\r\n }\r\n\r\n res = this._appendPlaceholderEnd(res);\r\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\r\n\r\n return res;\r\n }\r\n\r\n _fireChangeEvents () {\r\n // fire 'complete' after 'accept' event\r\n super._fireChangeEvents();\r\n if (this.isComplete) this.fireEvent(\"complete\");\r\n }\r\n\r\n get isComplete () {\r\n for (var di=0; ;++di) {\r\n var def = this.def(di);\r\n if (!def) break;\r\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n _appendFixedEnd (res) {\r\n for (var di=this._mapPosToDefIndex(res.length); ; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isHiddenHollow(di)) continue;\r\n if (this._isInput(di)) break;\r\n if (di >= res.length) res += def.char;\r\n }\r\n return res;\r\n }\r\n\r\n _appendPlaceholderEnd (res, toPos) {\r\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\r\n for (var di=this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isInput(di) && !this._isHollow(di)) {\r\n this._hollows.push(di);\r\n }\r\n if (this._placeholder.show === 'always' || toPos) {\r\n res += def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '';\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n _calcUnmasked (str) {\r\n var unmasked = '';\r\n for (var ci=0, di=0; ci\r\n def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '').join('');\r\n }\r\n\r\n get definitions () { return this._definitions; }\r\n\r\n set definitions (defs) {\r\n this._installDefinitions(defs);\r\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\r\n }\r\n\r\n get mask () { return this._mask; }\r\n\r\n set mask (mask) {\r\n this._mask = mask;\r\n if (this._initialized) this.definitions = this.definitions;\r\n }\r\n\r\n defs (str) {\r\n var defs = [];\r\n for (var i=0; ;++i) {\r\n var def = this.def(i, str);\r\n if (!def) break;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n\r\n def (index, str) {\r\n return this._charDefs[index];\r\n }\r\n\r\n _nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\r\n var di = initialDefIndex;\r\n\r\n var firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\r\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n var overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (this._isInput(nextdi)) {\r\n firstInputIndex = di;\r\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || !this.def(nextdi);\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this._mapDefIndexToPos(di);\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this._nearestInputPos(this.cursorPos);\r\n }\r\n}\r\nPatternMask.DEFINITIONS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternMask.DEF_TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n}\r\nPatternMask.DEFAULT_PLACEHOLDER = {\r\n show: 'lazy',\r\n char: '_'\r\n};\r\nPatternMask.STOP_CHAR = '\\'';\r\nPatternMask.ESCAPE_CHAR = '\\\\';\r\n","import BaseMask from './base';\r\nimport {extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass PipeMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this.multipass = opts.multipass;\r\n\r\n this._compiledMasks = this.mask.map(m => IMask.MaskFactory(el, m));\r\n }\r\n\r\n resolve (str, details) {\r\n var res = this._pipe(str, details);\r\n if (!this.multipass) return res;\r\n\r\n var cursorPos = details.cursorPos;\r\n\r\n var stepRes;\r\n var tempRes = res;\r\n\r\n while (stepRes !== tempRes) {\r\n stepRes = tempRes;\r\n tempRes = this._pipe(stepRes, {\r\n cursorPos: stepRes.length,\r\n oldValue: stepRes,\r\n oldSelection: {\r\n start: 0,\r\n end: stepRes.length\r\n }\r\n });\r\n }\r\n\r\n details.cursorPos = cursorPos - (res.length - stepRes.length);\r\n\r\n return stepRes;\r\n }\r\n\r\n _pipe (str, details) {\r\n return this._compiledMasks.reduce((s, m) => {\r\n var d = extendDetailsAdjustments(s, details);\r\n var res = m.resolve(s, d);\r\n details.cursorPos = d.cursorPos;\r\n return res;\r\n }, str);\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this._compiledMasks.forEach(m => {\r\n m.bindEvents();\r\n // disable basemask events for child masks\r\n BaseMask.prototype.unbindEvents.apply(m);\r\n });\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this._compiledMasks.forEach(m => m.unbindEvents());\r\n }\r\n}\r\n"],"names":["isString","str","String","conform","res","fallback","extendDetailsAdjustments","details","cursorPos","oldSelection","oldValue","startChangePos","Math","min","start","insertedCount","removedCount","max","end","length","substring","substr","DIRECTION","RIGHT","LEFT","indexInDirection","pos","direction","IMask","el","opts","mask","MaskFactory","bindEvents","rawValue","value","BaseMask","_listeners","_refreshingCount","_rawValue","_unmaskedValue","saveSelection","this","bind","_onInput","_onDrop","on","ev","handler","push","off","hIndex","indexOf","splice","addEventListener","unbindEvents","removeEventListener","fireEvent","forEach","l","processInput","inputValue","_selection","unmaskedValue","resolve","updateElement","warn","selectionStart","destroy","_calcUnmasked","isChanged","updateCursor","_fireChangeEvents","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","_this","preventDefault","stopPropagation","selectionEnd","document","activeElement","setSelectionRange","RegExpMask","test","FuncMask","PatternMask","_BaseMask","_hollows","placeholder","definitions","DEFINITIONS","_alignCursor","_alignCursorFriendly","_initialized","_installDefinitions","_definitions","_charDefs","_alignStops","pattern","unmaskingBlock","optionalBlock","i","ch","type","DEF_TYPES","INPUT","FIXED","unmasking","optional","STOP_CHAR","ESCAPE_CHAR","_buildResolvers","_resolvers","defKey","_appendTail","tail","skipUnresolvedInput","placeholderBuffer","hollows","slice","overflow","ci","di","_mapPosToDefIndex","_isHollow","def","chres","char","isResolved","_placeholder","_appendTailChunks","chunks","input","chunk2","stop2","_appendPlaceholderEnd","_extractInput","fromPos","toPos","toDefIndex","_isHiddenHollow","_isInput","_extractInputChunks","stops","si","s","s2","defIndex","_hollowsBefore","filter","h","_this2","_mapDefIndexToPos","hi","_generateInsertSteps","head","inserted","insertSteps","tailPos","removed","tailDefIndex","tailAlignStopsPos","map","_this3","tailInputChunks","lastHollowIndex","removeDirection","_nearestInputPos","istep","step","tres","isComplete","_appendFixedEnd","show","unmasked","defs","index","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","initialDefIndex","ph","DEFAULT_PLACEHOLDER","_this4","join","_mask","PipeMask","multipass","_compiledMasks","m","_pipe","stepRes","tempRes","reduce","d","prototype","apply","RegExp","Array","Function","window"],"mappings":"AACA,SAASA,SAAUC,SACK,iBAARA,GAAoBA,aAAeC,OAGnD,SACSC,QAASC,EAAKH,OAAKI,yDAAS,UAC5BL,SAASI,GACdA,EACAA,EACEH,EACAI,EAWN,SACSC,yBAAyBL,EAAKM,OACjCC,EAAYD,EAAQC,UACpBC,EAAeF,EAAQE,aACvBC,EAAWH,EAAQG,SAEnBC,EAAiBC,KAAKC,IAAIL,EAAWC,EAAaK,OAClDC,EAAgBP,EAAYG,EAE5BK,EAAeJ,KAAKK,IAAKR,EAAaS,IAAMP,KAErCQ,OAASlB,EAAIkB,OAAQ,sBAG3BZ,yBAEGN,EAAImB,UAAU,EAAGT,QACjBV,EAAImB,UAAUT,EAAiBI,YAC3Bd,EAAIoB,OAAOV,EAAgBI,WAC5BL,EAASW,OAAOV,EAAgBK,mBACxBA,IACbP,EAAaS,MAAQV,GAAaO,EAClCO,UAAUC,MACVD,UAAUE,QAKlB,SACSC,iBAAkBC,EAAKC,UAC1BA,IAAcL,UAAUE,QAAQE,EAC7BA,EC3CT,SAASE,QAAOC,OAAIC,4DACdC,EAAOH,QAAMI,YAAYH,EAAIC,YAC5BG,eAEAC,SAAWL,EAAGM,MACZJ,2hCDALT,gBACI,QACC,QACA,GEdHc,+BACSP,EAAIC,+BACVD,GAAKA,OACLE,KAAOD,EAAKC,UAEZM,mBACAC,iBAAmB,OACnBC,UAAY,QACZC,eAAiB,QAEjBC,cAAgBC,KAAKD,cAAcE,KAAKD,WACxCE,SAAWF,KAAKE,SAASD,KAAKD,WAC9BG,QAAUH,KAAKG,QAAQF,KAAKD,yBAGnCI,YAAIC,EAAIC,UACDN,KAAKL,WAAWU,KAAKL,KAAKL,WAAWU,YACrCV,WAAWU,GAAIE,KAAKD,GAClBN,kBAGTQ,aAAKH,EAAIC,MACFN,KAAKL,WAAWU,OAChBC,OAIDG,EAAST,KAAKL,WAAWU,GAAIK,QAAQJ,UACrCG,GAAU,GAAGT,KAAKL,WAAWgB,OAAOF,EAAQ,GACzCT,YALEA,KAAKL,WAAWU,iBAgC3Bd,2BACOJ,GAAGyB,iBAAiB,UAAWZ,KAAKD,oBACpCZ,GAAGyB,iBAAiB,QAASZ,KAAKE,eAClCf,GAAGyB,iBAAiB,OAAQZ,KAAKG,sBAGxCU,6BACO1B,GAAG2B,oBAAoB,UAAWd,KAAKD,oBACvCZ,GAAG2B,oBAAoB,QAASd,KAAKE,eACrCf,GAAG2B,oBAAoB,OAAQd,KAAKG,sBAG3CY,mBAAWV,IACOL,KAAKL,WAAWU,QACtBW,QAAQ,mBAAKC,mBAGzBC,sBAAcC,EAAYtD,KASdD,yBAAyBuD,wBAPtBnB,KAAKlC,uBACFkC,KAAKoB,oBACTpB,KAAKR,0BACGQ,KAAKqB,eACpBxD,QAKDH,EAAMD,QAAQuC,KAAKsB,QAAQH,EAAYtD,GACzCsD,EACAnB,KAAKR,sBAEF+B,cAAc7D,EAAKG,EAAQC,WACzBJ,eAyBTqC,uBAAeM,GACTL,KAAKR,WAAaQ,KAAKb,GAAGM,eACpB+B,KAAK,0DAEVJ,kBACIpB,KAAKyB,mBACPzB,KAAKlC,wBAId4D,wBACOb,oBACAlB,WAAWlB,OAAS,eAG3B8C,uBAAe9B,EAAO3B,OAChBuD,EAAgBrB,KAAK2B,cAAclC,GACnCmC,EAAa5B,KAAKqB,gBAAkBA,GACtCrB,KAAKR,WAAaC,OAEfK,eAAiBuB,OACjBxB,UAAYJ,EAEbO,KAAKb,GAAGM,QAAUA,IAAOO,KAAKb,GAAGM,MAAQA,QACxCoC,aAAa/D,GAEd8D,GAAW5B,KAAK8B,iCAGtBA,kCACOf,UAAU,uBAGjBc,sBAAc/D,GACK,MAAbA,SACCA,UAAYA,OAGZiE,mBAAmBjE,iBAG1BiE,4BAAoBjE,mBACbkE,0BACAC,mBAAqBnE,OACrBoE,gBAAkBC,WAAW,aAC3BH,uBACAlE,UAAYsE,EAAKH,oBACrB,iBAGLD,8BACMhC,KAAKkC,+BACMlC,KAAKkC,wBACXlC,KAAKkC,8BAIhBhC,kBAAUG,QACH2B,0BACAd,aAAalB,KAAKb,GAAGM,oBAG5BU,iBAASE,KACJgC,mBACAC,+BAILhB,iBAAS/D,EAAKM,UAAkBN,eAEhCoE,uBAAelC,UAAgBA,wDAvJtBO,KAAKH,wBAGAtC,QACP2D,aAAa3D,aACLA,EAAIkB,gBACLuB,KAAKR,6BAEN,MACFQ,KAAKR,SAASf,uDAMhBuB,KAAKF,6BAGKL,QACZD,SAAWC,gDA0CTO,KAAKkC,gBACVlC,KAAKiC,mBAELjC,KAAKb,GAAGsC,wDAIHzB,KAAKkC,gBACVlC,KAAKiC,mBAELjC,KAAKb,GAAGoD,2BAGGvD,GACTgB,KAAKb,KAAOqD,SAASC,qBAEpBtD,GAAGuD,kBAAkB1D,EAAKA,QAC1Be,0BC/GH4C,2JACJrB,iBAAS/D,UACAyC,KAAKX,KAAKuD,KAAKrF,OAFDmC,UCAnBmD,yJACJvB,0BACStB,KAAKX,+BAFOK,UCCjBoD,mCACS3D,EAAIC,+DACf2D,YAAM5D,EAAIC,aAEL4D,cACAC,YAAc7D,EAAK6D,cACnBC,wBACAJ,EAAYK,YACZ/D,EAAK8D,eAGLE,aAAehB,EAAKgB,aAAanD,UACjCoD,qBAAuBjB,EAAKiB,qBAAqBpD,UAEjDqD,cAAe,qCAGtBD,gCACMrD,KAAKyB,iBAAmBzB,KAAKlC,gBAC5BsF,4BAGP7D,kCACQA,2BACDJ,GAAGyB,iBAAiB,QAASZ,KAAKqD,mCAGzCxC,oCACQA,6BACD1B,GAAG2B,oBAAoB,QAASd,KAAKqD,mCAG5CE,6BAAqBL,QACdM,aAAeN,OACfO,kBACAC,mBAEDC,EAAU3D,KAAKX,QACdsE,GAAYT,OAIZ,IAFDU,GAAiB,EACjBC,GAAgB,EACXC,EAAE,EAAGA,EAAEH,EAAQlF,SAAUqF,EAAG,KAC/BC,EAAKJ,EAAQG,GACbE,GAAQJ,GAAkBG,KAAMb,EAClCJ,EAAYmB,UAAUC,MACtBpB,EAAYmB,UAAUE,MACpBC,EAAYJ,IAASlB,EAAYmB,UAAUC,OAASN,EACpDS,EAAWL,IAASlB,EAAYmB,UAAUC,OAASL,KAEnDE,IAAOjB,EAAYwB,aAKZ,MAAPP,GAAqB,MAAPA,KAKP,MAAPA,GAAqB,MAAPA,MAKdA,IAAOjB,EAAYyB,YAAa,MAChCT,MACGH,EAAQG,IAEJ,QACFhB,EAAYmB,UAAUE,WAG1BV,UAAUlD,WACPwD,OACAC,WACIK,YACCD,YAhBMP,UALCD,YALbF,YAAYnD,KAAKP,KAAKyD,UAAUhF,aA8BpC+F,gCAGPA,gCACOC,kBACA,IAAIC,KAAU1E,KAAKkD,iBACjBuB,WAAWC,GAAUxF,MAAMI,YAAYU,KAAKb,SACzCa,KAAKkD,YAAYwB,kBAK7BC,qBAAapH,EAAKqH,OAKX,IALiBC,6DAClBC,EAAoB,GACpBC,EAAU/E,KAAKgD,SAASgC,QACxBC,GAAW,EAENC,EAAG,EAAGC,EAAGnF,KAAKoF,kBAAkB7H,EAAIkB,QAASyG,EAAKN,EAAKnG,WAC1DuB,KAAKqF,UAAUF,KAEfA,WAIApB,EAAKa,EAAKM,GACVI,EAAMtF,KAAKsF,IAAIH,EAAI5H,EAAMuH,OAGxBQ,EAAK,IACG,WAITA,EAAItB,OAASlB,EAAYmB,UAAUC,MAAO,KAExCqB,EADWvF,KAAKyE,WAAWa,EAAIE,MACdlE,QAAQyC,EAAIoB,EAAI5H,EAAMuH,IAAsB,GAC7DW,IAAeF,EAGfA,IACM9H,QAAQ8H,EAAOxB,KAElBuB,EAAIjB,UAAYQ,IAAqBU,EAAQvF,KAAK0F,aAAaF,MAEhET,EAAQrE,QAAQyE,GAAM,GAAGJ,EAAQxE,KAAK4E,IAGxCI,OACKT,EAAoBrH,QAAQ8H,EAAOxB,KACtB,KAElBwB,GAASD,EAAIjB,WAAaQ,MAAuBM,GACjDM,IAAeH,EAAIjB,WAAaQ,MAAuBK,UAEtCI,EAAIE,KAErBzB,IAAOuB,EAAIE,OAASF,EAAIlB,WAAcS,KAAwBK,IAChEC,SAIE5H,EAAKwH,EAASE,gBAGxBU,2BAAmBpI,EAAKqI,EAAQf,OAEzB,IADDI,GAAW,EACNC,EAAG,EAAGA,EAAKU,EAAOnH,SAAUyG,EAAI,KAChCW,EAASD,EAAOV,QACUlF,KAAK2E,YAAYpH,EAAKsI,EAAOhB,kBAAnD7B,qBACG,UAGV8C,EAASF,EAAOV,EAAG,GACnBa,EAAQD,GAAUA,EAAO,GACzBC,IAAOxI,EAAMyC,KAAKgG,sBAAsBzI,EAAKwI,WAE3CxI,EAAKyC,KAAKgD,SAAUiC,gBAG9BgB,uBAAe1I,OAIR,IAJa2I,yDAAQ,EAAGC,eACzBN,EAAQ,GAERO,EAAaD,GAASnG,KAAKoF,kBAAkBe,GACxCjB,EAAG,EAAGC,EAAGnF,KAAKoF,kBAAkBc,GAAUhB,EAAG3H,EAAIkB,UAAY2H,GAAcjB,EAAKiB,KAAejB,EAAI,KACtGpB,EAAKxG,EAAI2H,OACHlF,KAAKsF,IAAIH,EAAI5H,GAEb,MACNyC,KAAKqG,gBAAgBlB,KAErBnF,KAAKsG,SAASnB,KAAQnF,KAAKqF,UAAUF,KAAKU,GAAS9B,KACrDmB,UAEGW,eAGTU,6BAAqBhJ,EAAKiJ,OAEnB,IADDZ,KACKa,EAAG,EAAGA,EAAGD,EAAM/H,QAAUlB,IAAOkJ,EAAI,KACvCC,EAAIF,EAAMC,GACVE,EAAKH,EAAMC,EAAG,KACXlG,MAAMmG,EAAG1G,KAAKiG,cAAc1I,EAAKmJ,EAAGC,KACvCA,IAAIpJ,EAAMA,EAAIyH,MAAM2B,EAAKD,WAExBd,eAGTP,mBAAWuB,UACF5G,KAAKgD,SAAStC,QAAQkG,IAAa,eAG5CP,yBAAiBO,UACR5G,KAAKqF,UAAUuB,IAAa5G,KAAKsF,IAAIsB,IAAa5G,KAAKsF,IAAIsB,GAAUvC,sBAG9EiC,kBAAUM,UACD5G,KAAKsF,IAAIsB,IAAa5G,KAAKsF,IAAIsB,GAAU5C,OAASlB,EAAYmB,UAAUC,mBAGjF2C,wBAAgBD,qBACP5G,KAAKgD,SAAS8D,OAAO,mBAAKC,EAAIH,GAAYI,EAAKX,gBAAgBU,kBAGxEE,2BAAmBL,UACVA,EAAW5G,KAAK6G,eAAeD,GAAUnI,oBAGlD2G,2BAAmBpG,OAEZ,IADD4H,EAAW5H,EACNkI,EAAG,EAAGA,EAAGlH,KAAKgD,SAASvE,SAAUyI,EAAI,KACxCH,EAAI/G,KAAKgD,SAASkE,MAClBH,GAAKH,EAAU,MACf5G,KAAKqG,gBAAgBU,MAAMH,SAE1BA,eAGTO,8BAAsBC,EAAMC,OAQrB,IAPDpC,GAAW,EAKXqC,IAAgBF,GAFhBrC,EAAU/E,KAAKgD,UAEegC,UAEzBE,EAAG,EAAGA,EAAGmC,EAAS5I,SAAWwG,IAAYC,EAAI,KAChDnB,EAAKsD,EAASnC,KACalF,KAAK2E,YAAYyC,EAAMrD,GAAI,GAArDrG,OAAKqH,OAASE,YACdjC,SAAW+B,EACXE,GAAYvH,IAAQ0J,MACX7G,MAAM7C,EAAKqH,MAChBrH,eAKNsF,SAAW+B,EAETuC,eAGThG,iBAAS/D,EAAKM,cACRC,EAAYD,EAAQC,UACpBG,EAAiBJ,EAAQI,eACzBoJ,EAAWxJ,EAAQwJ,SAEnBE,EAAUtJ,EADKJ,EAAQ2J,QAAQ/I,OAE/BgJ,EAAezH,KAAKoF,kBAAkBmC,GACtCG,GACFH,UACGvH,KAAK0D,YACLoD,OAAO,mBAAKJ,GAAKe,IACjBE,IAAI,mBAAKC,EAAKX,kBAAkBP,MAEjCmB,EAAkB7H,KAAKuG,oBAAoB1I,EAAQ+G,KAAM8C,GAGzDI,EAAkB9H,KAAKoF,kBAAkBnH,QACxC+E,SAAWhD,KAAKgD,SAAS8D,OAAO,mBAAKC,EAAIe,QAE1CpK,EAAMG,EAAQuJ,KAEdvJ,EAAQkK,kBAAoBnJ,UAAUE,OAAMpB,EAAMA,EAAIsH,MAAM,EAAGhF,KAAKgI,iBAAiB/J,SAIpF,IADDqJ,EAActH,KAAKmH,qBAAqBzJ,EAAK2J,GACxCY,EAAMX,EAAY7I,OAAO,EAAGwJ,GAAS,IAAKA,EAAO,KACpDC,EAAMC,IACcb,EAAYW,eAAxBjF,oBACsBhD,KAAK2F,kBAAkBuC,EAAML,kBAAnD7E,oBACG,GACPmF,IACMD,EAAKzJ,uBAKfuB,KAAKgG,sBAAsBtI,KACzBI,UAAYkC,KAAKgI,iBAAiBlK,EAAWD,EAAQkK,iBAEtDrK,eAGToE,yCAEQA,6BACF9B,KAAKoI,YAAYpI,KAAKe,UAAU,yBAYtCsH,yBAAiB3K,OACV,IAAIyH,EAAGnF,KAAKoF,kBAAkB1H,EAAIe,WAAa0G,EAAI,KAClDG,EAAMtF,KAAKsF,IAAIH,EAAIzH,OAClB4H,EAAK,UAENtF,KAAKqG,gBAAgBlB,OACrBnF,KAAKsG,SAASnB,GAAK,MACnBA,GAAMzH,EAAIe,SAAQf,GAAO4H,EAAIE,cAE5B9H,eAGTsI,+BAAuBtI,EAAKyI,OAErB,IADDC,EAAaD,GAASnG,KAAKoF,kBAAkBe,GACxChB,EAAGnF,KAAKoF,kBAAkB1H,EAAIe,SAAU2H,GAAcjB,EAAKiB,IAAcjB,EAAI,KAChFG,EAAMtF,KAAKsF,IAAIH,EAAIzH,OAClB4H,EAAK,MAENtF,KAAKsG,SAASnB,KAAQnF,KAAKqF,UAAUF,SAClCnC,SAASzC,KAAK4E,IAEU,WAA3BnF,KAAK0F,aAAa4C,MAAqBnC,QAClCb,EAAItB,OAASlB,EAAYmB,UAAUE,MACxCmB,EAAIE,KACHF,EAAIjB,SAEH,GADArE,KAAK0F,aAAaF,aAInB9H,eAGTiE,uBAAepE,OAER,IADDgL,EAAW,GACNrD,EAAG,EAAGC,EAAG,EAAGD,EAAG3H,EAAIkB,SAAU0G,EAAI,KACpCpB,EAAKxG,EAAI2H,GACTI,EAAMtF,KAAKsF,IAAIH,EAAI5H,OAElB+H,EAAK,MACNtF,KAAKqG,gBAAgBlB,KAErBG,EAAIlB,YAAcpE,KAAKqF,UAAUF,KAClCnF,KAAKsG,SAASnB,IAAOnF,KAAKyE,WAAWa,EAAIE,MAAMlE,QAAQyC,EAAImB,EAAI3H,IAC9D+H,EAAIE,OAASzB,QACHA,KAEZmB,UAEGqD,eAiDTC,cAAMjL,OAEC,IADDiL,KACK1E,EAAE,KAAMA,EAAG,KACdwB,EAAMtF,KAAKsF,IAAIxB,EAAGvG,OACjB+H,EAAK,QACL/E,KAAK+E,UAELkD,eAGTlD,aAAKmD,EAAOlL,UACHyC,KAAKyD,UAAUgF,gBAGxBT,0BAAkBlK,OAAWmB,yDAAUL,UAAUE,SAC1CG,EAAW,OAAOnB,MAKnB4K,EACAC,EACAC,EACAC,EANAC,EAAkB9I,KAAKoF,kBAAkBtH,GACzCqH,EAAK2D,MAQJD,EAAS9J,iBAAiBoG,EAAIlG,GAAYe,KAAKsF,IAAIuD,GAAS1D,GAAMlG,EAAW4J,GAAU5J,KACnE,MAAnByJ,GAA2B1I,KAAKsG,SAASuC,KAASH,EAAkBvD,GACzC,MAA3ByD,GAAmC5I,KAAKqF,UAAUwD,KAAY7I,KAAKqG,gBAAgBwC,KAASD,EAA0BzD,GACtHnF,KAAKsG,SAASuC,KAAY7I,KAAKqF,UAAUwD,GAAS,GAC5B1D,WAKxBlG,IAAcL,UAAUE,MAA2B,MAAnB4J,EAAyB,KAGvDzD,GAAW,MAGV4D,EAAS9J,iBAAiBoG,KAJlBlG,GAIkCe,KAAKsF,IAAIuD,MAClD7I,KAAKsG,SAASuC,OACE1D,GACdnF,KAAKqF,UAAUwD,IAAY7I,KAAKqG,gBAAgBwC,OAKlD1D,IAAO2D,IAAiB7D,GAAW,IAGnCA,GAA+B,MAAnByD,GAX+CvD,GAAMlG,EAAW4J,GAAU5J,MAejFgG,IAAajF,KAAKsF,IAAIuD,KACE,MAAnBH,IAAyBvD,EAAKuD,QACZ,MAAzBC,MAEuB,MAA3BC,EACHA,EACAF,UAGG1I,KAAKiH,kBAAkB9B,gBAGhC/B,6BACOtF,UAAYkC,KAAKgI,iBAAiBhI,KAAKlC,gEA9KvC,IAAIqH,EAAG,KAAMA,EAAI,KAChBG,EAAMtF,KAAKsF,IAAIH,OACdG,EAAK,SACNtF,KAAKsG,SAASnB,KAAQG,EAAIjB,UAAYrE,KAAKqF,UAAUF,GAAK,OAAO,SAEhE,+CAuDAnF,KAAKF,6BAGKvC,QACZyF,SAASvE,OAAS,MACnBf,IACmBsC,KAAK2E,YAAY,GAAIpH,eAAjCyF,mBACNzB,cAAcvB,KAAKgG,sBAAsBtI,SAEzC0F,0DAGqBpD,KAAK0F,2BAEhBqD,QACVrD,yBACA5C,EAAYkG,oBACZD,GAED/I,KAAKsD,eAActD,KAAKqB,cAAgBrB,KAAKqB,0EAI1CrB,KAAKwI,OAAOb,IAAI,mBACrBrC,EAAItB,OAASlB,EAAYmB,UAAUE,MACjCmB,EAAIE,KACHF,EAAIjB,SAEH,GADA4E,EAAKvD,aAAaF,OACd0D,KAAK,+CAGWlJ,KAAKwD,2BAEhBgF,QACVjF,oBAAoBiF,GACrBxI,KAAKsD,eAActD,KAAKqB,cAAgBrB,KAAKqB,mDAG9BrB,KAAKmJ,oBAEhB9J,QACH8J,MAAQ9J,EACTW,KAAKsD,eAActD,KAAKkD,YAAclD,KAAKkD,oBAzYzBxD,sBAoddyD,eACL,OACA,0nIACA,KAEPL,YAAYmB,iBACH,cACA,SAETnB,YAAYkG,0BACJ,YACA,KAERlG,YAAYwB,UAAY,IACxBxB,YAAYyB,YAAc,SClepB6E,gCACSjK,EAAIC,+DACf2D,YAAM5D,EAAIC,aAELiK,UAAYjK,EAAKiK,YAEjBC,eAAiBlH,EAAK/C,KAAKsI,IAAI,mBAAKzI,MAAMI,YAAYH,EAAIoK,wCAGjEjI,iBAAS/D,EAAKM,OACRH,EAAMsC,KAAKwJ,MAAMjM,EAAKM,OACrBmC,KAAKqJ,UAAW,OAAO3L,UAIxB+L,EAFA3L,EAAYD,EAAQC,UAGpB4L,EAAUhM,EAEP+L,IAAYC,KACPA,IACA1J,KAAKwJ,MAAMC,aACRA,EAAQhL,gBACTgL,sBAED,MACFA,EAAQhL,mBAKXX,UAAYA,GAAaJ,EAAIe,OAASgL,EAAQhL,QAE/CgL,eAGTD,eAAOjM,EAAKM,UACHmC,KAAKsJ,eAAeK,OAAO,SAACjD,EAAG6C,OAChCK,EAAIhM,yBAAyB8I,EAAG7I,GAChCH,EAAM6L,EAAEjI,QAAQoF,EAAGkD,YACf9L,UAAY8L,EAAE9L,UACfJ,GACNH,gBAGLgC,kCACQA,2BACD+J,eAAetI,QAAQ,cACxBzB,sBAEOsK,UAAUhJ,aAAaiJ,MAAMP,kBAI1C1I,oCACQA,6BACDyI,eAAetI,QAAQ,mBAAKuI,EAAE1I,qBAvDhBnB,ULavBR,QAAMI,YAAc,SAAUH,EAAIC,OAC5BC,EAAOD,EAAKC,YACZA,aAAgBK,SAAiBL,EACjCA,aAAgB0K,OAAe,IAAIpH,WAAWxD,EAAIC,GAClDC,aAAgB2K,MAAc,IAAIZ,SAASjK,EAAIC,GAC/C9B,SAAS+B,GAAc,IAAIyD,YAAY3D,EAAIC,GAC3CC,EAAKwK,qBAAqBnK,SAAiB,IAAIL,EAAKF,EAAIC,GACxDC,aAAgB4K,SAAiB,IAAIpH,SAAS1D,EAAIC,GAC/C,IAAIM,SAASP,EAAIC,IAE1BF,QAAMQ,SAAWA,SACjBR,QAAM2D,SAAWA,SACjB3D,QAAMyD,WAAaA,WACnBzD,QAAM4D,YAAcA,YACpBoH,OAAOhL,MAAQA"} \ No newline at end of file diff --git a/dist/imask.min.js b/dist/imask.min.js index c9bd50f1..da4997b2 100644 --- a/dist/imask.min.js +++ b/dist/imask.min.js @@ -1,2 +1,2 @@ -!function(u,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e=t();for(var n in e)("object"==typeof exports?exports:u)[n]=e[n]}}(this,function(){return function(u){function t(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return u[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var e={};return t.m=u,t.c=e,t.d=function(u,e,n){t.o(u,e)||Object.defineProperty(u,e,{configurable:!1,enumerable:!0,get:n})},t.n=function(u){var e=u&&u.__esModule?function(){return u.default}:function(){return u};return t.d(e,"a",e),e},t.o=function(u,t){return Object.prototype.hasOwnProperty.call(u,t)},t.p="",t(t.s=2)}([function(u,t,e){var n,o,i;!function(r,s){o=[t,e(1)],n=s,void 0!==(i="function"==typeof n?n.apply(t,o):n)&&(u.exports=i)}(0,function(u,t){"use strict";function e(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(u,"__esModule",{value:!0});var n=Object.assign||function(u){for(var t=1;t=0&&this._listeners.splice(e,1),this}},u.prototype.bindEvents=function(){this.el.addEventListener("keydown",this.saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop)},u.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this.saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop)},u.prototype.fireEvent=function(u){(this._listeners[u]||[]).forEach(function(u){return u()})},u.prototype.processInput=function(u,e){e=n({cursorPos:this.cursorPos,oldSelection:this._selection,oldValue:this.rawValue,oldUnmaskedValue:this.unmaskedValue},e),e=(0,t.extendDetailsAdjustments)(u,e);var o=(0,t.conform)(this.resolve(u,e),u,this.rawValue);return this.updateElement(o,e.cursorPos),o},u.prototype.saveSelection=function(u){this.rawValue!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},u.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},u.prototype.updateElement=function(u,t){var e=this._calcUnmasked(u),n=this.unmaskedValue!==e||this.rawValue!==u;this._unmaskedValue=e,this._rawValue=u,this.el.value!==u&&(this.el.value=u),this.updateCursor(t),n&&this._fireChangeEvents()},u.prototype._fireChangeEvents=function(){this.fireEvent("accept")},u.prototype.updateCursor=function(u){null!=u&&(this.cursorPos=u,this._delayUpdateCursor(u))},u.prototype._delayUpdateCursor=function(u){var t=this;this._abortUpdateCursor(),this._changingCursorPos=u,this._cursorChanging=setTimeout(function(){t._abortUpdateCursor(),t.cursorPos=t._changingCursorPos},10)},u.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},u.prototype._onInput=function(u){this._abortUpdateCursor(),this.processInput(this.el.value)},u.prototype._onDrop=function(u){u.preventDefault(),u.stopPropagation()},u.prototype.resolve=function(u,t){return u},u.prototype._calcUnmasked=function(u){return u},o(u,[{key:"rawValue",get:function(){return this._rawValue},set:function(u){this.processInput(u,{cursorPos:u.length,oldValue:this.rawValue,oldSelection:{start:0,end:this.rawValue.length}})}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(u){this.rawValue=u}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(u){this.el===document.activeElement&&(this.el.setSelectionRange(u,u),this.saveSelection())}}]),u}();u.default=i})},function(u,t,e){var n,o,i;!function(e,r){o=[t],n=r,void 0!==(i="function"==typeof n?n.apply(t,o):n)&&(u.exports=i)}(0,function(u){"use strict";function t(u){return"string"==typeof u||u instanceof String}function e(u,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t(u)?u:u?e:n}function n(u,t){var e=t.cursorPos,n=t.oldSelection,o=t.oldValue,s=Math.min(e,n.start),a=e-s,l=Math.max(n.end-s||o.length-u.length,0);return i({},t,{startChangePos:s,head:u.substring(0,s),tail:u.substring(s+a),inserted:u.substr(s,a),removed:o.substr(s,l),removeDirection:l&&(n.end===e||a?r.RIGHT:r.LEFT)})}function o(u,t){return t===r.LEFT&&--u,u}Object.defineProperty(u,"__esModule",{value:!0}),u.isString=t,u.conform=e,u.extendDetailsAdjustments=n,u.indexInDirection=o;var i=Object.assign||function(u){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},e=a.MaskFactory(u,t);return e.bindEvents(),e.rawValue=u.value,e}Object.defineProperty(u,"__esModule",{value:!0}),u.default=a;var l=s(e),f=s(n),c=s(o),h=s(i),p=s(r);a.MaskFactory=function(u,e){var n=e.mask;return n instanceof l.default?n:n instanceof RegExp?new f.default(u,e):n instanceof Array?new p.default(u,e):(0,t.isString)(n)?new h.default(u,e):n.prototype instanceof l.default?new n(u,e):n instanceof Function?new c.default(u,e):new l.default(u,e)},a.BaseMask=l.default,a.FuncMask=c.default,a.RegExpMask=f.default,a.PatternMask=h.default,window.IMask=a})},function(u,t,e){var n,o,i;!function(r,s){o=[t,e(0)],n=s,void 0!==(i="function"==typeof n?n.apply(t,o):n)&&(u.exports=i)}(0,function(u,t){"use strict";function e(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")}function n(u,t){if(!u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?u:t}function o(u,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);u.prototype=Object.create(t&&t.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(u,t):u.__proto__=t)}Object.defineProperty(u,"__esModule",{value:!0});var i=function(u){return u&&u.__esModule?u:{default:u}}(t),r=function(u){function t(){return e(this,t),n(this,u.apply(this,arguments))}return o(t,u),t.prototype.resolve=function(u){return this.mask.test(u)},t}(i.default);u.default=r})},function(u,t,e){var n,o,i;!function(r,s){o=[t,e(0)],n=s,void 0!==(i="function"==typeof n?n.apply(t,o):n)&&(u.exports=i)}(0,function(u,t){"use strict";function e(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")}function n(u,t){if(!u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?u:t}function o(u,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);u.prototype=Object.create(t&&t.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(u,t):u.__proto__=t)}Object.defineProperty(u,"__esModule",{value:!0});var i=function(u){return u&&u.__esModule?u:{default:u}}(t),r=function(u){function t(){return e(this,t),n(this,u.apply(this,arguments))}return o(t,u),t.prototype.resolve=function(){return this.mask.apply(this,arguments)},t}(i.default);u.default=r})},function(u,t,e){var n,o,i;!function(r,s){o=[t,e(1),e(0)],n=s,void 0!==(i="function"==typeof n?n.apply(t,o):n)&&(u.exports=i)}(0,function(u,t,e){"use strict";function n(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")}function o(u,t){if(!u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?u:t}function i(u,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);u.prototype=Object.create(t&&t.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(u,t):u.__proto__=t)}Object.defineProperty(u,"__esModule",{value:!0});var r=function(u){return u&&u.__esModule?u:{default:u}}(e),s=Object.assign||function(u){for(var t=1;t2&&void 0!==arguments[2])||arguments[2],i="",r=this._hollows.slice(),s=!1,a=0,l=this._mapPosToDefIndex(u.length);a1&&void 0!==arguments[1]?arguments[1]:0,e=arguments[2],n="",o=e&&this._mapPosToDefIndex(e),i=0,r=this._mapPosToDefIndex(t);i=0},e.prototype._isHiddenHollow=function(u){return this._isHollow(u)&&this.def(u)&&this.def(u).optional},e.prototype._isInput=function(u){return this.def(u)&&this.def(u).type===e.DEF_TYPES.INPUT},e.prototype._hollowsBefore=function(u){var t=this;return this._hollows.filter(function(e){return e=t)break;this._isHiddenHollow(n)&&++t}return t},e.prototype._generateInsertSteps=function(u,t){for(var e=!1,n=this._hollows,o=[[u,n.slice()]],i=0;i=l}).map(function(u){return n._mapDefIndexToPos(u)})),c=this._extractInputChunks(e.tail,f),h=this._mapPosToDefIndex(i);this._hollows=this._hollows.filter(function(u){return u=0;--A){var _,F,E=d[A];_=E[0],this._hollows=E[1];var D=this._appendTailChunks(_,c);if(F=D[0],this._hollows=D[1],!D[2]){p=F,o=_.length;break}}return p=this._appendPlaceholderEnd(p),e.cursorPos=this._nearestInputPos(o,e.removeDirection),p},e.prototype._fireChangeEvents=function(){u.prototype._fireChangeEvents.call(this),this.isComplete&&this.fireEvent("complete")},e.prototype._appendFixedEnd=function(u){for(var t=this._mapPosToDefIndex(u.length);;++t){var e=this.def(t,u);if(!e)break;if(!this._isHiddenHollow(t)){if(this._isInput(t))break;t>=u.length&&(u+=e.char)}}return u},e.prototype._appendPlaceholderEnd=function(u,t){for(var n=t&&this._mapPosToDefIndex(t),o=this._mapPosToDefIndex(u.length);!n||o1&&void 0!==arguments[1]?arguments[1]:t.DIRECTION.LEFT;if(!e)return u;var n,o,i,r,s=this._mapPosToDefIndex(u),a=s;for(r=(0,t.indexInDirection)(a,e);this.def(r);a+=e,r+=e)if(null==n&&this._isInput(r)&&(n=a),null==i&&this._isHollow(r)&&!this._isHiddenHollow(r)&&(i=a),this._isInput(r)&&!this._isHollow(r)){o=a;break}if(e===t.DIRECTION.LEFT||null==n){e=-e;var l=!1;for(r=(0,t.indexInDirection)(a,e);this.def(r)&&(!this._isInput(r)||(n=a,!this._isHollow(r)||this._isHiddenHollow(r)))&&(a===s&&(l=!0),!l||null==n);a+=e,r+=e);l=l||!this.def(r),l&&null!=n&&(a=n)}else null==o&&(a=null!=i?i:n);return this._mapDefIndexToPos(a)},e.prototype._alignCursor=function(){this.cursorPos=this._nearestInputPos(this.cursorPos)},a(e,[{key:"isComplete",get:function(){for(var u=0;;++u){var t=this.def(u);if(!t)break;if(this._isInput(u)&&!t.optional&&this._isHollow(u))return!1}return!0}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(u){this._hollows.length=0;var t,e=this._appendTail("",u);t=e[0],this._hollows=e[1],this.updateElement(this._appendPlaceholderEnd(t)),this._alignCursor()}},{key:"placeholder",get:function(){return this._placeholder},set:function(u){this._placeholder=s({},e.DEFAULT_PLACEHOLDER,u),this._initialized&&(this.unmaskedValue=this.unmaskedValue)}},{key:"placeholderLabel",get:function(){var u=this;return this.defs().map(function(t){return t.type===e.DEF_TYPES.FIXED?t.char:t.optional?"":u._placeholder.char}).join("")}},{key:"definitions",get:function(){return this._definitions},set:function(u){this._installDefinitions(u),this._initialized&&(this.unmaskedValue=this.unmaskedValue)}},{key:"mask",get:function(){return this._mask},set:function(u){this._mask=u,this._initialized&&(this.definitions=this.definitions)}}]),e}(r.default);u.default=l,l.DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},l.DEF_TYPES={INPUT:"input",FIXED:"fixed"},l.DEFAULT_PLACEHOLDER={show:"lazy",char:"_"},l.STOP_CHAR="'",l.ESCAPE_CHAR="\\"})},function(u,t,e){var n,o,i;!function(r,s){o=[t,e(0),e(1)],n=s,void 0!==(i="function"==typeof n?n.apply(t,o):n)&&(u.exports=i)}(0,function(u,t,e){"use strict";function n(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")}function o(u,t){if(!u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?u:t}function i(u,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);u.prototype=Object.create(t&&t.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(u,t):u.__proto__=t)}Object.defineProperty(u,"__esModule",{value:!0});var r=function(u){return u&&u.__esModule?u:{default:u}}(t),s=function(u){function t(e,i){n(this,t);var r=o(this,u.call(this,e,i));return r.multipass=i.multipass,r._compiledMasks=r.mask.map(function(u){return IMask.MaskFactory(e,u)}),r}return i(t,u),t.prototype.resolve=function(u,t){var e=this._pipe(u,t);if(!this.multipass)return e;for(var n,o=t.cursorPos,i=e;n!==i;)n=i,i=this._pipe(n,{cursorPos:n.length,oldValue:n,oldSelection:{start:0,end:n.length}});return t.cursorPos=o-(e.length-n.length),n},t.prototype._pipe=function(u,t){return this._compiledMasks.reduce(function(u,n){var o=(0,e.extendDetailsAdjustments)(u,t),i=n.resolve(u,o);return t.cursorPos=o.cursorPos,i},u)},t.prototype.bindEvents=function(){u.prototype.bindEvents.call(this),this._compiledMasks.forEach(function(u){u.bindEvents(),r.default.prototype.unbindEvents.apply(u)})},t.prototype.unbindEvents=function(){u.prototype.unbindEvents.call(this),this._compiledMasks.forEach(function(u){return u.unbindEvents()})},t}(r.default);u.default=s})}])}); -//# sourceMappingURL=imask.min.js.map \ No newline at end of file +!function(u,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):u.IMask=t()}(this,function(){"use strict";function u(u){return"string"==typeof u||u instanceof String}function t(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return u(t)?t:t?e:n}function e(u,t){var e=t.cursorPos,n=t.oldSelection,i=t.oldValue,s=Math.min(e,n.start),o=e-s,a=Math.max(n.end-s||i.length-u.length,0);return r({},t,{startChangePos:s,head:u.substring(0,s),tail:u.substring(s+o),inserted:u.substr(s,o),removed:i.substr(s,a),removeDirection:a&&(n.end===e||o?h.RIGHT:h.LEFT)})}function n(u,t){return t===h.LEFT&&--u,u}function i(u){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=i.MaskFactory(u,t);return e.bindEvents(),e.rawValue=u.value,e}var s=function(u,t){if(!(u instanceof t))throw new TypeError("Cannot call a class as a function")},o=function(){function u(u,t){for(var e=0;e=0&&this._listeners.splice(e,1),this}delete this._listeners[u]}},u.prototype.bindEvents=function(){this.el.addEventListener("keydown",this.saveSelection),this.el.addEventListener("input",this._onInput),this.el.addEventListener("drop",this._onDrop)},u.prototype.unbindEvents=function(){this.el.removeEventListener("keydown",this.saveSelection),this.el.removeEventListener("input",this._onInput),this.el.removeEventListener("drop",this._onDrop)},u.prototype.fireEvent=function(u){(this._listeners[u]||[]).forEach(function(u){return u()})},u.prototype.processInput=function(u,n){n=e(u,n=r({cursorPos:this.cursorPos,oldSelection:this._selection,oldValue:this.rawValue,oldUnmaskedValue:this.unmaskedValue},n));var i=t(this.resolve(u,n),u,this.rawValue);return this.updateElement(i,n.cursorPos),i},u.prototype.saveSelection=function(u){this.rawValue!==this.el.value&&console.warn("Uncontrolled input change, refresh mask manually!"),this._selection={start:this.selectionStart,end:this.cursorPos}},u.prototype.destroy=function(){this.unbindEvents(),this._listeners.length=0},u.prototype.updateElement=function(u,t){var e=this._calcUnmasked(u),n=this.unmaskedValue!==e||this.rawValue!==u;this._unmaskedValue=e,this._rawValue=u,this.el.value!==u&&(this.el.value=u),this.updateCursor(t),n&&this._fireChangeEvents()},u.prototype._fireChangeEvents=function(){this.fireEvent("accept")},u.prototype.updateCursor=function(u){null!=u&&(this.cursorPos=u,this._delayUpdateCursor(u))},u.prototype._delayUpdateCursor=function(u){var t=this;this._abortUpdateCursor(),this._changingCursorPos=u,this._cursorChanging=setTimeout(function(){t._abortUpdateCursor(),t.cursorPos=t._changingCursorPos},10)},u.prototype._abortUpdateCursor=function(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)},u.prototype._onInput=function(u){this._abortUpdateCursor(),this.processInput(this.el.value)},u.prototype._onDrop=function(u){u.preventDefault(),u.stopPropagation()},u.prototype.resolve=function(u,t){return u},u.prototype._calcUnmasked=function(u){return u},o(u,[{key:"rawValue",get:function(){return this._rawValue},set:function(u){this.processInput(u,{cursorPos:u.length,oldValue:this.rawValue,oldSelection:{start:0,end:this.rawValue.length}})}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(u){this.rawValue=u}},{key:"selectionStart",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}},{key:"cursorPos",get:function(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd},set:function(u){this.el===document.activeElement&&(this.el.setSelectionRange(u,u),this.saveSelection())}}]),u}(),c=function(u){function t(){return s(this,t),l(this,u.apply(this,arguments))}return a(t,u),t.prototype.resolve=function(u){return this.mask.test(u)},t}(p),A=function(u){function t(){return s(this,t),l(this,u.apply(this,arguments))}return a(t,u),t.prototype.resolve=function(){return this.mask.apply(this,arguments)},t}(p),f=function(u){function e(t,n){s(this,e);var i=l(this,u.call(this,t,n));return i._hollows=[],i.placeholder=n.placeholder,i.definitions=r({},e.DEFINITIONS,n.definitions),i._alignCursor=i._alignCursor.bind(i),i._alignCursorFriendly=i._alignCursorFriendly.bind(i),i._initialized=!0,i}return a(e,u),e.prototype._alignCursorFriendly=function(){this.selectionStart===this.cursorPos&&this._alignCursor()},e.prototype.bindEvents=function(){u.prototype.bindEvents.call(this),this.el.addEventListener("click",this._alignCursorFriendly)},e.prototype.unbindEvents=function(){u.prototype.unbindEvents.call(this),this.el.removeEventListener("click",this._alignCursorFriendly)},e.prototype._installDefinitions=function(u){this._definitions=u,this._charDefs=[],this._alignStops=[];var t=this.mask;if(t&&u){for(var n=!1,i=!1,s=0;s2&&void 0!==arguments[2])||arguments[2],s="",o=this._hollows.slice(),r=!1,a=0,l=this._mapPosToDefIndex(u.length);a1&&void 0!==arguments[1]?arguments[1]:0,e=arguments[2],n="",i=e&&this._mapPosToDefIndex(e),s=0,o=this._mapPosToDefIndex(t);s=0},e.prototype._isHiddenHollow=function(u){return this._isHollow(u)&&this.def(u)&&this.def(u).optional},e.prototype._isInput=function(u){return this.def(u)&&this.def(u).type===e.DEF_TYPES.INPUT},e.prototype._hollowsBefore=function(u){var t=this;return this._hollows.filter(function(e){return e=t)break;this._isHiddenHollow(n)&&++t}return t},e.prototype._generateInsertSteps=function(u,t){for(var e=!1,n=[[u,(a=this._hollows).slice()]],i=0;i=r}).map(function(u){return e._mapDefIndexToPos(u)})),l=this._extractInputChunks(t.tail,a),p=this._mapPosToDefIndex(i);this._hollows=this._hollows.filter(function(u){return u=0;--f){var F,d,_=A[f];F=_[0],this._hollows=_[1];var E=this._appendTailChunks(F,l);if(d=E[0],this._hollows=E[1],!E[2]){c=d,n=F.length;break}}return c=this._appendPlaceholderEnd(c),t.cursorPos=this._nearestInputPos(n,t.removeDirection),c},e.prototype._fireChangeEvents=function(){u.prototype._fireChangeEvents.call(this),this.isComplete&&this.fireEvent("complete")},e.prototype._appendFixedEnd=function(u){for(var t=this._mapPosToDefIndex(u.length);;++t){var e=this.def(t,u);if(!e)break;if(!this._isHiddenHollow(t)){if(this._isInput(t))break;t>=u.length&&(u+=e.char)}}return u},e.prototype._appendPlaceholderEnd=function(u,t){for(var n=t&&this._mapPosToDefIndex(t),i=this._mapPosToDefIndex(u.length);!n||i1&&void 0!==arguments[1]?arguments[1]:h.LEFT;if(!t)return u;var e,i,s,o,r=this._mapPosToDefIndex(u),a=r;for(o=n(a,t);this.def(o);a+=t,o+=t)if(null==e&&this._isInput(o)&&(e=a),null==s&&this._isHollow(o)&&!this._isHiddenHollow(o)&&(s=a),this._isInput(o)&&!this._isHollow(o)){i=a;break}if(t===h.LEFT||null==e){var l=!1;for(o=n(a,t=-t);this.def(o)&&(!this._isInput(o)||(e=a,!this._isHollow(o)||this._isHiddenHollow(o)))&&(a===r&&(l=!0),!l||null==e);a+=t,o+=t);(l=l||!this.def(o))&&null!=e&&(a=e)}else null==i&&(a=null!=s?s:e);return this._mapDefIndexToPos(a)},e.prototype._alignCursor=function(){this.cursorPos=this._nearestInputPos(this.cursorPos)},o(e,[{key:"isComplete",get:function(){for(var u=0;;++u){var t=this.def(u);if(!t)break;if(this._isInput(u)&&!t.optional&&this._isHollow(u))return!1}return!0}},{key:"unmaskedValue",get:function(){return this._unmaskedValue},set:function(u){this._hollows.length=0;var t,e=this._appendTail("",u);t=e[0],this._hollows=e[1],this.updateElement(this._appendPlaceholderEnd(t)),this._alignCursor()}},{key:"placeholder",get:function(){return this._placeholder},set:function(u){this._placeholder=r({},e.DEFAULT_PLACEHOLDER,u),this._initialized&&(this.unmaskedValue=this.unmaskedValue)}},{key:"placeholderLabel",get:function(){var u=this;return this.defs().map(function(t){return t.type===e.DEF_TYPES.FIXED?t.char:t.optional?"":u._placeholder.char}).join("")}},{key:"definitions",get:function(){return this._definitions},set:function(u){this._installDefinitions(u),this._initialized&&(this.unmaskedValue=this.unmaskedValue)}},{key:"mask",get:function(){return this._mask},set:function(u){this._mask=u,this._initialized&&(this.definitions=this.definitions)}}]),e}(p);f.DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./},f.DEF_TYPES={INPUT:"input",FIXED:"fixed"},f.DEFAULT_PLACEHOLDER={show:"lazy",char:"_"},f.STOP_CHAR="'",f.ESCAPE_CHAR="\\";var F=function(u){function t(e,n){s(this,t);var i=l(this,u.call(this,e,n));return i.multipass=n.multipass,i._compiledMasks=i.mask.map(function(u){return IMask.MaskFactory(e,u)}),i}return a(t,u),t.prototype.resolve=function(u,t){var e=this._pipe(u,t);if(!this.multipass)return e;for(var n,i=t.cursorPos,s=e;n!==s;)n=s,s=this._pipe(n,{cursorPos:n.length,oldValue:n,oldSelection:{start:0,end:n.length}});return t.cursorPos=i-(e.length-n.length),n},t.prototype._pipe=function(u,t){return this._compiledMasks.reduce(function(u,n){var i=e(u,t),s=n.resolve(u,i);return t.cursorPos=i.cursorPos,s},u)},t.prototype.bindEvents=function(){u.prototype.bindEvents.call(this),this._compiledMasks.forEach(function(u){u.bindEvents(),p.prototype.unbindEvents.apply(u)})},t.prototype.unbindEvents=function(){u.prototype.unbindEvents.call(this),this._compiledMasks.forEach(function(u){return u.unbindEvents()})},t}(p);return i.MaskFactory=function(t,e){var n=e.mask;return n instanceof p?n:n instanceof RegExp?new c(t,e):n instanceof Array?new F(t,e):u(n)?new f(t,e):n.prototype instanceof p?new n(t,e):n instanceof Function?new A(t,e):new p(t,e)},i.BaseMask=p,i.FuncMask=A,i.RegExpMask=c,i.PatternMask=f,window.IMask=i,i}); +//# sourceMappingURL=imask.min.js.map diff --git a/dist/imask.min.js.map b/dist/imask.min.js.map index 960ae449..045a2adb 100644 --- a/dist/imask.min.js.map +++ b/dist/imask.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///imask.min.js","webpack:///webpack/bootstrap c9ab0c916abd7b3d939d?520a","webpack:///./src/masks/base.js?da43","webpack:///./src/utils.js?2ff8","webpack:///./src/imask.js?a8ac","webpack:///./src/masks/regexp.js?9110","webpack:///./src/masks/func.js?8ff8","webpack:///./src/masks/pattern.js?a683","webpack:///./src/masks/pipe.js?033e"],"names":["root","factory","exports","module","define","amd","a","i","this","modules","__webpack_require__","moduleId","installedModules","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","global","undefined","apply","_utils","_classCallCheck","instance","Constructor","TypeError","value","_extends","assign","target","arguments","length","source","key","_createClass","defineProperties","props","descriptor","writable","protoProps","staticProps","BaseMask","el","opts","mask","_listeners","_refreshingCount","_rawValue","_unmaskedValue","saveSelection","bind","_onInput","_onDrop","on","ev","handler","push","off","hIndex","indexOf","splice","bindEvents","addEventListener","unbindEvents","removeEventListener","fireEvent","forEach","processInput","inputValue","details","cursorPos","oldSelection","_selection","oldValue","rawValue","oldUnmaskedValue","unmaskedValue","extendDetailsAdjustments","res","conform","resolve","updateElement","console","warn","start","selectionStart","end","destroy","_calcUnmasked","isChanged","updateCursor","_fireChangeEvents","_delayUpdateCursor","_this","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","clearTimeout","preventDefault","stopPropagation","str","set","selectionEnd","pos","document","activeElement","setSelectionRange","default","isString","String","fallback","startChangePos","Math","min","insertedCount","removedCount","max","head","substring","tail","inserted","substr","removed","removeDirection","DIRECTION","RIGHT","LEFT","indexInDirection","direction","NONE","_base","_regexp","_func","_pattern","_pipe","_interopRequireDefault","obj","IMask","MaskFactory","_base2","_regexp2","_func2","_pattern2","_pipe2","RegExp","Array","Function","FuncMask","RegExpMask","PatternMask","window","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_BaseMask","test","_hollows","placeholder","definitions","DEFINITIONS","_alignCursor","_alignCursorFriendly","_initialized","_installDefinitions","_definitions","_charDefs","_alignStops","pattern","unmaskingBlock","optionalBlock","ch","type","DEF_TYPES","INPUT","FIXED","unmasking","optional","STOP_CHAR","ESCAPE_CHAR","char","_buildResolvers","_resolvers","defKey","_appendTail","skipUnresolvedInput","placeholderBuffer","hollows","slice","overflow","ci","di","_mapPosToDefIndex","_isHollow","def","resolver","chres","isResolved","_placeholder","_appendTailChunks","chunks","_chunks$ci","input","_appendTail2","chunk2","stop2","_appendPlaceholderEnd","_extractInput","fromPos","toPos","toDefIndex","_isHiddenHollow","_isInput","_extractInputChunks","stops","si","s2","defIndex","_hollowsBefore","_this2","filter","h","_mapDefIndexToPos","hi","_generateInsertSteps","insertSteps","_appendTail3","_this3","tailPos","tailDefIndex","tailAlignStopsPos","concat","map","tailInputChunks","lastHollowIndex","_nearestInputPos","istep","step","tres","_insertSteps$istep","_appendTailChunks2","isComplete","_appendFixedEnd","show","unmasked","defs","index","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","initialDefIndex","_appendTail4","ph","DEFAULT_PLACEHOLDER","_this4","join","_mask","0","*","PipeMask","multipass","_compiledMasks","stepRes","tempRes","reduce"],"mappings":"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","file":"imask.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"../utils\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.utils);\n global.base = mod.exports;\n }\n})(this, function (exports, _utils) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var BaseMask = function () {\n function BaseMask(el, opts) {\n _classCallCheck(this, BaseMask);\n\n this.el = el;\n this.mask = opts.mask;\n\n this._listeners = {};\n this._refreshingCount = 0;\n this._rawValue = \"\";\n this._unmaskedValue = \"\";\n\n this.saveSelection = this.saveSelection.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onDrop = this._onDrop.bind(this);\n }\n\n BaseMask.prototype.on = function on(ev, handler) {\n if (!this._listeners[ev]) this._listeners[ev] = [];\n this._listeners[ev].push(handler);\n return this;\n };\n\n BaseMask.prototype.off = function off(ev, handler) {\n if (!this._listeners[ev]) return;\n if (!handler) {\n delete this._listeners[ev];\n return;\n }\n var hIndex = this._listeners[ev].indexOf(handler);\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\n return this;\n };\n\n BaseMask.prototype.bindEvents = function bindEvents() {\n this.el.addEventListener('keydown', this.saveSelection);\n this.el.addEventListener('input', this._onInput);\n this.el.addEventListener('drop', this._onDrop);\n };\n\n BaseMask.prototype.unbindEvents = function unbindEvents() {\n this.el.removeEventListener('keydown', this.saveSelection);\n this.el.removeEventListener('input', this._onInput);\n this.el.removeEventListener('drop', this._onDrop);\n };\n\n BaseMask.prototype.fireEvent = function fireEvent(ev) {\n var listeners = this._listeners[ev] || [];\n listeners.forEach(function (l) {\n return l();\n });\n };\n\n BaseMask.prototype.processInput = function processInput(inputValue, details) {\n details = _extends({\n cursorPos: this.cursorPos,\n oldSelection: this._selection,\n oldValue: this.rawValue,\n oldUnmaskedValue: this.unmaskedValue\n }, details);\n\n details = (0, _utils.extendDetailsAdjustments)(inputValue, details);\n\n var res = (0, _utils.conform)(this.resolve(inputValue, details), inputValue, this.rawValue);\n\n this.updateElement(res, details.cursorPos);\n return res;\n };\n\n BaseMask.prototype.saveSelection = function saveSelection(ev) {\n if (this.rawValue !== this.el.value) {\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\n }\n this._selection = {\n start: this.selectionStart,\n end: this.cursorPos\n };\n };\n\n BaseMask.prototype.destroy = function destroy() {\n this.unbindEvents();\n this._listeners.length = 0;\n };\n\n BaseMask.prototype.updateElement = function updateElement(value, cursorPos) {\n var unmaskedValue = this._calcUnmasked(value);\n var isChanged = this.unmaskedValue !== unmaskedValue || this.rawValue !== value;\n\n this._unmaskedValue = unmaskedValue;\n this._rawValue = value;\n\n if (this.el.value !== value) this.el.value = value;\n this.updateCursor(cursorPos);\n\n if (isChanged) this._fireChangeEvents();\n };\n\n BaseMask.prototype._fireChangeEvents = function _fireChangeEvents() {\n this.fireEvent(\"accept\");\n };\n\n BaseMask.prototype.updateCursor = function updateCursor(cursorPos) {\n if (cursorPos == null) return;\n this.cursorPos = cursorPos;\n\n // also queue change cursor for mobile browsers\n this._delayUpdateCursor(cursorPos);\n };\n\n BaseMask.prototype._delayUpdateCursor = function _delayUpdateCursor(cursorPos) {\n var _this = this;\n\n this._abortUpdateCursor();\n this._changingCursorPos = cursorPos;\n this._cursorChanging = setTimeout(function () {\n _this._abortUpdateCursor();\n _this.cursorPos = _this._changingCursorPos;\n }, 10);\n };\n\n BaseMask.prototype._abortUpdateCursor = function _abortUpdateCursor() {\n if (this._cursorChanging) {\n clearTimeout(this._cursorChanging);\n delete this._cursorChanging;\n }\n };\n\n BaseMask.prototype._onInput = function _onInput(ev) {\n this._abortUpdateCursor();\n this.processInput(this.el.value);\n };\n\n BaseMask.prototype._onDrop = function _onDrop(ev) {\n ev.preventDefault();\n ev.stopPropagation();\n };\n\n BaseMask.prototype.resolve = function resolve(str, details) {\n return str;\n };\n\n BaseMask.prototype._calcUnmasked = function _calcUnmasked(value) {\n return value;\n };\n\n _createClass(BaseMask, [{\n key: \"rawValue\",\n get: function get() {\n return this._rawValue;\n },\n set: function set(str) {\n this.processInput(str, {\n cursorPos: str.length,\n oldValue: this.rawValue,\n oldSelection: {\n start: 0,\n end: this.rawValue.length\n }\n });\n }\n }, {\n key: \"unmaskedValue\",\n get: function get() {\n return this._unmaskedValue;\n },\n set: function set(value) {\n this.rawValue = value;\n }\n }, {\n key: \"selectionStart\",\n get: function get() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionStart;\n }\n }, {\n key: \"cursorPos\",\n get: function get() {\n return this._cursorChanging ? this._changingCursorPos : this.el.selectionEnd;\n },\n set: function set(pos) {\n if (this.el !== document.activeElement) return;\n\n this.el.setSelectionRange(pos, pos);\n this.saveSelection();\n }\n }]);\n\n return BaseMask;\n }();\n\n exports.default = BaseMask;\n});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.utils = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isString = isString;\n exports.conform = conform;\n exports.extendDetailsAdjustments = extendDetailsAdjustments;\n exports.indexInDirection = indexInDirection;\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function isString(str) {\n return typeof str === 'string' || str instanceof String;\n }\n\n function conform(res, str) {\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n return isString(res) ? res : res ? str : fallback;\n }\n\n var DIRECTION = exports.DIRECTION = {\n NONE: 0,\n LEFT: -1,\n RIGHT: 1\n };\n\n function extendDetailsAdjustments(str, details) {\n var cursorPos = details.cursorPos;\n var oldSelection = details.oldSelection;\n var oldValue = details.oldValue;\n\n var startChangePos = Math.min(cursorPos, oldSelection.start);\n var insertedCount = cursorPos - startChangePos;\n // Math.max for opposite operation\n var removedCount = Math.max(oldSelection.end - startChangePos ||\n // for Delete\n oldValue.length - str.length, 0);\n\n return _extends({}, details, {\n startChangePos: startChangePos,\n head: str.substring(0, startChangePos),\n tail: str.substring(startChangePos + insertedCount),\n inserted: str.substr(startChangePos, insertedCount),\n removed: oldValue.substr(startChangePos, removedCount),\n removeDirection: removedCount && (oldSelection.end === cursorPos || insertedCount ? DIRECTION.RIGHT : DIRECTION.LEFT)\n });\n }\n\n function indexInDirection(pos, direction) {\n if (direction === DIRECTION.LEFT) --pos;\n return pos;\n }\n});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1), __webpack_require__(0), __webpack_require__(3), __webpack_require__(4), __webpack_require__(5), __webpack_require__(6)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./utils'), require('./masks/base'), require('./masks/regexp'), require('./masks/func'), require('./masks/pattern'), require('./masks/pipe'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.utils, global.base, global.regexp, global.func, global.pattern, global.pipe);\n global.imask = mod.exports;\n }\n})(this, function (exports, _utils, _base, _regexp, _func, _pattern, _pipe) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = IMask;\n\n var _base2 = _interopRequireDefault(_base);\n\n var _regexp2 = _interopRequireDefault(_regexp);\n\n var _func2 = _interopRequireDefault(_func);\n\n var _pattern2 = _interopRequireDefault(_pattern);\n\n var _pipe2 = _interopRequireDefault(_pipe);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function IMask(el) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var mask = IMask.MaskFactory(el, opts);\n mask.bindEvents();\n // refresh\n mask.rawValue = el.value;\n return mask;\n }\n\n IMask.MaskFactory = function (el, opts) {\n var mask = opts.mask;\n if (mask instanceof _base2.default) return mask;\n if (mask instanceof RegExp) return new _regexp2.default(el, opts);\n if (mask instanceof Array) return new _pipe2.default(el, opts);\n if ((0, _utils.isString)(mask)) return new _pattern2.default(el, opts);\n if (mask.prototype instanceof _base2.default) return new mask(el, opts);\n if (mask instanceof Function) return new _func2.default(el, opts);\n return new _base2.default(el, opts);\n };\n IMask.BaseMask = _base2.default;\n IMask.FuncMask = _func2.default;\n IMask.RegExpMask = _regexp2.default;\n IMask.PatternMask = _pattern2.default;\n window.IMask = IMask;\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./base'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.base);\n global.regexp = mod.exports;\n }\n})(this, function (exports, _base) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _base2 = _interopRequireDefault(_base);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var RegExpMask = function (_BaseMask) {\n _inherits(RegExpMask, _BaseMask);\n\n function RegExpMask() {\n _classCallCheck(this, RegExpMask);\n\n return _possibleConstructorReturn(this, _BaseMask.apply(this, arguments));\n }\n\n RegExpMask.prototype.resolve = function resolve(str) {\n return this.mask.test(str);\n };\n\n return RegExpMask;\n }(_base2.default);\n\n exports.default = RegExpMask;\n});\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./base'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.base);\n global.func = mod.exports;\n }\n})(this, function (exports, _base) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _base2 = _interopRequireDefault(_base);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var FuncMask = function (_BaseMask) {\n _inherits(FuncMask, _BaseMask);\n\n function FuncMask() {\n _classCallCheck(this, FuncMask);\n\n return _possibleConstructorReturn(this, _BaseMask.apply(this, arguments));\n }\n\n FuncMask.prototype.resolve = function resolve() {\n return this.mask.apply(this, arguments);\n };\n\n return FuncMask;\n }(_base2.default);\n\n exports.default = FuncMask;\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1), __webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('../utils'), require('./base'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.utils, global.base);\n global.pattern = mod.exports;\n }\n})(this, function (exports, _utils, _base) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _base2 = _interopRequireDefault(_base);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var PatternMask = function (_BaseMask) {\n _inherits(PatternMask, _BaseMask);\n\n function PatternMask(el, opts) {\n _classCallCheck(this, PatternMask);\n\n var _this = _possibleConstructorReturn(this, _BaseMask.call(this, el, opts));\n\n _this._hollows = [];\n _this.placeholder = opts.placeholder;\n _this.definitions = _extends({}, PatternMask.DEFINITIONS, opts.definitions);\n\n _this._alignCursor = _this._alignCursor.bind(_this);\n _this._alignCursorFriendly = _this._alignCursorFriendly.bind(_this);\n\n _this._initialized = true;\n return _this;\n }\n\n PatternMask.prototype._alignCursorFriendly = function _alignCursorFriendly() {\n if (this.selectionStart !== this.cursorPos) return;\n this._alignCursor();\n };\n\n PatternMask.prototype.bindEvents = function bindEvents() {\n _BaseMask.prototype.bindEvents.call(this);\n this.el.addEventListener('click', this._alignCursorFriendly);\n };\n\n PatternMask.prototype.unbindEvents = function unbindEvents() {\n _BaseMask.prototype.unbindEvents.call(this);\n this.el.removeEventListener('click', this._alignCursorFriendly);\n };\n\n PatternMask.prototype._installDefinitions = function _installDefinitions(definitions) {\n this._definitions = definitions;\n this._charDefs = [];\n this._alignStops = [];\n\n var pattern = this.mask;\n if (!pattern || !definitions) return;\n\n var unmaskingBlock = false;\n var optionalBlock = false;\n for (var i = 0; i < pattern.length; ++i) {\n var ch = pattern[i];\n var type = !unmaskingBlock && ch in definitions ? PatternMask.DEF_TYPES.INPUT : PatternMask.DEF_TYPES.FIXED;\n var unmasking = type === PatternMask.DEF_TYPES.INPUT || unmaskingBlock;\n var optional = type === PatternMask.DEF_TYPES.INPUT && optionalBlock;\n\n if (ch === PatternMask.STOP_CHAR) {\n this._alignStops.push(this._charDefs.length);\n continue;\n }\n\n if (ch === '{' || ch === '}') {\n unmaskingBlock = !unmaskingBlock;\n continue;\n }\n\n if (ch === '[' || ch === ']') {\n optionalBlock = !optionalBlock;\n continue;\n }\n\n if (ch === PatternMask.ESCAPE_CHAR) {\n ++i;\n ch = pattern[i];\n // TODO validation\n if (!ch) break;\n type = PatternMask.DEF_TYPES.FIXED;\n }\n\n this._charDefs.push({\n char: ch,\n type: type,\n optional: optional,\n unmasking: unmasking\n });\n }\n\n this._buildResolvers();\n };\n\n PatternMask.prototype._buildResolvers = function _buildResolvers() {\n this._resolvers = {};\n for (var defKey in this.definitions) {\n this._resolvers[defKey] = IMask.MaskFactory(this.el, {\n mask: this.definitions[defKey]\n });\n }\n };\n\n PatternMask.prototype._appendTail = function _appendTail(str, tail) {\n var skipUnresolvedInput = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var placeholderBuffer = '';\n var hollows = this._hollows.slice();\n var overflow = false;\n\n for (var ci = 0, di = this._mapPosToDefIndex(str.length); ci < tail.length;) {\n if (this._isHollow(di)) {\n // TODO check other cases\n ++di;\n continue;\n }\n\n var ch = tail[ci];\n var def = this.def(di, str + placeholderBuffer);\n\n // failed\n if (!def) {\n overflow = true;\n break;\n }\n\n if (def.type === PatternMask.DEF_TYPES.INPUT) {\n var resolver = this._resolvers[def.char];\n var chres = resolver.resolve(ch, di, str + placeholderBuffer) || '';\n var isResolved = !!chres;\n\n // if ok - next di\n if (chres) {\n chres = (0, _utils.conform)(chres, ch);\n } else {\n if (!def.optional && skipUnresolvedInput) chres = this._placeholder.char;\n // TODO seems check is useless\n if (hollows.indexOf(di) < 0) hollows.push(di);\n }\n\n if (chres) {\n str += placeholderBuffer + (0, _utils.conform)(chres, ch);\n placeholderBuffer = '';\n }\n if (chres || def.optional || !skipUnresolvedInput) ++di;\n if (isResolved || !def.optional && !skipUnresolvedInput) ++ci;\n } else {\n placeholderBuffer += def.char;\n\n if (ch === def.char && (def.unmasking || !skipUnresolvedInput)) ++ci;\n ++di;\n }\n }\n\n return [str, hollows, overflow];\n };\n\n PatternMask.prototype._appendTailChunks = function _appendTailChunks(str, chunks, skipUnresolvedInput) {\n var overflow = false;\n for (var ci = 0; ci < chunks.length; ++ci) {\n var _chunks$ci = chunks[ci],\n input = _chunks$ci[1];\n\n var _appendTail2 = this._appendTail(str, input, skipUnresolvedInput);\n\n str = _appendTail2[0];\n this._hollows = _appendTail2[1];\n overflow = _appendTail2[2];\n\n if (overflow) break;\n\n // not last - append placeholder between stops\n var chunk2 = chunks[ci + 1];\n var stop2 = chunk2 && chunk2[0];\n if (stop2) str = this._appendPlaceholderEnd(str, stop2);\n }\n return [str, this._hollows, overflow];\n };\n\n PatternMask.prototype._extractInput = function _extractInput(str) {\n var fromPos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var toPos = arguments[2];\n\n var input = '';\n\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\n for (var ci = 0, di = this._mapPosToDefIndex(fromPos); ci < str.length && (!toDefIndex || di < toDefIndex); ++di) {\n var ch = str[ci];\n var def = this.def(di, str);\n\n if (!def) break;\n if (this._isHiddenHollow(di)) continue;\n\n if (this._isInput(di) && !this._isHollow(di)) input += ch;\n ++ci;\n }\n return input;\n };\n\n PatternMask.prototype._extractInputChunks = function _extractInputChunks(str, stops) {\n var chunks = [];\n for (var si = 0; si < stops.length && str; ++si) {\n var s = stops[si];\n var s2 = stops[si + 1];\n chunks.push([s, this._extractInput(str, s, s2)]);\n if (s2) str = str.slice(s2 - s);\n }\n return chunks;\n };\n\n PatternMask.prototype._isHollow = function _isHollow(defIndex) {\n return this._hollows.indexOf(defIndex) >= 0;\n };\n\n PatternMask.prototype._isHiddenHollow = function _isHiddenHollow(defIndex) {\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\n };\n\n PatternMask.prototype._isInput = function _isInput(defIndex) {\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\n };\n\n PatternMask.prototype._hollowsBefore = function _hollowsBefore(defIndex) {\n var _this2 = this;\n\n return this._hollows.filter(function (h) {\n return h < defIndex && _this2._isHiddenHollow(h);\n });\n };\n\n PatternMask.prototype._mapDefIndexToPos = function _mapDefIndexToPos(defIndex) {\n return defIndex - this._hollowsBefore(defIndex).length;\n };\n\n PatternMask.prototype._mapPosToDefIndex = function _mapPosToDefIndex(pos) {\n var defIndex = pos;\n for (var hi = 0; hi < this._hollows.length; ++hi) {\n var h = this._hollows[hi];\n if (h >= defIndex) break;\n if (this._isHiddenHollow(h)) ++defIndex;\n }\n return defIndex;\n };\n\n PatternMask.prototype._generateInsertSteps = function _generateInsertSteps(head, inserted) {\n var overflow = false;\n\n // save hollow during generation\n var hollows = this._hollows;\n\n var insertSteps = [[head, hollows.slice()]];\n\n for (var ci = 0; ci < inserted.length && !overflow; ++ci) {\n var ch = inserted[ci];\n\n var _appendTail3 = this._appendTail(head, ch, false),\n res = _appendTail3[0],\n hollows = _appendTail3[1],\n overflow = _appendTail3[2];\n\n this._hollows = hollows;\n if (!overflow && res !== head) {\n insertSteps.push([res, hollows]);\n head = res;\n }\n }\n\n // pop hollows back\n this._hollows = hollows;\n\n return insertSteps;\n };\n\n PatternMask.prototype.resolve = function resolve(str, details) {\n var _this3 = this;\n\n var cursorPos = details.cursorPos;\n var startChangePos = details.startChangePos;\n var inserted = details.inserted;\n var removedCount = details.removed.length;\n var tailPos = startChangePos + removedCount;\n var tailDefIndex = this._mapPosToDefIndex(tailPos);\n var tailAlignStopsPos = [tailPos].concat(this._alignStops.filter(function (s) {\n return s >= tailDefIndex;\n }).map(function (s) {\n return _this3._mapDefIndexToPos(s);\n }));\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\n\n // remove hollows after cursor\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\n this._hollows = this._hollows.filter(function (h) {\n return h < lastHollowIndex;\n });\n\n var res = details.head;\n // if remove at left - adjust start change pos\n if (details.removeDirection === _utils.DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\n\n // insert available\n var insertSteps = this._generateInsertSteps(res, inserted);\n for (var istep = insertSteps.length - 1; istep >= 0; --istep) {\n var step, tres, overflow;\n var _insertSteps$istep = insertSteps[istep];\n step = _insertSteps$istep[0];\n this._hollows = _insertSteps$istep[1];\n\n var _appendTailChunks2 = this._appendTailChunks(step, tailInputChunks);\n\n tres = _appendTailChunks2[0];\n this._hollows = _appendTailChunks2[1];\n overflow = _appendTailChunks2[2];\n\n if (!overflow) {\n res = tres;\n cursorPos = step.length;\n break;\n }\n }\n\n res = this._appendPlaceholderEnd(res);\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\n\n return res;\n };\n\n PatternMask.prototype._fireChangeEvents = function _fireChangeEvents() {\n // fire 'complete' after 'accept' event\n _BaseMask.prototype._fireChangeEvents.call(this);\n if (this.isComplete) this.fireEvent(\"complete\");\n };\n\n PatternMask.prototype._appendFixedEnd = function _appendFixedEnd(res) {\n for (var di = this._mapPosToDefIndex(res.length);; ++di) {\n var def = this.def(di, res);\n if (!def) break;\n\n if (this._isHiddenHollow(di)) continue;\n if (this._isInput(di)) break;\n if (di >= res.length) res += def.char;\n }\n return res;\n };\n\n PatternMask.prototype._appendPlaceholderEnd = function _appendPlaceholderEnd(res, toPos) {\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\n for (var di = this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\n var def = this.def(di, res);\n if (!def) break;\n\n if (this._isInput(di) && !this._isHollow(di)) {\n this._hollows.push(di);\n }\n if (this._placeholder.show === 'always' || toPos) {\n res += def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? this._placeholder.char : '';\n }\n }\n return res;\n };\n\n PatternMask.prototype._calcUnmasked = function _calcUnmasked(str) {\n var unmasked = '';\n for (var ci = 0, di = 0; ci < str.length; ++di) {\n var ch = str[ci];\n var def = this.def(di, str);\n\n if (!def) break;\n if (this._isHiddenHollow(di)) continue;\n\n if (def.unmasking && !this._isHollow(di) && (this._isInput(di) && this._resolvers[def.char].resolve(ch, ci, str) || def.char === ch)) {\n unmasked += ch;\n }\n ++ci;\n }\n return unmasked;\n };\n\n PatternMask.prototype.defs = function defs(str) {\n var defs = [];\n for (var i = 0;; ++i) {\n var def = this.def(i, str);\n if (!def) break;\n defs.push(def);\n }\n return defs;\n };\n\n PatternMask.prototype.def = function def(index, str) {\n return this._charDefs[index];\n };\n\n PatternMask.prototype._nearestInputPos = function _nearestInputPos(cursorPos) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _utils.DIRECTION.LEFT;\n\n if (!direction) return cursorPos;\n\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\n var di = initialDefIndex;\n\n var firstInputIndex, firstFilledInputIndex, firstVisibleHollowIndex, nextdi;\n\n // search forward\n for (nextdi = (0, _utils.indexInDirection)(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\n firstFilledInputIndex = di;\n break;\n }\n }\n\n if (direction === _utils.DIRECTION.LEFT || firstInputIndex == null) {\n // search backwards\n direction = -direction;\n var overflow = false;\n\n // find hollows only before initial pos\n for (nextdi = (0, _utils.indexInDirection)(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\n if (this._isInput(nextdi)) {\n firstInputIndex = di;\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\n }\n\n // if hollow not found before start position - set `overflow`\n // and try to find just any input\n if (di === initialDefIndex) overflow = true;\n\n // first input found\n if (overflow && firstInputIndex != null) break;\n }\n\n // process overflow\n overflow = overflow || !this.def(nextdi);\n if (overflow && firstInputIndex != null) di = firstInputIndex;\n } else if (firstFilledInputIndex == null) {\n // adjust index if delete at right and filled input not found at right\n di = firstVisibleHollowIndex != null ? firstVisibleHollowIndex : firstInputIndex;\n }\n\n return this._mapDefIndexToPos(di);\n };\n\n PatternMask.prototype._alignCursor = function _alignCursor() {\n this.cursorPos = this._nearestInputPos(this.cursorPos);\n };\n\n _createClass(PatternMask, [{\n key: 'isComplete',\n get: function get() {\n for (var di = 0;; ++di) {\n var def = this.def(di);\n if (!def) break;\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\n }\n return true;\n }\n }, {\n key: 'unmaskedValue',\n get: function get() {\n return this._unmaskedValue;\n },\n set: function set(str) {\n this._hollows.length = 0;\n var res;\n\n var _appendTail4 = this._appendTail('', str);\n\n res = _appendTail4[0];\n this._hollows = _appendTail4[1];\n\n this.updateElement(this._appendPlaceholderEnd(res));\n\n this._alignCursor();\n }\n }, {\n key: 'placeholder',\n get: function get() {\n return this._placeholder;\n },\n set: function set(ph) {\n this._placeholder = _extends({}, PatternMask.DEFAULT_PLACEHOLDER, ph);\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\n }\n }, {\n key: 'placeholderLabel',\n get: function get() {\n var _this4 = this;\n\n return this.defs().map(function (def) {\n return def.type === PatternMask.DEF_TYPES.FIXED ? def.char : !def.optional ? _this4._placeholder.char : '';\n }).join('');\n }\n }, {\n key: 'definitions',\n get: function get() {\n return this._definitions;\n },\n set: function set(defs) {\n this._installDefinitions(defs);\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\n }\n }, {\n key: 'mask',\n get: function get() {\n return this._mask;\n },\n set: function set(mask) {\n this._mask = mask;\n if (this._initialized) this.definitions = this.definitions;\n }\n }]);\n\n return PatternMask;\n }(_base2.default);\n\n exports.default = PatternMask;\n\n PatternMask.DEFINITIONS = {\n '0': /\\d/,\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\n '*': /./\n };\n PatternMask.DEF_TYPES = {\n INPUT: 'input',\n FIXED: 'fixed'\n };\n PatternMask.DEFAULT_PLACEHOLDER = {\n show: 'lazy',\n char: '_'\n };\n PatternMask.STOP_CHAR = '\\'';\n PatternMask.ESCAPE_CHAR = '\\\\';\n});\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(0), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./base'), require('../utils'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.base, global.utils);\n global.pipe = mod.exports;\n }\n})(this, function (exports, _base, _utils) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _base2 = _interopRequireDefault(_base);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var PipeMask = function (_BaseMask) {\n _inherits(PipeMask, _BaseMask);\n\n function PipeMask(el, opts) {\n _classCallCheck(this, PipeMask);\n\n var _this = _possibleConstructorReturn(this, _BaseMask.call(this, el, opts));\n\n _this.multipass = opts.multipass;\n\n _this._compiledMasks = _this.mask.map(function (m) {\n return IMask.MaskFactory(el, m);\n });\n return _this;\n }\n\n PipeMask.prototype.resolve = function resolve(str, details) {\n var res = this._pipe(str, details);\n if (!this.multipass) return res;\n\n var cursorPos = details.cursorPos;\n\n var stepRes;\n var tempRes = res;\n\n while (stepRes !== tempRes) {\n stepRes = tempRes;\n tempRes = this._pipe(stepRes, {\n cursorPos: stepRes.length,\n oldValue: stepRes,\n oldSelection: {\n start: 0,\n end: stepRes.length\n }\n });\n }\n\n details.cursorPos = cursorPos - (res.length - stepRes.length);\n\n return stepRes;\n };\n\n PipeMask.prototype._pipe = function _pipe(str, details) {\n return this._compiledMasks.reduce(function (s, m) {\n var d = (0, _utils.extendDetailsAdjustments)(s, details);\n var res = m.resolve(s, d);\n details.cursorPos = d.cursorPos;\n return res;\n }, str);\n };\n\n PipeMask.prototype.bindEvents = function bindEvents() {\n _BaseMask.prototype.bindEvents.call(this);\n this._compiledMasks.forEach(function (m) {\n m.bindEvents();\n // disable basemask events for child masks\n _base2.default.prototype.unbindEvents.apply(m);\n });\n };\n\n PipeMask.prototype.unbindEvents = function unbindEvents() {\n _BaseMask.prototype.unbindEvents.call(this);\n this._compiledMasks.forEach(function (m) {\n return m.unbindEvents();\n });\n };\n\n return PipeMask;\n }(_base2.default);\n\n exports.default = PipeMask;\n});\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// imask.min.js"," \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c9ab0c916abd7b3d939d","import {conform, extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass BaseMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.mask = opts.mask;\r\n\r\n this._listeners = {};\r\n this._refreshingCount = 0;\r\n this._rawValue = \"\";\r\n this._unmaskedValue = \"\";\r\n\r\n this.saveSelection = this.saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n var hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n get rawValue () {\r\n return this._rawValue;\r\n }\r\n\r\n set rawValue (str) {\r\n this.processInput(str, {\r\n cursorPos: str.length,\r\n oldValue: this.rawValue,\r\n oldSelection: {\r\n start: 0,\r\n end: this.rawValue.length\r\n }\r\n });\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.rawValue = value;\r\n }\r\n\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this.saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this.saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n }\r\n\r\n fireEvent (ev) {\r\n var listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n processInput (inputValue, details) {\r\n details = {\r\n cursorPos: this.cursorPos,\r\n oldSelection: this._selection,\r\n oldValue: this.rawValue,\r\n oldUnmaskedValue: this.unmaskedValue,\r\n ...details\r\n };\r\n\r\n details = extendDetailsAdjustments(inputValue, details);\r\n\r\n var res = conform(this.resolve(inputValue, details),\r\n inputValue,\r\n this.rawValue);\r\n\r\n this.updateElement(res, details.cursorPos);\r\n return res;\r\n }\r\n\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this.saveSelection();\r\n }\r\n\r\n saveSelection (ev) {\r\n if (this.rawValue !== this.el.value) {\r\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n\r\n updateElement (value, cursorPos) {\r\n var unmaskedValue = this._calcUnmasked(value);\r\n var isChanged = (this.unmaskedValue !== unmaskedValue ||\r\n this.rawValue !== value);\r\n\r\n this._unmaskedValue = unmaskedValue;\r\n this._rawValue = value;\r\n\r\n if (this.el.value !== value) this.el.value = value;\r\n this.updateCursor(cursorPos);\r\n\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent(\"accept\");\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this._abortUpdateCursor();\r\n this.cursorPos = this._changingCursorPos;\r\n }, 10);\r\n }\r\n\r\n _abortUpdateCursor() {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _onInput (ev) {\r\n this._abortUpdateCursor();\r\n this.processInput(this.el.value);\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n // override\r\n resolve (str, details) { return str; }\r\n\r\n _calcUnmasked (value) { return value; }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/base.js","export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nvar DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\n\r\nexport\r\nfunction extendDetailsAdjustments(str, details) {\r\n var cursorPos = details.cursorPos;\r\n var oldSelection = details.oldSelection;\r\n var oldValue = details.oldValue;\r\n\r\n var startChangePos = Math.min(cursorPos, oldSelection.start);\r\n var insertedCount = cursorPos - startChangePos;\r\n // Math.max for opposite operation\r\n var removedCount = Math.max((oldSelection.end - startChangePos) ||\r\n // for Delete\r\n oldValue.length - str.length, 0);\r\n\r\n return {\r\n ...details,\r\n startChangePos,\r\n head: str.substring(0, startChangePos),\r\n tail: str.substring(startChangePos + insertedCount),\r\n inserted: str.substr(startChangePos, insertedCount),\r\n removed: oldValue.substr(startChangePos, removedCount),\r\n removeDirection: removedCount &&\r\n ((oldSelection.end === cursorPos || insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT)\r\n };\r\n}\r\n\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import {isString} from './utils';\r\n\r\nimport BaseMask from './masks/base';\r\nimport RegExpMask from './masks/regexp';\r\nimport FuncMask from './masks/func';\r\nimport PatternMask from './masks/pattern';\r\nimport PipeMask from './masks/pipe';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n var mask = IMask.MaskFactory(el, opts);\r\n mask.bindEvents();\r\n // refresh\r\n mask.rawValue = el.value;\r\n return mask;\r\n}\r\n\r\nIMask.MaskFactory = function (el, opts) {\r\n var mask = opts.mask;\r\n if (mask instanceof BaseMask) return mask;\r\n if (mask instanceof RegExp) return new RegExpMask(el, opts);\r\n if (mask instanceof Array) return new PipeMask(el, opts);\r\n if (isString(mask)) return new PatternMask(el, opts);\r\n if (mask.prototype instanceof BaseMask) return new mask(el, opts);\r\n if (mask instanceof Function) return new FuncMask(el, opts);\r\n return new BaseMask(el, opts);\r\n}\r\nIMask.BaseMask = BaseMask;\r\nIMask.FuncMask = FuncMask;\r\nIMask.RegExpMask = RegExpMask;\r\nIMask.PatternMask = PatternMask;\r\nwindow.IMask = IMask;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/imask.js","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass RegExpMask extends BaseMask {\r\n resolve (str) {\r\n return this.mask.test(str);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/regexp.js","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass FuncMask extends BaseMask {\r\n resolve (...args) {\r\n return this.mask(...args);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/func.js","import {conform, extendDetailsAdjustments, indexInDirection, DIRECTION} from '../utils';\r\nimport BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass PatternMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this._hollows = [];\r\n this.placeholder = opts.placeholder;\r\n this.definitions = {\r\n ...PatternMask.DEFINITIONS,\r\n ...opts.definitions\r\n };\r\n\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n _installDefinitions (definitions) {\r\n this._definitions = definitions;\r\n this._charDefs = [];\r\n this._alignStops = [];\r\n\r\n var pattern = this.mask;\r\n if (!pattern || !definitions) return;\r\n\r\n var unmaskingBlock = false;\r\n var optionalBlock = false;\r\n for (var i=0; i= 0;\r\n }\r\n\r\n _isHiddenHollow (defIndex) {\r\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\r\n }\r\n\r\n _isInput (defIndex) {\r\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\r\n }\r\n\r\n _hollowsBefore (defIndex) {\r\n return this._hollows.filter(h => h < defIndex && this._isHiddenHollow(h));\r\n }\r\n\r\n _mapDefIndexToPos (defIndex) {\r\n return defIndex - this._hollowsBefore(defIndex).length;\r\n }\r\n\r\n _mapPosToDefIndex (pos) {\r\n var defIndex = pos;\r\n for (var hi=0; hi= defIndex) break;\r\n if (this._isHiddenHollow(h)) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _generateInsertSteps (head, inserted) {\r\n var overflow = false;\r\n\r\n // save hollow during generation\r\n var hollows = this._hollows;\r\n\r\n var insertSteps = [[head, hollows.slice()]];\r\n\r\n for (var ci=0; ci s >= tailDefIndex)\r\n .map(s => this._mapDefIndexToPos(s))\r\n ];\r\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\r\n\r\n // remove hollows after cursor\r\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\r\n this._hollows = this._hollows.filter(h => h < lastHollowIndex);\r\n\r\n var res = details.head;\r\n // if remove at left - adjust start change pos\r\n if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\r\n\r\n // insert available\r\n var insertSteps = this._generateInsertSteps(res, inserted);\r\n for (var istep=insertSteps.length-1; istep >= 0; --istep) {\r\n var step, tres, overflow;\r\n [step, this._hollows] = insertSteps[istep];\r\n [tres, this._hollows, overflow] = this._appendTailChunks(step, tailInputChunks);\r\n if (!overflow) {\r\n res = tres;\r\n cursorPos = step.length;\r\n break;\r\n }\r\n }\r\n\r\n res = this._appendPlaceholderEnd(res);\r\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\r\n\r\n return res;\r\n }\r\n\r\n _fireChangeEvents () {\r\n // fire 'complete' after 'accept' event\r\n super._fireChangeEvents();\r\n if (this.isComplete) this.fireEvent(\"complete\");\r\n }\r\n\r\n get isComplete () {\r\n for (var di=0; ;++di) {\r\n var def = this.def(di);\r\n if (!def) break;\r\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n _appendFixedEnd (res) {\r\n for (var di=this._mapPosToDefIndex(res.length); ; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isHiddenHollow(di)) continue;\r\n if (this._isInput(di)) break;\r\n if (di >= res.length) res += def.char;\r\n }\r\n return res;\r\n }\r\n\r\n _appendPlaceholderEnd (res, toPos) {\r\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\r\n for (var di=this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isInput(di) && !this._isHollow(di)) {\r\n this._hollows.push(di);\r\n }\r\n if (this._placeholder.show === 'always' || toPos) {\r\n res += def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '';\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n _calcUnmasked (str) {\r\n var unmasked = '';\r\n for (var ci=0, di=0; ci\r\n def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '').join('');\r\n }\r\n\r\n get definitions () { return this._definitions; }\r\n\r\n set definitions (defs) {\r\n this._installDefinitions(defs);\r\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\r\n }\r\n\r\n get mask () { return this._mask; }\r\n\r\n set mask (mask) {\r\n this._mask = mask;\r\n if (this._initialized) this.definitions = this.definitions;\r\n }\r\n\r\n defs (str) {\r\n var defs = [];\r\n for (var i=0; ;++i) {\r\n var def = this.def(i, str);\r\n if (!def) break;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n\r\n def (index, str) {\r\n return this._charDefs[index];\r\n }\r\n\r\n _nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\r\n var di = initialDefIndex;\r\n\r\n var firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\r\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n var overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (this._isInput(nextdi)) {\r\n firstInputIndex = di;\r\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || !this.def(nextdi);\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this._mapDefIndexToPos(di);\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this._nearestInputPos(this.cursorPos);\r\n }\r\n}\r\nPatternMask.DEFINITIONS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternMask.DEF_TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n}\r\nPatternMask.DEFAULT_PLACEHOLDER = {\r\n show: 'lazy',\r\n char: '_'\r\n};\r\nPatternMask.STOP_CHAR = '\\'';\r\nPatternMask.ESCAPE_CHAR = '\\\\';\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/pattern.js","import BaseMask from './base';\r\nimport {extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass PipeMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this.multipass = opts.multipass;\r\n\r\n this._compiledMasks = this.mask.map(m => IMask.MaskFactory(el, m));\r\n }\r\n\r\n resolve (str, details) {\r\n var res = this._pipe(str, details);\r\n if (!this.multipass) return res;\r\n\r\n var cursorPos = details.cursorPos;\r\n\r\n var stepRes;\r\n var tempRes = res;\r\n\r\n while (stepRes !== tempRes) {\r\n stepRes = tempRes;\r\n tempRes = this._pipe(stepRes, {\r\n cursorPos: stepRes.length,\r\n oldValue: stepRes,\r\n oldSelection: {\r\n start: 0,\r\n end: stepRes.length\r\n }\r\n });\r\n }\r\n\r\n details.cursorPos = cursorPos - (res.length - stepRes.length);\r\n\r\n return stepRes;\r\n }\r\n\r\n _pipe (str, details) {\r\n return this._compiledMasks.reduce((s, m) => {\r\n var d = extendDetailsAdjustments(s, details);\r\n var res = m.resolve(s, d);\r\n details.cursorPos = d.cursorPos;\r\n return res;\r\n }, str);\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this._compiledMasks.forEach(m => {\r\n m.bindEvents();\r\n // disable basemask events for child masks\r\n BaseMask.prototype.unbindEvents.apply(m);\r\n });\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this._compiledMasks.forEach(m => m.unbindEvents());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/masks/pipe.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"imask.min.js","sources":["../src/utils.js","../src/imask.js","../src/masks/base.js","../src/masks/regexp.js","../src/masks/func.js","../src/masks/pattern.js","../src/masks/pipe.js"],"sourcesContent":["export\r\nfunction isString (str) {\r\n return typeof str === 'string' || str instanceof String;\r\n}\r\n\r\nexport\r\nfunction conform (res, str, fallback='') {\r\n return isString(res) ?\r\n res :\r\n res ?\r\n str :\r\n fallback;\r\n}\r\n\r\nexport\r\nvar DIRECTION = {\r\n NONE: 0,\r\n LEFT: -1,\r\n RIGHT: 1\r\n}\r\n\r\n\r\nexport\r\nfunction extendDetailsAdjustments(str, details) {\r\n var cursorPos = details.cursorPos;\r\n var oldSelection = details.oldSelection;\r\n var oldValue = details.oldValue;\r\n\r\n var startChangePos = Math.min(cursorPos, oldSelection.start);\r\n var insertedCount = cursorPos - startChangePos;\r\n // Math.max for opposite operation\r\n var removedCount = Math.max((oldSelection.end - startChangePos) ||\r\n // for Delete\r\n oldValue.length - str.length, 0);\r\n\r\n return {\r\n ...details,\r\n startChangePos,\r\n head: str.substring(0, startChangePos),\r\n tail: str.substring(startChangePos + insertedCount),\r\n inserted: str.substr(startChangePos, insertedCount),\r\n removed: oldValue.substr(startChangePos, removedCount),\r\n removeDirection: removedCount &&\r\n ((oldSelection.end === cursorPos || insertedCount) ?\r\n DIRECTION.RIGHT :\r\n DIRECTION.LEFT)\r\n };\r\n}\r\n\r\n\r\nexport\r\nfunction indexInDirection (pos, direction) {\r\n if (direction === DIRECTION.LEFT) --pos;\r\n return pos;\r\n}\r\n","import {isString} from './utils';\r\n\r\nimport BaseMask from './masks/base';\r\nimport RegExpMask from './masks/regexp';\r\nimport FuncMask from './masks/func';\r\nimport PatternMask from './masks/pattern';\r\nimport PipeMask from './masks/pipe';\r\n\r\n\r\nexport default\r\nfunction IMask (el, opts={}) {\r\n var mask = IMask.MaskFactory(el, opts);\r\n mask.bindEvents();\r\n // refresh\r\n mask.rawValue = el.value;\r\n return mask;\r\n}\r\n\r\nIMask.MaskFactory = function (el, opts) {\r\n var mask = opts.mask;\r\n if (mask instanceof BaseMask) return mask;\r\n if (mask instanceof RegExp) return new RegExpMask(el, opts);\r\n if (mask instanceof Array) return new PipeMask(el, opts);\r\n if (isString(mask)) return new PatternMask(el, opts);\r\n if (mask.prototype instanceof BaseMask) return new mask(el, opts);\r\n if (mask instanceof Function) return new FuncMask(el, opts);\r\n return new BaseMask(el, opts);\r\n}\r\nIMask.BaseMask = BaseMask;\r\nIMask.FuncMask = FuncMask;\r\nIMask.RegExpMask = RegExpMask;\r\nIMask.PatternMask = PatternMask;\r\nwindow.IMask = IMask;\r\n","import {conform, extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass BaseMask {\r\n constructor (el, opts) {\r\n this.el = el;\r\n this.mask = opts.mask;\r\n\r\n this._listeners = {};\r\n this._refreshingCount = 0;\r\n this._rawValue = \"\";\r\n this._unmaskedValue = \"\";\r\n\r\n this.saveSelection = this.saveSelection.bind(this);\r\n this._onInput = this._onInput.bind(this);\r\n this._onDrop = this._onDrop.bind(this);\r\n }\r\n\r\n on (ev, handler) {\r\n if (!this._listeners[ev]) this._listeners[ev] = [];\r\n this._listeners[ev].push(handler);\r\n return this;\r\n }\r\n\r\n off (ev, handler) {\r\n if (!this._listeners[ev]) return;\r\n if (!handler) {\r\n delete this._listeners[ev];\r\n return;\r\n }\r\n var hIndex = this._listeners[ev].indexOf(handler);\r\n if (hIndex >= 0) this._listeners.splice(hIndex, 1);\r\n return this;\r\n }\r\n\r\n get rawValue () {\r\n return this._rawValue;\r\n }\r\n\r\n set rawValue (str) {\r\n this.processInput(str, {\r\n cursorPos: str.length,\r\n oldValue: this.rawValue,\r\n oldSelection: {\r\n start: 0,\r\n end: this.rawValue.length\r\n }\r\n });\r\n }\r\n\r\n get unmaskedValue () {\r\n return this._unmaskedValue;\r\n }\r\n\r\n set unmaskedValue (value) {\r\n this.rawValue = value;\r\n }\r\n\r\n\r\n bindEvents () {\r\n this.el.addEventListener('keydown', this.saveSelection);\r\n this.el.addEventListener('input', this._onInput);\r\n this.el.addEventListener('drop', this._onDrop);\r\n }\r\n\r\n unbindEvents () {\r\n this.el.removeEventListener('keydown', this.saveSelection);\r\n this.el.removeEventListener('input', this._onInput);\r\n this.el.removeEventListener('drop', this._onDrop);\r\n }\r\n\r\n fireEvent (ev) {\r\n var listeners = this._listeners[ev] || [];\r\n listeners.forEach(l => l());\r\n }\r\n\r\n processInput (inputValue, details) {\r\n details = {\r\n cursorPos: this.cursorPos,\r\n oldSelection: this._selection,\r\n oldValue: this.rawValue,\r\n oldUnmaskedValue: this.unmaskedValue,\r\n ...details\r\n };\r\n\r\n details = extendDetailsAdjustments(inputValue, details);\r\n\r\n var res = conform(this.resolve(inputValue, details),\r\n inputValue,\r\n this.rawValue);\r\n\r\n this.updateElement(res, details.cursorPos);\r\n return res;\r\n }\r\n\r\n\r\n get selectionStart () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionStart;\r\n }\r\n\r\n get cursorPos () {\r\n return this._cursorChanging ?\r\n this._changingCursorPos :\r\n\r\n this.el.selectionEnd;\r\n }\r\n\r\n set cursorPos (pos) {\r\n if (this.el !== document.activeElement) return;\r\n\r\n this.el.setSelectionRange(pos, pos);\r\n this.saveSelection();\r\n }\r\n\r\n saveSelection (ev) {\r\n if (this.rawValue !== this.el.value) {\r\n console.warn(\"Uncontrolled input change, refresh mask manually!\");\r\n }\r\n this._selection = {\r\n start: this.selectionStart,\r\n end: this.cursorPos\r\n };\r\n }\r\n\r\n destroy () {\r\n this.unbindEvents();\r\n this._listeners.length = 0;\r\n }\r\n\r\n updateElement (value, cursorPos) {\r\n var unmaskedValue = this._calcUnmasked(value);\r\n var isChanged = (this.unmaskedValue !== unmaskedValue ||\r\n this.rawValue !== value);\r\n\r\n this._unmaskedValue = unmaskedValue;\r\n this._rawValue = value;\r\n\r\n if (this.el.value !== value) this.el.value = value;\r\n this.updateCursor(cursorPos);\r\n\r\n if (isChanged) this._fireChangeEvents();\r\n }\r\n\r\n _fireChangeEvents () {\r\n this.fireEvent(\"accept\");\r\n }\r\n\r\n updateCursor (cursorPos) {\r\n if (cursorPos == null) return;\r\n this.cursorPos = cursorPos;\r\n\r\n // also queue change cursor for mobile browsers\r\n this._delayUpdateCursor(cursorPos);\r\n }\r\n\r\n _delayUpdateCursor (cursorPos) {\r\n this._abortUpdateCursor();\r\n this._changingCursorPos = cursorPos;\r\n this._cursorChanging = setTimeout(() => {\r\n this._abortUpdateCursor();\r\n this.cursorPos = this._changingCursorPos;\r\n }, 10);\r\n }\r\n\r\n _abortUpdateCursor() {\r\n if (this._cursorChanging) {\r\n clearTimeout(this._cursorChanging);\r\n delete this._cursorChanging;\r\n }\r\n }\r\n\r\n _onInput (ev) {\r\n this._abortUpdateCursor();\r\n this.processInput(this.el.value);\r\n }\r\n\r\n _onDrop (ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n // override\r\n resolve (str, details) { return str; }\r\n\r\n _calcUnmasked (value) { return value; }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass RegExpMask extends BaseMask {\r\n resolve (str) {\r\n return this.mask.test(str);\r\n }\r\n}\r\n","import BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass FuncMask extends BaseMask {\r\n resolve (...args) {\r\n return this.mask(...args);\r\n }\r\n}\r\n","import {conform, indexInDirection, DIRECTION} from '../utils';\r\nimport BaseMask from './base';\r\n\r\n\r\nexport default\r\nclass PatternMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this._hollows = [];\r\n this.placeholder = opts.placeholder;\r\n this.definitions = {\r\n ...PatternMask.DEFINITIONS,\r\n ...opts.definitions\r\n };\r\n\r\n this._alignCursor = this._alignCursor.bind(this);\r\n this._alignCursorFriendly = this._alignCursorFriendly.bind(this);\r\n\r\n this._initialized = true;\r\n }\r\n\r\n _alignCursorFriendly () {\r\n if (this.selectionStart !== this.cursorPos) return;\r\n this._alignCursor();\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this.el.addEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this.el.removeEventListener('click', this._alignCursorFriendly);\r\n }\r\n\r\n _installDefinitions (definitions) {\r\n this._definitions = definitions;\r\n this._charDefs = [];\r\n this._alignStops = [];\r\n\r\n var pattern = this.mask;\r\n if (!pattern || !definitions) return;\r\n\r\n var unmaskingBlock = false;\r\n var optionalBlock = false;\r\n for (var i=0; i= 0;\r\n }\r\n\r\n _isHiddenHollow (defIndex) {\r\n return this._isHollow(defIndex) && this.def(defIndex) && this.def(defIndex).optional;\r\n }\r\n\r\n _isInput (defIndex) {\r\n return this.def(defIndex) && this.def(defIndex).type === PatternMask.DEF_TYPES.INPUT;\r\n }\r\n\r\n _hollowsBefore (defIndex) {\r\n return this._hollows.filter(h => h < defIndex && this._isHiddenHollow(h));\r\n }\r\n\r\n _mapDefIndexToPos (defIndex) {\r\n return defIndex - this._hollowsBefore(defIndex).length;\r\n }\r\n\r\n _mapPosToDefIndex (pos) {\r\n var defIndex = pos;\r\n for (var hi=0; hi= defIndex) break;\r\n if (this._isHiddenHollow(h)) ++defIndex;\r\n }\r\n return defIndex;\r\n }\r\n\r\n _generateInsertSteps (head, inserted) {\r\n var overflow = false;\r\n\r\n // save hollow during generation\r\n var hollows = this._hollows;\r\n\r\n var insertSteps = [[head, hollows.slice()]];\r\n\r\n for (var ci=0; ci s >= tailDefIndex)\r\n .map(s => this._mapDefIndexToPos(s))\r\n ];\r\n var tailInputChunks = this._extractInputChunks(details.tail, tailAlignStopsPos);\r\n\r\n // remove hollows after cursor\r\n var lastHollowIndex = this._mapPosToDefIndex(startChangePos);\r\n this._hollows = this._hollows.filter(h => h < lastHollowIndex);\r\n\r\n var res = details.head;\r\n // if remove at left - adjust start change pos\r\n if (details.removeDirection === DIRECTION.LEFT) res = res.slice(0, this._nearestInputPos(startChangePos));\r\n\r\n // insert available\r\n var insertSteps = this._generateInsertSteps(res, inserted);\r\n for (var istep=insertSteps.length-1; istep >= 0; --istep) {\r\n var step, tres, overflow;\r\n [step, this._hollows] = insertSteps[istep];\r\n [tres, this._hollows, overflow] = this._appendTailChunks(step, tailInputChunks);\r\n if (!overflow) {\r\n res = tres;\r\n cursorPos = step.length;\r\n break;\r\n }\r\n }\r\n\r\n res = this._appendPlaceholderEnd(res);\r\n details.cursorPos = this._nearestInputPos(cursorPos, details.removeDirection);\r\n\r\n return res;\r\n }\r\n\r\n _fireChangeEvents () {\r\n // fire 'complete' after 'accept' event\r\n super._fireChangeEvents();\r\n if (this.isComplete) this.fireEvent(\"complete\");\r\n }\r\n\r\n get isComplete () {\r\n for (var di=0; ;++di) {\r\n var def = this.def(di);\r\n if (!def) break;\r\n if (this._isInput(di) && !def.optional && this._isHollow(di)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n _appendFixedEnd (res) {\r\n for (var di=this._mapPosToDefIndex(res.length); ; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isHiddenHollow(di)) continue;\r\n if (this._isInput(di)) break;\r\n if (di >= res.length) res += def.char;\r\n }\r\n return res;\r\n }\r\n\r\n _appendPlaceholderEnd (res, toPos) {\r\n var toDefIndex = toPos && this._mapPosToDefIndex(toPos);\r\n for (var di=this._mapPosToDefIndex(res.length); !toDefIndex || di < toDefIndex; ++di) {\r\n var def = this.def(di, res);\r\n if (!def) break;\r\n\r\n if (this._isInput(di) && !this._isHollow(di)) {\r\n this._hollows.push(di);\r\n }\r\n if (this._placeholder.show === 'always' || toPos) {\r\n res += def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '';\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n _calcUnmasked (str) {\r\n var unmasked = '';\r\n for (var ci=0, di=0; ci\r\n def.type === PatternMask.DEF_TYPES.FIXED ?\r\n def.char :\r\n !def.optional ?\r\n this._placeholder.char :\r\n '').join('');\r\n }\r\n\r\n get definitions () { return this._definitions; }\r\n\r\n set definitions (defs) {\r\n this._installDefinitions(defs);\r\n if (this._initialized) this.unmaskedValue = this.unmaskedValue;\r\n }\r\n\r\n get mask () { return this._mask; }\r\n\r\n set mask (mask) {\r\n this._mask = mask;\r\n if (this._initialized) this.definitions = this.definitions;\r\n }\r\n\r\n defs (str) {\r\n var defs = [];\r\n for (var i=0; ;++i) {\r\n var def = this.def(i, str);\r\n if (!def) break;\r\n defs.push(def);\r\n }\r\n return defs;\r\n }\r\n\r\n def (index, str) {\r\n return this._charDefs[index];\r\n }\r\n\r\n _nearestInputPos (cursorPos, direction=DIRECTION.LEFT) {\r\n if (!direction) return cursorPos;\r\n\r\n var initialDefIndex = this._mapPosToDefIndex(cursorPos);\r\n var di = initialDefIndex;\r\n\r\n var firstInputIndex,\r\n firstFilledInputIndex,\r\n firstVisibleHollowIndex,\r\n nextdi;\r\n\r\n // search forward\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (firstInputIndex == null && this._isInput(nextdi)) firstInputIndex = di;\r\n if (firstVisibleHollowIndex == null && this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) firstVisibleHollowIndex = di;\r\n if (this._isInput(nextdi) && !this._isHollow(nextdi)) {\r\n firstFilledInputIndex = di;\r\n break;\r\n }\r\n }\r\n\r\n if (direction === DIRECTION.LEFT || firstInputIndex == null) {\r\n // search backwards\r\n direction = -direction;\r\n var overflow = false;\r\n\r\n // find hollows only before initial pos\r\n for (nextdi = indexInDirection(di, direction); this.def(nextdi); di += direction, nextdi += direction) {\r\n if (this._isInput(nextdi)) {\r\n firstInputIndex = di;\r\n if (this._isHollow(nextdi) && !this._isHiddenHollow(nextdi)) break;\r\n }\r\n\r\n // if hollow not found before start position - set `overflow`\r\n // and try to find just any input\r\n if (di === initialDefIndex) overflow = true;\r\n\r\n // first input found\r\n if (overflow && firstInputIndex != null) break;\r\n }\r\n\r\n // process overflow\r\n overflow = overflow || !this.def(nextdi);\r\n if (overflow && firstInputIndex != null) di = firstInputIndex;\r\n } else if (firstFilledInputIndex == null) {\r\n // adjust index if delete at right and filled input not found at right\r\n di = firstVisibleHollowIndex != null ?\r\n firstVisibleHollowIndex :\r\n firstInputIndex;\r\n }\r\n\r\n return this._mapDefIndexToPos(di);\r\n }\r\n\r\n _alignCursor () {\r\n this.cursorPos = this._nearestInputPos(this.cursorPos);\r\n }\r\n}\r\nPatternMask.DEFINITIONS = {\r\n '0': /\\d/,\r\n 'a': /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, // http://stackoverflow.com/a/22075070\r\n '*': /./\r\n};\r\nPatternMask.DEF_TYPES = {\r\n INPUT: 'input',\r\n FIXED: 'fixed'\r\n}\r\nPatternMask.DEFAULT_PLACEHOLDER = {\r\n show: 'lazy',\r\n char: '_'\r\n};\r\nPatternMask.STOP_CHAR = '\\'';\r\nPatternMask.ESCAPE_CHAR = '\\\\';\r\n","import BaseMask from './base';\r\nimport {extendDetailsAdjustments} from '../utils';\r\n\r\n\r\nexport default\r\nclass PipeMask extends BaseMask {\r\n constructor (el, opts) {\r\n super(el, opts);\r\n\r\n this.multipass = opts.multipass;\r\n\r\n this._compiledMasks = this.mask.map(m => IMask.MaskFactory(el, m));\r\n }\r\n\r\n resolve (str, details) {\r\n var res = this._pipe(str, details);\r\n if (!this.multipass) return res;\r\n\r\n var cursorPos = details.cursorPos;\r\n\r\n var stepRes;\r\n var tempRes = res;\r\n\r\n while (stepRes !== tempRes) {\r\n stepRes = tempRes;\r\n tempRes = this._pipe(stepRes, {\r\n cursorPos: stepRes.length,\r\n oldValue: stepRes,\r\n oldSelection: {\r\n start: 0,\r\n end: stepRes.length\r\n }\r\n });\r\n }\r\n\r\n details.cursorPos = cursorPos - (res.length - stepRes.length);\r\n\r\n return stepRes;\r\n }\r\n\r\n _pipe (str, details) {\r\n return this._compiledMasks.reduce((s, m) => {\r\n var d = extendDetailsAdjustments(s, details);\r\n var res = m.resolve(s, d);\r\n details.cursorPos = d.cursorPos;\r\n return res;\r\n }, str);\r\n }\r\n\r\n bindEvents () {\r\n super.bindEvents();\r\n this._compiledMasks.forEach(m => {\r\n m.bindEvents();\r\n // disable basemask events for child masks\r\n BaseMask.prototype.unbindEvents.apply(m);\r\n });\r\n }\r\n\r\n unbindEvents () {\r\n super.unbindEvents();\r\n this._compiledMasks.forEach(m => m.unbindEvents());\r\n }\r\n}\r\n"],"names":["isString","str","String","conform","res","fallback","extendDetailsAdjustments","details","cursorPos","oldSelection","oldValue","startChangePos","Math","min","start","insertedCount","removedCount","max","end","length","substring","substr","DIRECTION","RIGHT","LEFT","indexInDirection","pos","direction","IMask","el","opts","mask","MaskFactory","bindEvents","rawValue","value","BaseMask","_listeners","_refreshingCount","_rawValue","_unmaskedValue","saveSelection","this","bind","_onInput","_onDrop","on","ev","handler","push","off","hIndex","indexOf","splice","addEventListener","unbindEvents","removeEventListener","fireEvent","forEach","l","processInput","inputValue","_selection","unmaskedValue","resolve","updateElement","warn","selectionStart","destroy","_calcUnmasked","isChanged","updateCursor","_fireChangeEvents","_delayUpdateCursor","_abortUpdateCursor","_changingCursorPos","_cursorChanging","setTimeout","_this","preventDefault","stopPropagation","selectionEnd","document","activeElement","setSelectionRange","RegExpMask","test","FuncMask","PatternMask","_BaseMask","_hollows","placeholder","definitions","DEFINITIONS","_alignCursor","_alignCursorFriendly","_initialized","_installDefinitions","_definitions","_charDefs","_alignStops","pattern","unmaskingBlock","optionalBlock","i","ch","type","DEF_TYPES","INPUT","FIXED","unmasking","optional","STOP_CHAR","ESCAPE_CHAR","_buildResolvers","_resolvers","defKey","_appendTail","tail","skipUnresolvedInput","placeholderBuffer","hollows","slice","overflow","ci","di","_mapPosToDefIndex","_isHollow","def","chres","char","isResolved","_placeholder","_appendTailChunks","chunks","input","chunk2","stop2","_appendPlaceholderEnd","_extractInput","fromPos","toPos","toDefIndex","_isHiddenHollow","_isInput","_extractInputChunks","stops","si","s","s2","defIndex","_hollowsBefore","filter","h","_this2","_mapDefIndexToPos","hi","_generateInsertSteps","head","inserted","insertSteps","tailPos","removed","tailDefIndex","tailAlignStopsPos","map","_this3","tailInputChunks","lastHollowIndex","removeDirection","_nearestInputPos","istep","step","tres","isComplete","_appendFixedEnd","show","unmasked","defs","index","firstInputIndex","firstFilledInputIndex","firstVisibleHollowIndex","nextdi","initialDefIndex","ph","DEFAULT_PLACEHOLDER","_this4","join","_mask","PipeMask","multipass","_compiledMasks","m","_pipe","stepRes","tempRes","reduce","d","prototype","apply","RegExp","Array","Function","window"],"mappings":"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"} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index de37911f..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,77 +0,0 @@ -var del = require('del'); -var source = require('vinyl-source-stream'); -var buffer = require('vinyl-buffer'); - -var gulp = require('gulp'); -var gulpsync = require('gulp-sync')(gulp); -var gutil = require('gulp-util'); -var babel = require('rollup-plugin-babel'); -// var rollup = require('gulp-rollup'); -var rollup = require('rollup-stream'); -var concat = require('gulp-concat'); -var eslint = require('gulp-eslint'); -var sourcemaps = require('gulp-sourcemaps'); -var uglify = require('gulp-uglify'); -var rename = require("gulp-rename"); -var exclude = require('gulp-ignore').exclude; -// var connect = require('gulp-connect'); - - -var devport = 8080; -var distroot = './dist'; -var srcroot = './src/**'; -var mainjs = './src/imask.js'; - -gulp.task('clean', function () { - del([distroot]); -}); - - -gulp.task('lint', function () { - return gulp.src(srcroot) - .pipe(eslint({configFile: '.eslintrc'})) - .pipe(eslint.format()); -}); - - -gulp.task('js', function () { - return rollup({ - entry: mainjs, - format: 'umd', - moduleName: 'imask', - sourceMap: true, - plugins: [babel({ exclude: 'node_modules/**' })] - }) - .pipe(source('imask.js', './src')) - .pipe(buffer()) - - // save unminified - .pipe(sourcemaps.init({loadMaps: true})) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest(distroot)) - - // save minified - .pipe(exclude('**.map')) - .pipe(uglify({ preserveComments: 'license' })) - .pipe(rename({ extname: '.min.js' })) - .pipe(sourcemaps.write('.')) - .pipe(gulp.dest(distroot)) - // .pipe(connect.reload()); -}); - - -// gulp.task('connect', function() { -// return connect.server({ -// root: distroot, -// port: devport, -// livereload: true -// }); -// }); - - -gulp.task('watch', function () { - return gulp.watch(srcroot, ['js']); -}); - -gulp.task('build', gulpsync.sync(['clean', 'lint', 'js'])); -gulp.task('default', gulpsync.sync(['build', 'watch'])); diff --git a/index.html b/index.html index a1a76c10..2e812f85 100644 --- a/index.html +++ b/index.html @@ -82,6 +82,7 @@

Initialize

  • other chars (not defined in custom options) supposed to be fixed
  • [] - make input optional
  • {} - include fixed in unmasked value
  • +
  • ' - prevent symbols shift back
  • If definition character should be treated as fixed it should be escaped by \\ (E.g. \\0).

    diff --git a/karma.conf.js b/karma.conf.js index b5eaa60b..c9faadeb 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,45 +1,31 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/0.13/config/configuration-file.html -var path = require('path'); +var babel = require('rollup-plugin-babel'); + module.exports = function (config) { - config.set({ - basePath: '', - files: ['test/**/*.js'], - frameworks: ['mocha', 'chai', 'sinon'], - // plugins: [ - // require('karma-webpack'), - // require('karma-phantomjs-launcher'), - // require('karma-coverage'), - // require('karma-sourcemap-loader'), - // require('karma-mocha-reporter'), - // require('karma-mocha'), - // require('karma-chai'), - // require('karma-sinon') - // ], - preprocessors: { - 'test/**/*.js': ['webpack', 'sourcemap', 'coverage'] - }, - reporters: ['progress', 'coverage'], - coverageReporter: { + config.set({ + basePath: '', + files: ['test/**/*.js'], + frameworks: ['mocha', 'chai', 'sinon'], + preprocessors: { + 'test/**/*.js': ['rollup', 'coverage'] + }, + reporters: ['progress', 'coverage'], + coverageReporter: { type: 'html', dir: 'coverage/' }, - colors: true, - logLevel: config.LOG_INFO, - browsers: ['Chrome'], - webpackMiddleware: { - noInfo: true - }, - webpack: { - devtool: 'inline-source-map', - module: { - loaders: [{ - test: /\.js$/, - exclude: /node_modules/, - loader: 'babel-loader' - }] - } - }, - }); + colors: true, + logLevel: config.LOG_INFO, + browsers: ['Chrome'], + rollupPreprocessor: { + plugins: [ + babel({ + exclude: 'node_modules/**', + }) + ], + format: 'iife', + moduleName: 'IMask', + sourceMap: 'inline' + } + }); }; diff --git a/package-lock.json b/package-lock.json index 11cac512..3f11dfec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3,33 +3,17 @@ "version": "0.3.1", "lockfileVersion": 1, "dependencies": { - "@gulp-sourcemaps/map-sources": { - "version": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true - }, "abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", "dev": true }, - "accepts": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/accepts/-/accepts-1.2.13.tgz", - "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", - "dev": true - }, "acorn": { "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.3.tgz", "integrity": "sha1-Gj6FC0KOc7prCdHMUn9aqtTQPvE=", "dev": true }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true - }, "acorn-jsx": { "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", @@ -58,11 +42,6 @@ "integrity": "sha1-AlULxgWj5XYEFWViivly4GxUnVA=", "dev": true }, - "align-text": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true - }, "amdefine": { "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", @@ -88,11 +67,6 @@ "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", "dev": true }, - "archy": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "argparse": { "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", @@ -108,9 +82,10 @@ "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs=", "dev": true }, - "array-differ": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", "dev": true }, "array-find-index": { @@ -118,6 +93,18 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, "array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", @@ -156,18 +143,6 @@ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true - }, "assert-plus": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", @@ -180,12 +155,6 @@ "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", "dev": true }, - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true - }, "async-each": { "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", @@ -197,11 +166,6 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "atob": { - "version": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", - "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", - "dev": true - }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -364,53 +328,6 @@ } } }, - "babel-helper-bindify-decorators": { - "version": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true, - "dependencies": { - "babel-code-frame": { - "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "babel-messages": { - "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true - }, - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-traverse": { - "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "babylon": { - "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", - "dev": true - }, - "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", @@ -549,53 +466,6 @@ } } }, - "babel-helper-explode-class": { - "version": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true, - "dependencies": { - "babel-code-frame": { - "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "babel-messages": { - "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true - }, - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-traverse": { - "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "babylon": { - "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", - "dev": true - }, - "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, "babel-helper-function-name": { "version": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", @@ -840,12 +710,6 @@ } } }, - "babel-loader": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.0.tgz", - "integrity": "sha1-P78lgfCFd0vZZC3KmZDm1sFJEUQ=", - "dev": true - }, "babel-plugin-check-es2015-constants": { "version": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", @@ -874,41 +738,11 @@ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", "dev": true }, - "babel-plugin-syntax-async-generators": { - "version": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true - }, - "babel-plugin-syntax-class-constructor-call": { - "version": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", - "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", - "dev": true - }, - "babel-plugin-syntax-class-properties": { - "version": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true - }, - "babel-plugin-syntax-decorators": { - "version": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", - "dev": true - }, - "babel-plugin-syntax-dynamic-import": { - "version": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true - }, "babel-plugin-syntax-exponentiation-operator": { "version": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", "dev": true }, - "babel-plugin-syntax-export-extensions": { - "version": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", - "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", - "dev": true - }, "babel-plugin-syntax-object-rest-spread": { "version": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", @@ -919,9 +753,9 @@ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", "dev": true }, - "babel-plugin-transform-async-generator-functions": { - "version": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "babel-plugin-transform-async-to-generator": { + "version": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "dependencies": { "babel-runtime": { @@ -936,9 +770,26 @@ } } }, - "babel-plugin-transform-async-to-generator": { - "version": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "babel-plugin-transform-es2015-arrow-functions": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "dependencies": { + "babel-runtime": { + "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true + }, + "regenerator-runtime": { + "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "dependencies": { "babel-runtime": { @@ -953,9 +804,9 @@ } } }, - "babel-plugin-transform-class-constructor-call": { - "version": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", - "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "babel-plugin-transform-es2015-block-scoping": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", + "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", "dev": true, "dependencies": { "babel-code-frame": { @@ -1005,9 +856,9 @@ } } }, - "babel-plugin-transform-class-properties": { - "version": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "babel-plugin-transform-es2015-classes": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "dependencies": { "babel-code-frame": { @@ -1057,9 +908,9 @@ } } }, - "babel-plugin-transform-decorators": { - "version": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "babel-plugin-transform-es2015-computed-properties": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "dependencies": { "babel-code-frame": { @@ -1109,9 +960,9 @@ } } }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "babel-plugin-transform-es2015-destructuring": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "dependencies": { "babel-runtime": { @@ -1126,9 +977,9 @@ } } }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "dependencies": { "babel-runtime": { @@ -1136,6 +987,11 @@ "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", "dev": true }, + "babel-types": { + "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "dev": true + }, "regenerator-runtime": { "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", @@ -1143,9 +999,65 @@ } } }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "babel-plugin-transform-es2015-for-of": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "dependencies": { + "babel-runtime": { + "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true + }, + "regenerator-runtime": { + "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "dependencies": { + "babel-runtime": { + "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true + }, + "babel-types": { + "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "dev": true + }, + "regenerator-runtime": { + "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "dependencies": { + "babel-runtime": { + "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true + }, + "regenerator-runtime": { + "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "dependencies": { "babel-code-frame": { @@ -1195,9 +1107,9 @@ } } }, - "babel-plugin-transform-es2015-classes": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", + "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", "dev": true, "dependencies": { "babel-code-frame": { @@ -1247,260 +1159,9 @@ } } }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "dependencies": { - "babel-code-frame": { - "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "babel-messages": { - "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true - }, - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-template": { - "version": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", - "dev": true - }, - "babel-traverse": { - "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "babylon": { - "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", - "dev": true - }, - "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "dependencies": { - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "dependencies": { - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "dependencies": { - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "dependencies": { - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "dependencies": { - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "dependencies": { - "babel-code-frame": { - "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "babel-messages": { - "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true - }, - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-template": { - "version": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", - "dev": true - }, - "babel-traverse": { - "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "babylon": { - "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", - "dev": true - }, - "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", - "dev": true, - "dependencies": { - "babel-code-frame": { - "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "babel-messages": { - "version": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true - }, - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "babel-template": { - "version": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", - "dev": true - }, - "babel-traverse": { - "version": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true - }, - "babel-types": { - "version": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true - }, - "babylon": { - "version": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha1-Pot0AriNIsNCPhN6FXeIOxX/hpo=", - "dev": true - }, - "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "dependencies": { "babel-code-frame": { @@ -1800,23 +1461,6 @@ } } }, - "babel-plugin-transform-export-extensions": { - "version": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", - "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", - "dev": true, - "dependencies": { - "babel-runtime": { - "version": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", - "dev": true - }, - "regenerator-runtime": { - "version": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, "babel-plugin-transform-object-rest-spread": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", @@ -1828,12 +1472,6 @@ "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", "dev": true }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "dev": true - }, "babel-plugin-transform-strict-mode": { "version": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", @@ -1870,31 +1508,6 @@ } } }, - "babel-preset-es2015": { - "version": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true - }, - "babel-preset-es2015-rollup": { - "version": "https://registry.npmjs.org/babel-preset-es2015-rollup/-/babel-preset-es2015-rollup-1.2.0.tgz", - "integrity": "sha1-/u34A0bgH6ItTeFecs3hzvxZv2c=", - "dev": true - }, - "babel-preset-stage-1": { - "version": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", - "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", - "dev": true - }, - "babel-preset-stage-2": { - "version": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true - }, - "babel-preset-stage-3": { - "version": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true - }, "babel-runtime": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", @@ -1923,38 +1536,12 @@ "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "base64-url": { - "version": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz", - "integrity": "sha1-+LbFN/CaT8WMmcuG4LDpxhRhog8=", - "dev": true - }, "base64id": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, - "basic-auth": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/basic-auth/-/basic-auth-1.0.4.tgz", - "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=", - "dev": true - }, - "basic-auth-connect": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", - "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", - "dev": true - }, - "batch": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/batch/-/batch-0.5.3.tgz", - "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", - "dev": true - }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", @@ -1962,40 +1549,17 @@ "dev": true, "optional": true }, - "beeper": { - "version": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, "better-assert": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", "dev": true }, - "big.js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", - "dev": true - }, "binary-extensions": { "version": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", "dev": true }, - "bl": { - "version": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", - "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", - "dev": true, - "dependencies": { - "readable-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - } - } - }, "blob": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", @@ -2008,29 +1572,6 @@ "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", "dev": true }, - "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - }, - "body-parser": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/body-parser/-/body-parser-1.13.3.tgz", - "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -2047,123 +1588,23 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, "browser-stdout": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", "dev": true }, - "browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true - }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true - }, "browserslist": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.1.5.tgz", "integrity": "sha1-6IJVDfPRzW1IHBo+ADjyuvE6RxE=", "dev": true }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "buffer-from": { - "version": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.1.tgz", - "integrity": "sha1-V7GLHaChnsBvM4N6UnWiQjUb114=", - "dev": true - }, - "buffer-shims": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "bufferstreams": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/bufferstreams/-/bufferstreams-1.1.1.tgz", - "integrity": "sha1-AWE3MGCsWYjv+ZBYcxEU9uGV1R4=", - "dev": true, - "dependencies": { - "isarray": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=", - "dev": true - } - } - }, "builtin-modules": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/bytes/-/bytes-2.1.0.tgz", - "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=", - "dev": true - }, "caller-path": { "version": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", @@ -2202,11 +1643,6 @@ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", "dev": true }, - "center-align": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true - }, "chai": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/chai/-/chai-4.0.2.tgz", @@ -2229,12 +1665,6 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true }, - "cipher-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", - "dev": true - }, "circular-json": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/circular-json/-/circular-json-0.3.1.tgz", "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=", @@ -2250,38 +1680,6 @@ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", "dev": true }, - "cliui": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "wordwrap": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } - } - }, - "clone": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", - "dev": true - }, - "clone-buffer": { - "version": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "cloneable-readable": { - "version": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", - "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", - "dev": true - }, "co": { "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", @@ -2316,12 +1714,6 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, "component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", @@ -2340,28 +1732,6 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, - "compressible": { - "version": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz", - "integrity": "sha1-baq04rWZwncN2eIeeokbHFp1VCU=", - "dev": true - }, - "compression": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/compression/-/compression-1.5.2.tgz", - "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, "concat-map": { "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", @@ -2384,62 +1754,6 @@ } } }, - "concat-with-sourcemaps": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", - "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", - "dev": true - }, - "connect": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/connect/-/connect-2.30.2.tgz", - "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "connect-livereload": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/connect-livereload/-/connect-livereload-0.5.4.tgz", - "integrity": "sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=", - "dev": true - }, - "connect-timeout": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/connect-timeout/-/connect-timeout-1.6.2.tgz", - "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, "content-type": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/content-type/-/content-type-1.0.2.tgz", "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", @@ -2450,21 +1764,6 @@ "integrity": "sha1-6fPpxuJyjvwmdmlqcOs4L3MQamc=", "dev": true }, - "cookie": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/cookie/-/cookie-0.1.3.tgz", - "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=", - "dev": true - }, - "cookie-parser": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/cookie-parser/-/cookie-parser-1.3.5.tgz", - "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", - "dev": true - }, - "cookie-signature": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, "core-js": { "version": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", @@ -2475,61 +1774,24 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "crc": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/crc/-/crc-3.3.0.tgz", - "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true - }, - "crypto-browserify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", - "dev": true - }, - "csrf": { - "version": "https://registry.npmjs.org/csrf/-/csrf-3.0.4.tgz", - "integrity": "sha1-ugFCPltb6ntlXjiwvdEyOVTL2qU=", - "dev": true - }, - "css": { - "version": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", - "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "dependencies": { - "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true } } }, - "csurf": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/csurf/-/csurf-1.8.3.tgz", - "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true }, "currently-unhandled": { @@ -2562,33 +1824,15 @@ } } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "dateformat": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/dateformat/-/dateformat-1.0.12.tgz", "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true - }, - "debug-fabulous": { - "version": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.0.4.tgz", - "integrity": "sha1-+gccXYdIRoVCSAdCHKSxawsaB2M=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", - "dev": true - } - } + "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true }, "decamelize": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/decamelize/-/decamelize-1.2.0.tgz", @@ -2614,9 +1858,10 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "defaults": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true }, "del": { @@ -2637,42 +1882,11 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "depd": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/depd/-/depd-1.0.1.tgz", - "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=", - "dev": true - }, - "deprecated": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true - }, - "destroy": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/detect-file/-/detect-file-0.1.0.tgz", - "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", - "dev": true - }, "detect-indent": { "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true }, - "detect-newline": { - "version": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -2685,12 +1899,6 @@ "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", "dev": true }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true - }, "doctrine": { "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", @@ -2709,22 +1917,11 @@ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true - }, "duplexer": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, - "duplexer2": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true - }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -2743,29 +1940,12 @@ "integrity": "sha1-ZK8Pnv08PGrNV9cfg7Scp+6cS0M=", "dev": true }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, "encodeurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", "dev": true }, - "end-of-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "dev": true - }, "engine.io": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", @@ -2812,53 +1992,28 @@ "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", "dev": true }, - "enhanced-resolve": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", - "integrity": "sha1-n0tib1dyRe3PSyrYPYbhf09CHew=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, - "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true - }, "error-ex": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/error-ex/-/error-ex-1.3.0.tgz", "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=", "dev": true }, - "errorhandler": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/errorhandler/-/errorhandler-1.4.3.tgz", - "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", - "dev": true, - "dependencies": { - "accepts": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true - }, - "negotiator": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - } - } + "es-abstract": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", + "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", + "dev": true + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true }, "es5-ext": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/es5-ext/-/es5-ext-0.10.12.tgz", @@ -3001,11 +2156,6 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, - "etag": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/etag/-/etag-1.7.0.tgz", - "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", - "dev": true - }, "event-emitter": { "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz", "integrity": "sha1-jWPd+0z+H647MsomXExyAiIIC7U=", @@ -3021,18 +2171,6 @@ "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", "dev": true }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", - "dev": true - }, "exit-hook": { "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", @@ -3080,38 +2218,6 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true }, - "expand-tilde": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/expand-tilde/-/expand-tilde-1.2.2.tgz", - "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", - "dev": true - }, - "express-session": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/express-session/-/express-session-1.11.3.tgz", - "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", - "dev": true, - "dependencies": { - "base64-url": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/base64-url/-/base64-url-1.2.1.tgz", - "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=", - "dev": true - }, - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "uid-safe": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/uid-safe/-/uid-safe-2.0.0.tgz", - "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", - "dev": true - } - } - }, "extend": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/extend/-/extend-3.0.0.tgz", "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=", @@ -3172,27 +2278,11 @@ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "dev": true }, - "fancy-log": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/fancy-log/-/fancy-log-1.2.0.tgz", - "integrity": "sha1-1aUbU+mrIsoH1VjytnrlX9tfy9g=", - "dev": true - }, - "fast-deep-equal": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz", - "integrity": "sha1-XG9FmaumszPuM0Li7ZeGcvEAH40=", - "dev": true - }, "fast-levenshtein": { "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz", "integrity": "sha1-vTMUV0RRmrHDbD7p8x8I6QebZ/I=", "dev": true }, - "faye-websocket": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true - }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -3233,64 +2323,11 @@ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true }, - "finalhandler": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/finalhandler/-/finalhandler-0.4.0.tgz", - "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "escape-html": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/escape-html/-/escape-html-1.0.2.tgz", - "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true - }, - "find-index": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, "find-up": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true }, - "findup-sync": { - "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", - "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", - "dev": true - }, - "fined": { - "version": "https://registry.npmjs.org/fined/-/fined-1.0.2.tgz", - "integrity": "sha1-WyhCS3YNdZiWC374SA3/itNmDpc=", - "dev": true - }, - "first-chunk-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flagged-respawn": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/flagged-respawn/-/flagged-respawn-0.3.2.tgz", - "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", - "dev": true - }, "flat-cache": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/flat-cache/-/flat-cache-1.2.1.tgz", "integrity": "sha1-bIN9YiWn3lZZMjdAs21TYfcWkf8=", @@ -3306,6 +2343,12 @@ "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=", "dev": true }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -3324,11 +2367,6 @@ "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", "dev": true }, - "fresh": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", - "dev": true - }, "from": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/from/-/from-0.1.3.tgz", "integrity": "sha1-72OsIGKsMqz3hi4NQLRLiW8i87w=", @@ -3340,11 +2378,6 @@ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true }, - "fs-exists-sync": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", - "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", - "dev": true - }, "fs-extra": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", @@ -4013,9 +3046,10 @@ } } }, - "gaze": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", "dev": true }, "generate-function": { @@ -4028,12 +3062,6 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", @@ -4059,11 +3087,6 @@ } } }, - "glob": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true - }, "glob-base": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", @@ -4074,43 +3097,6 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true }, - "glob-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, - "dependencies": { - "readable-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "through2": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - } - } - }, - "glob-watcher": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "dev": true - }, - "glob2base": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "dev": true - }, - "global-modules": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/global-modules/-/global-modules-0.2.3.tgz", - "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", - "dev": true - }, - "global-prefix": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/global-prefix/-/global-prefix-0.1.4.tgz", - "integrity": "sha1-BRWNsc3i3UkbRV4pDrOri/xFxuE=", - "dev": true - }, "globals": { "version": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz", "integrity": "sha1-iFmTavADh0EmMFOznQ52yiQeQDQ=", @@ -4138,43 +3124,6 @@ } } }, - "globule": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "dependencies": { - "glob": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true - }, - "graceful-fs": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "minimatch": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true - } - } - }, - "glogg": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true - }, "graceful-fs": { "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", @@ -4192,124 +3141,6 @@ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", "dev": true }, - "gulp": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "dev": true - }, - "gulp-concat": { - "version": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "dependencies": { - "clone-stats": { - "version": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "replace-ext": { - "version": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "vinyl": { - "version": "https://registry.npmjs.org/vinyl/-/vinyl-2.0.1.tgz", - "integrity": "sha1-HDtJMeesTB7+50PzuRp0wJRAe7Y=", - "dev": true - } - } - }, - "gulp-connect": { - "version": "https://registry.npmjs.org/gulp-connect/-/gulp-connect-5.0.0.tgz", - "integrity": "sha1-8v3zBq6RFGg2jCKF8teC8T7dr04=", - "dev": true - }, - "gulp-eslint": { - "version": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-3.0.1.tgz", - "integrity": "sha1-BOV+PhjGl0JnwSz2hV3HF9SjE70=", - "dev": true - }, - "gulp-ignore": { - "version": "https://registry.npmjs.org/gulp-ignore/-/gulp-ignore-2.0.2.tgz", - "integrity": "sha1-XC6ioKRALgq0orzRLv2SlTRNePI=", - "dev": true - }, - "gulp-match": { - "version": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz", - "integrity": "sha1-kcfA1/Kb7NZgbVfYCn+Hdqh6uo4=", - "dev": true, - "dependencies": { - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", - "dev": true - } - } - }, - "gulp-rename": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/gulp-rename/-/gulp-rename-1.2.2.tgz", - "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", - "dev": true - }, - "gulp-rollup": { - "version": "https://registry.npmjs.org/gulp-rollup/-/gulp-rollup-2.13.0.tgz", - "integrity": "sha1-Jot8bI2zGgHwbJJAbKwY03TLFHA=", - "dev": true, - "dependencies": { - "isarray": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", - "dev": true - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", - "dev": true - } - } - }, - "gulp-sourcemaps": { - "version": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.12.0.tgz", - "integrity": "sha1-eG+XyUoPloSSRl1wVY4EJCxnlZg=", - "dev": true, - "dependencies": { - "vinyl": { - "version": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true - } - } - }, - "gulp-sync": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/gulp-sync/-/gulp-sync-0.1.4.tgz", - "integrity": "sha1-IuuVKPlXN9RxXAEnIYCgjyQTPbU=", - "dev": true - }, - "gulp-uglify": { - "version": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-2.1.2.tgz", - "integrity": "sha1-bbhbHQ7mPRgFhZK2WGSdZcLsRUE=", - "dev": true - }, - "gulp-uglifyjs": { - "version": "https://registry.npmjs.org/gulp-uglifyjs/-/gulp-uglifyjs-0.6.2.tgz", - "integrity": "sha1-eTGFUD/PDzASVd3dtdrn99h0aGI=", - "dev": true - }, - "gulp-util": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/gulp-util/-/gulp-util-3.0.7.tgz", - "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=", - "dev": true - }, - "gulplog": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true - }, "handlebars": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", @@ -4336,6 +3167,12 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true + }, "has-ansi": { "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", @@ -4347,42 +3184,15 @@ "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", "dev": true }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-gulplog": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true - }, - "has-symbol-support-x": { - "version": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.2.0.tgz", - "integrity": "sha1-5iTq1RkMNbNOTimTRN/2Q32wLOI=", - "dev": true - }, - "has-to-string-tag-x": { - "version": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.2.0.tgz", - "integrity": "sha1-xTbcTbvr4b6dKPYk/TIPeTEp/VM=", - "dev": true - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, - "hash.js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.2.tgz", - "integrity": "sha512-SsNl8Ro2uz5xUTRYq8ysWzX8B7jCj7pLvX3opktaI6ZrTT2YElqjFVJXHJZe+5Aby20c9UC7elCjJDe1dhTaAw==", + "has-flag": { + "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "hasha": { @@ -4397,12 +3207,6 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true - }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -4419,56 +3223,17 @@ "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=", "dev": true }, - "http-errors": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", - "dev": true - }, "http-proxy": { "version": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true }, - "http-proxy-middleware": { - "version": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "dependencies": { - "is-extglob": { - "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true - } - } - }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "iconv-lite": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/iconv-lite/-/iconv-lite-0.4.11.tgz", - "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, "ignore": { "version": "https://registry.npmjs.org/ignore/-/ignore-3.2.0.tgz", "integrity": "sha1-jYjwPDACoKxSEU2yXSxnOwvx5DU=", @@ -4499,11 +3264,6 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "ini": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true - }, "inquirer": { "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", @@ -4519,22 +3279,6 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", - "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", - "dev": true - }, - "is-array-buffer-x": { - "version": "https://registry.npmjs.org/is-array-buffer-x/-/is-array-buffer-x-1.2.1.tgz", - "integrity": "sha1-V5GAaIthKzaRcA1smrM11v1GlVw=", - "dev": true - }, "is-arrayish": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", @@ -4555,6 +3299,18 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, "is-dotfile": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-dotfile/-/is-dotfile-1.0.2.tgz", "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=", @@ -4585,11 +3341,6 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true }, - "is-function-x": { - "version": "https://registry.npmjs.org/is-function-x/-/is-function-x-1.2.0.tgz", - "integrity": "sha1-HIOYmfB70j38aV5PBlUQe+hSdi0=", - "dev": true - }, "is-glob": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", @@ -4605,11 +3356,6 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true }, - "is-object-like-x": { - "version": "https://registry.npmjs.org/is-object-like-x/-/is-object-like-x-1.2.0.tgz", - "integrity": "sha1-tZKdjxKrktrunS91S4MYRLzAjCE=", - "dev": true - }, "is-path-cwd": { "version": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", @@ -4640,9 +3386,10 @@ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", "dev": true }, - "is-relative": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-relative/-/is-relative-0.2.1.tgz", - "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true }, "is-resolvable": { @@ -4655,27 +3402,23 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-unc-path": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-unc-path/-/is-unc-path-0.1.1.tgz", - "integrity": "sha1-qyUz13rXM1YRJMPcD1zYuQBUyGs=", - "dev": true - }, "is-utf8": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, - "is-windows": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", - "dev": true - }, "isarray": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", @@ -4758,24 +3501,12 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, - "json-loader": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=", - "dev": true - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, "json-stable-stringify": { "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", @@ -5018,56 +3749,32 @@ "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", "dev": true }, - "karma-sinon": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/karma-sinon/-/karma-sinon-1.0.5.tgz", - "integrity": "sha1-TjRD8oMP3s/2JNN0cWPxIX2qKpo=", - "dev": true - }, - "karma-sourcemap-loader": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", - "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", + "karma-rollup-plugin": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/karma-rollup-plugin/-/karma-rollup-plugin-0.2.4.tgz", + "integrity": "sha1-BZVItBLnWi5GPV9uCQNbnQl4WlM=", "dev": true }, - "karma-webpack": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-2.0.3.tgz", - "integrity": "sha1-Oc6/XKJYATmyf5rmm3iBa5yC+uY=", + "karma-rollup-preprocessor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/karma-rollup-preprocessor/-/karma-rollup-preprocessor-4.0.0.tgz", + "integrity": "sha1-I2wIEI07AljY4Xdmew9MUOZAGrI=", "dev": true, "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true - }, "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true } } }, + "karma-sinon": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/karma-sinon/-/karma-sinon-1.0.5.tgz", + "integrity": "sha1-TjRD8oMP3s/2JNN0cWPxIX2qKpo=", + "dev": true + }, "kew": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", @@ -5085,68 +3792,16 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true }, - "lazy-cache": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazy-debug-legacy": { - "version": "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz", - "integrity": "sha1-U3cWwHduTPeePtG2IfdljCkRsbE=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true - }, "levn": { "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true }, - "liftoff": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/liftoff/-/liftoff-2.3.0.tgz", - "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", - "dev": true - }, - "livereload-js": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/livereload-js/-/livereload-js-2.2.2.tgz", - "integrity": "sha1-bIclfmSKtHW8JOoldFftzB+NC8I=", - "dev": true - }, "load-json-file": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "lodash": { "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I=", @@ -5169,16 +3824,6 @@ "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", "dev": true }, - "lodash._basetostring": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, "lodash._getnative": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._getnative/-/lodash._getnative-3.9.1.tgz", "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", @@ -5189,42 +3834,12 @@ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", "dev": true }, - "lodash._reescape": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.assignwith": { - "version": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha1-EnqX8CrcQXUalU0ksN4X4QDgOOs=", - "dev": true - }, "lodash.create": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true }, - "lodash.escape": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true - }, "lodash.isarguments": { "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", @@ -5235,56 +3850,11 @@ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, - "lodash.isempty": { - "version": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", - "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", - "dev": true - }, - "lodash.isnull": { - "version": "https://registry.npmjs.org/lodash.isnull/-/lodash.isnull-3.0.0.tgz", - "integrity": "sha1-+vvlnqHcon7teGU0A53YTC4HxW4=", - "dev": true - }, - "lodash.isplainobject": { - "version": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, "lodash.keys": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true }, - "lodash.mapvalues": { - "version": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", - "dev": true - }, - "lodash.pick": { - "version": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.restparam": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true - }, - "lodash.templatesettings": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true - }, "log4js": { "version": "0.6.38", "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", @@ -5305,11 +3875,6 @@ "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=", "dev": true }, - "longest": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, "loose-envify": { "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.0.tgz", "integrity": "sha1-ayYkjEL21PpLDYVC947fzeNWQqg=", @@ -5320,32 +3885,6 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true }, - "lru-cache": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "make-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", - "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", - "dev": true - }, - "make-error": { - "version": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", - "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", - "dev": true - }, - "make-error-cause": { - "version": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true - }, - "map-cache": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, "map-obj": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", @@ -5361,32 +3900,6 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true - } - } - }, "meow": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", @@ -5399,34 +3912,11 @@ } } }, - "method-override": { - "version": "https://registry.npmjs.org/method-override/-/method-override-2.3.7.tgz", - "integrity": "sha1-jh1HrEgPsM2Hdwg/EciWkBFmsuU=", - "dev": true, - "dependencies": { - "vary": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vary/-/vary-1.1.0.tgz", - "integrity": "sha1-4eWv+70WrnaN0mdDlLmtMCJlMUA=", - "dev": true - } - } - }, - "methods": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, "micromatch": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true }, - "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true - }, "mime": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/mime/-/mime-1.3.4.tgz", "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", @@ -5442,18 +3932,6 @@ "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=", "dev": true }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, "minimatch": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/minimatch/-/minimatch-2.0.10.tgz", "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", @@ -5520,43 +3998,11 @@ } } }, - "modify-babel-preset": { - "version": "https://registry.npmjs.org/modify-babel-preset/-/modify-babel-preset-2.1.1.tgz", - "integrity": "sha1-LTGQFi7mL7Z6qjMlwkLwJjIuu6w=", - "dev": true - }, - "morgan": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/morgan/-/morgan-1.6.1.tgz", - "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, "ms": { "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, - "multiparty": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/multiparty/-/multiparty-3.3.2.tgz", - "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", - "dev": true - }, - "multipipe": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true - }, "mute-stream": { "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", @@ -5575,65 +4021,77 @@ "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=", "dev": true }, - "natives": { - "version": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", - "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", - "dev": true - }, "natural-compare": { "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "negotiator": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/negotiator/-/negotiator-0.5.3.tgz", - "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=", + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true }, - "node-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "normalize-package-data": { + "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/normalize-package-data/-/normalize-package-data-2.3.5.tgz", + "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", + "dev": true + }, + "normalize-path": { + "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/normalize-path/-/normalize-path-2.0.1.tgz", + "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=", + "dev": true + }, + "npm-run-all": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.0.2.tgz", + "integrity": "sha1-qEZpNI5ttsy+BSIAtM22v+A0pP4=", "dev": true, "dependencies": { - "isarray": { + "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true }, - "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", - "dev": true, - "dependencies": { - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true - } - } + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true } } }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true - }, - "normalize-package-data": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", - "dev": true - }, - "normalize-path": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/normalize-path/-/normalize-path-2.0.1.tgz", - "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=", - "dev": true - }, "null-check": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", @@ -5651,17 +4109,18 @@ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true }, - "object-assign": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, "object-component": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", "dev": true }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, "object.omit": { "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", @@ -5672,11 +4131,6 @@ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true }, - "on-headers": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, "once": { "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", @@ -5718,72 +4172,16 @@ "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", "dev": true }, - "orchestrator": { - "version": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "dev": true - }, - "ordered-read-streams": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", - "dev": true - }, "os-homedir": { "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true - }, "os-tmpdir": { "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "osenv": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/osenv/-/osenv-0.1.3.tgz", - "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=", - "dev": true - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", - "dev": true - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true - }, - "parse-filepath": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/parse-filepath/-/parse-filepath-1.0.1.tgz", - "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", - "dev": true - }, "parse-glob": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", @@ -5817,12 +4215,6 @@ "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", "dev": true }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, "path-exists": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", @@ -5838,16 +4230,6 @@ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, - "path-root": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true - }, - "path-root-regex": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, "path-to-regexp": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", @@ -5865,22 +4247,11 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, - "pause": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/pause/-/pause-0.1.0.tgz", - "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=", - "dev": true - }, "pause-stream": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true }, - "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", - "dev": true - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -5908,20 +4279,6 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true - } - } - }, "pluralize": { "version": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", @@ -5937,22 +4294,11 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, - "pretty-hrtime": { - "version": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, "private": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/private/-/private-0.1.6.tgz", "integrity": "sha1-VcapdtD5uvuZJIUTUP5HubX7t8E=", "dev": true }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, "process-nextick-args": { "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", @@ -5963,16 +4309,16 @@ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", "dev": true }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "ps-tree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", + "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", "dev": true }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "punycode": { @@ -5987,61 +4333,11 @@ "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", "dev": true }, - "qs": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/qs/-/qs-4.0.0.tgz", - "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "random-bytes": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "dev": true - }, "randomatic": { "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", "dev": true }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true - }, - "range-parser": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/range-parser/-/range-parser-1.0.3.tgz", - "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", - "dev": true - }, - "raw-body": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", - "dev": true, - "dependencies": { - "bytes": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true - }, - "iconv-lite": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - } - } - }, "read-pkg": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", @@ -6052,11 +4348,6 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true }, - "readable-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true - }, "readdirp": { "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", @@ -6152,11 +4443,6 @@ } } }, - "remove-trailing-separator": { - "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", - "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=", - "dev": true - }, "repeat-element": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/repeat-element/-/repeat-element-1.1.2.tgz", "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", @@ -6172,11 +4458,6 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true }, - "replace-ext": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, "request": { "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", @@ -6197,18 +4478,6 @@ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "require-relative": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/require-relative/-/require-relative-0.8.7.tgz", "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", @@ -6229,43 +4498,16 @@ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true }, - "resolve-dir": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/resolve-dir/-/resolve-dir-0.1.1.tgz", - "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", - "dev": true - }, "resolve-from": { "version": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, - "resolve-url": { - "version": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "response-time": { - "version": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", - "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", - "dev": true, - "dependencies": { - "depd": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", - "dev": true - } - } - }, "restore-cursor": { "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true }, - "right-align": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true - }, "rimraf": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/rimraf/-/rimraf-2.5.4.tgz", "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", @@ -6283,39 +4525,46 @@ } } }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true - }, - "rndm": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/rndm/-/rndm-1.2.0.tgz", - "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", - "dev": true - }, "rollup": { - "version": "https://registry.npmjs.org/rollup/-/rollup-0.43.0.tgz", - "integrity": "sha1-s2vbdfpeCCO23oruGP97VlVSBUM=", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.43.0.tgz", + "integrity": "sha512-XqpEPAMHCJ4VcT95ApyGQC7MncjGcG6UtcU5geONqPfN2uAROGmJDE3cOi325S19rhklbM+BXIHNX35l+1zmAg==", "dev": true }, "rollup-plugin-babel": { - "version": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz", "integrity": "sha1-FlKBl7D5OKFTb0RoPHqT1XMYL1c=", "dev": true, "dependencies": { "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true } } }, - "rollup-plugin-hypothetical": { - "version": "https://registry.npmjs.org/rollup-plugin-hypothetical/-/rollup-plugin-hypothetical-1.2.1.tgz", - "integrity": "sha1-9CcHe3urWSzCmBl6uaqsT+TvoFU=", + "rollup-plugin-eslint": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-eslint/-/rollup-plugin-eslint-3.0.0.tgz", + "integrity": "sha1-Q1TE5YXg0r2SWBTj38hky3kuyaQ=", "dev": true }, + "rollup-plugin-uglify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-2.0.1.tgz", + "integrity": "sha1-Z7N60e/a+9g69MNrQMGJ7khmyWk=", + "dev": true, + "dependencies": { + "uglify-js": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.20.tgz", + "integrity": "sha512-O/c2/N97k1Ms+23VRx6gIAfGdijuW53SlASmXy0FVapK63rQrduHyE+5X6hUtqNiSLLao9Uv6ijotpNe8t991Q==", + "dev": true + } + } + }, "rollup-pluginutils": { "version": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", @@ -6338,9 +4587,10 @@ } } }, - "rollup-stream": { - "version": "https://registry.npmjs.org/rollup-stream/-/rollup-stream-1.21.0.tgz", - "integrity": "sha1-fwTZjVTNcPn/eYOj1kTCtWIWl30=", + "rollup-watch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rollup-watch/-/rollup-watch-4.0.0.tgz", + "integrity": "sha512-DVMpGX9J75le6FvvsvvrJKJfvSFMiY4HaeofbPfz1qCn0pS+4PsYbn3ZdTN9NJ4Y3ENe8UWfKNlALGT+srHxhA==", "dev": true }, "run-async": { @@ -6369,92 +4619,33 @@ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", "dev": true }, - "send": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/send/-/send-0.13.2.tgz", - "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "depd": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "statuses": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", - "dev": true - } - } - }, - "sequencify": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, - "serve-favicon": { - "version": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", - "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", - "dev": true - }, - "serve-index": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/serve-index/-/serve-index-1.7.3.tgz", - "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", - "dev": true, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "serve-static": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/serve-static/-/serve-static-1.10.3.tgz", - "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "set-immediate-shim": { "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, "setprototypeof": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", "dev": true }, - "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true }, "shelljs": { @@ -6474,11 +4665,6 @@ } } }, - "sigmund": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz", "integrity": "sha1-WkyISZK2OnrNm623iUw+6c/MrYE=", @@ -6560,37 +4746,16 @@ } } }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, "source-map": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, - "source-map-resolve": { - "version": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", - "dev": true - }, "source-map-support": { "version": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.6.tgz", "integrity": "sha1-MlUqpktFg5KoXqs7C17mFScWeus=", "dev": true }, - "source-map-url": { - "version": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", - "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", - "dev": true - }, - "sparkles": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, "spdx-correct": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", @@ -6619,89 +4784,27 @@ "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true - } - } - }, - "stream-combiner": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true - }, - "stream-consume": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", - "dev": true - }, - "stream-counter": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/stream-counter/-/stream-counter-0.2.0.tgz", - "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", - "dev": true - }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "dependencies": { - "isarray": { + "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, + "statuses": { + "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stream-combiner": { + "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true + }, "string_decoder": { "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", @@ -6712,6 +4815,12 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true }, + "string.prototype.padend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "dev": true + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -6743,12 +4852,6 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "symbol": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.3.1.tgz", - "integrity": "sha1-tvmpANSWpX8CQI8iGYwQndoGMEE=", - "dev": true - }, "table": { "version": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", @@ -6766,12 +4869,6 @@ } } }, - "tapable": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", - "integrity": "sha1-IGvo4YiGC1FEJTdebxrom/sB/Y0=", - "dev": true - }, "text-encoding": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", @@ -6794,88 +4891,6 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "dependencies": { - "isarray": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=", - "dev": true - } - } - }, - "tildify": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "dev": true - }, - "time-stamp": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/time-stamp/-/time-stamp-1.0.1.tgz", - "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", - "dev": true - }, - "tiny-lr": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/tiny-lr/-/tiny-lr-0.2.1.tgz", - "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", - "dev": true, - "dependencies": { - "body-parser": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/body-parser/-/body-parser-1.14.2.tgz", - "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", - "dev": true, - "dependencies": { - "qs": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/qs/-/qs-5.2.0.tgz", - "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", - "dev": true - } - } - }, - "bytes": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/bytes/-/bytes-2.2.0.tgz", - "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", - "dev": true - }, - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "depd": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", - "dev": true - }, - "iconv-lite": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "qs": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/qs/-/qs-5.1.0.tgz", - "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", - "dev": true - } - } - }, "tmp": { "version": "0.0.31", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", @@ -6888,22 +4903,11 @@ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "dev": true }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, "to-fast-properties": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/to-fast-properties/-/to-fast-properties-1.0.2.tgz", "integrity": "sha1-8/XAw7pymafvmUJ+RGMyV63kMyA=", "dev": true }, - "to-string-tag-x": { - "version": "https://registry.npmjs.org/to-string-tag-x/-/to-string-tag-x-1.2.0.tgz", - "integrity": "sha1-ItiGG+3eLbjxji2goAKoQ+VuATU=", - "dev": true - }, "tough-cookie": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", @@ -6926,17 +4930,6 @@ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", "dev": true }, - "tsscmp": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/tsscmp/-/tsscmp-1.0.5.tgz", - "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", @@ -6961,41 +4954,15 @@ "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", "dev": true }, - "type-is": { - "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "integrity": "sha1-4hljnBfe0coHiQkt1UoDgmuBfLI=", - "dev": true - }, "typedarray": { "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "uglify-js": { - "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true - }, - "uglify-save-license": { - "version": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", - "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=", - "dev": true - }, - "uglify-to-browserify": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true - }, - "uid-safe": { - "version": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.3.tgz", - "integrity": "sha1-B34mSgCzGHk2snC7c3aiZHNjEHE=", + "uglify-es": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.0.20.tgz", + "integrity": "sha512-umLok08LJl/aHzDqJZomUtDPPegw/T7RHkVh+OnZ4fgb5X/LQPqRZcicDJh+s0Tnw8lSB/Lcc1RtZBMVz66eJw==", "dev": true }, "ultron": { @@ -7004,45 +4971,11 @@ "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", "dev": true }, - "unc-path-regex": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "unique-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true - }, "unpipe": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, - "urix": { - "version": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "user-home": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "useragent": { "version": "2.1.13", "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.1.13.tgz", @@ -7057,20 +4990,6 @@ } } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, "util-deprecate": { "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", @@ -7087,259 +5006,33 @@ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, - "v8flags": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/v8flags/-/v8flags-2.0.11.tgz", - "integrity": "sha1-vKjzDw1tYGEswsAGQeaWLUKuaIE=", - "dev": true - }, "validate-npm-package-license": { "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true }, - "validate.io-undefined": { - "version": "https://registry.npmjs.org/validate.io-undefined/-/validate.io-undefined-1.0.3.tgz", - "integrity": "sha1-fif8uzFbhB54JDQxiXZxkp4gt/Q=", - "dev": true - }, - "vary": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vary/-/vary-1.0.1.tgz", - "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=", - "dev": true - }, "verror": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true }, - "vhost": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vhost/-/vhost-3.0.2.tgz", - "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=", - "dev": true - }, - "vinyl": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true - }, - "vinyl-buffer": { - "version": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.0.tgz", - "integrity": "sha1-ygZ+oIQx1QdyKx3lCD9gJhbrwjQ=", - "dev": true, - "dependencies": { - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "through2": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - } - } - }, - "vinyl-fs": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "dev": true, - "dependencies": { - "clone": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true - }, - "readable-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "strip-bom": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true - }, - "through2": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - }, - "vinyl": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true - } - } - }, - "vinyl-source-stream": { - "version": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz", - "integrity": "sha1-RMvlEIIFJ53rDFZTwJSiiHk4sas=", - "dev": true, - "dependencies": { - "clone": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "readable-stream": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "through2": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true - }, - "vinyl": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true - }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, - "watchpack": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", - "integrity": "sha1-fYaTkHsozmAT5/NhCqKhrPB9rYc=", - "dev": true - }, - "webpack": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.0.0.tgz", - "integrity": "sha1-7pvOvyEkf3FTy0EBaMq0XjpZ1Nc=", - "dev": true, - "dependencies": { - "acorn": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=", - "dev": true - }, - "ajv": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.0.tgz", - "integrity": "sha1-wXNQJMXaLvdcwZBxMHPUTwmL9IY=", - "dev": true - }, - "ajv-keywords": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", - "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true - } - } - }, - "webpack-babel-external-helpers-2": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/webpack-babel-external-helpers-2/-/webpack-babel-external-helpers-2-1.1.2.tgz", - "integrity": "sha1-8N3BrTOV5g7ODxKLpL9DM8m0qfM=", - "dev": true, - "dependencies": { - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", - "integrity": "sha1-CWkdCXOjCtH4Ksc6EuIIfwpHVPk=", - "dev": true - }, - "webpack-sources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", - "dev": true - }, - "websocket-driver": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true - }, - "websocket-extensions": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/websocket-extensions/-/websocket-extensions-0.1.1.tgz", - "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", - "dev": true - }, "which": { "version": "https://registry.npmjs.org/which/-/which-1.2.12.tgz", "integrity": "sha1-3me15FAmnxlJCe8j7OTr5Bb6EZI=", "dev": true }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "window-size": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, "wordwrap": { "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true - }, "wrappy": { "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", @@ -7373,38 +5066,12 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, - "yargs": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "http://triton.bscpraha.cz:8081/nexus/content/groups/npm-all/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, "yauzl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", diff --git a/package.json b/package.json index 0ce0f206..8a398d8c 100644 --- a/package.json +++ b/package.json @@ -1,56 +1,41 @@ { "name": "imaskjs", - "version": "0.3.1", + "version": "0.4.0", "description": "vanillaJS input mask", "main": "imask.js", "dependencies": {}, "devDependencies": { "babel-core": "^6.25.0", "babel-eslint": "^7.1.1", - "babel-loader": "^7.1.0", "babel-plugin-external-helpers": "^6.22.0", - "babel-plugin-transform-es2015-modules-umd": "^6.18.0", "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-env": "^1.5.2", - "babel-preset-es2015": "^6.18.0", - "babel-preset-es2015-rollup": "^1.2.0", - "babel-preset-stage-1": "^6.16.0", - "babel-runtime": "^6.23.0", "chai": "^4.0.2", - "del": "^2.2.2", - "gulp": "^3.9.1", - "gulp-concat": "^2.6.1", - "gulp-connect": "^5.0.0", - "gulp-eslint": "^3.0.1", - "gulp-ignore": "^2.0.2", - "gulp-rename": "^1.2.2", - "gulp-rollup": "^2.5.1", - "gulp-sourcemaps": "^1.9.1", - "gulp-sync": "^0.1.4", - "gulp-uglify": "^2.0.0", - "gulp-uglifyjs": "^0.6.2", - "http-proxy-middleware": "^0.17.2", "karma": "^1.7.0", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^2.2.0", "karma-coverage": "^1.1.1", "karma-mocha": "^1.3.0", "karma-phantomjs-launcher": "^1.0.4", + "karma-rollup-plugin": "^0.2.4", + "karma-rollup-preprocessor": "^4.0.0", "karma-sinon": "^1.0.5", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", "mocha": "^3.4.2", - "rollup-plugin-babel": "^2.6.1", - "rollup-stream": "^1.14.0", + "npm-run-all": "^4.0.2", + "rollup": "^0.43.0", + "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-eslint": "^3.0.0", + "rollup-plugin-uglify": "^2.0.1", + "rollup-watch": "^4.0.0", "sinon": "^2.3.5", - "vinyl-buffer": "^1.0.0", - "vinyl-source-stream": "^1.1.0", - "webpack": "^3.0.0", - "webpack-babel-external-helpers-2": "^1.1.2" + "uglify-es": "^3.0.20" }, "scripts": { - "test": "karma start --single-run --browsers PhantomJS" + "test": "karma start --single-run --browsers PhantomJS", + "watch": "rollup -c -w", + "build": "npm-run-all -l build:*", + "build:dev": "rollup -c", + "build:prod": "rollup -c --environment NODE_ENV:production" }, "repository": { "type": "git", diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 00000000..e542b451 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,32 @@ +import babel from 'rollup-plugin-babel'; +import uglify from 'rollup-plugin-uglify'; +import eslint from 'rollup-plugin-eslint'; +import {minify} from 'uglify-es'; + + +const isProd = process.env.NODE_ENV === 'production'; +function destName (format) { + return 'dist/imask' + + (isProd ? '.min' : '') + + (format ? '.' + format : '') + + '.js'; +} + +export default { + // tell rollup our main entry point + entry: 'src/imask.js', + targets: [ + { dest: destName(), format: 'umd' }, + { dest: destName('es'), format: 'es' } + ], + moduleName: 'IMask', + sourceMap: true, + plugins: [ + eslint({configFile: '.eslintrc'}), + babel({ + exclude: 'node_modules/**', + }), + isProd && + uglify({}, minify) + ] +} diff --git a/src/masks/pattern.js b/src/masks/pattern.js index 3f4ffe72..383711db 100644 --- a/src/masks/pattern.js +++ b/src/masks/pattern.js @@ -1,4 +1,4 @@ -import {conform, extendDetailsAdjustments, indexInDirection, DIRECTION} from '../utils'; +import {conform, indexInDirection, DIRECTION} from '../utils'; import BaseMask from './base'; diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 709bd0fc..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,30 +0,0 @@ -const webpack = require('webpack'); -const path = require('path'); - - -module.exports = { - entry: { - 'imask': './src/imask.js', - 'imask.min': './src/imask.js' - }, - devtool: 'source-map', - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].js', - libraryTarget: 'umd', - umdNamedDefine: true - }, - module: { - loaders: [{ - test: /\.js$/, - include: /src/, - loader: 'babel-loader' - }] - }, - plugins: [ - new webpack.optimize.UglifyJsPlugin({ - include: /\.min\.js$/, - sourceMap: true - }) - ] -}