123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952 |
- 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 = "/dist/";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 64);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ 0:
- /***/ (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
- }
- }
- /***/ }),
- /***/ 10:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/input");
- /***/ }),
- /***/ 11:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/mixins/migrating");
- /***/ }),
- /***/ 12:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/utils/clickoutside");
- /***/ }),
- /***/ 15:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/scrollbar");
- /***/ }),
- /***/ 18:
- /***/ (function(module, exports) {
- module.exports = require("throttle-debounce/debounce");
- /***/ }),
- /***/ 22:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/mixins/focus");
- /***/ }),
- /***/ 3:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/utils/util");
- /***/ }),
- /***/ 4:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/mixins/emitter");
- /***/ }),
- /***/ 5:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/utils/vue-popper");
- /***/ }),
- /***/ 64:
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/autocomplete/src/autocomplete.vue?vue&type=template&id=152f2ee6&
- var 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.close,
- expression: "close"
- }
- ],
- staticClass: "el-autocomplete",
- attrs: {
- "aria-haspopup": "listbox",
- role: "combobox",
- "aria-expanded": _vm.suggestionVisible,
- "aria-owns": _vm.id
- }
- },
- [
- _c(
- "el-input",
- _vm._b(
- {
- ref: "input",
- on: {
- input: _vm.handleInput,
- change: _vm.handleChange,
- focus: _vm.handleFocus,
- blur: _vm.handleBlur,
- clear: _vm.handleClear
- },
- nativeOn: {
- keydown: [
- function($event) {
- if (
- !("button" in $event) &&
- _vm._k($event.keyCode, "up", 38, $event.key, [
- "Up",
- "ArrowUp"
- ])
- ) {
- return null
- }
- $event.preventDefault()
- _vm.highlight(_vm.highlightedIndex - 1)
- },
- function($event) {
- if (
- !("button" in $event) &&
- _vm._k($event.keyCode, "down", 40, $event.key, [
- "Down",
- "ArrowDown"
- ])
- ) {
- return null
- }
- $event.preventDefault()
- _vm.highlight(_vm.highlightedIndex + 1)
- },
- function($event) {
- if (
- !("button" in $event) &&
- _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")
- ) {
- return null
- }
- return _vm.handleKeyEnter($event)
- },
- function($event) {
- if (
- !("button" in $event) &&
- _vm._k($event.keyCode, "tab", 9, $event.key, "Tab")
- ) {
- return null
- }
- return _vm.close($event)
- }
- ]
- }
- },
- "el-input",
- [_vm.$props, _vm.$attrs],
- false
- ),
- [
- _vm.$slots.prepend
- ? _c("template", { slot: "prepend" }, [_vm._t("prepend")], 2)
- : _vm._e(),
- _vm.$slots.append
- ? _c("template", { slot: "append" }, [_vm._t("append")], 2)
- : _vm._e(),
- _vm.$slots.prefix
- ? _c("template", { slot: "prefix" }, [_vm._t("prefix")], 2)
- : _vm._e(),
- _vm.$slots.suffix
- ? _c("template", { slot: "suffix" }, [_vm._t("suffix")], 2)
- : _vm._e()
- ],
- 2
- ),
- _c(
- "el-autocomplete-suggestions",
- {
- ref: "suggestions",
- class: [_vm.popperClass ? _vm.popperClass : ""],
- attrs: {
- "visible-arrow": "",
- "popper-options": _vm.popperOptions,
- "append-to-body": _vm.popperAppendToBody,
- placement: _vm.placement,
- id: _vm.id
- }
- },
- _vm._l(_vm.suggestions, function(item, index) {
- return _c(
- "li",
- {
- key: index,
- class: { highlighted: _vm.highlightedIndex === index },
- attrs: {
- id: _vm.id + "-item-" + index,
- role: "option",
- "aria-selected": _vm.highlightedIndex === index
- },
- on: {
- click: function($event) {
- _vm.select(item)
- }
- }
- },
- [
- _vm._t(
- "default",
- [
- _vm._v("\n " + _vm._s(item[_vm.valueKey]) + "\n ")
- ],
- { item: item }
- )
- ],
- 2
- )
- }),
- 0
- )
- ],
- 1
- )
- }
- var staticRenderFns = []
- render._withStripped = true
- // CONCATENATED MODULE: ./packages/autocomplete/src/autocomplete.vue?vue&type=template&id=152f2ee6&
- // EXTERNAL MODULE: external "throttle-debounce/debounce"
- var debounce_ = __webpack_require__(18);
- var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);
- // EXTERNAL MODULE: external "element-ui/lib/input"
- var input_ = __webpack_require__(10);
- var input_default = /*#__PURE__*/__webpack_require__.n(input_);
- // EXTERNAL MODULE: external "element-ui/lib/utils/clickoutside"
- var clickoutside_ = __webpack_require__(12);
- var clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/autocomplete/src/autocomplete-suggestions.vue?vue&type=template&id=cd10dcf0&
- var autocomplete_suggestionsvue_type_template_id_cd10dcf0_render = function() {
- var _vm = this
- var _h = _vm.$createElement
- var _c = _vm._self._c || _h
- return _c(
- "transition",
- { attrs: { name: "el-zoom-in-top" }, on: { "after-leave": _vm.doDestroy } },
- [
- _c(
- "div",
- {
- directives: [
- {
- name: "show",
- rawName: "v-show",
- value: _vm.showPopper,
- expression: "showPopper"
- }
- ],
- staticClass: "el-autocomplete-suggestion el-popper",
- class: {
- "is-loading": !_vm.parent.hideLoading && _vm.parent.loading
- },
- style: { width: _vm.dropdownWidth },
- attrs: { role: "region" }
- },
- [
- _c(
- "el-scrollbar",
- {
- attrs: {
- tag: "ul",
- "wrap-class": "el-autocomplete-suggestion__wrap",
- "view-class": "el-autocomplete-suggestion__list"
- }
- },
- [
- !_vm.parent.hideLoading && _vm.parent.loading
- ? _c("li", [_c("i", { staticClass: "el-icon-loading" })])
- : _vm._t("default")
- ],
- 2
- )
- ],
- 1
- )
- ]
- )
- }
- var autocomplete_suggestionsvue_type_template_id_cd10dcf0_staticRenderFns = []
- autocomplete_suggestionsvue_type_template_id_cd10dcf0_render._withStripped = true
- // CONCATENATED MODULE: ./packages/autocomplete/src/autocomplete-suggestions.vue?vue&type=template&id=cd10dcf0&
- // EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper"
- var vue_popper_ = __webpack_require__(5);
- var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);
- // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter"
- var emitter_ = __webpack_require__(4);
- var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
- // EXTERNAL MODULE: external "element-ui/lib/scrollbar"
- var scrollbar_ = __webpack_require__(15);
- var scrollbar_default = /*#__PURE__*/__webpack_require__.n(scrollbar_);
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/autocomplete/src/autocomplete-suggestions.vue?vue&type=script&lang=js&
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ var autocomplete_suggestionsvue_type_script_lang_js_ = ({
- components: { ElScrollbar: scrollbar_default.a },
- mixins: [vue_popper_default.a, emitter_default.a],
- componentName: 'ElAutocompleteSuggestions',
- data: function data() {
- return {
- parent: this.$parent,
- dropdownWidth: ''
- };
- },
- props: {
- options: {
- default: function _default() {
- return {
- gpuAcceleration: false
- };
- }
- },
- id: String
- },
- methods: {
- select: function select(item) {
- this.dispatch('ElAutocomplete', 'item-click', item);
- }
- },
- updated: function updated() {
- var _this = this;
- this.$nextTick(function (_) {
- _this.popperJS && _this.updatePopper();
- });
- },
- mounted: function mounted() {
- this.$parent.popperElm = this.popperElm = this.$el;
- this.referenceElm = this.$parent.$refs.input.$refs.input || this.$parent.$refs.input.$refs.textarea;
- this.referenceList = this.$el.querySelector('.el-autocomplete-suggestion__list');
- this.referenceList.setAttribute('role', 'listbox');
- this.referenceList.setAttribute('id', this.id);
- },
- created: function created() {
- var _this2 = this;
- this.$on('visible', function (val, inputWidth) {
- _this2.dropdownWidth = inputWidth + 'px';
- _this2.showPopper = val;
- });
- }
- });
- // CONCATENATED MODULE: ./packages/autocomplete/src/autocomplete-suggestions.vue?vue&type=script&lang=js&
- /* harmony default export */ var src_autocomplete_suggestionsvue_type_script_lang_js_ = (autocomplete_suggestionsvue_type_script_lang_js_);
- // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
- var componentNormalizer = __webpack_require__(0);
- // CONCATENATED MODULE: ./packages/autocomplete/src/autocomplete-suggestions.vue
- /* normalize component */
- var component = Object(componentNormalizer["a" /* default */])(
- src_autocomplete_suggestionsvue_type_script_lang_js_,
- autocomplete_suggestionsvue_type_template_id_cd10dcf0_render,
- autocomplete_suggestionsvue_type_template_id_cd10dcf0_staticRenderFns,
- false,
- null,
- null,
- null
-
- )
- /* hot reload */
- if (false) { var api; }
- component.options.__file = "packages/autocomplete/src/autocomplete-suggestions.vue"
- /* harmony default export */ var autocomplete_suggestions = (component.exports);
- // EXTERNAL MODULE: external "element-ui/lib/mixins/migrating"
- var migrating_ = __webpack_require__(11);
- var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);
- // EXTERNAL MODULE: external "element-ui/lib/utils/util"
- var util_ = __webpack_require__(3);
- // EXTERNAL MODULE: external "element-ui/lib/mixins/focus"
- var focus_ = __webpack_require__(22);
- var focus_default = /*#__PURE__*/__webpack_require__.n(focus_);
- // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/autocomplete/src/autocomplete.vue?vue&type=script&lang=js&
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- /* harmony default export */ var autocompletevue_type_script_lang_js_ = ({
- name: 'ElAutocomplete',
- mixins: [emitter_default.a, focus_default()('input'), migrating_default.a],
- inheritAttrs: false,
- componentName: 'ElAutocomplete',
- components: {
- ElInput: input_default.a,
- ElAutocompleteSuggestions: autocomplete_suggestions
- },
- directives: { Clickoutside: clickoutside_default.a },
- props: {
- valueKey: {
- type: String,
- default: 'value'
- },
- popperClass: String,
- popperOptions: Object,
- placeholder: String,
- clearable: {
- type: Boolean,
- default: false
- },
- disabled: Boolean,
- name: String,
- size: String,
- value: String,
- maxlength: Number,
- minlength: Number,
- autofocus: Boolean,
- fetchSuggestions: Function,
- triggerOnFocus: {
- type: Boolean,
- default: true
- },
- customItem: String,
- selectWhenUnmatched: {
- type: Boolean,
- default: false
- },
- prefixIcon: String,
- suffixIcon: String,
- label: String,
- debounce: {
- type: Number,
- default: 300
- },
- placement: {
- type: String,
- default: 'bottom-start'
- },
- hideLoading: Boolean,
- popperAppendToBody: {
- type: Boolean,
- default: true
- },
- highlightFirstItem: {
- type: Boolean,
- default: false
- }
- },
- data: function data() {
- return {
- activated: false,
- suggestions: [],
- loading: false,
- highlightedIndex: -1,
- suggestionDisabled: false
- };
- },
- computed: {
- suggestionVisible: function suggestionVisible() {
- var suggestions = this.suggestions;
- var isValidData = Array.isArray(suggestions) && suggestions.length > 0;
- return (isValidData || this.loading) && this.activated;
- },
- id: function id() {
- return 'el-autocomplete-' + Object(util_["generateId"])();
- }
- },
- watch: {
- suggestionVisible: function suggestionVisible(val) {
- var $input = this.getInput();
- if ($input) {
- this.broadcast('ElAutocompleteSuggestions', 'visible', [val, $input.offsetWidth]);
- }
- }
- },
- methods: {
- getMigratingConfig: function getMigratingConfig() {
- return {
- props: {
- 'custom-item': 'custom-item is removed, use scoped slot instead.',
- 'props': 'props is removed, use value-key instead.'
- }
- };
- },
- getData: function getData(queryString) {
- var _this = this;
- if (this.suggestionDisabled) {
- return;
- }
- this.loading = true;
- this.fetchSuggestions(queryString, function (suggestions) {
- _this.loading = false;
- if (_this.suggestionDisabled) {
- return;
- }
- if (Array.isArray(suggestions)) {
- _this.suggestions = suggestions;
- _this.highlightedIndex = _this.highlightFirstItem ? 0 : -1;
- } else {
- console.error('[Element Error][Autocomplete]autocomplete suggestions must be an array');
- }
- });
- },
- handleInput: function handleInput(value) {
- this.$emit('input', value);
- this.suggestionDisabled = false;
- if (!this.triggerOnFocus && !value) {
- this.suggestionDisabled = true;
- this.suggestions = [];
- return;
- }
- this.debouncedGetData(value);
- },
- handleChange: function handleChange(value) {
- this.$emit('change', value);
- },
- handleFocus: function handleFocus(event) {
- this.activated = true;
- this.$emit('focus', event);
- if (this.triggerOnFocus) {
- this.debouncedGetData(this.value);
- }
- },
- handleBlur: function handleBlur(event) {
- this.$emit('blur', event);
- },
- handleClear: function handleClear() {
- this.activated = false;
- this.$emit('clear');
- },
- close: function close(e) {
- this.activated = false;
- },
- handleKeyEnter: function handleKeyEnter(e) {
- var _this2 = this;
- if (this.suggestionVisible && this.highlightedIndex >= 0 && this.highlightedIndex < this.suggestions.length) {
- e.preventDefault();
- this.select(this.suggestions[this.highlightedIndex]);
- } else if (this.selectWhenUnmatched) {
- this.$emit('select', { value: this.value });
- this.$nextTick(function (_) {
- _this2.suggestions = [];
- _this2.highlightedIndex = -1;
- });
- }
- },
- select: function select(item) {
- var _this3 = this;
- this.$emit('input', item[this.valueKey]);
- this.$emit('select', item);
- this.$nextTick(function (_) {
- _this3.suggestions = [];
- _this3.highlightedIndex = -1;
- });
- },
- highlight: function highlight(index) {
- if (!this.suggestionVisible || this.loading) {
- return;
- }
- if (index < 0) {
- this.highlightedIndex = -1;
- return;
- }
- if (index >= this.suggestions.length) {
- index = this.suggestions.length - 1;
- }
- var suggestion = this.$refs.suggestions.$el.querySelector('.el-autocomplete-suggestion__wrap');
- var suggestionList = suggestion.querySelectorAll('.el-autocomplete-suggestion__list li');
- var highlightItem = suggestionList[index];
- var scrollTop = suggestion.scrollTop;
- var offsetTop = highlightItem.offsetTop;
- if (offsetTop + highlightItem.scrollHeight > scrollTop + suggestion.clientHeight) {
- suggestion.scrollTop += highlightItem.scrollHeight;
- }
- if (offsetTop < scrollTop) {
- suggestion.scrollTop -= highlightItem.scrollHeight;
- }
- this.highlightedIndex = index;
- var $input = this.getInput();
- $input.setAttribute('aria-activedescendant', this.id + '-item-' + this.highlightedIndex);
- },
- getInput: function getInput() {
- return this.$refs.input.getInput();
- }
- },
- mounted: function mounted() {
- var _this4 = this;
- this.debouncedGetData = debounce_default()(this.debounce, this.getData);
- this.$on('item-click', function (item) {
- _this4.select(item);
- });
- var $input = this.getInput();
- $input.setAttribute('role', 'textbox');
- $input.setAttribute('aria-autocomplete', 'list');
- $input.setAttribute('aria-controls', 'id');
- $input.setAttribute('aria-activedescendant', this.id + '-item-' + this.highlightedIndex);
- },
- beforeDestroy: function beforeDestroy() {
- this.$refs.suggestions.$destroy();
- }
- });
- // CONCATENATED MODULE: ./packages/autocomplete/src/autocomplete.vue?vue&type=script&lang=js&
- /* harmony default export */ var src_autocompletevue_type_script_lang_js_ = (autocompletevue_type_script_lang_js_);
- // CONCATENATED MODULE: ./packages/autocomplete/src/autocomplete.vue
- /* normalize component */
- var autocomplete_component = Object(componentNormalizer["a" /* default */])(
- src_autocompletevue_type_script_lang_js_,
- render,
- staticRenderFns,
- false,
- null,
- null,
- null
-
- )
- /* hot reload */
- if (false) { var autocomplete_api; }
- autocomplete_component.options.__file = "packages/autocomplete/src/autocomplete.vue"
- /* harmony default export */ var autocomplete = (autocomplete_component.exports);
- // CONCATENATED MODULE: ./packages/autocomplete/index.js
- /* istanbul ignore next */
- autocomplete.install = function (Vue) {
- Vue.component(autocomplete.name, autocomplete);
- };
- /* harmony default export */ var packages_autocomplete = __webpack_exports__["default"] = (autocomplete);
- /***/ })
- /******/ });
|