vendor: 3,594 bytes, lines 1-88
1/******/ (function(modules) { // webpackBootstrap 2/******/ // The module cache 3/******/ var installedModules = {}; 4/******/ 5/******/ // The require function 6/******/ function __webpack_require__(moduleId) { 7/******/ 8/******/ // Check if module is in cache 9/******/ if(installedModules[moduleId]) { 10/******/ return installedModules[moduleId].exports; 11/******/ } 12/******/ // Create a new module (and put it into the cache) 13/******/ var module = installedModules[moduleId] = { 14/******/ i: moduleId, 15/******/ l: false, 16/******/ exports: {} 17/******/ }; 18/******/ 19/******/ // Execute the module function 20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21/******/ 22/******/ // Flag the module as loaded 23/******/ module.l = true; 24/******/ 25/******/ // Return the exports of the module 26/******/ return module.exports; 27/******/ } 28/******/ 29/******/ 30/******/ // expose the modules object (__webpack_modules__) 31/******/ __webpack_require__.m = modules; 32/******/ 33/******/ // expose the module cache 34/******/ __webpack_require__.c = installedModules; 35/******/ 36/******/ // define getter function for harmony exports 37/******/ __webpack_require__.d = function(exports, name, getter) { 38/******/ if(!__webpack_require__.o(exports, name)) { 39/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40/******/ } 41/******/ }; 42/******/ 43/******/ // define __esModule on exports 44/******/ __webpack_require__.r = function(exports) { 45/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47/******/ } 48/******/ Object.defineProperty(exports, '__esModule', { value: true }); 49/******/ }; 50/******/ 51/******/ // create a fake namespace object 52/******/ // mode & 1: value is a module id, require it 53/******/ // mode & 2: merge all properties of value into the ns 54/******/ // mode & 4: return value when already ns object 55/******/ // mode & 8|1: behave like require 56/******/ __webpack_require__.t = function(value, mode) { 57/******/ if(mode & 1) value = __webpack_require__(value); 58/******/ if(mode & 8) return value; 59/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60/******/ var ns = Object.create(null); 61/******/ __webpack_require__.r(ns); 62/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64/******/ return ns; 65/******/ }; 66/******/ 67/******/ // getDefaultExport function for compatibility with non-harmony modules 68/******/ __webpack_require__.n = function(module) { 69/******/ var getter = module && module.__esModule ? 70/******/ function getDefault() { return module['default']; } : 71/******/ function getModuleExports() { return module; }; 72/******/ __webpack_require__.d(getter, 'a', getter); 73/******/ return getter; 74/******/ }; 75/******/ 76/******/ // Object.prototype.hasOwnProperty.call 77/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78/******/ 79/******/ // __webpack_public_path__ 80/******/ __webpack_require__.p = ""; 81/******/ 82/******/ 83/******/ // Load entry module and return exports 84/******/ return __webpack_require__(__webpack_require__.s = 0); 85/******/ }) 86/************************************************************************/ 87/******/ ({ 88
vendor: 95,331 bytes, lines 89-100
89/***/ "./node_modules/@glidejs/glide/dist/glide.esm.js": 90/*!*******************************************************!*\ 91 !*** ./node_modules/@glidejs/glide/dist/glide.esm.js ***! 92 \*******************************************************/ 93/*! exports provided: default */ 94/***/ (function(module, __webpack_exports__, __webpack_require__) { 95 96"use strict"; 97eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Glide; });\n/*!\n * Glide.js v3.7.1\n * (c) 2013-2024 JÄdrzej ChaÅubek (https://github.com/jedrzejchalubek/)\n * Released under the MIT License.\n */\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}\n\nvar defaults = {\n /**\n * Type of the movement.\n *\n * Available types:\n * `slider` - Rewinds slider to the start/end when it reaches the first or last slide.\n * `carousel` - Changes slides without starting over when it reaches the first or last slide.\n *\n * @type {String}\n */\n type: 'slider',\n\n /**\n * Start at specific slide number defined with zero-based index.\n *\n * @type {Number}\n */\n startAt: 0,\n\n /**\n * A number of slides visible on the single viewport.\n *\n * @type {Number}\n */\n perView: 1,\n\n /**\n * Focus currently active slide at a specified position in the track.\n *\n * Available inputs:\n * `center` - Current slide will be always focused at the center of a track.\n * `0,1,2,3...` - Current slide will be focused on the specified zero-based index.\n *\n * @type {String|Number}\n */\n focusAt: 0,\n\n /**\n * A size of the gap added between slides.\n *\n * @type {Number}\n */\n gap: 10,\n\n /**\n * Change slides after a specified interval. Use `false` for turning off autoplay.\n *\n * @type {Number|Boolean}\n */\n autoplay: false,\n\n /**\n * Stop autoplay on mouseover event.\n *\n * @type {Boolean}\n */\n hoverpause: true,\n\n /**\n * Allow for changing slides with left and right keyboard arrows.\n *\n * @type {Boolean}\n */\n keyboard: true,\n\n /**\n * Stop running `perView` number of slides from the end. Use this\n * option if you don't want to have an empty space after\n * a slider. Works only with `slider` type and a\n * non-centered `focusAt` setting.\n *\n * @type {Boolean}\n */\n bound: false,\n\n /**\n * Minimal swipe distance needed to change the slide. Use `false` for turning off a swiping.\n *\n * @type {Number|Boolean}\n */\n swipeThreshold: 80,\n\n /**\n * Minimal mouse drag distance needed to change the slide. Use `false` for turning off a dragging.\n *\n * @type {Number|Boolean}\n */\n dragThreshold: 120,\n\n /**\n * A number of slides moved on single swipe.\n *\n * Available types:\n * `` - Moves slider by one slide per swipe\n * `|` - Moves slider between views per swipe (number of slides defined in `perView` options)\n *\n * @type {String}\n */\n perSwipe: '',\n\n /**\n * Moving distance ratio of the slides on a swiping and dragging.\n *\n * @type {Number}\n */\n touchRatio: 0.5,\n\n /**\n * Angle required to activate slides moving on swiping or dragging.\n *\n * @type {Number}\n */\n touchAngle: 45,\n\n /**\n * Duration of the animation in milliseconds.\n *\n * @type {Number}\n */\n animationDuration: 400,\n\n /**\n * Allows looping the `slider` type. Slider will rewind to the first/last slide when it's at the start/end.\n *\n * @type {Boolean}\n */\n rewind: true,\n\n /**\n * Duration of the rewinding animation of the `slider` type in milliseconds.\n *\n * @type {Number}\n */\n rewindDuration: 800,\n\n /**\n * Easing function for the animation.\n *\n * @type {String}\n */\n animationTimingFunc: 'cubic-bezier(.165, .840, .440, 1)',\n\n /**\n * Wait for the animation to finish until the next user input can be processed\n *\n * @type {boolean}\n */\n waitForTransition: true,\n\n /**\n * Throttle costly events at most once per every wait milliseconds.\n *\n * @type {Number}\n */\n throttle: 10,\n\n /**\n * Moving direction mode.\n *\n * Available inputs:\n * - 'ltr' - left to right movement,\n * - 'rtl' - right to left movement.\n *\n * @type {String}\n */\n direction: 'ltr',\n\n /**\n * The distance value of the next and previous viewports which\n * have to peek in the current view. Accepts number and\n * pixels as a string. Left and right peeking can be\n * set up separately with a directions object.\n *\n * For example:\n * `100` - Peek 100px on the both sides.\n * { before: 100, after: 50 }` - Peek 100px on the left side and 50px on the right side.\n *\n * @type {Number|String|Object}\n */\n peek: 0,\n\n /**\n * Defines how many clones of current viewport will be generated.\n *\n * @type {Number}\n */\n cloningRatio: 1,\n\n /**\n * Collection of options applied at specified media breakpoints.\n * For example: display two slides per view under 800px.\n * `{\n * '800px': {\n * perView: 2\n * }\n * }`\n */\n breakpoints: {},\n\n /**\n * Collection of internally used HTML classes.\n *\n * @todo Refactor `slider` and `carousel` properties to single `type: { slider: '', carousel: '' }` object\n * @type {Object}\n */\n classes: {\n swipeable: 'glide--swipeable',\n dragging: 'glide--dragging',\n direction: {\n ltr: 'glide--ltr',\n rtl: 'glide--rtl'\n },\n type: {\n slider: 'glide--slider',\n carousel: 'glide--carousel'\n },\n slide: {\n clone: 'glide__slide--clone',\n active: 'glide__slide--active'\n },\n arrow: {\n disabled: 'glide__arrow--disabled'\n },\n nav: {\n active: 'glide__bullet--active'\n }\n }\n};\n\n/**\n * Outputs warning message to the bowser console.\n *\n * @param {String} msg\n * @return {Void}\n */\nfunction warn(msg) {\n console.error(\"[Glide warn]: \".concat(msg));\n}\n\n/**\n * Converts value entered as number\n * or string to integer value.\n *\n * @param {String} value\n * @returns {Number}\n */\nfunction toInt(value) {\n return parseInt(value);\n}\n/**\n * Converts value entered as number\n * or string to flat value.\n *\n * @param {String} value\n * @returns {Number}\n */\n\nfunction toFloat(value) {\n return parseFloat(value);\n}\n/**\n * Indicates whether the specified value is a string.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Indicates whether the specified value is an object.\n *\n * @param {*} value\n * @return {Boolean}\n *\n * @see https://github.com/jashkenas/underscore\n */\n\nfunction isObject(value) {\n var type = _typeof(value);\n\n return type === 'function' || type === 'object' && !!value; // eslint-disable-line no-mixed-operators\n}\n/**\n * Indicates whether the specified value is a function.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Indicates whether the specified value is undefined.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n/**\n * Indicates whether the specified value is an array.\n *\n * @param {*} value\n * @return {Boolean}\n */\n\nfunction isArray(value) {\n return value.constructor === Array;\n}\n\n/**\n * Creates and initializes specified collection of extensions.\n * Each extension receives access to instance of glide and rest of components.\n *\n * @param {Object} glide\n * @param {Object} extensions\n *\n * @returns {Object}\n */\n\nfunction mount(glide, extensions, events) {\n var components = {};\n\n for (var name in extensions) {\n if (isFunction(extensions[name])) {\n components[name] = extensions[name](glide, components, events);\n } else {\n warn('Extension must be a function');\n }\n }\n\n for (var _name in components) {\n if (isFunction(components[_name].mount)) {\n components[_name].mount();\n }\n }\n\n return components;\n}\n\n/**\n * Defines getter and setter property on the specified object.\n *\n * @param {Object} obj Object where property has to be defined.\n * @param {String} prop Name of the defined property.\n * @param {Object} definition Get and set definitions for the property.\n * @return {Void}\n */\nfunction define(obj, prop, definition) {\n Object.defineProperty(obj, prop, definition);\n}\n/**\n * Sorts aphabetically object keys.\n *\n * @param {Object} obj\n * @return {Object}\n */\n\nfunction sortKeys(obj) {\n return Object.keys(obj).sort().reduce(function (r, k) {\n r[k] = obj[k];\n return r[k], r;\n }, {});\n}\n/**\n * Merges passed settings object with default options.\n *\n * @param {Object} defaults\n * @param {Object} settings\n * @return {Object}\n */\n\nfunction mergeOptions(defaults, settings) {\n var options = Object.assign({}, defaults, settings); // `Object.assign` do not deeply merge objects, so we\n // have to do it manually for every nested object\n // in options. Although it does not look smart,\n // it's smaller and faster than some fancy\n // merging deep-merge algorithm script.\n\n if (settings.hasOwnProperty('classes')) {\n options.classes = Object.assign({}, defaults.classes, settings.classes);\n var properties = ['direction', 'type', 'slide', 'arrow', 'nav'];\n properties.forEach(function (property) {\n if (settings.classes.hasOwnProperty(property)) {\n options.classes[property] = _objectSpread2(_objectSpread2({}, defaults.classes[property]), settings.classes[property]);\n }\n });\n }\n\n if (settings.hasOwnProperty('breakpoints')) {\n options.breakpoints = Object.assign({}, defaults.breakpoints, settings.breakpoints);\n }\n\n return options;\n}\n\nvar EventsBus = /*#__PURE__*/function () {\n /**\n * Construct a EventBus instance.\n *\n * @param {Object} events\n */\n function EventsBus() {\n var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, EventsBus);\n\n this.events = events;\n this.hop = events.hasOwnProperty;\n }\n /**\n * Adds listener to the specifed event.\n *\n * @param {String|Array} event\n * @param {Function} handler\n */\n\n\n _createClass(EventsBus, [{\n key: \"on\",\n value: function on(event, handler) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.on(event[i], handler);\n }\n\n return;\n } // Create the event's object if not yet created\n\n\n if (!this.hop.call(this.events, event)) {\n this.events[event] = [];\n } // Add the handler to queue\n\n\n var index = this.events[event].push(handler) - 1; // Provide handle back for removal of event\n\n return {\n remove: function remove() {\n delete this.events[event][index];\n }\n };\n }\n /**\n * Runs registered handlers for specified event.\n *\n * @param {String|Array} event\n * @param {Object=} context\n */\n\n }, {\n key: \"emit\",\n value: function emit(event, context) {\n if (isArray(event)) {\n for (var i = 0; i < event.length; i++) {\n this.emit(event[i], context);\n }\n\n return;\n } // If the event doesn't exist, or there's no handlers in queue, just leave\n\n\n if (!this.hop.call(this.events, event)) {\n return;\n } // Cycle through events queue, fire!\n\n\n this.events[event].forEach(function (item) {\n item(context || {});\n });\n }\n }]);\n\n return EventsBus;\n}();\n\nvar Glide$1 = /*#__PURE__*/function () {\n /**\r\n * Construct glide.\r\n *\r\n * @param {String} selector\r\n * @param {Object} options\r\n */\n function Glide(selector) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Glide);\n\n this._c = {};\n this._t = [];\n this._e = new EventsBus();\n this.disabled = false;\n this.selector = selector;\n this.settings = mergeOptions(defaults, options);\n this.index = this.settings.startAt;\n }\n /**\r\n * Initializes glide.\r\n *\r\n * @param {Object} extensions Collection of extensions to initialize.\r\n * @return {Glide}\r\n */\n\n\n _createClass(Glide, [{\n key: \"mount\",\n value: function mount$1() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._e.emit('mount.before');\n\n if (isObject(extensions)) {\n this._c = mount(this, extensions, this._e);\n } else {\n warn('You need to provide a object on `mount()`');\n }\n\n this._e.emit('mount.after');\n\n return this;\n }\n /**\r\n * Collects an instance `translate` transformers.\r\n *\r\n * @param {Array} transformers Collection of transformers.\r\n * @return {Void}\r\n */\n\n }, {\n key: \"mutate\",\n value: function mutate() {\n var transformers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (isArray(transformers)) {\n this._t = transformers;\n } else {\n warn('You need to provide a array on `mutate()`');\n }\n\n return this;\n }\n /**\r\n * Updates glide with specified settings.\r\n *\r\n * @param {Object} settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"update\",\n value: function update() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.settings = mergeOptions(this.settings, settings);\n\n if (settings.hasOwnProperty('startAt')) {\n this.index = settings.startAt;\n }\n\n this._e.emit('update');\n\n return this;\n }\n /**\r\n * Change slide with specified pattern. A pattern must be in the special format:\r\n * `>` - Move one forward\r\n * `<` - Move one backward\r\n * `={i}` - Go to {i} zero-based slide (eq. '=1', will go to second slide)\r\n * `>>` - Rewinds to end (last slide)\r\n * `<<` - Rewinds to start (first slide)\r\n * `|>` - Move one viewport forward\r\n * `|<` - Move one viewport backward\r\n *\r\n * @param {String} pattern\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"go\",\n value: function go(pattern) {\n this._c.Run.make(pattern);\n\n return this;\n }\n /**\r\n * Move track by specified distance.\r\n *\r\n * @param {String} distance\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"move\",\n value: function move(distance) {\n this._c.Transition.disable();\n\n this._c.Move.make(distance);\n\n return this;\n }\n /**\r\n * Destroy instance and revert all changes done by this._c.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._e.emit('destroy');\n\n return this;\n }\n /**\r\n * Start instance autoplaying.\r\n *\r\n * @param {Boolean|Number} interval Run autoplaying with passed interval regardless of `autoplay` settings\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"play\",\n value: function play() {\n var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (interval) {\n this.settings.autoplay = interval;\n }\n\n this._e.emit('play');\n\n return this;\n }\n /**\r\n * Stop instance autoplaying.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n this._e.emit('pause');\n\n return this;\n }\n /**\r\n * Sets glide into a idle status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"disable\",\n value: function disable() {\n this.disabled = true;\n return this;\n }\n /**\r\n * Sets glide into a active status.\r\n *\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"enable\",\n value: function enable() {\n this.disabled = false;\n return this;\n }\n /**\r\n * Adds cuutom event listener with handler.\r\n *\r\n * @param {String|Array} event\r\n * @param {Function} handler\r\n * @return {Glide}\r\n */\n\n }, {\n key: \"on\",\n value: function on(event, handler) {\n this._e.on(event, handler);\n\n return this;\n }\n /**\r\n * Checks if glide is a precised type.\r\n *\r\n * @param {String} name\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"isType\",\n value: function isType(name) {\n return this.settings.type === name;\n }\n /**\r\n * Gets value of the core options.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: \"settings\",\n get: function get() {\n return this._o;\n }\n /**\r\n * Sets value of the core options.\r\n *\r\n * @param {Object} o\r\n * @return {Void}\r\n */\n ,\n set: function set(o) {\n if (isObject(o)) {\n this._o = o;\n } else {\n warn('Options must be an `object` instance.');\n }\n }\n /**\r\n * Gets current index of the slider.\r\n *\r\n * @return {Object}\r\n */\n\n }, {\n key: \"index\",\n get: function get() {\n return this._i;\n }\n /**\r\n * Sets current index a slider.\r\n *\r\n * @return {Object}\r\n */\n ,\n set: function set(i) {\n this._i = toInt(i);\n }\n /**\r\n * Gets type name of the slider.\r\n *\r\n * @return {String}\r\n */\n\n }, {\n key: \"type\",\n get: function get() {\n return this.settings.type;\n }\n /**\r\n * Gets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"disabled\",\n get: function get() {\n return this._d;\n }\n /**\r\n * Sets value of the idle status.\r\n *\r\n * @return {Boolean}\r\n */\n ,\n set: function set(status) {\n this._d = !!status;\n }\n }]);\n\n return Glide;\n}();\n\nfunction Run (Glide, Components, Events) {\n var Run = {\n /**\n * Initializes autorunning of the glide.\n *\n * @return {Void}\n */\n mount: function mount() {\n this._o = false;\n },\n\n /**\n * Makes glides running based on the passed moving schema.\n *\n * @param {String} move\n */\n make: function make(move) {\n var _this = this;\n\n if (!Glide.disabled) {\n !Glide.settings.waitForTransition || Glide.disable();\n this.move = move;\n Events.emit('run.before', this.move);\n this.calculate();\n Events.emit('run', this.move);\n Components.Transition.after(function () {\n if (_this.isStart()) {\n Events.emit('run.start', _this.move);\n }\n\n if (_this.isEnd()) {\n Events.emit('run.end', _this.move);\n }\n\n if (_this.isOffset()) {\n _this._o = false;\n Events.emit('run.offset', _this.move);\n }\n\n Events.emit('run.after', _this.move);\n Glide.enable();\n });\n }\n },\n\n /**\n * Calculates current index based on defined move.\n *\n * @return {Number|Undefined}\n */\n calculate: function calculate() {\n var move = this.move,\n length = this.length;\n var steps = move.steps,\n direction = move.direction; // By default assume that size of view is equal to one slide\n\n var viewSize = 1; // While direction is `=` we want jump to\n // a specified index described in steps.\n\n if (direction === '=') {\n // Check if bound is true, \n // as we want to avoid whitespaces.\n if (Glide.settings.bound && toInt(steps) > length) {\n Glide.index = length;\n return;\n }\n\n Glide.index = steps;\n return;\n } // When pattern is equal to `>>` we want\n // fast forward to the last slide.\n\n\n if (direction === '>' && steps === '>') {\n Glide.index = length;\n return;\n } // When pattern is equal to `<<` we want\n // fast forward to the first slide.\n\n\n if (direction === '<' && steps === '<') {\n Glide.index = 0;\n return;\n } // pagination movement\n\n\n if (direction === '|') {\n viewSize = Glide.settings.perView || 1;\n } // we are moving forward\n\n\n if (direction === '>' || direction === '|' && steps === '>') {\n var index = calculateForwardIndex(viewSize);\n\n if (index > length) {\n this._o = true;\n }\n\n Glide.index = normalizeForwardIndex(index, viewSize);\n return;\n } // we are moving backward\n\n\n if (direction === '<' || direction === '|' && steps === '<') {\n var _index = calculateBackwardIndex(viewSize);\n\n if (_index < 0) {\n this._o = true;\n }\n\n Glide.index = normalizeBackwardIndex(_index, viewSize);\n return;\n }\n\n warn(\"Invalid direction pattern [\".concat(direction).concat(steps, \"] has been used\"));\n },\n\n /**\n * Checks if we are on the first slide.\n *\n * @return {Boolean}\n */\n isStart: function isStart() {\n return Glide.index <= 0;\n },\n\n /**\n * Checks if we are on the last slide.\n *\n * @return {Boolean}\n */\n isEnd: function isEnd() {\n return Glide.index >= this.length;\n },\n\n /**\n * Checks if we are making a offset run.\n *\n * @param {String} direction\n * @return {Boolean}\n */\n isOffset: function isOffset() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n if (!direction) {\n return this._o;\n }\n\n if (!this._o) {\n return false;\n } // did we view to the right?\n\n\n if (direction === '|>') {\n return this.move.direction === '|' && this.move.steps === '>';\n } // did we view to the left?\n\n\n if (direction === '|<') {\n return this.move.direction === '|' && this.move.steps === '<';\n }\n\n return this.move.direction === direction;\n },\n\n /**\n * Checks if bound mode is active\n *\n * @return {Boolean}\n */\n isBound: function isBound() {\n return Glide.isType('slider') && Glide.settings.focusAt !== 'center' && Glide.settings.bound;\n }\n };\n /**\n * Returns index value to move forward/to the right\n *\n * @param viewSize\n * @returns {Number}\n */\n\n function calculateForwardIndex(viewSize) {\n var index = Glide.index;\n\n if (Glide.isType('carousel')) {\n return index + viewSize;\n }\n\n return index + (viewSize - index % viewSize);\n }\n /**\n * Normalizes the given forward index based on glide settings, preventing it to exceed certain boundaries\n *\n * @param index\n * @param length\n * @param viewSize\n * @returns {Number}\n */\n\n\n function normalizeForwardIndex(index, viewSize) {\n var length = Run.length;\n\n if (index <= length) {\n return index;\n }\n\n if (Glide.isType('carousel')) {\n return index - (length + 1);\n }\n\n if (Glide.settings.rewind) {\n // bound does funny things with the length, therefor we have to be certain\n // that we are on the last possible index value given by bound\n if (Run.isBound() && !Run.isEnd()) {\n return length;\n }\n\n return 0;\n }\n\n if (Run.isBound()) {\n return length;\n }\n\n return Math.floor(length / viewSize) * viewSize;\n }\n /**\n * Calculates index value to move backward/to the left\n *\n * @param viewSize\n * @returns {Number}\n */\n\n\n function calculateBackwardIndex(viewSize) {\n var index = Glide.index;\n\n if (Glide.isType('carousel')) {\n return index - viewSize;\n } // ensure our back navigation results in the same index as a forward navigation\n // to experience a homogeneous paging\n\n\n var view = Math.ceil(index / viewSize);\n return (view - 1) * viewSize;\n }\n /**\n * Normalizes the given backward index based on glide settings, preventing it to exceed certain boundaries\n *\n * @param index\n * @param length\n * @param viewSize\n * @returns {*}\n */\n\n\n function normalizeBackwardIndex(index, viewSize) {\n var length = Run.length;\n\n if (index >= 0) {\n return index;\n }\n\n if (Glide.isType('carousel')) {\n return index + (length + 1);\n }\n\n if (Glide.settings.rewind) {\n // bound does funny things with the length, therefor we have to be certain\n // that we are on first possible index value before we to rewind to the length given by bound\n if (Run.isBound() && Run.isStart()) {\n return length;\n }\n\n return Math.floor(length / viewSize) * viewSize;\n }\n\n return 0;\n }\n\n define(Run, 'move', {\n /**\n * Gets value of the move schema.\n *\n * @returns {Object}\n */\n get: function get() {\n return this._m;\n },\n\n /**\n * Sets value of the move schema.\n *\n * @returns {Object}\n */\n set: function set(value) {\n var step = value.substr(1);\n this._m = {\n direction: value.substr(0, 1),\n steps: step ? toInt(step) ? toInt(step) : step : 0\n };\n }\n });\n define(Run, 'length', {\n /**\n * Gets value of the running distance based\n * on zero-indexing number of slides.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n var length = Components.Html.slides.length; // If the `bound` option is active, a maximum running distance should be\n // reduced by `perView` and `focusAt` settings. Running distance\n // should end before creating an empty space after instance.\n\n if (this.isBound()) {\n return length - 1 - (toInt(settings.perView) - 1) + toInt(settings.focusAt);\n }\n\n return length - 1;\n }\n });\n define(Run, 'offset', {\n /**\n * Gets status of the offsetting flag.\n *\n * @return {Boolean}\n */\n get: function get() {\n return this._o;\n }\n });\n return Run;\n}\n\n/**\n * Returns a current time.\n *\n * @return {Number}\n */\nfunction now() {\n return new Date().getTime();\n}\n\n/**\n * Returns a function, that, when invoked, will only be triggered\n * at most once during a given window of time.\n *\n * @param {Function} func\n * @param {Number} wait\n * @param {Object=} options\n * @return {Function}\n *\n * @see https://github.com/jashkenas/underscore\n */\n\nfunction throttle(func, wait) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var timeout, context, args, result;\n var previous = 0;\n\n var later = function later() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function throttled() {\n var at = now();\n if (!previous && options.leading === false) previous = at;\n var remaining = wait - (at - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = at;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n\n throttled.cancel = function () {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\nvar MARGIN_TYPE = {\n ltr: ['marginLeft', 'marginRight'],\n rtl: ['marginRight', 'marginLeft']\n};\nfunction Gaps (Glide, Components, Events) {\n var Gaps = {\n /**\n * Applies gaps between slides. First and last\n * slides do not receive it's edge margins.\n *\n * @param {HTMLCollection} slides\n * @return {Void}\n */\n apply: function apply(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n var direction = Components.Direction.value;\n\n if (i !== 0) {\n style[MARGIN_TYPE[direction][0]] = \"\".concat(this.value / 2, \"px\");\n } else {\n style[MARGIN_TYPE[direction][0]] = '';\n }\n\n if (i !== slides.length - 1) {\n style[MARGIN_TYPE[direction][1]] = \"\".concat(this.value / 2, \"px\");\n } else {\n style[MARGIN_TYPE[direction][1]] = '';\n }\n }\n },\n\n /**\n * Removes gaps from the slides.\n *\n * @param {HTMLCollection} slides\n * @returns {Void}\n */\n remove: function remove(slides) {\n for (var i = 0, len = slides.length; i < len; i++) {\n var style = slides[i].style;\n style.marginLeft = '';\n style.marginRight = '';\n }\n }\n };\n define(Gaps, 'value', {\n /**\n * Gets value of the gap.\n *\n * @returns {Number}\n */\n get: function get() {\n return toInt(Glide.settings.gap);\n }\n });\n define(Gaps, 'grow', {\n /**\n * Gets additional dimensions value caused by gaps.\n * Used to increase width of the slides wrapper.\n *\n * @returns {Number}\n */\n get: function get() {\n return Gaps.value * Components.Sizes.length;\n }\n });\n define(Gaps, 'reductor', {\n /**\n * Gets reduction value caused by gaps.\n * Used to subtract width of the slides.\n *\n * @returns {Number}\n */\n get: function get() {\n var perView = Glide.settings.perView;\n return Gaps.value * (perView - 1) / perView;\n }\n });\n /**\n * Apply calculated gaps:\n * - after building, so slides (including clones) will receive proper margins\n * - on updating via API, to recalculate gaps with new options\n */\n\n Events.on(['build.after', 'update'], throttle(function () {\n Gaps.apply(Components.Html.wrapper.children);\n }, 30));\n /**\n * Remove gaps:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Gaps.remove(Components.Html.wrapper.children);\n });\n return Gaps;\n}\n\n/**\n * Finds siblings nodes of the passed node.\n *\n * @param {Element} node\n * @return {Array}\n */\nfunction siblings(node) {\n if (node && node.parentNode) {\n var n = node.parentNode.firstChild;\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== node) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n\n return [];\n}\n/**\n * Coerces a NodeList to an Array.\n *\n * @param {NodeList} nodeList\n * @return {Array}\n */\n\nfunction toArray(nodeList) {\n return Array.prototype.slice.call(nodeList);\n}\n\nvar TRACK_SELECTOR = '[data-glide-el=\"track\"]';\nfunction Html (Glide, Components, Events) {\n var Html = {\n /**\n * Setup slider HTML nodes.\n *\n * @param {Glide} glide\n */\n mount: function mount() {\n this.root = Glide.selector;\n this.track = this.root.querySelector(TRACK_SELECTOR);\n this.collectSlides();\n },\n\n /**\n * Collect slides\n */\n collectSlides: function collectSlides() {\n this.slides = toArray(this.wrapper.children).filter(function (slide) {\n return !slide.classList.contains(Glide.settings.classes.slide.clone);\n });\n }\n };\n define(Html, 'root', {\n /**\n * Gets node of the glide main element.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._r;\n },\n\n /**\n * Sets node of the glide main element.\n *\n * @return {Object}\n */\n set: function set(r) {\n if (isString(r)) {\n r = document.querySelector(r);\n }\n\n if (r !== null) {\n Html._r = r;\n } else {\n warn('Root element must be a existing Html node');\n }\n }\n });\n define(Html, 'track', {\n /**\n * Gets node of the glide track with slides.\n *\n * @return {Object}\n */\n get: function get() {\n return Html._t;\n },\n\n /**\n * Sets node of the glide track with slides.\n *\n * @return {Object}\n */\n set: function set(t) {\n Html._t = t;\n }\n });\n define(Html, 'wrapper', {\n /**\n * Gets node of the slides wrapper.\n *\n * @return {Object}\n */\n get: function get() {\n return Html.track.children[0];\n }\n });\n /**\n * Add/remove/reorder dynamic slides\n */\n\n Events.on('update', function () {\n Html.collectSlides();\n });\n return Html;\n}\n\nfunction Peek (Glide, Components, Events) {\n var Peek = {\n /**\n * Setups how much to peek based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.peek;\n }\n };\n define(Peek, 'value', {\n /**\n * Gets value of the peek.\n *\n * @returns {Number|Object}\n */\n get: function get() {\n return Peek._v;\n },\n\n /**\n * Sets value of the peek.\n *\n * @param {Number|Object} value\n * @return {Void}\n */\n set: function set(value) {\n if (isObject(value)) {\n value.before = toInt(value.before);\n value.after = toInt(value.after);\n } else {\n value = toInt(value);\n }\n\n Peek._v = value;\n }\n });\n define(Peek, 'reductor', {\n /**\n * Gets reduction value caused by peek.\n *\n * @returns {Number}\n */\n get: function get() {\n var value = Peek.value;\n var perView = Glide.settings.perView;\n\n if (isObject(value)) {\n return value.before / perView + value.after / perView;\n }\n\n return value * 2 / perView;\n }\n });\n /**\n * Recalculate peeking sizes on:\n * - when resizing window to update to proper percents\n */\n\n Events.on(['resize', 'update'], function () {\n Peek.mount();\n });\n return Peek;\n}\n\nfunction Move (Glide, Components, Events) {\n var Move = {\n /**\n * Constructs move component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n this._o = 0;\n },\n\n /**\n * Calculates a movement value based on passed offset and currently active index.\n *\n * @param {Number} offset\n * @return {Void}\n */\n make: function make() {\n var _this = this;\n\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n this.offset = offset;\n Events.emit('move', {\n movement: this.value\n });\n Components.Transition.after(function () {\n Events.emit('move.after', {\n movement: _this.value\n });\n });\n }\n };\n define(Move, 'offset', {\n /**\n * Gets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n get: function get() {\n return Move._o;\n },\n\n /**\n * Sets an offset value used to modify current translate.\n *\n * @return {Object}\n */\n set: function set(value) {\n Move._o = !isUndefined(value) ? toInt(value) : 0;\n }\n });\n define(Move, 'translate', {\n /**\n * Gets a raw movement value.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Sizes.slideWidth * Glide.index;\n }\n });\n define(Move, 'value', {\n /**\n * Gets an actual movement value corrected by offset.\n *\n * @return {Number}\n */\n get: function get() {\n var offset = this.offset;\n var translate = this.translate;\n\n if (Components.Direction.is('rtl')) {\n return translate + offset;\n }\n\n return translate - offset;\n }\n });\n /**\n * Make movement to proper slide on:\n * - before build, so glide will start at `startAt` index\n * - on each standard run to move to newly calculated index\n */\n\n Events.on(['build.before', 'run'], function () {\n Move.make();\n });\n return Move;\n}\n\nfunction Sizes (Glide, Components, Events) {\n var Sizes = {\n /**\n * Setups dimensions of slides.\n *\n * @return {Void}\n */\n setupSlides: function setupSlides() {\n var width = \"\".concat(this.slideWidth, \"px\");\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = width;\n }\n },\n\n /**\n * Setups dimensions of slides wrapper.\n *\n * @return {Void}\n */\n setupWrapper: function setupWrapper() {\n Components.Html.wrapper.style.width = \"\".concat(this.wrapperSize, \"px\");\n },\n\n /**\n * Removes applied styles from HTML elements.\n *\n * @returns {Void}\n */\n remove: function remove() {\n var slides = Components.Html.slides;\n\n for (var i = 0; i < slides.length; i++) {\n slides[i].style.width = '';\n }\n\n Components.Html.wrapper.style.width = '';\n }\n };\n define(Sizes, 'length', {\n /**\n * Gets count number of the slides.\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.slides.length;\n }\n });\n define(Sizes, 'width', {\n /**\n * Gets width value of the slider (visible area).\n *\n * @return {Number}\n */\n get: function get() {\n return Components.Html.track.offsetWidth;\n }\n });\n define(Sizes, 'wrapperSize', {\n /**\n * Gets size of the slides wrapper.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.slideWidth * Sizes.length + Components.Gaps.grow + Components.Clones.grow;\n }\n });\n define(Sizes, 'slideWidth', {\n /**\n * Gets width value of a single slide.\n *\n * @return {Number}\n */\n get: function get() {\n return Sizes.width / Glide.settings.perView - Components.Peek.reductor - Components.Gaps.reductor;\n }\n });\n /**\n * Apply calculated glide's dimensions:\n * - before building, so other dimensions (e.g. translate) will be calculated propertly\n * - when resizing window to recalculate sildes dimensions\n * - on updating via API, to calculate dimensions based on new options\n */\n\n Events.on(['build.before', 'resize', 'update'], function () {\n Sizes.setupSlides();\n Sizes.setupWrapper();\n });\n /**\n * Remove calculated glide's dimensions:\n * - on destoting to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Sizes.remove();\n });\n return Sizes;\n}\n\nfunction Build (Glide, Components, Events) {\n var Build = {\n /**\n * Init glide building. Adds classes, sets\n * dimensions and setups initial state.\n *\n * @return {Void}\n */\n mount: function mount() {\n Events.emit('build.before');\n this.typeClass();\n this.activeClass();\n Events.emit('build.after');\n },\n\n /**\n * Adds `type` class to the glide element.\n *\n * @return {Void}\n */\n typeClass: function typeClass() {\n Components.Html.root.classList.add(Glide.settings.classes.type[Glide.settings.type]);\n },\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n activeClass: function activeClass() {\n var classes = Glide.settings.classes;\n var slide = Components.Html.slides[Glide.index];\n\n if (slide) {\n slide.classList.add(classes.slide.active);\n siblings(slide).forEach(function (sibling) {\n sibling.classList.remove(classes.slide.active);\n });\n }\n },\n\n /**\n * Removes HTML classes applied at building.\n *\n * @return {Void}\n */\n removeClasses: function removeClasses() {\n var _Glide$settings$class = Glide.settings.classes,\n type = _Glide$settings$class.type,\n slide = _Glide$settings$class.slide;\n Components.Html.root.classList.remove(type[Glide.settings.type]);\n Components.Html.slides.forEach(function (sibling) {\n sibling.classList.remove(slide.active);\n });\n }\n };\n /**\n * Clear building classes:\n * - on destroying to bring HTML to its initial state\n * - on updating to remove classes before remounting component\n */\n\n Events.on(['destroy', 'update'], function () {\n Build.removeClasses();\n });\n /**\n * Remount component:\n * - on resizing of the window to calculate new dimensions\n * - on updating settings via API\n */\n\n Events.on(['resize', 'update'], function () {\n Build.mount();\n });\n /**\n * Swap active class of current slide:\n * - after each move to the new index\n */\n\n Events.on('move.after', function () {\n Build.activeClass();\n });\n return Build;\n}\n\nfunction Clones (Glide, Components, Events) {\n var Clones = {\n /**\n * Create pattern map and collect slides to be cloned.\n */\n mount: function mount() {\n this.items = [];\n\n if (Glide.isType('carousel')) {\n this.items = this.collect();\n }\n },\n\n /**\n * Collect clones with pattern.\n *\n * @return {[]}\n */\n collect: function collect() {\n var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var slides = Components.Html.slides;\n var _Glide$settings = Glide.settings,\n perView = _Glide$settings.perView,\n classes = _Glide$settings.classes,\n cloningRatio = _Glide$settings.cloningRatio;\n\n if (slides.length > 0) {\n var peekIncrementer = +!!Glide.settings.peek;\n var cloneCount = perView + peekIncrementer + Math.round(perView / 2);\n var append = slides.slice(0, cloneCount).reverse();\n var prepend = slides.slice(cloneCount * -1);\n\n for (var r = 0; r < Math.max(cloningRatio, Math.floor(perView / slides.length)); r++) {\n for (var i = 0; i < append.length; i++) {\n var clone = append[i].cloneNode(true);\n clone.classList.add(classes.slide.clone);\n items.push(clone);\n }\n\n for (var _i = 0; _i < prepend.length; _i++) {\n var _clone = prepend[_i].cloneNode(true);\n\n _clone.classList.add(classes.slide.clone);\n\n items.unshift(_clone);\n }\n }\n }\n\n return items;\n },\n\n /**\n * Append cloned slides with generated pattern.\n *\n * @return {Void}\n */\n append: function append() {\n var items = this.items;\n var _Components$Html = Components.Html,\n wrapper = _Components$Html.wrapper,\n slides = _Components$Html.slides;\n var half = Math.floor(items.length / 2);\n var prepend = items.slice(0, half).reverse();\n var append = items.slice(half * -1).reverse();\n var width = \"\".concat(Components.Sizes.slideWidth, \"px\");\n\n for (var i = 0; i < append.length; i++) {\n wrapper.appendChild(append[i]);\n }\n\n for (var _i2 = 0; _i2 < prepend.length; _i2++) {\n wrapper.insertBefore(prepend[_i2], slides[0]);\n }\n\n for (var _i3 = 0; _i3 < items.length; _i3++) {\n items[_i3].style.width = width;\n }\n },\n\n /**\n * Remove all cloned slides.\n *\n * @return {Void}\n */\n remove: function remove() {\n var items = this.items;\n\n for (var i = 0; i < items.length; i++) {\n Components.Html.wrapper.removeChild(items[i]);\n }\n }\n };\n define(Clones, 'grow', {\n /**\n * Gets additional dimensions value caused by clones.\n *\n * @return {Number}\n */\n get: function get() {\n return (Components.Sizes.slideWidth + Components.Gaps.value) * Clones.items.length;\n }\n });\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n\n Events.on('update', function () {\n Clones.remove();\n Clones.mount();\n Clones.append();\n });\n /**\n * Append additional slide's clones:\n * - while glide's type is `carousel`\n */\n\n Events.on('build.before', function () {\n if (Glide.isType('carousel')) {\n Clones.append();\n }\n });\n /**\n * Remove clones HTMLElements:\n * - on destroying, to bring HTML to its initial state\n */\n\n Events.on('destroy', function () {\n Clones.remove();\n });\n return Clones;\n}\n\nvar EventsBinder = /*#__PURE__*/function () {\n /**\n * Construct a EventsBinder instance.\n */\n function EventsBinder() {\n var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, EventsBinder);\n\n this.listeners = listeners;\n }\n /**\n * Adds events listeners to arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Function} closure\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n\n _createClass(EventsBinder, [{\n key: \"on\",\n value: function on(events, el, closure) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n this.listeners[events[i]] = closure;\n el.addEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n /**\n * Removes event listeners from arrows HTML elements.\n *\n * @param {String|Array} events\n * @param {Element|Window|Document} el\n * @param {Boolean|Object} capture\n * @return {Void}\n */\n\n }, {\n key: \"off\",\n value: function off(events, el) {\n var capture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (isString(events)) {\n events = [events];\n }\n\n for (var i = 0; i < events.length; i++) {\n el.removeEventListener(events[i], this.listeners[events[i]], capture);\n }\n }\n /**\n * Destroy collected listeners.\n *\n * @returns {Void}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n delete this.listeners;\n }\n }]);\n\n return EventsBinder;\n}();\n\nfunction Resize (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Resize = {\n /**\n * Initializes window bindings.\n */\n mount: function mount() {\n this.bind();\n },\n\n /**\n * Binds `rezsize` listener to the window.\n * It's a costly event, so we are debouncing it.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('resize', window, throttle(function () {\n Events.emit('resize');\n }, Glide.settings.throttle));\n },\n\n /**\n * Unbinds listeners from the window.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('resize', window);\n }\n };\n /**\n * Remove bindings from window:\n * - on destroying, to remove added EventListener\n */\n\n Events.on('destroy', function () {\n Resize.unbind();\n Binder.destroy();\n });\n return Resize;\n}\n\nvar VALID_DIRECTIONS = ['ltr', 'rtl'];\nvar FLIPED_MOVEMENTS = {\n '>': '<',\n '<': '>',\n '=': '='\n};\nfunction Direction (Glide, Components, Events) {\n var Direction = {\n /**\n * Setups gap value based on settings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.value = Glide.settings.direction;\n },\n\n /**\n * Resolves pattern based on direction value\n *\n * @param {String} pattern\n * @returns {String}\n */\n resolve: function resolve(pattern) {\n var token = pattern.slice(0, 1);\n\n if (this.is('rtl')) {\n return pattern.split(token).join(FLIPED_MOVEMENTS[token]);\n }\n\n return pattern;\n },\n\n /**\n * Checks value of direction mode.\n *\n * @param {String} direction\n * @returns {Boolean}\n */\n is: function is(direction) {\n return this.value === direction;\n },\n\n /**\n * Applies direction class to the root HTML element.\n *\n * @return {Void}\n */\n addClass: function addClass() {\n Components.Html.root.classList.add(Glide.settings.classes.direction[this.value]);\n },\n\n /**\n * Removes direction class from the root HTML element.\n *\n * @return {Void}\n */\n removeClass: function removeClass() {\n Components.Html.root.classList.remove(Glide.settings.classes.direction[this.value]);\n }\n };\n define(Direction, 'value', {\n /**\n * Gets value of the direction.\n *\n * @returns {Number}\n */\n get: function get() {\n return Direction._v;\n },\n\n /**\n * Sets value of the direction.\n *\n * @param {String} value\n * @return {Void}\n */\n set: function set(value) {\n if (VALID_DIRECTIONS.indexOf(value) > -1) {\n Direction._v = value;\n } else {\n warn('Direction value must be `ltr` or `rtl`');\n }\n }\n });\n /**\n * Clear direction class:\n * - on destroy to bring HTML to its initial state\n * - on update to remove class before reappling bellow\n */\n\n Events.on(['destroy', 'update'], function () {\n Direction.removeClass();\n });\n /**\n * Remount component:\n * - on update to reflect changes in direction value\n */\n\n Events.on('update', function () {\n Direction.mount();\n });\n /**\n * Apply direction class:\n * - before building to apply class for the first time\n * - on updating to reapply direction class that may changed\n */\n\n Events.on(['build.before', 'update'], function () {\n Direction.addClass();\n });\n return Direction;\n}\n\n/**\n * Reflects value of glide movement.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Rtl (Glide, Components) {\n return {\n /**\n * Negates the passed translate if glide is in RTL option.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Components.Direction.is('rtl')) {\n return -translate;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `gap` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Gap (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with number in the `gap` settings.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var multiplier = Math.floor(translate / Components.Sizes.slideWidth);\n return translate + Components.Gaps.value * multiplier;\n }\n };\n}\n\n/**\n * Updates glide movement with width of additional clones width.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Grow (Glide, Components) {\n return {\n /**\n * Adds to the passed translate width of the half of clones.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n return translate + Components.Clones.grow / 2;\n }\n };\n}\n\n/**\n * Updates glide movement with a `peek` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\n\nfunction Peeking (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with a `peek` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n if (Glide.settings.focusAt >= 0) {\n var peek = Components.Peek.value;\n\n if (isObject(peek)) {\n return translate - peek.before;\n }\n\n return translate - peek;\n }\n\n return translate;\n }\n };\n}\n\n/**\n * Updates glide movement with a `focusAt` settings.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\nfunction Focusing (Glide, Components) {\n return {\n /**\n * Modifies passed translate value with index in the `focusAt` setting.\n *\n * @param {Number} translate\n * @return {Number}\n */\n modify: function modify(translate) {\n var gap = Components.Gaps.value;\n var width = Components.Sizes.width;\n var focusAt = Glide.settings.focusAt;\n var slideWidth = Components.Sizes.slideWidth;\n\n if (focusAt === 'center') {\n return translate - (width / 2 - slideWidth / 2);\n }\n\n return translate - slideWidth * focusAt - gap * focusAt;\n }\n };\n}\n\n/**\n * Applies diffrent transformers on translate value.\n *\n * @param {Object} Glide\n * @param {Object} Components\n * @return {Object}\n */\n\nfunction mutator (Glide, Components, Events) {\n /**\n * Merge instance transformers with collection of default transformers.\n * It's important that the Rtl component be last on the list,\n * so it reflects all previous transformations.\n *\n * @type {Array}\n */\n var TRANSFORMERS = [Gap, Grow, Peeking, Focusing].concat(Glide._t, [Rtl]);\n return {\n /**\n * Piplines translate value with registered transformers.\n *\n * @param {Number} translate\n * @return {Number}\n */\n mutate: function mutate(translate) {\n for (var i = 0; i < TRANSFORMERS.length; i++) {\n var transformer = TRANSFORMERS[i];\n\n if (isFunction(transformer) && isFunction(transformer().modify)) {\n translate = transformer(Glide, Components, Events).modify(translate);\n } else {\n warn('Transformer should be a function that returns an object with `modify()` method');\n }\n }\n\n return translate;\n }\n };\n}\n\nfunction Translate (Glide, Components, Events) {\n var Translate = {\n /**\n * Sets value of translate on HTML element.\n *\n * @param {Number} value\n * @return {Void}\n */\n set: function set(value) {\n var transform = mutator(Glide, Components).mutate(value);\n var translate3d = \"translate3d(\".concat(-1 * transform, \"px, 0px, 0px)\");\n Components.Html.wrapper.style.mozTransform = translate3d; // needed for supported Firefox 10-15\n\n Components.Html.wrapper.style.webkitTransform = translate3d; // needed for supported Chrome 10-35, Safari 5.1-8, and Opera 15-22\n\n Components.Html.wrapper.style.transform = translate3d;\n },\n\n /**\n * Removes value of translate from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transform = '';\n },\n\n /**\n * @return {number}\n */\n getStartIndex: function getStartIndex() {\n var length = Components.Sizes.length;\n var index = Glide.index;\n var perView = Glide.settings.perView;\n\n if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {\n return length + (index - perView);\n } // \"modulo length\" converts an index that equals length to zero\n\n\n return (index + perView) % length;\n },\n\n /**\n * @return {number}\n */\n getTravelDistance: function getTravelDistance() {\n var travelDistance = Components.Sizes.slideWidth * Glide.settings.perView;\n\n if (Components.Run.isOffset('>') || Components.Run.isOffset('|>')) {\n // reverse travel distance so that we don't have to change subtract operations\n return travelDistance * -1;\n }\n\n return travelDistance;\n }\n };\n /**\n * Set new translate value:\n * - on move to reflect index change\n * - on updating via API to reflect possible changes in options\n */\n\n Events.on('move', function (context) {\n if (!Glide.isType('carousel') || !Components.Run.isOffset()) {\n return Translate.set(context.movement);\n }\n\n Components.Transition.after(function () {\n Events.emit('translate.jump');\n Translate.set(Components.Sizes.slideWidth * Glide.index);\n });\n var startWidth = Components.Sizes.slideWidth * Components.Translate.getStartIndex();\n return Translate.set(startWidth - Components.Translate.getTravelDistance());\n });\n /**\n * Remove translate:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Translate.remove();\n });\n return Translate;\n}\n\nfunction Transition (Glide, Components, Events) {\n /**\n * Holds inactivity status of transition.\n * When true transition is not applied.\n *\n * @type {Boolean}\n */\n var disabled = false;\n var Transition = {\n /**\n * Composes string of the CSS transition.\n *\n * @param {String} property\n * @return {String}\n */\n compose: function compose(property) {\n var settings = Glide.settings;\n\n if (disabled) {\n return \"\".concat(property, \" 0ms \").concat(settings.animationTimingFunc);\n }\n\n return \"\".concat(property, \" \").concat(this.duration, \"ms \").concat(settings.animationTimingFunc);\n },\n\n /**\n * Sets value of transition on HTML element.\n *\n * @param {String=} property\n * @return {Void}\n */\n set: function set() {\n var property = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n Components.Html.wrapper.style.transition = this.compose(property);\n },\n\n /**\n * Removes value of transition from HTML element.\n *\n * @return {Void}\n */\n remove: function remove() {\n Components.Html.wrapper.style.transition = '';\n },\n\n /**\n * Runs callback after animation.\n *\n * @param {Function} callback\n * @return {Void}\n */\n after: function after(callback) {\n setTimeout(function () {\n callback();\n }, this.duration);\n },\n\n /**\n * Enable transition.\n *\n * @return {Void}\n */\n enable: function enable() {\n disabled = false;\n this.set();\n },\n\n /**\n * Disable transition.\n *\n * @return {Void}\n */\n disable: function disable() {\n disabled = true;\n this.set();\n }\n };\n define(Transition, 'duration', {\n /**\n * Gets duration of the transition based\n * on currently running animation type.\n *\n * @return {Number}\n */\n get: function get() {\n var settings = Glide.settings;\n\n if (Glide.isType('slider') && Components.Run.offset) {\n return settings.rewindDuration;\n }\n\n return settings.animationDuration;\n }\n });\n /**\n * Set transition `style` value:\n * - on each moving, because it may be cleared by offset move\n */\n\n Events.on('move', function () {\n Transition.set();\n });\n /**\n * Disable transition:\n * - before initial build to avoid transitioning from `0` to `startAt` index\n * - while resizing window and recalculating dimensions\n * - on jumping from offset transition at start and end edges in `carousel` type\n */\n\n Events.on(['build.before', 'resize', 'translate.jump'], function () {\n Transition.disable();\n });\n /**\n * Enable transition:\n * - on each running, because it may be disabled by offset move\n */\n\n Events.on('run', function () {\n Transition.enable();\n });\n /**\n * Remove transition:\n * - on destroying to bring markup to its inital state\n */\n\n Events.on('destroy', function () {\n Transition.remove();\n });\n return Transition;\n}\n\n/**\n * Test via a getter in the options object to see\n * if the passive property is accessed.\n *\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n */\nvar supportsPassive = false;\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n} catch (e) {}\n\nvar supportsPassive$1 = supportsPassive;\n\nvar START_EVENTS = ['touchstart', 'mousedown'];\nvar MOVE_EVENTS = ['touchmove', 'mousemove'];\nvar END_EVENTS = ['touchend', 'touchcancel', 'mouseup', 'mouseleave'];\nvar MOUSE_EVENTS = ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];\nfunction Swipe (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var swipeSin = 0;\n var swipeStartX = 0;\n var swipeStartY = 0;\n var disabled = false;\n var capture = supportsPassive$1 ? {\n passive: true\n } : false;\n var Swipe = {\n /**\n * Initializes swipe bindings.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bindSwipeStart();\n },\n\n /**\n * Handler for `swipestart` event. Calculates entry points of the user's tap.\n *\n * @param {Object} event\n * @return {Void}\n */\n start: function start(event) {\n if (!disabled && !Glide.disabled) {\n this.disable();\n var swipe = this.touches(event);\n swipeSin = null;\n swipeStartX = toInt(swipe.pageX);\n swipeStartY = toInt(swipe.pageY);\n this.bindSwipeMove();\n this.bindSwipeEnd();\n Events.emit('swipe.start');\n }\n },\n\n /**\n * Handler for `swipemove` event. Calculates user's tap angle and distance.\n *\n * @param {Object} event\n */\n move: function move(event) {\n if (!Glide.disabled) {\n var _Glide$settings = Glide.settings,\n touchAngle = _Glide$settings.touchAngle,\n touchRatio = _Glide$settings.touchRatio,\n classes = _Glide$settings.classes;\n var swipe = this.touches(event);\n var subExSx = toInt(swipe.pageX) - swipeStartX;\n var subEySy = toInt(swipe.pageY) - swipeStartY;\n var powEX = Math.abs(subExSx << 2);\n var powEY = Math.abs(subEySy << 2);\n var swipeHypotenuse = Math.sqrt(powEX + powEY);\n var swipeCathetus = Math.sqrt(powEY);\n swipeSin = Math.asin(swipeCathetus / swipeHypotenuse);\n\n if (swipeSin * 180 / Math.PI < touchAngle) {\n event.stopPropagation();\n Components.Move.make(subExSx * toFloat(touchRatio));\n Components.Html.root.classList.add(classes.dragging);\n Events.emit('swipe.move');\n } else {\n return false;\n }\n }\n },\n\n /**\n * Handler for `swipeend` event. Finitializes user's tap and decides about glide move.\n *\n * @param {Object} event\n * @return {Void}\n */\n end: function end(event) {\n if (!Glide.disabled) {\n var _Glide$settings2 = Glide.settings,\n perSwipe = _Glide$settings2.perSwipe,\n touchAngle = _Glide$settings2.touchAngle,\n classes = _Glide$settings2.classes;\n var swipe = this.touches(event);\n var threshold = this.threshold(event);\n var swipeDistance = swipe.pageX - swipeStartX;\n var swipeDeg = swipeSin * 180 / Math.PI;\n this.enable();\n\n if (swipeDistance > threshold && swipeDeg < touchAngle) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \"<\")));\n } else if (swipeDistance < -threshold && swipeDeg < touchAngle) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe, \">\")));\n } else {\n // While swipe don't reach distance apply previous transform.\n Components.Move.make();\n }\n\n Components.Html.root.classList.remove(classes.dragging);\n this.unbindSwipeMove();\n this.unbindSwipeEnd();\n Events.emit('swipe.end');\n }\n },\n\n /**\n * Binds swipe's starting event.\n *\n * @return {Void}\n */\n bindSwipeStart: function bindSwipeStart() {\n var _this = this;\n\n var _Glide$settings3 = Glide.settings,\n swipeThreshold = _Glide$settings3.swipeThreshold,\n dragThreshold = _Glide$settings3.dragThreshold;\n\n if (swipeThreshold) {\n Binder.on(START_EVENTS[0], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n\n if (dragThreshold) {\n Binder.on(START_EVENTS[1], Components.Html.wrapper, function (event) {\n _this.start(event);\n }, capture);\n }\n },\n\n /**\n * Unbinds swipe's starting event.\n *\n * @return {Void}\n */\n unbindSwipeStart: function unbindSwipeStart() {\n Binder.off(START_EVENTS[0], Components.Html.wrapper, capture);\n Binder.off(START_EVENTS[1], Components.Html.wrapper, capture);\n },\n\n /**\n * Binds swipe's moving event.\n *\n * @return {Void}\n */\n bindSwipeMove: function bindSwipeMove() {\n var _this2 = this;\n\n Binder.on(MOVE_EVENTS, Components.Html.wrapper, throttle(function (event) {\n _this2.move(event);\n }, Glide.settings.throttle), capture);\n },\n\n /**\n * Unbinds swipe's moving event.\n *\n * @return {Void}\n */\n unbindSwipeMove: function unbindSwipeMove() {\n Binder.off(MOVE_EVENTS, Components.Html.wrapper, capture);\n },\n\n /**\n * Binds swipe's ending event.\n *\n * @return {Void}\n */\n bindSwipeEnd: function bindSwipeEnd() {\n var _this3 = this;\n\n Binder.on(END_EVENTS, Components.Html.wrapper, function (event) {\n _this3.end(event);\n });\n },\n\n /**\n * Unbinds swipe's ending event.\n *\n * @return {Void}\n */\n unbindSwipeEnd: function unbindSwipeEnd() {\n Binder.off(END_EVENTS, Components.Html.wrapper);\n },\n\n /**\n * Normalizes event touches points accorting to different types.\n *\n * @param {Object} event\n */\n touches: function touches(event) {\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n /**\n * Gets value of minimum swipe distance settings based on event type.\n *\n * @return {Number}\n */\n threshold: function threshold(event) {\n var settings = Glide.settings;\n\n if (MOUSE_EVENTS.indexOf(event.type) > -1) {\n return settings.dragThreshold;\n }\n\n return settings.swipeThreshold;\n },\n\n /**\n * Enables swipe event.\n *\n * @return {self}\n */\n enable: function enable() {\n disabled = false;\n Components.Transition.enable();\n return this;\n },\n\n /**\n * Disables swipe event.\n *\n * @return {self}\n */\n disable: function disable() {\n disabled = true;\n Components.Transition.disable();\n return this;\n }\n };\n /**\n * Add component class:\n * - after initial building\n */\n\n Events.on('build.after', function () {\n Components.Html.root.classList.add(Glide.settings.classes.swipeable);\n });\n /**\n * Remove swiping bindings:\n * - on destroying, to remove added EventListeners\n */\n\n Events.on('destroy', function () {\n Swipe.unbindSwipeStart();\n Swipe.unbindSwipeMove();\n Swipe.unbindSwipeEnd();\n Binder.destroy();\n });\n return Swipe;\n}\n\nfunction Images (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Images = {\n /**\n * Binds listener to glide wrapper.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.bind();\n },\n\n /**\n * Binds `dragstart` event on wrapper to prevent dragging images.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('dragstart', Components.Html.wrapper, this.dragstart);\n },\n\n /**\n * Unbinds `dragstart` event on wrapper.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('dragstart', Components.Html.wrapper);\n },\n\n /**\n * Event handler. Prevents dragging.\n *\n * @return {Void}\n */\n dragstart: function dragstart(event) {\n event.preventDefault();\n }\n };\n /**\n * Remove bindings from images:\n * - on destroying, to remove added EventListeners\n */\n\n Events.on('destroy', function () {\n Images.unbind();\n Binder.destroy();\n });\n return Images;\n}\n\nfunction Anchors (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n /**\n * Holds detaching status of anchors.\n * Prevents detaching of already detached anchors.\n *\n * @private\n * @type {Boolean}\n */\n\n var detached = false;\n /**\n * Holds preventing status of anchors.\n * If `true` redirection after click will be disabled.\n *\n * @private\n * @type {Boolean}\n */\n\n var prevented = false;\n var Anchors = {\n /**\n * Setups a initial state of anchors component.\n *\n * @returns {Void}\n */\n mount: function mount() {\n /**\n * Holds collection of anchors elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._a = Components.Html.wrapper.querySelectorAll('a');\n this.bind();\n },\n\n /**\n * Binds events to anchors inside a track.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('click', Components.Html.wrapper, this.click);\n },\n\n /**\n * Unbinds events attached to anchors inside a track.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('click', Components.Html.wrapper);\n },\n\n /**\n * Handler for click event. Prevents clicks when glide is in `prevent` status.\n *\n * @param {Object} event\n * @return {Void}\n */\n click: function click(event) {\n if (prevented) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n\n /**\n * Detaches anchors click event inside glide.\n *\n * @return {self}\n */\n detach: function detach() {\n prevented = true;\n\n if (!detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = false;\n }\n\n detached = true;\n }\n\n return this;\n },\n\n /**\n * Attaches anchors click events inside glide.\n *\n * @return {self}\n */\n attach: function attach() {\n prevented = false;\n\n if (detached) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].draggable = true;\n }\n\n detached = false;\n }\n\n return this;\n }\n };\n define(Anchors, 'items', {\n /**\n * Gets collection of the arrows HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Anchors._a;\n }\n });\n /**\n * Detach anchors inside slides:\n * - on swiping, so they won't redirect to its `href` attributes\n */\n\n Events.on('swipe.move', function () {\n Anchors.detach();\n });\n /**\n * Attach anchors inside slides:\n * - after swiping and transitions ends, so they can redirect after click again\n */\n\n Events.on('swipe.end', function () {\n Components.Transition.after(function () {\n Anchors.attach();\n });\n });\n /**\n * Unbind anchors inside slides:\n * - on destroying, to bring anchors to its initial state\n */\n\n Events.on('destroy', function () {\n Anchors.attach();\n Anchors.unbind();\n Binder.destroy();\n });\n return Anchors;\n}\n\nvar NAV_SELECTOR = '[data-glide-el=\"controls[nav]\"]';\nvar CONTROLS_SELECTOR = '[data-glide-el^=\"controls\"]';\nvar PREVIOUS_CONTROLS_SELECTOR = \"\".concat(CONTROLS_SELECTOR, \" [data-glide-dir*=\\\"<\\\"]\");\nvar NEXT_CONTROLS_SELECTOR = \"\".concat(CONTROLS_SELECTOR, \" [data-glide-dir*=\\\">\\\"]\");\nfunction Controls (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var capture = supportsPassive$1 ? {\n passive: true\n } : false;\n var Controls = {\n /**\n * Inits arrows. Binds events listeners\n * to the arrows HTML elements.\n *\n * @return {Void}\n */\n mount: function mount() {\n /**\n * Collection of navigation HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n this._n = Components.Html.root.querySelectorAll(NAV_SELECTOR);\n /**\n * Collection of controls HTML elements.\n *\n * @private\n * @type {HTMLCollection}\n */\n\n this._c = Components.Html.root.querySelectorAll(CONTROLS_SELECTOR);\n /**\n * Collection of arrow control HTML elements.\n *\n * @private\n * @type {Object}\n */\n\n this._arrowControls = {\n previous: Components.Html.root.querySelectorAll(PREVIOUS_CONTROLS_SELECTOR),\n next: Components.Html.root.querySelectorAll(NEXT_CONTROLS_SELECTOR)\n };\n this.addBindings();\n },\n\n /**\n * Sets active class to current slide.\n *\n * @return {Void}\n */\n setActive: function setActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.addClass(this._n[i].children);\n }\n },\n\n /**\n * Removes active class to current slide.\n *\n * @return {Void}\n */\n removeActive: function removeActive() {\n for (var i = 0; i < this._n.length; i++) {\n this.removeClass(this._n[i].children);\n }\n },\n\n /**\n * Toggles active class on items inside navigation.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n addClass: function addClass(controls) {\n var settings = Glide.settings;\n var item = controls[Glide.index];\n\n if (!item) {\n return;\n }\n\n item.classList.add(settings.classes.nav.active);\n siblings(item).forEach(function (sibling) {\n sibling.classList.remove(settings.classes.nav.active);\n });\n },\n\n /**\n * Removes active class from active control.\n *\n * @param {HTMLElement} controls\n * @return {Void}\n */\n removeClass: function removeClass(controls) {\n var item = controls[Glide.index];\n item === null || item === void 0 ? void 0 : item.classList.remove(Glide.settings.classes.nav.active);\n },\n\n /**\n * Calculates, removes or adds `Glide.settings.classes.disabledArrow` class on the control arrows\n */\n setArrowState: function setArrowState() {\n if (Glide.settings.rewind) {\n return;\n }\n\n var next = Controls._arrowControls.next;\n var previous = Controls._arrowControls.previous;\n this.resetArrowState(next, previous);\n\n if (Glide.index === 0) {\n this.disableArrow(previous);\n }\n\n if (Glide.index === Components.Run.length) {\n this.disableArrow(next);\n }\n },\n\n /**\n * Removes `Glide.settings.classes.disabledArrow` from given NodeList elements\n *\n * @param {NodeList[]} lists\n */\n resetArrowState: function resetArrowState() {\n var settings = Glide.settings;\n\n for (var _len = arguments.length, lists = new Array(_len), _key = 0; _key < _len; _key++) {\n lists[_key] = arguments[_key];\n }\n\n lists.forEach(function (list) {\n toArray(list).forEach(function (element) {\n element.classList.remove(settings.classes.arrow.disabled);\n });\n });\n },\n\n /**\n * Adds `Glide.settings.classes.disabledArrow` to given NodeList elements\n *\n * @param {NodeList[]} lists\n */\n disableArrow: function disableArrow() {\n var settings = Glide.settings;\n\n for (var _len2 = arguments.length, lists = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n lists[_key2] = arguments[_key2];\n }\n\n lists.forEach(function (list) {\n toArray(list).forEach(function (element) {\n element.classList.add(settings.classes.arrow.disabled);\n });\n });\n },\n\n /**\n * Adds handles to the each group of controls.\n *\n * @return {Void}\n */\n addBindings: function addBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.bind(this._c[i].children);\n }\n },\n\n /**\n * Removes handles from the each group of controls.\n *\n * @return {Void}\n */\n removeBindings: function removeBindings() {\n for (var i = 0; i < this._c.length; i++) {\n this.unbind(this._c[i].children);\n }\n },\n\n /**\n * Binds events to arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n bind: function bind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.on('click', elements[i], this.click);\n Binder.on('touchstart', elements[i], this.click, capture);\n }\n },\n\n /**\n * Unbinds events binded to the arrows HTML elements.\n *\n * @param {HTMLCollection} elements\n * @return {Void}\n */\n unbind: function unbind(elements) {\n for (var i = 0; i < elements.length; i++) {\n Binder.off(['click', 'touchstart'], elements[i]);\n }\n },\n\n /**\n * Handles `click` event on the arrows HTML elements.\n * Moves slider in direction given via the\n * `data-glide-dir` attribute.\n *\n * @param {Object} event\n * @return {void}\n */\n click: function click(event) {\n if (!supportsPassive$1 && event.type === 'touchstart') {\n event.preventDefault();\n }\n\n var direction = event.currentTarget.getAttribute('data-glide-dir');\n Components.Run.make(Components.Direction.resolve(direction));\n }\n };\n define(Controls, 'items', {\n /**\n * Gets collection of the controls HTML elements.\n *\n * @return {HTMLElement[]}\n */\n get: function get() {\n return Controls._c;\n }\n });\n /**\n * Swap active class of current navigation item:\n * - after mounting to set it to initial index\n * - after each move to the new index\n */\n\n Events.on(['mount.after', 'move.after'], function () {\n Controls.setActive();\n });\n /**\n * Add or remove disabled class of arrow elements\n */\n\n Events.on(['mount.after', 'run'], function () {\n Controls.setArrowState();\n });\n /**\n * Remove bindings and HTML Classes:\n * - on destroying, to bring markup to its initial state\n */\n\n Events.on('destroy', function () {\n Controls.removeBindings();\n Controls.removeActive();\n Binder.destroy();\n });\n return Controls;\n}\n\nfunction Keyboard (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Keyboard = {\n /**\n * Binds keyboard events on component mount.\n *\n * @return {Void}\n */\n mount: function mount() {\n if (Glide.settings.keyboard) {\n this.bind();\n }\n },\n\n /**\n * Adds keyboard press events.\n *\n * @return {Void}\n */\n bind: function bind() {\n Binder.on('keyup', document, this.press);\n },\n\n /**\n * Removes keyboard press events.\n *\n * @return {Void}\n */\n unbind: function unbind() {\n Binder.off('keyup', document);\n },\n\n /**\n * Handles keyboard's arrows press and moving glide foward and backward.\n *\n * @param {Object} event\n * @return {Void}\n */\n press: function press(event) {\n var perSwipe = Glide.settings.perSwipe;\n var arrowSymbols = {\n ArrowRight: '>',\n ArrowLeft: '<'\n };\n\n if (['ArrowRight', 'ArrowLeft'].includes(event.code)) {\n Components.Run.make(Components.Direction.resolve(\"\".concat(perSwipe).concat(arrowSymbols[event.code])));\n }\n }\n };\n /**\n * Remove bindings from keyboard:\n * - on destroying to remove added events\n * - on updating to remove events before remounting\n */\n\n Events.on(['destroy', 'update'], function () {\n Keyboard.unbind();\n });\n /**\n * Remount component\n * - on updating to reflect potential changes in settings\n */\n\n Events.on('update', function () {\n Keyboard.mount();\n });\n /**\n * Destroy binder:\n * - on destroying to remove listeners\n */\n\n Events.on('destroy', function () {\n Binder.destroy();\n });\n return Keyboard;\n}\n\nfunction Autoplay (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n var Autoplay = {\n /**\n * Initializes autoplaying and events.\n *\n * @return {Void}\n */\n mount: function mount() {\n this.enable();\n this.start();\n\n if (Glide.settings.hoverpause) {\n this.bind();\n }\n },\n\n /**\n * Enables autoplaying\n *\n * @returns {Void}\n */\n enable: function enable() {\n this._e = true;\n },\n\n /**\n * Disables autoplaying.\n *\n * @returns {Void}\n */\n disable: function disable() {\n this._e = false;\n },\n\n /**\n * Starts autoplaying in configured interval.\n *\n * @param {Boolean|Number} force Run autoplaying with passed interval regardless of `autoplay` settings\n * @return {Void}\n */\n start: function start() {\n var _this = this;\n\n if (!this._e) {\n return;\n }\n\n this.enable();\n\n if (Glide.settings.autoplay) {\n if (isUndefined(this._i)) {\n this._i = setInterval(function () {\n _this.stop();\n\n Components.Run.make('>');\n\n _this.start();\n\n Events.emit('autoplay');\n }, this.time);\n }\n }\n },\n\n /**\n * Stops autorunning of the glide.\n *\n * @return {Void}\n */\n stop: function stop() {\n this._i = clearInterval(this._i);\n },\n\n /**\n * Stops autoplaying while mouse is over glide's area.\n *\n * @return {Void}\n */\n bind: function bind() {\n var _this2 = this;\n\n Binder.on('mouseover', Components.Html.root, function () {\n if (_this2._e) {\n _this2.stop();\n }\n });\n Binder.on('mouseout', Components.Html.root, function () {\n if (_this2._e) {\n _this2.start();\n }\n });\n },\n\n /**\n * Unbind mouseover events.\n *\n * @returns {Void}\n */\n unbind: function unbind() {\n Binder.off(['mouseover', 'mouseout'], Components.Html.root);\n }\n };\n define(Autoplay, 'time', {\n /**\n * Gets time period value for the autoplay interval. Prioritizes\n * times in `data-glide-autoplay` attrubutes over options.\n *\n * @return {Number}\n */\n get: function get() {\n var autoplay = Components.Html.slides[Glide.index].getAttribute('data-glide-autoplay');\n\n if (autoplay) {\n return toInt(autoplay);\n }\n\n return toInt(Glide.settings.autoplay);\n }\n });\n /**\n * Stop autoplaying and unbind events:\n * - on destroying, to clear defined interval\n * - on updating via API to reset interval that may changed\n */\n\n Events.on(['destroy', 'update'], function () {\n Autoplay.unbind();\n });\n /**\n * Stop autoplaying:\n * - before each run, to restart autoplaying\n * - on pausing via API\n * - on destroying, to clear defined interval\n * - while starting a swipe\n * - on updating via API to reset interval that may changed\n */\n\n Events.on(['run.before', 'swipe.start', 'update'], function () {\n Autoplay.stop();\n });\n Events.on(['pause', 'destroy'], function () {\n Autoplay.disable();\n Autoplay.stop();\n });\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n\n Events.on(['run.after', 'swipe.end'], function () {\n Autoplay.start();\n });\n /**\n * Start autoplaying:\n * - after each run, to restart autoplaying\n * - on playing via API\n * - while ending a swipe\n */\n\n Events.on(['play'], function () {\n Autoplay.enable();\n Autoplay.start();\n });\n /**\n * Remount autoplaying:\n * - on updating via API to reset interval that may changed\n */\n\n Events.on('update', function () {\n Autoplay.mount();\n });\n /**\n * Destroy a binder:\n * - on destroying glide instance to clearup listeners\n */\n\n Events.on('destroy', function () {\n Binder.destroy();\n });\n return Autoplay;\n}\n\n/**\n * Sorts keys of breakpoint object so they will be ordered from lower to bigger.\n *\n * @param {Object} points\n * @returns {Object}\n */\n\nfunction sortBreakpoints(points) {\n if (isObject(points)) {\n return sortKeys(points);\n } else {\n warn(\"Breakpoints option must be an object\");\n }\n\n return {};\n}\n\nfunction Breakpoints (Glide, Components, Events) {\n /**\n * Instance of the binder for DOM Events.\n *\n * @type {EventsBinder}\n */\n var Binder = new EventsBinder();\n /**\n * Holds reference to settings.\n *\n * @type {Object}\n */\n\n var settings = Glide.settings;\n /**\n * Holds reference to breakpoints object in settings. Sorts breakpoints\n * from smaller to larger. It is required in order to proper\n * matching currently active breakpoint settings.\n *\n * @type {Object}\n */\n\n var points = sortBreakpoints(settings.breakpoints);\n /**\n * Cache initial settings before overwritting.\n *\n * @type {Object}\n */\n\n var defaults = Object.assign({}, settings);\n var Breakpoints = {\n /**\n * Matches settings for currectly matching media breakpoint.\n *\n * @param {Object} points\n * @returns {Object}\n */\n match: function match(points) {\n if (typeof window.matchMedia !== 'undefined') {\n for (var point in points) {\n if (points.hasOwnProperty(point)) {\n if (window.matchMedia(\"(max-width: \".concat(point, \"px)\")).matches) {\n return points[point];\n }\n }\n }\n }\n\n return defaults;\n }\n };\n /**\n * Overwrite instance settings with currently matching breakpoint settings.\n * This happens right after component initialization.\n */\n\n Object.assign(settings, Breakpoints.match(points));\n /**\n * Update glide with settings of matched brekpoint:\n * - window resize to update slider\n */\n\n Binder.on('resize', window, throttle(function () {\n Glide.settings = mergeOptions(settings, Breakpoints.match(points));\n }, Glide.settings.throttle));\n /**\n * Resort and update default settings:\n * - on reinit via API, so breakpoint matching will be performed with options\n */\n\n Events.on('update', function () {\n points = sortBreakpoints(points);\n defaults = Object.assign({}, settings);\n });\n /**\n * Unbind resize listener:\n * - on destroying, to bring markup to its initial state\n */\n\n Events.on('destroy', function () {\n Binder.off('resize', window);\n });\n return Breakpoints;\n}\n\nvar COMPONENTS = {\n // Required\n Html: Html,\n Translate: Translate,\n Transition: Transition,\n Direction: Direction,\n Peek: Peek,\n Sizes: Sizes,\n Gaps: Gaps,\n Move: Move,\n Clones: Clones,\n Resize: Resize,\n Build: Build,\n Run: Run,\n // Optional\n Swipe: Swipe,\n Images: Images,\n Anchors: Anchors,\n Controls: Controls,\n Keyboard: Keyboard,\n Autoplay: Autoplay,\n Breakpoints: Breakpoints\n};\n\nvar Glide = /*#__PURE__*/function (_Core) {\n _inherits(Glide, _Core);\n\n var _super = _createSuper(Glide);\n\n function Glide() {\n _classCallCheck(this, Glide);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Glide, [{\n key: \"mount\",\n value: function mount() {\n var extensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _get(_getPrototypeOf(Glide.prototype), \"mount\", this).call(this, Object.assign({}, COMPONENTS, extensions));\n }\n }]);\n\n return Glide;\n}(Glide$1);\n\n\n\n\n//# sourceURL=webpack:///./node_modules/@glidejs/glide/dist/glide.esm.js?"); 98 99/***/ }), 100
vendor: 14,495 bytes, lines 101-111
101/***/ "./node_modules/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js": 102/*!*****************************************************************************************!*\ 103 !*** ./node_modules/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js ***! 104 \*****************************************************************************************/ 105/*! no static exports found */ 106/***/ (function(module, exports, __webpack_require__) { 107 108eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n* dependencyLibs/inputmask.dependencyLib.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! ../global/window */ \"./node_modules/inputmask/dist/inputmask/global/window.js\") ], __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 {}\n})(function(window) {\n var document = window.document;\n function indexOf(list, elem) {\n var i = 0, len = list.length;\n for (;i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n return -1;\n }\n function isWindow(obj) {\n return obj != null && obj === obj.window;\n }\n function isArraylike(obj) {\n var length = \"length\" in obj && obj.length, ltype = typeof obj;\n if (ltype === \"function\" || isWindow(obj)) {\n return false;\n }\n if (obj.nodeType === 1 && length) {\n return true;\n }\n return ltype === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n function isValidElement(elem) {\n return elem instanceof Element;\n }\n function DependencyLib(elem) {\n if (elem instanceof DependencyLib) {\n return elem;\n }\n if (!(this instanceof DependencyLib)) {\n return new DependencyLib(elem);\n }\n if (elem !== undefined && elem !== null && elem !== window) {\n this[0] = elem.nodeName ? elem : elem[0] !== undefined && elem[0].nodeName ? elem[0] : document.querySelector(elem);\n if (this[0] !== undefined && this[0] !== null) {\n this[0].eventRegistry = this[0].eventRegistry || {};\n }\n }\n }\n function getWindow(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 ? elem.defaultView || elem.parentWindow : false;\n }\n DependencyLib.prototype = {\n on: function(events, handler) {\n if (isValidElement(this[0])) {\n var eventRegistry = this[0].eventRegistry, elem = this[0];\n var addEvent = function(ev, namespace) {\n if (elem.addEventListener) {\n elem.addEventListener(ev, handler, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\" + ev, handler);\n }\n eventRegistry[ev] = eventRegistry[ev] || {};\n eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [];\n eventRegistry[ev][namespace].push(handler);\n };\n var _events = events.split(\" \");\n for (var endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n addEvent(ev, namespace);\n }\n }\n return this;\n },\n off: function(events, handler) {\n if (isValidElement(this[0])) {\n var eventRegistry = this[0].eventRegistry, elem = this[0];\n var removeEvent = function(ev, namespace, handler) {\n if (ev in eventRegistry === true) {\n if (elem.removeEventListener) {\n elem.removeEventListener(ev, handler, false);\n } else if (elem.detachEvent) {\n elem.detachEvent(\"on\" + ev, handler);\n }\n if (namespace === \"global\") {\n for (var nmsp in eventRegistry[ev]) {\n eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1);\n }\n } else {\n eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);\n }\n }\n };\n var resolveNamespace = function(ev, namespace) {\n var evts = [], hndx, hndL;\n if (ev.length > 0) {\n if (handler === undefined) {\n for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) {\n evts.push({\n ev: ev,\n namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n handler: eventRegistry[ev][namespace][hndx]\n });\n }\n } else {\n evts.push({\n ev: ev,\n namespace: namespace && namespace.length > 0 ? namespace : \"global\",\n handler: handler\n });\n }\n } else if (namespace.length > 0) {\n for (var evNdx in eventRegistry) {\n for (var nmsp in eventRegistry[evNdx]) {\n if (nmsp === namespace) {\n if (handler === undefined) {\n for (hndx = 0, hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) {\n evts.push({\n ev: evNdx,\n namespace: nmsp,\n handler: eventRegistry[evNdx][nmsp][hndx]\n });\n }\n } else {\n evts.push({\n ev: evNdx,\n namespace: nmsp,\n handler: handler\n });\n }\n }\n }\n }\n }\n return evts;\n };\n var _events = events.split(\" \");\n for (var endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), offEvents = resolveNamespace(nsEvent[0], nsEvent[1]);\n for (var i = 0, offEventsL = offEvents.length; i < offEventsL; i++) {\n removeEvent(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);\n }\n }\n }\n return this;\n },\n trigger: function(events) {\n if (isValidElement(this[0])) {\n var eventRegistry = this[0].eventRegistry, elem = this[0];\n var _events = typeof events === \"string\" ? events.split(\" \") : [ events.type ];\n for (var endx = 0; endx < _events.length; endx++) {\n var nsEvent = _events[endx].split(\".\"), ev = nsEvent[0], namespace = nsEvent[1] || \"global\";\n if (document !== undefined && namespace === \"global\") {\n var evnt, i, params = {\n bubbles: true,\n cancelable: true,\n detail: arguments[1]\n };\n if (document.createEvent) {\n try {\n evnt = new CustomEvent(ev, params);\n } catch (e) {\n evnt = document.createEvent(\"CustomEvent\");\n evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);\n }\n if (events.type) DependencyLib.extend(evnt, events);\n elem.dispatchEvent(evnt);\n } else {\n evnt = document.createEventObject();\n evnt.eventType = ev;\n evnt.detail = arguments[1];\n if (events.type) DependencyLib.extend(evnt, events);\n elem.fireEvent(\"on\" + evnt.eventType, evnt);\n }\n } else if (eventRegistry[ev] !== undefined) {\n arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]);\n if (namespace === \"global\") {\n for (var nmsp in eventRegistry[ev]) {\n for (i = 0; i < eventRegistry[ev][nmsp].length; i++) {\n eventRegistry[ev][nmsp][i].apply(elem, arguments);\n }\n }\n } else {\n for (i = 0; i < eventRegistry[ev][namespace].length; i++) {\n eventRegistry[ev][namespace][i].apply(elem, arguments);\n }\n }\n }\n }\n }\n return this;\n }\n };\n DependencyLib.isFunction = function(obj) {\n return typeof obj === \"function\";\n };\n DependencyLib.noop = function() {};\n DependencyLib.isArray = Array.isArray;\n DependencyLib.inArray = function(elem, arr, i) {\n return arr == null ? -1 : indexOf(arr, elem, i);\n };\n DependencyLib.valHooks = undefined;\n DependencyLib.isPlainObject = function(obj) {\n if (typeof obj !== \"object\" || obj.nodeType || isWindow(obj)) {\n return false;\n }\n if (obj.constructor && !Object.hasOwnProperty.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n return true;\n };\n DependencyLib.extend = function() {\n var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;\n if (typeof target === \"boolean\") {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n if (typeof target !== \"object\" && !DependencyLib.isFunction(target)) {\n target = {};\n }\n if (i === length) {\n target = this;\n i--;\n }\n for (;i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && DependencyLib.isArray(src) ? src : [];\n } else {\n clone = src && DependencyLib.isPlainObject(src) ? src : {};\n }\n target[name] = DependencyLib.extend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n };\n DependencyLib.each = function(obj, callback) {\n var value, i = 0;\n if (isArraylike(obj)) {\n for (var length = obj.length; i < length; i++) {\n value = callback.call(obj[i], i, obj[i]);\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n value = callback.call(obj[i], i, obj[i]);\n if (value === false) {\n break;\n }\n }\n }\n return obj;\n };\n DependencyLib.data = function(owner, key, value) {\n if (value === undefined) {\n return owner.__data ? owner.__data[key] : null;\n } else {\n owner.__data = owner.__data || {};\n owner.__data[key] = value;\n }\n };\n if (typeof window.CustomEvent === \"function\") {\n DependencyLib.Event = window.CustomEvent;\n } else {\n DependencyLib.Event = function(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n DependencyLib.Event.prototype = window.Event.prototype;\n }\n return DependencyLib;\n});\n\n//# sourceURL=webpack:///./node_modules/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js?"); 109 110/***/ }), 111
vendor: 1,066 bytes, lines 112-122
112/***/ "./node_modules/inputmask/dist/inputmask/global/window.js": 113/*!****************************************************************!*\ 114 !*** ./node_modules/inputmask/dist/inputmask/global/window.js ***! 115 \****************************************************************/ 116/*! no static exports found */ 117/***/ (function(module, exports, __webpack_require__) { 118 119eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n* global/window.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\nif (true) !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return typeof window !== \"undefined\" ? window : new (eval(\"require('jsdom').JSDOM\"))(\"\").window;\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); else {}\n\n//# sourceURL=webpack:///./node_modules/inputmask/dist/inputmask/global/window.js?"); 120 121/***/ }), 122
vendor: 13,485 bytes, lines 123-133
123/***/ "./node_modules/inputmask/dist/inputmask/inputmask.date.extensions.js": 124/*!****************************************************************************!*\ 125 !*** ./node_modules/inputmask/dist/inputmask/inputmask.date.extensions.js ***! 126 \****************************************************************************/ 127/*! no static exports found */ 128/***/ (function(module, exports, __webpack_require__) { 129 130eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n* inputmask.date.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! ./inputmask */ \"./node_modules/inputmask/dist/inputmask/inputmask.js\") ], __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 {}\n})(function(Inputmask) {\n var $ = Inputmask.dependencyLib;\n var formatCode = {\n d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n return pad(Date.prototype.getDate.call(this), 2);\n } ],\n ddd: [ \"\" ],\n dddd: [ \"\" ],\n m: [ \"[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n return Date.prototype.getMonth.call(this) + 1;\n } ],\n mm: [ \"0[1-9]|1[012]\", Date.prototype.setMonth, \"month\", function() {\n return pad(Date.prototype.getMonth.call(this) + 1, 2);\n } ],\n mmm: [ \"\" ],\n mmmm: [ \"\" ],\n yy: [ \"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function() {\n return pad(Date.prototype.getFullYear.call(this), 2);\n } ],\n yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n return pad(Date.prototype.getFullYear.call(this), 4);\n } ],\n h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n return pad(Date.prototype.getHours.call(this), 2);\n } ],\n hhh: [ \"[0-9]+\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n return pad(Date.prototype.getHours.call(this), 2);\n } ],\n HHH: [ \"[0-9]+\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n return pad(Date.prototype.getMinutes.call(this), 2);\n } ],\n ss: [ \"[0-5][0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n return pad(Date.prototype.getSeconds.call(this), 2);\n } ],\n l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return pad(Date.prototype.getMilliseconds.call(this), 3);\n } ],\n L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return pad(Date.prototype.getMilliseconds.call(this), 2);\n } ],\n t: [ \"[ap]\" ],\n tt: [ \"[ap]m\" ],\n T: [ \"[AP]\" ],\n TT: [ \"[AP]M\" ],\n Z: [ \"\" ],\n o: [ \"\" ],\n S: [ \"\" ]\n }, formatAlias = {\n isoDate: \"yyyy-mm-dd\",\n isoTime: \"HH:MM:ss\",\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n };\n function getTokenizer(opts) {\n if (!opts.tokenizer) {\n var tokens = [];\n for (var ndx in formatCode) {\n if (tokens.indexOf(ndx[0]) === -1) tokens.push(ndx[0]);\n }\n opts.tokenizer = \"(\" + tokens.join(\"+|\") + \")+?|.\";\n opts.tokenizer = new RegExp(opts.tokenizer, \"g\");\n }\n return opts.tokenizer;\n }\n function isValidDate(dateParts, currentResult) {\n return !isFinite(dateParts.rawday) || dateParts.day == \"29\" && !isFinite(dateParts.rawyear) || new Date(dateParts.date.getFullYear(), isFinite(dateParts.rawmonth) ? dateParts.month : dateParts.date.getMonth() + 1, 0).getDate() >= dateParts.day ? currentResult : false;\n }\n function isDateInRange(dateParts, opts) {\n var result = true;\n if (opts.min) {\n if (dateParts[\"rawyear\"]) {\n var rawYear = dateParts[\"rawyear\"].replace(/[^0-9]/g, \"\"), minYear = opts.min.year.substr(0, rawYear.length);\n result = minYear <= rawYear;\n }\n if (dateParts[\"year\"] === dateParts[\"rawyear\"]) {\n if (opts.min.date.getTime() === opts.min.date.getTime()) {\n result = opts.min.date.getTime() <= dateParts.date.getTime();\n }\n }\n }\n if (result && opts.max && opts.max.date.getTime() === opts.max.date.getTime()) {\n result = opts.max.date.getTime() >= dateParts.date.getTime();\n }\n return result;\n }\n function parse(format, dateObjValue, opts, raw) {\n var mask = \"\", match;\n while (match = getTokenizer(opts).exec(format)) {\n if (dateObjValue === undefined) {\n if (formatCode[match[0]]) {\n mask += \"(\" + formatCode[match[0]][0] + \")\";\n } else {\n switch (match[0]) {\n case \"[\":\n mask += \"(\";\n break;\n\n case \"]\":\n mask += \")?\";\n break;\n\n default:\n mask += Inputmask.escapeRegex(match[0]);\n }\n }\n } else {\n if (formatCode[match[0]]) {\n if (raw !== true && formatCode[match[0]][3]) {\n var getFn = formatCode[match[0]][3];\n mask += getFn.call(dateObjValue.date);\n } else if (formatCode[match[0]][2]) mask += dateObjValue[\"raw\" + formatCode[match[0]][2]]; else mask += match[0];\n } else mask += match[0];\n }\n }\n return mask;\n }\n function pad(val, len) {\n val = String(val);\n len = len || 2;\n while (val.length < len) val = \"0\" + val;\n return val;\n }\n function analyseMask(maskString, format, opts) {\n var dateObj = {\n date: new Date(1, 0, 1)\n }, targetProp, mask = maskString, match, dateOperation, targetValidator;\n function extendProperty(value) {\n var correctedValue = value.replace(/[^0-9]/g, \"0\");\n if (correctedValue != value) {\n var enteredPart = value.replace(/[^0-9]/g, \"\"), min = (opts.min && opts.min[targetProp] || value).toString(), max = (opts.max && opts.max[targetProp] || value).toString();\n correctedValue = enteredPart + (enteredPart < min.slice(0, enteredPart.length) ? min.slice(enteredPart.length) : enteredPart > max.slice(0, enteredPart.length) ? max.slice(enteredPart.length) : correctedValue.toString().slice(enteredPart.length));\n }\n return correctedValue;\n }\n function setValue(dateObj, value, opts) {\n dateObj[targetProp] = extendProperty(value);\n dateObj[\"raw\" + targetProp] = value;\n if (dateOperation !== undefined) dateOperation.call(dateObj.date, targetProp == \"month\" ? parseInt(dateObj[targetProp]) - 1 : dateObj[targetProp]);\n }\n if (typeof mask === \"string\") {\n while (match = getTokenizer(opts).exec(format)) {\n var value = mask.slice(0, match[0].length);\n if (formatCode.hasOwnProperty(match[0])) {\n targetValidator = formatCode[match[0]][0];\n targetProp = formatCode[match[0]][2];\n dateOperation = formatCode[match[0]][1];\n setValue(dateObj, value, opts);\n }\n mask = mask.slice(value.length);\n }\n return dateObj;\n } else if (mask && typeof mask === \"object\" && mask.hasOwnProperty(\"date\")) {\n return mask;\n }\n return undefined;\n }\n Inputmask.extendAliases({\n datetime: {\n mask: function(opts) {\n formatCode.S = opts.i18n.ordinalSuffix.join(\"|\");\n opts.inputFormat = formatAlias[opts.inputFormat] || opts.inputFormat;\n opts.displayFormat = formatAlias[opts.displayFormat] || opts.displayFormat || opts.inputFormat;\n opts.outputFormat = formatAlias[opts.outputFormat] || opts.outputFormat || opts.inputFormat;\n opts.placeholder = opts.placeholder !== \"\" ? opts.placeholder : opts.inputFormat.replace(/[\\[\\]]/, \"\");\n opts.regex = parse(opts.inputFormat, undefined, opts);\n return null;\n },\n placeholder: \"\",\n inputFormat: \"isoDateTime\",\n displayFormat: undefined,\n outputFormat: undefined,\n min: null,\n max: null,\n i18n: {\n dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n },\n postValidation: function(buffer, pos, currentResult, opts) {\n opts.min = analyseMask(opts.min, opts.inputFormat, opts);\n opts.max = analyseMask(opts.max, opts.inputFormat, opts);\n var result = currentResult, dateParts = analyseMask(buffer.join(\"\"), opts.inputFormat, opts);\n if (result && dateParts.date.getTime() === dateParts.date.getTime()) {\n result = isValidDate(dateParts, result);\n result = result && isDateInRange(dateParts, opts);\n }\n if (pos && result && currentResult.pos !== pos) {\n return {\n buffer: parse(opts.inputFormat, dateParts, opts),\n refreshFromBuffer: {\n start: pos,\n end: currentResult.pos\n }\n };\n }\n return result;\n },\n onKeyDown: function(e, buffer, caretPos, opts) {\n var input = this;\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\n var today = new Date(), match, date = \"\";\n while (match = getTokenizer(opts).exec(opts.inputFormat)) {\n if (match[0].charAt(0) === \"d\") {\n date += pad(today.getDate(), match[0].length);\n } else if (match[0].charAt(0) === \"m\") {\n date += pad(today.getMonth() + 1, match[0].length);\n } else if (match[0] === \"yyyy\") {\n date += today.getFullYear().toString();\n } else if (match[0].charAt(0) === \"y\") {\n date += pad(today.getYear(), match[0].length);\n }\n }\n input.inputmask._valueSet(date);\n $(input).trigger(\"setvalue\");\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n return parse(opts.outputFormat, analyseMask(maskedValue, opts.inputFormat, opts), opts, true);\n },\n casing: function(elem, test, pos, validPositions) {\n if (test.nativeDef.indexOf(\"[ap]\") == 0) return elem.toLowerCase();\n if (test.nativeDef.indexOf(\"[AP]\") == 0) return elem.toUpperCase();\n return elem;\n },\n insertMode: false,\n shiftPositions: false\n }\n });\n return Inputmask;\n});\n\n//# sourceURL=webpack:///./node_modules/inputmask/dist/inputmask/inputmask.date.extensions.js?"); 131 132/***/ }), 133
vendor: 4,314 bytes, lines 134-144
134/***/ "./node_modules/inputmask/dist/inputmask/inputmask.extensions.js": 135/*!***********************************************************************!*\ 136 !*** ./node_modules/inputmask/dist/inputmask/inputmask.extensions.js ***! 137 \***********************************************************************/ 138/*! no static exports found */ 139/***/ (function(module, exports, __webpack_require__) { 140 141eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n* inputmask.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! ./inputmask */ \"./node_modules/inputmask/dist/inputmask/inputmask.js\") ], __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 {}\n})(function(Inputmask) {\n Inputmask.extendDefinitions({\n A: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"&\": {\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"#\": {\n validator: \"[0-9A-Fa-f]\",\n casing: \"upper\"\n }\n });\n Inputmask.extendAliases({\n cssunit: {\n regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n },\n url: {\n regex: \"(https?|ftp)//.*\",\n autoUnmask: false\n },\n ip: {\n mask: \"i[i[i]].i[i[i]].i[i[i]].i[i[i]]\",\n definitions: {\n i: {\n validator: function(chrs, maskset, pos, strict, opts) {\n if (pos - 1 > -1 && maskset.buffer[pos - 1] !== \".\") {\n chrs = maskset.buffer[pos - 1] + chrs;\n if (pos - 2 > -1 && maskset.buffer[pos - 2] !== \".\") {\n chrs = maskset.buffer[pos - 2] + chrs;\n } else chrs = \"0\" + chrs;\n } else chrs = \"00\" + chrs;\n return new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\").test(chrs);\n }\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n return maskedValue;\n },\n inputmode: \"numeric\"\n },\n email: {\n mask: \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\",\n greedy: false,\n casing: \"lower\",\n onBeforePaste: function(pastedValue, opts) {\n pastedValue = pastedValue.toLowerCase();\n return pastedValue.replace(\"mailto:\", \"\");\n },\n definitions: {\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n },\n \"-\": {\n validator: \"[0-9A-Za-z-]\"\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n return maskedValue;\n },\n inputmode: \"email\"\n },\n mac: {\n mask: \"##:##:##:##:##:##\"\n },\n vin: {\n mask: \"V{13}9{4}\",\n definitions: {\n V: {\n validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n casing: \"upper\"\n }\n },\n clearIncomplete: true,\n autoUnmask: true\n }\n });\n return Inputmask;\n});\n\n//# sourceURL=webpack:///./node_modules/inputmask/dist/inputmask/inputmask.extensions.js?"); 142 143/***/ }), 144
vendor: 153,602 bytes, lines 145-155
145/***/ "./node_modules/inputmask/dist/inputmask/inputmask.js": 146/*!************************************************************!*\ 147 !*** ./node_modules/inputmask/dist/inputmask/inputmask.js ***! 148 \************************************************************/ 149/*! no static exports found */ 150/***/ (function(module, exports, __webpack_require__) { 151 152eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n* inputmask.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! ./dependencyLibs/inputmask.dependencyLib */ \"./node_modules/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js\"), __webpack_require__(/*! ./global/window */ \"./node_modules/inputmask/dist/inputmask/global/window.js\") ], __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 {}\n})(function($, window, undefined) {\n var document = window.document, ua = navigator.userAgent, ie = ua.indexOf(\"MSIE \") > 0 || ua.indexOf(\"Trident/\") > 0, mobile = isInputEventSupported(\"touchstart\"), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile;\n function Inputmask(alias, options, internal) {\n if (!(this instanceof Inputmask)) {\n return new Inputmask(alias, options, internal);\n }\n this.el = undefined;\n this.events = {};\n this.maskset = undefined;\n this.refreshValue = false;\n if (internal !== true) {\n if ($.isPlainObject(alias)) {\n options = alias;\n } else {\n options = options || {};\n if (alias) options.alias = alias;\n }\n this.opts = $.extend(true, {}, this.defaults, options);\n this.noMasksCache = options && options.definitions !== undefined;\n this.userOptions = options || {};\n this.isRTL = this.opts.numericInput;\n resolveAlias(this.opts.alias, options, this.opts);\n }\n }\n Inputmask.prototype = {\n dataAttribute: \"data-inputmask\",\n defaults: {\n placeholder: \"_\",\n optionalmarker: [ \"[\", \"]\" ],\n quantifiermarker: [ \"{\", \"}\" ],\n groupmarker: [ \"(\", \")\" ],\n alternatormarker: \"|\",\n escapeChar: \"\\\\\",\n mask: null,\n regex: null,\n oncomplete: $.noop,\n onincomplete: $.noop,\n oncleared: $.noop,\n repeat: 0,\n greedy: false,\n autoUnmask: false,\n removeMaskOnSubmit: false,\n clearMaskOnLostFocus: true,\n insertMode: true,\n clearIncomplete: false,\n alias: null,\n onKeyDown: $.noop,\n onBeforeMask: null,\n onBeforePaste: function(pastedValue, opts) {\n return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;\n },\n onBeforeWrite: null,\n onUnMask: null,\n showMaskOnFocus: true,\n showMaskOnHover: true,\n onKeyValidation: $.noop,\n skipOptionalPartCharacter: \" \",\n numericInput: false,\n rightAlign: false,\n undoOnEscape: true,\n radixPoint: \"\",\n _radixDance: false,\n groupSeparator: \"\",\n keepStatic: null,\n positionCaretOnTab: true,\n tabThrough: false,\n supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],\n isComplete: null,\n preValidation: null,\n postValidation: null,\n staticDefinitionSymbol: undefined,\n jitMasking: false,\n nullable: true,\n inputEventOnly: false,\n noValuePatching: false,\n positionCaretOnClick: \"lvp\",\n casing: null,\n inputmode: \"verbatim\",\n colorMask: false,\n disablePredictiveText: false,\n importDataAttributes: true,\n shiftPositions: true\n },\n definitions: {\n 9: {\n validator: \"[0-9\\uff11-\\uff19]\",\n definitionSymbol: \"*\"\n },\n a: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n definitionSymbol: \"*\"\n },\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n }\n },\n aliases: {},\n masksCache: {},\n mask: function(elems) {\n var that = this;\n function importAttributeOptions(npt, opts, userOptions, dataAttribute) {\n if (opts.importDataAttributes === true) {\n var attrOptions = npt.getAttribute(dataAttribute), option, dataoptions, optionData, p;\n var importOption = function(option, optionData) {\n optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + \"-\" + option);\n if (optionData !== null) {\n if (typeof optionData === \"string\") {\n if (option.indexOf(\"on\") === 0) optionData = window[optionData]; else if (optionData === \"false\") optionData = false; else if (optionData === \"true\") optionData = true;\n }\n userOptions[option] = optionData;\n }\n };\n if (attrOptions && attrOptions !== \"\") {\n attrOptions = attrOptions.replace(/'/g, '\"');\n dataoptions = JSON.parse(\"{\" + attrOptions + \"}\");\n }\n if (dataoptions) {\n optionData = undefined;\n for (p in dataoptions) {\n if (p.toLowerCase() === \"alias\") {\n optionData = dataoptions[p];\n break;\n }\n }\n }\n importOption(\"alias\", optionData);\n if (userOptions.alias) {\n resolveAlias(userOptions.alias, userOptions, opts);\n }\n for (option in opts) {\n if (dataoptions) {\n optionData = undefined;\n for (p in dataoptions) {\n if (p.toLowerCase() === option.toLowerCase()) {\n optionData = dataoptions[p];\n break;\n }\n }\n }\n importOption(option, optionData);\n }\n }\n $.extend(true, opts, userOptions);\n if (npt.dir === \"rtl\" || opts.rightAlign) {\n npt.style.textAlign = \"right\";\n }\n if (npt.dir === \"rtl\" || opts.numericInput) {\n npt.dir = \"ltr\";\n npt.removeAttribute(\"dir\");\n opts.isRTL = true;\n }\n return Object.keys(userOptions).length;\n }\n if (typeof elems === \"string\") {\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\n }\n elems = elems.nodeName ? [ elems ] : elems;\n $.each(elems, function(ndx, el) {\n var scopedOpts = $.extend(true, {}, that.opts);\n if (importAttributeOptions(el, scopedOpts, $.extend(true, {}, that.userOptions), that.dataAttribute)) {\n var maskset = generateMaskSet(scopedOpts, that.noMasksCache);\n if (maskset !== undefined) {\n if (el.inputmask !== undefined) {\n el.inputmask.opts.autoUnmask = true;\n el.inputmask.remove();\n }\n el.inputmask = new Inputmask(undefined, undefined, true);\n el.inputmask.opts = scopedOpts;\n el.inputmask.noMasksCache = that.noMasksCache;\n el.inputmask.userOptions = $.extend(true, {}, that.userOptions);\n el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput;\n el.inputmask.el = el;\n el.inputmask.maskset = maskset;\n $.data(el, \"_inputmask_opts\", scopedOpts);\n maskScope.call(el.inputmask, {\n action: \"mask\"\n });\n }\n }\n });\n return elems && elems[0] ? elems[0].inputmask || this : this;\n },\n option: function(options, noremask) {\n if (typeof options === \"string\") {\n return this.opts[options];\n } else if (typeof options === \"object\") {\n $.extend(this.userOptions, options);\n if (this.el && noremask !== true) {\n this.mask(this.el);\n }\n return this;\n }\n },\n unmaskedvalue: function(value) {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"unmaskedvalue\",\n value: value\n });\n },\n remove: function() {\n return maskScope.call(this, {\n action: \"remove\"\n });\n },\n getemptymask: function() {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"getemptymask\"\n });\n },\n hasMaskedValue: function() {\n return !this.opts.autoUnmask;\n },\n isComplete: function() {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"isComplete\"\n });\n },\n getmetadata: function() {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"getmetadata\"\n });\n },\n isValid: function(value) {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"isValid\",\n value: value\n });\n },\n format: function(value, metadata) {\n this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache);\n return maskScope.call(this, {\n action: \"format\",\n value: value,\n metadata: metadata\n });\n },\n setValue: function(value) {\n if (this.el) {\n $(this.el).trigger(\"setvalue\", [ value ]);\n }\n },\n analyseMask: function(mask, regexMask, opts) {\n var tokenizer = /(?:[?*+]|\\{[0-9\\+\\*]+(?:,[0-9\\+\\*]*)?(?:\\|[0-9\\+\\*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, regexTokenizer = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, escaped = false, currentToken = new MaskToken(), match, m, openenings = [], maskTokens = [], openingToken, currentOpeningToken, alternator, lastMatch, groupToken;\n function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\n this.matches = [];\n this.openGroup = isGroup || false;\n this.alternatorGroup = false;\n this.isGroup = isGroup || false;\n this.isOptional = isOptional || false;\n this.isQuantifier = isQuantifier || false;\n this.isAlternator = isAlternator || false;\n this.quantifier = {\n min: 1,\n max: 1\n };\n }\n function insertTestDefinition(mtoken, element, position) {\n position = position !== undefined ? position : mtoken.matches.length;\n var prevMatch = mtoken.matches[position - 1];\n if (regexMask) {\n if (element.indexOf(\"[\") === 0 || escaped && /\\\\d|\\\\s|\\\\w]/i.test(element) || element === \".\") {\n mtoken.matches.splice(position++, 0, {\n fn: new RegExp(element, opts.casing ? \"i\" : \"\"),\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== element,\n casing: null,\n def: element,\n placeholder: undefined,\n nativeDef: element\n });\n } else {\n if (escaped) element = element[element.length - 1];\n $.each(element.split(\"\"), function(ndx, lmnt) {\n prevMatch = mtoken.matches[position - 1];\n mtoken.matches.splice(position++, 0, {\n fn: null,\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== lmnt && prevMatch.fn !== null,\n casing: null,\n def: opts.staticDefinitionSymbol || lmnt,\n placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,\n nativeDef: (escaped ? \"'\" : \"\") + lmnt\n });\n });\n }\n escaped = false;\n } else {\n var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];\n if (maskdef && !escaped) {\n mtoken.matches.splice(position++, 0, {\n fn: maskdef.validator ? typeof maskdef.validator == \"string\" ? new RegExp(maskdef.validator, opts.casing ? \"i\" : \"\") : new function() {\n this.test = maskdef.validator;\n }() : new RegExp(\".\"),\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== (maskdef.definitionSymbol || element),\n casing: maskdef.casing,\n def: maskdef.definitionSymbol || element,\n placeholder: maskdef.placeholder,\n nativeDef: element\n });\n } else {\n mtoken.matches.splice(position++, 0, {\n fn: null,\n optionality: false,\n newBlockMarker: prevMatch === undefined ? \"master\" : prevMatch.def !== element && prevMatch.fn !== null,\n casing: null,\n def: opts.staticDefinitionSymbol || element,\n placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,\n nativeDef: (escaped ? \"'\" : \"\") + element\n });\n escaped = false;\n }\n }\n }\n function verifyGroupMarker(maskToken) {\n if (maskToken && maskToken.matches) {\n $.each(maskToken.matches, function(ndx, token) {\n var nextToken = maskToken.matches[ndx + 1];\n if ((nextToken === undefined || (nextToken.matches === undefined || nextToken.isQuantifier === false)) && token && token.isGroup) {\n token.isGroup = false;\n if (!regexMask) {\n insertTestDefinition(token, opts.groupmarker[0], 0);\n if (token.openGroup !== true) {\n insertTestDefinition(token, opts.groupmarker[1]);\n }\n }\n }\n verifyGroupMarker(token);\n });\n }\n }\n function defaultCase() {\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n insertTestDefinition(currentOpeningToken, m);\n if (currentOpeningToken.isAlternator) {\n alternator = openenings.pop();\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) {\n if (alternator.matches[mndx].isGroup) alternator.matches[mndx].isGroup = false;\n }\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n currentOpeningToken.matches.push(alternator);\n } else {\n currentToken.matches.push(alternator);\n }\n }\n } else {\n insertTestDefinition(currentToken, m);\n }\n }\n function reverseTokens(maskToken) {\n function reverseStatic(st) {\n if (st === opts.optionalmarker[0]) st = opts.optionalmarker[1]; else if (st === opts.optionalmarker[1]) st = opts.optionalmarker[0]; else if (st === opts.groupmarker[0]) st = opts.groupmarker[1]; else if (st === opts.groupmarker[1]) st = opts.groupmarker[0];\n return st;\n }\n maskToken.matches = maskToken.matches.reverse();\n for (var match in maskToken.matches) {\n if (maskToken.matches.hasOwnProperty(match)) {\n var intMatch = parseInt(match);\n if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\n var qt = maskToken.matches[match];\n maskToken.matches.splice(match, 1);\n maskToken.matches.splice(intMatch + 1, 0, qt);\n }\n if (maskToken.matches[match].matches !== undefined) {\n maskToken.matches[match] = reverseTokens(maskToken.matches[match]);\n } else {\n maskToken.matches[match] = reverseStatic(maskToken.matches[match]);\n }\n }\n }\n return maskToken;\n }\n function groupify(matches) {\n var groupToken = new MaskToken(true);\n groupToken.openGroup = false;\n groupToken.matches = matches;\n return groupToken;\n }\n if (regexMask) {\n opts.optionalmarker[0] = undefined;\n opts.optionalmarker[1] = undefined;\n }\n while (match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask)) {\n m = match[0];\n if (regexMask) {\n switch (m.charAt(0)) {\n case \"?\":\n m = \"{0,1}\";\n break;\n\n case \"+\":\n case \"*\":\n m = \"{\" + m + \"}\";\n break;\n }\n }\n if (escaped) {\n defaultCase();\n continue;\n }\n switch (m.charAt(0)) {\n case \"(?=\":\n break;\n\n case \"(?!\":\n break;\n\n case \"(?<=\":\n break;\n\n case \"(?<!\":\n break;\n\n case opts.escapeChar:\n escaped = true;\n if (regexMask) {\n defaultCase();\n }\n break;\n\n case opts.optionalmarker[1]:\n case opts.groupmarker[1]:\n openingToken = openenings.pop();\n openingToken.openGroup = false;\n if (openingToken !== undefined) {\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n currentOpeningToken.matches.push(openingToken);\n if (currentOpeningToken.isAlternator) {\n alternator = openenings.pop();\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) {\n alternator.matches[mndx].isGroup = false;\n alternator.matches[mndx].alternatorGroup = false;\n }\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n currentOpeningToken.matches.push(alternator);\n } else {\n currentToken.matches.push(alternator);\n }\n }\n } else {\n currentToken.matches.push(openingToken);\n }\n } else defaultCase();\n break;\n\n case opts.optionalmarker[0]:\n openenings.push(new MaskToken(false, true));\n break;\n\n case opts.groupmarker[0]:\n openenings.push(new MaskToken(true));\n break;\n\n case opts.quantifiermarker[0]:\n var quantifier = new MaskToken(false, false, true);\n m = m.replace(/[{}]/g, \"\");\n var mqj = m.split(\"|\"), mq = mqj[0].split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = mq.length === 1 ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\n if (mq0 === \"*\" || mq0 === \"+\") {\n mq0 = mq1 === \"*\" ? 0 : 1;\n }\n quantifier.quantifier = {\n min: mq0,\n max: mq1,\n jit: mqj[1]\n };\n var matches = openenings.length > 0 ? openenings[openenings.length - 1].matches : currentToken.matches;\n match = matches.pop();\n if (match.isAlternator) {\n matches.push(match);\n matches = match.matches;\n var groupToken = new MaskToken(true);\n var tmpMatch = matches.pop();\n matches.push(groupToken);\n matches = groupToken.matches;\n match = tmpMatch;\n }\n if (!match.isGroup) {\n match = groupify([ match ]);\n }\n matches.push(match);\n matches.push(quantifier);\n break;\n\n case opts.alternatormarker:\n var groupQuantifier = function(matches) {\n var lastMatch = matches.pop();\n if (lastMatch.isQuantifier) {\n lastMatch = groupify([ matches.pop(), lastMatch ]);\n }\n return lastMatch;\n };\n if (openenings.length > 0) {\n currentOpeningToken = openenings[openenings.length - 1];\n var subToken = currentOpeningToken.matches[currentOpeningToken.matches.length - 1];\n if (currentOpeningToken.openGroup && (subToken.matches === undefined || subToken.isGroup === false && subToken.isAlternator === false)) {\n lastMatch = openenings.pop();\n } else {\n lastMatch = groupQuantifier(currentOpeningToken.matches);\n }\n } else {\n lastMatch = groupQuantifier(currentToken.matches);\n }\n if (lastMatch.isAlternator) {\n openenings.push(lastMatch);\n } else {\n if (lastMatch.alternatorGroup) {\n alternator = openenings.pop();\n lastMatch.alternatorGroup = false;\n } else {\n alternator = new MaskToken(false, false, false, true);\n }\n alternator.matches.push(lastMatch);\n openenings.push(alternator);\n if (lastMatch.openGroup) {\n lastMatch.openGroup = false;\n var alternatorGroup = new MaskToken(true);\n alternatorGroup.alternatorGroup = true;\n openenings.push(alternatorGroup);\n }\n }\n break;\n\n default:\n defaultCase();\n }\n }\n while (openenings.length > 0) {\n openingToken = openenings.pop();\n currentToken.matches.push(openingToken);\n }\n if (currentToken.matches.length > 0) {\n verifyGroupMarker(currentToken);\n maskTokens.push(currentToken);\n }\n if (opts.numericInput || opts.isRTL) {\n reverseTokens(maskTokens[0]);\n }\n return maskTokens;\n },\n positionColorMask: function(input, template) {\n input.style.left = template.offsetLeft + \"px\";\n }\n };\n Inputmask.extendDefaults = function(options) {\n $.extend(true, Inputmask.prototype.defaults, options);\n };\n Inputmask.extendDefinitions = function(definition) {\n $.extend(true, Inputmask.prototype.definitions, definition);\n };\n Inputmask.extendAliases = function(alias) {\n $.extend(true, Inputmask.prototype.aliases, alias);\n };\n Inputmask.format = function(value, options, metadata) {\n return Inputmask(options).format(value, metadata);\n };\n Inputmask.unmask = function(value, options) {\n return Inputmask(options).unmaskedvalue(value);\n };\n Inputmask.isValid = function(value, options) {\n return Inputmask(options).isValid(value);\n };\n Inputmask.remove = function(elems) {\n if (typeof elems === \"string\") {\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\n }\n elems = elems.nodeName ? [ elems ] : elems;\n $.each(elems, function(ndx, el) {\n if (el.inputmask) el.inputmask.remove();\n });\n };\n Inputmask.setValue = function(elems, value) {\n if (typeof elems === \"string\") {\n elems = document.getElementById(elems) || document.querySelectorAll(elems);\n }\n elems = elems.nodeName ? [ elems ] : elems;\n $.each(elems, function(ndx, el) {\n if (el.inputmask) el.inputmask.setValue(value); else $(el).trigger(\"setvalue\", [ value ]);\n });\n };\n Inputmask.escapeRegex = function(str) {\n var specials = [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ];\n return str.replace(new RegExp(\"(\\\\\" + specials.join(\"|\\\\\") + \")\", \"gim\"), \"\\\\$1\");\n };\n Inputmask.keyCode = {\n BACKSPACE: 8,\n BACKSPACE_SAFARI: 127,\n DELETE: 46,\n DOWN: 40,\n END: 35,\n ENTER: 13,\n ESCAPE: 27,\n HOME: 36,\n INSERT: 45,\n LEFT: 37,\n PAGE_DOWN: 34,\n PAGE_UP: 33,\n RIGHT: 39,\n SPACE: 32,\n TAB: 9,\n UP: 38,\n X: 88,\n CONTROL: 17\n };\n Inputmask.dependencyLib = $;\n function resolveAlias(aliasStr, options, opts) {\n var aliasDefinition = Inputmask.prototype.aliases[aliasStr];\n if (aliasDefinition) {\n if (aliasDefinition.alias) resolveAlias(aliasDefinition.alias, undefined, opts);\n $.extend(true, opts, aliasDefinition);\n $.extend(true, opts, options);\n return true;\n } else if (opts.mask === null) {\n opts.mask = aliasStr;\n }\n return false;\n }\n function generateMaskSet(opts, nocache) {\n function generateMask(mask, metadata, opts) {\n var regexMask = false;\n if (mask === null || mask === \"\") {\n regexMask = opts.regex !== null;\n if (regexMask) {\n mask = opts.regex;\n mask = mask.replace(/^(\\^)(.*)(\\$)$/, \"$2\");\n } else {\n regexMask = true;\n mask = \".*\";\n }\n }\n if (mask.length === 1 && opts.greedy === false && opts.repeat !== 0) {\n opts.placeholder = \"\";\n }\n if (opts.repeat > 0 || opts.repeat === \"*\" || opts.repeat === \"+\") {\n var repeatStart = opts.repeat === \"*\" ? 0 : opts.repeat === \"+\" ? 1 : opts.repeat;\n mask = opts.groupmarker[0] + mask + opts.groupmarker[1] + opts.quantifiermarker[0] + repeatStart + \",\" + opts.repeat + opts.quantifiermarker[1];\n }\n var masksetDefinition, maskdefKey = regexMask ? \"regex_\" + opts.regex : opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask;\n if (Inputmask.prototype.masksCache[maskdefKey] === undefined || nocache === true) {\n masksetDefinition = {\n mask: mask,\n maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),\n validPositions: {},\n _buffer: undefined,\n buffer: undefined,\n tests: {},\n excludes: {},\n metadata: metadata,\n maskLength: undefined,\n jitOffset: {}\n };\n if (nocache !== true) {\n Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition;\n masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]);\n }\n } else masksetDefinition = $.extend(true, {}, Inputmask.prototype.masksCache[maskdefKey]);\n return masksetDefinition;\n }\n var ms;\n if ($.isFunction(opts.mask)) {\n opts.mask = opts.mask(opts);\n }\n if ($.isArray(opts.mask)) {\n if (opts.mask.length > 1) {\n if (opts.keepStatic === null) {\n opts.keepStatic = \"auto\";\n for (var i = 0; i < opts.mask.length; i++) {\n if (opts.mask[i].charAt(0) !== opts.mask[0].charAt(0)) {\n opts.keepStatic = true;\n break;\n }\n }\n }\n var altMask = opts.groupmarker[0];\n $.each(opts.isRTL ? opts.mask.reverse() : opts.mask, function(ndx, msk) {\n if (altMask.length > 1) {\n altMask += opts.groupmarker[1] + opts.alternatormarker + opts.groupmarker[0];\n }\n if (msk.mask !== undefined && !$.isFunction(msk.mask)) {\n altMask += msk.mask;\n } else {\n altMask += msk;\n }\n });\n altMask += opts.groupmarker[1];\n return generateMask(altMask, opts.mask, opts);\n } else opts.mask = opts.mask.pop();\n }\n if (opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask)) {\n ms = generateMask(opts.mask.mask, opts.mask, opts);\n } else {\n ms = generateMask(opts.mask, opts.mask, opts);\n }\n return ms;\n }\n function isInputEventSupported(eventName) {\n var el = document.createElement(\"input\"), evName = \"on\" + eventName, isSupported = evName in el;\n if (!isSupported) {\n el.setAttribute(evName, \"return;\");\n isSupported = typeof el[evName] === \"function\";\n }\n el = null;\n return isSupported;\n }\n function maskScope(actionObj, maskset, opts) {\n maskset = maskset || this.maskset;\n opts = opts || this.opts;\n var inputmask = this, el = this.el, isRTL = this.isRTL, undoValue, $el, skipKeyPressEvent = false, skipInputEvent = false, ignorable = false, maxLength, mouseEnter = false, colorMask, originalPlaceholder;\n var getMaskTemplate = function(baseOnInput, minimalPos, includeMode, noJit, clearOptionalTail) {\n var greedy = opts.greedy;\n if (clearOptionalTail) opts.greedy = false;\n minimalPos = minimalPos || 0;\n var maskTemplate = [], ndxIntlzr, pos = 0, test, testPos, lvp = getLastValidPosition();\n do {\n if (baseOnInput === true && getMaskSet().validPositions[pos]) {\n testPos = clearOptionalTail && getMaskSet().validPositions[pos].match.optionality === true && getMaskSet().validPositions[pos + 1] === undefined && (getMaskSet().validPositions[pos].generatedInput === true || getMaskSet().validPositions[pos].input == opts.skipOptionalPartCharacter && pos > 0) ? determineTestTemplate(pos, getTests(pos, ndxIntlzr, pos - 1)) : getMaskSet().validPositions[pos];\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n maskTemplate.push(includeMode === true ? testPos.input : includeMode === false ? test.nativeDef : getPlaceholder(pos, test));\n } else {\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n var jitMasking = noJit === true ? false : opts.jitMasking !== false ? opts.jitMasking : test.jit;\n if (jitMasking === false || jitMasking === undefined || typeof jitMasking === \"number\" && isFinite(jitMasking) && jitMasking > pos) {\n maskTemplate.push(includeMode === false ? test.nativeDef : getPlaceholder(pos, test));\n }\n }\n if (opts.keepStatic === \"auto\") {\n if (test.newBlockMarker && test.fn !== null) {\n opts.keepStatic = pos - 1;\n }\n }\n pos++;\n } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== \"\") || minimalPos > pos);\n if (maskTemplate[maskTemplate.length - 1] === \"\") {\n maskTemplate.pop();\n }\n if (includeMode !== false || getMaskSet().maskLength === undefined) getMaskSet().maskLength = pos - 1;\n opts.greedy = greedy;\n return maskTemplate;\n };\n function getMaskSet() {\n return maskset;\n }\n function resetMaskSet(soft) {\n var maskset = getMaskSet();\n maskset.buffer = undefined;\n if (soft !== true) {\n maskset.validPositions = {};\n maskset.p = 0;\n }\n }\n function getLastValidPosition(closestTo, strict, validPositions) {\n var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;\n if (closestTo === undefined) closestTo = -1;\n for (var posNdx in valids) {\n var psNdx = parseInt(posNdx);\n if (valids[psNdx] && (strict || valids[psNdx].generatedInput !== true)) {\n if (psNdx <= closestTo) before = psNdx;\n if (psNdx >= closestTo) after = psNdx;\n }\n }\n return before === -1 || before == closestTo ? after : after == -1 ? before : closestTo - before < after - closestTo ? before : after;\n }\n function getDecisionTaker(tst) {\n var decisionTaker = tst.locator[tst.alternation];\n if (typeof decisionTaker == \"string\" && decisionTaker.length > 0) {\n decisionTaker = decisionTaker.split(\",\")[0];\n }\n return decisionTaker !== undefined ? decisionTaker.toString() : \"\";\n }\n function getLocator(tst, align) {\n var locator = (tst.alternation != undefined ? tst.mloc[getDecisionTaker(tst)] : tst.locator).join(\"\");\n if (locator !== \"\") while (locator.length < align) locator += \"0\";\n return locator;\n }\n function determineTestTemplate(pos, tests) {\n pos = pos > 0 ? pos - 1 : 0;\n var altTest = getTest(pos), targetLocator = getLocator(altTest), tstLocator, closest, bestMatch;\n for (var ndx = 0; ndx < tests.length; ndx++) {\n var tst = tests[ndx];\n tstLocator = getLocator(tst, targetLocator.length);\n var distance = Math.abs(tstLocator - targetLocator);\n if (closest === undefined || tstLocator !== \"\" && distance < closest || bestMatch && !opts.greedy && bestMatch.match.optionality && bestMatch.match.newBlockMarker === \"master\" && (!tst.match.optionality || !tst.match.newBlockMarker) || bestMatch && bestMatch.match.optionalQuantifier && !tst.match.optionalQuantifier) {\n closest = distance;\n bestMatch = tst;\n }\n }\n return bestMatch;\n }\n function getTestTemplate(pos, ndxIntlzr, tstPs) {\n return getMaskSet().validPositions[pos] || determineTestTemplate(pos, getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));\n }\n function getTest(pos, tests) {\n if (getMaskSet().validPositions[pos]) {\n return getMaskSet().validPositions[pos];\n }\n return (tests || getTests(pos))[0];\n }\n function positionCanMatchDefinition(pos, def) {\n var valid = false, tests = getTests(pos);\n for (var tndx = 0; tndx < tests.length; tndx++) {\n if (tests[tndx].match && tests[tndx].match.def === def) {\n valid = true;\n break;\n }\n }\n return valid;\n }\n function getTests(pos, ndxIntlzr, tstPs) {\n var maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = false, latestMatch, cacheDependency = ndxIntlzr ? ndxIntlzr.join(\"\") : \"\";\n function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\n function handleMatch(match, loopNdx, quantifierRecurse) {\n function isFirstMatch(latestMatch, tokenGroup) {\n var firstMatch = $.inArray(latestMatch, tokenGroup.matches) === 0;\n if (!firstMatch) {\n $.each(tokenGroup.matches, function(ndx, match) {\n if (match.isQuantifier === true) firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]); else if (match.hasOwnProperty(\"matches\")) firstMatch = isFirstMatch(latestMatch, match);\n if (firstMatch) return false;\n });\n }\n return firstMatch;\n }\n function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {\n var bestMatch, indexPos;\n if (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) {\n $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) {\n if (lmnt.mloc[alternateNdx]) {\n bestMatch = lmnt;\n return false;\n }\n var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;\n if ((indexPos === undefined || ndxPos < indexPos) && ndxPos !== -1) {\n bestMatch = lmnt;\n indexPos = ndxPos;\n }\n });\n }\n if (bestMatch) {\n var bestMatchAltIndex = bestMatch.locator[bestMatch.alternation];\n var locator = bestMatch.mloc[alternateNdx] || bestMatch.mloc[bestMatchAltIndex] || bestMatch.locator;\n return locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1);\n } else {\n return targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;\n }\n }\n function isSubsetOf(source, target) {\n function expand(pattern) {\n var expanded = [], start, end;\n for (var i = 0, l = pattern.length; i < l; i++) {\n if (pattern.charAt(i) === \"-\") {\n end = pattern.charCodeAt(i + 1);\n while (++start < end) expanded.push(String.fromCharCode(start));\n } else {\n start = pattern.charCodeAt(i);\n expanded.push(pattern.charAt(i));\n }\n }\n return expanded.join(\"\");\n }\n if (opts.regex && source.match.fn !== null && target.match.fn !== null) {\n return expand(target.match.def.replace(/[\\[\\]]/g, \"\")).indexOf(expand(source.match.def.replace(/[\\[\\]]/g, \"\"))) !== -1;\n }\n return source.match.def === target.match.nativeDef;\n }\n function staticCanMatchDefinition(source, target) {\n var sloc = source.locator.slice(source.alternation).join(\"\"), tloc = target.locator.slice(target.alternation).join(\"\"), canMatch = sloc == tloc;\n canMatch = canMatch && source.match.fn === null && target.match.fn !== null ? target.match.fn.test(source.match.def, getMaskSet(), pos, false, opts, false) : false;\n return canMatch;\n }\n function setMergeLocators(targetMatch, altMatch) {\n if (altMatch === undefined || targetMatch.alternation === altMatch.alternation && targetMatch.locator[targetMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) === -1) {\n targetMatch.mloc = targetMatch.mloc || {};\n var locNdx = targetMatch.locator[targetMatch.alternation];\n if (locNdx === undefined) targetMatch.alternation = undefined; else {\n if (typeof locNdx === \"string\") locNdx = locNdx.split(\",\")[0];\n if (targetMatch.mloc[locNdx] === undefined) targetMatch.mloc[locNdx] = targetMatch.locator.slice();\n if (altMatch !== undefined) {\n for (var ndx in altMatch.mloc) {\n if (typeof ndx === \"string\") ndx = ndx.split(\",\")[0];\n if (targetMatch.mloc[ndx] === undefined) targetMatch.mloc[ndx] = altMatch.mloc[ndx];\n }\n targetMatch.locator[targetMatch.alternation] = Object.keys(targetMatch.mloc).join(\",\");\n }\n return true;\n }\n }\n return false;\n }\n if (testPos > 500 && quantifierRecurse !== undefined) {\n throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + getMaskSet().mask;\n }\n if (testPos === pos && match.matches === undefined) {\n matches.push({\n match: match,\n locator: loopNdx.reverse(),\n cd: cacheDependency,\n mloc: {}\n });\n return true;\n } else if (match.matches !== undefined) {\n if (match.isGroup && quantifierRecurse !== match) {\n match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx, quantifierRecurse);\n if (match) return true;\n } else if (match.isOptional) {\n var optionalToken = match;\n match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse);\n if (match) {\n $.each(matches, function(ndx, mtch) {\n mtch.match.optionality = true;\n });\n latestMatch = matches[matches.length - 1].match;\n if (quantifierRecurse === undefined && isFirstMatch(latestMatch, optionalToken)) {\n insertStop = true;\n testPos = pos;\n } else return true;\n }\n } else if (match.isAlternator) {\n var alternateToken = match, malternateMatches = [], maltMatches, currentMatches = matches.slice(), loopNdxCnt = loopNdx.length;\n var altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;\n if (altIndex === -1 || typeof altIndex === \"string\") {\n var currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [], amndx;\n if (typeof altIndex == \"string\") {\n altIndexArr = altIndex.split(\",\");\n } else {\n for (amndx = 0; amndx < alternateToken.matches.length; amndx++) {\n altIndexArr.push(amndx.toString());\n }\n }\n if (getMaskSet().excludes[pos]) {\n var altIndexArrClone = altIndexArr.slice();\n for (var i = 0, el = getMaskSet().excludes[pos].length; i < el; i++) {\n altIndexArr.splice(altIndexArr.indexOf(getMaskSet().excludes[pos][i].toString()), 1);\n }\n if (altIndexArr.length === 0) {\n getMaskSet().excludes[pos] = undefined;\n altIndexArr = altIndexArrClone;\n }\n }\n if (opts.keepStatic === true || isFinite(parseInt(opts.keepStatic)) && currentPos >= opts.keepStatic) altIndexArr = altIndexArr.slice(0, 1);\n var unMatchedAlternation = false;\n for (var ndx = 0; ndx < altIndexArr.length; ndx++) {\n amndx = parseInt(altIndexArr[ndx]);\n matches = [];\n ndxInitializer = typeof altIndex === \"string\" ? resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice() : ndxInitializerClone.slice();\n if (alternateToken.matches[amndx] && handleMatch(alternateToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse)) match = true; else if (ndx === 0) {\n unMatchedAlternation = true;\n }\n maltMatches = matches.slice();\n testPos = currentPos;\n matches = [];\n for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\n var altMatch = maltMatches[ndx1], dropMatch = false;\n altMatch.match.jit = altMatch.match.jit || unMatchedAlternation;\n altMatch.alternation = altMatch.alternation || loopNdxCnt;\n setMergeLocators(altMatch);\n for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\n var altMatch2 = malternateMatches[ndx2];\n if (typeof altIndex !== \"string\" || altMatch.alternation !== undefined && $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr) !== -1) {\n if (altMatch.match.nativeDef === altMatch2.match.nativeDef) {\n dropMatch = true;\n setMergeLocators(altMatch2, altMatch);\n break;\n } else if (isSubsetOf(altMatch, altMatch2)) {\n if (setMergeLocators(altMatch, altMatch2)) {\n dropMatch = true;\n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch);\n }\n break;\n } else if (isSubsetOf(altMatch2, altMatch)) {\n setMergeLocators(altMatch2, altMatch);\n break;\n } else if (staticCanMatchDefinition(altMatch, altMatch2)) {\n if (setMergeLocators(altMatch, altMatch2)) {\n dropMatch = true;\n malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch);\n }\n break;\n }\n }\n }\n if (!dropMatch) {\n malternateMatches.push(altMatch);\n }\n }\n }\n matches = currentMatches.concat(malternateMatches);\n testPos = pos;\n insertStop = matches.length > 0;\n match = malternateMatches.length > 0;\n ndxInitializer = ndxInitializerClone.slice();\n } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\n if (match) return true;\n } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) {\n var qt = match;\n for (var qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {\n var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];\n match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup);\n if (match) {\n latestMatch = matches[matches.length - 1].match;\n latestMatch.optionalQuantifier = qndx >= qt.quantifier.min;\n latestMatch.jit = (qndx || 1) * tokenGroup.matches.indexOf(latestMatch) >= qt.quantifier.jit;\n if (latestMatch.optionalQuantifier && isFirstMatch(latestMatch, tokenGroup)) {\n insertStop = true;\n testPos = pos;\n break;\n }\n if (latestMatch.jit) {\n getMaskSet().jitOffset[pos] = tokenGroup.matches.indexOf(latestMatch);\n }\n return true;\n }\n }\n } else {\n match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse);\n if (match) return true;\n }\n } else {\n testPos++;\n }\n }\n for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) {\n if (maskToken.matches[tndx].isQuantifier !== true) {\n var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\n if (match && testPos === pos) {\n return match;\n } else if (testPos > pos) {\n break;\n }\n }\n }\n }\n function mergeLocators(pos, tests) {\n var locator = [];\n if (!$.isArray(tests)) tests = [ tests ];\n if (tests.length > 0) {\n if (tests[0].alternation === undefined) {\n locator = determineTestTemplate(pos, tests.slice()).locator.slice();\n if (locator.length === 0) locator = tests[0].locator.slice();\n } else {\n $.each(tests, function(ndx, tst) {\n if (tst.def !== \"\") {\n if (locator.length === 0) locator = tst.locator.slice(); else {\n for (var i = 0; i < locator.length; i++) {\n if (tst.locator[i] && locator[i].toString().indexOf(tst.locator[i]) === -1) {\n locator[i] += \",\" + tst.locator[i];\n }\n }\n }\n }\n });\n }\n }\n return locator;\n }\n if (pos > -1) {\n if (ndxIntlzr === undefined) {\n var previousPos = pos - 1, test;\n while ((test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1) {\n previousPos--;\n }\n if (test !== undefined && previousPos > -1) {\n ndxInitializer = mergeLocators(previousPos, test);\n cacheDependency = ndxInitializer.join(\"\");\n testPos = previousPos;\n }\n }\n if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) {\n return getMaskSet().tests[pos];\n }\n for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\n var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]);\n if (match && testPos === pos || testPos > pos) {\n break;\n }\n }\n }\n if (matches.length === 0 || insertStop) {\n matches.push({\n match: {\n fn: null,\n optionality: false,\n casing: null,\n def: \"\",\n placeholder: \"\"\n },\n locator: [],\n mloc: {},\n cd: cacheDependency\n });\n }\n if (ndxIntlzr !== undefined && getMaskSet().tests[pos]) {\n return $.extend(true, [], matches);\n }\n getMaskSet().tests[pos] = $.extend(true, [], matches);\n return getMaskSet().tests[pos];\n }\n function getBufferTemplate() {\n if (getMaskSet()._buffer === undefined) {\n getMaskSet()._buffer = getMaskTemplate(false, 1);\n if (getMaskSet().buffer === undefined) getMaskSet().buffer = getMaskSet()._buffer.slice();\n }\n return getMaskSet()._buffer;\n }\n function getBuffer(noCache) {\n if (getMaskSet().buffer === undefined || noCache === true) {\n getMaskSet().buffer = getMaskTemplate(true, getLastValidPosition(), true);\n if (getMaskSet()._buffer === undefined) getMaskSet()._buffer = getMaskSet().buffer.slice();\n }\n return getMaskSet().buffer;\n }\n function refreshFromBuffer(start, end, buffer) {\n var i, p;\n if (start === true) {\n resetMaskSet();\n start = 0;\n end = buffer.length;\n } else {\n for (i = start; i < end; i++) {\n delete getMaskSet().validPositions[i];\n }\n }\n p = start;\n for (i = start; i < end; i++) {\n resetMaskSet(true);\n if (buffer[i] !== opts.skipOptionalPartCharacter) {\n var valResult = isValid(p, buffer[i], true, true);\n if (valResult !== false) {\n resetMaskSet(true);\n p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1;\n }\n }\n }\n }\n function casing(elem, test, pos) {\n switch (opts.casing || test.casing) {\n case \"upper\":\n elem = elem.toUpperCase();\n break;\n\n case \"lower\":\n elem = elem.toLowerCase();\n break;\n\n case \"title\":\n var posBefore = getMaskSet().validPositions[pos - 1];\n if (pos === 0 || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE)) {\n elem = elem.toUpperCase();\n } else {\n elem = elem.toLowerCase();\n }\n break;\n\n default:\n if ($.isFunction(opts.casing)) {\n var args = Array.prototype.slice.call(arguments);\n args.push(getMaskSet().validPositions);\n elem = opts.casing.apply(this, args);\n }\n }\n return elem;\n }\n function checkAlternationMatch(altArr1, altArr2, na) {\n var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = false, naArr = na !== undefined ? na.split(\",\") : [], naNdx;\n for (var i = 0; i < naArr.length; i++) {\n if ((naNdx = altArr1.indexOf(naArr[i])) !== -1) {\n altArr1.splice(naNdx, 1);\n }\n }\n for (var alndx = 0; alndx < altArr1.length; alndx++) {\n if ($.inArray(altArr1[alndx], altArrC) !== -1) {\n isMatch = true;\n break;\n }\n }\n return isMatch;\n }\n function alternate(pos, c, strict, fromSetValid, rAltPos) {\n var validPsClone = $.extend(true, {}, getMaskSet().validPositions), lastAlt, alternation, isValidRslt = false, altPos, prevAltPos, i, validPos, decisionPos, lAltPos = rAltPos !== undefined ? rAltPos : getLastValidPosition();\n if (lAltPos === -1 && rAltPos === undefined) {\n lastAlt = 0;\n prevAltPos = getTest(lastAlt);\n alternation = prevAltPos.alternation;\n } else {\n for (;lAltPos >= 0; lAltPos--) {\n altPos = getMaskSet().validPositions[lAltPos];\n if (altPos && altPos.alternation !== undefined) {\n if (prevAltPos && prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) {\n break;\n }\n lastAlt = lAltPos;\n alternation = getMaskSet().validPositions[lastAlt].alternation;\n prevAltPos = altPos;\n }\n }\n }\n if (alternation !== undefined) {\n decisionPos = parseInt(lastAlt);\n getMaskSet().excludes[decisionPos] = getMaskSet().excludes[decisionPos] || [];\n if (pos !== true) {\n getMaskSet().excludes[decisionPos].push(getDecisionTaker(prevAltPos));\n }\n var validInputsClone = [], staticInputsBeforePos = 0;\n for (i = decisionPos; i < getLastValidPosition(undefined, true) + 1; i++) {\n validPos = getMaskSet().validPositions[i];\n if (validPos && validPos.generatedInput !== true) {\n validInputsClone.push(validPos.input);\n } else if (i < pos) staticInputsBeforePos++;\n delete getMaskSet().validPositions[i];\n }\n while (getMaskSet().excludes[decisionPos] && getMaskSet().excludes[decisionPos].length < 10) {\n var posOffset = staticInputsBeforePos * -1, validInputs = validInputsClone.slice();\n getMaskSet().tests[decisionPos] = undefined;\n resetMaskSet(true);\n isValidRslt = true;\n while (validInputs.length > 0) {\n var input = validInputs.shift();\n if (!(isValidRslt = isValid(getLastValidPosition(undefined, true) + 1, input, false, fromSetValid, true))) {\n break;\n }\n }\n if (isValidRslt && c !== undefined) {\n var targetLvp = getLastValidPosition(pos) + 1;\n for (i = decisionPos; i < getLastValidPosition() + 1; i++) {\n validPos = getMaskSet().validPositions[i];\n if ((validPos === undefined || validPos.match.fn == null) && i < pos + posOffset) {\n posOffset++;\n }\n }\n pos = pos + posOffset;\n isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid, true);\n }\n if (!isValidRslt) {\n resetMaskSet();\n prevAltPos = getTest(decisionPos);\n getMaskSet().validPositions = $.extend(true, {}, validPsClone);\n if (getMaskSet().excludes[decisionPos]) {\n var decisionTaker = getDecisionTaker(prevAltPos);\n if (getMaskSet().excludes[decisionPos].indexOf(decisionTaker) !== -1) {\n isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1);\n break;\n }\n getMaskSet().excludes[decisionPos].push(decisionTaker);\n for (i = decisionPos; i < getLastValidPosition(undefined, true) + 1; i++) delete getMaskSet().validPositions[i];\n } else {\n isValidRslt = alternate(pos, c, strict, fromSetValid, decisionPos - 1);\n break;\n }\n } else break;\n }\n }\n getMaskSet().excludes[decisionPos] = undefined;\n return isValidRslt;\n }\n function isValid(pos, c, strict, fromSetValid, fromAlternate, validateOnly) {\n function isSelection(posObj) {\n return isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end === 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin === 1;\n }\n strict = strict === true;\n var maskPos = pos;\n if (pos.begin !== undefined) {\n maskPos = isRTL ? pos.end : pos.begin;\n }\n function _isValid(position, c, strict) {\n var rslt = false;\n $.each(getTests(position), function(ndx, tst) {\n var test = tst.match;\n getBuffer(true);\n rslt = test.fn != null ? test.fn.test(c, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && test.def !== \"\" ? {\n c: getPlaceholder(position, test, true) || test.def,\n pos: position\n } : false;\n if (rslt !== false) {\n var elem = rslt.c !== undefined ? rslt.c : c, validatedPos = position;\n elem = elem === opts.skipOptionalPartCharacter && test.fn === null ? getPlaceholder(position, test, true) || test.def : elem;\n if (rslt.remove !== undefined) {\n if (!$.isArray(rslt.remove)) rslt.remove = [ rslt.remove ];\n $.each(rslt.remove.sort(function(a, b) {\n return b - a;\n }), function(ndx, lmnt) {\n revalidateMask({\n begin: lmnt,\n end: lmnt + 1\n });\n });\n }\n if (rslt.insert !== undefined) {\n if (!$.isArray(rslt.insert)) rslt.insert = [ rslt.insert ];\n $.each(rslt.insert.sort(function(a, b) {\n return a - b;\n }), function(ndx, lmnt) {\n isValid(lmnt.pos, lmnt.c, true, fromSetValid);\n });\n }\n if (rslt !== true && rslt.pos !== undefined && rslt.pos !== position) {\n validatedPos = rslt.pos;\n }\n if (rslt !== true && rslt.pos === undefined && rslt.c === undefined) {\n return false;\n }\n if (!revalidateMask(pos, $.extend({}, tst, {\n input: casing(elem, test, validatedPos)\n }), fromSetValid, validatedPos)) {\n rslt = false;\n }\n return false;\n }\n });\n return rslt;\n }\n var result = true, positionsClone = $.extend(true, {}, getMaskSet().validPositions);\n if ($.isFunction(opts.preValidation) && !strict && fromSetValid !== true && validateOnly !== true) {\n result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts, getMaskSet());\n }\n if (result === true) {\n trackbackPositions(undefined, maskPos, true);\n if (maxLength === undefined || maskPos < maxLength) {\n result = _isValid(maskPos, c, strict);\n if ((!strict || fromSetValid === true) && result === false && validateOnly !== true) {\n var currentPosValid = getMaskSet().validPositions[maskPos];\n if (currentPosValid && currentPosValid.match.fn === null && (currentPosValid.match.def === c || c === opts.skipOptionalPartCharacter)) {\n result = {\n caret: seekNext(maskPos)\n };\n } else {\n if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && (!isMask(maskPos, true) || getMaskSet().jitOffset[maskPos])) {\n if (getMaskSet().jitOffset[maskPos] && getMaskSet().validPositions[seekNext(maskPos)] === undefined) {\n result = isValid(maskPos + getMaskSet().jitOffset[maskPos], c, strict);\n if (result !== false) result.caret = maskPos;\n } else for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) {\n result = _isValid(nPos, c, strict);\n if (result !== false) {\n result = trackbackPositions(maskPos, result.pos !== undefined ? result.pos : nPos) || result;\n maskPos = nPos;\n break;\n }\n }\n }\n }\n }\n }\n if (result === false && opts.keepStatic !== false && (opts.regex == null || isComplete(getBuffer())) && !strict && fromAlternate !== true) {\n result = alternate(maskPos, c, strict, fromSetValid);\n }\n if (result === true) {\n result = {\n pos: maskPos\n };\n }\n }\n if ($.isFunction(opts.postValidation) && result !== false && !strict && fromSetValid !== true && validateOnly !== true) {\n var postResult = opts.postValidation(getBuffer(true), pos.begin !== undefined ? isRTL ? pos.end : pos.begin : pos, result, opts);\n if (postResult !== undefined) {\n if (postResult.refreshFromBuffer && postResult.buffer) {\n var refresh = postResult.refreshFromBuffer;\n refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, postResult.buffer);\n }\n result = postResult === true ? result : postResult;\n }\n }\n if (result && result.pos === undefined) {\n result.pos = maskPos;\n }\n if (result === false || validateOnly === true) {\n resetMaskSet(true);\n getMaskSet().validPositions = $.extend(true, {}, positionsClone);\n }\n return result;\n }\n function trackbackPositions(originalPos, newPos, fillOnly) {\n var result;\n if (originalPos === undefined) {\n for (originalPos = newPos - 1; originalPos > 0; originalPos--) {\n if (getMaskSet().validPositions[originalPos]) break;\n }\n }\n for (var ps = originalPos; ps < newPos; ps++) {\n if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, true)) {\n var vp = ps == 0 ? getTest(ps) : getMaskSet().validPositions[ps - 1];\n if (vp) {\n var tests = getTests(ps).slice();\n if (tests[tests.length - 1].match.def === \"\") tests.pop();\n var bestMatch = determineTestTemplate(ps, tests);\n bestMatch = $.extend({}, bestMatch, {\n input: getPlaceholder(ps, bestMatch.match, true) || bestMatch.match.def\n });\n bestMatch.generatedInput = true;\n revalidateMask(ps, bestMatch, true);\n if (fillOnly !== true) {\n var cvpInput = getMaskSet().validPositions[newPos].input;\n getMaskSet().validPositions[newPos] = undefined;\n result = isValid(newPos, cvpInput, true, true);\n }\n }\n }\n }\n return result;\n }\n function revalidateMask(pos, validTest, fromSetValid, validatedPos) {\n function IsEnclosedStatic(pos, valids, selection) {\n var posMatch = valids[pos];\n if (posMatch !== undefined && (posMatch.match.fn === null && posMatch.match.optionality !== true || posMatch.input === opts.radixPoint)) {\n var prevMatch = selection.begin <= pos - 1 ? valids[pos - 1] && valids[pos - 1].match.fn === null && valids[pos - 1] : valids[pos - 1], nextMatch = selection.end > pos + 1 ? valids[pos + 1] && valids[pos + 1].match.fn === null && valids[pos + 1] : valids[pos + 1];\n return prevMatch && nextMatch;\n }\n return false;\n }\n var begin = pos.begin !== undefined ? pos.begin : pos, end = pos.end !== undefined ? pos.end : pos;\n if (pos.begin > pos.end) {\n begin = pos.end;\n end = pos.begin;\n }\n validatedPos = validatedPos !== undefined ? validatedPos : begin;\n if (begin !== end || opts.insertMode && getMaskSet().validPositions[validatedPos] !== undefined && fromSetValid === undefined) {\n var positionsClone = $.extend(true, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, true), i;\n getMaskSet().p = begin;\n for (i = lvp; i >= begin; i--) {\n if (getMaskSet().validPositions[i] && getMaskSet().validPositions[i].match.nativeDef === \"+\") {\n opts.isNegative = false;\n }\n delete getMaskSet().validPositions[i];\n }\n var valid = true, j = validatedPos, vps = getMaskSet().validPositions, needsValidation = false, posMatch = j, i = j;\n if (validTest) {\n getMaskSet().validPositions[validatedPos] = $.extend(true, {}, validTest);\n posMatch++;\n j++;\n if (begin < end) i++;\n }\n for (;i <= lvp; i++) {\n var t = positionsClone[i];\n if (t !== undefined && (i >= end || i >= begin && t.generatedInput !== true && IsEnclosedStatic(i, positionsClone, {\n begin: begin,\n end: end\n }))) {\n while (getTest(posMatch).match.def !== \"\") {\n if (needsValidation === false && positionsClone[posMatch] && positionsClone[posMatch].match.nativeDef === t.match.nativeDef) {\n getMaskSet().validPositions[posMatch] = $.extend(true, {}, positionsClone[posMatch]);\n getMaskSet().validPositions[posMatch].input = t.input;\n trackbackPositions(undefined, posMatch, true);\n j = posMatch + 1;\n valid = true;\n } else if (opts.shiftPositions && positionCanMatchDefinition(posMatch, t.match.def)) {\n var result = isValid(posMatch, t.input, true, true);\n valid = result !== false;\n j = result.caret || result.insert ? getLastValidPosition() : posMatch + 1;\n needsValidation = true;\n } else {\n valid = t.generatedInput === true || t.input === opts.radixPoint && opts.numericInput === true;\n }\n if (valid) break;\n if (!valid && posMatch > end && isMask(posMatch, true) && (t.match.fn !== null || posMatch > getMaskSet().maskLength)) {\n break;\n }\n posMatch++;\n }\n if (getTest(posMatch).match.def == \"\") valid = false;\n posMatch = j;\n }\n if (!valid) break;\n }\n if (!valid) {\n getMaskSet().validPositions = $.extend(true, {}, positionsClone);\n resetMaskSet(true);\n return false;\n }\n } else if (validTest) {\n getMaskSet().validPositions[validatedPos] = $.extend(true, {}, validTest);\n }\n resetMaskSet(true);\n return true;\n }\n function isMask(pos, strict) {\n var test = getTestTemplate(pos).match;\n if (test.def === \"\") test = getTest(pos).match;\n if (test.fn != null) {\n return test.fn;\n }\n if (strict !== true && pos > -1) {\n var tests = getTests(pos);\n return tests.length > 1 + (tests[tests.length - 1].match.def === \"\" ? 1 : 0);\n }\n return false;\n }\n function seekNext(pos, newBlock) {\n var position = pos + 1;\n while (getTest(position).match.def !== \"\" && (newBlock === true && (getTest(position).match.newBlockMarker !== true || !isMask(position)) || newBlock !== true && !isMask(position))) {\n position++;\n }\n return position;\n }\n function seekPrevious(pos, newBlock) {\n var position = pos, tests;\n if (position <= 0) return 0;\n while (--position > 0 && (newBlock === true && getTest(position).match.newBlockMarker !== true || newBlock !== true && !isMask(position) && (tests = getTests(position), \n tests.length < 2 || tests.length === 2 && tests[1].match.def === \"\"))) {}\n return position;\n }\n function writeBuffer(input, buffer, caretPos, event, triggerEvents) {\n if (event && $.isFunction(opts.onBeforeWrite)) {\n var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);\n if (result) {\n if (result.refreshFromBuffer) {\n var refresh = result.refreshFromBuffer;\n refreshFromBuffer(refresh === true ? refresh : refresh.start, refresh.end, result.buffer || buffer);\n buffer = getBuffer(true);\n }\n if (caretPos !== undefined) caretPos = result.caret !== undefined ? result.caret : caretPos;\n }\n }\n if (input !== undefined) {\n input.inputmask._valueSet(buffer.join(\"\"));\n if (caretPos !== undefined && (event === undefined || event.type !== \"blur\")) {\n caret(input, caretPos);\n } else renderColorMask(input, caretPos, buffer.length === 0);\n if (triggerEvents === true) {\n var $input = $(input), nptVal = input.inputmask._valueGet();\n skipInputEvent = true;\n $input.trigger(\"input\");\n setTimeout(function() {\n if (nptVal === getBufferTemplate().join(\"\")) {\n $input.trigger(\"cleared\");\n } else if (isComplete(buffer) === true) {\n $input.trigger(\"complete\");\n }\n }, 0);\n }\n }\n }\n function getPlaceholder(pos, test, returnPL) {\n test = test || getTest(pos).match;\n if (test.placeholder !== undefined || returnPL === true) {\n return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;\n } else if (test.fn === null) {\n if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {\n var tests = getTests(pos), staticAlternations = [], prevTest;\n if (tests.length > 1 + (tests[tests.length - 1].match.def === \"\" ? 1 : 0)) {\n for (var i = 0; i < tests.length; i++) {\n if (tests[i].match.optionality !== true && tests[i].match.optionalQuantifier !== true && (tests[i].match.fn === null || (prevTest === undefined || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, true, opts) !== false))) {\n staticAlternations.push(tests[i]);\n if (tests[i].match.fn === null) prevTest = tests[i];\n if (staticAlternations.length > 1) {\n if (/[0-9a-bA-Z]/.test(staticAlternations[0].match.def)) {\n return opts.placeholder.charAt(pos % opts.placeholder.length);\n }\n }\n }\n }\n }\n }\n return test.def;\n }\n return opts.placeholder.charAt(pos % opts.placeholder.length);\n }\n function HandleNativePlaceholder(npt, value) {\n if (ie) {\n if (npt.inputmask._valueGet() !== value && (npt.placeholder !== value || npt.placeholder === \"\")) {\n var buffer = getBuffer().slice(), nptValue = npt.inputmask._valueGet();\n if (nptValue !== value) {\n var lvp = getLastValidPosition();\n if (lvp === -1 && nptValue === getBufferTemplate().join(\"\")) {\n buffer = [];\n } else if (lvp !== -1) {\n clearOptionalTail(buffer);\n }\n writeBuffer(npt, buffer);\n }\n }\n } else if (npt.placeholder !== value) {\n npt.placeholder = value;\n if (npt.placeholder === \"\") npt.removeAttribute(\"placeholder\");\n }\n }\n var EventRuler = {\n on: function(input, eventName, eventHandler) {\n var ev = function(e) {\n var that = this;\n if (that.inputmask === undefined && this.nodeName !== \"FORM\") {\n var imOpts = $.data(that, \"_inputmask_opts\");\n if (imOpts) new Inputmask(imOpts).mask(that); else EventRuler.off(that);\n } else if (e.type !== \"setvalue\" && this.nodeName !== \"FORM\" && (that.disabled || that.readOnly && !(e.type === \"keydown\" && (e.ctrlKey && e.keyCode === 67) || opts.tabThrough === false && e.keyCode === Inputmask.keyCode.TAB))) {\n e.preventDefault();\n } else {\n switch (e.type) {\n case \"input\":\n if (skipInputEvent === true) {\n skipInputEvent = false;\n return e.preventDefault();\n }\n if (mobile) {\n var args = arguments;\n setTimeout(function() {\n eventHandler.apply(that, args);\n caret(that, that.inputmask.caretPos, undefined, true);\n }, 0);\n return false;\n }\n break;\n\n case \"keydown\":\n skipKeyPressEvent = false;\n skipInputEvent = false;\n break;\n\n case \"keypress\":\n if (skipKeyPressEvent === true) {\n return e.preventDefault();\n }\n skipKeyPressEvent = true;\n break;\n\n case \"click\":\n if (iemobile || iphone) {\n var args = arguments;\n setTimeout(function() {\n eventHandler.apply(that, args);\n }, 0);\n return false;\n }\n break;\n }\n var returnVal = eventHandler.apply(that, arguments);\n if (returnVal === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n return returnVal;\n }\n };\n input.inputmask.events[eventName] = input.inputmask.events[eventName] || [];\n input.inputmask.events[eventName].push(ev);\n if ($.inArray(eventName, [ \"submit\", \"reset\" ]) !== -1) {\n if (input.form !== null) $(input.form).on(eventName, ev);\n } else {\n $(input).on(eventName, ev);\n }\n },\n off: function(input, event) {\n if (input.inputmask && input.inputmask.events) {\n var events;\n if (event) {\n events = [];\n events[event] = input.inputmask.events[event];\n } else {\n events = input.inputmask.events;\n }\n $.each(events, function(eventName, evArr) {\n while (evArr.length > 0) {\n var ev = evArr.pop();\n if ($.inArray(eventName, [ \"submit\", \"reset\" ]) !== -1) {\n if (input.form !== null) $(input.form).off(eventName, ev);\n } else {\n $(input).off(eventName, ev);\n }\n }\n delete input.inputmask.events[eventName];\n });\n }\n }\n };\n var EventHandlers = {\n keydownEvent: function(e) {\n var input = this, $input = $(input), k = e.keyCode, pos = caret(input);\n if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !isInputEventSupported(\"cut\")) {\n e.preventDefault();\n handleRemove(input, k, pos);\n writeBuffer(input, getBuffer(true), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join(\"\"));\n } else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {\n e.preventDefault();\n var caretPos = seekNext(getLastValidPosition());\n caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, true);\n } else if (k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP) {\n e.preventDefault();\n caret(input, 0, e.shiftKey ? pos.begin : 0, true);\n } else if ((opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || k === 90 && e.ctrlKey) && e.altKey !== true) {\n checkVal(input, true, false, undoValue.split(\"\"));\n $input.trigger(\"click\");\n } else if (k === Inputmask.keyCode.INSERT && !(e.shiftKey || e.ctrlKey)) {\n opts.insertMode = !opts.insertMode;\n input.setAttribute(\"im-insert\", opts.insertMode);\n } else if (opts.tabThrough === true && k === Inputmask.keyCode.TAB) {\n if (e.shiftKey === true) {\n if (getTest(pos.begin).match.fn === null) {\n pos.begin = seekNext(pos.begin);\n }\n pos.end = seekPrevious(pos.begin, true);\n pos.begin = seekPrevious(pos.end, true);\n } else {\n pos.begin = seekNext(pos.begin, true);\n pos.end = seekNext(pos.begin, true);\n if (pos.end < getMaskSet().maskLength) pos.end--;\n }\n if (pos.begin < getMaskSet().maskLength) {\n e.preventDefault();\n caret(input, pos.begin, pos.end);\n }\n }\n opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts);\n ignorable = $.inArray(k, opts.ignorables) !== -1;\n },\n keypressEvent: function(e, checkval, writeOut, strict, ndx) {\n var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;\n if (checkval !== true && (!(e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable))) {\n if (k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join(\"\")) {\n undoValue = getBuffer().join(\"\");\n setTimeout(function() {\n $input.trigger(\"change\");\n }, 0);\n }\n return true;\n } else {\n if (k) {\n if (k === 46 && e.shiftKey === false && opts.radixPoint !== \"\") k = opts.radixPoint.charCodeAt(0);\n var pos = checkval ? {\n begin: ndx,\n end: ndx\n } : caret(input), forwardPosition, c = String.fromCharCode(k), offset = 0;\n if (opts._radixDance && opts.numericInput) {\n var caretPos = getBuffer().indexOf(opts.radixPoint.charAt(0)) + 1;\n if (pos.begin <= caretPos) {\n if (k === opts.radixPoint.charCodeAt(0)) offset = 1;\n pos.begin -= 1;\n pos.end -= 1;\n }\n }\n getMaskSet().writeOutBuffer = true;\n var valResult = isValid(pos, c, strict);\n if (valResult !== false) {\n resetMaskSet(true);\n forwardPosition = valResult.caret !== undefined ? valResult.caret : seekNext(valResult.pos.begin ? valResult.pos.begin : valResult.pos);\n getMaskSet().p = forwardPosition;\n }\n forwardPosition = (opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition) + offset;\n if (writeOut !== false) {\n setTimeout(function() {\n opts.onKeyValidation.call(input, k, valResult, opts);\n }, 0);\n if (getMaskSet().writeOutBuffer && valResult !== false) {\n var buffer = getBuffer();\n writeBuffer(input, buffer, forwardPosition, e, checkval !== true);\n }\n }\n e.preventDefault();\n if (checkval) {\n if (valResult !== false) valResult.forwardPosition = forwardPosition;\n return valResult;\n }\n }\n }\n },\n pasteEvent: function(e) {\n var input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(true), caretPos = caret(input), tempValue;\n if (isRTL) {\n tempValue = caretPos.end;\n caretPos.end = caretPos.begin;\n caretPos.begin = tempValue;\n }\n var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\n if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join(\"\")) valueBeforeCaret = \"\";\n if (valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join(\"\")) valueAfterCaret = \"\";\n if (window.clipboardData && window.clipboardData.getData) {\n inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret;\n } else if (ev.clipboardData && ev.clipboardData.getData) {\n inputValue = valueBeforeCaret + ev.clipboardData.getData(\"text/plain\") + valueAfterCaret;\n } else return true;\n var pasteValue = inputValue;\n if ($.isFunction(opts.onBeforePaste)) {\n pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts);\n if (pasteValue === false) {\n return e.preventDefault();\n }\n if (!pasteValue) {\n pasteValue = inputValue;\n }\n }\n checkVal(input, false, false, pasteValue.toString().split(\"\"));\n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join(\"\"));\n return e.preventDefault();\n },\n inputFallBackEvent: function(e) {\n function radixPointHandler(input, inputValue, caretPos) {\n if (inputValue.charAt(caretPos.begin - 1) === \".\" && opts.radixPoint !== \"\") {\n inputValue = inputValue.split(\"\");\n inputValue[caretPos.begin - 1] = opts.radixPoint.charAt(0);\n inputValue = inputValue.join(\"\");\n }\n return inputValue;\n }\n function ieMobileHandler(input, inputValue, caretPos) {\n if (iemobile) {\n var inputChar = inputValue.replace(getBuffer().join(\"\"), \"\");\n if (inputChar.length === 1) {\n var iv = inputValue.split(\"\");\n iv.splice(caretPos.begin, 0, inputChar);\n inputValue = iv.join(\"\");\n }\n }\n return inputValue;\n }\n var input = this, inputValue = input.inputmask._valueGet();\n if (getBuffer().join(\"\") !== inputValue) {\n var caretPos = caret(input);\n inputValue = radixPointHandler(input, inputValue, caretPos);\n inputValue = ieMobileHandler(input, inputValue, caretPos);\n if (getBuffer().join(\"\") !== inputValue) {\n var buffer = getBuffer().join(\"\"), offset = !opts.numericInput && inputValue.length > buffer.length ? -1 : 0, frontPart = inputValue.substr(0, caretPos.begin), backPart = inputValue.substr(caretPos.begin), frontBufferPart = buffer.substr(0, caretPos.begin + offset), backBufferPart = buffer.substr(caretPos.begin + offset);\n var selection = caretPos, entries = \"\", isEntry = false;\n if (frontPart !== frontBufferPart) {\n var fpl = (isEntry = frontPart.length >= frontBufferPart.length) ? frontPart.length : frontBufferPart.length, i;\n for (i = 0; frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl; i++) ;\n if (isEntry) {\n selection.begin = i - offset;\n entries += frontPart.slice(i, selection.end);\n }\n }\n if (backPart !== backBufferPart) {\n if (backPart.length > backBufferPart.length) {\n entries += backPart.slice(0, 1);\n } else {\n if (backPart.length < backBufferPart.length) {\n selection.end += backBufferPart.length - backPart.length;\n if (!isEntry && opts.radixPoint !== \"\" && backPart === \"\" && frontPart.charAt(selection.begin + offset - 1) === opts.radixPoint) {\n selection.begin--;\n entries = opts.radixPoint;\n }\n }\n }\n }\n writeBuffer(input, getBuffer(), {\n begin: selection.begin + offset,\n end: selection.end + offset\n });\n if (entries.length > 0) {\n $.each(entries.split(\"\"), function(ndx, entry) {\n var keypress = new $.Event(\"keypress\");\n keypress.which = entry.charCodeAt(0);\n ignorable = false;\n EventHandlers.keypressEvent.call(input, keypress);\n });\n } else {\n if (selection.begin === selection.end - 1) {\n selection.begin = seekPrevious(selection.begin + 1);\n if (selection.begin === selection.end - 1) {\n caret(input, selection.begin);\n } else {\n caret(input, selection.begin, selection.end);\n }\n }\n var keydown = new $.Event(\"keydown\");\n keydown.keyCode = opts.numericInput ? Inputmask.keyCode.BACKSPACE : Inputmask.keyCode.DELETE;\n EventHandlers.keydownEvent.call(input, keydown);\n }\n e.preventDefault();\n }\n }\n },\n beforeInputEvent: function(e) {\n if (e.cancelable) {\n var input = this;\n switch (e.inputType) {\n case \"insertText\":\n $.each(e.data.split(\"\"), function(ndx, entry) {\n var keypress = new $.Event(\"keypress\");\n keypress.which = entry.charCodeAt(0);\n ignorable = false;\n EventHandlers.keypressEvent.call(input, keypress);\n });\n return e.preventDefault();\n\n case \"deleteContentBackward\":\n var keydown = new $.Event(\"keydown\");\n keydown.keyCode = Inputmask.keyCode.BACKSPACE;\n EventHandlers.keydownEvent.call(input, keydown);\n return e.preventDefault();\n\n case \"deleteContentForward\":\n var keydown = new $.Event(\"keydown\");\n keydown.keyCode = Inputmask.keyCode.DELETE;\n EventHandlers.keydownEvent.call(input, keydown);\n return e.preventDefault();\n }\n }\n },\n setValueEvent: function(e) {\n this.inputmask.refreshValue = false;\n var input = this, value = e && e.detail ? e.detail[0] : arguments[1], value = value || input.inputmask._valueGet(true);\n if ($.isFunction(opts.onBeforeMask)) value = opts.onBeforeMask.call(inputmask, value, opts) || value;\n value = value.toString().split(\"\");\n checkVal(input, true, false, value);\n undoValue = getBuffer().join(\"\");\n if ((opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join(\"\")) {\n input.inputmask._valueSet(\"\");\n }\n },\n focusEvent: function(e) {\n var input = this, nptValue = input.inputmask._valueGet();\n if (opts.showMaskOnFocus) {\n if (nptValue !== getBuffer().join(\"\")) {\n writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()));\n } else if (mouseEnter === false) {\n caret(input, seekNext(getLastValidPosition()));\n }\n }\n if (opts.positionCaretOnTab === true && mouseEnter === false) {\n EventHandlers.clickEvent.apply(input, [ e, true ]);\n }\n undoValue = getBuffer().join(\"\");\n },\n mouseleaveEvent: function(e) {\n var input = this;\n mouseEnter = false;\n if (opts.clearMaskOnLostFocus && document.activeElement !== input) {\n HandleNativePlaceholder(input, originalPlaceholder);\n }\n },\n clickEvent: function(e, tabbed) {\n function doRadixFocus(clickPos) {\n if (opts.radixPoint !== \"\") {\n var vps = getMaskSet().validPositions;\n if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {\n if (clickPos < seekNext(-1)) return true;\n var radixPos = $.inArray(opts.radixPoint, getBuffer());\n if (radixPos !== -1) {\n for (var vp in vps) {\n if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) {\n return false;\n }\n }\n return true;\n }\n }\n }\n return false;\n }\n var input = this;\n setTimeout(function() {\n if (document.activeElement === input) {\n var selectedCaret = caret(input);\n if (tabbed) {\n if (isRTL) {\n selectedCaret.end = selectedCaret.begin;\n } else {\n selectedCaret.begin = selectedCaret.end;\n }\n }\n if (selectedCaret.begin === selectedCaret.end) {\n switch (opts.positionCaretOnClick) {\n case \"none\":\n break;\n\n case \"select\":\n caret(input, 0, getBuffer().length);\n break;\n\n case \"ignore\":\n caret(input, seekNext(getLastValidPosition()));\n break;\n\n case \"radixFocus\":\n if (doRadixFocus(selectedCaret.begin)) {\n var radixPos = getBuffer().join(\"\").indexOf(opts.radixPoint);\n caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);\n break;\n }\n\n default:\n var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, true), lastPosition = seekNext(lvclickPosition);\n if (clickPosition < lastPosition) {\n caret(input, !isMask(clickPosition, true) && !isMask(clickPosition - 1, true) ? seekNext(clickPosition) : clickPosition);\n } else {\n var lvp = getMaskSet().validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : undefined, lvp), placeholder = getPlaceholder(lastPosition, tt.match);\n if (placeholder !== \"\" && getBuffer()[lastPosition] !== placeholder && tt.match.optionalQuantifier !== true && tt.match.newBlockMarker !== true || !isMask(lastPosition, opts.keepStatic) && tt.match.def === placeholder) {\n var newPos = seekNext(lastPosition);\n if (clickPosition >= newPos || clickPosition === lastPosition) {\n lastPosition = newPos;\n }\n }\n caret(input, lastPosition);\n }\n break;\n }\n }\n }\n }, 0);\n },\n cutEvent: function(e) {\n var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e;\n var clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);\n clipboardData.setData(\"text\", isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\"));\n if (document.execCommand) document.execCommand(\"copy\");\n handleRemove(input, Inputmask.keyCode.DELETE, pos);\n writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\"));\n },\n blurEvent: function(e) {\n var $input = $(this), input = this;\n if (input.inputmask) {\n HandleNativePlaceholder(input, originalPlaceholder);\n var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();\n if (nptValue !== \"\" || colorMask !== undefined) {\n if (opts.clearMaskOnLostFocus) {\n if (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join(\"\")) {\n buffer = [];\n } else {\n clearOptionalTail(buffer);\n }\n }\n if (isComplete(buffer) === false) {\n setTimeout(function() {\n $input.trigger(\"incomplete\");\n }, 0);\n if (opts.clearIncomplete) {\n resetMaskSet();\n if (opts.clearMaskOnLostFocus) {\n buffer = [];\n } else {\n buffer = getBufferTemplate().slice();\n }\n }\n }\n writeBuffer(input, buffer, undefined, e);\n }\n if (undoValue !== getBuffer().join(\"\")) {\n undoValue = buffer.join(\"\");\n $input.trigger(\"change\");\n }\n }\n },\n mouseenterEvent: function(e) {\n var input = this;\n mouseEnter = true;\n if (document.activeElement !== input && opts.showMaskOnHover) {\n HandleNativePlaceholder(input, (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\"));\n }\n },\n submitEvent: function(e) {\n if (undoValue !== getBuffer().join(\"\")) {\n $el.trigger(\"change\");\n }\n if (opts.clearMaskOnLostFocus && getLastValidPosition() === -1 && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join(\"\")) {\n el.inputmask._valueSet(\"\");\n }\n if (opts.clearIncomplete && isComplete(getBuffer()) === false) {\n el.inputmask._valueSet(\"\");\n }\n if (opts.removeMaskOnSubmit) {\n el.inputmask._valueSet(el.inputmask.unmaskedvalue(), true);\n setTimeout(function() {\n writeBuffer(el, getBuffer());\n }, 0);\n }\n },\n resetEvent: function(e) {\n el.inputmask.refreshValue = true;\n setTimeout(function() {\n $el.trigger(\"setvalue\");\n }, 0);\n }\n };\n function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {\n var inputmask = this || input.inputmask, inputValue = nptvl.slice(), charCodes = \"\", initialNdx = -1, result = undefined;\n function isTemplateMatch(ndx, charCodes) {\n var charCodeNdx = getMaskTemplate(true, 0, false).slice(ndx, seekNext(ndx)).join(\"\").replace(/'/g, \"\").indexOf(charCodes);\n return charCodeNdx !== -1 && !isMask(ndx) && (getTest(ndx).match.nativeDef === charCodes.charAt(0) || getTest(ndx).match.fn === null && getTest(ndx).match.nativeDef === \"'\" + charCodes.charAt(0) || getTest(ndx).match.nativeDef === \" \" && (getTest(ndx + 1).match.nativeDef === charCodes.charAt(0) || getTest(ndx + 1).match.fn === null && getTest(ndx + 1).match.nativeDef === \"'\" + charCodes.charAt(0)));\n }\n resetMaskSet();\n if (!strict && opts.autoUnmask !== true) {\n var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(\"\"), matches = inputValue.join(\"\").match(new RegExp(\"^\" + Inputmask.escapeRegex(staticInput), \"g\"));\n if (matches && matches.length > 0) {\n inputValue.splice(0, matches.length * staticInput.length);\n initialNdx = seekNext(initialNdx);\n }\n } else {\n initialNdx = seekNext(initialNdx);\n }\n if (initialNdx === -1) {\n getMaskSet().p = seekNext(initialNdx);\n initialNdx = 0;\n } else getMaskSet().p = initialNdx;\n inputmask.caretPos = {\n begin: initialNdx\n };\n $.each(inputValue, function(ndx, charCode) {\n if (charCode !== undefined) {\n if (getMaskSet().validPositions[ndx] === undefined && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, true) && isValid(ndx, inputValue[ndx], true, undefined, undefined, true) === false) {\n getMaskSet().p++;\n } else {\n var keypress = new $.Event(\"_checkval\");\n keypress.which = charCode.charCodeAt(0);\n charCodes += charCode;\n var lvp = getLastValidPosition(undefined, true);\n if (!isTemplateMatch(initialNdx, charCodes)) {\n result = EventHandlers.keypressEvent.call(input, keypress, true, false, strict, inputmask.caretPos.begin);\n if (result) {\n initialNdx = inputmask.caretPos.begin + 1;\n charCodes = \"\";\n }\n } else {\n result = EventHandlers.keypressEvent.call(input, keypress, true, false, strict, lvp + 1);\n }\n if (result) {\n writeBuffer(undefined, getBuffer(), result.forwardPosition, keypress, false);\n inputmask.caretPos = {\n begin: result.forwardPosition,\n end: result.forwardPosition\n };\n }\n }\n }\n });\n if (writeOut) writeBuffer(input, getBuffer(), result ? result.forwardPosition : undefined, initiatingEvent || new $.Event(\"checkval\"), initiatingEvent && initiatingEvent.type === \"input\");\n }\n function unmaskedvalue(input) {\n if (input) {\n if (input.inputmask === undefined) {\n return input.value;\n }\n if (input.inputmask && input.inputmask.refreshValue) {\n EventHandlers.setValueEvent.call(input);\n }\n }\n var umValue = [], vps = getMaskSet().validPositions;\n for (var pndx in vps) {\n if (vps[pndx].match && vps[pndx].match.fn != null) {\n umValue.push(vps[pndx].input);\n }\n }\n var unmaskedValue = umValue.length === 0 ? \"\" : (isRTL ? umValue.reverse() : umValue).join(\"\");\n if ($.isFunction(opts.onUnMask)) {\n var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\");\n unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);\n }\n return unmaskedValue;\n }\n function caret(input, begin, end, notranslate) {\n function translatePosition(pos) {\n if (isRTL && typeof pos === \"number\" && (!opts.greedy || opts.placeholder !== \"\") && el) {\n pos = el.inputmask._valueGet().length - pos;\n }\n return pos;\n }\n var range;\n if (begin !== undefined) {\n if ($.isArray(begin)) {\n end = isRTL ? begin[0] : begin[1];\n begin = isRTL ? begin[1] : begin[0];\n }\n if (begin.begin !== undefined) {\n end = isRTL ? begin.begin : begin.end;\n begin = isRTL ? begin.end : begin.begin;\n }\n if (typeof begin === \"number\") {\n begin = notranslate ? begin : translatePosition(begin);\n end = notranslate ? end : translatePosition(end);\n end = typeof end == \"number\" ? end : begin;\n var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\n input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0;\n input.inputmask.caretPos = {\n begin: begin,\n end: end\n };\n if (input === document.activeElement) {\n if (\"selectionStart\" in input) {\n input.selectionStart = begin;\n input.selectionEnd = end;\n } else if (window.getSelection) {\n range = document.createRange();\n if (input.firstChild === undefined || input.firstChild === null) {\n var textNode = document.createTextNode(\"\");\n input.appendChild(textNode);\n }\n range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length);\n range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length);\n range.collapse(true);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (input.createTextRange) {\n range = input.createTextRange();\n range.collapse(true);\n range.moveEnd(\"character\", end);\n range.moveStart(\"character\", begin);\n range.select();\n }\n renderColorMask(input, {\n begin: begin,\n end: end\n });\n }\n }\n } else {\n if (\"selectionStart\" in input) {\n begin = input.selectionStart;\n end = input.selectionEnd;\n } else if (window.getSelection) {\n range = window.getSelection().getRangeAt(0);\n if (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) {\n begin = range.startOffset;\n end = range.endOffset;\n }\n } else if (document.selection && document.selection.createRange) {\n range = document.selection.createRange();\n begin = 0 - range.duplicate().moveStart(\"character\", -input.inputmask._valueGet().length);\n end = begin + range.text.length;\n }\n return {\n begin: notranslate ? begin : translatePosition(begin),\n end: notranslate ? end : translatePosition(end)\n };\n }\n }\n function determineLastRequiredPosition(returnDefinition) {\n var buffer = getMaskTemplate(true, getLastValidPosition(), true, true), bl = buffer.length, pos, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined, testPos;\n for (pos = lvp + 1; pos < buffer.length; pos++) {\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\n ndxIntlzr = testPos.locator.slice();\n positions[pos] = $.extend(true, {}, testPos);\n }\n var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;\n for (pos = bl - 1; pos > lvp; pos--) {\n testPos = positions[pos];\n if ((testPos.match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && testPos.match.fn != null || testPos.match.fn === null && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && getTests(pos)[0].def !== \"\")) && buffer[pos] === getPlaceholder(pos, testPos.match)) {\n bl--;\n } else break;\n }\n return returnDefinition ? {\n l: bl,\n def: positions[bl] ? positions[bl].match : undefined\n } : bl;\n }\n function clearOptionalTail(buffer) {\n buffer.length = 0;\n var template = getMaskTemplate(true, 0, true, undefined, true), lmnt, validPos;\n while (lmnt = template.shift(), lmnt !== undefined) buffer.push(lmnt);\n return buffer;\n }\n function isComplete(buffer) {\n if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);\n if (opts.repeat === \"*\") return undefined;\n var complete = false, lrp = determineLastRequiredPosition(true), aml = seekPrevious(lrp.l);\n if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\n complete = true;\n for (var i = 0; i <= aml; i++) {\n var test = getTestTemplate(i).match;\n if (test.fn !== null && getMaskSet().validPositions[i] === undefined && test.optionality !== true && test.optionalQuantifier !== true || test.fn === null && buffer[i] !== getPlaceholder(i, test)) {\n complete = false;\n break;\n }\n }\n }\n return complete;\n }\n function handleRemove(input, k, pos, strict, fromIsValid) {\n if (opts.numericInput || isRTL) {\n if (k === Inputmask.keyCode.BACKSPACE) {\n k = Inputmask.keyCode.DELETE;\n } else if (k === Inputmask.keyCode.DELETE) {\n k = Inputmask.keyCode.BACKSPACE;\n }\n if (isRTL) {\n var pend = pos.end;\n pos.end = pos.begin;\n pos.begin = pend;\n }\n }\n if (k === Inputmask.keyCode.BACKSPACE && pos.end - pos.begin < 1) {\n pos.begin = seekPrevious(pos.begin);\n if (getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator) {\n pos.begin--;\n }\n } else if (k === Inputmask.keyCode.DELETE && pos.begin === pos.end) {\n pos.end = isMask(pos.end, true) && (getMaskSet().validPositions[pos.end] && getMaskSet().validPositions[pos.end].input !== opts.radixPoint) ? pos.end + 1 : seekNext(pos.end) + 1;\n if (getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator) {\n pos.end++;\n }\n }\n revalidateMask(pos);\n if (strict !== true && opts.keepStatic !== false || opts.regex !== null) {\n var result = alternate(true);\n if (result) {\n var newPos = result.caret !== undefined ? result.caret : result.pos ? seekNext(result.pos.begin ? result.pos.begin : result.pos) : getLastValidPosition(-1, true);\n if (k !== Inputmask.keyCode.DELETE || pos.begin > newPos) {\n pos.begin == newPos;\n }\n }\n }\n var lvp = getLastValidPosition(pos.begin, true);\n if (lvp < pos.begin || pos.begin === -1) {\n getMaskSet().p = seekNext(lvp);\n } else if (strict !== true) {\n getMaskSet().p = pos.begin;\n if (fromIsValid !== true) {\n while (getMaskSet().p < lvp && getMaskSet().validPositions[getMaskSet().p] === undefined) {\n getMaskSet().p++;\n }\n }\n }\n }\n function initializeColorMask(input) {\n var computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null);\n function findCaretPos(clientx) {\n var e = document.createElement(\"span\"), caretPos;\n for (var style in computedStyle) {\n if (isNaN(style) && style.indexOf(\"font\") !== -1) {\n e.style[style] = computedStyle[style];\n }\n }\n e.style.textTransform = computedStyle.textTransform;\n e.style.letterSpacing = computedStyle.letterSpacing;\n e.style.position = \"absolute\";\n e.style.height = \"auto\";\n e.style.width = \"auto\";\n e.style.visibility = \"hidden\";\n e.style.whiteSpace = \"nowrap\";\n document.body.appendChild(e);\n var inputText = input.inputmask._valueGet(), previousWidth = 0, itl;\n for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {\n e.innerHTML += inputText.charAt(caretPos) || \"_\";\n if (e.offsetWidth >= clientx) {\n var offset1 = clientx - previousWidth;\n var offset2 = e.offsetWidth - clientx;\n e.innerHTML = inputText.charAt(caretPos);\n offset1 -= e.offsetWidth / 3;\n caretPos = offset1 < offset2 ? caretPos - 1 : caretPos;\n break;\n }\n previousWidth = e.offsetWidth;\n }\n document.body.removeChild(e);\n return caretPos;\n }\n var template = document.createElement(\"div\");\n template.style.width = computedStyle.width;\n template.style.textAlign = computedStyle.textAlign;\n colorMask = document.createElement(\"div\");\n input.inputmask.colorMask = colorMask;\n colorMask.className = \"im-colormask\";\n input.parentNode.insertBefore(colorMask, input);\n input.parentNode.removeChild(input);\n colorMask.appendChild(input);\n colorMask.appendChild(template);\n input.style.left = template.offsetLeft + \"px\";\n $(colorMask).on(\"mouseleave\", function(e) {\n return EventHandlers.mouseleaveEvent.call(input, [ e ]);\n });\n $(colorMask).on(\"mouseenter\", function(e) {\n return EventHandlers.mouseenterEvent.call(input, [ e ]);\n });\n $(colorMask).on(\"click\", function(e) {\n caret(input, findCaretPos(e.clientX));\n return EventHandlers.clickEvent.call(input, [ e ]);\n });\n }\n function renderColorMask(input, caretPos, clear) {\n var maskTemplate = [], isStatic = false, test, testPos, ndxIntlzr, pos = 0;\n function setEntry(entry) {\n if (entry === undefined) entry = \"\";\n if (!isStatic && (test.fn === null || testPos.input === undefined)) {\n isStatic = true;\n maskTemplate.push(\"<span class='im-static'>\" + entry);\n } else if (isStatic && (test.fn !== null && testPos.input !== undefined || test.def === \"\")) {\n isStatic = false;\n var mtl = maskTemplate.length;\n maskTemplate[mtl - 1] = maskTemplate[mtl - 1] + \"</span>\";\n maskTemplate.push(entry);\n } else maskTemplate.push(entry);\n }\n function setCaret() {\n if (document.activeElement === input) {\n maskTemplate.splice(caretPos.begin, 0, caretPos.begin === caretPos.end || caretPos.end > getMaskSet().maskLength ? '<mark class=\"im-caret\" style=\"border-right-width: 1px;border-right-style: solid;\">' : '<mark class=\"im-caret-select\">');\n maskTemplate.splice(caretPos.end + 1, 0, \"</mark>\");\n }\n }\n if (colorMask !== undefined) {\n var buffer = getBuffer();\n if (caretPos === undefined) {\n caretPos = caret(input);\n } else if (caretPos.begin === undefined) {\n caretPos = {\n begin: caretPos,\n end: caretPos\n };\n }\n if (clear !== true) {\n var lvp = getLastValidPosition();\n do {\n if (getMaskSet().validPositions[pos]) {\n testPos = getMaskSet().validPositions[pos];\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n setEntry(buffer[pos]);\n } else {\n testPos = getTestTemplate(pos, ndxIntlzr, pos - 1);\n test = testPos.match;\n ndxIntlzr = testPos.locator.slice();\n if (opts.jitMasking === false || pos < lvp || typeof opts.jitMasking === \"number\" && isFinite(opts.jitMasking) && opts.jitMasking > pos) {\n setEntry(getPlaceholder(pos, test));\n } else isStatic = false;\n }\n pos++;\n } while ((maxLength === undefined || pos < maxLength) && (test.fn !== null || test.def !== \"\") || lvp > pos || isStatic);\n if (isStatic) setEntry();\n setCaret();\n }\n var template = colorMask.getElementsByTagName(\"div\")[0];\n template.innerHTML = maskTemplate.join(\"\");\n input.inputmask.positionColorMask(input, template);\n }\n }\n function mask(elem) {\n function isElementTypeSupported(input, opts) {\n function patchValueProperty(npt) {\n var valueGet;\n var valueSet;\n function patchValhook(type) {\n if ($.valHooks && ($.valHooks[type] === undefined || $.valHooks[type].inputmaskpatch !== true)) {\n var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\n return elem.value;\n };\n var valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\n elem.value = value;\n return elem;\n };\n $.valHooks[type] = {\n get: function(elem) {\n if (elem.inputmask) {\n if (elem.inputmask.opts.autoUnmask) {\n return elem.inputmask.unmaskedvalue();\n } else {\n var result = valhookGet(elem);\n return getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) !== -1 || opts.nullable !== true ? result : \"\";\n }\n } else return valhookGet(elem);\n },\n set: function(elem, value) {\n var $elem = $(elem), result;\n result = valhookSet(elem, value);\n if (elem.inputmask) {\n $elem.trigger(\"setvalue\", [ value ]);\n }\n return result;\n },\n inputmaskpatch: true\n };\n }\n }\n function getter() {\n if (this.inputmask) {\n return this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : getLastValidPosition() !== -1 || opts.nullable !== true ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join(\"\") : valueGet.call(this) : \"\";\n } else return valueGet.call(this);\n }\n function setter(value) {\n valueSet.call(this, value);\n if (this.inputmask) {\n $(this).trigger(\"setvalue\", [ value ]);\n }\n }\n function installNativeValueSetFallback(npt) {\n EventRuler.on(npt, \"mouseenter\", function(event) {\n var $input = $(this), input = this, value = input.inputmask._valueGet();\n if (value !== getBuffer().join(\"\")) {\n $input.trigger(\"setvalue\");\n }\n });\n }\n if (!npt.inputmask.__valueGet) {\n if (opts.noValuePatching !== true) {\n if (Object.getOwnPropertyDescriptor) {\n if (typeof Object.getPrototypeOf !== \"function\") {\n Object.getPrototypeOf = typeof \"test\".__proto__ === \"object\" ? function(object) {\n return object.__proto__;\n } : function(object) {\n return object.constructor.prototype;\n };\n }\n var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), \"value\") : undefined;\n if (valueProperty && valueProperty.get && valueProperty.set) {\n valueGet = valueProperty.get;\n valueSet = valueProperty.set;\n Object.defineProperty(npt, \"value\", {\n get: getter,\n set: setter,\n configurable: true\n });\n } else if (npt.tagName !== \"INPUT\") {\n valueGet = function() {\n return this.textContent;\n };\n valueSet = function(value) {\n this.textContent = value;\n };\n Object.defineProperty(npt, \"value\", {\n get: getter,\n set: setter,\n configurable: true\n });\n }\n } else if (document.__lookupGetter__ && npt.__lookupGetter__(\"value\")) {\n valueGet = npt.__lookupGetter__(\"value\");\n valueSet = npt.__lookupSetter__(\"value\");\n npt.__defineGetter__(\"value\", getter);\n npt.__defineSetter__(\"value\", setter);\n }\n npt.inputmask.__valueGet = valueGet;\n npt.inputmask.__valueSet = valueSet;\n }\n npt.inputmask._valueGet = function(overruleRTL) {\n return isRTL && overruleRTL !== true ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\n };\n npt.inputmask._valueSet = function(value, overruleRTL) {\n valueSet.call(this.el, value === null || value === undefined ? \"\" : overruleRTL !== true && isRTL ? value.split(\"\").reverse().join(\"\") : value);\n };\n if (valueGet === undefined) {\n valueGet = function() {\n return this.value;\n };\n valueSet = function(value) {\n this.value = value;\n };\n patchValhook(npt.type);\n installNativeValueSetFallback(npt);\n }\n }\n }\n var elementType = input.getAttribute(\"type\");\n var isSupported = input.tagName === \"INPUT\" && $.inArray(elementType, opts.supportsInputType) !== -1 || input.isContentEditable || input.tagName === \"TEXTAREA\";\n if (!isSupported) {\n if (input.tagName === \"INPUT\") {\n var el = document.createElement(\"input\");\n el.setAttribute(\"type\", elementType);\n isSupported = el.type === \"text\";\n el = null;\n } else isSupported = \"partial\";\n }\n if (isSupported !== false) {\n patchValueProperty(input);\n } else input.inputmask = undefined;\n return isSupported;\n }\n EventRuler.off(elem);\n var isSupported = isElementTypeSupported(elem, opts);\n if (isSupported !== false) {\n el = elem;\n $el = $(el);\n originalPlaceholder = el.placeholder;\n maxLength = el !== undefined ? el.maxLength : undefined;\n if (maxLength === -1) maxLength = undefined;\n if (opts.colorMask === true) {\n initializeColorMask(el);\n }\n if (mobile) {\n if (\"inputMode\" in el) {\n el.inputmode = opts.inputmode;\n el.setAttribute(\"inputmode\", opts.inputmode);\n }\n if (opts.disablePredictiveText === true) {\n if (\"autocorrect\" in el) {\n el.autocorrect = false;\n } else {\n if (opts.colorMask !== true) {\n initializeColorMask(el);\n }\n el.type = \"password\";\n }\n }\n }\n if (isSupported === true) {\n el.setAttribute(\"im-insert\", opts.insertMode);\n EventRuler.on(el, \"submit\", EventHandlers.submitEvent);\n EventRuler.on(el, \"reset\", EventHandlers.resetEvent);\n EventRuler.on(el, \"blur\", EventHandlers.blurEvent);\n EventRuler.on(el, \"focus\", EventHandlers.focusEvent);\n if (opts.colorMask !== true) {\n EventRuler.on(el, \"click\", EventHandlers.clickEvent);\n EventRuler.on(el, \"mouseleave\", EventHandlers.mouseleaveEvent);\n EventRuler.on(el, \"mouseenter\", EventHandlers.mouseenterEvent);\n }\n EventRuler.on(el, \"paste\", EventHandlers.pasteEvent);\n EventRuler.on(el, \"cut\", EventHandlers.cutEvent);\n EventRuler.on(el, \"complete\", opts.oncomplete);\n EventRuler.on(el, \"incomplete\", opts.onincomplete);\n EventRuler.on(el, \"cleared\", opts.oncleared);\n if (!mobile && opts.inputEventOnly !== true) {\n EventRuler.on(el, \"keydown\", EventHandlers.keydownEvent);\n EventRuler.on(el, \"keypress\", EventHandlers.keypressEvent);\n } else {\n el.removeAttribute(\"maxLength\");\n }\n EventRuler.on(el, \"input\", EventHandlers.inputFallBackEvent);\n EventRuler.on(el, \"beforeinput\", EventHandlers.beforeInputEvent);\n }\n EventRuler.on(el, \"setvalue\", EventHandlers.setValueEvent);\n undoValue = getBufferTemplate().join(\"\");\n if (el.inputmask._valueGet(true) !== \"\" || opts.clearMaskOnLostFocus === false || document.activeElement === el) {\n var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, el.inputmask._valueGet(true), opts) || el.inputmask._valueGet(true) : el.inputmask._valueGet(true);\n if (initialValue !== \"\") checkVal(el, true, false, initialValue.split(\"\"));\n var buffer = getBuffer().slice();\n undoValue = buffer.join(\"\");\n if (isComplete(buffer) === false) {\n if (opts.clearIncomplete) {\n resetMaskSet();\n }\n }\n if (opts.clearMaskOnLostFocus && document.activeElement !== el) {\n if (getLastValidPosition() === -1) {\n buffer = [];\n } else {\n clearOptionalTail(buffer);\n }\n }\n if (opts.clearMaskOnLostFocus === false || opts.showMaskOnFocus && document.activeElement === el || el.inputmask._valueGet(true) !== \"\") writeBuffer(el, buffer);\n if (document.activeElement === el) {\n caret(el, seekNext(getLastValidPosition()));\n }\n }\n }\n }\n var valueBuffer;\n if (actionObj !== undefined) {\n switch (actionObj.action) {\n case \"isComplete\":\n el = actionObj.el;\n return isComplete(getBuffer());\n\n case \"unmaskedvalue\":\n if (el === undefined || actionObj.value !== undefined) {\n valueBuffer = actionObj.value;\n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer : valueBuffer).split(\"\");\n checkVal.call(this, undefined, false, false, valueBuffer);\n if ($.isFunction(opts.onBeforeWrite)) opts.onBeforeWrite.call(inputmask, undefined, getBuffer(), 0, opts);\n }\n return unmaskedvalue(el);\n\n case \"mask\":\n mask(el);\n break;\n\n case \"format\":\n valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value : actionObj.value).split(\"\");\n checkVal.call(this, undefined, true, false, valueBuffer);\n if (actionObj.metadata) {\n return {\n value: isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\"),\n metadata: maskScope.call(this, {\n action: \"getmetadata\"\n }, maskset, opts)\n };\n }\n return isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\");\n\n case \"isValid\":\n if (actionObj.value) {\n valueBuffer = actionObj.value.split(\"\");\n checkVal.call(this, undefined, true, true, valueBuffer);\n } else {\n actionObj.value = getBuffer().join(\"\");\n }\n var buffer = getBuffer();\n var rl = determineLastRequiredPosition(), lmib = buffer.length - 1;\n for (;lmib > rl; lmib--) {\n if (isMask(lmib)) break;\n }\n buffer.splice(rl, lmib + 1 - rl);\n return isComplete(buffer) && actionObj.value === getBuffer().join(\"\");\n\n case \"getemptymask\":\n return getBufferTemplate().join(\"\");\n\n case \"remove\":\n if (el && el.inputmask) {\n $.data(el, \"_inputmask_opts\", null);\n $el = $(el);\n el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(true));\n EventRuler.off(el);\n if (el.inputmask.colorMask) {\n colorMask = el.inputmask.colorMask;\n colorMask.removeChild(el);\n colorMask.parentNode.insertBefore(el, colorMask);\n colorMask.parentNode.removeChild(colorMask);\n }\n var valueProperty;\n if (Object.getOwnPropertyDescriptor && Object.getPrototypeOf) {\n valueProperty = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), \"value\");\n if (valueProperty) {\n if (el.inputmask.__valueGet) {\n Object.defineProperty(el, \"value\", {\n get: el.inputmask.__valueGet,\n set: el.inputmask.__valueSet,\n configurable: true\n });\n }\n }\n } else if (document.__lookupGetter__ && el.__lookupGetter__(\"value\")) {\n if (el.inputmask.__valueGet) {\n el.__defineGetter__(\"value\", el.inputmask.__valueGet);\n el.__defineSetter__(\"value\", el.inputmask.__valueSet);\n }\n }\n el.inputmask = undefined;\n }\n return el;\n break;\n\n case \"getmetadata\":\n if ($.isArray(maskset.metadata)) {\n var maskTarget = getMaskTemplate(true, 0, false).join(\"\");\n $.each(maskset.metadata, function(ndx, mtdt) {\n if (mtdt.mask === maskTarget) {\n maskTarget = mtdt;\n return false;\n }\n });\n return maskTarget;\n }\n return maskset.metadata;\n }\n }\n }\n return Inputmask;\n});\n\n//# sourceURL=webpack:///./node_modules/inputmask/dist/inputmask/inputmask.js?"); 153 154/***/ }), 155
vendor: 31,882 bytes, lines 156-166
156/***/ "./node_modules/inputmask/dist/inputmask/inputmask.numeric.extensions.js": 157/*!*******************************************************************************!*\ 158 !*** ./node_modules/inputmask/dist/inputmask/inputmask.numeric.extensions.js ***! 159 \*******************************************************************************/ 160/*! no static exports found */ 161/***/ (function(module, exports, __webpack_require__) { 162 163eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n* inputmask.numeric.extensions.js\n* https://github.com/RobinHerbots/Inputmask\n* Copyright (c) 2010 - 2019 Robin Herbots\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\n* Version: 4.0.9\n*/\n\n(function(factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! ./inputmask */ \"./node_modules/inputmask/dist/inputmask/inputmask.js\") ], __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 {}\n})(function(Inputmask) {\n var $ = Inputmask.dependencyLib;\n function autoEscape(txt, opts) {\n var escapedTxt = \"\";\n for (var i = 0; i < txt.length; i++) {\n if (Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i)) {\n escapedTxt += \"\\\\\" + txt.charAt(i);\n } else escapedTxt += txt.charAt(i);\n }\n return escapedTxt;\n }\n function alignDigits(buffer, digits, opts) {\n if (digits > 0) {\n var radixPosition = $.inArray(opts.radixPoint, buffer);\n if (radixPosition === -1) {\n buffer.push(opts.radixPoint);\n radixPosition = buffer.length - 1;\n }\n for (var i = 1; i <= digits; i++) {\n buffer[radixPosition + i] = buffer[radixPosition + i] || \"0\";\n }\n }\n return buffer;\n }\n Inputmask.extendAliases({\n numeric: {\n mask: function(opts) {\n if (opts.repeat !== 0 && isNaN(opts.integerDigits)) {\n opts.integerDigits = opts.repeat;\n }\n opts.repeat = 0;\n if (opts.groupSeparator === opts.radixPoint && opts.digits && opts.digits !== \"0\") {\n if (opts.radixPoint === \".\") {\n opts.groupSeparator = \",\";\n } else if (opts.radixPoint === \",\") {\n opts.groupSeparator = \".\";\n } else opts.groupSeparator = \"\";\n }\n if (opts.groupSeparator === \" \") {\n opts.skipOptionalPartCharacter = undefined;\n }\n opts.autoGroup = opts.autoGroup && opts.groupSeparator !== \"\";\n if (opts.autoGroup) {\n if (typeof opts.groupSize == \"string\" && isFinite(opts.groupSize)) opts.groupSize = parseInt(opts.groupSize);\n if (isFinite(opts.integerDigits)) {\n var seps = Math.floor(opts.integerDigits / opts.groupSize);\n var mod = opts.integerDigits % opts.groupSize;\n opts.integerDigits = parseInt(opts.integerDigits) + (mod === 0 ? seps - 1 : seps);\n if (opts.integerDigits < 1) {\n opts.integerDigits = \"*\";\n }\n }\n }\n if (opts.placeholder.length > 1) {\n opts.placeholder = opts.placeholder.charAt(0);\n }\n if (opts.positionCaretOnClick === \"radixFocus\" && (opts.placeholder === \"\" && opts.integerOptional === false)) {\n opts.positionCaretOnClick = \"lvp\";\n }\n opts.definitions[\";\"] = opts.definitions[\"~\"];\n opts.definitions[\";\"].definitionSymbol = \"~\";\n if (opts.numericInput === true) {\n opts.positionCaretOnClick = opts.positionCaretOnClick === \"radixFocus\" ? \"lvp\" : opts.positionCaretOnClick;\n opts.digitsOptional = false;\n if (isNaN(opts.digits)) opts.digits = 2;\n opts.decimalProtect = false;\n }\n var mask = \"[+]\";\n mask += autoEscape(opts.prefix, opts);\n if (opts.integerOptional === true) {\n mask += \"~{1,\" + opts.integerDigits + \"}\";\n } else mask += \"~{\" + opts.integerDigits + \"}\";\n if (opts.digits !== undefined) {\n var radixDef = opts.decimalProtect ? \":\" : opts.radixPoint;\n var dq = opts.digits.toString().split(\",\");\n if (isFinite(dq[0]) && dq[1] && isFinite(dq[1])) {\n mask += radixDef + \";{\" + opts.digits + \"}\";\n } else if (isNaN(opts.digits) || parseInt(opts.digits) > 0) {\n if (opts.digitsOptional) {\n mask += \"[\" + radixDef + \";{1,\" + opts.digits + \"}]\";\n } else mask += radixDef + \";{\" + opts.digits + \"}\";\n }\n }\n mask += autoEscape(opts.suffix, opts);\n mask += \"[-]\";\n opts.greedy = false;\n return mask;\n },\n placeholder: \"\",\n greedy: false,\n digits: \"*\",\n digitsOptional: true,\n enforceDigitsOnBlur: false,\n radixPoint: \".\",\n positionCaretOnClick: \"radixFocus\",\n groupSize: 3,\n groupSeparator: \"\",\n autoGroup: false,\n allowMinus: true,\n negationSymbol: {\n front: \"-\",\n back: \"\"\n },\n integerDigits: \"+\",\n integerOptional: true,\n prefix: \"\",\n suffix: \"\",\n rightAlign: true,\n decimalProtect: true,\n min: null,\n max: null,\n step: 1,\n insertMode: true,\n autoUnmask: false,\n unmaskAsNumber: false,\n inputType: \"text\",\n inputmode: \"numeric\",\n preValidation: function(buffer, pos, c, isSelection, opts, maskset) {\n if (c === \"-\" || c === opts.negationSymbol.front) {\n if (opts.allowMinus !== true) return false;\n opts.isNegative = opts.isNegative === undefined ? true : !opts.isNegative;\n if (buffer.join(\"\") === \"\") return true;\n return {\n caret: maskset.validPositions[pos] ? pos : undefined,\n dopost: true\n };\n }\n if (isSelection === false && c === opts.radixPoint && (opts.digits !== undefined && (isNaN(opts.digits) || parseInt(opts.digits) > 0))) {\n var radixPos = $.inArray(opts.radixPoint, buffer);\n if (radixPos !== -1 && maskset.validPositions[radixPos] !== undefined) {\n if (opts.numericInput === true) {\n return pos === radixPos;\n }\n return {\n caret: radixPos + 1\n };\n }\n }\n return true;\n },\n postValidation: function(buffer, pos, currentResult, opts) {\n function buildPostMask(buffer, opts) {\n var postMask = \"\";\n postMask += \"(\" + opts.groupSeparator + \"*{\" + opts.groupSize + \"}){*}\";\n if (opts.radixPoint !== \"\") {\n var radixSplit = buffer.join(\"\").split(opts.radixPoint);\n if (radixSplit[1]) {\n postMask += opts.radixPoint + \"*{\" + radixSplit[1].match(/^\\d*\\??\\d*/)[0].length + \"}\";\n }\n }\n return postMask;\n }\n var suffix = opts.suffix.split(\"\"), prefix = opts.prefix.split(\"\");\n if (currentResult.pos === undefined && currentResult.caret !== undefined && currentResult.dopost !== true) return currentResult;\n var caretPos = currentResult.caret !== undefined ? currentResult.caret : currentResult.pos;\n var maskedValue = buffer.slice();\n if (opts.numericInput) {\n caretPos = maskedValue.length - caretPos - 1;\n maskedValue = maskedValue.reverse();\n }\n var charAtPos = maskedValue[caretPos];\n if (charAtPos === opts.groupSeparator) {\n caretPos += 1;\n charAtPos = maskedValue[caretPos];\n }\n if (caretPos === maskedValue.length - opts.suffix.length - 1 && charAtPos === opts.radixPoint) return currentResult;\n if (charAtPos !== undefined) {\n if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) {\n maskedValue[caretPos] = \"?\";\n if (opts.prefix.length > 0 && caretPos >= (opts.isNegative === false ? 1 : 0) && caretPos < opts.prefix.length - 1 + (opts.isNegative === false ? 1 : 0)) {\n prefix[caretPos - (opts.isNegative === false ? 1 : 0)] = \"?\";\n } else if (opts.suffix.length > 0 && caretPos >= maskedValue.length - opts.suffix.length - (opts.isNegative === false ? 1 : 0)) {\n suffix[caretPos - (maskedValue.length - opts.suffix.length - (opts.isNegative === false ? 1 : 0))] = \"?\";\n }\n }\n }\n prefix = prefix.join(\"\");\n suffix = suffix.join(\"\");\n var processValue = maskedValue.join(\"\").replace(prefix, \"\");\n processValue = processValue.replace(suffix, \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n processValue = processValue.replace(new RegExp(\"[-\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"]\", \"g\"), \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n if (isNaN(opts.placeholder)) {\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), \"g\"), \"\");\n }\n if (processValue.length > 1 && processValue.indexOf(opts.radixPoint) !== 1) {\n if (charAtPos === \"0\") {\n processValue = processValue.replace(/^\\?/g, \"\");\n }\n processValue = processValue.replace(/^0/g, \"\");\n }\n if (processValue.charAt(0) === opts.radixPoint && opts.radixPoint !== \"\" && opts.numericInput !== true) {\n processValue = \"0\" + processValue;\n }\n if (processValue !== \"\") {\n processValue = processValue.split(\"\");\n if ((!opts.digitsOptional || opts.enforceDigitsOnBlur && currentResult.event === \"blur\") && isFinite(opts.digits)) {\n var radixPosition = $.inArray(opts.radixPoint, processValue);\n var rpb = $.inArray(opts.radixPoint, maskedValue);\n if (radixPosition === -1) {\n processValue.push(opts.radixPoint);\n radixPosition = processValue.length - 1;\n }\n for (var i = 1; i <= opts.digits; i++) {\n if ((!opts.digitsOptional || opts.enforceDigitsOnBlur && currentResult.event === \"blur\") && (processValue[radixPosition + i] === undefined || processValue[radixPosition + i] === opts.placeholder.charAt(0))) {\n processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0);\n } else if (rpb !== -1 && maskedValue[rpb + i] !== undefined) {\n processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i];\n }\n }\n }\n if (opts.autoGroup === true && opts.groupSeparator !== \"\" && (charAtPos !== opts.radixPoint || currentResult.pos !== undefined || currentResult.dopost)) {\n var addRadix = processValue[processValue.length - 1] === opts.radixPoint && currentResult.c === opts.radixPoint;\n processValue = Inputmask(buildPostMask(processValue, opts), {\n numericInput: true,\n jitMasking: true,\n definitions: {\n \"*\": {\n validator: \"[0-9?]\",\n cardinality: 1\n }\n }\n }).format(processValue.join(\"\"));\n if (addRadix) processValue += opts.radixPoint;\n if (processValue.charAt(0) === opts.groupSeparator) {\n processValue.substr(1);\n }\n } else processValue = processValue.join(\"\");\n }\n if (opts.isNegative && currentResult.event === \"blur\") {\n opts.isNegative = processValue !== \"0\";\n }\n processValue = prefix + processValue;\n processValue += suffix;\n if (opts.isNegative) {\n processValue = opts.negationSymbol.front + processValue;\n processValue += opts.negationSymbol.back;\n }\n processValue = processValue.split(\"\");\n if (charAtPos !== undefined) {\n if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) {\n caretPos = $.inArray(\"?\", processValue);\n if (caretPos > -1) {\n processValue[caretPos] = charAtPos;\n } else caretPos = currentResult.caret || 0;\n } else if (charAtPos === opts.radixPoint || charAtPos === opts.negationSymbol.front || charAtPos === opts.negationSymbol.back) {\n var newCaretPos = $.inArray(charAtPos, processValue);\n if (newCaretPos !== -1) caretPos = newCaretPos;\n }\n }\n if (opts.numericInput) {\n caretPos = processValue.length - caretPos - 1;\n processValue = processValue.reverse();\n }\n var rslt = {\n caret: (charAtPos === undefined || currentResult.pos !== undefined) && caretPos !== undefined ? caretPos + (opts.numericInput ? -1 : 1) : caretPos,\n buffer: processValue,\n refreshFromBuffer: currentResult.dopost || buffer.join(\"\") !== processValue.join(\"\")\n };\n return rslt.refreshFromBuffer ? rslt : currentResult;\n },\n onBeforeWrite: function(e, buffer, caretPos, opts) {\n function parseMinMaxOptions(opts) {\n if (opts.parseMinMaxOptions === undefined) {\n if (opts.min !== null) {\n opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n if (opts.radixPoint === \",\") opts.min = opts.min.replace(opts.radixPoint, \".\");\n opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN;\n if (isNaN(opts.min)) opts.min = Number.MIN_VALUE;\n }\n if (opts.max !== null) {\n opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n if (opts.radixPoint === \",\") opts.max = opts.max.replace(opts.radixPoint, \".\");\n opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN;\n if (isNaN(opts.max)) opts.max = Number.MAX_VALUE;\n }\n opts.parseMinMaxOptions = \"done\";\n }\n }\n if (e) {\n switch (e.type) {\n case \"keydown\":\n return opts.postValidation(buffer, caretPos, {\n caret: caretPos,\n dopost: true\n }, opts);\n\n case \"blur\":\n case \"checkval\":\n var unmasked;\n parseMinMaxOptions(opts);\n if (opts.min !== null || opts.max !== null) {\n unmasked = opts.onUnMask(buffer.join(\"\"), undefined, $.extend({}, opts, {\n unmaskAsNumber: true\n }));\n if (opts.min !== null && unmasked < opts.min) {\n opts.isNegative = opts.min < 0;\n return opts.postValidation(opts.min.toString().replace(\".\", opts.radixPoint).split(\"\"), caretPos, {\n caret: caretPos,\n dopost: true,\n placeholder: \"0\"\n }, opts);\n } else if (opts.max !== null && unmasked > opts.max) {\n opts.isNegative = opts.max < 0;\n return opts.postValidation(opts.max.toString().replace(\".\", opts.radixPoint).split(\"\"), caretPos, {\n caret: caretPos,\n dopost: true,\n placeholder: \"0\"\n }, opts);\n }\n }\n return opts.postValidation(buffer, caretPos, {\n caret: caretPos,\n placeholder: \"0\",\n event: \"blur\"\n }, opts);\n\n case \"_checkval\":\n return {\n caret: caretPos\n };\n\n default:\n break;\n }\n }\n },\n regex: {\n integerPart: function(opts, emptyCheck) {\n return emptyCheck ? new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\") : new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\\\\d+\");\n },\n integerNPart: function(opts) {\n return new RegExp(\"[\\\\d\" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + \"]+\");\n }\n },\n definitions: {\n \"~\": {\n validator: function(chrs, maskset, pos, strict, opts, isSelection) {\n var isValid, l;\n if (chrs === \"k\" || chrs === \"m\") {\n isValid = {\n insert: [],\n c: 0\n };\n for (var i = 0, l = chrs === \"k\" ? 2 : 5; i < l; i++) {\n isValid.insert.push({\n pos: pos + i,\n c: 0\n });\n }\n isValid.pos = pos + l;\n return isValid;\n }\n isValid = strict ? new RegExp(\"[0-9\" + Inputmask.escapeRegex(opts.groupSeparator) + \"]\").test(chrs) : new RegExp(\"[0-9]\").test(chrs);\n if (isValid === true) {\n if (opts.numericInput !== true && maskset.validPositions[pos] !== undefined && maskset.validPositions[pos].match.def === \"~\" && !isSelection) {\n var processValue = maskset.buffer.join(\"\");\n processValue = processValue.replace(new RegExp(\"[-\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"]\", \"g\"), \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n var pvRadixSplit = processValue.split(opts.radixPoint);\n if (pvRadixSplit.length > 1) {\n pvRadixSplit[1] = pvRadixSplit[1].replace(/0/g, opts.placeholder.charAt(0));\n }\n if (pvRadixSplit[0] === \"0\") {\n pvRadixSplit[0] = pvRadixSplit[0].replace(/0/g, opts.placeholder.charAt(0));\n }\n processValue = pvRadixSplit[0] + opts.radixPoint + pvRadixSplit[1] || \"\";\n var bufferTemplate = maskset._buffer.join(\"\");\n if (processValue === opts.radixPoint) {\n processValue = bufferTemplate;\n }\n while (processValue.match(Inputmask.escapeRegex(bufferTemplate) + \"$\") === null) {\n bufferTemplate = bufferTemplate.slice(1);\n }\n processValue = processValue.replace(bufferTemplate, \"\");\n processValue = processValue.split(\"\");\n if (processValue[pos] === undefined) {\n isValid = {\n pos: pos,\n remove: pos\n };\n } else {\n isValid = {\n pos: pos\n };\n }\n }\n } else if (!strict && chrs === opts.radixPoint && maskset.validPositions[pos - 1] === undefined) {\n isValid = {\n insert: {\n pos: pos,\n c: 0\n },\n pos: pos + 1\n };\n }\n return isValid;\n },\n cardinality: 1\n },\n \"+\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.allowMinus && (chrs === \"-\" || chrs === opts.negationSymbol.front);\n },\n cardinality: 1,\n placeholder: \"\"\n },\n \"-\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n return opts.allowMinus && chrs === opts.negationSymbol.back;\n },\n cardinality: 1,\n placeholder: \"\"\n },\n \":\": {\n validator: function(chrs, maskset, pos, strict, opts) {\n var radix = \"[\" + Inputmask.escapeRegex(opts.radixPoint) + \"]\";\n var isValid = new RegExp(radix).test(chrs);\n if (isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint) {\n isValid = {\n caret: pos + 1\n };\n }\n return isValid;\n },\n cardinality: 1,\n placeholder: function(opts) {\n return opts.radixPoint;\n }\n }\n },\n onUnMask: function(maskedValue, unmaskedValue, opts) {\n if (unmaskedValue === \"\" && opts.nullable === true) {\n return unmaskedValue;\n }\n var processValue = maskedValue.replace(opts.prefix, \"\");\n processValue = processValue.replace(opts.suffix, \"\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\n if (opts.placeholder.charAt(0) !== \"\") {\n processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), \"g\"), \"0\");\n }\n if (opts.unmaskAsNumber) {\n if (opts.radixPoint !== \"\" && processValue.indexOf(opts.radixPoint) !== -1) processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), \".\");\n processValue = processValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\");\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n return Number(processValue);\n }\n return processValue;\n },\n isComplete: function(buffer, opts) {\n var maskedValue = (opts.numericInput ? buffer.slice().reverse() : buffer).join(\"\");\n maskedValue = maskedValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\");\n maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\");\n maskedValue = maskedValue.replace(opts.prefix, \"\");\n maskedValue = maskedValue.replace(opts.suffix, \"\");\n maskedValue = maskedValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\");\n if (opts.radixPoint === \",\") maskedValue = maskedValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\");\n return isFinite(maskedValue);\n },\n onBeforeMask: function(initialValue, opts) {\n opts.isNegative = undefined;\n var radixPoint = opts.radixPoint || \",\";\n if ((typeof initialValue == \"number\" || opts.inputType === \"number\") && radixPoint !== \"\") {\n initialValue = initialValue.toString().replace(\".\", radixPoint);\n }\n var valueParts = initialValue.split(radixPoint), integerPart = valueParts[0].replace(/[^\\-0-9]/g, \"\"), decimalPart = valueParts.length > 1 ? valueParts[1].replace(/[^0-9]/g, \"\") : \"\";\n initialValue = integerPart + (decimalPart !== \"\" ? radixPoint + decimalPart : decimalPart);\n var digits = 0;\n if (radixPoint !== \"\") {\n digits = decimalPart.length;\n if (decimalPart !== \"\") {\n var digitsFactor = Math.pow(10, digits || 1);\n if (isFinite(opts.digits)) {\n digits = parseInt(opts.digits);\n digitsFactor = Math.pow(10, digits);\n }\n initialValue = initialValue.replace(Inputmask.escapeRegex(radixPoint), \".\");\n if (isFinite(initialValue)) initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor;\n initialValue = initialValue.toString().replace(\".\", radixPoint);\n }\n }\n if (opts.digits === 0 && initialValue.indexOf(Inputmask.escapeRegex(radixPoint)) !== -1) {\n initialValue = initialValue.substring(0, initialValue.indexOf(Inputmask.escapeRegex(radixPoint)));\n }\n return alignDigits(initialValue.toString().split(\"\"), digits, opts).join(\"\");\n },\n onKeyDown: function(e, buffer, caretPos, opts) {\n var $input = $(this);\n if (e.ctrlKey) {\n switch (e.keyCode) {\n case Inputmask.keyCode.UP:\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step));\n $input.trigger(\"setvalue\");\n break;\n\n case Inputmask.keyCode.DOWN:\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step));\n $input.trigger(\"setvalue\");\n break;\n }\n }\n }\n },\n currency: {\n prefix: \"$ \",\n groupSeparator: \",\",\n alias: \"numeric\",\n placeholder: \"0\",\n autoGroup: true,\n digits: 2,\n digitsOptional: false,\n clearMaskOnLostFocus: false\n },\n decimal: {\n alias: \"numeric\"\n },\n integer: {\n alias: \"numeric\",\n digits: 0,\n radixPoint: \"\"\n },\n percentage: {\n alias: \"numeric\",\n digits: 2,\n digitsOptional: true,\n radixPoint: \".\",\n placeholder: \"0\",\n autoGroup: false,\n min: 0,\n max: 100,\n suffix: \" %\",\n allowMinus: false\n }\n });\n return Inputmask;\n});\n\n//# sourceURL=webpack:///./node_modules/inputmask/dist/inputmask/inputmask.numeric.extensions.js?"); 164 165/***/ }), 166
vendor: 936 bytes, lines 167-177
167/***/ "./node_modules/inputmask/index.js": 168/*!*****************************************!*\ 169 !*** ./node_modules/inputmask/index.js ***! 170 \*****************************************/ 171/*! no static exports found */ 172/***/ (function(module, exports, __webpack_require__) { 173 174eval("__webpack_require__(/*! ./dist/inputmask/inputmask.extensions */ \"./node_modules/inputmask/dist/inputmask/inputmask.extensions.js\");\r\n__webpack_require__(/*! ./dist/inputmask/inputmask.date.extensions */ \"./node_modules/inputmask/dist/inputmask/inputmask.date.extensions.js\");\r\n__webpack_require__(/*! ./dist/inputmask/inputmask.numeric.extensions */ \"./node_modules/inputmask/dist/inputmask/inputmask.numeric.extensions.js\");\r\n\r\nmodule.exports = __webpack_require__(/*! ./dist/inputmask/inputmask.js */ \"./node_modules/inputmask/dist/inputmask/inputmask.js\");\r\n\n\n//# sourceURL=webpack:///./node_modules/inputmask/index.js?"); 175 176/***/ }), 177
vendor: 1,740 bytes, lines 178-188
178/***/ "./node_modules/performance-now/lib/performance-now.js": 179/*!*************************************************************!*\ 180 !*** ./node_modules/performance-now/lib/performance-now.js ***! 181 \*************************************************************/ 182/*! no static exports found */ 183/***/ (function(module, exports, __webpack_require__) { 184 185eval("/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/performance-now/lib/performance-now.js?"); 186 187/***/ }), 188
vendor: 5,937 bytes, lines 189-199
189/***/ "./node_modules/process/browser.js": 190/*!*****************************************!*\ 191 !*** ./node_modules/process/browser.js ***! 192 \*****************************************/ 193/*! no static exports found */ 194/***/ (function(module, exports) { 195 196eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack:///./node_modules/process/browser.js?"); 197 198/***/ }), 199
vendor: 2,602 bytes, lines 200-210
200/***/ "./node_modules/raf/index.js": 201/*!***********************************!*\ 202 !*** ./node_modules/raf/index.js ***! 203 \***********************************/ 204/*! no static exports found */ 205/***/ (function(module, exports, __webpack_require__) { 206 207eval("/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(/*! performance-now */ \"./node_modules/performance-now/lib/performance-now.js\")\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/raf/index.js?"); 208 209/***/ }), 210
vendor: 5,784 bytes, lines 211-221
211/***/ "./node_modules/scroll-to-element/ease.js": 212/*!************************************************!*\ 213 !*** ./node_modules/scroll-to-element/ease.js ***! 214 \************************************************/ 215/*! no static exports found */ 216/***/ (function(module, exports) { 217 218eval("// easing functions from \"Tween.js\"\nexports.linear = function(n){\n return n;\n};\n\nexports.inQuad = function(n){\n return n * n;\n};\n\nexports.outQuad = function(n){\n return n * (2 - n);\n};\n\nexports.inOutQuad = function(n){\n n *= 2;\n if (n < 1) return 0.5 * n * n;\n return - 0.5 * (--n * (n - 2) - 1);\n};\n\nexports.inCube = function(n){\n return n * n * n;\n};\n\nexports.outCube = function(n){\n return --n * n * n + 1;\n};\n\nexports.inOutCube = function(n){\n n *= 2;\n if (n < 1) return 0.5 * n * n * n;\n return 0.5 * ((n -= 2 ) * n * n + 2);\n};\n\nexports.inQuart = function(n){\n return n * n * n * n;\n};\n\nexports.outQuart = function(n){\n return 1 - (--n * n * n * n);\n};\n\nexports.inOutQuart = function(n){\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n;\n return -0.5 * ((n -= 2) * n * n * n - 2);\n};\n\nexports.inQuint = function(n){\n return n * n * n * n * n;\n}\n\nexports.outQuint = function(n){\n return --n * n * n * n * n + 1;\n}\n\nexports.inOutQuint = function(n){\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n * n;\n return 0.5 * ((n -= 2) * n * n * n * n + 2);\n};\n\nexports.inSine = function(n){\n return 1 - Math.cos(n * Math.PI / 2 );\n};\n\nexports.outSine = function(n){\n return Math.sin(n * Math.PI / 2);\n};\n\nexports.inOutSine = function(n){\n return .5 * (1 - Math.cos(Math.PI * n));\n};\n\nexports.inExpo = function(n){\n return 0 == n ? 0 : Math.pow(1024, n - 1);\n};\n\nexports.outExpo = function(n){\n return 1 == n ? n : 1 - Math.pow(2, -10 * n);\n};\n\nexports.inOutExpo = function(n){\n if (0 == n) return 0;\n if (1 == n) return 1;\n if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1);\n return .5 * (-Math.pow(2, -10 * (n - 1)) + 2);\n};\n\nexports.inCirc = function(n){\n return 1 - Math.sqrt(1 - n * n);\n};\n\nexports.outCirc = function(n){\n return Math.sqrt(1 - (--n * n));\n};\n\nexports.inOutCirc = function(n){\n n *= 2\n if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1);\n return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1);\n};\n\nexports.inBack = function(n){\n var s = 1.70158;\n return n * n * (( s + 1 ) * n - s);\n};\n\nexports.outBack = function(n){\n var s = 1.70158;\n return --n * n * ((s + 1) * n + s) + 1;\n};\n\nexports.inOutBack = function(n){\n var s = 1.70158 * 1.525;\n if ( ( n *= 2 ) < 1 ) return 0.5 * ( n * n * ( ( s + 1 ) * n - s ) );\n return 0.5 * ( ( n -= 2 ) * n * ( ( s + 1 ) * n + s ) + 2 );\n};\n\nexports.inBounce = function(n){\n return 1 - exports.outBounce(1 - n);\n};\n\nexports.outBounce = function(n){\n if ( n < ( 1 / 2.75 ) ) {\n return 7.5625 * n * n;\n } else if ( n < ( 2 / 2.75 ) ) {\n return 7.5625 * ( n -= ( 1.5 / 2.75 ) ) * n + 0.75;\n } else if ( n < ( 2.5 / 2.75 ) ) {\n return 7.5625 * ( n -= ( 2.25 / 2.75 ) ) * n + 0.9375;\n } else {\n return 7.5625 * ( n -= ( 2.625 / 2.75 ) ) * n + 0.984375;\n }\n};\n\nexports.inOutBounce = function(n){\n if (n < .5) return exports.inBounce(n * 2) * .5;\n return exports.outBounce(n * 2 - 1) * .5 + .5;\n};\n\nexports.inElastic = function(n){\n var s, a = 0.1, p = 0.4;\n if ( n === 0 ) return 0;\n if ( n === 1 ) return 1;\n if ( !a || a < 1 ) { a = 1; s = p / 4; }\n else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n return - ( a * Math.pow( 2, 10 * ( n -= 1 ) ) * Math.sin( ( n - s ) * ( 2 * Math.PI ) / p ) );\n};\n\nexports.outElastic = function(n){\n var s, a = 0.1, p = 0.4;\n if ( n === 0 ) return 0;\n if ( n === 1 ) return 1;\n if ( !a || a < 1 ) { a = 1; s = p / 4; }\n else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n return ( a * Math.pow( 2, - 10 * n) * Math.sin( ( n - s ) * ( 2 * Math.PI ) / p ) + 1 );\n};\n\nexports.inOutElastic = function(n){\n var s, a = 0.1, p = 0.4;\n if ( n === 0 ) return 0;\n if ( n === 1 ) return 1;\n if ( !a || a < 1 ) { a = 1; s = p / 4; }\n else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n if ( ( n *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( n -= 1 ) ) * Math.sin( ( n - s ) * ( 2 * Math.PI ) / p ) );\n return a * Math.pow( 2, -10 * ( n -= 1 ) ) * Math.sin( ( n - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1;\n};\n\n// aliases\nexports['in-quad'] = exports.inQuad;\nexports['out-quad'] = exports.outQuad;\nexports['in-out-quad'] = exports.inOutQuad;\nexports['in-cube'] = exports.inCube;\nexports['out-cube'] = exports.outCube;\nexports['in-out-cube'] = exports.inOutCube;\nexports['in-quart'] = exports.inQuart;\nexports['out-quart'] = exports.outQuart;\nexports['in-out-quart'] = exports.inOutQuart;\nexports['in-quint'] = exports.inQuint;\nexports['out-quint'] = exports.outQuint;\nexports['in-out-quint'] = exports.inOutQuint;\nexports['in-sine'] = exports.inSine;\nexports['out-sine'] = exports.outSine;\nexports['in-out-sine'] = exports.inOutSine;\nexports['in-expo'] = exports.inExpo;\nexports['out-expo'] = exports.outExpo;\nexports['in-out-expo'] = exports.inOutExpo;\nexports['in-circ'] = exports.inCirc;\nexports['out-circ'] = exports.outCirc;\nexports['in-out-circ'] = exports.inOutCirc;\nexports['in-back'] = exports.inBack;\nexports['out-back'] = exports.outBack;\nexports['in-out-back'] = exports.inOutBack;\nexports['in-bounce'] = exports.inBounce;\nexports['out-bounce'] = exports.outBounce;\nexports['in-out-bounce'] = exports.inOutBounce;\nexports['in-elastic'] = exports.inElastic;\nexports['out-elastic'] = exports.outElastic;\nexports['in-out-elastic'] = exports.inOutElastic;\n\n\n//# sourceURL=webpack:///./node_modules/scroll-to-element/ease.js?"); 219 220/***/ }), 221
vendor: 2,640 bytes, lines 222-232
222/***/ "./node_modules/scroll-to-element/emitter.js": 223/*!***************************************************!*\ 224 !*** ./node_modules/scroll-to-element/emitter.js ***! 225 \***************************************************/ 226/*! no static exports found */ 227/***/ (function(module, exports, __webpack_require__) { 228 229eval("function Emitter(obj) {\n if (obj) return mixin(obj);\n};\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1)\n , callbacks = this._callbacks['$' + event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n\nif (true) {\n module.exports = Emitter;\n}\n\n\n//# sourceURL=webpack:///./node_modules/scroll-to-element/emitter.js?"); 230 231/***/ }), 232
vendor: 1,674 bytes, lines 233-243
233/***/ "./node_modules/scroll-to-element/index.js": 234/*!*************************************************!*\ 235 !*** ./node_modules/scroll-to-element/index.js ***! 236 \*************************************************/ 237/*! no static exports found */ 238/***/ (function(module, exports, __webpack_require__) { 239 240eval("var scroll = __webpack_require__(/*! ./scroll-to */ \"./node_modules/scroll-to-element/scroll-to.js\");\n\nfunction calculateScrollOffset(elem, additionalOffset, alignment) {\n var body = document.body,\n html = document.documentElement;\n\n var elemRect = elem.getBoundingClientRect();\n var clientHeight = html.clientHeight;\n var documentHeight = Math.max( body.scrollHeight, body.offsetHeight,\n html.clientHeight, html.scrollHeight, html.offsetHeight );\n\n additionalOffset = additionalOffset || 0;\n\n var scrollPosition;\n if (alignment === 'bottom') {\n scrollPosition = elemRect.bottom - clientHeight;\n } else if (alignment === 'middle') {\n scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;\n } else { // top and default\n scrollPosition = elemRect.top;\n }\n\n var maxScrollPosition = documentHeight - clientHeight;\n return Math.min(scrollPosition + additionalOffset + window.pageYOffset,\n maxScrollPosition);\n}\n\nmodule.exports = function (elem, options) {\n options = options || {};\n if (typeof elem === 'string') elem = document.querySelector(elem);\n if (elem) return scroll(0, calculateScrollOffset(elem, options.offset, options.align), options);\n};\n\n\n//# sourceURL=webpack:///./node_modules/scroll-to-element/index.js?"); 241 242/***/ }), 243
vendor: 1,392 bytes, lines 244-254
244/***/ "./node_modules/scroll-to-element/scroll-to.js": 245/*!*****************************************************!*\ 246 !*** ./node_modules/scroll-to-element/scroll-to.js ***! 247 \*****************************************************/ 248/*! no static exports found */ 249/***/ (function(module, exports, __webpack_require__) { 250 251eval("var Tween = __webpack_require__(/*! ./tween */ \"./node_modules/scroll-to-element/tween.js\");\nvar raf = __webpack_require__(/*! raf */ \"./node_modules/raf/index.js\");\n\nfunction scroll() {\n var y = window.pageYOffset || document.documentElement.scrollTop;\n var x = window.pageXOffset || document.documentElement.scrollLeft;\n return { top: y, left: x };\n}\n\nfunction scrollTo(x, y, options) {\n options = options || {};\n\n // start position\n var start = scroll();\n\n // setup tween\n var tween = Tween(start)\n .ease(options.ease || 'out-circ')\n .to({ top: y, left: x })\n .duration(options.duration || 1000);\n\n // scroll\n tween.update(function(o){\n window.scrollTo(o.left | 0, o.top | 0);\n });\n\n // handle end\n tween.on('end', function(){\n animate = function(){};\n });\n\n // animate\n function animate() {\n raf(animate);\n tween.update();\n }\n\n animate();\n\n return tween;\n}\n\nmodule.exports = scrollTo;\n\n\n//# sourceURL=webpack:///./node_modules/scroll-to-element/scroll-to.js?"); 252 253/***/ }), 254
vendor: 2,621 bytes, lines 255-265
255/***/ "./node_modules/scroll-to-element/tween.js": 256/*!*************************************************!*\ 257 !*** ./node_modules/scroll-to-element/tween.js ***! 258 \*************************************************/ 259/*! no static exports found */ 260/***/ (function(module, exports, __webpack_require__) { 261 262eval("var ease = __webpack_require__(/*! ./ease */ \"./node_modules/scroll-to-element/ease.js\");\nvar Emitter = __webpack_require__(/*! ./emitter */ \"./node_modules/scroll-to-element/emitter.js\");\n\nfunction extend(obj, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) obj[key] = src[key];\n }\n return obj;\n}\n\nfunction Tween(obj) {\n if (!(this instanceof Tween)) return new Tween(obj);\n this._from = obj;\n this.ease('linear');\n this.duration(500);\n}\n\nEmitter(Tween.prototype);\n\nTween.prototype.reset = function(){\n this.isArray = Object.prototype.toString.call(this._from) === '[object Array]';\n this._curr = extend({}, this._from);\n this._done = false;\n this._start = Date.now();\n return this;\n};\n\nTween.prototype.to = function(obj){\n this.reset();\n this._to = obj;\n return this;\n};\n\nTween.prototype.duration = function(ms){\n this._duration = ms;\n return this;\n};\n\nTween.prototype.ease = function(fn){\n fn = 'function' == typeof fn ? fn : ease[fn];\n if (!fn) throw new TypeError('invalid easing function');\n this._ease = fn;\n return this;\n};\n\nTween.prototype.stop = function(){\n this.stopped = true;\n this._done = true;\n this.emit('stop');\n this.emit('end');\n return this;\n};\n\nTween.prototype.step = function(){\n if (this._done) return;\n\n var duration = this._duration;\n var now = Date.now();\n var delta = now - this._start;\n var done = delta >= duration;\n\n if (done) {\n this._from = this._to;\n this._update(this._to);\n this._done = true;\n this.emit('end');\n return this;\n }\n\n var from = this._from;\n var to = this._to;\n var curr = this._curr;\n var fn = this._ease;\n var p = (now - this._start) / duration;\n var n = fn(p);\n\n if (this.isArray) {\n for (var i = 0; i < from.length; ++i) {\n curr[i] = from[i] + (to[i] - from[i]) * n;\n }\n\n this._update(curr);\n return this;\n }\n\n for (var k in from) {\n curr[k] = from[k] + (to[k] - from[k]) * n;\n }\n\n this._update(curr);\n return this;\n};\n\nTween.prototype.update = function(fn){\n if (0 == arguments.length) return this.step();\n this._update = fn;\n return this;\n};\n\nmodule.exports = Tween;\n\n\n//# sourceURL=webpack:///./node_modules/scroll-to-element/tween.js?"); 263 264/***/ }), 265
vendor: 819 bytes, lines 266-276
266/***/ "./node_modules/webpack/buildin/global.js": 267/*!***********************************!*\ 268 !*** (webpack)/buildin/global.js ***! 269 \***********************************/ 270/*! no static exports found */ 271/***/ (function(module, exports) { 272 273eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); 274 275/***/ }), 276
277/***/ "./src/js/app.js": 278/*!***********************!*\ 279 !*** ./src/js/app.js ***! 280 \***********************/ 281/*! no static exports found */ 282/***/ (function(module, exports, __webpack_require__) { 283 284eval("__webpack_require__(/*! ./site */ \"./src/js/site.js\");\n__webpack_require__(/*! ./components/utilities */ \"./src/js/components/utilities.js\");\n__webpack_require__(/*! ./components/search */ \"./src/js/components/search.js\");\n__webpack_require__(/*! ./components/nfUtmInjection */ \"./src/js/components/nfUtmInjection.js\");\n\n//# sourceURL=webpack:///./src/js/app.js?"); 285 286/***/ }), 287
288/***/ "./src/js/components/nfUtmInjection.js": 289/*!*********************************************!*\ 290 !*** ./src/js/components/nfUtmInjection.js ***! 291 \*********************************************/ 292/*! no static exports found */ 293/***/ (function(module, exports) { 294 295eval("// Create a new object for custom validation of a custom field.\nif (typeof Marionette !== 'undefined') {\n var utmInjection = Marionette.Object.extend({\n initialize: function initialize() {\n // Listen to the render:view event for a field type. Example: Textbox field.\n this.listenTo(nfRadio.channel('hidden'), 'render:view', this.renderView);\n },\n renderView: function renderView(view) {\n // Check if this is the right field. Example check for field key.\n if (view.model.get(\"label\") !== \"utm_information\") {\n return false;\n }\n\n // Get element\n var el = jQuery(view.el).find('.nf-element');\n var utmValue = \"Website\";\n\n // Check if there are utms present\n if (window.location.search) {\n utmSource = this.getParameterByName(\"utm_source\");\n utmMedium = this.getParameterByName(\"utm_medium\");\n utmValue = \"\".concat(utmSource, \"-\").concat(utmMedium);\n }\n el.val(utmValue);\n },\n getParameterByName: function getParameterByName(name) {\n name = name.replace(/[\\[]/, \"\\\\\\[\").replace(/[\\]]/, \"\\\\\\]\");\n var regexS = \"[\\\\?&]\" + name + \"=([^&#]*)\";\n var regex = new RegExp(regexS);\n var results = regex.exec(window.location.search);\n if (results == null) {\n return \"\";\n } else {\n return decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n }\n }\n });\n}\n\n// On Document Ready...\njQuery(document).ready(function ($) {\n // Instantiate our custom field's controller, defined above.\n if (typeof Marionette !== 'undefined') {\n new utmInjection();\n }\n});\n\n//# sourceURL=webpack:///./src/js/components/nfUtmInjection.js?"); 296 297/***/ }), 298
299/***/ "./src/js/components/search.js": 300/*!*************************************!*\ 301 !*** ./src/js/components/search.js ***! 302 \*************************************/ 303/*! no static exports found */ 304/***/ (function(module, exports) { 305 306eval("function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\r\n * Search class for full page search\r\n */\nvar Search = /*#__PURE__*/function () {\n /**\r\n * Setup global vars and if search is present setup event listeners\r\n */\n function Search() {\n _classCallCheck(this, Search);\n this.searchLink = document.getElementById('menu-search-button');\n this.searchElem = document.getElementById('full-page-search');\n if (this.searchLink) {\n this.setClickListener();\n }\n }\n\n /**\r\n * Toggle Active state for full page search container\r\n */\n return _createClass(Search, [{\n key: \"activateSearch\",\n value: function activateSearch() {\n this.searchElem.classList.toggle('active');\n }\n\n /**\r\n * Event listener for full page search open and close\r\n */\n }, {\n key: \"setClickListener\",\n value: function setClickListener() {\n // Top Bar Search Icon\n this.searchLink.addEventListener('click', function (e) {\n e.preventDefault();\n this.activateSearch();\n }.bind(this), false);\n\n // Close Search Icon\n document.getElementById('close-search').addEventListener('click', function () {\n this.activateSearch();\n }.bind(this), false);\n }\n }]);\n}();\nvar search = new Search();\n\n//# sourceURL=webpack:///./src/js/components/search.js?"); 307 308/***/ }), 309
310/***/ "./src/js/components/utilities.js": 311/*!****************************************!*\ 312 !*** ./src/js/components/utilities.js ***! 313 \****************************************/ 314/*! exports provided: Utilities */ 315/***/ (function(module, __webpack_exports__, __webpack_require__) { 316 317"use strict"; 318eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Utilities\", function() { return Utilities; });\n/* harmony import */ var inputmask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inputmask */ \"./node_modules/inputmask/index.js\");\n/* harmony import */ var inputmask__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inputmask__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var scroll_to_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! scroll-to-element */ \"./node_modules/scroll-to-element/index.js\");\n/* harmony import */ var scroll_to_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(scroll_to_element__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\nvar Utilities = /*#__PURE__*/function () {\n function Utilities() {\n _classCallCheck(this, Utilities);\n }\n return _createClass(Utilities, null, [{\n key: \"clearForm\",\n value: function clearForm(form) {\n var formElems = form.elements;\n for (var i = 0; i < formElems.length; i++) {\n if (formElems[i].type === 'submit' || formElems[i].type === 'button') {\n continue;\n }\n if (formElems[i].type === 'checkbox' || formElems[i].type === 'radio') {\n formElems[i].checked = false;\n continue;\n }\n if (formElems[i].name === 'action') {\n continue;\n }\n formElems[i].value = '';\n }\n }\n }, {\n key: \"serialize\",\n value: function serialize(form) {\n // Setup our serialized data\n var serialized = [];\n\n // Loop through each field in the form\n for (var i = 0; i < form.elements.length; i++) {\n var field = form.elements[i];\n\n // Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields\n if (!field.name || field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') {\n continue;\n }\n\n // If a multi-select, get all selections\n if (field.type === 'select-multiple') {\n for (var n = 0; n < field.options.length; n++) {\n if (!field.options[n].selected) continue;\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.options[n].value));\n }\n }\n // Convert field data to a query string\n else if (field.type !== 'checkbox' && field.type !== 'radio' || field.checked) {\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.value));\n }\n }\n return serialized.join('&');\n }\n }, {\n key: \"formInputs\",\n value: function formInputs(formId) {\n return document.getElementById(formId).elements;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(descriptor) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';\n var elem;\n if (type === 'id') {\n elem = document.getElementById(descriptor);\n }
318 else {\n elem = document.getElementsByClassName(descriptor);\n }\n return elem.offsetHeight;\n }\n }, {\n key: \"scrollToTop\",\n value: function scrollToTop() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var scrollInterval = setInterval(function () {\n var windowPos = !window.scrollY ? window.pageYOffset : window.scrollY;\n var scrollStep = -windowPos / (duration / 15) - 16;\n if (windowPos != 0) {\n window.scrollBy(0, scrollStep);\n } else {\n clearInterval(scrollInterval);\n }\n }, 15);\n }\n }, {\n key: \"createHiddenInput\",\n value: function createHiddenInput(name, value) {\n var input = document.createElement('input');\n input.type = 'hidden';\n input.name = name;\n input.value = value;\n return input;\n }\n }, {\n key: \"notifications\",\n value: function notifications(containerElem, msg) {\n var notificationStatus = msg.status === 'error' ? 'alert-danger' : 'alert-success';\n var alertContainer = document.createElement('div');\n alertContainer.classList.add('alert', notificationStatus);\n alertContainer.id = 'notification-container';\n alertContainer.innerText = msg.message;\n containerElem.insertBefore(alertContainer, containerElem.firstChild);\n if (msg.status === 'success') {\n utilities.clearForm(containerElem);\n }\n }\n }, {\n key: \"createLoader\",\n value: function createLoader(containerElem) {\n var loader = document.createElement('div');\n loader.id = 'loader-container';\n loader.innerHTML = '<i class=\"fas fa-spinner fa-spin fa-3x\"></i>';\n containerElem.insertBefore(loader, containerElem.firstChild);\n }\n }, {\n key: \"removeLoader\",\n value: function removeLoader() {\n var loader = document.getElementById('loader-container');\n if (loader) {\n loader.remove();\n }\n }\n }, {\n key: \"setDropdownMenuScrollHeight\",\n value: function setDropdownMenuScrollHeight(elem, headerHeight, window) {\n var dropdownHeight = 311;\n if (window.innerWidth >= 1199) {\n elem.removeAttribute('style');\n return;\n }\n if (window.innerHeight < 311 + headerHeight) {\n dropdownHeight = 311 - headerHeight;\n }\n elem.setAttribute('style', 'max-height: ' + dropdownHeight + 'px');\n }\n }, {\n key: \"removeSiblingElementByClass\",\n value: function removeSiblingElementByClass(element, className) {\n if (element.nextElementSibling !== null) {\n if (element.nextElementSibling.classList.contains(className)) {\n element.parentNode.removeChild(element.nextElementSibling);\n }\n }\n }\n }, {\n key: \"setInputMask\",\n value: function setInputMask(elemID, type) {\n var elem = document.getElementById(elemID);\n switch (type) {\n case 'zip':\n var zipMask = new inputmask__WEBPACK_IMPORTED_MODULE_0___default.a('99999');\n zipMask.mask(elem);\n break;\n case 'phone':\n var phoneMask = new inputmask__WEBPACK_IMPORTED_MODULE_0___default.a('(999) 999-9999', {\n 'autoUnmask': true,\n 'removeMaskOnSubmit': true\n });\n phoneMask.mask(elem);\n break;\n }\n }\n }, {\n key: \"formatPhoneNumber\",\n value: function formatPhoneNumber(number) {\n var cleaned = ('' + number).replace(/\\D/g, '');\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\n if (match) {\n return '(' + match[1] + ') ' + match[2] + '-' + match[3];\n }\n return '';\n }\n }, {\n key: \"isElementInViewport\",\n value: function isElementInViewport(el) {\n var rect = el.getBoundingClientRect();\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n }\n }, {\n key: \"adminBarPresent\",\n value: function adminBarPresent() {\n return document.body.classList.contains('admin-bar');\n }\n }]);\n}();\n\n//# sourceURL=webpack:///./src/js/components/utilities.js?"); 319 320/***/ }), 321
322/***/ "./src/js/site.js": 323/*!************************!*\ 324 !*** ./src/js/site.js ***! 325 \************************/ 326/*! no exports provided */ 327/***/ (function(module, __webpack_exports__, __webpack_require__) { 328 329"use strict"; 330eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _glidejs_glide__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @glidejs/glide */ \"./node_modules/@glidejs/glide/dist/glide.esm.js\");\n/* harmony import */ var _components_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/utilities */ \"./src/js/components/utilities.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _readOnlyError(r) { throw new TypeError('\"' + r + '\" is read-only'); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\nvar KbBSSite = /*#__PURE__*/function () {\n function KbBSSite() {\n _classCallCheck(this, KbBSSite);\n }\n return _createClass(KbBSSite, [{\n key: \"run\",\n value: function run() {\n this.setEventListeners();\n this.mountGlideSliders();\n this.setScrollers();
330\n this.toggleFloatForm();\n this.toggleTabs();\n }\n }, {\n key: \"setEventListeners\",\n value: function setEventListeners() {\n var _self = this;\n document.getElementById('to-top').addEventListener('click', function () {\n _components_utilities__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].scrollToTop();\n });\n window.addEventListener('load', function () {\n _self.openTab(window.location.hash);\n });\n }\n }, {\n key: \"mountGlideSliders\",\n value: function mountGlideSliders() {\n var sliders = document.querySelectorAll('.glide');\n var heroSlider = document.getElementById('hero-slider');\n var accouncementSlider = document.getElementById('announcement-glide');\n var facilitySlider = document.getElementById('facility-glide');\n if (sliders.length > 0) {\n new _glidejs_glide__WEBPACK_IMPORTED_MODULE_0__[\"default\"]('.glide', {\n autoplay: 4000,\n hoverpause: false,\n navigation: false\n }).mount();\n }\n if (heroSlider) {\n var heroCarousel = new _glidejs_glide__WEBPACK_IMPORTED_MODULE_0__[\"default\"](heroSlider, {\n type: 'carousel',\n perView: 1,\n autoplay: false,\n navigation: true\n }).mount();\n }\n if (accouncementSlider) {\n var annCarousel = new _glidejs_glide__WEBPACK_IMPORTED_MODULE_0__[\"default\"](accouncementSlider, {\n type: 'carousel',\n perView: 3,\n autoplay: false,\n navigation: true,\n breakpoints: {\n 1060: {\n perView: 2\n },\n 768: {\n perView: 1\n }\n }\n }).mount();\n }\n if (facilitySlider) {\n var facilityCarousel = new _glidejs_glide__WEBPACK_IMPORTED_MODULE_0__[\"default\"](facilitySlider, {\n type: 'carousel',\n perView: 5,\n autoplay: false,\n navigation: true,\n breakpoints: {\n 1060: {\n perView: 3\n },\n 768: {\n perView: 2\n }\n }\n }).mount();\n }\n }\n\n /**\r\n * Open tab in tab list.\r\n *\r\n * @param urlHash\r\n */\n }, {\n key: \"openTab\",\n value: function openTab(urlHash) {\n var hashElem = document.querySelector(\"a[href='\" + urlHash + \"']\");\n if (hashElem) {\n hashElem.click();\n this.scrollTo(urlHash.replace(/#/, \"\"));\n }\n }\n }, {\n key: \"setScrollers\",\n value: function setScrollers() {\n var _this = this;\n var links = document.querySelectorAll('.scroller');\n links.forEach(function (each) {\n return each.onclick = _this.scrollAnchors;\n });\n }\n }, {\n key: \"scrollAnchors\",\n value: function scrollAnchors(e) {\n var respond = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var distanceToTop = function distanceToTop(el) {\n return Math.floor(el.getBoundingClientRect().top) - offset;\n };\n e.preventDefault();\n var targetID = respond ? respond.getAttribute('href') : this.getAttribute('href');\n var targetAnchor = document.querySelector(targetID);\n if (!targetAnchor) return;\n var originalTop = distanceToTop(targetAnchor);\n window.scrollBy({\n top: originalTop,\n left: 0,\n behavior: 'smooth'\n });\n var checkIfDone = setInterval(function () {\n var atBottom = window.innerHeight + window.pageYOffset >= document.body.offsetHeight - 2;\n if (distanceToTop(targetAnchor) === 0 || atBottom) {\n targetAnchor.tabIndex = '-1';\n targetAnchor.focus();\n window.history.pushState('', '', targetID);\n clearInterval(checkIfDone);\n }\n }, 500);\n }\n\n /**\r\n * Scroll to element by id\r\n *\r\n * @param elementID\r\n * @param duration\r\n */\n }, {\n key: \"scrollTo\",\n value: function scrollTo(elementID) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;\n var scrollInterval = setInterval(function () {\n var scrollElem = document.getElementById(elementID);\n if (!scrollElem) {\n return;\n }\n var elemRect = scrollElem.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n var windowPos = !window.scrollY ? window.pageYOffset : window.scrollY;\n var offset = elemRect.top - bodyRect.top;\n var scrollStep = offset / (duration / 15);\n if (windowPos + 350 <= offset) {\n window.scrollBy(0, scrollStep);\n } else {\n clearInterval(scrollInterval);\n }\n }, 15);\n }\n }, {\n key: \"toggleFloatForm\",\n value: function toggleFloatForm(
330) {\n var toggleFloatForm = document.getElementById(\"toggle-float-form\");\n var floatForm = document.getElementById(\"float-form\");\n var closeFloatForm = document.getElementById(\"close-float-form\");\n if (floatForm !== null) {\n toggleFloatForm.addEventListener(\"click\", function () {\n if (floatForm.classList.contains(\"active\")) {\n floatForm.classList.remove(\"active\");\n } else {\n floatForm.classList.add(\"active\");\n }\n });\n }\n if (floatForm !== null) {\n closeFloatForm.addEventListener(\"click\", function () {\n floatForm.classList.remove(\"active\");\n });\n }\n }\n\n /**\r\n * Setup up toggle tabs\r\n */\n }, {\n key: \"toggleTabs\",\n value: function toggleTabs() {\n var _this2 = this;\n // Get all toggle tab activators\n var tabActivators = document.querySelectorAll(\"[data-toggle='tab']\");\n if (tabActivators.length) {\n // Setup event listener for all activators\n tabActivators.forEach(function (activator) {\n // On click switch tabs\n activator.addEventListener(\"click\", _this2.switchTab.bind(_this2));\n });\n }\n }\n\n /**\r\n * Switch tab and content pane on click\r\n *\r\n * @param e\r\n */\n }, {\n key: \"switchTab\",\n value: function switchTab(e) {\n // Prevent default screen jump to by href\n e.preventDefault();\n\n // Get all tab panes\n var tabPanes = document.querySelectorAll(\".tab-pane\");\n\n // Get the id to activate from the activator href. We have to strip the # from the value\n var activeId = e.target.getAttribute(\"href\").replace(\"#\", \"\");\n\n // Remove active class from all tabs\n this.deactivateTabs();\n\n // Find the parent of the active element clicked and add the active class\n e.target.closest(\"li\").classList.add(\"active\");\n\n // Remove the active class from all the panes that contain content\n Array.from(tabPanes).filter(function (pane) {\n return pane.classList.remove(\"active\");\n });\n\n // Add active class to the content pane we want to see\n document.getElementById(activeId).classList.add(\"active\");\n }\n\n /**\r\n * Remove active class from all tabs\r\n */\n }, {\n key: \"deactivateTabs\",\n value: function deactivateTabs() {\n // Get all tab activators\n var tabs = document.querySelectorAll(\"[data-tabs='tabs'] li\");\n if (tabs.length) {\n // Remove active class from all activator tabs\n Array.from(tabs).filter(function (tab) {\n return tab.classList.remove(\"active\");\n });\n }\n }\n }]);\n}();\nvar site = new KbBSSite();\nsite.run();\n\n//# sourceURL=webpack:///./src/js/site.js?"); 331 332/***/ }), 333
334/***/ "./src/scss/app.scss": 335/*!***************************!*\ 336 !*** ./src/scss/app.scss ***! 337 \***************************/ 338/*! no static exports found */ 339/***/ (function(module, exports, __webpack_require__) { 340 341eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/scss/app.scss?"); 342 343/***/ })
343, 344 345/***/ 0: 346/*!*************************************************!*\ 347 !*** multi ./src/js/app.js ./src/scss/app.scss ***! 348 \*************************************************/ 349/*! no static exports found */ 350/***/ (function(module, exports, __webpack_require__) { 351 352eval("__webpack_require__(/*! ./src/js/app.js */\"./src/js/app.js\");\nmodule.exports = __webpack_require__(/*! ./src/scss/app.scss */\"./src/scss/app.scss\");\n\n\n//# sourceURL=webpack:///multi_./src/js/app.js_./src/scss/app.scss?"); 353 354/***/ }) 355 356/******/ });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.