UNPKG

ss-select

Version:

Stylable searchable vue select component

1,181 lines (960 loc) 45.2 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "02f9": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("48d9"); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), /***/ "090a": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _eventMixin = _interopRequireDefault(__webpack_require__("bf09")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // // // // // // var _default = { name: 'ss-select-toggle', mixins: [_eventMixin.default], mounted: function mounted() { var _this = this; this.$el.addEventListener('click', function () { return _this.busEmit('toggleOpen'); }); }, inject: ['eventBusId'] }; exports.default = _default; /***/ }), /***/ "0a2a": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1b356314-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SsSelectSearchInput.vue?vue&type=template&id=52ee95f0& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.query),expression:"query"}],attrs:{"type":"text","autofocus":"","autocomplete":"off"},domProps:{"value":(_vm.query)},on:{"input":[function($event){if($event.target.composing){ return; }_vm.query=$event.target.value},_vm.onInput]}})} var staticRenderFns = [] // CONCATENATED MODULE: ./src/components/SsSelectSearchInput.vue?vue&type=template&id=52ee95f0& /* concated harmony reexport render */__webpack_require__.d(__webpack_exports__, "a", function() { return render; }); /* concated harmony reexport staticRenderFns */__webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; }); /***/ }), /***/ "0f1a": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var nextOptionMixin = { methods: { nextAvailableOptionIndex: function nextAvailableOptionIndex(options, currentIndex) { var _this = this; var reverse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (options.every(function (option) { return _this.disabled(option); })) { return null; } var nextIndex = this.nextIndex(options, currentIndex, reverse); if (!this.disabled(options[nextIndex])) { return nextIndex; } return this.nextAvailableOptionIndex(options, nextIndex, reverse); }, nextIndex: function nextIndex(options, current) { var reverse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (reverse && current == 0) { return this.lastIndex(options); } if (reverse) { return --current; } if (current == this.lastIndex(options)) { return 0; } return current + 1; }, lastIndex: function lastIndex(options) { return options.length - 1; } } }; var _default = nextOptionMixin; exports.default = _default; /***/ }), /***/ "1eb2": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // This file is imported into lib/wc client bundles. if (typeof window !== 'undefined') { if (true) { __webpack_require__("f6fd") } var i if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) { __webpack_require__.p = i[1] // eslint-disable-line } } // Indicate to webpack that this file can be concatenated /* unused harmony default export */ var _unused_webpack_default_export = (null); /***/ }), /***/ "2877": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ "2af9": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "SsSelect", { enumerable: true, get: function get() { return _SsSelect.default; } }); Object.defineProperty(exports, "SsSelectOption", { enumerable: true, get: function get() { return _SsSelectOption.default; } }); Object.defineProperty(exports, "SsSelectToggle", { enumerable: true, get: function get() { return _SsSelectToggle.default; } }); Object.defineProperty(exports, "SsSelectSearchInput", { enumerable: true, get: function get() { return _SsSelectSearchInput.default; } }); exports.SsSelectComponents = exports.default = void 0; var _SsSelect = _interopRequireDefault(__webpack_require__("524c")); var _SsSelectOption = _interopRequireDefault(__webpack_require__("a85f")); var _SsSelectToggle = _interopRequireDefault(__webpack_require__("b358")); var _SsSelectSearchInput = _interopRequireDefault(__webpack_require__("80db")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SsSelectComponents = { SsSelect: _SsSelect.default, SsSelectOption: _SsSelectOption.default, SsSelectToggle: _SsSelectToggle.default, SsSelectSearchInput: _SsSelectSearchInput.default }; exports.SsSelectComponents = SsSelectComponents; var SsSelectPlugin = { install: function install(Vue) { Object.keys(SsSelectComponents).forEach(function (name) { Vue.component(name, SsSelectComponents[name]); }); } }; var _default = SsSelectPlugin; exports.default = _default; /***/ }), /***/ "30ab": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1b356314-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SsSelectOption.vue?vue&type=template&id=ce58f3d0& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t("default")],2)} var staticRenderFns = [] // CONCATENATED MODULE: ./src/components/SsSelectOption.vue?vue&type=template&id=ce58f3d0& /* concated harmony reexport render */__webpack_require__.d(__webpack_exports__, "a", function() { return render; }); /* concated harmony reexport staticRenderFns */__webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; }); /***/ }), /***/ "3ea9": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var utilsMixin = { methods: { get: function get(object, keys) { if (!(object instanceof Object)) return null; return keys.split('.').reduce(function (result, key) { if (result === undefined) return null; return result[key]; }, object); }, contains: function contains(haystack, needle, key) { var _this = this; return haystack.findIndex(function (item) { return _this.get(item, key) == _this.get(needle, key); }) > -1; } } }; var _default = utilsMixin; exports.default = _default; /***/ }), /***/ "48d9": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _eventMixin = _interopRequireDefault(__webpack_require__("bf09")); var _utilsMixin = _interopRequireDefault(__webpack_require__("3ea9")); var _nextOptionMixin = _interopRequireDefault(__webpack_require__("0f1a")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ESC = 27; var ENTER = 13; var ARROW_UP = 38; var ARROW_DOWN = 40; var _default = { name: 'ss-select', mixins: [_eventMixin.default, _utilsMixin.default, _nextOptionMixin.default], props: { options: { type: Array, required: true }, value: { required: false, default: null }, trackBy: { type: String, required: true }, searchBy: { type: String, required: false, default: null }, disableBy: { type: String, required: false, default: 'disabled' }, multiple: { default: false }, hideSelected: { type: Boolean, default: false }, disableSelected: { type: Boolean, default: false }, closeOnSelect: { type: Boolean, default: true }, max: { type: Number, default: null } }, data: function data() { return { isOpen: false, selectedOption: this.multiple ? [] : null, optionsMatchingSearch: this.options, eventBusId: Math.random().toString(36).substring(7), pointerIndex: null }; }, created: function created() { var _this = this; if (this.value) this.selectedOption = this.value; this.$watch('value', function () { return _this.selectedOption = _this.value; }); this.setPointerIndexToOrNextEnabled(0); this.$watch('options', function () { return _this.optionsMatchingSearch = _this.options; }); this.$watch('filteredOptions', function () { return _this.setPointerIndexToOrNextEnabled(0); }); this.$watch('isOpen', function () { _this.$emit(_this.isOpen ? 'open' : 'close'); _this.busEmit(_this.isOpen ? 'open' : 'close'); }); }, mounted: function mounted() { // TODO: fix this this.$el.style.outline = 'none'; this.applyListeners(); this.busEmit('selectMounted'); }, provide: function provide() { return { selectedOption: this.selectedOption, eventBusId: this.eventBusId, multiple: this.multiple, selected: this.selected, disabled: this.disabled }; }, render: function render() { return this.$scopedSlots.default({ options: this.options, filteredOptions: this.filteredOptions, isOpen: this.isOpen, selectedOption: this.selectedOption, selectedOptions: this.selectedOption, pointerIndex: this.pointerIndex, $get: this.get, $selected: this.selected, $disabled: this.disabled, $unselect: this.deselect, $deselect: this.deselect, $reset: this.reset, $open: this.open }); }, computed: { filteredOptions: function filteredOptions() { var _this2 = this; if (this.hideSelected && this.multiple) { var selectedOptionKeys = this.selectedOption.map(function (option) { return option[_this2.trackBy]; }); return this.optionsMatchingSearch.filter(function (option) { return !selectedOptionKeys.includes(option[_this2.trackBy]); }); } return this.optionsMatchingSearch; } }, methods: { open: function open() { if (!this.isOpen) this.isOpen = true; }, selected: function selected(option) { if (this.multiple) { return this.contains(this.selectedOption, option, this.trackBy); } return this.get(this.selectedOption, this.trackBy) == this.get(option, this.trackBy); }, disabled: function disabled(option) { return !!this.get(option, this.disableBy) || this.disableSelected && this.selected(option); }, deselect: function deselect(option) { var _this3 = this; if (this.multiple == false) return; var index = this.selectedOption.findIndex(function (selectedOption) { return _this3.get(selectedOption, _this3.trackBy) == _this3.get(option, _this3.trackBy); }); this.selectedOption.splice(index, 1); this.$emit('input', this.selectedOption); this.$emit('change', this.selectedOption); }, reset: function reset() { this.selectedOption = this.multiple ? [] : null; this.$emit('input', this.selectedOption); this.$emit('change', this.selectedOption); }, applyListeners: function applyListeners() { this.keyControl().clickOutside().toggleOpen().selectOptions().deselectOptions().hoverOverOptions().filterOptions(); }, keyControl: function keyControl() { var _this4 = this; this.$el.tabIndex = 0; this.$el.addEventListener('keydown', function (event) { var keyCode = event.keyCode; if (![ESC, ENTER, ARROW_UP, ARROW_DOWN].includes(keyCode)) return; event.preventDefault(); _this4.onEscape(keyCode).onEnter(keyCode).onUpAndDown(keyCode); }, false); return this; }, clickOutside: function clickOutside() { document.addEventListener('click', this.closeOnClickOutside); return this; }, closeOnClickOutside: function closeOnClickOutside(event) { if (!this.$el.contains(event.target) && this.$el !== event.target) { this.isOpen = false; } }, toggleOpen: function toggleOpen() { var _this5 = this; this.busListen('toggleOpen', function () { return _this5.isOpen = !_this5.isOpen; }); return this; }, selectOptions: function selectOptions() { var _this6 = this; this.busListen('optionSelected', function (option) { if (_this6.multiple) { if (_this6.max !== null && _this6.selectedOption.length >= _this6.max) { return; } _this6.selectedOption.push(option); } else { _this6.selectedOption = option; } _this6.$emit('input', _this6.selectedOption); _this6.$emit('change', _this6.selectedOption); _this6.isOpen = !_this6.closeOnSelect; }); return this; }, deselectOptions: function deselectOptions() { var _this7 = this; this.busListen('optionDeselected', function (option) { return _this7.deselect(option); }); return this; }, hoverOverOptions: function hoverOverOptions() { var _this8 = this; this.busListen('optionHover', function (index) { if (!_this8.disabled(_this8.filteredOptions[index])) { _this8.pointerIndex = index; _this8.busEmit('pointerIndexChange', _this8.pointerIndex); } }); return this; }, filterOptions: function filterOptions() { var _this9 = this; this.busListen('searchInput', function (query) { if (_this9.searchBy == null) return _this9; _this9.optionsMatchingSearch = _this9.options.filter(function (option) { return _this9.get(option, _this9.searchBy).toLowerCase().includes(query.toLowerCase()); }); }); return this; }, onEscape: function onEscape(keyCode) { if (keyCode === ESC) this.isOpen = false; return this; }, onEnter: function onEnter(keyCode) { if (keyCode === ENTER) { if (!this.disabled(this.filteredOptions[this.pointerIndex])) { this.busEmit('optionSelected', this.filteredOptions[this.pointerIndex]); } } return this; }, onUpAndDown: function onUpAndDown(keyCode) { if (keyCode === ARROW_DOWN) { this.pointerIndex = this.nextAvailableOptionIndex(this.filteredOptions, this.pointerIndex); } if (keyCode === ARROW_UP) { var reverse = true; this.pointerIndex = this.nextAvailableOptionIndex(this.filteredOptions, this.pointerIndex, reverse); } this.busEmit('pointerIndexChange', this.pointerIndex); return this; }, setPointerIndexToOrNextEnabled: function setPointerIndexToOrNextEnabled(index) { if (this.disabled(this.filteredOptions[index])) { this.pointerIndex = this.nextAvailableOptionIndex(this.filteredOptions, index); } else { this.pointerIndex = index; } this.busEmit('pointerIndexChange', this.pointerIndex); } }, destroyed: function destroyed() { document.removeEventListener('click', this.closeOnClickOutside); } }; exports.default = _default; /***/ }), /***/ "524c": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("02f9"); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2877"); var render, staticRenderFns /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])( _SsSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"], render, staticRenderFns, false, null, null, null ) /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), /***/ "80db": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _SsSelectSearchInput_vue_vue_type_template_id_52ee95f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0a2a"); /* harmony import */ var _SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9483"); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2877"); /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])( _SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], _SsSelectSearchInput_vue_vue_type_template_id_52ee95f0___WEBPACK_IMPORTED_MODULE_0__[/* render */ "a"], _SsSelectSearchInput_vue_vue_type_template_id_52ee95f0___WEBPACK_IMPORTED_MODULE_0__[/* staticRenderFns */ "b"], false, null, null, null ) /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), /***/ "8bbf": /***/ (function(module, exports) { module.exports = require("vue"); /***/ }), /***/ "8d20": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("090a"); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), /***/ "9483": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eead"); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectSearchInput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), /***/ "a85f": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _SsSelectOption_vue_vue_type_template_id_ce58f3d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("30ab"); /* harmony import */ var _SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("eeca"); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2877"); /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])( _SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], _SsSelectOption_vue_vue_type_template_id_ce58f3d0___WEBPACK_IMPORTED_MODULE_0__[/* render */ "a"], _SsSelectOption_vue_vue_type_template_id_ce58f3d0___WEBPACK_IMPORTED_MODULE_0__[/* staticRenderFns */ "b"], false, null, null, null ) /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), /***/ "b358": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _SsSelectToggle_vue_vue_type_template_id_5934230b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c6a4"); /* harmony import */ var _SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8d20"); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2877"); /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])( _SsSelectToggle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], _SsSelectToggle_vue_vue_type_template_id_5934230b___WEBPACK_IMPORTED_MODULE_0__[/* render */ "a"], _SsSelectToggle_vue_vue_type_template_id_5934230b___WEBPACK_IMPORTED_MODULE_0__[/* staticRenderFns */ "b"], false, null, null, null ) /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), /***/ "bf09": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _vue = _interopRequireDefault(__webpack_require__("8bbf")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var EventBus = new _vue.default(); var eventMixin = { methods: { busEmit: function busEmit(event, data) { return EventBus.$emit("".concat(event, "-").concat(this.eventBusId), data); }, busListen: function busListen(event, callback) { return EventBus.$on("".concat(event, "-").concat(this.eventBusId), callback); } } }; var _default = eventMixin; exports.default = _default; /***/ }), /***/ "c6a4": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1b356314-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SsSelectToggle.vue?vue&type=template&id=5934230b& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t("default")],2)} var staticRenderFns = [] // CONCATENATED MODULE: ./src/components/SsSelectToggle.vue?vue&type=template&id=5934230b& /* concated harmony reexport render */__webpack_require__.d(__webpack_exports__, "a", function() { return render; }); /* concated harmony reexport staticRenderFns */__webpack_require__.d(__webpack_exports__, "b", function() { return staticRenderFns; }); /***/ }), /***/ "e9c6": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _eventMixin = _interopRequireDefault(__webpack_require__("bf09")); var _utilsMixin = _interopRequireDefault(__webpack_require__("3ea9")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // // // // // // var _default = { name: 'ss-select-option', mixins: [_eventMixin.default, _utilsMixin.default], inject: ['eventBusId', 'selectedOption', 'multiple', 'selected', 'disabled'], props: { value: { required: true }, index: { type: Number, required: true } }, mounted: function mounted() { this.selectable().mouseOver().scrollIntoView(); }, methods: { selectable: function selectable() { var _this = this; this.$el.addEventListener('click', function () { if (_this.disabled(_this.value)) return; if (_this.multiple && _this.selected(_this.value)) { return _this.busEmit('optionDeselected', _this.value); } _this.busEmit('optionSelected', _this.value); }); return this; }, mouseOver: function mouseOver() { var _this2 = this; this.$el.addEventListener('mouseover', function () { return _this2.busEmit('optionHover', _this2.index); }); return this; }, scrollIntoView: function scrollIntoView() { var _this3 = this; this.busListen('pointerIndexChange', function (pointerIndex) { if (_this3.index === pointerIndex) { _this3.$el.scrollIntoView({ block: 'nearest' }); } }); return this; } } }; exports.default = _default; /***/ }), /***/ "eead": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _eventMixin = _interopRequireDefault(__webpack_require__("bf09")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // // // // var _default = { name: 'ss-select-search-input', mixins: [_eventMixin.default], props: { value: { default: null }, clearOnClose: { type: Boolean, default: true } }, data: function data() { return { query: this.value || '' }; }, mounted: function mounted() { var _this = this; this.busListen('selectMounted', function () { if (_this.query.length) _this.onInput(); }); this.busListen('open', function () { _this.$nextTick(function () { return _this.$el.focus(); }); }); this.busListen('close', function () { if (_this.clearOnClose) { _this.query = ''; _this.onInput(); } }); }, methods: { onInput: function onInput() { this.$emit('input', this.query); this.busEmit('searchInput', this.query); } }, inject: ['eventBusId'] }; exports.default = _default; /***/ }), /***/ "eeca": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e9c6"); /* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_node_modules_cache_loader_dist_cjs_js_ref_12_0_node_modules_thread_loader_dist_cjs_js_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SsSelectOption_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), /***/ "f6fd": /***/ (function(module, exports) { // document.currentScript polyfill by Adam Miller // MIT license (function(document){ var currentScript = "currentScript", scripts = document.getElementsByTagName('script'); // Live NodeList collection // If browser needs currentScript polyfill, add get currentScript() to the document object if (!(currentScript in document)) { Object.defineProperty(document, currentScript, { get: function(){ // IE 6-10 supports script readyState // IE 10+ support stack trace try { throw new Error(); } catch (err) { // Find the second match for the "at" string to get file src url from stack. // Specifically works with the format of stack traces in IE. var i, res = ((/.*at [^\(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1]; // For all scripts on the page, if src matches or if ready state is interactive, return the script tag for(i in scripts){ if(scripts[i].src == res || scripts[i].readyState == "interactive"){ return scripts[i]; } } // If no match, return null return null; } } }); } })(document); /***/ }), /***/ "fb15": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _setPublicPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1eb2"); /* harmony import */ var _entry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2af9"); /* harmony import */ var _entry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_entry__WEBPACK_IMPORTED_MODULE_1__); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _entry__WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _entry__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony default export */ __webpack_exports__["default"] = (_entry__WEBPACK_IMPORTED_MODULE_1___default.a); /***/ }) /******/ }); //# sourceMappingURL=ss-select.common.js.map