UNPKG

53.8 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5/******/
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8/******/
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId]) {
11/******/ return installedModules[moduleId].exports;
12/******/ }
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ i: moduleId,
16/******/ l: false,
17/******/ exports: {}
18/******/ };
19/******/
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22/******/
23/******/ // Flag the module as loaded
24/******/ module.l = true;
25/******/
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29/******/
30/******/
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33/******/
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36/******/
37/******/ // define getter function for harmony exports
38/******/ __webpack_require__.d = function(exports, name, getter) {
39/******/ if(!__webpack_require__.o(exports, name)) {
40/******/ Object.defineProperty(exports, name, {
41/******/ configurable: false,
42/******/ enumerable: true,
43/******/ get: getter
44/******/ });
45/******/ }
46/******/ };
47/******/
48/******/ // getDefaultExport function for compatibility with non-harmony modules
49/******/ __webpack_require__.n = function(module) {
50/******/ var getter = module && module.__esModule ?
51/******/ function getDefault() { return module['default']; } :
52/******/ function getModuleExports() { return module; };
53/******/ __webpack_require__.d(getter, 'a', getter);
54/******/ return getter;
55/******/ };
56/******/
57/******/ // Object.prototype.hasOwnProperty.call
58/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
59/******/
60/******/ // __webpack_public_path__
61/******/ __webpack_require__.p = "/dist/";
62/******/
63/******/ // Load entry module and return exports
64/******/ return __webpack_require__(__webpack_require__.s = 138);
65/******/ })
66/************************************************************************/
67/******/ ({
68
69/***/ 0:
70/***/ (function(module, exports) {
71
72/* globals __VUE_SSR_CONTEXT__ */
73
74// IMPORTANT: Do NOT use ES2015 features in this file.
75// This module is a runtime utility for cleaner component module output and will
76// be included in the final webpack user bundle.
77
78module.exports = function normalizeComponent (
79 rawScriptExports,
80 compiledTemplate,
81 functionalTemplate,
82 injectStyles,
83 scopeId,
84 moduleIdentifier /* server only */
85) {
86 var esModule
87 var scriptExports = rawScriptExports = rawScriptExports || {}
88
89 // ES6 modules interop
90 var type = typeof rawScriptExports.default
91 if (type === 'object' || type === 'function') {
92 esModule = rawScriptExports
93 scriptExports = rawScriptExports.default
94 }
95
96 // Vue.extend constructor export interop
97 var options = typeof scriptExports === 'function'
98 ? scriptExports.options
99 : scriptExports
100
101 // render functions
102 if (compiledTemplate) {
103 options.render = compiledTemplate.render
104 options.staticRenderFns = compiledTemplate.staticRenderFns
105 options._compiled = true
106 }
107
108 // functional template
109 if (functionalTemplate) {
110 options.functional = true
111 }
112
113 // scopedId
114 if (scopeId) {
115 options._scopeId = scopeId
116 }
117
118 var hook
119 if (moduleIdentifier) { // server build
120 hook = function (context) {
121 // 2.3 injection
122 context =
123 context || // cached call
124 (this.$vnode && this.$vnode.ssrContext) || // stateful
125 (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
126 // 2.2 with runInNewContext: true
127 if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
128 context = __VUE_SSR_CONTEXT__
129 }
130 // inject component styles
131 if (injectStyles) {
132 injectStyles.call(this, context)
133 }
134 // register component module identifier for async chunk inferrence
135 if (context && context._registeredComponents) {
136 context._registeredComponents.add(moduleIdentifier)
137 }
138 }
139 // used by ssr in case component is cached and beforeCreate
140 // never gets called
141 options._ssrRegister = hook
142 } else if (injectStyles) {
143 hook = injectStyles
144 }
145
146 if (hook) {
147 var functional = options.functional
148 var existing = functional
149 ? options.render
150 : options.beforeCreate
151
152 if (!functional) {
153 // inject component registration as beforeCreate hook
154 options.beforeCreate = existing
155 ? [].concat(existing, hook)
156 : [hook]
157 } else {
158 // for template-only hot-reload because in that case the render fn doesn't
159 // go through the normalizer
160 options._injectStyles = hook
161 // register for functioal component in vue file
162 options.render = function renderWithStyleInjection (h, context) {
163 hook.call(context)
164 return existing(h, context)
165 }
166 }
167 }
168
169 return {
170 esModule: esModule,
171 exports: scriptExports,
172 options: options
173 }
174}
175
176
177/***/ }),
178
179/***/ 1:
180/***/ (function(module, exports) {
181
182module.exports = require("element-ui/lib/mixins/emitter");
183
184/***/ }),
185
186/***/ 10:
187/***/ (function(module, exports) {
188
189module.exports = require("element-ui/lib/utils/clickoutside");
190
191/***/ }),
192
193/***/ 12:
194/***/ (function(module, exports) {
195
196module.exports = require("element-ui/lib/locale");
197
198/***/ }),
199
200/***/ 138:
201/***/ (function(module, exports, __webpack_require__) {
202
203"use strict";
204
205
206exports.__esModule = true;
207
208var _select = __webpack_require__(139);
209
210var _select2 = _interopRequireDefault(_select);
211
212function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
213
214/* istanbul ignore next */
215_select2.default.install = function (Vue) {
216 Vue.component(_select2.default.name, _select2.default);
217};
218
219exports.default = _select2.default;
220
221/***/ }),
222
223/***/ 139:
224/***/ (function(module, __webpack_exports__, __webpack_require__) {
225
226"use strict";
227Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
228/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__ = __webpack_require__(140);
229/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__);
230/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__ = __webpack_require__(145);
231var normalizeComponent = __webpack_require__(0)
232/* script */
233
234/* template */
235
236/* template functional */
237 var __vue_template_functional__ = false
238/* styles */
239var __vue_styles__ = null
240/* scopeId */
241var __vue_scopeId__ = null
242/* moduleIdentifier (server only) */
243var __vue_module_identifier__ = null
244var Component = normalizeComponent(
245 __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default.a,
246 __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__["a" /* default */],
247 __vue_template_functional__,
248 __vue_styles__,
249 __vue_scopeId__,
250 __vue_module_identifier__
251)
252
253/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
254
255
256/***/ }),
257
258/***/ 14:
259/***/ (function(module, exports) {
260
261module.exports = require("throttle-debounce/debounce");
262
263/***/ }),
264
265/***/ 140:
266/***/ (function(module, exports, __webpack_require__) {
267
268"use strict";
269
270
271exports.__esModule = true;
272
273var _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; }; //
274//
275//
276//
277//
278//
279//
280//
281//
282//
283//
284//
285//
286//
287//
288//
289//
290//
291//
292//
293//
294//
295//
296//
297//
298//
299//
300//
301//
302//
303//
304//
305//
306//
307//
308//
309//
310//
311//
312//
313//
314//
315//
316//
317//
318//
319//
320//
321//
322//
323//
324//
325//
326//
327//
328//
329//
330//
331//
332//
333//
334//
335//
336//
337//
338//
339//
340//
341//
342//
343//
344//
345//
346//
347//
348//
349//
350//
351//
352//
353//
354//
355//
356//
357//
358//
359//
360//
361//
362//
363//
364//
365//
366//
367//
368//
369//
370//
371//
372//
373//
374//
375//
376//
377//
378//
379//
380//
381//
382//
383//
384//
385//
386//
387//
388//
389//
390//
391//
392//
393//
394//
395//
396//
397//
398//
399//
400//
401//
402//
403//
404//
405//
406//
407
408var _emitter = __webpack_require__(1);
409
410var _emitter2 = _interopRequireDefault(_emitter);
411
412var _focus = __webpack_require__(19);
413
414var _focus2 = _interopRequireDefault(_focus);
415
416var _locale = __webpack_require__(5);
417
418var _locale2 = _interopRequireDefault(_locale);
419
420var _input = __webpack_require__(6);
421
422var _input2 = _interopRequireDefault(_input);
423
424var _selectDropdown = __webpack_require__(141);
425
426var _selectDropdown2 = _interopRequireDefault(_selectDropdown);
427
428var _option = __webpack_require__(35);
429
430var _option2 = _interopRequireDefault(_option);
431
432var _tag = __webpack_require__(25);
433
434var _tag2 = _interopRequireDefault(_tag);
435
436var _scrollbar = __webpack_require__(17);
437
438var _scrollbar2 = _interopRequireDefault(_scrollbar);
439
440var _debounce = __webpack_require__(14);
441
442var _debounce2 = _interopRequireDefault(_debounce);
443
444var _clickoutside = __webpack_require__(10);
445
446var _clickoutside2 = _interopRequireDefault(_clickoutside);
447
448var _dom = __webpack_require__(3);
449
450var _resizeEvent = __webpack_require__(18);
451
452var _locale3 = __webpack_require__(12);
453
454var _scrollIntoView = __webpack_require__(26);
455
456var _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);
457
458var _util = __webpack_require__(2);
459
460var _navigationMixin = __webpack_require__(144);
461
462var _navigationMixin2 = _interopRequireDefault(_navigationMixin);
463
464var _shared = __webpack_require__(23);
465
466function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
467
468exports.default = {
469 mixins: [_emitter2.default, _locale2.default, (0, _focus2.default)('reference'), _navigationMixin2.default],
470
471 name: 'ElSelect',
472
473 componentName: 'ElSelect',
474
475 inject: {
476 elForm: {
477 default: ''
478 },
479
480 elFormItem: {
481 default: ''
482 }
483 },
484
485 provide: function provide() {
486 return {
487 'select': this
488 };
489 },
490
491
492 computed: {
493 _elFormItemSize: function _elFormItemSize() {
494 return (this.elFormItem || {}).elFormItemSize;
495 },
496 readonly: function readonly() {
497 // trade-off for IE input readonly problem: https://github.com/ElemeFE/element/issues/10403
498 var isIE = !this.$isServer && !isNaN(Number(document.documentMode));
499 return !this.filterable || this.multiple || !isIE && !this.visible;
500 },
501 iconClass: function iconClass() {
502 var criteria = this.clearable && !this.selectDisabled && this.inputHovering && !this.multiple && this.value !== undefined && this.value !== null && this.value !== '';
503 return criteria ? 'circle-close is-show-close' : this.remote && this.filterable ? '' : 'arrow-up';
504 },
505 debounce: function debounce() {
506 return this.remote ? 300 : 0;
507 },
508 emptyText: function emptyText() {
509 if (this.loading) {
510 return this.loadingText || this.t('el.select.loading');
511 } else {
512 if (this.remote && this.query === '' && this.options.length === 0) return false;
513 if (this.filterable && this.query && this.options.length > 0 && this.filteredOptionsCount === 0) {
514 return this.noMatchText || this.t('el.select.noMatch');
515 }
516 if (this.options.length === 0) {
517 return this.noDataText || this.t('el.select.noData');
518 }
519 }
520 return null;
521 },
522 showNewOption: function showNewOption() {
523 var _this = this;
524
525 var hasExistingOption = this.options.filter(function (option) {
526 return !option.created;
527 }).some(function (option) {
528 return option.currentLabel === _this.query;
529 });
530 return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;
531 },
532 selectSize: function selectSize() {
533 return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
534 },
535 selectDisabled: function selectDisabled() {
536 return this.disabled || (this.elForm || {}).disabled;
537 },
538 collapseTagSize: function collapseTagSize() {
539 return ['small', 'mini'].indexOf(this.selectSize) > -1 ? 'mini' : 'small';
540 }
541 },
542
543 components: {
544 ElInput: _input2.default,
545 ElSelectMenu: _selectDropdown2.default,
546 ElOption: _option2.default,
547 ElTag: _tag2.default,
548 ElScrollbar: _scrollbar2.default
549 },
550
551 directives: { Clickoutside: _clickoutside2.default },
552
553 props: {
554 name: String,
555 id: String,
556 value: {
557 required: true
558 },
559 autocomplete: {
560 type: String,
561 default: 'off'
562 },
563 /** @Deprecated in next major version */
564 autoComplete: {
565 type: String,
566 validator: function validator(val) {
567 "production" !== 'production' && console.warn('[Element Warn][Select]\'auto-complete\' property will be deprecated in next major version. please use \'autocomplete\' instead.');
568 return true;
569 }
570 },
571 automaticDropdown: Boolean,
572 size: String,
573 disabled: Boolean,
574 clearable: Boolean,
575 filterable: Boolean,
576 allowCreate: Boolean,
577 loading: Boolean,
578 popperClass: String,
579 remote: Boolean,
580 loadingText: String,
581 noMatchText: String,
582 noDataText: String,
583 remoteMethod: Function,
584 filterMethod: Function,
585 multiple: Boolean,
586 multipleLimit: {
587 type: Number,
588 default: 0
589 },
590 placeholder: {
591 type: String,
592 default: function _default() {
593 return (0, _locale3.t)('el.select.placeholder');
594 }
595 },
596 defaultFirstOption: Boolean,
597 reserveKeyword: Boolean,
598 valueKey: {
599 type: String,
600 default: 'value'
601 },
602 collapseTags: Boolean,
603 popperAppendToBody: {
604 type: Boolean,
605 default: true
606 }
607 },
608
609 data: function data() {
610 return {
611 options: [],
612 cachedOptions: [],
613 createdLabel: null,
614 createdSelected: false,
615 selected: this.multiple ? [] : {},
616 inputLength: 20,
617 inputWidth: 0,
618 initialInputHeight: 0,
619 cachedPlaceHolder: '',
620 optionsCount: 0,
621 filteredOptionsCount: 0,
622 visible: false,
623 softFocus: false,
624 selectedLabel: '',
625 hoverIndex: -1,
626 query: '',
627 previousQuery: null,
628 inputHovering: false,
629 currentPlaceholder: '',
630 menuVisibleOnFocus: false,
631 isOnComposition: false,
632 isSilentBlur: false
633 };
634 },
635
636
637 watch: {
638 selectDisabled: function selectDisabled() {
639 var _this2 = this;
640
641 this.$nextTick(function () {
642 _this2.resetInputHeight();
643 });
644 },
645 placeholder: function placeholder(val) {
646 this.cachedPlaceHolder = this.currentPlaceholder = val;
647 },
648 value: function value(val, oldVal) {
649 if (this.multiple) {
650 this.resetInputHeight();
651 if (val.length > 0 || this.$refs.input && this.query !== '') {
652 this.currentPlaceholder = '';
653 } else {
654 this.currentPlaceholder = this.cachedPlaceHolder;
655 }
656 if (this.filterable && !this.reserveKeyword) {
657 this.query = '';
658 this.handleQueryChange(this.query);
659 }
660 }
661 this.setSelected();
662 if (this.filterable && !this.multiple) {
663 this.inputLength = 20;
664 }
665 if (!(0, _util.valueEquals)(val, oldVal)) {
666 this.dispatch('ElFormItem', 'el.form.change', val);
667 }
668 },
669 visible: function visible(val) {
670 var _this3 = this;
671
672 if (!val) {
673 this.handleIconHide();
674 this.broadcast('ElSelectDropdown', 'destroyPopper');
675 if (this.$refs.input) {
676 this.$refs.input.blur();
677 }
678 this.query = '';
679 this.previousQuery = null;
680 this.selectedLabel = '';
681 this.inputLength = 20;
682 this.resetHoverIndex();
683 this.$nextTick(function () {
684 if (_this3.$refs.input && _this3.$refs.input.value === '' && _this3.selected.length === 0) {
685 _this3.currentPlaceholder = _this3.cachedPlaceHolder;
686 }
687 });
688 if (!this.multiple) {
689 if (this.selected) {
690 if (this.filterable && this.allowCreate && this.createdSelected && this.createdLabel) {
691 this.selectedLabel = this.createdLabel;
692 } else {
693 this.selectedLabel = this.selected.currentLabel;
694 }
695 if (this.filterable) this.query = this.selectedLabel;
696 }
697 }
698 } else {
699 this.handleIconShow();
700 this.broadcast('ElSelectDropdown', 'updatePopper');
701 if (this.filterable) {
702 this.query = this.remote ? '' : this.selectedLabel;
703 this.handleQueryChange(this.query);
704 if (this.multiple) {
705 this.$refs.input.focus();
706 } else {
707 if (!this.remote) {
708 this.broadcast('ElOption', 'queryChange', '');
709 this.broadcast('ElOptionGroup', 'queryChange');
710 }
711 this.broadcast('ElInput', 'inputSelect');
712 }
713 }
714 }
715 this.$emit('visible-change', val);
716 },
717 options: function options() {
718 var _this4 = this;
719
720 if (this.$isServer) return;
721 this.$nextTick(function () {
722 _this4.broadcast('ElSelectDropdown', 'updatePopper');
723 });
724 if (this.multiple) {
725 this.resetInputHeight();
726 }
727 var inputs = this.$el.querySelectorAll('input');
728 if ([].indexOf.call(inputs, document.activeElement) === -1) {
729 this.setSelected();
730 }
731 if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {
732 this.checkDefaultFirstOption();
733 }
734 }
735 },
736
737 methods: {
738 handleComposition: function handleComposition(event) {
739 var text = event.target.value;
740 if (event.type === 'compositionend') {
741 this.isOnComposition = false;
742 this.handleQueryChange(text);
743 } else {
744 var lastCharacter = text[text.length - 1] || '';
745 this.isOnComposition = !(0, _shared.isKorean)(lastCharacter);
746 }
747 },
748 handleQueryChange: function handleQueryChange(val) {
749 var _this5 = this;
750
751 if (this.previousQuery === val || this.isOnComposition) return;
752 if (this.previousQuery === null && (typeof this.filterMethod === 'function' || typeof this.remoteMethod === 'function')) {
753 this.previousQuery = val;
754 return;
755 }
756 this.previousQuery = val;
757 this.$nextTick(function () {
758 if (_this5.visible) _this5.broadcast('ElSelectDropdown', 'updatePopper');
759 });
760 this.hoverIndex = -1;
761 if (this.multiple && this.filterable) {
762 var length = this.$refs.input.value.length * 15 + 20;
763 this.inputLength = this.collapseTags ? Math.min(50, length) : length;
764 this.managePlaceholder();
765 this.resetInputHeight();
766 }
767 if (this.remote && typeof this.remoteMethod === 'function') {
768 this.hoverIndex = -1;
769 this.remoteMethod(val);
770 } else if (typeof this.filterMethod === 'function') {
771 this.filterMethod(val);
772 this.broadcast('ElOptionGroup', 'queryChange');
773 } else {
774 this.filteredOptionsCount = this.optionsCount;
775 this.broadcast('ElOption', 'queryChange', val);
776 this.broadcast('ElOptionGroup', 'queryChange');
777 }
778 if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {
779 this.checkDefaultFirstOption();
780 }
781 },
782 handleIconHide: function handleIconHide() {
783 var icon = this.$el.querySelector('.el-input__icon');
784 if (icon) {
785 (0, _dom.removeClass)(icon, 'is-reverse');
786 }
787 },
788 handleIconShow: function handleIconShow() {
789 var icon = this.$el.querySelector('.el-input__icon');
790 if (icon && !(0, _dom.hasClass)(icon, 'el-icon-circle-close')) {
791 (0, _dom.addClass)(icon, 'is-reverse');
792 }
793 },
794 scrollToOption: function scrollToOption(option) {
795 var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;
796 if (this.$refs.popper && target) {
797 var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');
798 (0, _scrollIntoView2.default)(menu, target);
799 }
800 this.$refs.scrollbar && this.$refs.scrollbar.handleScroll();
801 },
802 handleMenuEnter: function handleMenuEnter() {
803 var _this6 = this;
804
805 this.$nextTick(function () {
806 return _this6.scrollToOption(_this6.selected);
807 });
808 },
809 emitChange: function emitChange(val) {
810 if (!(0, _util.valueEquals)(this.value, val)) {
811 this.$emit('change', val);
812 }
813 },
814 getOption: function getOption(value) {
815 var option = void 0;
816 var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';
817 var isNull = Object.prototype.toString.call(value).toLowerCase() === '[object null]';
818
819 for (var i = this.cachedOptions.length - 1; i >= 0; i--) {
820 var cachedOption = this.cachedOptions[i];
821 var isEqual = isObject ? (0, _util.getValueByPath)(cachedOption.value, this.valueKey) === (0, _util.getValueByPath)(value, this.valueKey) : cachedOption.value === value;
822 if (isEqual) {
823 option = cachedOption;
824 break;
825 }
826 }
827 if (option) return option;
828 var label = !isObject && !isNull ? value : '';
829 var newOption = {
830 value: value,
831 currentLabel: label
832 };
833 if (this.multiple) {
834 newOption.hitState = false;
835 }
836 return newOption;
837 },
838 setSelected: function setSelected() {
839 var _this7 = this;
840
841 if (!this.multiple) {
842 var option = this.getOption(this.value);
843 if (option.created) {
844 this.createdLabel = option.currentLabel;
845 this.createdSelected = true;
846 } else {
847 this.createdSelected = false;
848 }
849 this.selectedLabel = option.currentLabel;
850 this.selected = option;
851 if (this.filterable) this.query = this.selectedLabel;
852 return;
853 }
854 var result = [];
855 if (Array.isArray(this.value)) {
856 this.value.forEach(function (value) {
857 result.push(_this7.getOption(value));
858 });
859 }
860 this.selected = result;
861 this.$nextTick(function () {
862 _this7.resetInputHeight();
863 });
864 },
865 handleFocus: function handleFocus(event) {
866 if (!this.softFocus) {
867 if (this.automaticDropdown || this.filterable) {
868 this.visible = true;
869 this.menuVisibleOnFocus = true;
870 }
871 this.$emit('focus', event);
872 } else {
873 this.softFocus = false;
874 }
875 },
876 blur: function blur() {
877 this.visible = false;
878 this.$refs.reference.blur();
879 },
880 handleBlur: function handleBlur(event) {
881 var _this8 = this;
882
883 setTimeout(function () {
884 if (_this8.isSilentBlur) {
885 _this8.isSilentBlur = false;
886 } else {
887 _this8.$emit('blur', event);
888 }
889 }, 50);
890 this.softFocus = false;
891 },
892 handleIconClick: function handleIconClick(event) {
893 if (this.iconClass.indexOf('circle-close') > -1) {
894 this.deleteSelected(event);
895 }
896 },
897 doDestroy: function doDestroy() {
898 this.$refs.popper && this.$refs.popper.doDestroy();
899 },
900 handleClose: function handleClose() {
901 this.visible = false;
902 },
903 toggleLastOptionHitState: function toggleLastOptionHitState(hit) {
904 if (!Array.isArray(this.selected)) return;
905 var option = this.selected[this.selected.length - 1];
906 if (!option) return;
907
908 if (hit === true || hit === false) {
909 option.hitState = hit;
910 return hit;
911 }
912
913 option.hitState = !option.hitState;
914 return option.hitState;
915 },
916 deletePrevTag: function deletePrevTag(e) {
917 if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {
918 var value = this.value.slice();
919 value.pop();
920 this.$emit('input', value);
921 this.emitChange(value);
922 }
923 },
924 managePlaceholder: function managePlaceholder() {
925 if (this.currentPlaceholder !== '') {
926 this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;
927 }
928 },
929 resetInputState: function resetInputState(e) {
930 if (e.keyCode !== 8) this.toggleLastOptionHitState(false);
931 this.inputLength = this.$refs.input.value.length * 15 + 20;
932 this.resetInputHeight();
933 },
934 resetInputHeight: function resetInputHeight() {
935 var _this9 = this;
936
937 if (this.collapseTags && !this.filterable) return;
938 this.$nextTick(function () {
939 if (!_this9.$refs.reference) return;
940 var inputChildNodes = _this9.$refs.reference.$el.childNodes;
941 var input = [].filter.call(inputChildNodes, function (item) {
942 return item.tagName === 'INPUT';
943 })[0];
944 var tags = _this9.$refs.tags;
945 var sizeInMap = _this9.initialInputHeight || 40;
946 input.style.height = _this9.selected.length === 0 ? sizeInMap + 'px' : Math.max(tags ? tags.clientHeight + (tags.clientHeight > sizeInMap ? 6 : 0) : 0, sizeInMap) + 'px';
947 if (_this9.visible && _this9.emptyText !== false) {
948 _this9.broadcast('ElSelectDropdown', 'updatePopper');
949 }
950 });
951 },
952 resetHoverIndex: function resetHoverIndex() {
953 var _this10 = this;
954
955 setTimeout(function () {
956 if (!_this10.multiple) {
957 _this10.hoverIndex = _this10.options.indexOf(_this10.selected);
958 } else {
959 if (_this10.selected.length > 0) {
960 _this10.hoverIndex = Math.min.apply(null, _this10.selected.map(function (item) {
961 return _this10.options.indexOf(item);
962 }));
963 } else {
964 _this10.hoverIndex = -1;
965 }
966 }
967 }, 300);
968 },
969 handleOptionSelect: function handleOptionSelect(option, byClick) {
970 var _this11 = this;
971
972 if (this.multiple) {
973 var value = this.value.slice();
974 var optionIndex = this.getValueIndex(value, option.value);
975 if (optionIndex > -1) {
976 value.splice(optionIndex, 1);
977 } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {
978 value.push(option.value);
979 }
980 this.$emit('input', value);
981 this.emitChange(value);
982 if (option.created) {
983 this.query = '';
984 this.handleQueryChange('');
985 this.inputLength = 20;
986 }
987 if (this.filterable) this.$refs.input.focus();
988 } else {
989 this.$emit('input', option.value);
990 this.emitChange(option.value);
991 this.visible = false;
992 }
993 this.isSilentBlur = byClick;
994 this.setSoftFocus();
995 if (this.visible) return;
996 this.$nextTick(function () {
997 _this11.scrollToOption(option);
998 });
999 },
1000 setSoftFocus: function setSoftFocus() {
1001 this.softFocus = true;
1002 var input = this.$refs.input || this.$refs.reference;
1003 if (input) {
1004 input.focus();
1005 }
1006 },
1007 getValueIndex: function getValueIndex() {
1008 var _this12 = this;
1009
1010 var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1011 var value = arguments[1];
1012
1013 var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';
1014 if (!isObject) {
1015 return arr.indexOf(value);
1016 } else {
1017 var _ret = function () {
1018 var valueKey = _this12.valueKey;
1019 var index = -1;
1020 arr.some(function (item, i) {
1021 if ((0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(value, valueKey)) {
1022 index = i;
1023 return true;
1024 }
1025 return false;
1026 });
1027 return {
1028 v: index
1029 };
1030 }();
1031
1032 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
1033 }
1034 },
1035 toggleMenu: function toggleMenu() {
1036 if (!this.selectDisabled) {
1037 if (this.menuVisibleOnFocus) {
1038 this.menuVisibleOnFocus = false;
1039 } else {
1040 this.visible = !this.visible;
1041 }
1042 if (this.visible) {
1043 (this.$refs.input || this.$refs.reference).focus();
1044 }
1045 }
1046 },
1047 selectOption: function selectOption() {
1048 if (!this.visible) {
1049 this.toggleMenu();
1050 } else {
1051 if (this.options[this.hoverIndex]) {
1052 this.handleOptionSelect(this.options[this.hoverIndex]);
1053 }
1054 }
1055 },
1056 deleteSelected: function deleteSelected(event) {
1057 event.stopPropagation();
1058 this.$emit('input', '');
1059 this.emitChange('');
1060 this.visible = false;
1061 this.$emit('clear');
1062 },
1063 deleteTag: function deleteTag(event, tag) {
1064 var index = this.selected.indexOf(tag);
1065 if (index > -1 && !this.selectDisabled) {
1066 var value = this.value.slice();
1067 value.splice(index, 1);
1068 this.$emit('input', value);
1069 this.emitChange(value);
1070 this.$emit('remove-tag', tag.value);
1071 }
1072 event.stopPropagation();
1073 },
1074 onInputChange: function onInputChange() {
1075 if (this.filterable && this.query !== this.selectedLabel) {
1076 this.query = this.selectedLabel;
1077 this.handleQueryChange(this.query);
1078 }
1079 },
1080 onOptionDestroy: function onOptionDestroy(index) {
1081 if (index > -1) {
1082 this.optionsCount--;
1083 this.filteredOptionsCount--;
1084 this.options.splice(index, 1);
1085 }
1086 },
1087 resetInputWidth: function resetInputWidth() {
1088 this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;
1089 },
1090 handleResize: function handleResize() {
1091 this.resetInputWidth();
1092 if (this.multiple) this.resetInputHeight();
1093 },
1094 checkDefaultFirstOption: function checkDefaultFirstOption() {
1095 this.hoverIndex = -1;
1096 // highlight the created option
1097 var hasCreated = false;
1098 for (var i = this.options.length - 1; i >= 0; i--) {
1099 if (this.options[i].created) {
1100 hasCreated = true;
1101 this.hoverIndex = i;
1102 break;
1103 }
1104 }
1105 if (hasCreated) return;
1106 for (var _i = 0; _i !== this.options.length; ++_i) {
1107 var option = this.options[_i];
1108 if (this.query) {
1109 // highlight first options that passes the filter
1110 if (!option.disabled && !option.groupDisabled && option.visible) {
1111 this.hoverIndex = _i;
1112 break;
1113 }
1114 } else {
1115 // highlight currently selected option
1116 if (option.itemSelected) {
1117 this.hoverIndex = _i;
1118 break;
1119 }
1120 }
1121 }
1122 },
1123 getValueKey: function getValueKey(item) {
1124 if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {
1125 return item.value;
1126 } else {
1127 return (0, _util.getValueByPath)(item.value, this.valueKey);
1128 }
1129 }
1130 },
1131
1132 created: function created() {
1133 var _this13 = this;
1134
1135 this.cachedPlaceHolder = this.currentPlaceholder = this.placeholder;
1136 if (this.multiple && !Array.isArray(this.value)) {
1137 this.$emit('input', []);
1138 }
1139 if (!this.multiple && Array.isArray(this.value)) {
1140 this.$emit('input', '');
1141 }
1142
1143 this.debouncedOnInputChange = (0, _debounce2.default)(this.debounce, function () {
1144 _this13.onInputChange();
1145 });
1146
1147 this.debouncedQueryChange = (0, _debounce2.default)(this.debounce, function (e) {
1148 _this13.handleQueryChange(e.target.value);
1149 });
1150
1151 this.$on('handleOptionClick', this.handleOptionSelect);
1152 this.$on('setSelected', this.setSelected);
1153 },
1154 mounted: function mounted() {
1155 var _this14 = this;
1156
1157 if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {
1158 this.currentPlaceholder = '';
1159 }
1160 (0, _resizeEvent.addResizeListener)(this.$el, this.handleResize);
1161
1162 var reference = this.$refs.reference;
1163 if (reference && reference.$el) {
1164 this.initialInputHeight = reference.$el.getBoundingClientRect().height;
1165 }
1166 if (this.remote && this.multiple) {
1167 this.resetInputHeight();
1168 }
1169 this.$nextTick(function () {
1170 if (reference && reference.$el) {
1171 _this14.inputWidth = reference.$el.getBoundingClientRect().width;
1172 }
1173 });
1174 this.setSelected();
1175 },
1176 beforeDestroy: function beforeDestroy() {
1177 if (this.$el && this.handleResize) (0, _resizeEvent.removeResizeListener)(this.$el, this.handleResize);
1178 }
1179};
1180
1181/***/ }),
1182
1183/***/ 141:
1184/***/ (function(module, __webpack_exports__, __webpack_require__) {
1185
1186"use strict";
1187Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
1188/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__ = __webpack_require__(142);
1189/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__);
1190/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__ = __webpack_require__(143);
1191var normalizeComponent = __webpack_require__(0)
1192/* script */
1193
1194/* template */
1195
1196/* template functional */
1197 var __vue_template_functional__ = false
1198/* styles */
1199var __vue_styles__ = null
1200/* scopeId */
1201var __vue_scopeId__ = null
1202/* moduleIdentifier (server only) */
1203var __vue_module_identifier__ = null
1204var Component = normalizeComponent(
1205 __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default.a,
1206 __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__["a" /* default */],
1207 __vue_template_functional__,
1208 __vue_styles__,
1209 __vue_scopeId__,
1210 __vue_module_identifier__
1211)
1212
1213/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
1214
1215
1216/***/ }),
1217
1218/***/ 142:
1219/***/ (function(module, exports, __webpack_require__) {
1220
1221"use strict";
1222
1223
1224exports.__esModule = true;
1225
1226var _vuePopper = __webpack_require__(7);
1227
1228var _vuePopper2 = _interopRequireDefault(_vuePopper);
1229
1230function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1231
1232exports.default = {
1233 name: 'ElSelectDropdown',
1234
1235 componentName: 'ElSelectDropdown',
1236
1237 mixins: [_vuePopper2.default],
1238
1239 props: {
1240 placement: {
1241 default: 'bottom-start'
1242 },
1243
1244 boundariesPadding: {
1245 default: 0
1246 },
1247
1248 popperOptions: {
1249 default: function _default() {
1250 return {
1251 gpuAcceleration: false
1252 };
1253 }
1254 },
1255
1256 visibleArrow: {
1257 default: true
1258 },
1259
1260 appendToBody: {
1261 type: Boolean,
1262 default: true
1263 }
1264 },
1265
1266 data: function data() {
1267 return {
1268 minWidth: ''
1269 };
1270 },
1271
1272
1273 computed: {
1274 popperClass: function popperClass() {
1275 return this.$parent.popperClass;
1276 }
1277 },
1278
1279 watch: {
1280 '$parent.inputWidth': function $parentInputWidth() {
1281 this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';
1282 }
1283 },
1284
1285 mounted: function mounted() {
1286 var _this = this;
1287
1288 this.referenceElm = this.$parent.$refs.reference.$el;
1289 this.$parent.popperElm = this.popperElm = this.$el;
1290 this.$on('updatePopper', function () {
1291 if (_this.$parent.visible) _this.updatePopper();
1292 });
1293 this.$on('destroyPopper', this.destroyPopper);
1294 }
1295}; //
1296//
1297//
1298//
1299//
1300//
1301//
1302//
1303//
1304
1305/***/ }),
1306
1307/***/ 143:
1308/***/ (function(module, __webpack_exports__, __webpack_require__) {
1309
1310"use strict";
1311var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"el-select-dropdown el-popper",class:[{ 'is-multiple': _vm.$parent.multiple }, _vm.popperClass],style:({ minWidth: _vm.minWidth })},[_vm._t("default")],2)}
1312var staticRenderFns = []
1313var esExports = { render: render, staticRenderFns: staticRenderFns }
1314/* harmony default export */ __webpack_exports__["a"] = (esExports);
1315
1316/***/ }),
1317
1318/***/ 144:
1319/***/ (function(module, exports, __webpack_require__) {
1320
1321"use strict";
1322
1323
1324exports.__esModule = true;
1325exports.default = {
1326 data: function data() {
1327 return {
1328 hoverOption: -1
1329 };
1330 },
1331
1332
1333 computed: {
1334 optionsAllDisabled: function optionsAllDisabled() {
1335 return this.options.filter(function (option) {
1336 return option.visible;
1337 }).every(function (option) {
1338 return option.disabled;
1339 });
1340 }
1341 },
1342
1343 watch: {
1344 hoverIndex: function hoverIndex(val) {
1345 var _this = this;
1346
1347 if (typeof val === 'number' && val > -1) {
1348 this.hoverOption = this.options[val] || {};
1349 }
1350 this.options.forEach(function (option) {
1351 option.hover = _this.hoverOption === option;
1352 });
1353 }
1354 },
1355
1356 methods: {
1357 navigateOptions: function navigateOptions(direction) {
1358 var _this2 = this;
1359
1360 if (!this.visible) {
1361 this.visible = true;
1362 return;
1363 }
1364 if (this.options.length === 0 || this.filteredOptionsCount === 0) return;
1365 if (!this.optionsAllDisabled) {
1366 if (direction === 'next') {
1367 this.hoverIndex++;
1368 if (this.hoverIndex === this.options.length) {
1369 this.hoverIndex = 0;
1370 }
1371 } else if (direction === 'prev') {
1372 this.hoverIndex--;
1373 if (this.hoverIndex < 0) {
1374 this.hoverIndex = this.options.length - 1;
1375 }
1376 }
1377 var option = this.options[this.hoverIndex];
1378 if (option.disabled === true || option.groupDisabled === true || !option.visible) {
1379 this.navigateOptions(direction);
1380 }
1381 this.$nextTick(function () {
1382 return _this2.scrollToOption(_this2.hoverOption);
1383 });
1384 }
1385 }
1386 }
1387};
1388
1389/***/ }),
1390
1391/***/ 145:
1392/***/ (function(module, __webpack_exports__, __webpack_require__) {
1393
1394"use strict";
1395var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],staticClass:"el-select",class:[_vm.selectSize ? 'el-select--' + _vm.selectSize : ''],on:{"click":function($event){$event.stopPropagation();_vm.toggleMenu($event)}}},[(_vm.multiple)?_c('div',{ref:"tags",staticClass:"el-select__tags",style:({ 'max-width': _vm.inputWidth - 32 + 'px' })},[(_vm.collapseTags && _vm.selected.length)?_c('span',[_c('el-tag',{attrs:{"closable":!_vm.selectDisabled,"size":_vm.collapseTagSize,"hit":_vm.selected[0].hitState,"type":"info","disable-transitions":""},on:{"close":function($event){_vm.deleteTag($event, _vm.selected[0])}}},[_c('span',{staticClass:"el-select__tags-text"},[_vm._v(_vm._s(_vm.selected[0].currentLabel))])]),(_vm.selected.length > 1)?_c('el-tag',{attrs:{"closable":false,"size":_vm.collapseTagSize,"type":"info","disable-transitions":""}},[_c('span',{staticClass:"el-select__tags-text"},[_vm._v("+ "+_vm._s(_vm.selected.length - 1))])]):_vm._e()],1):_vm._e(),(!_vm.collapseTags)?_c('transition-group',{on:{"after-leave":_vm.resetInputHeight}},_vm._l((_vm.selected),function(item){return _c('el-tag',{key:_vm.getValueKey(item),attrs:{"closable":!_vm.selectDisabled,"size":_vm.collapseTagSize,"hit":item.hitState,"type":"info","disable-transitions":""},on:{"close":function($event){_vm.deleteTag($event, item)}}},[_c('span',{staticClass:"el-select__tags-text"},[_vm._v(_vm._s(item.currentLabel))])])})):_vm._e(),(_vm.filterable)?_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.query),expression:"query"}],ref:"input",staticClass:"el-select__input",class:[_vm.selectSize ? ("is-" + _vm.selectSize) : ''],style:({ width: _vm.inputLength + 'px', 'max-width': _vm.inputWidth - 42 + 'px' }),attrs:{"type":"text","disabled":_vm.selectDisabled,"autocomplete":_vm.autoComplete || _vm.autocomplete},domProps:{"value":(_vm.query)},on:{"focus":_vm.handleFocus,"blur":function($event){_vm.softFocus = false},"click":function($event){$event.stopPropagation();},"keyup":_vm.managePlaceholder,"keydown":[_vm.resetInputState,function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"down",40,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"up",38,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"esc",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"delete",[8,46],$event.key)){ return null; }_vm.deletePrevTag($event)}],"compositionstart":_vm.handleComposition,"compositionupdate":_vm.handleComposition,"compositionend":_vm.handleComposition,"input":[function($event){if($event.target.composing){ return; }_vm.query=$event.target.value},_vm.debouncedQueryChange]}}):_vm._e()],1):_vm._e(),_c('el-input',{ref:"reference",class:{ 'is-focus': _vm.visible },attrs:{"type":"text","placeholder":_vm.currentPlaceholder,"name":_vm.name,"id":_vm.id,"autocomplete":_vm.autoComplete || _vm.autocomplete,"size":_vm.selectSize,"disabled":_vm.selectDisabled,"readonly":_vm.readonly,"validate-event":false},on:{"focus":_vm.handleFocus,"blur":_vm.handleBlur},nativeOn:{"keyup":function($event){_vm.debouncedOnInputChange($event)},"keydown":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"down",40,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"up",38,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"enter",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"esc",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,"tab",9,$event.key)){ return null; }_vm.visible = false}],"paste":function($event){_vm.debouncedOnInputChange($event)},"mouseenter":function($event){_vm.inputHovering = true},"mouseleave":function($event){_vm.inputHovering = false}},model:{value:(_vm.selectedLabel),callback:function ($$v) {_vm.selectedLabel=$$v},expression:"selectedLabel"}},[(_vm.$slots.prefix)?_c('template',{attrs:{"slot":"prefix"},slot:"prefix"},[_vm._t("prefix")],2):_vm._e(),_c('i',{class:['el-select__caret', 'el-input__icon', 'el-icon-' + _vm.iconClass],attrs:{"slot":"suffix"},on:{"click":_vm.handleIconClick},slot:"suffix"})],2),_c('transition',{attrs:{"name":"el-zoom-in-top"},on:{"before-enter":_vm.handleMenuEnter,"after-leave":_vm.doDestroy}},[_c('el-select-menu',{directives:[{name:"show",rawName:"v-show",value:(_vm.visible && _vm.emptyText !== false),expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":_vm.popperAppendToBody}},[_c('el-scrollbar',{directives:[{name:"show",rawName:"v-show",value:(_vm.options.length > 0 && !_vm.loading),expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{ 'is-empty': !_vm.allowCreate && _vm.query && _vm.filteredOptionsCount === 0 },attrs:{"tag":"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[(_vm.showNewOption)?_c('el-option',{attrs:{"value":_vm.query,"created":""}}):_vm._e(),_vm._t("default")],2),(_vm.emptyText &&
1396 (!_vm.allowCreate || _vm.loading || (_vm.allowCreate && _vm.options.length === 0 )))?_c('p',{staticClass:"el-select-dropdown__empty"},[_vm._v("\n "+_vm._s(_vm.emptyText)+"\n ")]):_vm._e()],1)],1)],1)}
1397var staticRenderFns = []
1398var esExports = { render: render, staticRenderFns: staticRenderFns }
1399/* harmony default export */ __webpack_exports__["a"] = (esExports);
1400
1401/***/ }),
1402
1403/***/ 17:
1404/***/ (function(module, exports) {
1405
1406module.exports = require("element-ui/lib/scrollbar");
1407
1408/***/ }),
1409
1410/***/ 18:
1411/***/ (function(module, exports) {
1412
1413module.exports = require("element-ui/lib/utils/resize-event");
1414
1415/***/ }),
1416
1417/***/ 19:
1418/***/ (function(module, exports) {
1419
1420module.exports = require("element-ui/lib/mixins/focus");
1421
1422/***/ }),
1423
1424/***/ 2:
1425/***/ (function(module, exports) {
1426
1427module.exports = require("element-ui/lib/utils/util");
1428
1429/***/ }),
1430
1431/***/ 23:
1432/***/ (function(module, exports) {
1433
1434module.exports = require("element-ui/lib/utils/shared");
1435
1436/***/ }),
1437
1438/***/ 25:
1439/***/ (function(module, exports) {
1440
1441module.exports = require("element-ui/lib/tag");
1442
1443/***/ }),
1444
1445/***/ 26:
1446/***/ (function(module, exports) {
1447
1448module.exports = require("element-ui/lib/utils/scroll-into-view");
1449
1450/***/ }),
1451
1452/***/ 3:
1453/***/ (function(module, exports) {
1454
1455module.exports = require("element-ui/lib/utils/dom");
1456
1457/***/ }),
1458
1459/***/ 35:
1460/***/ (function(module, __webpack_exports__, __webpack_require__) {
1461
1462"use strict";
1463Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
1464/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__ = __webpack_require__(36);
1465/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__);
1466/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__ = __webpack_require__(37);
1467var normalizeComponent = __webpack_require__(0)
1468/* script */
1469
1470/* template */
1471
1472/* template functional */
1473 var __vue_template_functional__ = false
1474/* styles */
1475var __vue_styles__ = null
1476/* scopeId */
1477var __vue_scopeId__ = null
1478/* moduleIdentifier (server only) */
1479var __vue_module_identifier__ = null
1480var Component = normalizeComponent(
1481 __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default.a,
1482 __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__["a" /* default */],
1483 __vue_template_functional__,
1484 __vue_styles__,
1485 __vue_scopeId__,
1486 __vue_module_identifier__
1487)
1488
1489/* harmony default export */ __webpack_exports__["default"] = (Component.exports);
1490
1491
1492/***/ }),
1493
1494/***/ 36:
1495/***/ (function(module, exports, __webpack_require__) {
1496
1497"use strict";
1498
1499
1500exports.__esModule = true;
1501
1502var _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; }; //
1503//
1504//
1505//
1506//
1507//
1508//
1509//
1510//
1511//
1512//
1513//
1514//
1515//
1516//
1517//
1518//
1519
1520var _emitter = __webpack_require__(1);
1521
1522var _emitter2 = _interopRequireDefault(_emitter);
1523
1524var _util = __webpack_require__(2);
1525
1526function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1527
1528exports.default = {
1529 mixins: [_emitter2.default],
1530
1531 name: 'ElOption',
1532
1533 componentName: 'ElOption',
1534
1535 inject: ['select'],
1536
1537 props: {
1538 value: {
1539 required: true
1540 },
1541 label: [String, Number],
1542 created: Boolean,
1543 disabled: {
1544 type: Boolean,
1545 default: false
1546 }
1547 },
1548
1549 data: function data() {
1550 return {
1551 index: -1,
1552 groupDisabled: false,
1553 visible: true,
1554 hitState: false,
1555 hover: false
1556 };
1557 },
1558
1559
1560 computed: {
1561 isObject: function isObject() {
1562 return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';
1563 },
1564 currentLabel: function currentLabel() {
1565 return this.label || (this.isObject ? '' : this.value);
1566 },
1567 currentValue: function currentValue() {
1568 return this.value || this.label || '';
1569 },
1570 itemSelected: function itemSelected() {
1571 if (!this.select.multiple) {
1572 return this.isEqual(this.value, this.select.value);
1573 } else {
1574 return this.contains(this.select.value, this.value);
1575 }
1576 },
1577 limitReached: function limitReached() {
1578 if (this.select.multiple) {
1579 return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;
1580 } else {
1581 return false;
1582 }
1583 }
1584 },
1585
1586 watch: {
1587 currentLabel: function currentLabel() {
1588 if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');
1589 },
1590 value: function value(val, oldVal) {
1591 var _select = this.select,
1592 remote = _select.remote,
1593 valueKey = _select.valueKey;
1594
1595 if (!this.created && !remote) {
1596 if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {
1597 return;
1598 }
1599 this.dispatch('ElSelect', 'setSelected');
1600 }
1601 }
1602 },
1603
1604 methods: {
1605 isEqual: function isEqual(a, b) {
1606 if (!this.isObject) {
1607 return a === b;
1608 } else {
1609 var valueKey = this.select.valueKey;
1610 return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);
1611 }
1612 },
1613 contains: function contains() {
1614 var _this = this;
1615
1616 var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1617 var target = arguments[1];
1618
1619 if (!this.isObject) {
1620 return arr.indexOf(target) > -1;
1621 } else {
1622 var _ret = function () {
1623 var valueKey = _this.select.valueKey;
1624 return {
1625 v: arr.some(function (item) {
1626 return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);
1627 })
1628 };
1629 }();
1630
1631 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
1632 }
1633 },
1634 handleGroupDisabled: function handleGroupDisabled(val) {
1635 this.groupDisabled = val;
1636 },
1637 hoverItem: function hoverItem() {
1638 if (!this.disabled && !this.groupDisabled) {
1639 this.select.hoverIndex = this.select.options.indexOf(this);
1640 }
1641 },
1642 selectOptionClick: function selectOptionClick() {
1643 if (this.disabled !== true && this.groupDisabled !== true) {
1644 this.dispatch('ElSelect', 'handleOptionClick', [this, true]);
1645 }
1646 },
1647 queryChange: function queryChange(query) {
1648 this.visible = new RegExp((0, _util.escapeRegexpString)(query), 'i').test(this.currentLabel) || this.created;
1649 if (!this.visible) {
1650 this.select.filteredOptionsCount--;
1651 }
1652 }
1653 },
1654
1655 created: function created() {
1656 this.select.options.push(this);
1657 this.select.cachedOptions.push(this);
1658 this.select.optionsCount++;
1659 this.select.filteredOptionsCount++;
1660
1661 this.$on('queryChange', this.queryChange);
1662 this.$on('handleGroupDisabled', this.handleGroupDisabled);
1663 },
1664 beforeDestroy: function beforeDestroy() {
1665 this.select.onOptionDestroy(this.select.options.indexOf(this));
1666 }
1667};
1668
1669/***/ }),
1670
1671/***/ 37:
1672/***/ (function(module, __webpack_exports__, __webpack_require__) {
1673
1674"use strict";
1675var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:"show",rawName:"v-show",value:(_vm.visible),expression:"visible"}],staticClass:"el-select-dropdown__item",class:{
1676 'selected': _vm.itemSelected,
1677 'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,
1678 'hover': _vm.hover
1679 },on:{"mouseenter":_vm.hoverItem,"click":function($event){$event.stopPropagation();_vm.selectOptionClick($event)}}},[_vm._t("default",[_c('span',[_vm._v(_vm._s(_vm.currentLabel))])])],2)}
1680var staticRenderFns = []
1681var esExports = { render: render, staticRenderFns: staticRenderFns }
1682/* harmony default export */ __webpack_exports__["a"] = (esExports);
1683
1684/***/ }),
1685
1686/***/ 5:
1687/***/ (function(module, exports) {
1688
1689module.exports = require("element-ui/lib/mixins/locale");
1690
1691/***/ }),
1692
1693/***/ 6:
1694/***/ (function(module, exports) {
1695
1696module.exports = require("element-ui/lib/input");
1697
1698/***/ }),
1699
1700/***/ 7:
1701/***/ (function(module, exports) {
1702
1703module.exports = require("element-ui/lib/utils/vue-popper");
1704
1705/***/ })
1706
1707/******/ });
\No newline at end of file