\r\n * ```\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n bind: function bind(el, binding, vnode) {\n var id = nodeList.push(el) - 1;\n var documentHandler = function documentHandler() {\n var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!vnode.context || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || vnode.context.popperElm && (vnode.context.popperElm.contains(mouseup.target) || vnode.context.popperElm.contains(mousedown.target))) return;\n\n if (binding.expression && el[ctx].methodName && vnode.context[el[ctx].methodName]) {\n vnode.context[el[ctx].methodName]();\n } else {\n el[ctx].bindingFn && el[ctx].bindingFn();\n }\n };\n el[ctx] = {\n id: id,\n documentHandler: documentHandler,\n methodName: binding.expression,\n bindingFn: binding.value\n };\n },\n update: function update(el, binding) {\n el[ctx].methodName = binding.expression;\n el[ctx].bindingFn = binding.value;\n },\n unbind: function unbind(el) {\n var len = nodeList.length;\n\n for (var i = 0; i < len; i++) {\n if (nodeList[i][ctx].id === el[ctx].id) {\n nodeList.splice(i, 1);\n break;\n }\n }\n }\n});\n\n/***/ }),\n/* 21 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (target) {\n for (var i = 1, j = arguments.length; i < j; i++) {\n var source = arguments[i] || {};\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n var value = source[prop];\n if (value !== undefined) {\n target[prop] = value;\n }\n }\n }\n }\n\n return target;\n});;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\r\n * @fileOverview Kickass library to create and place poppers near their reference elements.\r\n * @version {{version}}\r\n * @license\r\n * Copyright (c) 2016 Federico Zivolo and contributors\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\n\n//\n// Cross module loader\n// Supported: Node, AMD, Browser globals\n//\n;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__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__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.Popper = factory();\n }\n})(this, function () {\n\n 'use strict';\n\n var root = window;\n\n // default options\n var DEFAULTS = {\n // placement of the popper\n placement: 'bottom',\n\n gpuAcceleration: true,\n\n // shift popper from its origin by the given amount of pixels (can be negative)\n offset: 0,\n\n // the element which will act as boundary of the popper\n boundariesElement: 'viewport',\n\n // amount of pixel used to define a minimum distance between the boundaries and the popper\n boundariesPadding: 5,\n\n // popper will try to prevent overflow following this order,\n // by default, then, it could overflow on the left and on top of the boundariesElement\n preventOverflowOrder: ['left', 'right', 'top', 'bottom'],\n\n // the behavior used by flip to change the placement of the popper\n flipBehavior: 'flip',\n\n arrowElement: '[x-arrow]',\n\n // list of functions used to modify the offsets before they are applied to the popper\n modifiers: ['shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],\n\n modifiersIgnored: [],\n\n forceAbsolute: false\n };\n\n /**\r\n * Create a new Popper.js instance\r\n * @constructor Popper\r\n * @param {HTMLElement} reference - The reference element used to position the popper\r\n * @param {HTMLElement|Object} popper\r\n * The HTML element used as popper, or a configuration used to generate the popper.\r\n * @param {String} [popper.tagName='div'] The tag name of the generated popper.\r\n * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.\r\n * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.\r\n * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.\r\n * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.\r\n * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.\r\n * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.\r\n * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.\r\n * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.\r\n * @param {Object} options\r\n * @param {String} [options.placement=bottom]\r\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),\r\n * left(-start, -end)`\r\n *\r\n * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']\r\n * The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of\r\n * its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its\r\n * reference element.\r\n * By default, it will look for a child node of the popper with the `x-arrow` attribute.\r\n *\r\n * @param {Boolean} [options.gpuAcceleration=true]\r\n * When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the\r\n * browser to use the GPU to accelerate the rendering.\r\n * If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.\r\n *\r\n * @param {Number} [options.offset=0]\r\n * Amount of pixels the popper will be shifted (can be negative).\r\n *\r\n * @param {String|Element} [options.boundariesElement='viewport']\r\n * The element which will define the boundaries of the popper position, the popper will never be placed outside\r\n * of the defined boundaries (except if `keepTogether` is enabled)\r\n *\r\n * @param {Number} [options.boundariesPadding=5]\r\n * Additional padding for the boundaries\r\n *\r\n * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]\r\n * Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,\r\n * this means that the last ones will never overflow\r\n *\r\n * @param {String|Array} [options.flipBehavior='flip']\r\n * The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to\r\n * overlap its reference element. Defining `flip` as value, the placement will be flipped on\r\n * its axis (`right - left`, `top - bottom`).\r\n * You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify\r\n * how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,\r\n * then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)\r\n *\r\n * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]\r\n * List of functions used to modify the data before they are applied to the popper, add your custom functions\r\n * to this array to edit the offsets and placement.\r\n * The function should reflect the @params and @returns of preventOverflow\r\n *\r\n * @param {Array} [options.modifiersIgnored=[]]\r\n * Put here any built-in modifier name you want to exclude from the modifiers list\r\n * The function should reflect the @params and @returns of preventOverflow\r\n *\r\n * @param {Boolean} [options.removeOnDestroy=false]\r\n * Set to true if you want to automatically remove the popper when you call the `destroy` method.\r\n */\n function Popper(reference, popper, options) {\n this._reference = reference.jquery ? reference[0] : reference;\n this.state = {};\n\n // if the popper variable is a configuration object, parse it to generate an HTMLElement\n // generate a default popper if is not defined\n var isNotDefined = typeof popper === 'undefined' || popper === null;\n var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';\n if (isNotDefined || isConfig) {\n this._popper = this.parse(isConfig ? popper : {});\n }\n // otherwise, use the given HTMLElement as popper\n else {\n this._popper = popper.jquery ? popper[0] : popper;\n }\n\n // with {} we create a new object with the options inside it\n this._options = Object.assign({}, DEFAULTS, options);\n\n // refactoring modifiers' list\n this._options.modifiers = this._options.modifiers.map(function (modifier) {\n // remove ignored modifiers\n if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;\n\n // set the x-placement attribute before everything else because it could be used to add margins to the popper\n // margins needs to be calculated to get the correct popper offsets\n if (modifier === 'applyStyle') {\n this._popper.setAttribute('x-placement', this._options.placement);\n }\n\n // return predefined modifier identified by string or keep the custom one\n return this.modifiers[modifier] || modifier;\n }.bind(this));\n\n // make sure to apply the popper position before any computation\n this.state.position = this._getPosition(this._popper, this._reference);\n setStyle(this._popper, { position: this.state.position, top: 0 });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n // setup event listeners, they will take care of update the position in specific situations\n this._setupEventListeners();\n return this;\n }\n\n //\n // Methods\n //\n /**\r\n * Destroy the popper\r\n * @method\r\n * @memberof Popper\r\n */\n Popper.prototype.destroy = function () {\n this._popper.removeAttribute('x-placement');\n this._popper.style.left = '';\n this._popper.style.position = '';\n this._popper.style.top = '';\n this._popper.style[getSupportedPropertyName('transform')] = '';\n this._removeEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n if (this._options.removeOnDestroy) {\n this._popper.remove();\n }\n return this;\n };\n\n /**\r\n * Updates the position of the popper, computing the new offsets and applying the new style\r\n * @method\r\n * @memberof Popper\r\n */\n Popper.prototype.update = function () {\n var data = { instance: this, styles: {} };\n\n // store placement inside the data object, modifiers will be able to edit `placement` if needed\n // and refer to _originalPlacement to know the original value\n data.placement = this._options.placement;\n data._originalPlacement = this._options.placement;\n\n // compute the popper and reference offsets and put them inside data.offsets\n data.offsets = this._getOffsets(this._popper, this._reference, data.placement);\n\n // get boundaries\n data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);\n\n data = this.runModifiers(data, this._options.modifiers);\n\n if (typeof this.state.updateCallback === 'function') {\n this.state.updateCallback(data);\n }\n };\n\n /**\r\n * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.\r\n * @method\r\n * @memberof Popper\r\n * @param {Function} callback\r\n */\n Popper.prototype.onCreate = function (callback) {\n // the createCallbacks return as first argument the popper instance\n callback(this);\n return this;\n };\n\n /**\r\n * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations\r\n * used to style popper and its arrow.\r\n * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!\r\n * @method\r\n * @memberof Popper\r\n * @param {Function} callback\r\n */\n Popper.prototype.onUpdate = function (callback) {\n this.state.updateCallback = callback;\n return this;\n };\n\n /**\r\n * Helper used to generate poppers from a configuration file\r\n * @method\r\n * @memberof Popper\r\n * @param config {Object} configuration\r\n * @returns {HTMLElement} popper\r\n */\n Popper.prototype.parse = function (config) {\n var defaultConfig = {\n tagName: 'div',\n classNames: ['popper'],\n attributes: [],\n parent: root.document.body,\n content: '',\n contentType: 'text',\n arrowTagName: 'div',\n arrowClassNames: ['popper__arrow'],\n arrowAttributes: ['x-arrow']\n };\n config = Object.assign({}, defaultConfig, config);\n\n var d = root.document;\n\n var popper = d.createElement(config.tagName);\n addClassNames(popper, config.classNames);\n addAttributes(popper, config.attributes);\n if (config.contentType === 'node') {\n popper.appendChild(config.content.jquery ? config.content[0] : config.content);\n } else if (config.contentType === 'html') {\n popper.innerHTML = config.content;\n } else {\n popper.textContent = config.content;\n }\n\n if (config.arrowTagName) {\n var arrow = d.createElement(config.arrowTagName);\n addClassNames(arrow, config.arrowClassNames);\n addAttributes(arrow, config.arrowAttributes);\n popper.appendChild(arrow);\n }\n\n var parent = config.parent.jquery ? config.parent[0] : config.parent;\n\n // if the given parent is a string, use it to match an element\n // if more than one element is matched, the first one will be used as parent\n // if no elements are matched, the script will throw an error\n if (typeof parent === 'string') {\n parent = d.querySelectorAll(config.parent);\n if (parent.length > 1) {\n console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');\n }\n if (parent.length === 0) {\n throw 'ERROR: the given `parent` doesn\\'t exists!';\n }\n parent = parent[0];\n }\n // if the given parent is a DOM nodes list or an array of nodes with more than one element,\n // the first one will be used as parent\n if (parent.length > 1 && parent instanceof Element === false) {\n console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');\n parent = parent[0];\n }\n\n // append the generated popper to its parent\n parent.appendChild(popper);\n\n return popper;\n\n /**\r\n * Adds class names to the given element\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} target\r\n * @param {Array} classes\r\n */\n function addClassNames(element, classNames) {\n classNames.forEach(function (className) {\n element.classList.add(className);\n });\n }\n\n /**\r\n * Adds attributes to the given element\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} target\r\n * @param {Array} attributes\r\n * @example\r\n * addAttributes(element, [ 'data-info:foobar' ]);\r\n */\n function addAttributes(element, attributes) {\n attributes.forEach(function (attribute) {\n element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');\n });\n }\n };\n\n /**\r\n * Helper used to get the position which will be applied to the popper\r\n * @method\r\n * @memberof Popper\r\n * @param config {HTMLElement} popper element\r\n * @param reference {HTMLElement} reference element\r\n * @returns {String} position\r\n */\n Popper.prototype._getPosition = function (popper, reference) {\n var container = getOffsetParent(reference);\n\n if (this._options.forceAbsolute) {\n return 'absolute';\n }\n\n // Decide if the popper will be fixed\n // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together\n var isParentFixed = isFixed(reference, container);\n return isParentFixed ? 'fixed' : 'absolute';\n };\n\n /**\r\n * Get offsets to the popper\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n * @param {Element} popper - the popper element\r\n * @param {Element} reference - the reference element (the popper will be relative to this)\r\n * @returns {Object} An object containing the offsets which will be applied to the popper\r\n */\n Popper.prototype._getOffsets = function (popper, reference, placement) {\n placement = placement.split('-')[0];\n var popperOffsets = {};\n\n popperOffsets.position = this.state.position;\n var isParentFixed = popperOffsets.position === 'fixed';\n\n //\n // Get reference element position\n //\n var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);\n\n //\n // Get popper sizes\n //\n var popperRect = getOuterSizes(popper);\n\n //\n // Compute offsets of popper\n //\n\n // depending by the popper placement we have to compute its offsets slightly differently\n if (['right', 'left'].indexOf(placement) !== -1) {\n popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;\n if (placement === 'left') {\n popperOffsets.left = referenceOffsets.left - popperRect.width;\n } else {\n popperOffsets.left = referenceOffsets.right;\n }\n } else {\n popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;\n if (placement === 'top') {\n popperOffsets.top = referenceOffsets.top - popperRect.height;\n } else {\n popperOffsets.top = referenceOffsets.bottom;\n }\n }\n\n // Add width and height to our offsets object\n popperOffsets.width = popperRect.width;\n popperOffsets.height = popperRect.height;\n\n return {\n popper: popperOffsets,\n reference: referenceOffsets\n };\n };\n\n /**\r\n * Setup needed event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n */\n Popper.prototype._setupEventListeners = function () {\n // NOTE: 1 DOM access here\n this.state.updateBound = this.update.bind(this);\n root.addEventListener('resize', this.state.updateBound);\n // if the boundariesElement is window we don't need to listen for the scroll event\n if (this._options.boundariesElement !== 'window') {\n var target = getScrollParent(this._reference);\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\n if (target === root.document.body || target === root.document.documentElement) {\n target = root;\n }\n target.addEventListener('scroll', this.state.updateBound);\n }\n };\n\n /**\r\n * Remove event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n */\n Popper.prototype._removeEventListeners = function () {\n // NOTE: 1 DOM access here\n root.removeEventListener('resize', this.state.updateBound);\n if (this._options.boundariesElement !== 'window') {\n var target = getScrollParent(this._reference);\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\n if (target === root.document.body || target === root.document.documentElement) {\n target = root;\n }\n target.removeEventListener('scroll', this.state.updateBound);\n }\n this.state.updateBound = null;\n };\n\n /**\r\n * Computed the boundaries limits and return them\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n * @param {Object} data - Object containing the property \"offsets\" generated by `_getOffsets`\r\n * @param {Number} padding - Boundaries padding\r\n * @param {Element} boundariesElement - Element used to define the boundaries\r\n * @returns {Object} Coordinates of the boundaries\r\n */\n Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = {};\n var width, height;\n if (boundariesElement === 'window') {\n var body = root.document.body,\n html = root.document.documentElement;\n\n height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n\n boundaries = {\n top: 0,\n right: width,\n bottom: height,\n left: 0\n };\n } else if (boundariesElement === 'viewport') {\n var offsetParent = getOffsetParent(this._popper);\n var scrollParent = getScrollParent(this._popper);\n var offsetParentRect = getOffsetRect(offsetParent);\n\n // Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop`\n var getScrollTopValue = function getScrollTopValue(element) {\n return element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop;\n };\n var getScrollLeftValue = function getScrollLeftValue(element) {\n return element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft;\n };\n\n // if the popper is fixed we don't have to substract scrolling from the boundaries\n var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent);\n var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent);\n\n boundaries = {\n top: 0 - (offsetParentRect.top - scrollTop),\n right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),\n bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),\n left: 0 - (offsetParentRect.left - scrollLeft)\n };\n } else {\n if (getOffsetParent(this._popper) === boundariesElement) {\n boundaries = {\n top: 0,\n left: 0,\n right: boundariesElement.clientWidth,\n bottom: boundariesElement.clientHeight\n };\n } else {\n boundaries = getOffsetRect(boundariesElement);\n }\n }\n boundaries.left += padding;\n boundaries.right -= padding;\n boundaries.top = boundaries.top + padding;\n boundaries.bottom = boundaries.bottom - padding;\n return boundaries;\n };\n\n /**\r\n * Loop trough the list of modifiers and run them in order, each of them will then edit the data object\r\n * @method\r\n * @memberof Popper\r\n * @access public\r\n * @param {Object} data\r\n * @param {Array} modifiers\r\n * @param {Function} ends\r\n */\n Popper.prototype.runModifiers = function (data, modifiers, ends) {\n var modifiersToRun = modifiers.slice();\n if (ends !== undefined) {\n modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));\n }\n\n modifiersToRun.forEach(function (modifier) {\n if (isFunction(modifier)) {\n data = modifier.call(this, data);\n }\n }.bind(this));\n\n return data;\n };\n\n /**\r\n * Helper used to know if the given modifier depends from another one.\r\n * @method\r\n * @memberof Popper\r\n * @param {String} requesting - name of requesting modifier\r\n * @param {String} requested - name of requested modifier\r\n * @returns {Boolean}\r\n */\n Popper.prototype.isModifierRequired = function (requesting, requested) {\n var index = getArrayKeyIndex(this._options.modifiers, requesting);\n return !!this._options.modifiers.slice(0, index).filter(function (modifier) {\n return modifier === requested;\n }).length;\n };\n\n //\n // Modifiers\n //\n\n /**\r\n * Modifiers list\r\n * @namespace Popper.modifiers\r\n * @memberof Popper\r\n * @type {Object}\r\n */\n Popper.prototype.modifiers = {};\n\n /**\r\n * Apply the computed styles to the popper element\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @returns {Object} The same data object\r\n */\n Popper.prototype.modifiers.applyStyle = function (data) {\n // apply the final offsets to the popper\n // NOTE: 1 DOM access here\n var styles = {\n position: data.offsets.popper.position\n };\n\n // round top and left to avoid blurry text\n var left = Math.round(data.offsets.popper.left);\n var top = Math.round(data.offsets.popper.top);\n\n // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper\n // we automatically use the supported prefixed version if needed\n var prefixedProperty;\n if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles.top = 0;\n styles.left = 0;\n }\n // othwerise, we use the standard `left` and `top` properties\n else {\n styles.left = left;\n styles.top = top;\n }\n\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n Object.assign(styles, data.styles);\n\n setStyle(this._popper, styles);\n\n // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)\n // NOTE: 1 DOM access here\n this._popper.setAttribute('x-placement', data.placement);\n\n // if the arrow modifier is required and the arrow style has been computed, apply the arrow style\n if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) {\n setStyle(data.arrowElement, data.offsets.arrow);\n }\n\n return data;\n };\n\n /**\r\n * Modifier used to shift the popper on the start or end of its reference element side\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @returns {Object} The data object, properly modified\r\n */\n Popper.prototype.modifiers.shift = function (data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftVariation = placement.split('-')[1];\n\n // if shift shiftVariation is specified, run the modifier\n if (shiftVariation) {\n var reference = data.offsets.reference;\n var popper = getPopperClientRect(data.offsets.popper);\n\n var shiftOffsets = {\n y: {\n start: { top: reference.top },\n end: { top: reference.top + reference.height - popper.height }\n },\n x: {\n start: { left: reference.left },\n end: { left: reference.left + reference.width - popper.width }\n }\n };\n\n var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';\n\n data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);\n }\n\n return data;\n };\n\n /**\r\n * Modifier used to make sure the popper does not overflows from it's boundaries\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @returns {Object} The data object, properly modified\r\n */\n Popper.prototype.modifiers.preventOverflow = function (data) {\n var order = this._options.preventOverflowOrder;\n var popper = getPopperClientRect(data.offsets.popper);\n\n var check = {\n left: function left() {\n var left = popper.left;\n if (popper.left < data.boundaries.left) {\n left = Math.max(popper.left, data.boundaries.left);\n }\n return { left: left };\n },\n right: function right() {\n var left = popper.left;\n if (popper.right > data.boundaries.right) {\n left = Math.min(popper.left, data.boundaries.right - popper.width);\n }\n return { left: left };\n },\n top: function top() {\n var top = popper.top;\n if (popper.top < data.boundaries.top) {\n top = Math.max(popper.top, data.boundaries.top);\n }\n return { top: top };\n },\n bottom: function bottom() {\n var top = popper.top;\n if (popper.bottom > data.boundaries.bottom) {\n top = Math.min(popper.top, data.boundaries.bottom - popper.height);\n }\n return { top: top };\n }\n };\n\n order.forEach(function (direction) {\n data.offsets.popper = Object.assign(popper, check[direction]());\n });\n\n return data;\n };\n\n /**\r\n * Modifier used to make sure the popper is always near its reference\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\n Popper.prototype.modifiers.keepTogether = function (data) {\n var popper = getPopperClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var f = Math.floor;\n\n if (popper.right < f(reference.left)) {\n data.offsets.popper.left = f(reference.left) - popper.width;\n }\n if (popper.left > f(reference.right)) {\n data.offsets.popper.left = f(reference.right);\n }\n if (popper.bottom < f(reference.top)) {\n data.offsets.popper.top = f(reference.top) - popper.height;\n }\n if (popper.top > f(reference.bottom)) {\n data.offsets.popper.top = f(reference.bottom);\n }\n\n return data;\n };\n\n /**\r\n * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\n Popper.prototype.modifiers.flip = function (data) {\n // check if preventOverflow is in the list of modifiers before the flip modifier.\n // otherwise flip would not work as expected.\n if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {\n console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');\n return data;\n }\n\n if (data.flipped && data.placement === data._originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n if (this._options.flipBehavior === 'flip') {\n flipOrder = [placement, placementOpposite];\n } else {\n flipOrder = this._options.flipBehavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = getPopperClientRect(data.offsets.popper);\n\n // this boolean is used to distinguish right and bottom from top and left\n // they need different computations to get flipped\n var a = ['right', 'bottom'].indexOf(placement) !== -1;\n\n // using Math.floor because the reference offsets may contain decimals we are not going to consider here\n if (a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) || !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])) {\n // we'll use this boolean to detect any flip loop\n data.flipped = true;\n data.placement = flipOrder[index + 1];\n if (variation) {\n data.placement += '-' + variation;\n }\n data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;\n\n data = this.runModifiers(data, this._options.modifiers, this._flip);\n }\n }.bind(this));\n return data;\n };\n\n /**\r\n * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.\r\n * The offsets will shift the popper on the side of its reference element.\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\n Popper.prototype.modifiers.offset = function (data) {\n var offset = this._options.offset;\n var popper = data.offsets.popper;\n\n if (data.placement.indexOf('left') !== -1) {\n popper.top -= offset;\n } else if (data.placement.indexOf('right') !== -1) {\n popper.top += offset;\n } else if (data.placement.indexOf('top') !== -1) {\n popper.left -= offset;\n } else if (data.placement.indexOf('bottom') !== -1) {\n popper.left += offset;\n }\n return data;\n };\n\n /**\r\n * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element\r\n * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\n Popper.prototype.modifiers.arrow = function (data) {\n var arrow = this._options.arrowElement;\n\n // if the arrowElement is a string, suppose it's a CSS selector\n if (typeof arrow === 'string') {\n arrow = this._popper.querySelector(arrow);\n }\n\n // if arrow element is not found, don't run the modifier\n if (!arrow) {\n return data;\n }\n\n // the arrow element must be child of its popper\n if (!this._popper.contains(arrow)) {\n console.warn('WARNING: `arrowElement` must be child of its popper element!');\n return data;\n }\n\n // arrow depends on keepTogether in order to work\n if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {\n console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');\n return data;\n }\n\n var arrowStyle = {};\n var placement = data.placement.split('-')[0];\n var popper = getPopperClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var side = isVertical ? 'top' : 'left';\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowSize = getOuterSizes(arrow)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);\n }\n // bottom/right side\n if (reference[side] + arrowSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];\n }\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowSize / 2;\n\n var sideValue = center - popper[side];\n\n // prevent arrow from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowSize - 3, sideValue), 3);\n arrowStyle[side] = sideValue;\n arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow\n\n data.offsets.arrow = arrowStyle;\n data.arrowElement = arrow;\n\n return data;\n };\n\n //\n // Helpers\n //\n\n /**\r\n * Get the outer sizes of the given element (offset size + margins)\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @returns {Object} object containing width and height properties\r\n */\n function getOuterSizes(element) {\n // NOTE: 1 DOM access here\n var _display = element.style.display,\n _visibility = element.style.visibility;\n element.style.display = 'block';element.style.visibility = 'hidden';\n var calcWidthToForceRepaint = element.offsetWidth;\n\n // original method\n var styles = root.getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = { width: element.offsetWidth + y, height: element.offsetHeight + x };\n\n // reset element styles\n element.style.display = _display;element.style.visibility = _visibility;\n return result;\n }\n\n /**\r\n * Get the opposite placement of the given one/\r\n * @function\r\n * @ignore\r\n * @argument {String} placement\r\n * @returns {String} flipped placement\r\n */\n function getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n }\n\n /**\r\n * Given the popper offsets, generate an output similar to getBoundingClientRect\r\n * @function\r\n * @ignore\r\n * @argument {Object} popperOffsets\r\n * @returns {Object} ClientRect like output\r\n */\n function getPopperClientRect(popperOffsets) {\n var offsets = Object.assign({}, popperOffsets);\n offsets.right = offsets.left + offsets.width;\n offsets.bottom = offsets.top + offsets.height;\n return offsets;\n }\n\n /**\r\n * Given an array and the key to find, returns its index\r\n * @function\r\n * @ignore\r\n * @argument {Array} arr\r\n * @argument keyToFind\r\n * @returns index or null\r\n */\n function getArrayKeyIndex(arr, keyToFind) {\n var i = 0,\n key;\n for (key in arr) {\n if (arr[key] === keyToFind) {\n return i;\n }\n i++;\n }\n return null;\n }\n\n /**\r\n * Get CSS computed property of the given element\r\n * @function\r\n * @ignore\r\n * @argument {Eement} element\r\n * @argument {String} property\r\n */\n function getStyleComputedProperty(element, property) {\n // NOTE: 1 DOM access here\n var css = root.getComputedStyle(element, null);\n return css[property];\n }\n\n /**\r\n * Returns the offset parent of the given element\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\n function getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;\n }\n\n /**\r\n * Returns the scrolling parent of the given element\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\n function getScrollParent(element) {\n var parent = element.parentNode;\n\n if (!parent) {\n return element;\n }\n\n if (parent === root.document) {\n // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is\n // greater than 0 and return the proper element\n if (root.document.body.scrollTop) {\n return root.document.body;\n } else {\n return root.document.documentElement;\n }\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n if (['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-y')) !== -1) {\n // If the detected scrollParent is body, we perform an additional check on its parentNode\n // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise\n // fixes issue #65\n return parent;\n }\n return getScrollParent(element.parentNode);\n }\n\n /**\r\n * Check if the given element is fixed or is inside a fixed parent\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @argument {Element} customContainer\r\n * @returns {Boolean} answer to \"isFixed?\"\r\n */\n function isFixed(element) {\n if (element === root.document.body) {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return element.parentNode ? isFixed(element.parentNode) : element;\n }\n\n /**\r\n * Set the style to the given popper\r\n * @function\r\n * @ignore\r\n * @argument {Element} element - Element to apply the style to\r\n * @argument {Object} styles - Object with a list of properties and values which will be applied to the element\r\n */\n function setStyle(element, styles) {\n function is_numeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n }\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n }\n\n /**\r\n * Check if the given variable is a function\r\n * @function\r\n * @ignore\r\n * @argument {*} functionToCheck - variable to check\r\n * @returns {Boolean} answer to: is a function?\r\n */\n function isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n }\n\n /**\r\n * Get the position of the given element, relative to its offset parent\r\n * @function\r\n * @ignore\r\n * @param {Element} element\r\n * @return {Object} position - Coordinates of the element and its `scrollTop`\r\n */\n function getOffsetRect(element) {\n var elementRect = {\n width: element.offsetWidth,\n height: element.offsetHeight,\n left: element.offsetLeft,\n top: element.offsetTop\n };\n\n elementRect.right = elementRect.left + elementRect.width;\n elementRect.bottom = elementRect.top + elementRect.height;\n\n // position\n return elementRect;\n }\n\n /**\r\n * Get bounding client rect of given element\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} element\r\n * @return {Object} client rect\r\n */\n function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n\n // whether the IE version is lower than 11\n var isIE = navigator.userAgent.indexOf(\"MSIE\") != -1;\n\n // fix ie document bounding top always 0 bug\n var rectTop = isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top;\n\n return {\n left: rect.left,\n top: rectTop,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.right - rect.left,\n height: rect.bottom - rectTop\n };\n }\n\n /**\r\n * Given an element and one of its parents, return the offset\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} element\r\n * @param {HTMLElement} parent\r\n * @return {Object} rect\r\n */\n function getOffsetRectRelativeToCustomParent(element, parent, fixed) {\n var elementRect = getBoundingClientRect(element);\n var parentRect = getBoundingClientRect(parent);\n\n if (fixed) {\n var scrollParent = getScrollParent(parent);\n parentRect.top += scrollParent.scrollTop;\n parentRect.bottom += scrollParent.scrollTop;\n parentRect.left += scrollParent.scrollLeft;\n parentRect.right += scrollParent.scrollLeft;\n }\n\n var rect = {\n top: elementRect.top - parentRect.top,\n left: elementRect.left - parentRect.left,\n bottom: elementRect.top - parentRect.top + elementRect.height,\n right: elementRect.left - parentRect.left + elementRect.width,\n width: elementRect.width,\n height: elementRect.height\n };\n return rect;\n }\n\n /**\r\n * Get the prefixed supported property name\r\n * @function\r\n * @ignore\r\n * @argument {String} property (camelCase)\r\n * @returns {String} prefixed property (camelCase)\r\n */\n function getSupportedPropertyName(property) {\n var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;\n if (typeof root.document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n }\n\n /**\r\n * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source\r\n * objects to a target object. It will return the target object.\r\n * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway\r\n * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\r\n * @function\r\n * @ignore\r\n */\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function value(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n nextSource = Object(nextSource);\n\n var keysArray = Object.keys(nextSource);\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n }\n });\n }\n\n return Popper;\n});\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__merge__ = __webpack_require__(21);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__popup_manager__ = __webpack_require__(24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__scrollbar_width__ = __webpack_require__(26);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\"]; });\n\n\n\n\n\nvar idSeed = 1;\nvar transitions = [];\n\nvar hookTransition = function hookTransition(transition) {\n if (transitions.indexOf(transition) !== -1) return;\n\n var getVueInstance = function getVueInstance(element) {\n var instance = element.__vue__;\n if (!instance) {\n var textNode = element.previousSibling;\n if (textNode.__vue__) {\n instance = textNode.__vue__;\n }\n }\n return instance;\n };\n\n __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].transition(transition, {\n afterEnter: function afterEnter(el) {\n var instance = getVueInstance(el);\n\n if (instance) {\n instance.doAfterOpen && instance.doAfterOpen();\n }\n },\n afterLeave: function afterLeave(el) {\n var instance = getVueInstance(el);\n\n if (instance) {\n instance.doAfterClose && instance.doAfterClose();\n }\n }\n });\n};\n\nvar scrollBarWidth = void 0;\n\nvar getDOM = function getDOM(dom) {\n if (dom.nodeType === 3) {\n dom = dom.nextElementSibling || dom.nextSibling;\n getDOM(dom);\n }\n return dom;\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({\n model: {\n prop: 'visible',\n event: 'visible-change'\n },\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n transition: {\n type: String,\n default: ''\n },\n openDelay: {},\n closeDelay: {},\n zIndex: {},\n modal: {\n type: Boolean,\n default: false\n },\n modalFade: {\n type: Boolean,\n default: true\n },\n modalClass: {},\n modalAppendToBody: {\n type: Boolean,\n default: false\n },\n lockScroll: {\n type: Boolean,\n default: true\n },\n closeOnPressEscape: {\n type: Boolean,\n default: false\n },\n closeOnClickModal: {\n type: Boolean,\n default: false\n }\n },\n\n created: function created() {\n if (this.transition) {\n hookTransition(this.transition);\n }\n },\n beforeMount: function beforeMount() {\n this._popupId = 'popup-' + idSeed++;\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].register(this._popupId, this);\n },\n beforeDestroy: function beforeDestroy() {\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].deregister(this._popupId);\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].closeModal(this._popupId);\n if (this.modal && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {\n document.body.style.overflow = this.bodyOverflow;\n document.body.style.paddingRight = this.bodyPaddingRight;\n }\n this.bodyOverflow = null;\n this.bodyPaddingRight = null;\n },\n data: function data() {\n return {\n opened: false,\n bodyOverflow: null,\n bodyPaddingRight: null,\n rendered: false\n };\n },\n\n\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (val) {\n if (this._opening) return;\n if (!this.rendered) {\n this.rendered = true;\n __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].nextTick(function () {\n _this.open();\n });\n } else {\n this.open();\n }\n } else {\n this.close();\n }\n }\n },\n\n methods: {\n open: function open(options) {\n var _this2 = this;\n\n if (!this.rendered) {\n this.rendered = true;\n this.$emit('visible-change', true);\n }\n\n var props = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__merge__[\"a\" /* default */])({}, this.$props || this, options);\n\n if (this._closeTimer) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n clearTimeout(this._openTimer);\n\n var openDelay = Number(props.openDelay);\n if (openDelay > 0) {\n this._openTimer = setTimeout(function () {\n _this2._openTimer = null;\n _this2.doOpen(props);\n }, openDelay);\n } else {\n this.doOpen(props);\n }\n },\n doOpen: function doOpen(props) {\n if (this.$isServer) return;\n if (this.willOpen && !this.willOpen()) return;\n if (this.opened) return;\n\n this._opening = true;\n\n this.$emit('visible-change', true);\n\n var dom = getDOM(this.$el);\n\n var modal = props.modal;\n\n var zIndex = props.zIndex;\n if (zIndex) {\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].zIndex = zIndex;\n }\n\n if (modal) {\n if (this._closing) {\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].closeModal(this._popupId);\n this._closing = false;\n }\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].openModal(this._popupId, __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);\n if (props.lockScroll) {\n if (!this.bodyOverflow) {\n this.bodyPaddingRight = document.body.style.paddingRight;\n this.bodyOverflow = document.body.style.overflow;\n }\n scrollBarWidth = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__scrollbar_width__[\"a\" /* default */])();\n var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;\n if (scrollBarWidth > 0 && bodyHasOverflow) {\n document.body.style.paddingRight = scrollBarWidth + 'px';\n }\n document.body.style.overflow = 'hidden';\n }\n }\n\n if (getComputedStyle(dom).position === 'static') {\n dom.style.position = 'absolute';\n }\n\n dom.style.zIndex = __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].nextZIndex();\n this.opened = true;\n\n this.onOpen && this.onOpen();\n\n if (!this.transition) {\n this.doAfterOpen();\n }\n },\n doAfterOpen: function doAfterOpen() {\n this._opening = false;\n },\n close: function close() {\n var _this3 = this;\n\n if (this.willClose && !this.willClose()) return;\n\n if (this._openTimer !== null) {\n clearTimeout(this._openTimer);\n this._openTimer = null;\n }\n clearTimeout(this._closeTimer);\n\n var closeDelay = Number(this.closeDelay);\n\n if (closeDelay > 0) {\n this._closeTimer = setTimeout(function () {\n _this3._closeTimer = null;\n _this3.doClose();\n }, closeDelay);\n } else {\n this.doClose();\n }\n },\n doClose: function doClose() {\n var _this4 = this;\n\n this.$emit('visible-change', false);\n this._closing = true;\n\n this.onClose && this.onClose();\n\n if (this.lockScroll) {\n setTimeout(function () {\n if (_this4.modal && _this4.bodyOverflow !== 'hidden') {\n document.body.style.overflow = _this4.bodyOverflow;\n document.body.style.paddingRight = _this4.bodyPaddingRight;\n }\n _this4.bodyOverflow = null;\n _this4.bodyPaddingRight = null;\n }, 200);\n }\n\n this.opened = false;\n\n if (!this.transition) {\n this.doAfterClose();\n }\n },\n doAfterClose: function doAfterClose() {\n __WEBPACK_IMPORTED_MODULE_2__popup_manager__[\"a\" /* default */].closeModal(this._popupId);\n this._closing = false;\n }\n }\n});\n\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dom__ = __webpack_require__(3);\n\n\n\nvar hasModal = false;\n\nvar getModal = function getModal() {\n if (__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].prototype.$isServer) return;\n var modalDom = PopupManager.modalDom;\n if (modalDom) {\n hasModal = true;\n } else {\n hasModal = false;\n modalDom = document.createElement('div');\n PopupManager.modalDom = modalDom;\n\n modalDom.addEventListener('touchmove', function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n modalDom.addEventListener('click', function () {\n PopupManager.doOnModalClick && PopupManager.doOnModalClick();\n });\n }\n\n return modalDom;\n};\n\nvar instances = {};\n\nvar PopupManager = {\n zIndex: 2000,\n\n modalFade: true,\n\n getInstance: function getInstance(id) {\n return instances[id];\n },\n\n register: function register(id, instance) {\n if (id && instance) {\n instances[id] = instance;\n }\n },\n\n deregister: function deregister(id) {\n if (id) {\n instances[id] = null;\n delete instances[id];\n }\n },\n\n nextZIndex: function nextZIndex() {\n return PopupManager.zIndex++;\n },\n\n modalStack: [],\n\n doOnModalClick: function doOnModalClick() {\n var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topItem) return;\n\n var instance = PopupManager.getInstance(topItem.id);\n if (instance && instance.closeOnClickModal) {\n instance.close();\n }\n },\n\n openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {\n if (__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].prototype.$isServer) return;\n if (!id || zIndex === undefined) return;\n this.modalFade = modalFade;\n\n var modalStack = this.modalStack;\n\n for (var i = 0, j = modalStack.length; i < j; i++) {\n var item = modalStack[i];\n if (item.id === id) {\n return;\n }\n }\n\n var modalDom = getModal();\n\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"a\" /* addClass */])(modalDom, 'v-modal');\n if (this.modalFade && !hasModal) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"a\" /* addClass */])(modalDom, 'v-modal-enter');\n }\n if (modalClass) {\n var classArr = modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"a\" /* addClass */])(modalDom, item);\n });\n }\n setTimeout(function () {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"b\" /* removeClass */])(modalDom, 'v-modal-enter');\n }, 200);\n\n if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\n dom.parentNode.appendChild(modalDom);\n } else {\n document.body.appendChild(modalDom);\n }\n\n if (zIndex) {\n modalDom.style.zIndex = zIndex;\n }\n modalDom.style.display = '';\n\n this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\n },\n\n closeModal: function closeModal(id) {\n var modalStack = this.modalStack;\n var modalDom = getModal();\n\n if (modalStack.length > 0) {\n var topItem = modalStack[modalStack.length - 1];\n if (topItem.id === id) {\n if (topItem.modalClass) {\n var classArr = topItem.modalClass.trim().split(/\\s+/);\n classArr.forEach(function (item) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"b\" /* removeClass */])(modalDom, item);\n });\n }\n\n modalStack.pop();\n if (modalStack.length > 0) {\n modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\n }\n } else {\n for (var i = modalStack.length - 1; i >= 0; i--) {\n if (modalStack[i].id === id) {\n modalStack.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (modalStack.length === 0) {\n if (this.modalFade) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"a\" /* addClass */])(modalDom, 'v-modal-leave');\n }\n setTimeout(function () {\n if (modalStack.length === 0) {\n if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\n modalDom.style.display = 'none';\n PopupManager.modalDom = undefined;\n }\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom__[\"b\" /* removeClass */])(modalDom, 'v-modal-leave');\n }, 200);\n }\n }\n};\n\nvar getTopPopup = function getTopPopup() {\n if (__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].prototype.$isServer) return;\n if (PopupManager.modalStack.length > 0) {\n var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topPopup) return;\n var instance = PopupManager.getInstance(topPopup.id);\n\n return instance;\n }\n};\n\nif (!__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].prototype.$isServer) {\n // handle `esc` key when the popup is shown\n window.addEventListener('keydown', function (event) {\n if (event.keyCode === 27) {\n var topPopup = getTopPopup();\n\n if (topPopup && topPopup.closeOnPressEscape) {\n topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();\n }\n }\n });\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (PopupManager);\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return addResizeListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return removeResizeListener; });\n/* Modified from https://github.com/sdecima/javascript-detect-element-resize\r\n * version: 0.5.3\r\n *\r\n * The MIT License (MIT)\r\n *\r\n * Copyright (c) 2013 Sebastián Décima\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\r\n * this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to\r\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r\n * the Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n *\r\n */\nvar isServer = typeof window === 'undefined';\n\n/* istanbul ignore next */\nvar requestFrame = function () {\n if (isServer) return;\n var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) {\n return window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n}();\n\n/* istanbul ignore next */\nvar cancelFrame = function () {\n if (isServer) return;\n var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n}();\n\n/* istanbul ignore next */\nvar resetTrigger = function resetTrigger(element) {\n var trigger = element.__resizeTrigger__;\n var expand = trigger.firstElementChild;\n var contract = trigger.lastElementChild;\n var expandChild = expand.firstElementChild;\n\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n};\n\n/* istanbul ignore next */\nvar checkTriggers = function checkTriggers(element) {\n return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;\n};\n\n/* istanbul ignore next */\nvar scrollListener = function scrollListener(event) {\n var _this = this;\n\n resetTrigger(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(_this)) {\n _this.__resizeLast__.width = _this.offsetWidth;\n _this.__resizeLast__.height = _this.offsetHeight;\n _this.__resizeListeners__.forEach(function (fn) {\n fn.call(_this, event);\n });\n }\n });\n};\n\n/* Detect CSS Animations support to detect element display/re-attach */\nvar attachEvent = isServer ? {} : document.attachEvent;\nvar DOM_PREFIXES = 'Webkit Moz O ms'.split(' ');\nvar START_EVENTS = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' ');\nvar RESIZE_ANIMATION_NAME = 'resizeanim';\nvar animation = false;\nvar keyFramePrefix = '';\nvar animationStartEvent = 'animationstart';\n\n/* istanbul ignore next */\nif (!attachEvent && !isServer) {\n var testElement = document.createElement('fakeelement');\n if (testElement.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n var prefix = '';\n for (var i = 0; i < DOM_PREFIXES.length; i++) {\n if (testElement.style[DOM_PREFIXES[i] + 'AnimationName'] !== undefined) {\n prefix = DOM_PREFIXES[i];\n keyFramePrefix = '-' + prefix.toLowerCase() + '-';\n animationStartEvent = START_EVENTS[i];\n animation = true;\n break;\n }\n }\n }\n}\n\nvar stylesCreated = false;\n/* istanbul ignore next */\nvar createStyles = function createStyles() {\n if (!stylesCreated && !isServer) {\n var animationKeyframes = '@' + keyFramePrefix + 'keyframes ' + RESIZE_ANIMATION_NAME + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyFramePrefix + 'animation: 1ms ' + RESIZE_ANIMATION_NAME + ';';\n\n // opacity: 0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = animationKeyframes + '\\n .resize-triggers { ' + animationStyle + ' visibility: hidden; opacity: 0; }\\n .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1 }\\n .resize-triggers > div { background: #eee; overflow: auto; }\\n .contract-trigger:before { width: 200%; height: 200%; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n};\n\n/* istanbul ignore next */\nvar addResizeListener = function addResizeListener(element, fn) {\n if (isServer) return;\n if (attachEvent) {\n element.attachEvent('onresize', fn);\n } else {\n if (!element.__resizeTrigger__) {\n if (getComputedStyle(element).position === 'static') {\n element.style.position = 'relative';\n }\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n\n var resizeTrigger = element.__resizeTrigger__ = document.createElement('div');\n resizeTrigger.className = 'resize-triggers';\n resizeTrigger.innerHTML = '
';\n element.appendChild(resizeTrigger);\n\n resetTrigger(element);\n element.addEventListener('scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationStartEvent) {\n resizeTrigger.addEventListener(animationStartEvent, function (event) {\n if (event.animationName === RESIZE_ANIMATION_NAME) {\n resetTrigger(element);\n }\n });\n }\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\n/* istanbul ignore next */\nvar removeResizeListener = function removeResizeListener(element, fn) {\n if (attachEvent) {\n element.detachEvent('onresize', fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTrigger__ = !element.removeChild(element.__resizeTrigger__);\n }\n }\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(0);\n\n\nvar scrollBarWidth = void 0;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function () {\n if (__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].prototype.$isServer) return 0;\n if (scrollBarWidth !== undefined) return scrollBarWidth;\n\n var outer = document.createElement('div');\n outer.className = 'el-scrollbar__wrap';\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n outer.style.position = 'absolute';\n outer.style.top = '-9999px';\n document.body.appendChild(outer);\n\n var widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n var inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n var widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n scrollBarWidth = widthNoScroll - widthWithScroll;\n\n return scrollBarWidth;\n});;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = hasOwn;\n/* unused harmony export toObject */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n};\n\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n};\n\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__popup__ = __webpack_require__(23);\n\n\n\nvar PopperJS = __WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].prototype.$isServer ? function () {} : __webpack_require__(22);\nvar stop = function stop(e) {\n return e.stopPropagation();\n};\n\n/**\r\n * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.\r\n * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.\r\n * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)\r\n * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).\r\n * @param {Boolean} [visible=false] Visibility of the popup element.\r\n * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n props: {\n placement: {\n type: String,\n default: 'bottom'\n },\n boundariesPadding: {\n type: Number,\n default: 5\n },\n reference: {},\n popper: {},\n offset: {\n default: 0\n },\n value: Boolean,\n visibleArrow: Boolean,\n transition: String,\n appendToBody: {\n type: Boolean,\n default: true\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return {\n gpuAcceleration: false\n };\n }\n }\n },\n\n data: function data() {\n return {\n showPopper: false,\n currentPlacement: ''\n };\n },\n\n\n watch: {\n value: {\n immediate: true,\n handler: function handler(val) {\n this.showPopper = val;\n this.$emit('input', val);\n }\n },\n\n showPopper: function showPopper(val) {\n val ? this.updatePopper() : this.destroyPopper();\n this.$emit('input', val);\n }\n },\n\n methods: {\n createPopper: function createPopper() {\n var _this = this;\n\n if (this.$isServer) return;\n this.currentPlacement = this.currentPlacement || this.placement;\n if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {\n return;\n }\n\n var options = this.popperOptions;\n var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;\n var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;\n\n if (!reference && this.$slots.reference && this.$slots.reference[0]) {\n reference = this.referenceElm = this.$slots.reference[0].elm;\n }\n\n if (!popper || !reference) return;\n if (this.visibleArrow) this.appendArrow(popper);\n if (this.appendToBody) document.body.appendChild(this.popperElm);\n if (this.popperJS && this.popperJS.destroy) {\n this.popperJS.destroy();\n }\n\n options.placement = this.currentPlacement;\n options.offset = this.offset;\n this.popperJS = new PopperJS(reference, popper, options);\n this.popperJS.onCreate(function (_) {\n _this.$emit('created', _this);\n _this.resetTransformOrigin();\n _this.$nextTick(_this.updatePopper);\n });\n if (typeof options.onUpdate === 'function') {\n this.popperJS.onUpdate(options.onUpdate);\n }\n this.popperJS._popper.style.zIndex = __WEBPACK_IMPORTED_MODULE_1__popup__[\"a\" /* PopupManager */].nextZIndex();\n this.popperElm.addEventListener('click', stop);\n },\n updatePopper: function updatePopper() {\n this.popperJS ? this.popperJS.update() : this.createPopper();\n },\n doDestroy: function doDestroy() {\n /* istanbul ignore if */\n if (this.showPopper || !this.popperJS) return;\n this.popperJS.destroy();\n this.popperJS = null;\n },\n destroyPopper: function destroyPopper() {\n if (this.popperJS) {\n this.resetTransformOrigin();\n }\n },\n resetTransformOrigin: function resetTransformOrigin() {\n var placementMap = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n };\n var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];\n var origin = placementMap[placement];\n this.popperJS._popper.style.transformOrigin = ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center';\n },\n appendArrow: function appendArrow(element) {\n var hash = void 0;\n if (this.appended) {\n return;\n }\n\n this.appended = true;\n\n for (var item in element.attributes) {\n if (/^_v-/.test(element.attributes[item].name)) {\n hash = element.attributes[item].name;\n break;\n }\n }\n\n var arrow = document.createElement('div');\n\n if (hash) {\n arrow.setAttribute(hash, '');\n }\n arrow.setAttribute('x-arrow', '');\n arrow.className = 'popper__arrow';\n element.appendChild(arrow);\n }\n },\n\n beforeDestroy: function beforeDestroy() {\n this.doDestroy();\n if (this.popperElm && this.popperElm.parentNode === document.body) {\n this.popperElm.removeEventListener('click', stop);\n document.body.removeChild(this.popperElm);\n }\n },\n\n\n // call destroy in keep-alive mode\n deactivated: function deactivated() {\n this.$options.beforeDestroy[0].call(this);\n }\n});\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(30)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"\\n#app {\\n margin: 60px auto;\\n}\\n.newTagInput {\\n width: 72px;\\n height: 24px;\\n font-size: 12px;\\n}\\n.newTagInput::placeholder {\\n color: #666;\\n}\\n.tagclass {\\n margin-right: 10px;\\n}\\n.input-demo__item {\\n width: 1000px;\\n margin: 0 auto;\\n}\\n.input-demo__item h2,\\n.input-demo__item h3 {\\n font-weight: 400;\\n color: #1f2f3d;\\n}\\n.input-demo__item h2 {\\n font-size: 28px;\\n margin: 0;\\n}\\n.input-demo__item h3 {\\n font-size: 22px;\\n margin: 45px 0 15px;\\n}\\n.input-demo__item h3 :hover a,\\n.input-demo__item h2 :hover a {\\n opacity: .4;\\n}\\n.input-demo__item h3 a,\\n.input-demo__item h2 a {\\n float: left;\\n margin-left: -20px;\\n opacity: 0;\\n cursor: pointer;\\n color: #4078c0;\\n text-decoration: none;\\n}\\n.input-demo__item h3 a :hover,\\n.input-demo__item h2 a :hover {\\n opacity: .4;\\n}\\n.input-demo__item p {\\n font-size: 14px;\\n color: #5e6d82;\\n line-height: 1.5em;\\n}\\n.input-demo__item p a {\\n color: #2d8cf0;\\n background: 0 0;\\n text-decoration: none;\\n outline: 0;\\n cursor: pointer;\\n transition: color .2s ease;\\n}\\n.input-demo__item p a :hover {\\n color: #57a3f3;\\n}\\n.input-demo__item .new {\\n font-style: normal;\\n color: #FF4949;\\n}\\n.input-demo__item .new code {\\n background-color: #FF4949 !important;\\n color: #fff !important;\\n}\\n.input-demo__item .table {\\n border-collapse: collapse;\\n width: 100%;\\n background-color: #fff;\\n color: #5e6d82;\\n font-size: 14px;\\n margin-bottom: 45px;\\n line-height: 1.5em;\\n}\\n.input-demo__item .table th {\\n text-align: left;\\n border-top: 1px solid #eaeefb;\\n background-color: #eff2f7;\\n white-space: nowrap;\\n}\\n.input-demo__item .table th,\\n.input-demo__item .table td {\\n border-bottom: 1px solid #eaeefb;\\n padding: 10px;\\n max-width: 250px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar index$2 = function isMergeableObject(value) {\n\treturn isNonNullObject(value) && isNotSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isNotSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue !== '[object RegExp]'\n\t\t&& stringValue !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && index$2(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (index$2(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (index$2(target)) {\n Object.keys(target).forEach(function(key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function(key) {\n if (!index$2(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneIfNecessary(source, optionsArgument)\n } else if (sourceIsArray) {\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n return arrayMerge(target, source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nvar index = deepmerge;\n\nmodule.exports = index;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-undefined */\n\nvar throttle = __webpack_require__(34);\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} atBegin Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\nmodule.exports = function ( delay, atBegin, callback ) {\n\treturn callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\n/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} noTrailing Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} debounceMode If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nmodule.exports = function ( delay, noTrailing, callback, debounceMode ) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif ( typeof noTrailing !== 'boolean' ) {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper () {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec () {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear () {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif ( debounceMode && !timeoutID ) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif ( timeoutID ) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif ( debounceMode === undefined && elapsed > delay ) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\n\t\t} else if ( noTrailing !== true ) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n\n};\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar disposed = false\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(13),\n /* template */\n __webpack_require__(39),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\nComponent.options.__file = \"F:\\\\github-workspace\\\\select\\\\src\\\\components\\\\Select.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== \"default\" && key.substr(0, 2) !== \"__\"})) {console.error(\"named exports are not supported in *.vue files.\")}\nif (Component.options.functional) {console.error(\"[vue-loader] Select.vue: functional components are not supported with templates, they should use render functions.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-5e9b7105\", Component.options)\n } else {\n hotAPI.reload(\"data-v-5e9b7105\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar disposed = false\nvar Component = __webpack_require__(1)(\n /* script */\n __webpack_require__(14),\n /* template */\n __webpack_require__(41),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\nComponent.options.__file = \"F:\\\\github-workspace\\\\select\\\\src\\\\components\\\\option-group.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== \"default\" && key.substr(0, 2) !== \"__\"})) {console.error(\"named exports are not supported in *.vue files.\")}\nif (Component.options.functional) {console.error(\"[vue-loader] option-group.vue: functional components are not supported with templates, they should use render functions.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-cb670e60\", Component.options)\n } else {\n hotAPI.reload(\"data-v-cb670e60\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('demonstration', {\n attrs: {\n \"tag\": \"h2\",\n \"title\": \"Select 选择器\",\n \"description\": \"当选项过多时,使用下拉菜单展示并选择内容。\",\n \"show-content\": false\n }\n }), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"基础用法\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode1\n }\n }, [_c('template', {\n slot: \"description\"\n }), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value1),\n callback: function($$v) {\n _vm.value1 = $$v\n },\n expression: \"value1\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n v-model的值为当前被选中的\"), _c('br'), _vm._v(\"\\n vm-option的 value 属性值\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"有禁用选项\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode2\n }\n }, [_c('template', {\n slot: \"description\"\n }), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value2),\n callback: function($$v) {\n _vm.value2 = $$v\n },\n expression: \"value2\"\n }\n }, _vm._l((_vm.options2), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value,\n \"disabled\": item.disabled\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 在vm-option中,设定disabled值为 true,即可禁用该选项\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"禁用状态\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode3\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 选择器不可用状态\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"disabled\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value3),\n callback: function($$v) {\n _vm.value3 = $$v\n },\n expression: \"value3\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value,\n \"disabled\": item.disabled\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select设置disabled属性,则整个选择器不可用\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"可清空单选\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode4\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 包含清空按钮,可将选择器清空为初始状态\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"clearable\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value4),\n callback: function($$v) {\n _vm.value4 = $$v\n },\n expression: \"value4\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select设置clearable属性,则可将选择器清空。需要注意的是,clearable属性仅适用于单选。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"基础多选\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode5\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 适用性较广的基础多选,用 Tag 展示已选项\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"multiple\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value5),\n callback: function($$v) {\n _vm.value5 = $$v\n },\n expression: \"value5\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select设置multiple属性即可启用多选,此时v-model的值为当前选中值所组成的数组\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"自定义模板\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode6\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 可以自定义备选项\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value6),\n callback: function($$v) {\n _vm.value6 = $$v\n },\n expression: \"value6\"\n }\n }, _vm._l((_vm.cities), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.label))]), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"float\": \"right\",\n \"color\": \"#8492a6\",\n \"font-size\": \"13px\"\n }\n }, [_vm._v(_vm._s(item.value))])])\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 将自定义的 HTML 模板插入vm-option的 slot 中即可。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"分组\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode7\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 备选项进行分组展示\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value7),\n callback: function($$v) {\n _vm.value7 = $$v\n },\n expression: \"value7\"\n }\n }, _vm._l((_vm.options3), function(group) {\n return _c('vm-option-group', {\n key: group.label,\n attrs: {\n \"label\": group.label\n }\n }, _vm._l((group.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 使用vm-option-group对备选项进行分组,它的label属性为分组名\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"可搜索\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode8\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 可以利用搜索功能快速查找选项\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"filterable\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value8),\n callback: function($$v) {\n _vm.value8 = $$v\n },\n expression: \"value8\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select添加filterable属性即可启用搜索功能。默认情况下,Select 会找出所有label属性包含输入值的选项。如果希望使用其他的搜索逻辑,可以通过传入一个filter-method来实现。filter-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"远程搜索\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode9\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 从服务器搜索数据,输入关键字进行查找\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"remote\": \"\",\n \"placeholder\": \"请输入关键词\",\n \"remote-method\": _vm.remoteMethod,\n \"loading\": _vm.loading\n },\n model: {\n value: (_vm.value9),\n callback: function($$v) {\n _vm.value9 = $$v\n },\n expression: \"value9\"\n }\n }, _vm._l((_vm.options4), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为了启用远程搜索,需要将filterable和remote设置为true,同时传入一个remote-method。remote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。需要注意的是,如果vm-option是通过v-for指令渲染出来的,此时需要为vm-option添加key属性,且其值需具有唯一性,比如此例中的item.value。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"创建条目\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode10\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 可以创建并选中选项中不存在的条目\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"allow-create\": \"\",\n \"placeholder\": \"请选择文章标签\"\n },\n model: {\n value: (_vm.value10),\n callback: function($$v) {\n _vm.value10 = $$v\n },\n expression: \"value10\"\n }\n }, _vm._l((_vm.options5), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 使用 allow-create 属性即可通过在输入框中输入文字来创建新的条目。注意此时 filterable 必须为真。\\n \")])], 2), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _vm._m(2), _vm._v(\" \"), _vm._m(3)], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"attributes\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#attributes\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Select Attributes\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"参数\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"类型\")]), _vm._v(\" \"), _c('th', [_vm._v(\"可选值\")]), _vm._v(\" \"), _c('th', [_vm._v(\"默认值\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"multiple\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否多选\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"disabled\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否禁用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"value-key\")]), _vm._v(\" \"), _c('td', [_vm._v(\"作为 value 唯一标识的键名,绑定值为对象类型时必填\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"value\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"inputheight\")]), _vm._v(\" \"), _c('td', [_vm._v(\"当为多选时,可通过inputheight 修改 Select input框的高度\")]), _vm._v(\" \"), _c('td', [_vm._v(\"number\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"36\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"inputclass\")]), _vm._v(\" \"), _c('td', [_vm._v(\"Select input框的类名,当为多选时,无法改变高度,高度只能通过inputheight属性设置\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"clearable\")]), _vm._v(\" \"), _c('td', [_vm._v(\"单选时是否可以清空选项\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"multiple-limit\")]), _vm._v(\" \"), _c('td', [_vm._v(\"多选时用户最多可以选择的项目数,为 0 则不限制\")]), _vm._v(\" \"), _c('td', [_vm._v(\"number\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"0\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"name\")]), _vm._v(\" \"), _c('td', [_vm._v(\"select input 的 name 属性\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"placeholder\")]), _vm._v(\" \"), _c('td', [_vm._v(\"占位符\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"请选择\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"filterable\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否可搜索\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"allow-create\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否允许用户创建新条目,需配合 filterable 使用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"filter-method\")]), _vm._v(\" \"), _c('td', [_vm._v(\"自定义过滤方法\")]), _vm._v(\" \"), _c('td', [_vm._v(\"function\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"remote\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否为远程搜索\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"remote-method\")]), _vm._v(\" \"), _c('td', [_vm._v(\"远程搜索方法\")]), _vm._v(\" \"), _c('td', [_vm._v(\"function\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"loading\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否正在从远程获取数据\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"loading-text\")]), _vm._v(\" \"), _c('td', [_vm._v(\"远程加载时显示的文字\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"加载中\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"no-match-text\")]), _vm._v(\" \"), _c('td', [_vm._v(\"搜索条件无匹配时显示的文字\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"无匹配数据\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"no-data-text\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选项为空时显示的文字\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"无数据\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"popper-class\")]), _vm._v(\" \"), _c('td', [_vm._v(\"Select 下拉框的类名\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"default-first-option\")]), _vm._v(\" \"), _c('td', [_vm._v(\"在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"event\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#event\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Select Events\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"事件名称\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"回调参数\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"change\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选中值发生变化时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"目前的选中值\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"visible-change\")]), _vm._v(\" \"), _c('td', [_vm._v(\"下拉框出现/隐藏时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"出现则为 true,隐藏则为 false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"remove-tag\")]), _vm._v(\" \"), _c('td', [_vm._v(\"多选模式下移除tag时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"移除的tag值\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"clear\")]), _vm._v(\" \"), _c('td', [_vm._v(\"可清空的单选模式下用户点击清空按钮时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"optionGroupAttributes\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#optionGroupAttributes\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Option Group Attributes\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"参数\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"类型\")]), _vm._v(\" \"), _c('th', [_vm._v(\"可选值\")]), _vm._v(\" \"), _c('th', [_vm._v(\"默认值\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"label\")]), _vm._v(\" \"), _c('td', [_vm._v(\"分组的组名\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"disabled\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否将该分组下所有选项置为禁用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"optionAttributes\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#optionAttributes\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Option Attributes\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"参数\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"类型\")]), _vm._v(\" \"), _c('th', [_vm._v(\"可选值\")]), _vm._v(\" \"), _c('th', [_vm._v(\"默认值\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"value\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选项的值\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string/number/object\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"label\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选项的标签,若不设置则默认与 value 相同\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string/number\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"disabled\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否禁用该选项\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])])])])])\n}]}\nmodule.exports.render._withStripped = true\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-0ccf60ac\", module.exports)\n }\n}\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"vm-select-dropdown\",\n class: [{\n 'multiple': _vm.$parent.multiple\n }, _vm.popperClass],\n style: ({\n minWidth: _vm.minWidth\n })\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-4b8e0f29\", module.exports)\n }\n}\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: (_vm.handleClose),\n expression: \"handleClose\"\n }],\n staticClass: \"vm-select\"\n }, [(_vm.multiple) ? _c('div', {\n ref: \"tags\",\n staticClass: \"vm-select__tags\",\n style: ({\n 'max-width': _vm.inputWidth - 32 + 'px'\n }),\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.toggleMenu($event)\n }\n }\n }, [_c('transition-group', {\n on: {\n \"after-leave\": _vm.resetInputHeight\n }\n }, _vm._l((_vm.selected), function(item) {\n return _c('vm-tag', {\n key: item.value,\n attrs: {\n \"closable\": true,\n \"hit\": item.hitState,\n \"type\": \"primary\",\n \"close-transition\": \"\"\n },\n on: {\n \"close\": function($event) {\n _vm.deleteTag($event, item)\n }\n }\n }, [_c('span', {\n staticClass: \"vm-select__tags-text\"\n }, [_vm._v(_vm._s(item.currentLabel))])])\n })), _vm._v(\" \"), (_vm.filterable) ? _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.query),\n expression: \"query\"\n }],\n ref: \"input\",\n staticClass: \"vm-select__input\",\n style: ({\n width: _vm.inputLength + 'px',\n 'max-width': _vm.inputWidth - 42 + 'px',\n height: _vm.inputheight + 'px'\n }),\n attrs: {\n \"type\": \"text\",\n \"disabled\": _vm.disabled,\n \"debounce\": _vm.remote ? 300 : 0\n },\n domProps: {\n \"value\": (_vm.query)\n },\n on: {\n \"focus\": function($event) {\n _vm.visible = true\n },\n \"keyup\": _vm.managePlaceholder,\n \"keydown\": [_vm.resetInputState, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('next')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('prev')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n $event.preventDefault();\n _vm.selectOption($event)\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"esc\", 27)) { return null; }\n $event.stopPropagation();\n $event.preventDefault();\n _vm.visible = false\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"delete\", [8, 46])) { return null; }\n _vm.deletePrevTag($event)\n }],\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.query = $event.target.value\n }\n }\n }) : _vm._e()], 1) : _vm._e(), _vm._v(\" \"), _c('vm-input', {\n ref: \"reference\",\n attrs: {\n \"type\": \"text\",\n \"placeholder\": _vm.currentPlaceholder,\n \"name\": _vm.name,\n \"inputclass\": (_vm.inputclass + \" vm-select-input__inner\"),\n \"disabled\": _vm.disabled,\n \"readonly\": !_vm.filterable || _vm.multiple,\n \"validate-event\": false,\n \"icon\": _vm.iconClass\n },\n on: {\n \"focus\": _vm.handleFocus,\n \"click\": _vm.handleIconClick\n },\n nativeOn: {\n \"mousedown\": function($event) {\n _vm.handleMouseDown($event)\n },\n \"keyup\": function($event) {\n _vm.debouncedOnInputChange($event)\n },\n \"keydown\": [function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('next')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('prev')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n $event.preventDefault();\n _vm.selectOption($event)\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"esc\", 27)) { return null; }\n $event.stopPropagation();\n $event.preventDefault();\n _vm.visible = false\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"tab\", 9)) { return null; }\n _vm.visible = false\n }],\n \"paste\": function($event) {\n _vm.debouncedOnInputChange($event)\n },\n \"mouseenter\": function($event) {\n _vm.inputHovering = true\n },\n \"mouseleave\": function($event) {\n _vm.inputHovering = false\n }\n },\n model: {\n value: (_vm.selectedLabel),\n callback: function($$v) {\n _vm.selectedLabel = $$v\n },\n expression: \"selectedLabel\"\n }\n }), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": \"vm-zoom-in-top\"\n },\n on: {\n \"after-leave\": _vm.doDestroy,\n \"after-enter\": _vm.handleMenuEnter\n }\n }, [_c('vm-select-menu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.visible && _vm.emptyText !== false),\n expression: \"visible && emptyText !== false\"\n }],\n ref: \"popper\"\n }, [_c('vm-scrollbar', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.options.length > 0 && !_vm.loading),\n expression: \"options.length > 0 && !loading\"\n }],\n class: {\n 'is-empty': !_vm.allowCreate && _vm.filteredOptionsCount === 0\n },\n attrs: {\n \"tag\": \"ul\",\n \"wrap-class\": \"vm-select-dropdown__wrap\",\n \"view-class\": \"vm-select-dropdown__list\"\n }\n }, [(_vm.showNewOption) ? _c('vm-option', {\n attrs: {\n \"value\": _vm.query,\n \"created\": \"\"\n }\n }) : _vm._e(), _vm._v(\" \"), _vm._t(\"default\")], 2), _vm._v(\" \"), (_vm.emptyText && (_vm.allowCreate && _vm.options.length === 0 || !_vm.allowCreate)) ? _c('p', {\n staticClass: \"vm-select-dropdown__empty\"\n }, [_vm._v(_vm._s(_vm.emptyText))]) : _vm._e()], 1)], 1)], 1)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-5e9b7105\", module.exports)\n }\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.visible),\n expression: \"visible\"\n }],\n staticClass: \"vm-select-dropdown__item\",\n class: {\n 'selected': _vm.itemSelected,\n 'disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n 'hover': _vm.parent.hoverIndex === _vm.index\n },\n on: {\n \"mouseenter\": _vm.hoverItem,\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.selectOptionClick($event)\n }\n }\n }, [_vm._t(\"default\", [_c('span', [_vm._v(_vm._s(_vm.currentLabel))])])], 2)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-c746f844\", module.exports)\n }\n}\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('ul', {\n staticClass: \"vm-select-group__wrap\"\n }, [_c('li', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.visible),\n expression: \"visible\"\n }],\n staticClass: \"vm-select-group__title\"\n }, [_vm._v(_vm._s(_vm.label))]), _vm._v(\" \"), _c('li', [_c('ul', {\n staticClass: \"vm-select-group\"\n }, [_vm._t(\"default\")], 2)])])\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-cb670e60\", module.exports)\n }\n}\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(n,e){ true?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.input=e():n.input=e()}(this,function(){return function(n){function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var t={};return e.m=n,e.c=t,e.i=function(n){return n},e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:r})},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,\"a\",t),t},e.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},e.p=\"\",e(e.s=4)}([function(n,e,t){var r=t(7);\"string\"==typeof r&&(r=[[n.i,r,\"\"]]);var o={};o.transform=void 0;t(9)(r,o);r.locals&&(n.exports=r.locals)},function(n,e,t){var r=t(11)(t(2),t(12),null,null,null);r.options.__file=\"F:\\\\github-workspace\\\\input\\\\src\\\\components\\\\Input.vue\",r.esModule&&Object.keys(r.esModule).some(function(n){return\"default\"!==n&&\"__\"!==n.substr(0,2)})&&console.error(\"named exports are not supported in *.vue files.\"),r.options.functional&&console.error(\"[vue-loader] Input.vue: functional components are not supported with templates, they should use render functions.\"),n.exports=r.exports},function(n,e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=t(5),o=t(3),i=t(6);e.default={name:\"VmInput\",componentName:\"VmInput\",mixins:[r.a],data:function(){return{currentValue:this.value,textareaCalcStyle:{}}},props:{value:[String,Number],placeholder:String,resize:String,readonly:Boolean,autowidth:Boolean,autofocus:Boolean,icon:String,disabled:Boolean,inputclass:String,type:{type:String,default:\"text\"},name:String,autosize:{type:[Boolean,Object],default:!1},rows:{type:Number,default:2},autoComplete:{type:String,default:\"off\"},form:String,maxlength:Number,minlength:Number,max:{},min:{},step:{},onIconClick:Function},computed:{inputStyle:function(){var n={};return this.autowidth&&(n.width=\"100%\"),n},textareaStyle:function(){return t.i(i.a)({},this.textareaCalcStyle,{resize:this.resize})}},watch:{value:function(n,e){this.setCurrentValue(n)}},methods:{handleBlur:function(n){this.$emit(\"blur\",n)},inputSelect:function(){this.$refs.input.select()},resizeTextarea:function(){if(!this.$isServer){var n=this.autosize,e=this.type;if(n&&\"textarea\"===e){var r=n.minRows,i=n.maxRows;this.textareaCalcStyle=t.i(o.a)(this.$refs.textarea,r,i)}}},handleFocus:function(n){this.$emit(\"focus\",n)},handleInput:function(n){var e=n.target.value;this.$emit(\"input\",e),this.setCurrentValue(e),this.$emit(\"change\",e)},handleIconClick:function(n){this.onIconClick&&this.onIconClick(n),this.$emit(\"click\",n)},handleEnter:function(n){this.$emit(\"enter\",n)},setCurrentValue:function(n){var e=this;n!==this.currentValue&&(this.$nextTick(function(n){e.resizeTextarea()}),this.currentValue=n)}},created:function(){},mounted:function(){this.resizeTextarea()}}},function(n,e,t){\"use strict\";function r(n){var e=window.getComputedStyle(n),t=e.getPropertyValue(\"box-sizing\"),r=parseFloat(e.getPropertyValue(\"padding-bottom\"))+parseFloat(e.getPropertyValue(\"padding-top\")),o=parseFloat(e.getPropertyValue(\"border-bottom-width\"))+parseFloat(e.getPropertyValue(\"border-top-width\"));return{contextStyle:s.map(function(n){return n+\":\"+e.getPropertyValue(n)}).join(\";\"),paddingSize:r,borderSize:o,boxSizing:t}}function o(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;i||(i=document.createElement(\"textarea\"),document.body.appendChild(i));var o=r(n),s=o.paddingSize,u=o.borderSize,l=o.boxSizing,c=o.contextStyle;i.setAttribute(\"style\",c+\";\"+a),i.value=n.value||n.placeholder||\"\";var p=i.scrollHeight;\"border-box\"===l?p+=u:\"content-box\"===l&&(p-=s),i.value=\"\";var d=i.scrollHeight-s;if(null!==e){var f=d*e;\"border-box\"===l&&(f=f+s+u),p=Math.max(f,p)}if(null!==t){var h=d*t;\"border-box\"===l&&(h=h+s+u),p=Math.min(h,p)}return{height:p+\"px\"}}e.a=o;var i=void 0,a=\"\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important\\n\",s=[\"letter-spacing\",\"line-height\",\"padding-top\",\"padding-bottom\",\"font-family\",\"font-weight\",\"font-size\",\"text-rendering\",\"text-transform\",\"width\",\"text-indent\",\"padding-left\",\"padding-right\",\"border-width\",\"box-sizing\"]},function(n,e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=t(1),o=t.n(r),i=t(0);t.n(i);e.default=o.a},function(n,e,t){\"use strict\";function r(n,e,t){this.$children.forEach(function(o){o.$options.componentName===n?o.$emit.apply(o,[e].concat(t)):r.apply(o,[n,e].concat([t]))})}e.a={methods:{dispatch:function(n,e,t){for(var r=this.$parent||this.$root,o=r.$options.componentName;r&&(!o||o!==n);)(r=r.$parent)&&(o=r.$options.componentName);r&&r.$emit.apply(r,[e].concat(t))},broadcast:function(n,e,t){r.call(this,n,e,t)}}}},function(n,e,t){\"use strict\";e.a=function(n){for(var e=1,t=arguments.length;e
.vm-input__inner {\\n vertical-align: middle;\\n display: table-cell;\\n}\\n.vm-textarea {\\n display: inline-block;\\n width: 100%;\\n vertical-align: bottom;\\n}\\n.vm-textarea__inner {\\n display: block;\\n resize: vertical;\\n padding: 5px 7px;\\n line-height: 1.5;\\n box-sizing: border-box;\\n width: 100%;\\n font-size: 14px;\\n color: #1f2d3d;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #bfcbd9;\\n border-radius: 4px;\\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.vm-textarea__inner::placeholder {\\n color: #97a8be;\\n}\\n.vm-textarea__inner:hover {\\n border-color: #8391a5;\\n}\\n.vm-textarea__inner:focus {\\n outline: none;\\n border-color: #20a0ff;\\n}\\n.vm-textarea.disabled .vm-textarea__inner {\\n background-color: #eef1f6;\\n border-color: #d1dbe5;\\n color: #bbb;\\n cursor: not-allowed;\\n}\\n.vm-textarea.disabled .vm-textarea__inner::placeholder {\\n color: #bfcbd9;\\n}\\n\",\"\"])},function(n,e){function t(n,e){var t=n[1]||\"\",o=n[3];if(!o)return t;if(e&&\"function\"==typeof btoa){var i=r(o);return[t].concat(o.sources.map(function(n){return\"/*# sourceURL=\"+o.sourceRoot+n+\" */\"})).concat([i]).join(\"\\n\")}return[t].join(\"\\n\")}function r(n){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\"}n.exports=function(n){var e=[];return e.toString=function(){return this.map(function(e){var r=t(e,n);return e[2]?\"@media \"+e[2]+\"{\"+r+\"}\":r}).join(\"\")},e.i=function(n,t){\"string\"==typeof n&&(n=[[null,n,\"\"]]);for(var r={},o=0;o=0&&x.splice(e,1)}function s(n){var e=document.createElement(\"style\");return n.attrs.type=\"text/css\",l(e,n.attrs),i(n,e),e}function u(n){var e=document.createElement(\"link\");return n.attrs.type=\"text/css\",n.attrs.rel=\"stylesheet\",l(e,n.attrs),i(n,e),e}function l(n,e){Object.keys(e).forEach(function(t){n.setAttribute(t,e[t])})}function c(n,e){var t,r,o,i;if(e.transform&&n.css){if(!(i=e.transform(n.css)))return function(){};n.css=i}if(e.singleton){var l=g++;t=m||(m=s(e)),r=p.bind(null,t,l,!1),o=p.bind(null,t,l,!0)}else n.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(t=u(e),r=f.bind(null,t,e),o=function(){a(t),t.href&&URL.revokeObjectURL(t.href)}):(t=s(e),r=d.bind(null,t),o=function(){a(t)});return r(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap)return;r(n=e)}else o()}}function p(n,e,t,r){var o=t?\"\":r.css;if(n.styleSheet)n.styleSheet.cssText=_(e,o);else{var i=document.createTextNode(o),a=n.childNodes;a[e]&&n.removeChild(a[e]),a.length?n.insertBefore(i,a[e]):n.appendChild(i)}}function d(n,e){var t=e.css,r=e.media;if(r&&n.setAttribute(\"media\",r),n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}function f(n,e,t){var r=t.css,o=t.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=y(r)),o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=n.href;n.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var h={},b=function(n){var e;return function(){return void 0===e&&(e=n.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(n){var e={};return function(t){return void 0===e[t]&&(e[t]=n.call(this,t)),e[t]}}(function(n){return document.querySelector(n)}),m=null,g=0,x=[],y=t(10);n.exports=function(n,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},e.attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var t=o(n,e);return r(t,e),function(n){for(var i=[],a=0;a div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1 }\\n .resize-triggers > div { background: #eee; overflow: auto; }\\n .contract-trigger:before { width: 200%; height: 200%; }',i=document.head||document.getElementsByTagName(\"head\")[0],o=document.createElement(\"style\");o.type=\"text/css\",o.styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),i.appendChild(o),_=!0}};t.addResizeListener=function(e,t){if(!n)if(c)e.attachEvent(\"onresize\",t);else{if(!e.__resizeTrigger__){\"static\"===getComputedStyle(e).position&&(e.style.position=\"relative\"),g(),e.__resizeLast__={},e.__resizeListeners__=[];var r=e.__resizeTrigger__=document.createElement(\"div\");r.className=\"resize-triggers\",r.innerHTML='
',e.appendChild(r),s(e),e.addEventListener(\"scroll\",l,!0),p&&r.addEventListener(p,function(t){\"resizeanim\"===t.animationName&&s(e)})}e.__resizeListeners__.push(t)}},t.removeResizeListener=function(e,t){c?e.detachEvent(\"onresize\",t):(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||(e.removeEventListener(\"scroll\",l),e.__resizeTrigger__=!e.removeChild(e.__resizeTrigger__)))}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(){if(i.default.prototype.$isServer)return 0;if(void 0!==o)return o;var e=document.createElement(\"div\");e.className=\"vm-scrollbar__wrap\",e.style.visibility=\"hidden\",e.style.width=\"100px\",e.style.position=\"absolute\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow=\"scroll\";var r=document.createElement(\"div\");r.style.width=\"100%\",e.appendChild(r);var n=r.offsetWidth;return e.parentNode.removeChild(e),o=t-n};var n=r(0),i=function(e){return e&&e.__esModule?e:{default:e}}(n),o=void 0},function(e,t,r){\"use strict\";function n(e,t){return s.call(e,t)}function i(e,t){for(var r in t)e[r]=t[r];return e}function o(e){for(var t={},r=0;r div {\\n width: 100%;\\n}\\n.vm-scrollbar__bar.horizontal {\\n height: 6px;\\n left: 2px;\\n}\\n.vm-scrollbar__bar.horizontal > div {\\n height: 100%;\\n}\\n\",\"\"])},function(e,t){function r(e,t){var r=e[1]||\"\",i=e[3];if(!i)return r;if(t&&\"function\"==typeof btoa){var o=n(i);return[r].concat(i.sources.map(function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"})).concat([o]).join(\"\\n\")}return[r].join(\"\\n\")}function n(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n}).join(\"\")},t.i=function(e,r){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},i=0;i=0&&g.splice(t,1)}function a(e){var t=document.createElement(\"style\");return e.attrs.type=\"text/css\",c(t,e.attrs),o(e,t),t}function l(e){var t=document.createElement(\"link\");return e.attrs.type=\"text/css\",e.attrs.rel=\"stylesheet\",c(t,e.attrs),o(e,t),t}function c(e,t){Object.keys(t).forEach(function(r){e.setAttribute(r,t[r])})}function u(e,t){var r,n,i,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var c=_++;r=b||(b=a(t)),n=f.bind(null,r,c,!1),i=f.bind(null,r,c,!0)}else e.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(r=l(t),n=h.bind(null,r,t),i=function(){s(r),r.href&&URL.revokeObjectURL(r.href)}):(r=a(t),n=d.bind(null,r),i=function(){s(r)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else i()}}function f(e,t,r,n){var i=r?\"\":n.css;if(e.styleSheet)e.styleSheet.cssText=w(t,i);else{var o=document.createTextNode(i),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function d(e,t){var r=t.css,n=t.media;if(n&&e.setAttribute(\"media\",n),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}function h(e,t,r){var n=r.css,i=r.sourceMap,o=void 0===t.convertToAbsoluteUrls&&i;(t.convertToAbsoluteUrls||o)&&(n=y(n)),i&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\");var s=new Blob([n],{type:\"text/css\"}),a=e.href;e.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}var p={},v=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}}(function(){return window&&document&&document.all&&!window.atob}),m=function(e){var t={};return function(r){return void 0===t[r]&&(t[r]=e.call(this,r)),t[r]}}(function(e){return document.querySelector(e)}),b=null,_=0,g=[],y=r(13);e.exports=function(e,t){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");t=t||{},t.attrs=\"object\"==typeof t.attrs?t.attrs:{},t.singleton||(t.singleton=v()),t.insertInto||(t.insertInto=\"head\"),t.insertAt||(t.insertAt=\"bottom\");var r=i(e,t);return n(r,t),function(e){for(var o=[],s=0;s=0&&I.splice(s,1)}function i(A){var s=document.createElement(\"style\");return A.attrs.type=\"text/css\",C(s,A.attrs),r(A,s),s}function g(A){var s=document.createElement(\"link\");return A.attrs.type=\"text/css\",A.attrs.rel=\"stylesheet\",C(s,A.attrs),r(A,s),s}function C(A,s){Object.keys(s).forEach(function(t){A.setAttribute(t,s[t])})}function B(A,s){var t,e,n,r;if(s.transform&&A.css){if(!(r=s.transform(A.css)))return function(){};A.css=r}if(s.singleton){var C=u++;t=l||(l=i(s)),e=w.bind(null,t,C,!1),n=w.bind(null,t,C,!0)}else A.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(t=g(s),e=Q.bind(null,t,s),n=function(){o(t),t.href&&URL.revokeObjectURL(t.href)}):(t=i(s),e=a.bind(null,t),n=function(){o(t)});return e(A),function(s){if(s){if(s.css===A.css&&s.media===A.media&&s.sourceMap===A.sourceMap)return;e(A=s)}else n()}}function w(A,s,t,e){var n=t?\"\":e.css;if(A.styleSheet)A.styleSheet.cssText=f(s,n);else{var r=document.createTextNode(n),o=A.childNodes;o[s]&&A.removeChild(o[s]),o.length?A.insertBefore(r,o[s]):A.appendChild(r)}}function a(A,s){var t=s.css,e=s.media;if(e&&A.setAttribute(\"media\",e),A.styleSheet)A.styleSheet.cssText=t;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(t))}}function Q(A,s,t){var e=t.css,n=t.sourceMap,r=void 0===s.convertToAbsoluteUrls&&n;(s.convertToAbsoluteUrls||r)&&(e=L(e)),n&&(e+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\");var o=new Blob([e],{type:\"text/css\"}),i=A.href;A.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var y={},c=function(A){var s;return function(){return void 0===s&&(s=A.apply(this,arguments)),s}}(function(){return window&&document&&document.all&&!window.atob}),E=function(A){var s={};return function(t){return void 0===s[t]&&(s[t]=A.call(this,t)),s[t]}}(function(A){return document.querySelector(A)}),l=null,u=0,I=[],L=t(10);A.exports=function(A,s){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");s=s||{},s.attrs=\"object\"==typeof s.attrs?s.attrs:{},s.singleton||(s.singleton=c()),s.insertInto||(s.insertInto=\"head\"),s.insertAt||(s.insertAt=\"bottom\");var t=n(A,s);return e(t,s),function(A){for(var r=[],o=0;ot.parts.length&&(e.parts.length=t.parts.length)}else{for(var o=[],n=0;n tag\n\n// load the styles\nvar content = __webpack_require__(29);\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = __webpack_require__(46)(\"0bcd3de6\", content, false);\n// Hot Module Replacement\nif(false) {\n // When the styles change, update the \",returnEnd:!0,subLanguage:[\"css\",\"xml\"]}},{className:\"tag\",begin:\"`\n\nexport const sourcecode2 = `\n \n \n \n\n`\n\nexport const sourcecode3 = `\n \n \n \n\n`\n\nexport const sourcecode4 = `\n \n \n \n\n`\n\nexport const sourcecode5 =`\n \n \n \n\n`\n\nexport const sourcecode6 =`\n \n {{ item.label }} \n {{ item.value }} \n \n \n\n`\n\nexport const sourcecode7 =`\n \n \n \n \n \n\n`\n\nexport const sourcecode8 =`\n \n \n \n\n`\n\nexport const sourcecode9 =`\n \n \n \n\n`\n\nexport const sourcecode10 =`\n \n \n \n\n`\n\n\n\n\n// WEBPACK FOOTER //\n// ./example/src/template.js","\n \n
\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n v-model的值为当前被选中的 \n vm-option的 value 属性值\n \n \n
\n \n \n \n \n \n \n \n \n
\n \n \n 在vm-option中,设定disabled值为 true,即可禁用该选项\n \n \n
\n \n 选择器不可用状态\n \n \n \n \n \n \n \n
\n \n \n 为vm-select设置disabled属性,则整个选择器不可用\n \n \n
\n \n 包含清空按钮,可将选择器清空为初始状态\n \n \n \n \n \n \n \n
\n \n \n 为vm-select设置clearable属性,则可将选择器清空。需要注意的是,clearable属性仅适用于单选。\n \n \n
\n \n 适用性较广的基础多选,用 Tag 展示已选项\n \n \n \n \n \n \n \n
\n \n \n 为vm-select设置multiple属性即可启用多选,此时v-model的值为当前选中值所组成的数组\n \n \n
\n \n 可以自定义备选项\n \n \n \n \n \n {{ item.label }} \n {{ item.value }} \n \n \n
\n \n \n 将自定义的 HTML 模板插入vm-option的 slot 中即可。\n \n \n
\n \n 备选项进行分组展示\n \n \n \n \n \n \n \n \n \n
\n \n \n 使用vm-option-group对备选项进行分组,它的label属性为分组名\n \n \n
\n \n 可以利用搜索功能快速查找选项\n \n \n \n \n \n \n \n
\n \n \n 为vm-select添加filterable属性即可启用搜索功能。默认情况下,Select 会找出所有label属性包含输入值的选项。如果希望使用其他的搜索逻辑,可以通过传入一个filter-method来实现。filter-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。\n \n \n
\n \n 从服务器搜索数据,输入关键字进行查找\n \n \n \n \n \n \n \n
\n \n \n 为了启用远程搜索,需要将filterable和remote设置为true,同时传入一个remote-method。remote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。需要注意的是,如果vm-option是通过v-for指令渲染出来的,此时需要为vm-option添加key属性,且其值需具有唯一性,比如此例中的item.value。\n \n \n
\n \n 可以创建并选中选项中不存在的条目\n \n \n \n \n \n \n \n
\n \n \n 使用 allow-create 属性即可通过在输入框中输入文字来创建新的条目。注意此时 filterable 必须为真。\n \n \n
\n
\n
\n
\n
\n \n\n\n\n\n\n\n// WEBPACK FOOTER //\n// App.vue?3418918e","\r\n \r\n
\r\n \r\n \r\n {{ item.currentLabel }} \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n 0 && !loading\">\r\n \r\n \r\n \r\n \r\n {{ emptyText }}
\r\n \r\n \r\n
\r\n \r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// Select.vue?6032f195","\r\n \r\n {{ label }} \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// option-group.vue?57bffd3c","\r\n \r\n \r\n {{ currentLabel }} \r\n \r\n \r\n \r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// option.vue?09bdab26","\r\n \r\n \r\n
\r\n \r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// select-dropdown.vue?6e3066bd","import { hasOwn } from '../utils/util';\r\n\r\nconst RE_NARGS = /(%|)\\{([0-9a-zA-Z_]+)\\}/g;\r\n/**\r\n * String format template\r\n * - Inspired:\r\n * https://github.com/Matt-Esch/string-template/index.js\r\n */\r\nexport default function(Vue) {\r\n\r\n /**\r\n * template\r\n *\r\n * @param {String} string\r\n * @param {Array} ...args\r\n * @return {String}\r\n */\r\n\r\n function template(string, ...args) {\r\n if (args.length === 1 && typeof args[0] === 'object') {\r\n args = args[0];\r\n }\r\n\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n\r\n return string.replace(RE_NARGS, (match, prefix, i, index) => {\r\n let result;\r\n\r\n if (string[index - 1] === '{' &&\r\n string[index + match.length] === '}') {\r\n return i;\r\n } else {\r\n result = hasOwn(args, i) ? args[i] : null;\r\n if (result === null || result === undefined) {\r\n return '';\r\n }\r\n\r\n return result;\r\n }\r\n });\r\n }\r\n\r\n return template;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/locale/format.js","export default {\r\n el: {\r\n colorpicker: {\r\n confirm: '确定',\r\n clear: '清空'\r\n },\r\n datepicker: {\r\n now: '此刻',\r\n today: '今天',\r\n cancel: '取消',\r\n clear: '清空',\r\n confirm: '确定',\r\n selectDate: '选择日期',\r\n selectTime: '选择时间',\r\n startDate: '开始日期',\r\n startTime: '开始时间',\r\n endDate: '结束日期',\r\n endTime: '结束时间',\r\n year: '年',\r\n month1: '1 月',\r\n month2: '2 月',\r\n month3: '3 月',\r\n month4: '4 月',\r\n month5: '5 月',\r\n month6: '6 月',\r\n month7: '7 月',\r\n month8: '8 月',\r\n month9: '9 月',\r\n month10: '10 月',\r\n month11: '11 月',\r\n month12: '12 月',\r\n // week: '周次',\r\n weeks: {\r\n sun: '日',\r\n mon: '一',\r\n tue: '二',\r\n wed: '三',\r\n thu: '四',\r\n fri: '五',\r\n sat: '六'\r\n },\r\n months: {\r\n jan: '一月',\r\n feb: '二月',\r\n mar: '三月',\r\n apr: '四月',\r\n may: '五月',\r\n jun: '六月',\r\n jul: '七月',\r\n aug: '八月',\r\n sep: '九月',\r\n oct: '十月',\r\n nov: '十一月',\r\n dec: '十二月'\r\n }\r\n },\r\n select: {\r\n loading: '加载中',\r\n noMatch: '无匹配数据',\r\n noData: '无数据',\r\n placeholder: '请选择'\r\n },\r\n cascader: {\r\n noMatch: '无匹配数据',\r\n loading: '加载中',\r\n placeholder: '请选择'\r\n },\r\n pagination: {\r\n goto: '前往',\r\n pagesize: '条/页',\r\n total: '共 {total} 条',\r\n pageClassifier: '页'\r\n },\r\n messagebox: {\r\n title: '提示',\r\n confirm: '确定',\r\n cancel: '取消',\r\n error: '输入的数据不合法!'\r\n },\r\n upload: {\r\n delete: '删除',\r\n preview: '查看图片',\r\n continue: '继续上传'\r\n },\r\n table: {\r\n emptyText: '暂无数据',\r\n confirmFilter: '筛选',\r\n resetFilter: '重置',\r\n clearFilter: '全部',\r\n sumText: '合计'\r\n },\r\n tree: {\r\n emptyText: '暂无数据'\r\n },\r\n transfer: {\r\n noMatch: '无匹配数据',\r\n noData: '无数据',\r\n titles: ['列表 1', '列表 2'],\r\n filterPlaceholder: '请输入搜索内容',\r\n noCheckedFormat: '共 {total} 项',\r\n hasCheckedFormat: '已选 {checked}/{total} 项'\r\n }\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/locale/lang/zh-CN.js","import { t } from '../locale';\r\n\r\nexport default {\r\n methods: {\r\n t(...args) {\r\n return t.apply(this, args);\r\n }\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/mixins/locale.js","import Vue from 'vue';\r\nimport { on } from './dom';\r\n\r\nconst nodeList = [];\r\nconst ctx = '@@clickoutsideContext';\r\n\r\nlet startClick;\r\n\r\n!Vue.prototype.$isServer && on(document, 'mousedown', e => (startClick = e));\r\n\r\n!Vue.prototype.$isServer && on(document, 'mouseup', e => {\r\n nodeList.forEach(node => node[ctx].documentHandler(e, startClick));\r\n});\r\n/**\r\n * v-clickoutside\r\n * @desc 点击元素外面才会触发的事件\r\n * @example\r\n * ```vue\r\n * \r\n * ```\r\n */\r\nexport default {\r\n bind(el, binding, vnode) {\r\n const id = nodeList.push(el) - 1;\r\n const documentHandler = function(mouseup = {}, mousedown = {}) {\r\n if (!vnode.context ||\r\n !mouseup.target ||\r\n !mousedown.target ||\r\n el.contains(mouseup.target) ||\r\n (vnode.context.popperElm &&\r\n (vnode.context.popperElm.contains(mouseup.target) ||\r\n vnode.context.popperElm.contains(mousedown.target)))) return;\r\n\r\n if (binding.expression &&\r\n el[ctx].methodName &&\r\n vnode.context[el[ctx].methodName]) {\r\n vnode.context[el[ctx].methodName]();\r\n } else {\r\n el[ctx].bindingFn && el[ctx].bindingFn();\r\n }\r\n };\r\n el[ctx] = {\r\n id,\r\n documentHandler,\r\n methodName: binding.expression,\r\n bindingFn: binding.value\r\n };\r\n },\r\n\r\n update(el, binding) {\r\n el[ctx].methodName = binding.expression;\r\n el[ctx].bindingFn = binding.value;\r\n },\r\n\r\n unbind(el) {\r\n let len = nodeList.length;\r\n\r\n for (let i = 0; i < len; i++) {\r\n if (nodeList[i][ctx].id === el[ctx].id) {\r\n nodeList.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/clickoutside.js","export default function(target) {\r\n for (let i = 1, j = arguments.length; i < j; i++) {\r\n let source = arguments[i] || {};\r\n for (let prop in source) {\r\n if (source.hasOwnProperty(prop)) {\r\n let value = source[prop];\r\n if (value !== undefined) {\r\n target[prop] = value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/merge.js","/**\r\n * @fileOverview Kickass library to create and place poppers near their reference elements.\r\n * @version {{version}}\r\n * @license\r\n * Copyright (c) 2016 Federico Zivolo and contributors\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\n\r\n//\r\n// Cross module loader\r\n// Supported: Node, AMD, Browser globals\r\n//\r\n;(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory();\r\n } else {\r\n // Browser globals (root is window)\r\n root.Popper = factory();\r\n }\r\n}(this, function () {\r\n\r\n 'use strict';\r\n\r\n var root = window;\r\n\r\n // default options\r\n var DEFAULTS = {\r\n // placement of the popper\r\n placement: 'bottom',\r\n\r\n gpuAcceleration: true,\r\n\r\n // shift popper from its origin by the given amount of pixels (can be negative)\r\n offset: 0,\r\n\r\n // the element which will act as boundary of the popper\r\n boundariesElement: 'viewport',\r\n\r\n // amount of pixel used to define a minimum distance between the boundaries and the popper\r\n boundariesPadding: 5,\r\n\r\n // popper will try to prevent overflow following this order,\r\n // by default, then, it could overflow on the left and on top of the boundariesElement\r\n preventOverflowOrder: ['left', 'right', 'top', 'bottom'],\r\n\r\n // the behavior used by flip to change the placement of the popper\r\n flipBehavior: 'flip',\r\n\r\n arrowElement: '[x-arrow]',\r\n\r\n // list of functions used to modify the offsets before they are applied to the popper\r\n modifiers: [ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],\r\n\r\n modifiersIgnored: [],\r\n\r\n forceAbsolute: false\r\n };\r\n\r\n /**\r\n * Create a new Popper.js instance\r\n * @constructor Popper\r\n * @param {HTMLElement} reference - The reference element used to position the popper\r\n * @param {HTMLElement|Object} popper\r\n * The HTML element used as popper, or a configuration used to generate the popper.\r\n * @param {String} [popper.tagName='div'] The tag name of the generated popper.\r\n * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.\r\n * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.\r\n * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.\r\n * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.\r\n * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.\r\n * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.\r\n * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.\r\n * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.\r\n * @param {Object} options\r\n * @param {String} [options.placement=bottom]\r\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),\r\n * left(-start, -end)`\r\n *\r\n * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']\r\n * The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of\r\n * its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its\r\n * reference element.\r\n * By default, it will look for a child node of the popper with the `x-arrow` attribute.\r\n *\r\n * @param {Boolean} [options.gpuAcceleration=true]\r\n * When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the\r\n * browser to use the GPU to accelerate the rendering.\r\n * If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.\r\n *\r\n * @param {Number} [options.offset=0]\r\n * Amount of pixels the popper will be shifted (can be negative).\r\n *\r\n * @param {String|Element} [options.boundariesElement='viewport']\r\n * The element which will define the boundaries of the popper position, the popper will never be placed outside\r\n * of the defined boundaries (except if `keepTogether` is enabled)\r\n *\r\n * @param {Number} [options.boundariesPadding=5]\r\n * Additional padding for the boundaries\r\n *\r\n * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]\r\n * Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,\r\n * this means that the last ones will never overflow\r\n *\r\n * @param {String|Array} [options.flipBehavior='flip']\r\n * The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to\r\n * overlap its reference element. Defining `flip` as value, the placement will be flipped on\r\n * its axis (`right - left`, `top - bottom`).\r\n * You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify\r\n * how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,\r\n * then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)\r\n *\r\n * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]\r\n * List of functions used to modify the data before they are applied to the popper, add your custom functions\r\n * to this array to edit the offsets and placement.\r\n * The function should reflect the @params and @returns of preventOverflow\r\n *\r\n * @param {Array} [options.modifiersIgnored=[]]\r\n * Put here any built-in modifier name you want to exclude from the modifiers list\r\n * The function should reflect the @params and @returns of preventOverflow\r\n *\r\n * @param {Boolean} [options.removeOnDestroy=false]\r\n * Set to true if you want to automatically remove the popper when you call the `destroy` method.\r\n */\r\n function Popper(reference, popper, options) {\r\n this._reference = reference.jquery ? reference[0] : reference;\r\n this.state = {};\r\n\r\n // if the popper variable is a configuration object, parse it to generate an HTMLElement\r\n // generate a default popper if is not defined\r\n var isNotDefined = typeof popper === 'undefined' || popper === null;\r\n var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';\r\n if (isNotDefined || isConfig) {\r\n this._popper = this.parse(isConfig ? popper : {});\r\n }\r\n // otherwise, use the given HTMLElement as popper\r\n else {\r\n this._popper = popper.jquery ? popper[0] : popper;\r\n }\r\n\r\n // with {} we create a new object with the options inside it\r\n this._options = Object.assign({}, DEFAULTS, options);\r\n\r\n // refactoring modifiers' list\r\n this._options.modifiers = this._options.modifiers.map(function(modifier){\r\n // remove ignored modifiers\r\n if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;\r\n\r\n // set the x-placement attribute before everything else because it could be used to add margins to the popper\r\n // margins needs to be calculated to get the correct popper offsets\r\n if (modifier === 'applyStyle') {\r\n this._popper.setAttribute('x-placement', this._options.placement);\r\n }\r\n\r\n // return predefined modifier identified by string or keep the custom one\r\n return this.modifiers[modifier] || modifier;\r\n }.bind(this));\r\n\r\n // make sure to apply the popper position before any computation\r\n this.state.position = this._getPosition(this._popper, this._reference);\r\n setStyle(this._popper, { position: this.state.position, top: 0 });\r\n\r\n // fire the first update to position the popper in the right place\r\n this.update();\r\n\r\n // setup event listeners, they will take care of update the position in specific situations\r\n this._setupEventListeners();\r\n return this;\r\n }\r\n\r\n\r\n //\r\n // Methods\r\n //\r\n /**\r\n * Destroy the popper\r\n * @method\r\n * @memberof Popper\r\n */\r\n Popper.prototype.destroy = function() {\r\n this._popper.removeAttribute('x-placement');\r\n this._popper.style.left = '';\r\n this._popper.style.position = '';\r\n this._popper.style.top = '';\r\n this._popper.style[getSupportedPropertyName('transform')] = '';\r\n this._removeEventListeners();\r\n\r\n // remove the popper if user explicity asked for the deletion on destroy\r\n if (this._options.removeOnDestroy) {\r\n this._popper.remove();\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Updates the position of the popper, computing the new offsets and applying the new style\r\n * @method\r\n * @memberof Popper\r\n */\r\n Popper.prototype.update = function() {\r\n var data = { instance: this, styles: {} };\r\n\r\n // store placement inside the data object, modifiers will be able to edit `placement` if needed\r\n // and refer to _originalPlacement to know the original value\r\n data.placement = this._options.placement;\r\n data._originalPlacement = this._options.placement;\r\n\r\n // compute the popper and reference offsets and put them inside data.offsets\r\n data.offsets = this._getOffsets(this._popper, this._reference, data.placement);\r\n\r\n // get boundaries\r\n data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);\r\n\r\n data = this.runModifiers(data, this._options.modifiers);\r\n\r\n if (typeof this.state.updateCallback === 'function') {\r\n this.state.updateCallback(data);\r\n }\r\n\r\n };\r\n\r\n /**\r\n * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.\r\n * @method\r\n * @memberof Popper\r\n * @param {Function} callback\r\n */\r\n Popper.prototype.onCreate = function(callback) {\r\n // the createCallbacks return as first argument the popper instance\r\n callback(this);\r\n return this;\r\n };\r\n\r\n /**\r\n * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations\r\n * used to style popper and its arrow.\r\n * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!\r\n * @method\r\n * @memberof Popper\r\n * @param {Function} callback\r\n */\r\n Popper.prototype.onUpdate = function(callback) {\r\n this.state.updateCallback = callback;\r\n return this;\r\n };\r\n\r\n /**\r\n * Helper used to generate poppers from a configuration file\r\n * @method\r\n * @memberof Popper\r\n * @param config {Object} configuration\r\n * @returns {HTMLElement} popper\r\n */\r\n Popper.prototype.parse = function(config) {\r\n var defaultConfig = {\r\n tagName: 'div',\r\n classNames: [ 'popper' ],\r\n attributes: [],\r\n parent: root.document.body,\r\n content: '',\r\n contentType: 'text',\r\n arrowTagName: 'div',\r\n arrowClassNames: [ 'popper__arrow' ],\r\n arrowAttributes: [ 'x-arrow']\r\n };\r\n config = Object.assign({}, defaultConfig, config);\r\n\r\n var d = root.document;\r\n\r\n var popper = d.createElement(config.tagName);\r\n addClassNames(popper, config.classNames);\r\n addAttributes(popper, config.attributes);\r\n if (config.contentType === 'node') {\r\n popper.appendChild(config.content.jquery ? config.content[0] : config.content);\r\n }else if (config.contentType === 'html') {\r\n popper.innerHTML = config.content;\r\n } else {\r\n popper.textContent = config.content;\r\n }\r\n\r\n if (config.arrowTagName) {\r\n var arrow = d.createElement(config.arrowTagName);\r\n addClassNames(arrow, config.arrowClassNames);\r\n addAttributes(arrow, config.arrowAttributes);\r\n popper.appendChild(arrow);\r\n }\r\n\r\n var parent = config.parent.jquery ? config.parent[0] : config.parent;\r\n\r\n // if the given parent is a string, use it to match an element\r\n // if more than one element is matched, the first one will be used as parent\r\n // if no elements are matched, the script will throw an error\r\n if (typeof parent === 'string') {\r\n parent = d.querySelectorAll(config.parent);\r\n if (parent.length > 1) {\r\n console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');\r\n }\r\n if (parent.length === 0) {\r\n throw 'ERROR: the given `parent` doesn\\'t exists!';\r\n }\r\n parent = parent[0];\r\n }\r\n // if the given parent is a DOM nodes list or an array of nodes with more than one element,\r\n // the first one will be used as parent\r\n if (parent.length > 1 && parent instanceof Element === false) {\r\n console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');\r\n parent = parent[0];\r\n }\r\n\r\n // append the generated popper to its parent\r\n parent.appendChild(popper);\r\n\r\n return popper;\r\n\r\n /**\r\n * Adds class names to the given element\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} target\r\n * @param {Array} classes\r\n */\r\n function addClassNames(element, classNames) {\r\n classNames.forEach(function(className) {\r\n element.classList.add(className);\r\n });\r\n }\r\n\r\n /**\r\n * Adds attributes to the given element\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} target\r\n * @param {Array} attributes\r\n * @example\r\n * addAttributes(element, [ 'data-info:foobar' ]);\r\n */\r\n function addAttributes(element, attributes) {\r\n attributes.forEach(function(attribute) {\r\n element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');\r\n });\r\n }\r\n\r\n };\r\n\r\n /**\r\n * Helper used to get the position which will be applied to the popper\r\n * @method\r\n * @memberof Popper\r\n * @param config {HTMLElement} popper element\r\n * @param reference {HTMLElement} reference element\r\n * @returns {String} position\r\n */\r\n Popper.prototype._getPosition = function(popper, reference) {\r\n var container = getOffsetParent(reference);\r\n\r\n if (this._options.forceAbsolute) {\r\n return 'absolute';\r\n }\r\n\r\n // Decide if the popper will be fixed\r\n // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together\r\n var isParentFixed = isFixed(reference, container);\r\n return isParentFixed ? 'fixed' : 'absolute';\r\n };\r\n\r\n /**\r\n * Get offsets to the popper\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n * @param {Element} popper - the popper element\r\n * @param {Element} reference - the reference element (the popper will be relative to this)\r\n * @returns {Object} An object containing the offsets which will be applied to the popper\r\n */\r\n Popper.prototype._getOffsets = function(popper, reference, placement) {\r\n placement = placement.split('-')[0];\r\n var popperOffsets = {};\r\n\r\n popperOffsets.position = this.state.position;\r\n var isParentFixed = popperOffsets.position === 'fixed';\r\n\r\n //\r\n // Get reference element position\r\n //\r\n var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);\r\n\r\n //\r\n // Get popper sizes\r\n //\r\n var popperRect = getOuterSizes(popper);\r\n\r\n //\r\n // Compute offsets of popper\r\n //\r\n\r\n // depending by the popper placement we have to compute its offsets slightly differently\r\n if (['right', 'left'].indexOf(placement) !== -1) {\r\n popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;\r\n if (placement === 'left') {\r\n popperOffsets.left = referenceOffsets.left - popperRect.width;\r\n } else {\r\n popperOffsets.left = referenceOffsets.right;\r\n }\r\n } else {\r\n popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;\r\n if (placement === 'top') {\r\n popperOffsets.top = referenceOffsets.top - popperRect.height;\r\n } else {\r\n popperOffsets.top = referenceOffsets.bottom;\r\n }\r\n }\r\n\r\n // Add width and height to our offsets object\r\n popperOffsets.width = popperRect.width;\r\n popperOffsets.height = popperRect.height;\r\n\r\n\r\n return {\r\n popper: popperOffsets,\r\n reference: referenceOffsets\r\n };\r\n };\r\n\r\n\r\n /**\r\n * Setup needed event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n */\r\n Popper.prototype._setupEventListeners = function() {\r\n // NOTE: 1 DOM access here\r\n this.state.updateBound = this.update.bind(this);\r\n root.addEventListener('resize', this.state.updateBound);\r\n // if the boundariesElement is window we don't need to listen for the scroll event\r\n if (this._options.boundariesElement !== 'window') {\r\n var target = getScrollParent(this._reference);\r\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\r\n if (target === root.document.body || target === root.document.documentElement) {\r\n target = root;\r\n }\r\n target.addEventListener('scroll', this.state.updateBound);\r\n }\r\n };\r\n\r\n /**\r\n * Remove event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n */\r\n Popper.prototype._removeEventListeners = function() {\r\n // NOTE: 1 DOM access here\r\n root.removeEventListener('resize', this.state.updateBound);\r\n if (this._options.boundariesElement !== 'window') {\r\n var target = getScrollParent(this._reference);\r\n // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\r\n if (target === root.document.body || target === root.document.documentElement) {\r\n target = root;\r\n }\r\n target.removeEventListener('scroll', this.state.updateBound);\r\n }\r\n this.state.updateBound = null;\r\n };\r\n\r\n /**\r\n * Computed the boundaries limits and return them\r\n * @method\r\n * @memberof Popper\r\n * @access private\r\n * @param {Object} data - Object containing the property \"offsets\" generated by `_getOffsets`\r\n * @param {Number} padding - Boundaries padding\r\n * @param {Element} boundariesElement - Element used to define the boundaries\r\n * @returns {Object} Coordinates of the boundaries\r\n */\r\n Popper.prototype._getBoundaries = function(data, padding, boundariesElement) {\r\n // NOTE: 1 DOM access here\r\n var boundaries = {};\r\n var width, height;\r\n if (boundariesElement === 'window') {\r\n var body = root.document.body,\r\n html = root.document.documentElement;\r\n\r\n height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );\r\n width = Math.max( body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth );\r\n\r\n boundaries = {\r\n top: 0,\r\n right: width,\r\n bottom: height,\r\n left: 0\r\n };\r\n } else if (boundariesElement === 'viewport') {\r\n var offsetParent = getOffsetParent(this._popper);\r\n var scrollParent = getScrollParent(this._popper);\r\n var offsetParentRect = getOffsetRect(offsetParent);\r\n\r\n\t\t\t// Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop`\r\n\t\t\tvar getScrollTopValue = function (element) {\r\n\t\t\t\treturn element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop;\r\n\t\t\t}\r\n\t\t\tvar getScrollLeftValue = function (element) {\r\n\t\t\t\treturn element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft;\r\n\t\t\t}\r\n\r\n // if the popper is fixed we don't have to substract scrolling from the boundaries\r\n var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent);\r\n var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent);\r\n\r\n boundaries = {\r\n top: 0 - (offsetParentRect.top - scrollTop),\r\n right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),\r\n bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),\r\n left: 0 - (offsetParentRect.left - scrollLeft)\r\n };\r\n } else {\r\n if (getOffsetParent(this._popper) === boundariesElement) {\r\n boundaries = {\r\n top: 0,\r\n left: 0,\r\n right: boundariesElement.clientWidth,\r\n bottom: boundariesElement.clientHeight\r\n };\r\n } else {\r\n boundaries = getOffsetRect(boundariesElement);\r\n }\r\n }\r\n boundaries.left += padding;\r\n boundaries.right -= padding;\r\n boundaries.top = boundaries.top + padding;\r\n boundaries.bottom = boundaries.bottom - padding;\r\n return boundaries;\r\n };\r\n\r\n\r\n /**\r\n * Loop trough the list of modifiers and run them in order, each of them will then edit the data object\r\n * @method\r\n * @memberof Popper\r\n * @access public\r\n * @param {Object} data\r\n * @param {Array} modifiers\r\n * @param {Function} ends\r\n */\r\n Popper.prototype.runModifiers = function(data, modifiers, ends) {\r\n var modifiersToRun = modifiers.slice();\r\n if (ends !== undefined) {\r\n modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));\r\n }\r\n\r\n modifiersToRun.forEach(function(modifier) {\r\n if (isFunction(modifier)) {\r\n data = modifier.call(this, data);\r\n }\r\n }.bind(this));\r\n\r\n return data;\r\n };\r\n\r\n /**\r\n * Helper used to know if the given modifier depends from another one.\r\n * @method\r\n * @memberof Popper\r\n * @param {String} requesting - name of requesting modifier\r\n * @param {String} requested - name of requested modifier\r\n * @returns {Boolean}\r\n */\r\n Popper.prototype.isModifierRequired = function(requesting, requested) {\r\n var index = getArrayKeyIndex(this._options.modifiers, requesting);\r\n return !!this._options.modifiers.slice(0, index).filter(function(modifier) {\r\n return modifier === requested;\r\n }).length;\r\n };\r\n\r\n //\r\n // Modifiers\r\n //\r\n\r\n /**\r\n * Modifiers list\r\n * @namespace Popper.modifiers\r\n * @memberof Popper\r\n * @type {Object}\r\n */\r\n Popper.prototype.modifiers = {};\r\n\r\n /**\r\n * Apply the computed styles to the popper element\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @returns {Object} The same data object\r\n */\r\n Popper.prototype.modifiers.applyStyle = function(data) {\r\n // apply the final offsets to the popper\r\n // NOTE: 1 DOM access here\r\n var styles = {\r\n position: data.offsets.popper.position\r\n };\r\n\r\n // round top and left to avoid blurry text\r\n var left = Math.round(data.offsets.popper.left);\r\n var top = Math.round(data.offsets.popper.top);\r\n\r\n // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper\r\n // we automatically use the supported prefixed version if needed\r\n var prefixedProperty;\r\n if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {\r\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\r\n styles.top = 0;\r\n styles.left = 0;\r\n }\r\n // othwerise, we use the standard `left` and `top` properties\r\n else {\r\n styles.left =left;\r\n styles.top = top;\r\n }\r\n\r\n // any property present in `data.styles` will be applied to the popper,\r\n // in this way we can make the 3rd party modifiers add custom styles to it\r\n // Be aware, modifiers could override the properties defined in the previous\r\n // lines of this modifier!\r\n Object.assign(styles, data.styles);\r\n\r\n setStyle(this._popper, styles);\r\n\r\n // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)\r\n // NOTE: 1 DOM access here\r\n this._popper.setAttribute('x-placement', data.placement);\r\n\r\n // if the arrow modifier is required and the arrow style has been computed, apply the arrow style\r\n if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) {\r\n setStyle(data.arrowElement, data.offsets.arrow);\r\n }\r\n\r\n return data;\r\n };\r\n\r\n /**\r\n * Modifier used to shift the popper on the start or end of its reference element side\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @returns {Object} The data object, properly modified\r\n */\r\n Popper.prototype.modifiers.shift = function(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var shiftVariation = placement.split('-')[1];\r\n\r\n // if shift shiftVariation is specified, run the modifier\r\n if (shiftVariation) {\r\n var reference = data.offsets.reference;\r\n var popper = getPopperClientRect(data.offsets.popper);\r\n\r\n var shiftOffsets = {\r\n y: {\r\n start: { top: reference.top },\r\n end: { top: reference.top + reference.height - popper.height }\r\n },\r\n x: {\r\n start: { left: reference.left },\r\n end: { left: reference.left + reference.width - popper.width }\r\n }\r\n };\r\n\r\n var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';\r\n\r\n data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);\r\n }\r\n\r\n return data;\r\n };\r\n\r\n\r\n /**\r\n * Modifier used to make sure the popper does not overflows from it's boundaries\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @returns {Object} The data object, properly modified\r\n */\r\n Popper.prototype.modifiers.preventOverflow = function(data) {\r\n var order = this._options.preventOverflowOrder;\r\n var popper = getPopperClientRect(data.offsets.popper);\r\n\r\n var check = {\r\n left: function() {\r\n var left = popper.left;\r\n if (popper.left < data.boundaries.left) {\r\n left = Math.max(popper.left, data.boundaries.left);\r\n }\r\n return { left: left };\r\n },\r\n right: function() {\r\n var left = popper.left;\r\n if (popper.right > data.boundaries.right) {\r\n left = Math.min(popper.left, data.boundaries.right - popper.width);\r\n }\r\n return { left: left };\r\n },\r\n top: function() {\r\n var top = popper.top;\r\n if (popper.top < data.boundaries.top) {\r\n top = Math.max(popper.top, data.boundaries.top);\r\n }\r\n return { top: top };\r\n },\r\n bottom: function() {\r\n var top = popper.top;\r\n if (popper.bottom > data.boundaries.bottom) {\r\n top = Math.min(popper.top, data.boundaries.bottom - popper.height);\r\n }\r\n return { top: top };\r\n }\r\n };\r\n\r\n order.forEach(function(direction) {\r\n data.offsets.popper = Object.assign(popper, check[direction]());\r\n });\r\n\r\n return data;\r\n };\r\n\r\n /**\r\n * Modifier used to make sure the popper is always near its reference\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\r\n Popper.prototype.modifiers.keepTogether = function(data) {\r\n var popper = getPopperClientRect(data.offsets.popper);\r\n var reference = data.offsets.reference;\r\n var f = Math.floor;\r\n\r\n if (popper.right < f(reference.left)) {\r\n data.offsets.popper.left = f(reference.left) - popper.width;\r\n }\r\n if (popper.left > f(reference.right)) {\r\n data.offsets.popper.left = f(reference.right);\r\n }\r\n if (popper.bottom < f(reference.top)) {\r\n data.offsets.popper.top = f(reference.top) - popper.height;\r\n }\r\n if (popper.top > f(reference.bottom)) {\r\n data.offsets.popper.top = f(reference.bottom);\r\n }\r\n\r\n return data;\r\n };\r\n\r\n /**\r\n * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\r\n Popper.prototype.modifiers.flip = function(data) {\r\n // check if preventOverflow is in the list of modifiers before the flip modifier.\r\n // otherwise flip would not work as expected.\r\n if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {\r\n console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');\r\n return data;\r\n }\r\n\r\n if (data.flipped && data.placement === data._originalPlacement) {\r\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\r\n return data;\r\n }\r\n\r\n var placement = data.placement.split('-')[0];\r\n var placementOpposite = getOppositePlacement(placement);\r\n var variation = data.placement.split('-')[1] || '';\r\n\r\n var flipOrder = [];\r\n if(this._options.flipBehavior === 'flip') {\r\n flipOrder = [\r\n placement,\r\n placementOpposite\r\n ];\r\n } else {\r\n flipOrder = this._options.flipBehavior;\r\n }\r\n\r\n flipOrder.forEach(function(step, index) {\r\n if (placement !== step || flipOrder.length === index + 1) {\r\n return;\r\n }\r\n\r\n placement = data.placement.split('-')[0];\r\n placementOpposite = getOppositePlacement(placement);\r\n\r\n var popperOffsets = getPopperClientRect(data.offsets.popper);\r\n\r\n // this boolean is used to distinguish right and bottom from top and left\r\n // they need different computations to get flipped\r\n var a = ['right', 'bottom'].indexOf(placement) !== -1;\r\n\r\n // using Math.floor because the reference offsets may contain decimals we are not going to consider here\r\n if (\r\n a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) ||\r\n !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])\r\n ) {\r\n // we'll use this boolean to detect any flip loop\r\n data.flipped = true;\r\n data.placement = flipOrder[index + 1];\r\n if (variation) {\r\n data.placement += '-' + variation;\r\n }\r\n data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;\r\n\r\n data = this.runModifiers(data, this._options.modifiers, this._flip);\r\n }\r\n }.bind(this));\r\n return data;\r\n };\r\n\r\n /**\r\n * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.\r\n * The offsets will shift the popper on the side of its reference element.\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\r\n Popper.prototype.modifiers.offset = function(data) {\r\n var offset = this._options.offset;\r\n var popper = data.offsets.popper;\r\n\r\n if (data.placement.indexOf('left') !== -1) {\r\n popper.top -= offset;\r\n }\r\n else if (data.placement.indexOf('right') !== -1) {\r\n popper.top += offset;\r\n }\r\n else if (data.placement.indexOf('top') !== -1) {\r\n popper.left -= offset;\r\n }\r\n else if (data.placement.indexOf('bottom') !== -1) {\r\n popper.left += offset;\r\n }\r\n return data;\r\n };\r\n\r\n /**\r\n * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element\r\n * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @argument {Object} data - The data object generated by _update method\r\n * @returns {Object} The data object, properly modified\r\n */\r\n Popper.prototype.modifiers.arrow = function(data) {\r\n var arrow = this._options.arrowElement;\r\n\r\n // if the arrowElement is a string, suppose it's a CSS selector\r\n if (typeof arrow === 'string') {\r\n arrow = this._popper.querySelector(arrow);\r\n }\r\n\r\n // if arrow element is not found, don't run the modifier\r\n if (!arrow) {\r\n return data;\r\n }\r\n\r\n // the arrow element must be child of its popper\r\n if (!this._popper.contains(arrow)) {\r\n console.warn('WARNING: `arrowElement` must be child of its popper element!');\r\n return data;\r\n }\r\n\r\n // arrow depends on keepTogether in order to work\r\n if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {\r\n console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');\r\n return data;\r\n }\r\n\r\n var arrowStyle = {};\r\n var placement = data.placement.split('-')[0];\r\n var popper = getPopperClientRect(data.offsets.popper);\r\n var reference = data.offsets.reference;\r\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\r\n\r\n var len = isVertical ? 'height' : 'width';\r\n var side = isVertical ? 'top' : 'left';\r\n var altSide = isVertical ? 'left' : 'top';\r\n var opSide = isVertical ? 'bottom' : 'right';\r\n var arrowSize = getOuterSizes(arrow)[len];\r\n\r\n //\r\n // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction\r\n //\r\n\r\n // top/left side\r\n if (reference[opSide] - arrowSize < popper[side]) {\r\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);\r\n }\r\n // bottom/right side\r\n if (reference[side] + arrowSize > popper[opSide]) {\r\n data.offsets.popper[side] += (reference[side] + arrowSize) - popper[opSide];\r\n }\r\n\r\n // compute center of the popper\r\n var center = reference[side] + (reference[len] / 2) - (arrowSize / 2);\r\n\r\n var sideValue = center - popper[side];\r\n\r\n // prevent arrow from being placed not contiguously to its popper\r\n sideValue = Math.max(Math.min(popper[len] - arrowSize - 3, sideValue), 3);\r\n arrowStyle[side] = sideValue;\r\n arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow\r\n\r\n data.offsets.arrow = arrowStyle;\r\n data.arrowElement = arrow;\r\n\r\n return data;\r\n };\r\n\r\n\r\n //\r\n // Helpers\r\n //\r\n\r\n /**\r\n * Get the outer sizes of the given element (offset size + margins)\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @returns {Object} object containing width and height properties\r\n */\r\n function getOuterSizes(element) {\r\n // NOTE: 1 DOM access here\r\n var _display = element.style.display, _visibility = element.style.visibility;\r\n element.style.display = 'block'; element.style.visibility = 'hidden';\r\n var calcWidthToForceRepaint = element.offsetWidth;\r\n\r\n // original method\r\n var styles = root.getComputedStyle(element);\r\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\r\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\r\n var result = { width: element.offsetWidth + y, height: element.offsetHeight + x };\r\n\r\n // reset element styles\r\n element.style.display = _display; element.style.visibility = _visibility;\r\n return result;\r\n }\r\n\r\n /**\r\n * Get the opposite placement of the given one/\r\n * @function\r\n * @ignore\r\n * @argument {String} placement\r\n * @returns {String} flipped placement\r\n */\r\n function getOppositePlacement(placement) {\r\n var hash = {left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\r\n return placement.replace(/left|right|bottom|top/g, function(matched){\r\n return hash[matched];\r\n });\r\n }\r\n\r\n /**\r\n * Given the popper offsets, generate an output similar to getBoundingClientRect\r\n * @function\r\n * @ignore\r\n * @argument {Object} popperOffsets\r\n * @returns {Object} ClientRect like output\r\n */\r\n function getPopperClientRect(popperOffsets) {\r\n var offsets = Object.assign({}, popperOffsets);\r\n offsets.right = offsets.left + offsets.width;\r\n offsets.bottom = offsets.top + offsets.height;\r\n return offsets;\r\n }\r\n\r\n /**\r\n * Given an array and the key to find, returns its index\r\n * @function\r\n * @ignore\r\n * @argument {Array} arr\r\n * @argument keyToFind\r\n * @returns index or null\r\n */\r\n function getArrayKeyIndex(arr, keyToFind) {\r\n var i = 0, key;\r\n for (key in arr) {\r\n if (arr[key] === keyToFind) {\r\n return i;\r\n }\r\n i++;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Get CSS computed property of the given element\r\n * @function\r\n * @ignore\r\n * @argument {Eement} element\r\n * @argument {String} property\r\n */\r\n function getStyleComputedProperty(element, property) {\r\n // NOTE: 1 DOM access here\r\n var css = root.getComputedStyle(element, null);\r\n return css[property];\r\n }\r\n\r\n /**\r\n * Returns the offset parent of the given element\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\r\n function getOffsetParent(element) {\r\n // NOTE: 1 DOM access here\r\n var offsetParent = element.offsetParent;\r\n return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;\r\n }\r\n\r\n /**\r\n * Returns the scrolling parent of the given element\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\r\n function getScrollParent(element) {\r\n var parent = element.parentNode;\r\n\r\n if (!parent) {\r\n return element;\r\n }\r\n\r\n if (parent === root.document) {\r\n // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is\r\n // greater than 0 and return the proper element\r\n if (root.document.body.scrollTop) {\r\n return root.document.body;\r\n } else {\r\n return root.document.documentElement;\r\n }\r\n }\r\n\r\n // Firefox want us to check `-x` and `-y` variations as well\r\n if (\r\n ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow')) !== -1 ||\r\n ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 ||\r\n ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-y')) !== -1\r\n ) {\r\n // If the detected scrollParent is body, we perform an additional check on its parentNode\r\n // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise\r\n // fixes issue #65\r\n return parent;\r\n }\r\n return getScrollParent(element.parentNode);\r\n }\r\n\r\n /**\r\n * Check if the given element is fixed or is inside a fixed parent\r\n * @function\r\n * @ignore\r\n * @argument {Element} element\r\n * @argument {Element} customContainer\r\n * @returns {Boolean} answer to \"isFixed?\"\r\n */\r\n function isFixed(element) {\r\n if (element === root.document.body) {\r\n return false;\r\n }\r\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\r\n return true;\r\n }\r\n return element.parentNode ? isFixed(element.parentNode) : element;\r\n }\r\n\r\n /**\r\n * Set the style to the given popper\r\n * @function\r\n * @ignore\r\n * @argument {Element} element - Element to apply the style to\r\n * @argument {Object} styles - Object with a list of properties and values which will be applied to the element\r\n */\r\n function setStyle(element, styles) {\r\n function is_numeric(n) {\r\n return (n !== '' && !isNaN(parseFloat(n)) && isFinite(n));\r\n }\r\n Object.keys(styles).forEach(function(prop) {\r\n var unit = '';\r\n // add unit if the value is numeric and is one of the following\r\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {\r\n unit = 'px';\r\n }\r\n element.style[prop] = styles[prop] + unit;\r\n });\r\n }\r\n\r\n /**\r\n * Check if the given variable is a function\r\n * @function\r\n * @ignore\r\n * @argument {*} functionToCheck - variable to check\r\n * @returns {Boolean} answer to: is a function?\r\n */\r\n function isFunction(functionToCheck) {\r\n var getType = {};\r\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\r\n }\r\n\r\n /**\r\n * Get the position of the given element, relative to its offset parent\r\n * @function\r\n * @ignore\r\n * @param {Element} element\r\n * @return {Object} position - Coordinates of the element and its `scrollTop`\r\n */\r\n function getOffsetRect(element) {\r\n var elementRect = {\r\n width: element.offsetWidth,\r\n height: element.offsetHeight,\r\n left: element.offsetLeft,\r\n top: element.offsetTop\r\n };\r\n\r\n elementRect.right = elementRect.left + elementRect.width;\r\n elementRect.bottom = elementRect.top + elementRect.height;\r\n\r\n // position\r\n return elementRect;\r\n }\r\n\r\n /**\r\n * Get bounding client rect of given element\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} element\r\n * @return {Object} client rect\r\n */\r\n function getBoundingClientRect(element) {\r\n var rect = element.getBoundingClientRect();\r\n\r\n // whether the IE version is lower than 11\r\n var isIE = navigator.userAgent.indexOf(\"MSIE\") != -1;\r\n\r\n // fix ie document bounding top always 0 bug\r\n var rectTop = isIE && element.tagName === 'HTML'\r\n ? -element.scrollTop\r\n : rect.top;\r\n\r\n return {\r\n left: rect.left,\r\n top: rectTop,\r\n right: rect.right,\r\n bottom: rect.bottom,\r\n width: rect.right - rect.left,\r\n height: rect.bottom - rectTop\r\n };\r\n }\r\n\r\n /**\r\n * Given an element and one of its parents, return the offset\r\n * @function\r\n * @ignore\r\n * @param {HTMLElement} element\r\n * @param {HTMLElement} parent\r\n * @return {Object} rect\r\n */\r\n function getOffsetRectRelativeToCustomParent(element, parent, fixed) {\r\n var elementRect = getBoundingClientRect(element);\r\n var parentRect = getBoundingClientRect(parent);\r\n\r\n if (fixed) {\r\n var scrollParent = getScrollParent(parent);\r\n parentRect.top += scrollParent.scrollTop;\r\n parentRect.bottom += scrollParent.scrollTop;\r\n parentRect.left += scrollParent.scrollLeft;\r\n parentRect.right += scrollParent.scrollLeft;\r\n }\r\n\r\n var rect = {\r\n top: elementRect.top - parentRect.top ,\r\n left: elementRect.left - parentRect.left ,\r\n bottom: (elementRect.top - parentRect.top) + elementRect.height,\r\n right: (elementRect.left - parentRect.left) + elementRect.width,\r\n width: elementRect.width,\r\n height: elementRect.height\r\n };\r\n return rect;\r\n }\r\n\r\n /**\r\n * Get the prefixed supported property name\r\n * @function\r\n * @ignore\r\n * @argument {String} property (camelCase)\r\n * @returns {String} prefixed property (camelCase)\r\n */\r\n function getSupportedPropertyName(property) {\r\n var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];\r\n\r\n for (var i = 0; i < prefixes.length; i++) {\r\n var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;\r\n if (typeof root.document.body.style[toCheck] !== 'undefined') {\r\n return toCheck;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source\r\n * objects to a target object. It will return the target object.\r\n * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway\r\n * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\r\n * @function\r\n * @ignore\r\n */\r\n if (!Object.assign) {\r\n Object.defineProperty(Object, 'assign', {\r\n enumerable: false,\r\n configurable: true,\r\n writable: true,\r\n value: function(target) {\r\n if (target === undefined || target === null) {\r\n throw new TypeError('Cannot convert first argument to object');\r\n }\r\n\r\n var to = Object(target);\r\n for (var i = 1; i < arguments.length; i++) {\r\n var nextSource = arguments[i];\r\n if (nextSource === undefined || nextSource === null) {\r\n continue;\r\n }\r\n nextSource = Object(nextSource);\r\n\r\n var keysArray = Object.keys(nextSource);\r\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\r\n var nextKey = keysArray[nextIndex];\r\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n if (desc !== undefined && desc.enumerable) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n return to;\r\n }\r\n });\r\n }\r\n\r\n return Popper;\r\n}));\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/popper.js","import Vue from 'vue';\r\nimport merge from '../merge';\r\nimport PopupManager from './popup-manager';\r\nimport getScrollBarWidth from '../scrollbar-width';\r\n\r\nlet idSeed = 1;\r\nconst transitions = [];\r\n\r\nconst hookTransition = (transition) => {\r\n if (transitions.indexOf(transition) !== -1) return;\r\n\r\n const getVueInstance = (element) => {\r\n let instance = element.__vue__;\r\n if (!instance) {\r\n const textNode = element.previousSibling;\r\n if (textNode.__vue__) {\r\n instance = textNode.__vue__;\r\n }\r\n }\r\n return instance;\r\n };\r\n\r\n Vue.transition(transition, {\r\n afterEnter(el) {\r\n const instance = getVueInstance(el);\r\n\r\n if (instance) {\r\n instance.doAfterOpen && instance.doAfterOpen();\r\n }\r\n },\r\n afterLeave(el) {\r\n const instance = getVueInstance(el);\r\n\r\n if (instance) {\r\n instance.doAfterClose && instance.doAfterClose();\r\n }\r\n }\r\n });\r\n};\r\n\r\nlet scrollBarWidth;\r\n\r\nconst getDOM = function(dom) {\r\n if (dom.nodeType === 3) {\r\n dom = dom.nextElementSibling || dom.nextSibling;\r\n getDOM(dom);\r\n }\r\n return dom;\r\n};\r\n\r\nexport default {\r\n model: {\r\n prop: 'visible',\r\n event: 'visible-change'\r\n },\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n transition: {\r\n type: String,\r\n default: ''\r\n },\r\n openDelay: {},\r\n closeDelay: {},\r\n zIndex: {},\r\n modal: {\r\n type: Boolean,\r\n default: false\r\n },\r\n modalFade: {\r\n type: Boolean,\r\n default: true\r\n },\r\n modalClass: {},\r\n modalAppendToBody: {\r\n type: Boolean,\r\n default: false\r\n },\r\n lockScroll: {\r\n type: Boolean,\r\n default: true\r\n },\r\n closeOnPressEscape: {\r\n type: Boolean,\r\n default: false\r\n },\r\n closeOnClickModal: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n created() {\r\n if (this.transition) {\r\n hookTransition(this.transition);\r\n }\r\n },\r\n\r\n beforeMount() {\r\n this._popupId = 'popup-' + idSeed++;\r\n PopupManager.register(this._popupId, this);\r\n },\r\n\r\n beforeDestroy() {\r\n PopupManager.deregister(this._popupId);\r\n PopupManager.closeModal(this._popupId);\r\n if (this.modal && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {\r\n document.body.style.overflow = this.bodyOverflow;\r\n document.body.style.paddingRight = this.bodyPaddingRight;\r\n }\r\n this.bodyOverflow = null;\r\n this.bodyPaddingRight = null;\r\n },\r\n\r\n data() {\r\n return {\r\n opened: false,\r\n bodyOverflow: null,\r\n bodyPaddingRight: null,\r\n rendered: false\r\n };\r\n },\r\n\r\n watch: {\r\n visible(val) {\r\n if (val) {\r\n if (this._opening) return;\r\n if (!this.rendered) {\r\n this.rendered = true;\r\n Vue.nextTick(() => {\r\n this.open();\r\n });\r\n } else {\r\n this.open();\r\n }\r\n } else {\r\n this.close();\r\n }\r\n }\r\n },\r\n\r\n methods: {\r\n open(options) {\r\n if (!this.rendered) {\r\n this.rendered = true;\r\n this.$emit('visible-change', true);\r\n }\r\n\r\n const props = merge({}, this.$props || this, options);\r\n\r\n if (this._closeTimer) {\r\n clearTimeout(this._closeTimer);\r\n this._closeTimer = null;\r\n }\r\n clearTimeout(this._openTimer);\r\n\r\n const openDelay = Number(props.openDelay);\r\n if (openDelay > 0) {\r\n this._openTimer = setTimeout(() => {\r\n this._openTimer = null;\r\n this.doOpen(props);\r\n }, openDelay);\r\n } else {\r\n this.doOpen(props);\r\n }\r\n },\r\n\r\n doOpen(props) {\r\n if (this.$isServer) return;\r\n if (this.willOpen && !this.willOpen()) return;\r\n if (this.opened) return;\r\n\r\n this._opening = true;\r\n\r\n this.$emit('visible-change', true);\r\n\r\n const dom = getDOM(this.$el);\r\n\r\n const modal = props.modal;\r\n\r\n const zIndex = props.zIndex;\r\n if (zIndex) {\r\n PopupManager.zIndex = zIndex;\r\n }\r\n\r\n if (modal) {\r\n if (this._closing) {\r\n PopupManager.closeModal(this._popupId);\r\n this._closing = false;\r\n }\r\n PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);\r\n if (props.lockScroll) {\r\n if (!this.bodyOverflow) {\r\n this.bodyPaddingRight = document.body.style.paddingRight;\r\n this.bodyOverflow = document.body.style.overflow;\r\n }\r\n scrollBarWidth = getScrollBarWidth();\r\n let bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;\r\n if (scrollBarWidth > 0 && bodyHasOverflow) {\r\n document.body.style.paddingRight = scrollBarWidth + 'px';\r\n }\r\n document.body.style.overflow = 'hidden';\r\n }\r\n }\r\n\r\n if (getComputedStyle(dom).position === 'static') {\r\n dom.style.position = 'absolute';\r\n }\r\n\r\n dom.style.zIndex = PopupManager.nextZIndex();\r\n this.opened = true;\r\n\r\n this.onOpen && this.onOpen();\r\n\r\n if (!this.transition) {\r\n this.doAfterOpen();\r\n }\r\n },\r\n\r\n doAfterOpen() {\r\n this._opening = false;\r\n },\r\n\r\n close() {\r\n if (this.willClose && !this.willClose()) return;\r\n\r\n if (this._openTimer !== null) {\r\n clearTimeout(this._openTimer);\r\n this._openTimer = null;\r\n }\r\n clearTimeout(this._closeTimer);\r\n\r\n const closeDelay = Number(this.closeDelay);\r\n\r\n if (closeDelay > 0) {\r\n this._closeTimer = setTimeout(() => {\r\n this._closeTimer = null;\r\n this.doClose();\r\n }, closeDelay);\r\n } else {\r\n this.doClose();\r\n }\r\n },\r\n\r\n doClose() {\r\n this.$emit('visible-change', false);\r\n this._closing = true;\r\n\r\n this.onClose && this.onClose();\r\n\r\n if (this.lockScroll) {\r\n setTimeout(() => {\r\n if (this.modal && this.bodyOverflow !== 'hidden') {\r\n document.body.style.overflow = this.bodyOverflow;\r\n document.body.style.paddingRight = this.bodyPaddingRight;\r\n }\r\n this.bodyOverflow = null;\r\n this.bodyPaddingRight = null;\r\n }, 200);\r\n }\r\n\r\n this.opened = false;\r\n\r\n if (!this.transition) {\r\n this.doAfterClose();\r\n }\r\n },\r\n\r\n doAfterClose() {\r\n PopupManager.closeModal(this._popupId);\r\n this._closing = false;\r\n }\r\n }\r\n};\r\n\r\nexport {\r\n PopupManager\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/popup/index.js","import Vue from 'vue';\r\nimport { addClass, removeClass } from '../dom';\r\n\r\nlet hasModal = false;\r\n\r\nconst getModal = function() {\r\n if (Vue.prototype.$isServer) return;\r\n let modalDom = PopupManager.modalDom;\r\n if (modalDom) {\r\n hasModal = true;\r\n } else {\r\n hasModal = false;\r\n modalDom = document.createElement('div');\r\n PopupManager.modalDom = modalDom;\r\n\r\n modalDom.addEventListener('touchmove', function(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n });\r\n\r\n modalDom.addEventListener('click', function() {\r\n PopupManager.doOnModalClick && PopupManager.doOnModalClick();\r\n });\r\n }\r\n\r\n return modalDom;\r\n};\r\n\r\nconst instances = {};\r\n\r\nconst PopupManager = {\r\n zIndex: 2000,\r\n\r\n modalFade: true,\r\n\r\n getInstance: function(id) {\r\n return instances[id];\r\n },\r\n\r\n register: function(id, instance) {\r\n if (id && instance) {\r\n instances[id] = instance;\r\n }\r\n },\r\n\r\n deregister: function(id) {\r\n if (id) {\r\n instances[id] = null;\r\n delete instances[id];\r\n }\r\n },\r\n\r\n nextZIndex: function() {\r\n return PopupManager.zIndex++;\r\n },\r\n\r\n modalStack: [],\r\n\r\n doOnModalClick: function() {\r\n const topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\r\n if (!topItem) return;\r\n\r\n const instance = PopupManager.getInstance(topItem.id);\r\n if (instance && instance.closeOnClickModal) {\r\n instance.close();\r\n }\r\n },\r\n\r\n openModal: function(id, zIndex, dom, modalClass, modalFade) {\r\n if (Vue.prototype.$isServer) return;\r\n if (!id || zIndex === undefined) return;\r\n this.modalFade = modalFade;\r\n\r\n const modalStack = this.modalStack;\r\n\r\n for (let i = 0, j = modalStack.length; i < j; i++) {\r\n const item = modalStack[i];\r\n if (item.id === id) {\r\n return;\r\n }\r\n }\r\n\r\n const modalDom = getModal();\r\n\r\n addClass(modalDom, 'v-modal');\r\n if (this.modalFade && !hasModal) {\r\n addClass(modalDom, 'v-modal-enter');\r\n }\r\n if (modalClass) {\r\n let classArr = modalClass.trim().split(/\\s+/);\r\n classArr.forEach(item => addClass(modalDom, item));\r\n }\r\n setTimeout(() => {\r\n removeClass(modalDom, 'v-modal-enter');\r\n }, 200);\r\n\r\n if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\r\n dom.parentNode.appendChild(modalDom);\r\n } else {\r\n document.body.appendChild(modalDom);\r\n }\r\n\r\n if (zIndex) {\r\n modalDom.style.zIndex = zIndex;\r\n }\r\n modalDom.style.display = '';\r\n\r\n this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\r\n },\r\n\r\n closeModal: function(id) {\r\n const modalStack = this.modalStack;\r\n const modalDom = getModal();\r\n\r\n if (modalStack.length > 0) {\r\n const topItem = modalStack[modalStack.length - 1];\r\n if (topItem.id === id) {\r\n if (topItem.modalClass) {\r\n let classArr = topItem.modalClass.trim().split(/\\s+/);\r\n classArr.forEach(item => removeClass(modalDom, item));\r\n }\r\n\r\n modalStack.pop();\r\n if (modalStack.length > 0) {\r\n modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\r\n }\r\n } else {\r\n for (let i = modalStack.length - 1; i >= 0; i--) {\r\n if (modalStack[i].id === id) {\r\n modalStack.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (modalStack.length === 0) {\r\n if (this.modalFade) {\r\n addClass(modalDom, 'v-modal-leave');\r\n }\r\n setTimeout(() => {\r\n if (modalStack.length === 0) {\r\n if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\r\n modalDom.style.display = 'none';\r\n PopupManager.modalDom = undefined;\r\n }\r\n removeClass(modalDom, 'v-modal-leave');\r\n }, 200);\r\n }\r\n }\r\n};\r\n\r\nconst getTopPopup = function() {\r\n if (Vue.prototype.$isServer) return;\r\n if (PopupManager.modalStack.length > 0) {\r\n const topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\r\n if (!topPopup) return;\r\n const instance = PopupManager.getInstance(topPopup.id);\r\n\r\n return instance;\r\n }\r\n};\r\n\r\nif (!Vue.prototype.$isServer) {\r\n // handle `esc` key when the popup is shown\r\n window.addEventListener('keydown', function(event) {\r\n if (event.keyCode === 27) {\r\n const topPopup = getTopPopup();\r\n\r\n if (topPopup && topPopup.closeOnPressEscape) {\r\n topPopup.handleClose\r\n ? topPopup.handleClose()\r\n : (topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close());\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport default PopupManager;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/popup/popup-manager.js","/* Modified from https://github.com/sdecima/javascript-detect-element-resize\r\n * version: 0.5.3\r\n *\r\n * The MIT License (MIT)\r\n *\r\n * Copyright (c) 2013 Sebastián Décima\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\r\n * this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to\r\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r\n * the Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n *\r\n */\r\nconst isServer = typeof window === 'undefined';\r\n\r\n/* istanbul ignore next */\r\nconst requestFrame = (function() {\r\n if (isServer) return;\r\n const raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||\r\n function(fn) {\r\n return window.setTimeout(fn, 20);\r\n };\r\n return function(fn) {\r\n return raf(fn);\r\n };\r\n})();\r\n\r\n/* istanbul ignore next */\r\nconst cancelFrame = (function() {\r\n if (isServer) return;\r\n const cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\r\n return function(id) {\r\n return cancel(id);\r\n };\r\n})();\r\n\r\n/* istanbul ignore next */\r\nconst resetTrigger = function(element) {\r\n const trigger = element.__resizeTrigger__;\r\n const expand = trigger.firstElementChild;\r\n const contract = trigger.lastElementChild;\r\n const expandChild = expand.firstElementChild;\r\n\r\n contract.scrollLeft = contract.scrollWidth;\r\n contract.scrollTop = contract.scrollHeight;\r\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\r\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\r\n expand.scrollLeft = expand.scrollWidth;\r\n expand.scrollTop = expand.scrollHeight;\r\n};\r\n\r\n/* istanbul ignore next */\r\nconst checkTriggers = function(element) {\r\n return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;\r\n};\r\n\r\n/* istanbul ignore next */\r\nconst scrollListener = function(event) {\r\n resetTrigger(this);\r\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\r\n this.__resizeRAF__ = requestFrame(() => {\r\n if (checkTriggers(this)) {\r\n this.__resizeLast__.width = this.offsetWidth;\r\n this.__resizeLast__.height = this.offsetHeight;\r\n this.__resizeListeners__.forEach((fn) => {\r\n fn.call(this, event);\r\n });\r\n }\r\n });\r\n};\r\n\r\n/* Detect CSS Animations support to detect element display/re-attach */\r\nconst attachEvent = isServer ? {} : document.attachEvent;\r\nconst DOM_PREFIXES = 'Webkit Moz O ms'.split(' ');\r\nconst START_EVENTS = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' ');\r\nconst RESIZE_ANIMATION_NAME = 'resizeanim';\r\nlet animation = false;\r\nlet keyFramePrefix = '';\r\nlet animationStartEvent = 'animationstart';\r\n\r\n/* istanbul ignore next */\r\nif (!attachEvent && !isServer) {\r\n const testElement = document.createElement('fakeelement');\r\n if (testElement.style.animationName !== undefined) {\r\n animation = true;\r\n }\r\n\r\n if (animation === false) {\r\n let prefix = '';\r\n for (var i = 0; i < DOM_PREFIXES.length; i++) {\r\n if (testElement.style[DOM_PREFIXES[i] + 'AnimationName'] !== undefined) {\r\n prefix = DOM_PREFIXES[i];\r\n keyFramePrefix = '-' + prefix.toLowerCase() + '-';\r\n animationStartEvent = START_EVENTS[i];\r\n animation = true;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nlet stylesCreated = false;\r\n/* istanbul ignore next */\r\nconst createStyles = function() {\r\n if (!stylesCreated && !isServer) {\r\n const animationKeyframes = `@${keyFramePrefix}keyframes ${RESIZE_ANIMATION_NAME} { from { opacity: 0; } to { opacity: 0; } } `;\r\n const animationStyle = `${keyFramePrefix}animation: 1ms ${RESIZE_ANIMATION_NAME};`;\r\n\r\n // opacity: 0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\r\n const css = `${animationKeyframes}\r\n .resize-triggers { ${animationStyle} visibility: hidden; opacity: 0; }\r\n .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1 }\r\n .resize-triggers > div { background: #eee; overflow: auto; }\r\n .contract-trigger:before { width: 200%; height: 200%; }`;\r\n\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n\r\n style.type = 'text/css';\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = css;\r\n } else {\r\n style.appendChild(document.createTextNode(css));\r\n }\r\n\r\n head.appendChild(style);\r\n stylesCreated = true;\r\n }\r\n};\r\n\r\n/* istanbul ignore next */\r\nexport const addResizeListener = function(element, fn) {\r\n if (isServer) return;\r\n if (attachEvent) {\r\n element.attachEvent('onresize', fn);\r\n } else {\r\n if (!element.__resizeTrigger__) {\r\n if (getComputedStyle(element).position === 'static') {\r\n element.style.position = 'relative';\r\n }\r\n createStyles();\r\n element.__resizeLast__ = {};\r\n element.__resizeListeners__ = [];\r\n\r\n const resizeTrigger = element.__resizeTrigger__ = document.createElement('div');\r\n resizeTrigger.className = 'resize-triggers';\r\n resizeTrigger.innerHTML = '
';\r\n element.appendChild(resizeTrigger);\r\n\r\n resetTrigger(element);\r\n element.addEventListener('scroll', scrollListener, true);\r\n\r\n /* Listen for a css animation to detect element display/re-attach */\r\n if (animationStartEvent) {\r\n resizeTrigger.addEventListener(animationStartEvent, function(event) {\r\n if (event.animationName === RESIZE_ANIMATION_NAME) {\r\n resetTrigger(element);\r\n }\r\n });\r\n }\r\n }\r\n element.__resizeListeners__.push(fn);\r\n }\r\n};\r\n\r\n/* istanbul ignore next */\r\nexport const removeResizeListener = function(element, fn) {\r\n if (attachEvent) {\r\n element.detachEvent('onresize', fn);\r\n } else {\r\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\r\n if (!element.__resizeListeners__.length) {\r\n element.removeEventListener('scroll', scrollListener);\r\n element.__resizeTrigger__ = !element.removeChild(element.__resizeTrigger__);\r\n }\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/resize-event.js","import Vue from 'vue';\r\n\r\nlet scrollBarWidth;\r\n\r\nexport default function() {\r\n if (Vue.prototype.$isServer) return 0;\r\n if (scrollBarWidth !== undefined) return scrollBarWidth;\r\n\r\n const outer = document.createElement('div');\r\n outer.className = 'el-scrollbar__wrap';\r\n outer.style.visibility = 'hidden';\r\n outer.style.width = '100px';\r\n outer.style.position = 'absolute';\r\n outer.style.top = '-9999px';\r\n document.body.appendChild(outer);\r\n\r\n const widthNoScroll = outer.offsetWidth;\r\n outer.style.overflow = 'scroll';\r\n\r\n const inner = document.createElement('div');\r\n inner.style.width = '100%';\r\n outer.appendChild(inner);\r\n\r\n const widthWithScroll = inner.offsetWidth;\r\n outer.parentNode.removeChild(outer);\r\n scrollBarWidth = widthNoScroll - widthWithScroll;\r\n\r\n return scrollBarWidth;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/scrollbar-width.js","const hasOwnProperty = Object.prototype.hasOwnProperty;\r\nexport function hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n};\r\n\r\nfunction extend(to, _from) {\r\n for (let key in _from) {\r\n to[key] = _from[key];\r\n }\r\n return to;\r\n};\r\n\r\nexport function toObject(arr) {\r\n var res = {};\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i]) {\r\n extend(res, arr[i]);\r\n }\r\n }\r\n return res;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/util.js","import Vue from 'vue';\r\nimport {\r\n PopupManager\r\n} from './popup';\r\n\r\nconst PopperJS = Vue.prototype.$isServer ? function() {} : require('./popper');\r\nconst stop = e => e.stopPropagation();\r\n\r\n/**\r\n * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.\r\n * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.\r\n * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)\r\n * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).\r\n * @param {Boolean} [visible=false] Visibility of the popup element.\r\n * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.\r\n */\r\nexport default {\r\n props: {\r\n placement: {\r\n type: String,\r\n default: 'bottom'\r\n },\r\n boundariesPadding: {\r\n type: Number,\r\n default: 5\r\n },\r\n reference: {},\r\n popper: {},\r\n offset: {\r\n default: 0\r\n },\r\n value: Boolean,\r\n visibleArrow: Boolean,\r\n transition: String,\r\n appendToBody: {\r\n type: Boolean,\r\n default: true\r\n },\r\n popperOptions: {\r\n type: Object,\r\n default() {\r\n return {\r\n gpuAcceleration: false\r\n };\r\n }\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n showPopper: false,\r\n currentPlacement: ''\r\n };\r\n },\r\n\r\n watch: {\r\n value: {\r\n immediate: true,\r\n handler(val) {\r\n this.showPopper = val;\r\n this.$emit('input', val);\r\n }\r\n },\r\n\r\n showPopper(val) {\r\n val ? this.updatePopper() : this.destroyPopper();\r\n this.$emit('input', val);\r\n }\r\n },\r\n\r\n methods: {\r\n createPopper() {\r\n if (this.$isServer) return;\r\n this.currentPlacement = this.currentPlacement || this.placement;\r\n if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {\r\n return;\r\n }\r\n\r\n const options = this.popperOptions;\r\n const popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;\r\n let reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;\r\n\r\n if (!reference &&\r\n this.$slots.reference &&\r\n this.$slots.reference[0]) {\r\n reference = this.referenceElm = this.$slots.reference[0].elm;\r\n }\r\n\r\n if (!popper || !reference) return;\r\n if (this.visibleArrow) this.appendArrow(popper);\r\n if (this.appendToBody) document.body.appendChild(this.popperElm);\r\n if (this.popperJS && this.popperJS.destroy) {\r\n this.popperJS.destroy();\r\n }\r\n\r\n options.placement = this.currentPlacement;\r\n options.offset = this.offset;\r\n this.popperJS = new PopperJS(reference, popper, options);\r\n this.popperJS.onCreate(_ => {\r\n this.$emit('created', this);\r\n this.resetTransformOrigin();\r\n this.$nextTick(this.updatePopper);\r\n });\r\n if (typeof options.onUpdate === 'function') {\r\n this.popperJS.onUpdate(options.onUpdate);\r\n }\r\n this.popperJS._popper.style.zIndex = PopupManager.nextZIndex();\r\n this.popperElm.addEventListener('click', stop);\r\n },\r\n\r\n updatePopper() {\r\n this.popperJS ? this.popperJS.update() : this.createPopper();\r\n },\r\n\r\n doDestroy() {\r\n /* istanbul ignore if */\r\n if (this.showPopper || !this.popperJS) return;\r\n this.popperJS.destroy();\r\n this.popperJS = null;\r\n },\r\n\r\n destroyPopper() {\r\n if (this.popperJS) {\r\n this.resetTransformOrigin();\r\n }\r\n },\r\n\r\n resetTransformOrigin() {\r\n let placementMap = {\r\n top: 'bottom',\r\n bottom: 'top',\r\n left: 'right',\r\n right: 'left'\r\n };\r\n let placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];\r\n let origin = placementMap[placement];\r\n this.popperJS._popper.style.transformOrigin = ['top', 'bottom'].indexOf(placement) > -1 ? `center ${ origin }` : `${ origin } center`;\r\n },\r\n\r\n appendArrow(element) {\r\n let hash;\r\n if (this.appended) {\r\n return;\r\n }\r\n\r\n this.appended = true;\r\n\r\n for (let item in element.attributes) {\r\n if (/^_v-/.test(element.attributes[item].name)) {\r\n hash = element.attributes[item].name;\r\n break;\r\n }\r\n }\r\n\r\n const arrow = document.createElement('div');\r\n\r\n if (hash) {\r\n arrow.setAttribute(hash, '');\r\n }\r\n arrow.setAttribute('x-arrow', '');\r\n arrow.className = 'popper__arrow';\r\n element.appendChild(arrow);\r\n }\r\n },\r\n\r\n beforeDestroy() {\r\n this.doDestroy();\r\n if (this.popperElm && this.popperElm.parentNode === document.body) {\r\n this.popperElm.removeEventListener('click', stop);\r\n document.body.removeChild(this.popperElm);\r\n }\r\n },\r\n\r\n // call destroy in keep-alive mode\r\n deactivated() {\r\n this.$options.beforeDestroy[0].call(this);\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/vue-popper.js","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#app {\\n margin: 60px auto;\\n}\\n.newTagInput {\\n width: 72px;\\n height: 24px;\\n font-size: 12px;\\n}\\n.newTagInput::placeholder {\\n color: #666;\\n}\\n.tagclass {\\n margin-right: 10px;\\n}\\n.input-demo__item {\\n width: 1000px;\\n margin: 0 auto;\\n}\\n.input-demo__item h2,\\n.input-demo__item h3 {\\n font-weight: 400;\\n color: #1f2f3d;\\n}\\n.input-demo__item h2 {\\n font-size: 28px;\\n margin: 0;\\n}\\n.input-demo__item h3 {\\n font-size: 22px;\\n margin: 45px 0 15px;\\n}\\n.input-demo__item h3 :hover a,\\n.input-demo__item h2 :hover a {\\n opacity: .4;\\n}\\n.input-demo__item h3 a,\\n.input-demo__item h2 a {\\n float: left;\\n margin-left: -20px;\\n opacity: 0;\\n cursor: pointer;\\n color: #4078c0;\\n text-decoration: none;\\n}\\n.input-demo__item h3 a :hover,\\n.input-demo__item h2 a :hover {\\n opacity: .4;\\n}\\n.input-demo__item p {\\n font-size: 14px;\\n color: #5e6d82;\\n line-height: 1.5em;\\n}\\n.input-demo__item p a {\\n color: #2d8cf0;\\n background: 0 0;\\n text-decoration: none;\\n outline: 0;\\n cursor: pointer;\\n transition: color .2s ease;\\n}\\n.input-demo__item p a :hover {\\n color: #57a3f3;\\n}\\n.input-demo__item .new {\\n font-style: normal;\\n color: #FF4949;\\n}\\n.input-demo__item .new code {\\n background-color: #FF4949 !important;\\n color: #fff !important;\\n}\\n.input-demo__item .table {\\n border-collapse: collapse;\\n width: 100%;\\n background-color: #fff;\\n color: #5e6d82;\\n font-size: 14px;\\n margin-bottom: 45px;\\n line-height: 1.5em;\\n}\\n.input-demo__item .table th {\\n text-align: left;\\n border-top: 1px solid #eaeefb;\\n background-color: #eff2f7;\\n white-space: nowrap;\\n}\\n.input-demo__item .table th,\\n.input-demo__item .table td {\\n border-bottom: 1px solid #eaeefb;\\n padding: 10px;\\n max-width: 250px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/vue-loader/lib/style-compiler?{\"vue\":true,\"id\":\"data-v-0ccf60ac\",\"scoped\":false,\"hasInlineConfig\":false}!./~/less-loader/dist/cjs.js!./~/vue-loader/lib/selector.js?type=styles&index=0!./example/src/App.vue\n// module id = 29\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 30\n// module chunks = 0","'use strict';\n\nvar index$2 = function isMergeableObject(value) {\n\treturn isNonNullObject(value) && isNotSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isNotSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue !== '[object RegExp]'\n\t\t&& stringValue !== '[object Date]'\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && index$2(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (index$2(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (index$2(target)) {\n Object.keys(target).forEach(function(key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function(key) {\n if (!index$2(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneIfNecessary(source, optionsArgument)\n } else if (sourceIsArray) {\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n return arrayMerge(target, source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nvar index = deepmerge;\n\nmodule.exports = index;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deepmerge/dist/cjs.js\n// module id = 31\n// module chunks = 0","/* eslint-disable no-undefined */\n\nvar throttle = require('./throttle');\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} atBegin Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\nmodule.exports = function ( delay, atBegin, callback ) {\n\treturn callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/throttle-debounce/debounce.js\n// module id = 33\n// module chunks = 0","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} noTrailing Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} debounceMode If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nmodule.exports = function ( delay, noTrailing, callback, debounceMode ) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif ( typeof noTrailing !== 'boolean' ) {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper () {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec () {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear () {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif ( debounceMode && !timeoutID ) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif ( timeoutID ) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif ( debounceMode === undefined && elapsed > delay ) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\n\t\t} else if ( noTrailing !== true ) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/throttle-debounce/throttle.js\n// module id = 34\n// module chunks = 0","var disposed = false\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Select.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5e9b7105\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Select.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\nComponent.options.__file = \"F:\\\\github-workspace\\\\select\\\\src\\\\components\\\\Select.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== \"default\" && key.substr(0, 2) !== \"__\"})) {console.error(\"named exports are not supported in *.vue files.\")}\nif (Component.options.functional) {console.error(\"[vue-loader] Select.vue: functional components are not supported with templates, they should use render functions.\")}\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-5e9b7105\", Component.options)\n } else {\n hotAPI.reload(\"data-v-5e9b7105\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Select.vue\n// module id = 35\n// module chunks = 0","var disposed = false\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./option-group.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-cb670e60\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./option-group.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\nComponent.options.__file = \"F:\\\\github-workspace\\\\select\\\\src\\\\components\\\\option-group.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== \"default\" && key.substr(0, 2) !== \"__\"})) {console.error(\"named exports are not supported in *.vue files.\")}\nif (Component.options.functional) {console.error(\"[vue-loader] option-group.vue: functional components are not supported with templates, they should use render functions.\")}\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-cb670e60\", Component.options)\n } else {\n hotAPI.reload(\"data-v-cb670e60\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/option-group.vue\n// module id = 36\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('demonstration', {\n attrs: {\n \"tag\": \"h2\",\n \"title\": \"Select 选择器\",\n \"description\": \"当选项过多时,使用下拉菜单展示并选择内容。\",\n \"show-content\": false\n }\n }), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"基础用法\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode1\n }\n }, [_c('template', {\n slot: \"description\"\n }), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value1),\n callback: function($$v) {\n _vm.value1 = $$v\n },\n expression: \"value1\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n v-model的值为当前被选中的\"), _c('br'), _vm._v(\"\\n vm-option的 value 属性值\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"有禁用选项\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode2\n }\n }, [_c('template', {\n slot: \"description\"\n }), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value2),\n callback: function($$v) {\n _vm.value2 = $$v\n },\n expression: \"value2\"\n }\n }, _vm._l((_vm.options2), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value,\n \"disabled\": item.disabled\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 在vm-option中,设定disabled值为 true,即可禁用该选项\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"禁用状态\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode3\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 选择器不可用状态\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"disabled\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value3),\n callback: function($$v) {\n _vm.value3 = $$v\n },\n expression: \"value3\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value,\n \"disabled\": item.disabled\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select设置disabled属性,则整个选择器不可用\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"可清空单选\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode4\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 包含清空按钮,可将选择器清空为初始状态\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"clearable\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value4),\n callback: function($$v) {\n _vm.value4 = $$v\n },\n expression: \"value4\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select设置clearable属性,则可将选择器清空。需要注意的是,clearable属性仅适用于单选。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"基础多选\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode5\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 适用性较广的基础多选,用 Tag 展示已选项\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"multiple\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value5),\n callback: function($$v) {\n _vm.value5 = $$v\n },\n expression: \"value5\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select设置multiple属性即可启用多选,此时v-model的值为当前选中值所组成的数组\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"自定义模板\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode6\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 可以自定义备选项\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value6),\n callback: function($$v) {\n _vm.value6 = $$v\n },\n expression: \"value6\"\n }\n }, _vm._l((_vm.cities), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n }, [_c('span', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_vm._v(_vm._s(item.label))]), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"float\": \"right\",\n \"color\": \"#8492a6\",\n \"font-size\": \"13px\"\n }\n }, [_vm._v(_vm._s(item.value))])])\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 将自定义的 HTML 模板插入vm-option的 slot 中即可。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"分组\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode7\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 备选项进行分组展示\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value7),\n callback: function($$v) {\n _vm.value7 = $$v\n },\n expression: \"value7\"\n }\n }, _vm._l((_vm.options3), function(group) {\n return _c('vm-option-group', {\n key: group.label,\n attrs: {\n \"label\": group.label\n }\n }, _vm._l((group.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 使用vm-option-group对备选项进行分组,它的label属性为分组名\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"可搜索\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode8\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 可以利用搜索功能快速查找选项\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"filterable\": \"\",\n \"placeholder\": \"请选择\"\n },\n model: {\n value: (_vm.value8),\n callback: function($$v) {\n _vm.value8 = $$v\n },\n expression: \"value8\"\n }\n }, _vm._l((_vm.options), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为vm-select添加filterable属性即可启用搜索功能。默认情况下,Select 会找出所有label属性包含输入值的选项。如果希望使用其他的搜索逻辑,可以通过传入一个filter-method来实现。filter-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"远程搜索\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode9\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 从服务器搜索数据,输入关键字进行查找\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"remote\": \"\",\n \"placeholder\": \"请输入关键词\",\n \"remote-method\": _vm.remoteMethod,\n \"loading\": _vm.loading\n },\n model: {\n value: (_vm.value9),\n callback: function($$v) {\n _vm.value9 = $$v\n },\n expression: \"value9\"\n }\n }, _vm._l((_vm.options4), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 为了启用远程搜索,需要将filterable和remote设置为true,同时传入一个remote-method。remote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。需要注意的是,如果vm-option是通过v-for指令渲染出来的,此时需要为vm-option添加key属性,且其值需具有唯一性,比如此例中的item.value。\\n \")])], 2), _vm._v(\" \"), _c('demonstration', {\n attrs: {\n \"title\": \"创建条目\",\n \"anchor\": \"demo-code-title\",\n \"highlight\": _vm.sourcecode10\n }\n }, [_c('template', {\n slot: \"description\"\n }, [_vm._v(\"\\n 可以创建并选中选项中不存在的条目\\n \")]), _vm._v(\" \"), _c('template', {\n slot: \"source\"\n }, [_c('div', {\n staticClass: \"source\"\n }, [_c('vm-select', {\n attrs: {\n \"multiple\": \"\",\n \"filterable\": \"\",\n \"allow-create\": \"\",\n \"placeholder\": \"请选择文章标签\"\n },\n model: {\n value: (_vm.value10),\n callback: function($$v) {\n _vm.value10 = $$v\n },\n expression: \"value10\"\n }\n }, _vm._l((_vm.options5), function(item) {\n return _c('vm-option', {\n key: item.value,\n attrs: {\n \"label\": item.label,\n \"value\": item.value\n }\n })\n }))], 1)]), _vm._v(\" \"), _c('template', {\n slot: \"explanation\"\n }, [_vm._v(\"\\n 使用 allow-create 属性即可通过在输入框中输入文字来创建新的条目。注意此时 filterable 必须为真。\\n \")])], 2), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _vm._m(2), _vm._v(\" \"), _vm._m(3)], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"attributes\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#attributes\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Select Attributes\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"参数\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"类型\")]), _vm._v(\" \"), _c('th', [_vm._v(\"可选值\")]), _vm._v(\" \"), _c('th', [_vm._v(\"默认值\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"multiple\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否多选\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"disabled\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否禁用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"value-key\")]), _vm._v(\" \"), _c('td', [_vm._v(\"作为 value 唯一标识的键名,绑定值为对象类型时必填\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"value\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"inputheight\")]), _vm._v(\" \"), _c('td', [_vm._v(\"当为多选时,可通过inputheight 修改 Select input框的高度\")]), _vm._v(\" \"), _c('td', [_vm._v(\"number\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"36\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"inputclass\")]), _vm._v(\" \"), _c('td', [_vm._v(\"Select input框的类名,当为多选时,无法改变高度,高度只能通过inputheight属性设置\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"clearable\")]), _vm._v(\" \"), _c('td', [_vm._v(\"单选时是否可以清空选项\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"multiple-limit\")]), _vm._v(\" \"), _c('td', [_vm._v(\"多选时用户最多可以选择的项目数,为 0 则不限制\")]), _vm._v(\" \"), _c('td', [_vm._v(\"number\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"0\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"name\")]), _vm._v(\" \"), _c('td', [_vm._v(\"select input 的 name 属性\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"placeholder\")]), _vm._v(\" \"), _c('td', [_vm._v(\"占位符\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"请选择\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"filterable\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否可搜索\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"allow-create\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否允许用户创建新条目,需配合 filterable 使用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"filter-method\")]), _vm._v(\" \"), _c('td', [_vm._v(\"自定义过滤方法\")]), _vm._v(\" \"), _c('td', [_vm._v(\"function\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"remote\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否为远程搜索\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"remote-method\")]), _vm._v(\" \"), _c('td', [_vm._v(\"远程搜索方法\")]), _vm._v(\" \"), _c('td', [_vm._v(\"function\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"loading\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否正在从远程获取数据\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"loading-text\")]), _vm._v(\" \"), _c('td', [_vm._v(\"远程加载时显示的文字\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"加载中\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"no-match-text\")]), _vm._v(\" \"), _c('td', [_vm._v(\"搜索条件无匹配时显示的文字\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"无匹配数据\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"no-data-text\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选项为空时显示的文字\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"无数据\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"popper-class\")]), _vm._v(\" \"), _c('td', [_vm._v(\"Select 下拉框的类名\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"default-first-option\")]), _vm._v(\" \"), _c('td', [_vm._v(\"在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"event\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#event\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Select Events\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"事件名称\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"回调参数\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"change\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选中值发生变化时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"目前的选中值\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"visible-change\")]), _vm._v(\" \"), _c('td', [_vm._v(\"下拉框出现/隐藏时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"出现则为 true,隐藏则为 false\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"remove-tag\")]), _vm._v(\" \"), _c('td', [_vm._v(\"多选模式下移除tag时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"移除的tag值\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"clear\")]), _vm._v(\" \"), _c('td', [_vm._v(\"可清空的单选模式下用户点击清空按钮时触发\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"optionGroupAttributes\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#optionGroupAttributes\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Option Group Attributes\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"参数\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"类型\")]), _vm._v(\" \"), _c('th', [_vm._v(\"可选值\")]), _vm._v(\" \"), _c('th', [_vm._v(\"默认值\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"label\")]), _vm._v(\" \"), _c('td', [_vm._v(\"分组的组名\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"disabled\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否将该分组下所有选项置为禁用\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"input-demo__item\"\n }, [_c('h3', {\n attrs: {\n \"id\": \"optionAttributes\"\n }\n }, [_c('a', {\n staticClass: \"header-anchor\",\n attrs: {\n \"href\": \"./#optionAttributes\",\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"¶\")]), _vm._v(\"\\n Option Attributes\\n \")]), _vm._v(\" \"), _c('table', {\n staticClass: \"table\"\n }, [_c('thead', [_c('th', [_vm._v(\"参数\")]), _vm._v(\" \"), _c('th', [_vm._v(\"说明\")]), _vm._v(\" \"), _c('th', [_vm._v(\"类型\")]), _vm._v(\" \"), _c('th', [_vm._v(\"可选值\")]), _vm._v(\" \"), _c('th', [_vm._v(\"默认值\")])]), _vm._v(\" \"), _c('tbody', [_c('tr', [_c('td', [_vm._v(\"value\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选项的值\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string/number/object\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"label\")]), _vm._v(\" \"), _c('td', [_vm._v(\"选项的标签,若不设置则默认与 value 相同\")]), _vm._v(\" \"), _c('td', [_vm._v(\"string/number\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")])]), _vm._v(\" \"), _c('tr', [_c('td', [_vm._v(\"disabled\")]), _vm._v(\" \"), _c('td', [_vm._v(\"是否禁用该选项\")]), _vm._v(\" \"), _c('td', [_vm._v(\"boolean\")]), _vm._v(\" \"), _c('td', [_vm._v(\"—\")]), _vm._v(\" \"), _c('td', [_vm._v(\"false\")])])])])])\n}]}\nmodule.exports.render._withStripped = true\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-0ccf60ac\", module.exports)\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0ccf60ac\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./example/src/App.vue\n// module id = 37\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"vm-select-dropdown\",\n class: [{\n 'multiple': _vm.$parent.multiple\n }, _vm.popperClass],\n style: ({\n minWidth: _vm.minWidth\n })\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-4b8e0f29\", module.exports)\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4b8e0f29\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/select-dropdown.vue\n// module id = 38\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"clickoutside\",\n rawName: \"v-clickoutside\",\n value: (_vm.handleClose),\n expression: \"handleClose\"\n }],\n staticClass: \"vm-select\"\n }, [(_vm.multiple) ? _c('div', {\n ref: \"tags\",\n staticClass: \"vm-select__tags\",\n style: ({\n 'max-width': _vm.inputWidth - 32 + 'px'\n }),\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.toggleMenu($event)\n }\n }\n }, [_c('transition-group', {\n on: {\n \"after-leave\": _vm.resetInputHeight\n }\n }, _vm._l((_vm.selected), function(item) {\n return _c('vm-tag', {\n key: item.value,\n attrs: {\n \"closable\": true,\n \"hit\": item.hitState,\n \"type\": \"primary\",\n \"close-transition\": \"\"\n },\n on: {\n \"close\": function($event) {\n _vm.deleteTag($event, item)\n }\n }\n }, [_c('span', {\n staticClass: \"vm-select__tags-text\"\n }, [_vm._v(_vm._s(item.currentLabel))])])\n })), _vm._v(\" \"), (_vm.filterable) ? _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.query),\n expression: \"query\"\n }],\n ref: \"input\",\n staticClass: \"vm-select__input\",\n style: ({\n width: _vm.inputLength + 'px',\n 'max-width': _vm.inputWidth - 42 + 'px',\n height: _vm.inputheight + 'px'\n }),\n attrs: {\n \"type\": \"text\",\n \"disabled\": _vm.disabled,\n \"debounce\": _vm.remote ? 300 : 0\n },\n domProps: {\n \"value\": (_vm.query)\n },\n on: {\n \"focus\": function($event) {\n _vm.visible = true\n },\n \"keyup\": _vm.managePlaceholder,\n \"keydown\": [_vm.resetInputState, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('next')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('prev')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n $event.preventDefault();\n _vm.selectOption($event)\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"esc\", 27)) { return null; }\n $event.stopPropagation();\n $event.preventDefault();\n _vm.visible = false\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"delete\", [8, 46])) { return null; }\n _vm.deletePrevTag($event)\n }],\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.query = $event.target.value\n }\n }\n }) : _vm._e()], 1) : _vm._e(), _vm._v(\" \"), _c('vm-input', {\n ref: \"reference\",\n attrs: {\n \"type\": \"text\",\n \"placeholder\": _vm.currentPlaceholder,\n \"name\": _vm.name,\n \"inputclass\": (_vm.inputclass + \" vm-select-input__inner\"),\n \"disabled\": _vm.disabled,\n \"readonly\": !_vm.filterable || _vm.multiple,\n \"validate-event\": false,\n \"icon\": _vm.iconClass\n },\n on: {\n \"focus\": _vm.handleFocus,\n \"click\": _vm.handleIconClick\n },\n nativeOn: {\n \"mousedown\": function($event) {\n _vm.handleMouseDown($event)\n },\n \"keyup\": function($event) {\n _vm.debouncedOnInputChange($event)\n },\n \"keydown\": [function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"down\", 40)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('next')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"up\", 38)) { return null; }\n $event.preventDefault();\n _vm.navigateOptions('prev')\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n $event.preventDefault();\n _vm.selectOption($event)\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"esc\", 27)) { return null; }\n $event.stopPropagation();\n $event.preventDefault();\n _vm.visible = false\n }, function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"tab\", 9)) { return null; }\n _vm.visible = false\n }],\n \"paste\": function($event) {\n _vm.debouncedOnInputChange($event)\n },\n \"mouseenter\": function($event) {\n _vm.inputHovering = true\n },\n \"mouseleave\": function($event) {\n _vm.inputHovering = false\n }\n },\n model: {\n value: (_vm.selectedLabel),\n callback: function($$v) {\n _vm.selectedLabel = $$v\n },\n expression: \"selectedLabel\"\n }\n }), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": \"vm-zoom-in-top\"\n },\n on: {\n \"after-leave\": _vm.doDestroy,\n \"after-enter\": _vm.handleMenuEnter\n }\n }, [_c('vm-select-menu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.visible && _vm.emptyText !== false),\n expression: \"visible && emptyText !== false\"\n }],\n ref: \"popper\"\n }, [_c('vm-scrollbar', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.options.length > 0 && !_vm.loading),\n expression: \"options.length > 0 && !loading\"\n }],\n class: {\n 'is-empty': !_vm.allowCreate && _vm.filteredOptionsCount === 0\n },\n attrs: {\n \"tag\": \"ul\",\n \"wrap-class\": \"vm-select-dropdown__wrap\",\n \"view-class\": \"vm-select-dropdown__list\"\n }\n }, [(_vm.showNewOption) ? _c('vm-option', {\n attrs: {\n \"value\": _vm.query,\n \"created\": \"\"\n }\n }) : _vm._e(), _vm._v(\" \"), _vm._t(\"default\")], 2), _vm._v(\" \"), (_vm.emptyText && (_vm.allowCreate && _vm.options.length === 0 || !_vm.allowCreate)) ? _c('p', {\n staticClass: \"vm-select-dropdown__empty\"\n }, [_vm._v(_vm._s(_vm.emptyText))]) : _vm._e()], 1)], 1)], 1)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-5e9b7105\", module.exports)\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-5e9b7105\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Select.vue\n// module id = 39\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.visible),\n expression: \"visible\"\n }],\n staticClass: \"vm-select-dropdown__item\",\n class: {\n 'selected': _vm.itemSelected,\n 'disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n 'hover': _vm.parent.hoverIndex === _vm.index\n },\n on: {\n \"mouseenter\": _vm.hoverItem,\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.selectOptionClick($event)\n }\n }\n }, [_vm._t(\"default\", [_c('span', [_vm._v(_vm._s(_vm.currentLabel))])])], 2)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-c746f844\", module.exports)\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-c746f844\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/option.vue\n// module id = 40\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('ul', {\n staticClass: \"vm-select-group__wrap\"\n }, [_c('li', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.visible),\n expression: \"visible\"\n }],\n staticClass: \"vm-select-group__title\"\n }, [_vm._v(_vm._s(_vm.label))]), _vm._v(\" \"), _c('li', [_c('ul', {\n staticClass: \"vm-select-group\"\n }, [_vm._t(\"default\")], 2)])])\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-cb670e60\", module.exports)\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-cb670e60\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/option-group.vue\n// module id = 41\n// module chunks = 0","!function(n,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.input=e():n.input=e()}(this,function(){return function(n){function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var t={};return e.m=n,e.c=t,e.i=function(n){return n},e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:r})},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,\"a\",t),t},e.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},e.p=\"\",e(e.s=4)}([function(n,e,t){var r=t(7);\"string\"==typeof r&&(r=[[n.i,r,\"\"]]);var o={};o.transform=void 0;t(9)(r,o);r.locals&&(n.exports=r.locals)},function(n,e,t){var r=t(11)(t(2),t(12),null,null,null);r.options.__file=\"F:\\\\github-workspace\\\\input\\\\src\\\\components\\\\Input.vue\",r.esModule&&Object.keys(r.esModule).some(function(n){return\"default\"!==n&&\"__\"!==n.substr(0,2)})&&console.error(\"named exports are not supported in *.vue files.\"),r.options.functional&&console.error(\"[vue-loader] Input.vue: functional components are not supported with templates, they should use render functions.\"),n.exports=r.exports},function(n,e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=t(5),o=t(3),i=t(6);e.default={name:\"VmInput\",componentName:\"VmInput\",mixins:[r.a],data:function(){return{currentValue:this.value,textareaCalcStyle:{}}},props:{value:[String,Number],placeholder:String,resize:String,readonly:Boolean,autowidth:Boolean,autofocus:Boolean,icon:String,disabled:Boolean,inputclass:String,type:{type:String,default:\"text\"},name:String,autosize:{type:[Boolean,Object],default:!1},rows:{type:Number,default:2},autoComplete:{type:String,default:\"off\"},form:String,maxlength:Number,minlength:Number,max:{},min:{},step:{},onIconClick:Function},computed:{inputStyle:function(){var n={};return this.autowidth&&(n.width=\"100%\"),n},textareaStyle:function(){return t.i(i.a)({},this.textareaCalcStyle,{resize:this.resize})}},watch:{value:function(n,e){this.setCurrentValue(n)}},methods:{handleBlur:function(n){this.$emit(\"blur\",n)},inputSelect:function(){this.$refs.input.select()},resizeTextarea:function(){if(!this.$isServer){var n=this.autosize,e=this.type;if(n&&\"textarea\"===e){var r=n.minRows,i=n.maxRows;this.textareaCalcStyle=t.i(o.a)(this.$refs.textarea,r,i)}}},handleFocus:function(n){this.$emit(\"focus\",n)},handleInput:function(n){var e=n.target.value;this.$emit(\"input\",e),this.setCurrentValue(e),this.$emit(\"change\",e)},handleIconClick:function(n){this.onIconClick&&this.onIconClick(n),this.$emit(\"click\",n)},handleEnter:function(n){this.$emit(\"enter\",n)},setCurrentValue:function(n){var e=this;n!==this.currentValue&&(this.$nextTick(function(n){e.resizeTextarea()}),this.currentValue=n)}},created:function(){},mounted:function(){this.resizeTextarea()}}},function(n,e,t){\"use strict\";function r(n){var e=window.getComputedStyle(n),t=e.getPropertyValue(\"box-sizing\"),r=parseFloat(e.getPropertyValue(\"padding-bottom\"))+parseFloat(e.getPropertyValue(\"padding-top\")),o=parseFloat(e.getPropertyValue(\"border-bottom-width\"))+parseFloat(e.getPropertyValue(\"border-top-width\"));return{contextStyle:s.map(function(n){return n+\":\"+e.getPropertyValue(n)}).join(\";\"),paddingSize:r,borderSize:o,boxSizing:t}}function o(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;i||(i=document.createElement(\"textarea\"),document.body.appendChild(i));var o=r(n),s=o.paddingSize,u=o.borderSize,l=o.boxSizing,c=o.contextStyle;i.setAttribute(\"style\",c+\";\"+a),i.value=n.value||n.placeholder||\"\";var p=i.scrollHeight;\"border-box\"===l?p+=u:\"content-box\"===l&&(p-=s),i.value=\"\";var d=i.scrollHeight-s;if(null!==e){var f=d*e;\"border-box\"===l&&(f=f+s+u),p=Math.max(f,p)}if(null!==t){var h=d*t;\"border-box\"===l&&(h=h+s+u),p=Math.min(h,p)}return{height:p+\"px\"}}e.a=o;var i=void 0,a=\"\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important\\n\",s=[\"letter-spacing\",\"line-height\",\"padding-top\",\"padding-bottom\",\"font-family\",\"font-weight\",\"font-size\",\"text-rendering\",\"text-transform\",\"width\",\"text-indent\",\"padding-left\",\"padding-right\",\"border-width\",\"box-sizing\"]},function(n,e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=t(1),o=t.n(r),i=t(0);t.n(i);e.default=o.a},function(n,e,t){\"use strict\";function r(n,e,t){this.$children.forEach(function(o){o.$options.componentName===n?o.$emit.apply(o,[e].concat(t)):r.apply(o,[n,e].concat([t]))})}e.a={methods:{dispatch:function(n,e,t){for(var r=this.$parent||this.$root,o=r.$options.componentName;r&&(!o||o!==n);)(r=r.$parent)&&(o=r.$options.componentName);r&&r.$emit.apply(r,[e].concat(t))},broadcast:function(n,e,t){r.call(this,n,e,t)}}}},function(n,e,t){\"use strict\";e.a=function(n){for(var e=1,t=arguments.length;e
.vm-input__inner {\\n vertical-align: middle;\\n display: table-cell;\\n}\\n.vm-textarea {\\n display: inline-block;\\n width: 100%;\\n vertical-align: bottom;\\n}\\n.vm-textarea__inner {\\n display: block;\\n resize: vertical;\\n padding: 5px 7px;\\n line-height: 1.5;\\n box-sizing: border-box;\\n width: 100%;\\n font-size: 14px;\\n color: #1f2d3d;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #bfcbd9;\\n border-radius: 4px;\\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\\n}\\n.vm-textarea__inner::placeholder {\\n color: #97a8be;\\n}\\n.vm-textarea__inner:hover {\\n border-color: #8391a5;\\n}\\n.vm-textarea__inner:focus {\\n outline: none;\\n border-color: #20a0ff;\\n}\\n.vm-textarea.disabled .vm-textarea__inner {\\n background-color: #eef1f6;\\n border-color: #d1dbe5;\\n color: #bbb;\\n cursor: not-allowed;\\n}\\n.vm-textarea.disabled .vm-textarea__inner::placeholder {\\n color: #bfcbd9;\\n}\\n\",\"\"])},function(n,e){function t(n,e){var t=n[1]||\"\",o=n[3];if(!o)return t;if(e&&\"function\"==typeof btoa){var i=r(o);return[t].concat(o.sources.map(function(n){return\"/*# sourceURL=\"+o.sourceRoot+n+\" */\"})).concat([i]).join(\"\\n\")}return[t].join(\"\\n\")}function r(n){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\"}n.exports=function(n){var e=[];return e.toString=function(){return this.map(function(e){var r=t(e,n);return e[2]?\"@media \"+e[2]+\"{\"+r+\"}\":r}).join(\"\")},e.i=function(n,t){\"string\"==typeof n&&(n=[[null,n,\"\"]]);for(var r={},o=0;o=0&&x.splice(e,1)}function s(n){var e=document.createElement(\"style\");return n.attrs.type=\"text/css\",l(e,n.attrs),i(n,e),e}function u(n){var e=document.createElement(\"link\");return n.attrs.type=\"text/css\",n.attrs.rel=\"stylesheet\",l(e,n.attrs),i(n,e),e}function l(n,e){Object.keys(e).forEach(function(t){n.setAttribute(t,e[t])})}function c(n,e){var t,r,o,i;if(e.transform&&n.css){if(!(i=e.transform(n.css)))return function(){};n.css=i}if(e.singleton){var l=g++;t=m||(m=s(e)),r=p.bind(null,t,l,!1),o=p.bind(null,t,l,!0)}else n.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(t=u(e),r=f.bind(null,t,e),o=function(){a(t),t.href&&URL.revokeObjectURL(t.href)}):(t=s(e),r=d.bind(null,t),o=function(){a(t)});return r(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap)return;r(n=e)}else o()}}function p(n,e,t,r){var o=t?\"\":r.css;if(n.styleSheet)n.styleSheet.cssText=_(e,o);else{var i=document.createTextNode(o),a=n.childNodes;a[e]&&n.removeChild(a[e]),a.length?n.insertBefore(i,a[e]):n.appendChild(i)}}function d(n,e){var t=e.css,r=e.media;if(r&&n.setAttribute(\"media\",r),n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}function f(n,e,t){var r=t.css,o=t.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=y(r)),o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=n.href;n.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var h={},b=function(n){var e;return function(){return void 0===e&&(e=n.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(n){var e={};return function(t){return void 0===e[t]&&(e[t]=n.call(this,t)),e[t]}}(function(n){return document.querySelector(n)}),m=null,g=0,x=[],y=t(10);n.exports=function(n,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},e.attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var t=o(n,e);return r(t,e),function(n){for(var i=[],a=0;a div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1 }\\n .resize-triggers > div { background: #eee; overflow: auto; }\\n .contract-trigger:before { width: 200%; height: 200%; }',i=document.head||document.getElementsByTagName(\"head\")[0],o=document.createElement(\"style\");o.type=\"text/css\",o.styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),i.appendChild(o),_=!0}};t.addResizeListener=function(e,t){if(!n)if(c)e.attachEvent(\"onresize\",t);else{if(!e.__resizeTrigger__){\"static\"===getComputedStyle(e).position&&(e.style.position=\"relative\"),g(),e.__resizeLast__={},e.__resizeListeners__=[];var r=e.__resizeTrigger__=document.createElement(\"div\");r.className=\"resize-triggers\",r.innerHTML='
',e.appendChild(r),s(e),e.addEventListener(\"scroll\",l,!0),p&&r.addEventListener(p,function(t){\"resizeanim\"===t.animationName&&s(e)})}e.__resizeListeners__.push(t)}},t.removeResizeListener=function(e,t){c?e.detachEvent(\"onresize\",t):(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||(e.removeEventListener(\"scroll\",l),e.__resizeTrigger__=!e.removeChild(e.__resizeTrigger__)))}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(){if(i.default.prototype.$isServer)return 0;if(void 0!==o)return o;var e=document.createElement(\"div\");e.className=\"vm-scrollbar__wrap\",e.style.visibility=\"hidden\",e.style.width=\"100px\",e.style.position=\"absolute\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow=\"scroll\";var r=document.createElement(\"div\");r.style.width=\"100%\",e.appendChild(r);var n=r.offsetWidth;return e.parentNode.removeChild(e),o=t-n};var n=r(0),i=function(e){return e&&e.__esModule?e:{default:e}}(n),o=void 0},function(e,t,r){\"use strict\";function n(e,t){return s.call(e,t)}function i(e,t){for(var r in t)e[r]=t[r];return e}function o(e){for(var t={},r=0;r div {\\n width: 100%;\\n}\\n.vm-scrollbar__bar.horizontal {\\n height: 6px;\\n left: 2px;\\n}\\n.vm-scrollbar__bar.horizontal > div {\\n height: 100%;\\n}\\n\",\"\"])},function(e,t){function r(e,t){var r=e[1]||\"\",i=e[3];if(!i)return r;if(t&&\"function\"==typeof btoa){var o=n(i);return[r].concat(i.sources.map(function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"})).concat([o]).join(\"\\n\")}return[r].join(\"\\n\")}function n(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n}).join(\"\")},t.i=function(e,r){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},i=0;i=0&&g.splice(t,1)}function a(e){var t=document.createElement(\"style\");return e.attrs.type=\"text/css\",c(t,e.attrs),o(e,t),t}function l(e){var t=document.createElement(\"link\");return e.attrs.type=\"text/css\",e.attrs.rel=\"stylesheet\",c(t,e.attrs),o(e,t),t}function c(e,t){Object.keys(t).forEach(function(r){e.setAttribute(r,t[r])})}function u(e,t){var r,n,i,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var c=_++;r=b||(b=a(t)),n=f.bind(null,r,c,!1),i=f.bind(null,r,c,!0)}else e.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(r=l(t),n=h.bind(null,r,t),i=function(){s(r),r.href&&URL.revokeObjectURL(r.href)}):(r=a(t),n=d.bind(null,r),i=function(){s(r)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else i()}}function f(e,t,r,n){var i=r?\"\":n.css;if(e.styleSheet)e.styleSheet.cssText=w(t,i);else{var o=document.createTextNode(i),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function d(e,t){var r=t.css,n=t.media;if(n&&e.setAttribute(\"media\",n),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}function h(e,t,r){var n=r.css,i=r.sourceMap,o=void 0===t.convertToAbsoluteUrls&&i;(t.convertToAbsoluteUrls||o)&&(n=y(n)),i&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\");var s=new Blob([n],{type:\"text/css\"}),a=e.href;e.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}var p={},v=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}}(function(){return window&&document&&document.all&&!window.atob}),m=function(e){var t={};return function(r){return void 0===t[r]&&(t[r]=e.call(this,r)),t[r]}}(function(e){return document.querySelector(e)}),b=null,_=0,g=[],y=r(13);e.exports=function(e,t){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");t=t||{},t.attrs=\"object\"==typeof t.attrs?t.attrs:{},t.singleton||(t.singleton=v()),t.insertInto||(t.insertInto=\"head\"),t.insertAt||(t.insertAt=\"bottom\");var r=i(e,t);return n(r,t),function(e){for(var o=[],s=0;s=0&&I.splice(s,1)}function i(A){var s=document.createElement(\"style\");return A.attrs.type=\"text/css\",C(s,A.attrs),r(A,s),s}function g(A){var s=document.createElement(\"link\");return A.attrs.type=\"text/css\",A.attrs.rel=\"stylesheet\",C(s,A.attrs),r(A,s),s}function C(A,s){Object.keys(s).forEach(function(t){A.setAttribute(t,s[t])})}function B(A,s){var t,e,n,r;if(s.transform&&A.css){if(!(r=s.transform(A.css)))return function(){};A.css=r}if(s.singleton){var C=u++;t=l||(l=i(s)),e=w.bind(null,t,C,!1),n=w.bind(null,t,C,!0)}else A.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(t=g(s),e=Q.bind(null,t,s),n=function(){o(t),t.href&&URL.revokeObjectURL(t.href)}):(t=i(s),e=a.bind(null,t),n=function(){o(t)});return e(A),function(s){if(s){if(s.css===A.css&&s.media===A.media&&s.sourceMap===A.sourceMap)return;e(A=s)}else n()}}function w(A,s,t,e){var n=t?\"\":e.css;if(A.styleSheet)A.styleSheet.cssText=f(s,n);else{var r=document.createTextNode(n),o=A.childNodes;o[s]&&A.removeChild(o[s]),o.length?A.insertBefore(r,o[s]):A.appendChild(r)}}function a(A,s){var t=s.css,e=s.media;if(e&&A.setAttribute(\"media\",e),A.styleSheet)A.styleSheet.cssText=t;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(t))}}function Q(A,s,t){var e=t.css,n=t.sourceMap,r=void 0===s.convertToAbsoluteUrls&&n;(s.convertToAbsoluteUrls||r)&&(e=L(e)),n&&(e+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\");var o=new Blob([e],{type:\"text/css\"}),i=A.href;A.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var y={},c=function(A){var s;return function(){return void 0===s&&(s=A.apply(this,arguments)),s}}(function(){return window&&document&&document.all&&!window.atob}),E=function(A){var s={};return function(t){return void 0===s[t]&&(s[t]=A.call(this,t)),s[t]}}(function(A){return document.querySelector(A)}),l=null,u=0,I=[],L=t(10);A.exports=function(A,s){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");s=s||{},s.attrs=\"object\"==typeof s.attrs?s.attrs:{},s.singleton||(s.singleton=c()),s.insertInto||(s.insertInto=\"head\"),s.insertAt||(s.insertAt=\"bottom\");var t=n(A,s);return e(t,s),function(A){for(var r=[],o=0;ot.parts.length&&(e.parts.length=t.parts.length)}else{for(var o=[],n=0;n tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0ccf60ac\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/less-loader/dist/cjs.js!../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./App.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"0bcd3de6\", content, false);\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the