app模板、应用模板、组件模板、widget模板
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

4633 lines
125 KiB

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 = 558);
/******/ })
/************************************************************************/
/******/ ({
/***/ 10:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/util");
/***/ }),
/***/ 101:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tag/src/tag.vue?vue&type=script&lang=js&
/* harmony default export */ var tagvue_type_script_lang_js_ = ({
name: 'TisTag',
props: {
text: String,
closable: Boolean,
type: String,
hit: Boolean,
disableTransitions: Boolean,
color: String,
size: String,
effect: {
type: String,
default: 'light',
validator: function validator(val) {
return ['dark', 'light', 'plain'].indexOf(val) !== -1;
}
}
},
methods: {
handleClose: function handleClose(event) {
event.stopPropagation();
this.$emit('close', event);
},
handleClick: function handleClick(event) {
this.$emit('click', event);
}
},
computed: {
tagSize: function tagSize() {
return this.size || (this.$ELEMENT || {}).size;
}
},
render: function render(h) {
var type = this.type,
tagSize = this.tagSize,
hit = this.hit,
effect = this.effect;
var classes = ['el-tag', type ? 'el-tag--' + type : '', tagSize ? 'el-tag--' + tagSize : '', effect ? 'el-tag--' + effect : '', hit && 'is-hit'];
var tagEl = h(
'span',
{
'class': classes,
style: { backgroundColor: this.color },
on: {
'click': this.handleClick
}
},
[this.$slots.default, this.closable && h('i', { 'class': 'el-tag__close el-icon-close', on: {
'click': this.handleClose
}
})]
);
return this.disableTransitions ? tagEl : h(
'transition',
{
attrs: { name: 'el-zoom-in-center' }
},
[tagEl]
);
}
});
// CONCATENATED MODULE: ./packages/tag/src/tag.vue?vue&type=script&lang=js&
/* harmony default export */ var src_tagvue_type_script_lang_js_ = (tagvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);
// CONCATENATED MODULE: ./packages/tag/src/tag.vue
var render, staticRenderFns
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_tagvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/tag/src/tag.vue"
/* harmony default export */ var tag = (component.exports);
// CONCATENATED MODULE: ./packages/tag/index.js
/* istanbul ignore next */
tag.install = function (Vue) {
Vue.component(tag.name, tag);
};
/* harmony default export */ var packages_tag = __webpack_exports__["default"] = (tag);
/***/ }),
/***/ 103:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/aria-utils");
/***/ }),
/***/ 121:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__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/radio/src/radio.vue?vue&type=template&id=69cd6268&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"label",
{
staticClass: "el-radio",
class: [
_vm.border && _vm.radioSize ? "el-radio--" + _vm.radioSize : "",
{ "is-disabled": _vm.isDisabled },
{ "is-focus": _vm.focus },
{ "is-bordered": _vm.border },
{ "is-checked": _vm.model === _vm.label }
],
attrs: {
role: "radio",
"aria-checked": _vm.model === _vm.label,
"aria-disabled": _vm.isDisabled,
tabindex: _vm.tabIndex
},
on: {
keydown: function($event) {
if (
!("button" in $event) &&
_vm._k($event.keyCode, "space", 32, $event.key, [" ", "Spacebar"])
) {
return null
}
$event.stopPropagation()
$event.preventDefault()
_vm.model = _vm.isDisabled ? _vm.model : _vm.label
}
}
},
[
_c(
"span",
{
staticClass: "el-radio__input",
class: {
"is-disabled": _vm.isDisabled,
"is-checked": _vm.model === _vm.label
}
},
[
_c("span", { staticClass: "el-radio__inner" }),
_c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.model,
expression: "model"
}
],
ref: "radio",
staticClass: "el-radio__original",
attrs: {
type: "radio",
"aria-hidden": "true",
name: _vm.name,
disabled: _vm.isDisabled,
tabindex: "-1"
},
domProps: {
value: _vm.label,
checked: _vm._q(_vm.model, _vm.label)
},
on: {
focus: function($event) {
_vm.focus = true
},
blur: function($event) {
_vm.focus = false
},
change: [
function($event) {
_vm.model = _vm.label
},
_vm.handleChange
]
}
})
]
),
_c(
"span",
{
staticClass: "el-radio__label",
on: {
keydown: function($event) {
$event.stopPropagation()
}
}
},
[
_vm._t("default"),
!_vm.$slots.default ? [_vm._v(_vm._s(_vm.label))] : _vm._e()
],
2
)
]
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/radio/src/radio.vue?vue&type=template&id=69cd6268&
// EXTERNAL MODULE: external "tis-ui/lib/mixins/emitter"
var emitter_ = __webpack_require__(13);
var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/radio/src/radio.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var radiovue_type_script_lang_js_ = ({
name: 'TisRadio',
mixins: [emitter_default.a],
inject: {
elForm: {
default: ''
},
elFormItem: {
default: ''
}
},
componentName: 'TisRadio',
props: {
value: {},
label: {},
disabled: Boolean,
name: String,
border: Boolean,
size: String
},
data: function data() {
return {
focus: false
};
},
computed: {
isGroup: function isGroup() {
var parent = this.$parent;
while (parent) {
if (parent.$options.componentName !== 'TisRadioGroup') {
parent = parent.$parent;
} else {
this._radioGroup = parent;
return true;
}
}
return false;
},
model: {
get: function get() {
return this.isGroup ? this._radioGroup.value : this.value;
},
set: function set(val) {
if (this.isGroup) {
this.dispatch('TisRadioGroup', 'input', [val]);
} else {
this.$emit('input', val);
}
this.$refs.radio && (this.$refs.radio.checked = this.model === this.label);
}
},
_elFormItemSize: function _elFormItemSize() {
return (this.elFormItem || {}).elFormItemSize;
},
radioSize: function radioSize() {
var temRadioSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
return this.isGroup ? this._radioGroup.radioGroupSize || temRadioSize : temRadioSize;
},
isDisabled: function isDisabled() {
return this.isGroup ? this._radioGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled;
},
tabIndex: function tabIndex() {
return this.isDisabled || this.isGroup && this.model !== this.label ? -1 : 0;
}
},
methods: {
handleChange: function handleChange() {
var _this = this;
this.$nextTick(function () {
_this.$emit('change', _this.model);
_this.isGroup && _this.dispatch('TisRadioGroup', 'handleChange', _this.model);
});
}
}
});
// CONCATENATED MODULE: ./packages/radio/src/radio.vue?vue&type=script&lang=js&
/* harmony default export */ var src_radiovue_type_script_lang_js_ = (radiovue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);
// CONCATENATED MODULE: ./packages/radio/src/radio.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_radiovue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/radio/src/radio.vue"
/* harmony default export */ var src_radio = (component.exports);
// CONCATENATED MODULE: ./packages/radio/index.js
/* istanbul ignore next */
src_radio.install = function (Vue) {
Vue.component(src_radio.name, src_radio);
};
/* harmony default export */ var packages_radio = __webpack_exports__["default"] = (src_radio);
/***/ }),
/***/ 13:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/mixins/emitter");
/***/ }),
/***/ 152:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__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/cascader-panel/src/cascader-panel.vue?vue&type=template&id=34932346&
var cascader_panelvue_type_template_id_34932346_render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
class: ["el-cascader-panel", _vm.border && "is-bordered"],
on: { keydown: _vm.handleKeyDown }
},
_vm._l(_vm.menus, function(menu, index) {
return _c("cascader-menu", {
key: index,
ref: "menu",
refInFor: true,
attrs: { index: index, nodes: menu }
})
}),
1
)
}
var staticRenderFns = []
cascader_panelvue_type_template_id_34932346_render._withStripped = true
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-panel.vue?vue&type=template&id=34932346&
// EXTERNAL MODULE: external "babel-helper-vue-jsx-merge-props"
var external_babel_helper_vue_jsx_merge_props_ = __webpack_require__(90);
var external_babel_helper_vue_jsx_merge_props_default = /*#__PURE__*/__webpack_require__.n(external_babel_helper_vue_jsx_merge_props_);
// EXTERNAL MODULE: ./packages/scrollbar/index.js + 3 modules
var scrollbar = __webpack_require__(66);
// EXTERNAL MODULE: ./packages/checkbox/index.js + 5 modules
var packages_checkbox = __webpack_require__(68);
// EXTERNAL MODULE: ./packages/radio/index.js + 5 modules
var packages_radio = __webpack_require__(121);
// EXTERNAL MODULE: external "tis-ui/lib/utils/util"
var util_ = __webpack_require__(10);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/cascader-panel/src/cascader-node.vue?vue&type=script&lang=js&
var stopPropagation = function stopPropagation(e) {
return e.stopPropagation();
};
/* harmony default export */ var cascader_nodevue_type_script_lang_js_ = ({
inject: ['panel'],
components: {
ElCheckbox: packages_checkbox["default"],
ElRadio: packages_radio["default"]
},
props: {
node: {
required: true
},
nodeId: String
},
computed: {
config: function config() {
return this.panel.config;
},
isLeaf: function isLeaf() {
return this.node.isLeaf;
},
isDisabled: function isDisabled() {
return this.node.isDisabled;
},
checkedValue: function checkedValue() {
return this.panel.checkedValue;
},
isChecked: function isChecked() {
return this.node.isSameNode(this.checkedValue);
},
inActivePath: function inActivePath() {
return this.isInPath(this.panel.activePath);
},
inCheckedPath: function inCheckedPath() {
var _this = this;
if (!this.config.checkStrictly) return false;
return this.panel.checkedNodePaths.some(function (checkedPath) {
return _this.isInPath(checkedPath);
});
},
value: function value() {
return this.node.getValueByOption();
}
},
methods: {
handleExpand: function handleExpand() {
var _this2 = this;
var panel = this.panel,
node = this.node,
isDisabled = this.isDisabled,
config = this.config;
var multiple = config.multiple,
checkStrictly = config.checkStrictly;
if (!checkStrictly && isDisabled || node.loading) return;
if (config.lazy && !node.loaded) {
panel.lazyLoad(node, function () {
// do not use cached leaf value here, invoke this.isLeaf to get new value.
var isLeaf = _this2.isLeaf;
if (!isLeaf) _this2.handleExpand();
if (multiple) {
// if leaf sync checked state, else clear checked state
var checked = isLeaf ? node.checked : false;
_this2.handleMultiCheckChange(checked);
}
});
} else {
panel.handleExpand(node);
}
},
handleCheckChange: function handleCheckChange() {
var panel = this.panel,
value = this.value,
node = this.node;
panel.handleCheckChange(value);
panel.handleExpand(node);
},
handleMultiCheckChange: function handleMultiCheckChange(checked) {
this.node.doCheck(checked);
this.panel.calculateMultiCheckedValue();
},
isInPath: function isInPath(pathNodes) {
var node = this.node;
var selectedPathNode = pathNodes[node.level - 1] || {};
return selectedPathNode.uid === node.uid;
},
renderPrefix: function renderPrefix(h) {
var isLeaf = this.isLeaf,
isChecked = this.isChecked,
config = this.config;
var checkStrictly = config.checkStrictly,
multiple = config.multiple;
if (multiple) {
return this.renderCheckbox(h);
} else if (checkStrictly) {
return this.renderRadio(h);
} else if (isLeaf && isChecked) {
return this.renderCheckIcon(h);
}
return null;
},
renderPostfix: function renderPostfix(h) {
var node = this.node,
isLeaf = this.isLeaf;
if (node.loading) {
return this.renderLoadingIcon(h);
} else if (!isLeaf) {
return this.renderExpandIcon(h);
}
return null;
},
renderCheckbox: function renderCheckbox(h) {
var node = this.node,
config = this.config,
isDisabled = this.isDisabled;
var events = {
on: { change: this.handleMultiCheckChange },
nativeOn: {}
};
if (config.checkStrictly) {
// when every node is selectable, click event should not trigger expand event.
events.nativeOn.click = stopPropagation;
}
return h('tis-checkbox', external_babel_helper_vue_jsx_merge_props_default()([{
attrs: {
value: node.checked,
indeterminate: node.indeterminate,
disabled: isDisabled
}
}, events]));
},
renderRadio: function renderRadio(h) {
var checkedValue = this.checkedValue,
value = this.value,
isDisabled = this.isDisabled;
// to keep same reference if value cause radio's checked state is calculated by reference comparision;
if (Object(util_["isEqual"])(value, checkedValue)) {
value = checkedValue;
}
return h(
'tis-radio',
{
attrs: {
value: checkedValue,
label: value,
disabled: isDisabled
},
on: {
'change': this.handleCheckChange
},
nativeOn: {
'click': stopPropagation
}
},
[h('span')]
);
},
renderCheckIcon: function renderCheckIcon(h) {
return h('i', { 'class': 'el-icon-check el-cascader-node__prefix' });
},
renderLoadingIcon: function renderLoadingIcon(h) {
return h('i', { 'class': 'el-icon-loading el-cascader-node__postfix' });
},
renderExpandIcon: function renderExpandIcon(h) {
return h('i', { 'class': 'el-icon-arrow-right el-cascader-node__postfix' });
},
renderContent: function renderContent(h) {
var panel = this.panel,
node = this.node;
var render = panel.renderLabelFn;
var vnode = render ? render({ node: node, data: node.data }) : null;
return h(
'span',
{ 'class': 'el-cascader-node__label' },
[vnode || node.label]
);
}
},
render: function render(h) {
var _this3 = this;
var inActivePath = this.inActivePath,
inCheckedPath = this.inCheckedPath,
isChecked = this.isChecked,
isLeaf = this.isLeaf,
isDisabled = this.isDisabled,
config = this.config,
nodeId = this.nodeId;
var expandTrigger = config.expandTrigger,
checkStrictly = config.checkStrictly,
multiple = config.multiple;
var disabled = !checkStrictly && isDisabled;
var events = { on: {} };
if (expandTrigger === 'click') {
events.on.click = this.handleExpand;
} else {
events.on.mouseenter = function (e) {
_this3.handleExpand();
_this3.$emit('expand', e);
};
events.on.focus = function (e) {
_this3.handleExpand();
_this3.$emit('expand', e);
};
}
if (isLeaf && !isDisabled && !checkStrictly && !multiple) {
events.on.click = this.handleCheckChange;
}
return h(
'li',
external_babel_helper_vue_jsx_merge_props_default()([{
attrs: {
role: 'menuitem',
id: nodeId,
'aria-expanded': inActivePath,
tabindex: disabled ? null : -1
},
'class': {
'el-cascader-node': true,
'is-selectable': checkStrictly,
'in-active-path': inActivePath,
'in-checked-path': inCheckedPath,
'is-active': isChecked,
'is-disabled': disabled
}
}, events]),
[this.renderPrefix(h), this.renderContent(h), this.renderPostfix(h)]
);
}
});
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-node.vue?vue&type=script&lang=js&
/* harmony default export */ var src_cascader_nodevue_type_script_lang_js_ = (cascader_nodevue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-node.vue
var cascader_node_render, cascader_node_staticRenderFns
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_cascader_nodevue_type_script_lang_js_,
cascader_node_render,
cascader_node_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/cascader-panel/src/cascader-node.vue"
/* harmony default export */ var cascader_node = (component.exports);
// EXTERNAL MODULE: external "tis-ui/lib/mixins/locale"
var locale_ = __webpack_require__(38);
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/cascader-panel/src/cascader-menu.vue?vue&type=script&lang=js&
/* harmony default export */ var cascader_menuvue_type_script_lang_js_ = ({
name: 'TisCascaderMenu',
mixins: [locale_default.a],
inject: ['panel'],
components: {
ElScrollbar: scrollbar["default"],
CascaderNode: cascader_node
},
props: {
nodes: {
type: Array,
required: true
},
index: Number
},
data: function data() {
return {
activeNode: null,
hoverTimer: null,
id: Object(util_["generateId"])()
};
},
computed: {
isEmpty: function isEmpty() {
return !this.nodes.length;
},
menuId: function menuId() {
return 'cascader-menu-' + this.id + '-' + this.index;
}
},
methods: {
handleExpand: function handleExpand(e) {
this.activeNode = e.target;
},
handleMouseMove: function handleMouseMove(e) {
var activeNode = this.activeNode,
hoverTimer = this.hoverTimer;
var hoverZone = this.$refs.hoverZone;
if (!activeNode || !hoverZone) return;
if (activeNode.contains(e.target)) {
clearTimeout(hoverTimer);
var _$el$getBoundingClien = this.$el.getBoundingClientRect(),
left = _$el$getBoundingClien.left;
var startX = e.clientX - left;
var _$el = this.$el,
offsetWidth = _$el.offsetWidth,
offsetHeight = _$el.offsetHeight;
var top = activeNode.offsetTop;
var bottom = top + activeNode.offsetHeight;
hoverZone.innerHTML = '\n <path style="pointer-events: auto;" fill="transparent" d="M' + startX + ' ' + top + ' L' + offsetWidth + ' 0 V' + top + ' Z" />\n <path style="pointer-events: auto;" fill="transparent" d="M' + startX + ' ' + bottom + ' L' + offsetWidth + ' ' + offsetHeight + ' V' + bottom + ' Z" />\n ';
} else if (!hoverTimer) {
this.hoverTimer = setTimeout(this.clearHoverZone, this.panel.config.hoverThreshold);
}
},
clearHoverZone: function clearHoverZone() {
var hoverZone = this.$refs.hoverZone;
if (!hoverZone) return;
hoverZone.innerHTML = '';
},
renderEmptyText: function renderEmptyText(h) {
return h(
'div',
{ 'class': 'el-cascader-menu__empty-text' },
[this.t('el.cascader.noData')]
);
},
renderNodeList: function renderNodeList(h) {
var menuId = this.menuId;
var isHoverMenu = this.panel.isHoverMenu;
var events = { on: {} };
if (isHoverMenu) {
events.on.expand = this.handleExpand;
}
var nodes = this.nodes.map(function (node, index) {
var hasChildren = node.hasChildren;
return h('cascader-node', external_babel_helper_vue_jsx_merge_props_default()([{
key: node.uid,
attrs: { node: node,
'node-id': menuId + '-' + index,
'aria-haspopup': hasChildren,
'aria-owns': hasChildren ? menuId : null
}
}, events]));
});
return [].concat(nodes, [isHoverMenu ? h('svg', { ref: 'hoverZone', 'class': 'el-cascader-menu__hover-zone' }) : null]);
}
},
render: function render(h) {
var isEmpty = this.isEmpty,
menuId = this.menuId;
var events = { nativeOn: {} };
// optimize hover to expand experience (#8010)
if (this.panel.isHoverMenu) {
events.nativeOn.mousemove = this.handleMouseMove;
// events.nativeOn.mouseleave = this.clearHoverZone;
}
return h(
'tis-scrollbar',
external_babel_helper_vue_jsx_merge_props_default()([{
attrs: {
tag: 'ul',
role: 'menu',
id: menuId,
'wrap-class': 'el-cascader-menu__wrap',
'view-class': {
'el-cascader-menu__list': true,
'is-empty': isEmpty
}
},
'class': 'el-cascader-menu' }, events]),
[isEmpty ? this.renderEmptyText(h) : this.renderNodeList(h)]
);
}
});
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-menu.vue?vue&type=script&lang=js&
/* harmony default export */ var src_cascader_menuvue_type_script_lang_js_ = (cascader_menuvue_type_script_lang_js_);
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-menu.vue
var cascader_menu_render, cascader_menu_staticRenderFns
/* normalize component */
var cascader_menu_component = Object(componentNormalizer["a" /* default */])(
src_cascader_menuvue_type_script_lang_js_,
cascader_menu_render,
cascader_menu_staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var cascader_menu_api; }
cascader_menu_component.options.__file = "packages/cascader-panel/src/cascader-menu.vue"
/* harmony default export */ var cascader_menu = (cascader_menu_component.exports);
// EXTERNAL MODULE: external "tis-ui/lib/utils/shared"
var shared_ = __webpack_require__(49);
// CONCATENATED MODULE: ./packages/cascader-panel/src/node.js
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var uid = 0;
var node_Node = function () {
function Node(data, config, parentNode) {
_classCallCheck(this, Node);
this.data = data;
this.config = config;
this.parent = parentNode || null;
this.level = !this.parent ? 1 : this.parent.level + 1;
this.uid = uid++;
this.initState();
this.initChildren();
}
Node.prototype.initState = function initState() {
var _config = this.config,
valueKey = _config.value,
labelKey = _config.label;
this.value = this.data[valueKey];
this.label = this.data[labelKey];
this.pathNodes = this.calculatePathNodes();
this.path = this.pathNodes.map(function (node) {
return node.value;
});
this.pathLabels = this.pathNodes.map(function (node) {
return node.label;
});
// lazy load
this.loading = false;
this.loaded = false;
};
Node.prototype.initChildren = function initChildren() {
var _this = this;
var config = this.config;
var childrenKey = config.children;
var childrenData = this.data[childrenKey];
this.hasChildren = Array.isArray(childrenData);
this.children = (childrenData || []).map(function (child) {
return new Node(child, config, _this);
});
};
Node.prototype.calculatePathNodes = function calculatePathNodes() {
var nodes = [this];
var parent = this.parent;
while (parent) {
nodes.unshift(parent);
parent = parent.parent;
}
return nodes;
};
Node.prototype.getPath = function getPath() {
return this.path;
};
Node.prototype.getValue = function getValue() {
return this.value;
};
Node.prototype.getValueByOption = function getValueByOption() {
return this.config.emitPath ? this.getPath() : this.getValue();
};
Node.prototype.getText = function getText(allLevels, separator) {
return allLevels ? this.pathLabels.join(separator) : this.label;
};
Node.prototype.isSameNode = function isSameNode(checkedValue) {
var value = this.getValueByOption();
return this.config.multiple && Array.isArray(checkedValue) ? checkedValue.some(function (val) {
return Object(util_["isEqual"])(val, value);
}) : Object(util_["isEqual"])(checkedValue, value);
};
Node.prototype.broadcast = function broadcast(event) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
var handlerName = 'onParent' + Object(util_["capitalize"])(event);
this.children.forEach(function (child) {
if (child) {
// bottom up
child.broadcast.apply(child, [event].concat(args));
child[handlerName] && child[handlerName].apply(child, args);
}
});
};
Node.prototype.emit = function emit(event) {
var parent = this.parent;
var handlerName = 'onChild' + Object(util_["capitalize"])(event);
if (parent) {
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
parent[handlerName] && parent[handlerName].apply(parent, args);
parent.emit.apply(parent, [event].concat(args));
}
};
Node.prototype.onParentCheck = function onParentCheck(checked) {
if (!this.isDisabled) {
this.setCheckState(checked);
}
};
Node.prototype.onChildCheck = function onChildCheck() {
var children = this.children;
var validChildren = children.filter(function (child) {
return !child.isDisabled;
});
var checked = validChildren.length ? validChildren.every(function (child) {
return child.checked;
}) : false;
this.setCheckState(checked);
};
Node.prototype.setCheckState = function setCheckState(checked) {
var totalNum = this.children.length;
var checkedNum = this.children.reduce(function (c, p) {
var num = p.checked ? 1 : p.indeterminate ? 0.5 : 0;
return c + num;
}, 0);
this.checked = checked;
this.indeterminate = checkedNum !== totalNum && checkedNum > 0;
};
Node.prototype.syncCheckState = function syncCheckState(checkedValue) {
var value = this.getValueByOption();
var checked = this.isSameNode(checkedValue, value);
this.doCheck(checked);
};
Node.prototype.doCheck = function doCheck(checked) {
if (this.checked !== checked) {
if (this.config.checkStrictly) {
this.checked = checked;
} else {
// bottom up to unify the calculation of the indeterminate state
this.broadcast('check', checked);
this.setCheckState(checked);
this.emit('check');
}
}
};
_createClass(Node, [{
key: 'isDisabled',
get: function get() {
var data = this.data,
parent = this.parent,
config = this.config;
var disabledKey = config.disabled;
var checkStrictly = config.checkStrictly;
return data[disabledKey] || !checkStrictly && parent && parent.isDisabled;
}
}, {
key: 'isLeaf',
get: function get() {
var data = this.data,
loaded = this.loaded,
hasChildren = this.hasChildren,
children = this.children;
var _config2 = this.config,
lazy = _config2.lazy,
leafKey = _config2.leaf;
if (lazy) {
var isLeaf = Object(shared_["isDef"])(data[leafKey]) ? data[leafKey] : loaded ? !children.length : false;
this.hasChildren = !isLeaf;
return isLeaf;
}
return !hasChildren;
}
}]);
return Node;
}();
/* harmony default export */ var src_node = (node_Node);
// CONCATENATED MODULE: ./packages/cascader-panel/src/store.js
function store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var flatNodes = function flatNodes(data, leafOnly) {
return data.reduce(function (res, node) {
if (node.isLeaf) {
res.push(node);
} else {
!leafOnly && res.push(node);
res = res.concat(flatNodes(node.children, leafOnly));
}
return res;
}, []);
};
var store_Store = function () {
function Store(data, config) {
store_classCallCheck(this, Store);
this.config = config;
this.initNodes(data);
}
Store.prototype.initNodes = function initNodes(data) {
var _this = this;
data = Object(util_["coerceTruthyValueToArray"])(data);
this.nodes = data.map(function (nodeData) {
return new src_node(nodeData, _this.config);
});
this.flattedNodes = this.getFlattedNodes(false, false);
this.leafNodes = this.getFlattedNodes(true, false);
};
Store.prototype.appendNode = function appendNode(nodeData, parentNode) {
var node = new src_node(nodeData, this.config, parentNode);
var children = parentNode ? parentNode.children : this.nodes;
children.push(node);
};
Store.prototype.appendNodes = function appendNodes(nodeDataList, parentNode) {
var _this2 = this;
nodeDataList = Object(util_["coerceTruthyValueToArray"])(nodeDataList);
nodeDataList.forEach(function (nodeData) {
return _this2.appendNode(nodeData, parentNode);
});
};
Store.prototype.getNodes = function getNodes() {
return this.nodes;
};
Store.prototype.getFlattedNodes = function getFlattedNodes(leafOnly) {
var cached = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var cachedNodes = leafOnly ? this.leafNodes : this.flattedNodes;
return cached ? cachedNodes : flatNodes(this.nodes, leafOnly);
};
Store.prototype.getNodeByValue = function getNodeByValue(value) {
if (value) {
var nodes = this.getFlattedNodes(false, !this.config.lazy).filter(function (node) {
return Object(util_["valueEquals"])(node.path, value) || node.value === value;
});
return nodes && nodes.length ? nodes[0] : null;
}
return null;
};
return Store;
}();
/* harmony default export */ var src_store = (store_Store);
// EXTERNAL MODULE: external "tis-ui/lib/utils/merge"
var merge_ = __webpack_require__(33);
var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
// EXTERNAL MODULE: external "tis-ui/lib/utils/aria-utils"
var aria_utils_ = __webpack_require__(103);
var aria_utils_default = /*#__PURE__*/__webpack_require__.n(aria_utils_);
// EXTERNAL MODULE: external "tis-ui/lib/utils/scroll-into-view"
var scroll_into_view_ = __webpack_require__(95);
var scroll_into_view_default = /*#__PURE__*/__webpack_require__.n(scroll_into_view_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/cascader-panel/src/cascader-panel.vue?vue&type=script&lang=js&
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var KeyCode = aria_utils_default.a.keys;
var DefaultProps = {
expandTrigger: 'click', // or hover
multiple: false,
checkStrictly: false, // whether all nodes can be selected
emitPath: true, // wether to emit an array of all levels value in which node is located
lazy: false,
lazyLoad: util_["noop"],
value: 'value',
label: 'label',
children: 'children',
leaf: 'leaf',
disabled: 'disabled',
hoverThreshold: 500
};
var cascader_panelvue_type_script_lang_js_isLeaf = function isLeaf(el) {
return !el.getAttribute('aria-owns');
};
var getSibling = function getSibling(el, distance) {
var parentNode = el.parentNode;
if (parentNode) {
var siblings = parentNode.querySelectorAll('.el-cascader-node[tabindex="-1"]');
var index = Array.prototype.indexOf.call(siblings, el);
return siblings[index + distance] || null;
}
return null;
};
var getMenuIndex = function getMenuIndex(el, distance) {
if (!el) return;
var pieces = el.id.split('-');
return Number(pieces[pieces.length - 2]);
};
var focusNode = function focusNode(el) {
if (!el) return;
el.focus();
!cascader_panelvue_type_script_lang_js_isLeaf(el) && el.click();
};
var checkNode = function checkNode(el) {
if (!el) return;
var input = el.querySelector('input');
if (input) {
input.click();
} else if (cascader_panelvue_type_script_lang_js_isLeaf(el)) {
el.click();
}
};
/* harmony default export */ var cascader_panelvue_type_script_lang_js_ = ({
name: 'TisCascaderPanel',
components: {
CascaderMenu: cascader_menu
},
props: {
value: {},
options: Array,
props: Object,
border: {
type: Boolean,
default: true
},
renderLabel: Function
},
provide: function provide() {
return {
panel: this
};
},
data: function data() {
return {
checkedValue: null,
checkedNodePaths: [],
store: [],
menus: [],
activePath: [],
loadCount: 0
};
},
computed: {
config: function config() {
return merge_default()(_extends({}, DefaultProps), this.props || {});
},
multiple: function multiple() {
return this.config.multiple;
},
checkStrictly: function checkStrictly() {
return this.config.checkStrictly;
},
leafOnly: function leafOnly() {
return !this.checkStrictly;
},
isHoverMenu: function isHoverMenu() {
return this.config.expandTrigger === 'hover';
},
renderLabelFn: function renderLabelFn() {
return this.renderLabel || this.$scopedSlots.default;
}
},
watch: {
options: {
handler: function handler() {
this.initStore();
},
immediate: true,
deep: true
},
value: function value() {
this.syncCheckedValue();
this.checkStrictly && this.calculateCheckedNodePaths();
},
checkedValue: function checkedValue(val) {
if (!Object(util_["isEqual"])(val, this.value)) {
this.checkStrictly && this.calculateCheckedNodePaths();
this.$emit('input', val);
this.$emit('change', val);
}
}
},
mounted: function mounted() {
if (!Object(util_["isEmpty"])(this.value)) {
this.syncCheckedValue();
}
},
methods: {
initStore: function initStore() {
var config = this.config,
options = this.options;
if (config.lazy && Object(util_["isEmpty"])(options)) {
this.lazyLoad();
} else {
this.store = new src_store(options, config);
this.menus = [this.store.getNodes()];
this.syncMenuState();
}
},
syncCheckedValue: function syncCheckedValue() {
var value = this.value,
checkedValue = this.checkedValue;
if (!Object(util_["isEqual"])(value, checkedValue)) {
this.checkedValue = value;
this.syncMenuState();
}
},
syncMenuState: function syncMenuState() {
var multiple = this.multiple,
checkStrictly = this.checkStrictly;
this.syncActivePath();
multiple && this.syncMultiCheckState();
checkStrictly && this.calculateCheckedNodePaths();
this.$nextTick(this.scrollIntoView);
},
syncMultiCheckState: function syncMultiCheckState() {
var _this = this;
var nodes = this.getFlattedNodes(this.leafOnly);
nodes.forEach(function (node) {
node.syncCheckState(_this.checkedValue);
});
},
syncActivePath: function syncActivePath() {
var _this2 = this;
var store = this.store,
multiple = this.multiple,
activePath = this.activePath,
checkedValue = this.checkedValue;
if (!Object(util_["isEmpty"])(activePath)) {
var nodes = activePath.map(function (node) {
return _this2.getNodeByValue(node.getValue());
});
this.expandNodes(nodes);
} else if (!Object(util_["isEmpty"])(checkedValue)) {
var value = multiple ? checkedValue[0] : checkedValue;
var checkedNode = this.getNodeByValue(value) || {};
var _nodes = (checkedNode.pathNodes || []).slice(0, -1);
this.expandNodes(_nodes);
} else {
this.activePath = [];
this.menus = [store.getNodes()];
}
},
expandNodes: function expandNodes(nodes) {
var _this3 = this;
nodes.forEach(function (node) {
return _this3.handleExpand(node, true /* silent */);
});
},
calculateCheckedNodePaths: function calculateCheckedNodePaths() {
var _this4 = this;
var checkedValue = this.checkedValue,
multiple = this.multiple;
var checkedValues = multiple ? Object(util_["coerceTruthyValueToArray"])(checkedValue) : [checkedValue];
this.checkedNodePaths = checkedValues.map(function (v) {
var checkedNode = _this4.getNodeByValue(v);
return checkedNode ? checkedNode.pathNodes : [];
});
},
handleKeyDown: function handleKeyDown(e) {
var target = e.target,
keyCode = e.keyCode;
switch (keyCode) {
case KeyCode.up:
var prev = getSibling(target, -1);
focusNode(prev);
break;
case KeyCode.down:
var next = getSibling(target, 1);
focusNode(next);
break;
case KeyCode.left:
var preMenu = this.$refs.menu[getMenuIndex(target) - 1];
if (preMenu) {
var expandedNode = preMenu.$el.querySelector('.el-cascader-node[aria-expanded="true"]');
focusNode(expandedNode);
}
break;
case KeyCode.right:
var nextMenu = this.$refs.menu[getMenuIndex(target) + 1];
if (nextMenu) {
var firstNode = nextMenu.$el.querySelector('.el-cascader-node[tabindex="-1"]');
focusNode(firstNode);
}
break;
case KeyCode.enter:
checkNode(target);
break;
case KeyCode.esc:
case KeyCode.tab:
this.$emit('close');
break;
default:
return;
}
},
handleExpand: function handleExpand(node, silent) {
var activePath = this.activePath;
var level = node.level;
var path = activePath.slice(0, level - 1);
var menus = this.menus.slice(0, level);
if (!node.isLeaf) {
path.push(node);
menus.push(node.children);
}
this.activePath = path;
this.menus = menus;
if (!silent) {
var pathValues = path.map(function (node) {
return node.getValue();
});
var activePathValues = activePath.map(function (node) {
return node.getValue();
});
if (!Object(util_["valueEquals"])(pathValues, activePathValues)) {
this.$emit('active-item-change', pathValues); // Deprecated
this.$emit('expand-change', pathValues);
}
}
},
handleCheckChange: function handleCheckChange(value) {
this.checkedValue = value;
},
lazyLoad: function lazyLoad(node, onFullfiled) {
var _this5 = this;
var config = this.config;
if (!node) {
node = node || { root: true, level: 0 };
this.store = new src_store([], config);
this.menus = [this.store.getNodes()];
}
node.loading = true;
var resolve = function resolve(dataList) {
var parent = node.root ? null : node;
dataList && dataList.length && _this5.store.appendNodes(dataList, parent);
node.loading = false;
node.loaded = true;
// dispose default value on lazy load mode
if (Array.isArray(_this5.checkedValue)) {
var nodeValue = _this5.checkedValue[_this5.loadCount++];
var valueKey = _this5.config.value;
var leafKey = _this5.config.leaf;
if (Array.isArray(dataList) && dataList.filter(function (item) {
return item[valueKey] === nodeValue;
}).length > 0) {
var checkedNode = _this5.store.getNodeByValue(nodeValue);
if (!checkedNode.data[leafKey]) {
_this5.lazyLoad(checkedNode, function () {
_this5.handleExpand(checkedNode);
});
}
if (_this5.loadCount === _this5.checkedValue.length) {
_this5.$parent.computePresentText();
}
}
}
onFullfiled && onFullfiled(dataList);
};
config.lazyLoad(node, resolve);
},
/**
* public methods
*/
calculateMultiCheckedValue: function calculateMultiCheckedValue() {
this.checkedValue = this.getCheckedNodes(this.leafOnly).map(function (node) {
return node.getValueByOption();
});
},
scrollIntoView: function scrollIntoView() {
if (this.$isServer) return;
var menus = this.$refs.menu || [];
menus.forEach(function (menu) {
var menuElement = menu.$el;
if (menuElement) {
var container = menuElement.querySelector('.el-scrollbar__wrap');
var activeNode = menuElement.querySelector('.el-cascader-node.is-active') || menuElement.querySelector('.el-cascader-node.in-active-path');
scroll_into_view_default()(container, activeNode);
}
});
},
getNodeByValue: function getNodeByValue(val) {
return this.store.getNodeByValue(val);
},
getFlattedNodes: function getFlattedNodes(leafOnly) {
var cached = !this.config.lazy;
return this.store.getFlattedNodes(leafOnly, cached);
},
getCheckedNodes: function getCheckedNodes(leafOnly) {
var checkedValue = this.checkedValue,
multiple = this.multiple;
if (multiple) {
var nodes = this.getFlattedNodes(leafOnly);
return nodes.filter(function (node) {
return node.checked;
});
} else {
return Object(util_["isEmpty"])(checkedValue) ? [] : [this.getNodeByValue(checkedValue)];
}
},
clearCheckedNodes: function clearCheckedNodes() {
var config = this.config,
leafOnly = this.leafOnly;
var multiple = config.multiple,
emitPath = config.emitPath;
if (multiple) {
this.getCheckedNodes(leafOnly).filter(function (node) {
return !node.isDisabled;
}).forEach(function (node) {
return node.doCheck(false);
});
this.calculateMultiCheckedValue();
} else {
this.checkedValue = emitPath ? [] : null;
}
}
}
});
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-panel.vue?vue&type=script&lang=js&
/* harmony default export */ var src_cascader_panelvue_type_script_lang_js_ = (cascader_panelvue_type_script_lang_js_);
// CONCATENATED MODULE: ./packages/cascader-panel/src/cascader-panel.vue
/* normalize component */
var cascader_panel_component = Object(componentNormalizer["a" /* default */])(
src_cascader_panelvue_type_script_lang_js_,
cascader_panelvue_type_template_id_34932346_render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var cascader_panel_api; }
cascader_panel_component.options.__file = "packages/cascader-panel/src/cascader-panel.vue"
/* harmony default export */ var cascader_panel = (cascader_panel_component.exports);
// CONCATENATED MODULE: ./packages/cascader-panel/index.js
/* istanbul ignore next */
cascader_panel.install = function (Vue) {
Vue.component(cascader_panel.name, cascader_panel);
};
/* harmony default export */ var packages_cascader_panel = __webpack_exports__["default"] = (cascader_panel);
/***/ }),
/***/ 2:
/***/ (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,
(options.functional ? this.parent : 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 functional 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
}
}
/***/ }),
/***/ 33:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/merge");
/***/ }),
/***/ 34:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/vue-popper");
/***/ }),
/***/ 36:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/mixins/migrating");
/***/ }),
/***/ 38:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/mixins/locale");
/***/ }),
/***/ 44:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/resize-event");
/***/ }),
/***/ 49:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/shared");
/***/ }),
/***/ 52:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__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/input/src/input.vue?vue&type=template&id=343dd774&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"div",
{
class: [
_vm.type === "textarea" ? "el-textarea" : "el-input",
_vm.inputSize ? "el-input--" + _vm.inputSize : "",
{
"is-disabled": _vm.inputDisabled,
"is-exceed": _vm.inputExceed,
"el-input-group": _vm.$slots.prepend || _vm.$slots.append,
"el-input-group--append": _vm.$slots.append,
"el-input-group--prepend": _vm.$slots.prepend,
"el-input--prefix": _vm.$slots.prefix || _vm.prefixIcon,
"el-input--suffix":
_vm.$slots.suffix ||
_vm.suffixIcon ||
_vm.clearable ||
_vm.showPassword
}
],
on: {
mouseenter: function($event) {
_vm.hovering = true
},
mouseleave: function($event) {
_vm.hovering = false
}
}
},
[
_vm.type !== "textarea"
? [
_vm.$slots.prepend
? _c(
"div",
{ staticClass: "el-input-group__prepend" },
[_vm._t("prepend")],
2
)
: _vm._e(),
_vm.type !== "textarea"
? _c(
"input",
_vm._b(
{
ref: "input",
staticClass: "el-input__inner",
attrs: {
tabindex: _vm.tabindex,
type: _vm.showPassword
? _vm.passwordVisible
? "text"
: "password"
: _vm.type,
disabled: _vm.inputDisabled,
readonly: _vm.readonly,
autocomplete: _vm.autoComplete || _vm.autocomplete,
"aria-label": _vm.label
},
on: {
compositionstart: _vm.handleCompositionStart,
compositionupdate: _vm.handleCompositionUpdate,
compositionend: _vm.handleCompositionEnd,
input: _vm.handleInput,
focus: _vm.handleFocus,
blur: _vm.handleBlur,
change: _vm.handleChange
}
},
"input",
_vm.$attrs,
false
)
)
: _vm._e(),
_vm.$slots.prefix || _vm.prefixIcon
? _c(
"span",
{ staticClass: "el-input__prefix" },
[
_vm._t("prefix"),
_vm.prefixIcon
? _c("i", {
staticClass: "el-input__icon",
class: _vm.prefixIcon
})
: _vm._e()
],
2
)
: _vm._e(),
_vm.getSuffixVisible()
? _c("span", { staticClass: "el-input__suffix" }, [
_c(
"span",
{ staticClass: "el-input__suffix-inner" },
[
!_vm.showClear ||
!_vm.showPwdVisible ||
!_vm.isWordLimitVisible
? [
_vm._t("suffix"),
_vm.suffixIcon
? _c("i", {
staticClass: "el-input__icon",
class: _vm.suffixIcon
})
: _vm._e()
]
: _vm._e(),
_vm.showClear
? _c("i", {
staticClass:
"el-input__icon el-icon-circle-close el-input__clear",
on: {
mousedown: function($event) {
$event.preventDefault()
},
click: _vm.clear
}
})
: _vm._e(),
_vm.showPwdVisible
? _c("i", {
staticClass:
"el-input__icon el-icon-view el-input__clear",
on: { click: _vm.handlePasswordVisible }
})
: _vm._e(),
_vm.isWordLimitVisible
? _c("span", { staticClass: "el-input__count" }, [
_c(
"span",
{ staticClass: "el-input__count-inner" },
[
_vm._v(
"\n " +
_vm._s(_vm.textLength) +
"/" +
_vm._s(_vm.upperLimit) +
"\n "
)
]
)
])
: _vm._e()
],
2
),
_vm.validateState
? _c("i", {
staticClass: "el-input__icon",
class: ["el-input__validateIcon", _vm.validateIcon]
})
: _vm._e()
])
: _vm._e(),
_vm.$slots.append
? _c(
"div",
{ staticClass: "el-input-group__append" },
[_vm._t("append")],
2
)
: _vm._e()
]
: _c(
"textarea",
_vm._b(
{
ref: "textarea",
staticClass: "el-textarea__inner",
style: _vm.textareaStyle,
attrs: {
tabindex: _vm.tabindex,
disabled: _vm.inputDisabled,
readonly: _vm.readonly,
autocomplete: _vm.autoComplete || _vm.autocomplete,
"aria-label": _vm.label
},
on: {
compositionstart: _vm.handleCompositionStart,
compositionupdate: _vm.handleCompositionUpdate,
compositionend: _vm.handleCompositionEnd,
input: _vm.handleInput,
focus: _vm.handleFocus,
blur: _vm.handleBlur,
change: _vm.handleChange
}
},
"textarea",
_vm.$attrs,
false
)
),
_vm.isWordLimitVisible && _vm.type === "textarea"
? _c("span", { staticClass: "el-input__count" }, [
_vm._v(_vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit))
])
: _vm._e()
],
2
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=343dd774&
// EXTERNAL MODULE: external "tis-ui/lib/mixins/emitter"
var emitter_ = __webpack_require__(13);
var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
// EXTERNAL MODULE: external "tis-ui/lib/mixins/migrating"
var migrating_ = __webpack_require__(36);
var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);
// CONCATENATED MODULE: ./packages/input/src/calcTextareaHeight.js
var hiddenTextarea = void 0;
var HIDDEN_STYLE = '\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n';
var CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];
function calculateNodeStyling(targetElement) {
var style = window.getComputedStyle(targetElement);
var boxSizing = style.getPropertyValue('box-sizing');
var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));
var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));
var contextStyle = CONTEXT_STYLE.map(function (name) {
return name + ':' + style.getPropertyValue(name);
}).join(';');
return { contextStyle: contextStyle, paddingSize: paddingSize, borderSize: borderSize, boxSizing: boxSizing };
}
function calcTextareaHeight(targetElement) {
var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (!hiddenTextarea) {
hiddenTextarea = document.createElement('textarea');
document.body.appendChild(hiddenTextarea);
}
var _calculateNodeStyling = calculateNodeStyling(targetElement),
paddingSize = _calculateNodeStyling.paddingSize,
borderSize = _calculateNodeStyling.borderSize,
boxSizing = _calculateNodeStyling.boxSizing,
contextStyle = _calculateNodeStyling.contextStyle;
hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE);
hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';
var height = hiddenTextarea.scrollHeight;
var result = {};
if (boxSizing === 'border-box') {
height = height + borderSize;
} else if (boxSizing === 'content-box') {
height = height - paddingSize;
}
hiddenTextarea.value = '';
var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
if (minRows !== null) {
var minHeight = singleRowHeight * minRows;
if (boxSizing === 'border-box') {
minHeight = minHeight + paddingSize + borderSize;
}
height = Math.max(minHeight, height);
result.minHeight = minHeight + 'px';
}
if (maxRows !== null) {
var maxHeight = singleRowHeight * maxRows;
if (boxSizing === 'border-box') {
maxHeight = maxHeight + paddingSize + borderSize;
}
height = Math.min(maxHeight, height);
}
result.height = height + 'px';
hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);
hiddenTextarea = null;
return result;
};
// EXTERNAL MODULE: external "tis-ui/lib/utils/merge"
var merge_ = __webpack_require__(33);
var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
// EXTERNAL MODULE: external "tis-ui/lib/utils/shared"
var shared_ = __webpack_require__(49);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var inputvue_type_script_lang_js_ = ({
name: 'TisInput',
componentName: 'TisInput',
mixins: [emitter_default.a, migrating_default.a],
inheritAttrs: false,
inject: {
elForm: {
default: ''
},
elFormItem: {
default: ''
}
},
data: function data() {
return {
textareaCalcStyle: {},
hovering: false,
focused: false,
isComposing: false,
passwordVisible: false
};
},
props: {
value: [String, Number],
size: String,
resize: String,
form: String,
disabled: Boolean,
readonly: Boolean,
type: {
type: String,
default: 'text'
},
autosize: {
type: [Boolean, Object],
default: false
},
autocomplete: {
type: String,
default: 'off'
},
/** @Deprecated in next major version */
autoComplete: {
type: String,
validator: function validator(val) {
false && false;
return true;
}
},
validateEvent: {
type: Boolean,
default: true
},
suffixIcon: String,
prefixIcon: String,
label: String,
clearable: {
type: Boolean,
default: false
},
showPassword: {
type: Boolean,
default: false
},
showWordLimit: {
type: Boolean,
default: false
},
tabindex: String
},
computed: {
_elFormItemSize: function _elFormItemSize() {
return (this.elFormItem || {}).elFormItemSize;
},
validateState: function validateState() {
return this.elFormItem ? this.elFormItem.validateState : '';
},
needStatusIcon: function needStatusIcon() {
return this.elForm ? this.elForm.statusIcon : false;
},
validateIcon: function validateIcon() {
return {
validating: 'el-icon-loading',
success: 'el-icon-circle-check',
error: 'el-icon-circle-close'
}[this.validateState];
},
textareaStyle: function textareaStyle() {
return merge_default()({}, this.textareaCalcStyle, { resize: this.resize });
},
inputSize: function inputSize() {
return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
},
inputDisabled: function inputDisabled() {
return this.disabled || (this.elForm || {}).disabled;
},
nativeInputValue: function nativeInputValue() {
return this.value === null || this.value === undefined ? '' : String(this.value);
},
showClear: function showClear() {
return this.clearable && !this.inputDisabled && !this.readonly && this.nativeInputValue && (this.focused || this.hovering);
},
showPwdVisible: function showPwdVisible() {
return this.showPassword && !this.inputDisabled && !this.readonly && (!!this.nativeInputValue || this.focused);
},
isWordLimitVisible: function isWordLimitVisible() {
return this.showWordLimit && this.$attrs.maxlength && (this.type === 'text' || this.type === 'textarea') && !this.inputDisabled && !this.readonly && !this.showPassword;
},
upperLimit: function upperLimit() {
return this.$attrs.maxlength;
},
textLength: function textLength() {
if (typeof this.value === 'number') {
return String(this.value).length;
}
return (this.value || '').length;
},
inputExceed: function inputExceed() {
// show exceed style if length of initial value greater then maxlength
return this.isWordLimitVisible && this.textLength > this.upperLimit;
}
},
watch: {
value: function value(val) {
this.$nextTick(this.resizeTextarea);
if (this.validateEvent) {
this.dispatch('ElFormItem', 'el.form.change', [val]);
}
},
// native input value is set explicitly
// do not use v-model / :value in template
// see: https://github.com/ElemeFE/element/issues/14521
nativeInputValue: function nativeInputValue() {
this.setNativeInputValue();
},
// when change between <input> and <textarea>,
// update DOM dependent value and styles
// https://github.com/ElemeFE/element/issues/14857
type: function type() {
var _this = this;
this.$nextTick(function () {
_this.setNativeInputValue();
_this.resizeTextarea();
_this.updateIconOffset();
});
}
},
methods: {
focus: function focus() {
this.getInput().focus();
},
blur: function blur() {
this.getInput().blur();
},
getMigratingConfig: function getMigratingConfig() {
return {
props: {
'icon': 'icon is removed, use suffix-icon / prefix-icon instead.',
'on-icon-click': 'on-icon-click is removed.'
},
events: {
'click': 'click is removed.'
}
};
},
handleBlur: function handleBlur(event) {
this.focused = false;
this.$emit('blur', event);
if (this.validateEvent) {
this.dispatch('ElFormItem', 'el.form.blur', [this.value]);
}
},
select: function select() {
this.getInput().select();
},
resizeTextarea: function resizeTextarea() {
if (this.$isServer) return;
var autosize = this.autosize,
type = this.type;
if (type !== 'textarea') return;
if (!autosize) {
this.textareaCalcStyle = {
minHeight: calcTextareaHeight(this.$refs.textarea).minHeight
};
return;
}
var minRows = autosize.minRows;
var maxRows = autosize.maxRows;
this.textareaCalcStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows);
},
setNativeInputValue: function setNativeInputValue() {
var input = this.getInput();
if (!input) return;
if (input.value === this.nativeInputValue) return;
input.value = this.nativeInputValue;
},
handleFocus: function handleFocus(event) {
this.focused = true;
this.$emit('focus', event);
},
handleCompositionStart: function handleCompositionStart() {
this.isComposing = true;
},
handleCompositionUpdate: function handleCompositionUpdate(event) {
var text = event.target.value;
var lastCharacter = text[text.length - 1] || '';
this.isComposing = !Object(shared_["isKorean"])(lastCharacter);
},
handleCompositionEnd: function handleCompositionEnd(event) {
if (this.isComposing) {
this.isComposing = false;
this.handleInput(event);
}
},
handleInput: function handleInput(event) {
// should not emit input during composition
// see: https://github.com/ElemeFE/element/issues/10516
if (this.isComposing) return;
// hack for https://github.com/ElemeFE/element/issues/8548
// should remove the following line when we don't support IE
if (event.target.value === this.nativeInputValue) return;
this.$emit('input', event.target.value);
// ensure native input value is controlled
// see: https://github.com/ElemeFE/element/issues/12850
this.$nextTick(this.setNativeInputValue);
},
handleChange: function handleChange(event) {
this.$emit('change', event.target.value);
},
calcIconOffset: function calcIconOffset(place) {
var elList = [].slice.call(this.$el.querySelectorAll('.el-input__' + place) || []);
if (!elList.length) return;
var el = null;
for (var i = 0; i < elList.length; i++) {
if (elList[i].parentNode === this.$el) {
el = elList[i];
break;
}
}
if (!el) return;
var pendantMap = {
suffix: 'append',
prefix: 'prepend'
};
var pendant = pendantMap[place];
if (this.$slots[pendant]) {
el.style.transform = 'translateX(' + (place === 'suffix' ? '-' : '') + this.$el.querySelector('.el-input-group__' + pendant).offsetWidth + 'px)';
} else {
el.removeAttribute('style');
}
},
updateIconOffset: function updateIconOffset() {
this.calcIconOffset('prefix');
this.calcIconOffset('suffix');
},
clear: function clear() {
this.$emit('input', '');
this.$emit('change', '');
this.$emit('clear');
},
handlePasswordVisible: function handlePasswordVisible() {
this.passwordVisible = !this.passwordVisible;
this.focus();
},
getInput: function getInput() {
return this.$refs.input || this.$refs.textarea;
},
getSuffixVisible: function getSuffixVisible() {
return this.$slots.suffix || this.suffixIcon || this.showClear || this.showPassword || this.isWordLimitVisible || this.validateState && this.needStatusIcon;
}
},
created: function created() {
this.$on('inputSelect', this.select);
},
mounted: function mounted() {
this.setNativeInputValue();
this.resizeTextarea();
this.updateIconOffset();
},
updated: function updated() {
this.$nextTick(this.updateIconOffset);
}
});
// CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=script&lang=js&
/* harmony default export */ var src_inputvue_type_script_lang_js_ = (inputvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);
// CONCATENATED MODULE: ./packages/input/src/input.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_inputvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/input/src/input.vue"
/* harmony default export */ var input = (component.exports);
// CONCATENATED MODULE: ./packages/input/index.js
/* istanbul ignore next */
input.install = function (Vue) {
Vue.component(input.name, input);
};
/* harmony default export */ var packages_input = __webpack_exports__["default"] = (input);
/***/ }),
/***/ 558:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__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/cascader/src/cascader.vue?vue&type=template&id=032537a6&
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: function() {
return _vm.toggleDropDownVisible(false)
},
expression: "() => toggleDropDownVisible(false)"
}
],
ref: "reference",
class: [
"el-cascader",
_vm.realSize && "el-cascader--" + _vm.realSize,
{ "is-disabled": _vm.isDisabled }
],
on: {
mouseenter: function($event) {
_vm.inputHover = true
},
mouseleave: function($event) {
_vm.inputHover = false
},
click: function() {
return _vm.toggleDropDownVisible(_vm.readonly ? undefined : true)
},
keydown: _vm.handleKeyDown
}
},
[
_c(
"tis-input",
{
ref: "input",
class: { "is-focus": _vm.dropDownVisible },
attrs: {
size: _vm.realSize,
placeholder: _vm.placeholder,
readonly: _vm.readonly,
disabled: _vm.isDisabled,
"validate-event": false
},
on: {
focus: _vm.handleFocus,
blur: _vm.handleBlur,
input: _vm.handleInput
},
model: {
value: _vm.multiple ? _vm.presentText : _vm.inputValue,
callback: function($$v) {
_vm.multiple ? _vm.presentText : (_vm.inputValue = $$v)
},
expression: "multiple ? presentText : inputValue"
}
},
[
_c("template", { slot: "suffix" }, [
_vm.clearBtnVisible
? _c("i", {
key: "clear",
staticClass: "el-input__icon el-icon-circle-close",
on: {
click: function($event) {
$event.stopPropagation()
return _vm.handleClear($event)
}
}
})
: _c("i", {
key: "arrow-down",
class: [
"el-input__icon",
"el-icon-arrow-down",
_vm.dropDownVisible && "is-reverse"
],
on: {
click: function($event) {
$event.stopPropagation()
_vm.toggleDropDownVisible()
}
}
})
])
],
2
),
_vm.multiple
? _c(
"div",
{ staticClass: "el-cascader__tags" },
[
_vm._l(_vm.presentTags, function(tag, index) {
return _c(
"tis-tag",
{
key: tag.key,
attrs: {
type: "info",
size: _vm.tagSize,
hit: tag.hitState,
closable: tag.closable,
"disable-transitions": ""
},
on: {
close: function($event) {
_vm.deleteTag(index)
}
}
},
[_c("span", [_vm._v(_vm._s(tag.text))])]
)
}),
_vm.filterable && !_vm.isDisabled
? _c("input", {
directives: [
{
name: "model",
rawName: "v-model.trim",
value: _vm.inputValue,
expression: "inputValue",
modifiers: { trim: true }
}
],
staticClass: "el-cascader__search-input",
attrs: {
type: "text",
placeholder: _vm.presentTags.length ? "" : _vm.placeholder
},
domProps: { value: _vm.inputValue },
on: {
input: [
function($event) {
if ($event.target.composing) {
return
}
_vm.inputValue = $event.target.value.trim()
},
function(e) {
return _vm.handleInput(_vm.inputValue, e)
}
],
click: function($event) {
$event.stopPropagation()
_vm.toggleDropDownVisible(true)
},
keydown: function($event) {
if (
!("button" in $event) &&
_vm._k(
$event.keyCode,
"delete",
[8, 46],
$event.key,
["Backspace", "Delete", "Del"]
)
) {
return null
}
return _vm.handleDelete($event)
},
blur: function($event) {
_vm.$forceUpdate()
}
}
})
: _vm._e()
],
2
)
: _vm._e(),
_c(
"transition",
{
attrs: { name: "el-zoom-in-top" },
on: { "after-leave": _vm.handleDropdownLeave }
},
[
_c(
"div",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.dropDownVisible,
expression: "dropDownVisible"
}
],
ref: "popper",
class: ["el-popper", "el-cascader__dropdown", _vm.popperClass]
},
[
_c("tis-cascader-panel", {
directives: [
{
name: "show",
rawName: "v-show",
value: !_vm.filtering,
expression: "!filtering"
}
],
ref: "panel",
attrs: {
options: _vm.options,
props: _vm.config,
border: false,
"render-label": _vm.$scopedSlots.default
},
on: {
"expand-change": _vm.handleExpandChange,
close: function($event) {
_vm.toggleDropDownVisible(false)
}
},
model: {
value: _vm.checkedValue,
callback: function($$v) {
_vm.checkedValue = $$v
},
expression: "checkedValue"
}
}),
_vm.filterable
? _c(
"tis-scrollbar",
{
directives: [
{
name: "show",
rawName: "v-show",
value: _vm.filtering,
expression: "filtering"
}
],
ref: "suggestionPanel",
staticClass: "el-cascader__suggestion-panel",
attrs: {
tag: "ul",
"view-class": "el-cascader__suggestion-list"
},
nativeOn: {
keydown: function($event) {
return _vm.handleSuggestionKeyDown($event)
}
}
},
[
_vm.suggestions.length
? _vm._l(_vm.suggestions, function(item, index) {
return _c(
"li",
{
key: item.uid,
class: [
"el-cascader__suggestion-item",
item.checked && "is-checked"
],
attrs: { tabindex: -1 },
on: {
click: function($event) {
_vm.handleSuggestionClick(index)
}
}
},
[
_c("span", [_vm._v(_vm._s(item.text))]),
item.checked
? _c("i", { staticClass: "el-icon-check" })
: _vm._e()
]
)
})
: _vm._t("empty", [
_c(
"li",
{ staticClass: "el-cascader__empty-text" },
[_vm._v(_vm._s(_vm.t("el.cascader.noMatch")))]
)
])
],
2
)
: _vm._e()
],
1
)
]
)
],
1
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/cascader/src/cascader.vue?vue&type=template&id=032537a6&
// EXTERNAL MODULE: external "tis-ui/lib/utils/vue-popper"
var vue_popper_ = __webpack_require__(34);
var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);
// EXTERNAL MODULE: external "tis-ui/lib/utils/clickoutside"
var clickoutside_ = __webpack_require__(61);
var clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);
// EXTERNAL MODULE: external "tis-ui/lib/mixins/emitter"
var emitter_ = __webpack_require__(13);
var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
// EXTERNAL MODULE: external "tis-ui/lib/mixins/locale"
var locale_ = __webpack_require__(38);
var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
// EXTERNAL MODULE: external "tis-ui/lib/mixins/migrating"
var migrating_ = __webpack_require__(36);
var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);
// EXTERNAL MODULE: ./packages/input/index.js + 6 modules
var packages_input = __webpack_require__(52);
// EXTERNAL MODULE: ./packages/tag/index.js + 3 modules
var tag = __webpack_require__(101);
// EXTERNAL MODULE: ./packages/scrollbar/index.js + 3 modules
var scrollbar = __webpack_require__(66);
// EXTERNAL MODULE: ./packages/cascader-panel/index.js + 13 modules
var cascader_panel = __webpack_require__(152);
// EXTERNAL MODULE: external "tis-ui/lib/utils/aria-utils"
var aria_utils_ = __webpack_require__(103);
var aria_utils_default = /*#__PURE__*/__webpack_require__.n(aria_utils_);
// EXTERNAL MODULE: external "tis-ui/lib/locale"
var lib_locale_ = __webpack_require__(72);
// EXTERNAL MODULE: external "tis-ui/lib/utils/util"
var util_ = __webpack_require__(10);
// EXTERNAL MODULE: external "tis-ui/lib/utils/types"
var types_ = __webpack_require__(89);
// EXTERNAL MODULE: external "tis-ui/lib/utils/shared"
var shared_ = __webpack_require__(49);
// EXTERNAL MODULE: external "tis-ui/lib/utils/resize-event"
var resize_event_ = __webpack_require__(44);
// EXTERNAL MODULE: external "throttle-debounce/debounce"
var debounce_ = __webpack_require__(62);
var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/cascader/src/cascader.vue?vue&type=script&lang=js&
var _this = undefined;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var KeyCode = aria_utils_default.a.keys;
var MigratingProps = {
expandTrigger: {
newProp: 'expandTrigger',
type: String
},
changeOnSelect: {
newProp: 'checkStrictly',
type: Boolean
},
hoverThreshold: {
newProp: 'hoverThreshold',
type: Number
}
};
var PopperMixin = {
props: {
placement: {
type: String,
default: 'bottom-start'
},
appendToBody: vue_popper_default.a.props.appendToBody,
visibleArrow: {
type: Boolean,
default: true
},
arrowOffset: vue_popper_default.a.props.arrowOffset,
offset: vue_popper_default.a.props.offset,
boundariesPadding: vue_popper_default.a.props.boundariesPadding,
popperOptions: vue_popper_default.a.props.popperOptions
},
methods: vue_popper_default.a.methods,
data: vue_popper_default.a.data,
beforeDestroy: vue_popper_default.a.beforeDestroy
};
var InputSizeMap = {
medium: 36,
small: 32,
mini: 28
};
/* harmony default export */ var cascadervue_type_script_lang_js_ = ({
name: 'TisCascader',
directives: { Clickoutside: clickoutside_default.a },
mixins: [PopperMixin, emitter_default.a, locale_default.a, migrating_default.a],
inject: {
elForm: {
default: ''
},
elFormItem: {
default: ''
}
},
components: {
ElInput: packages_input["default"],
ElTag: tag["default"],
ElScrollbar: scrollbar["default"],
ElCascaderPanel: cascader_panel["default"]
},
props: {
value: {},
options: Array,
props: Object,
size: String,
placeholder: {
type: String,
default: function _default() {
return Object(lib_locale_["t"])('el.cascader.placeholder');
}
},
disabled: Boolean,
clearable: Boolean,
filterable: Boolean,
filterMethod: Function,
separator: {
type: String,
default: ' / '
},
showAllLevels: {
type: Boolean,
default: true
},
collapseTags: Boolean,
debounce: {
type: Number,
default: 300
},
beforeFilter: {
type: Function,
default: function _default() {
return function () {};
}
},
popperClass: String
},
data: function data() {
return {
dropDownVisible: false,
checkedValue: this.value || null,
inputHover: false,
inputValue: null,
presentText: null,
presentTags: [],
checkedNodes: [],
filtering: false,
suggestions: [],
inputInitialHeight: 0,
pressDeleteCount: 0
};
},
computed: {
realSize: function realSize() {
var _elFormItemSize = (this.elFormItem || {}).elFormItemSize;
return this.size || _elFormItemSize || (this.$ELEMENT || {}).size;
},
tagSize: function tagSize() {
return ['small', 'mini'].indexOf(this.realSize) > -1 ? 'mini' : 'small';
},
isDisabled: function isDisabled() {
return this.disabled || (this.elForm || {}).disabled;
},
config: function config() {
var config = this.props || {};
var $attrs = this.$attrs;
Object.keys(MigratingProps).forEach(function (oldProp) {
var _MigratingProps$oldPr = MigratingProps[oldProp],
newProp = _MigratingProps$oldPr.newProp,
type = _MigratingProps$oldPr.type;
var oldValue = $attrs[oldProp] || $attrs[Object(util_["kebabCase"])(oldProp)];
if (Object(shared_["isDef"])(oldProp) && !Object(shared_["isDef"])(config[newProp])) {
if (type === Boolean && oldValue === '') {
oldValue = true;
}
config[newProp] = oldValue;
}
});
return config;
},
multiple: function multiple() {
return this.config.multiple;
},
leafOnly: function leafOnly() {
return !this.config.checkStrictly;
},
readonly: function readonly() {
return !this.filterable || this.multiple;
},
clearBtnVisible: function clearBtnVisible() {
if (!this.clearable || this.isDisabled || this.filtering || !this.inputHover) {
return false;
}
return this.multiple ? !!this.checkedNodes.filter(function (node) {
return !node.isDisabled;
}).length : !!this.presentText;
},
panel: function panel() {
return this.$refs.panel;
}
},
watch: {
disabled: function disabled() {
this.computePresentContent();
},
value: function value(val) {
if (!Object(util_["isEqual"])(val, this.checkedValue)) {
this.checkedValue = val;
this.computePresentContent();
}
},
checkedValue: function checkedValue(val) {
var value = this.value,
dropDownVisible = this.dropDownVisible;
var _config = this.config,
checkStrictly = _config.checkStrictly,
multiple = _config.multiple;
if (!Object(util_["isEqual"])(val, value) || Object(types_["isUndefined"])(value)) {
this.computePresentContent();
// hide dropdown when single mode
if (!multiple && !checkStrictly && dropDownVisible) {
this.toggleDropDownVisible(false);
}
this.$emit('input', val);
this.$emit('change', val);
this.dispatch('ElFormItem', 'el.form.change', [val]);
}
},
options: {
handler: function handler() {
_this.$nextTick(_this.computePresentContent);
},
deep: true
},
presentText: function presentText(val) {
this.inputValue = val;
},
presentTags: function presentTags(val, oldVal) {
if (this.multiple && (val.length || oldVal.length)) {
this.$nextTick(this.updateStyle);
}
},
filtering: function filtering(val) {
this.$nextTick(this.updatePopper);
}
},
mounted: function mounted() {
var _this2 = this;
var input = this.$refs.input;
if (input && input.$el) {
this.inputInitialHeight = input.$el.offsetHeight || InputSizeMap[this.realSize] || 40;
}
if (!Object(util_["isEmpty"])(this.value)) {
this.computePresentContent();
}
this.filterHandler = debounce_default()(this.debounce, function () {
var inputValue = _this2.inputValue;
if (!inputValue) {
_this2.filtering = false;
return;
}
var before = _this2.beforeFilter(inputValue);
if (before && before.then) {
before.then(_this2.getSuggestions);
} else if (before !== false) {
_this2.getSuggestions();
} else {
_this2.filtering = false;
}
});
Object(resize_event_["addResizeListener"])(this.$el, this.updateStyle);
},
beforeDestroy: function beforeDestroy() {
Object(resize_event_["removeResizeListener"])(this.$el, this.updateStyle);
},
methods: {
getMigratingConfig: function getMigratingConfig() {
return {
props: {
'expand-trigger': 'expand-trigger is removed, use `props.expandTrigger` instead.',
'change-on-select': 'change-on-select is removed, use `props.checkStrictly` instead.',
'hover-threshold': 'hover-threshold is removed, use `props.hoverThreshold` instead'
},
events: {
'active-item-change': 'active-item-change is renamed to expand-change'
}
};
},
toggleDropDownVisible: function toggleDropDownVisible(visible) {
var _this3 = this;
if (this.isDisabled) return;
var dropDownVisible = this.dropDownVisible;
var input = this.$refs.input;
visible = Object(shared_["isDef"])(visible) ? visible : !dropDownVisible;
if (visible !== dropDownVisible) {
this.dropDownVisible = visible;
if (visible) {
this.$nextTick(function () {
_this3.updatePopper();
_this3.panel.scrollIntoView();
});
}
input.$refs.input.setAttribute('aria-expanded', visible);
this.$emit('visible-change', visible);
}
},
handleDropdownLeave: function handleDropdownLeave() {
this.filtering = false;
this.inputValue = this.presentText;
},
handleKeyDown: function handleKeyDown(event) {
switch (event.keyCode) {
case KeyCode.enter:
this.toggleDropDownVisible();
break;
case KeyCode.down:
this.toggleDropDownVisible(true);
this.focusFirstNode();
event.preventDefault();
break;
case KeyCode.esc:
case KeyCode.tab:
this.toggleDropDownVisible(false);
break;
}
},
handleFocus: function handleFocus(e) {
this.$emit('focus', e);
},
handleBlur: function handleBlur(e) {
this.$emit('blur', e);
},
handleInput: function handleInput(val, event) {
!this.dropDownVisible && this.toggleDropDownVisible(true);
if (event && event.isComposing) return;
if (val) {
this.filterHandler();
} else {
this.filtering = false;
}
},
handleClear: function handleClear() {
this.presentText = '';
this.panel.clearCheckedNodes();
},
handleExpandChange: function handleExpandChange(value) {
this.$nextTick(this.updatePopper.bind(this));
this.$emit('expand-change', value);
this.$emit('active-item-change', value); // Deprecated
},
focusFirstNode: function focusFirstNode() {
var _this4 = this;
this.$nextTick(function () {
var filtering = _this4.filtering;
var _$refs = _this4.$refs,
popper = _$refs.popper,
suggestionPanel = _$refs.suggestionPanel;
var firstNode = null;
if (filtering && suggestionPanel) {
firstNode = suggestionPanel.$el.querySelector('.el-cascader__suggestion-item');
} else {
var firstMenu = popper.querySelector('.el-cascader-menu');
firstNode = firstMenu.querySelector('.el-cascader-node[tabindex="-1"]');
}
if (firstNode) {
firstNode.focus();
!filtering && firstNode.click();
}
});
},
computePresentContent: function computePresentContent() {
var _this5 = this;
// nextTick is required, because checked nodes may not change right now
this.$nextTick(function () {
if (_this5.config.multiple) {
_this5.computePresentTags();
_this5.presentText = _this5.presentTags.length ? ' ' : null;
} else {
_this5.computePresentText();
}
});
},
computePresentText: function computePresentText() {
var checkedValue = this.checkedValue,
config = this.config;
if (!Object(util_["isEmpty"])(checkedValue)) {
var node = this.panel.getNodeByValue(checkedValue);
if (node && (config.checkStrictly || node.isLeaf)) {
this.presentText = node.getText(this.showAllLevels, this.separator);
return;
}
}
this.presentText = null;
},
computePresentTags: function computePresentTags() {
var isDisabled = this.isDisabled,
leafOnly = this.leafOnly,
showAllLevels = this.showAllLevels,
separator = this.separator,
collapseTags = this.collapseTags;
var checkedNodes = this.getCheckedNodes(leafOnly);
var tags = [];
var genTag = function genTag(node) {
return {
node: node,
key: node.uid,
text: node.getText(showAllLevels, separator),
hitState: false,
closable: !isDisabled && !node.isDisabled
};
};
if (checkedNodes.length) {
var first = checkedNodes[0],
rest = checkedNodes.slice(1);
var restCount = rest.length;
tags.push(genTag(first));
if (restCount) {
if (collapseTags) {
tags.push({
key: -1,
text: '+ ' + restCount,
closable: false
});
} else {
rest.forEach(function (node) {
return tags.push(genTag(node));
});
}
}
}
this.checkedNodes = checkedNodes;
this.presentTags = tags;
},
getSuggestions: function getSuggestions() {
var _this6 = this;
var filterMethod = this.filterMethod;
if (!Object(types_["isFunction"])(filterMethod)) {
filterMethod = function filterMethod(node, keyword) {
return node.text.includes(keyword);
};
}
var suggestions = this.panel.getFlattedNodes(this.leafOnly).filter(function (node) {
if (node.isDisabled) return false;
node.text = node.getText(_this6.showAllLevels, _this6.separator) || '';
return filterMethod(node, _this6.inputValue);
});
if (this.multiple) {
this.presentTags.forEach(function (tag) {
tag.hitState = false;
});
} else {
suggestions.forEach(function (node) {
node.checked = Object(util_["isEqual"])(_this6.checkedValue, node.getValueByOption());
});
}
this.filtering = true;
this.suggestions = suggestions;
this.$nextTick(this.updatePopper);
},
handleSuggestionKeyDown: function handleSuggestionKeyDown(event) {
var keyCode = event.keyCode,
target = event.target;
switch (keyCode) {
case KeyCode.enter:
target.click();
break;
case KeyCode.up:
var prev = target.previousElementSibling;
prev && prev.focus();
break;
case KeyCode.down:
var next = target.nextElementSibling;
next && next.focus();
break;
case KeyCode.esc:
case KeyCode.tab:
this.toggleDropDownVisible(false);
break;
}
},
handleDelete: function handleDelete() {
var inputValue = this.inputValue,
pressDeleteCount = this.pressDeleteCount,
presentTags = this.presentTags;
var lastIndex = presentTags.length - 1;
var lastTag = presentTags[lastIndex];
this.pressDeleteCount = inputValue ? 0 : pressDeleteCount + 1;
if (!lastTag) return;
if (this.pressDeleteCount) {
if (lastTag.hitState) {
this.deleteTag(lastIndex);
} else {
lastTag.hitState = true;
}
}
},
handleSuggestionClick: function handleSuggestionClick(index) {
var multiple = this.multiple;
var targetNode = this.suggestions[index];
if (multiple) {
var checked = targetNode.checked;
targetNode.doCheck(!checked);
this.panel.calculateMultiCheckedValue();
} else {
this.checkedValue = targetNode.getValueByOption();
this.toggleDropDownVisible(false);
}
},
deleteTag: function deleteTag(index) {
var checkedValue = this.checkedValue;
var val = checkedValue[index];
this.checkedValue = checkedValue.filter(function (n, i) {
return i !== index;
});
this.$emit('remove-tag', val);
},
updateStyle: function updateStyle() {
var $el = this.$el,
inputInitialHeight = this.inputInitialHeight;
if (this.$isServer || !$el) return;
var suggestionPanel = this.$refs.suggestionPanel;
var inputInner = $el.querySelector('.el-input__inner');
if (!inputInner) return;
var tags = $el.querySelector('.el-cascader__tags');
var suggestionPanelEl = null;
if (suggestionPanel && (suggestionPanelEl = suggestionPanel.$el)) {
var suggestionList = suggestionPanelEl.querySelector('.el-cascader__suggestion-list');
suggestionList.style.minWidth = inputInner.offsetWidth + 'px';
}
if (tags) {
var offsetHeight = tags.offsetHeight;
var height = Math.max(offsetHeight + 6, inputInitialHeight) + 'px';
inputInner.style.height = height;
this.updatePopper();
}
},
/**
* public methods
*/
getCheckedNodes: function getCheckedNodes(leafOnly) {
return this.panel.getCheckedNodes(leafOnly);
}
}
});
// CONCATENATED MODULE: ./packages/cascader/src/cascader.vue?vue&type=script&lang=js&
/* harmony default export */ var src_cascadervue_type_script_lang_js_ = (cascadervue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);
// CONCATENATED MODULE: ./packages/cascader/src/cascader.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_cascadervue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/cascader/src/cascader.vue"
/* harmony default export */ var cascader = (component.exports);
// CONCATENATED MODULE: ./packages/cascader/index.js
/* istanbul ignore next */
cascader.install = function (Vue) {
Vue.component(cascader.name, cascader);
};
/* harmony default export */ var packages_cascader = __webpack_exports__["default"] = (cascader);
/***/ }),
/***/ 61:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/clickoutside");
/***/ }),
/***/ 62:
/***/ (function(module, exports) {
module.exports = require("throttle-debounce/debounce");
/***/ }),
/***/ 65:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/scrollbar-width");
/***/ }),
/***/ 66:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: external "tis-ui/lib/utils/resize-event"
var resize_event_ = __webpack_require__(44);
// EXTERNAL MODULE: external "tis-ui/lib/utils/scrollbar-width"
var scrollbar_width_ = __webpack_require__(65);
var scrollbar_width_default = /*#__PURE__*/__webpack_require__.n(scrollbar_width_);
// EXTERNAL MODULE: external "tis-ui/lib/utils/util"
var util_ = __webpack_require__(10);
// EXTERNAL MODULE: external "tis-ui/lib/utils/dom"
var dom_ = __webpack_require__(7);
// CONCATENATED MODULE: ./packages/scrollbar/src/util.js
var BAR_MAP = {
vertical: {
offset: 'offsetHeight',
scroll: 'scrollTop',
scrollSize: 'scrollHeight',
size: 'height',
key: 'vertical',
axis: 'Y',
client: 'clientY',
direction: 'top'
},
horizontal: {
offset: 'offsetWidth',
scroll: 'scrollLeft',
scrollSize: 'scrollWidth',
size: 'width',
key: 'horizontal',
axis: 'X',
client: 'clientX',
direction: 'left'
}
};
function renderThumbStyle(_ref) {
var move = _ref.move,
size = _ref.size,
bar = _ref.bar;
var style = {};
var translate = 'translate' + bar.axis + '(' + move + '%)';
style[bar.size] = size;
style.transform = translate;
style.msTransform = translate;
style.webkitTransform = translate;
return style;
};
// CONCATENATED MODULE: ./packages/scrollbar/src/bar.js
/* istanbul ignore next */
/* harmony default export */ var src_bar = ({
name: 'Bar',
props: {
vertical: Boolean,
size: String,
move: Number
},
computed: {
bar: function bar() {
return BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];
},
wrap: function wrap() {
return this.$parent.wrap;
}
},
render: function render(h) {
var size = this.size,
move = this.move,
bar = this.bar;
return h(
'div',
{
'class': ['el-scrollbar__bar', 'is-' + bar.key],
on: {
'mousedown': this.clickTrackHandler
}
},
[h('div', {
ref: 'thumb',
'class': 'el-scrollbar__thumb',
on: {
'mousedown': this.clickThumbHandler
},
style: renderThumbStyle({ size: size, move: move, bar: bar }) })]
);
},
methods: {
clickThumbHandler: function clickThumbHandler(e) {
// prevent click event of right button
if (e.ctrlKey || e.button === 2) {
return;
}
this.startDrag(e);
this[this.bar.axis] = e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]);
},
clickTrackHandler: function clickTrackHandler(e) {
var offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);
var thumbHalf = this.$refs.thumb[this.bar.offset] / 2;
var thumbPositionPercentage = (offset - thumbHalf) * 100 / this.$el[this.bar.offset];
this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;
},
startDrag: function startDrag(e) {
e.stopImmediatePropagation();
this.cursorDown = true;
Object(dom_["on"])(document, 'mousemove', this.mouseMoveDocumentHandler);
Object(dom_["on"])(document, 'mouseup', this.mouseUpDocumentHandler);
document.onselectstart = function () {
return false;
};
},
mouseMoveDocumentHandler: function mouseMoveDocumentHandler(e) {
if (this.cursorDown === false) return;
var prevPage = this[this.bar.axis];
if (!prevPage) return;
var offset = (this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1;
var thumbClickPosition = this.$refs.thumb[this.bar.offset] - prevPage;
var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / this.$el[this.bar.offset];
this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;
},
mouseUpDocumentHandler: function mouseUpDocumentHandler(e) {
this.cursorDown = false;
this[this.bar.axis] = 0;
Object(dom_["off"])(document, 'mousemove', this.mouseMoveDocumentHandler);
document.onselectstart = null;
}
},
destroyed: function destroyed() {
Object(dom_["off"])(document, 'mouseup', this.mouseUpDocumentHandler);
}
});
// CONCATENATED MODULE: ./packages/scrollbar/src/main.js
// reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js
/* istanbul ignore next */
/* harmony default export */ var main = ({
name: 'TisScrollbar',
components: { Bar: src_bar },
props: {
native: Boolean,
wrapStyle: {},
wrapClass: {},
viewClass: {},
viewStyle: {},
noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
tag: {
type: String,
default: 'div'
}
},
data: function data() {
return {
sizeWidth: '0',
sizeHeight: '0',
moveX: 0,
moveY: 0
};
},
computed: {
wrap: function wrap() {
return this.$refs.wrap;
}
},
render: function render(h) {
var gutter = scrollbar_width_default()();
var style = this.wrapStyle;
if (gutter) {
var gutterWith = '-' + gutter + 'px';
var gutterStyle = 'margin-bottom: ' + gutterWith + '; margin-right: ' + gutterWith + ';';
if (Array.isArray(this.wrapStyle)) {
style = Object(util_["toObject"])(this.wrapStyle);
style.marginRight = style.marginBottom = gutterWith;
} else if (typeof this.wrapStyle === 'string') {
style += gutterStyle;
} else {
style = gutterStyle;
}
}
var view = h(this.tag, {
class: ['el-scrollbar__view', this.viewClass],
style: this.viewStyle,
ref: 'resize'
}, this.$slots.default);
var wrap = h(
'div',
{
ref: 'wrap',
style: style,
on: {
'scroll': this.handleScroll
},
'class': [this.wrapClass, 'el-scrollbar__wrap', gutter ? '' : 'el-scrollbar__wrap--hidden-default'] },
[[view]]
);
var nodes = void 0;
if (!this.native) {
nodes = [wrap, h(src_bar, {
attrs: {
move: this.moveX,
size: this.sizeWidth }
}), h(src_bar, {
attrs: {
vertical: true,
move: this.moveY,
size: this.sizeHeight }
})];
} else {
nodes = [h(
'div',
{
ref: 'wrap',
'class': [this.wrapClass, 'el-scrollbar__wrap'],
style: style },
[[view]]
)];
}
return h('div', { class: 'el-scrollbar' }, nodes);
},
methods: {
handleScroll: function handleScroll() {
var wrap = this.wrap;
this.moveY = wrap.scrollTop * 100 / wrap.clientHeight;
this.moveX = wrap.scrollLeft * 100 / wrap.clientWidth;
},
update: function update() {
var heightPercentage = void 0,
widthPercentage = void 0;
var wrap = this.wrap;
if (!wrap) return;
heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;
widthPercentage = wrap.clientWidth * 100 / wrap.scrollWidth;
this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : '';
this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : '';
}
},
mounted: function mounted() {
if (this.native) return;
this.$nextTick(this.update);
!this.noresize && Object(resize_event_["addResizeListener"])(this.$refs.resize, this.update);
},
beforeDestroy: function beforeDestroy() {
if (this.native) return;
!this.noresize && Object(resize_event_["removeResizeListener"])(this.$refs.resize, this.update);
}
});
// CONCATENATED MODULE: ./packages/scrollbar/index.js
/* istanbul ignore next */
main.install = function (Vue) {
Vue.component(main.name, main);
};
/* harmony default export */ var scrollbar = __webpack_exports__["default"] = (main);
/***/ }),
/***/ 68:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__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/checkbox/src/checkbox.vue?vue&type=template&id=d0387074&
var render = function() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c(
"label",
{
staticClass: "el-checkbox",
class: [
_vm.border && _vm.checkboxSize
? "el-checkbox--" + _vm.checkboxSize
: "",
{ "is-disabled": _vm.isDisabled },
{ "is-bordered": _vm.border },
{ "is-checked": _vm.isChecked }
],
attrs: { id: _vm.id }
},
[
_c(
"span",
{
staticClass: "el-checkbox__input",
class: {
"is-disabled": _vm.isDisabled,
"is-checked": _vm.isChecked,
"is-indeterminate": _vm.indeterminate,
"is-focus": _vm.focus
},
attrs: {
tabindex: _vm.indeterminate ? 0 : false,
role: _vm.indeterminate ? "checkbox" : false,
"aria-checked": _vm.indeterminate ? "mixed" : false
}
},
[
_c("span", { staticClass: "el-checkbox__inner" }),
_vm.trueLabel || _vm.falseLabel
? _c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.model,
expression: "model"
}
],
staticClass: "el-checkbox__original",
attrs: {
type: "checkbox",
"aria-hidden": _vm.indeterminate ? "true" : "false",
name: _vm.name,
disabled: _vm.isDisabled,
"true-value": _vm.trueLabel,
"false-value": _vm.falseLabel
},
domProps: {
checked: Array.isArray(_vm.model)
? _vm._i(_vm.model, null) > -1
: _vm._q(_vm.model, _vm.trueLabel)
},
on: {
change: [
function($event) {
var $$a = _vm.model,
$$el = $event.target,
$$c = $$el.checked ? _vm.trueLabel : _vm.falseLabel
if (Array.isArray($$a)) {
var $$v = null,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 && (_vm.model = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.model = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.model = $$c
}
},
_vm.handleChange
],
focus: function($event) {
_vm.focus = true
},
blur: function($event) {
_vm.focus = false
}
}
})
: _c("input", {
directives: [
{
name: "model",
rawName: "v-model",
value: _vm.model,
expression: "model"
}
],
staticClass: "el-checkbox__original",
attrs: {
type: "checkbox",
"aria-hidden": _vm.indeterminate ? "true" : "false",
disabled: _vm.isDisabled,
name: _vm.name
},
domProps: {
value: _vm.label,
checked: Array.isArray(_vm.model)
? _vm._i(_vm.model, _vm.label) > -1
: _vm.model
},
on: {
change: [
function($event) {
var $$a = _vm.model,
$$el = $event.target,
$$c = $$el.checked ? true : false
if (Array.isArray($$a)) {
var $$v = _vm.label,
$$i = _vm._i($$a, $$v)
if ($$el.checked) {
$$i < 0 && (_vm.model = $$a.concat([$$v]))
} else {
$$i > -1 &&
(_vm.model = $$a
.slice(0, $$i)
.concat($$a.slice($$i + 1)))
}
} else {
_vm.model = $$c
}
},
_vm.handleChange
],
focus: function($event) {
_vm.focus = true
},
blur: function($event) {
_vm.focus = false
}
}
})
]
),
_vm.$slots.default || _vm.label
? _c(
"span",
{ staticClass: "el-checkbox__label" },
[
_vm._t("default"),
!_vm.$slots.default ? [_vm._v(_vm._s(_vm.label))] : _vm._e()
],
2
)
: _vm._e()
]
)
}
var staticRenderFns = []
render._withStripped = true
// CONCATENATED MODULE: ./packages/checkbox/src/checkbox.vue?vue&type=template&id=d0387074&
// EXTERNAL MODULE: external "tis-ui/lib/mixins/emitter"
var emitter_ = __webpack_require__(13);
var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/checkbox/src/checkbox.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var checkboxvue_type_script_lang_js_ = ({
name: 'TisCheckbox',
mixins: [emitter_default.a],
inject: {
elForm: {
default: ''
},
elFormItem: {
default: ''
}
},
componentName: 'TisCheckbox',
data: function data() {
return {
selfModel: false,
focus: false,
isLimitExceeded: false
};
},
computed: {
model: {
get: function get() {
return this.isGroup ? this.store : this.value !== undefined ? this.value : this.selfModel;
},
set: function set(val) {
if (this.isGroup) {
this.isLimitExceeded = false;
this._checkboxGroup.min !== undefined && val.length < this._checkboxGroup.min && (this.isLimitExceeded = true);
this._checkboxGroup.max !== undefined && val.length > this._checkboxGroup.max && (this.isLimitExceeded = true);
this.isLimitExceeded === false && this.dispatch('TisCheckboxGroup', 'input', [val]);
} else {
this.$emit('input', val);
this.selfModel = val;
}
}
},
isChecked: function isChecked() {
if ({}.toString.call(this.model) === '[object Boolean]') {
return this.model;
} else if (Array.isArray(this.model)) {
return this.model.indexOf(this.label) > -1;
} else if (this.model !== null && this.model !== undefined) {
return this.model === this.trueLabel;
}
},
isGroup: function isGroup() {
var parent = this.$parent;
while (parent) {
if (parent.$options.componentName !== 'TisCheckboxGroup') {
parent = parent.$parent;
} else {
this._checkboxGroup = parent;
return true;
}
}
return false;
},
store: function store() {
return this._checkboxGroup ? this._checkboxGroup.value : this.value;
},
/* used to make the isDisabled judgment under max/min props */
isLimitDisabled: function isLimitDisabled() {
var _checkboxGroup = this._checkboxGroup,
max = _checkboxGroup.max,
min = _checkboxGroup.min;
return !!(max || min) && this.model.length >= max && !this.isChecked || this.model.length <= min && this.isChecked;
},
isDisabled: function isDisabled() {
return this.isGroup ? this._checkboxGroup.disabled || this.disabled || (this.elForm || {}).disabled || this.isLimitDisabled : this.disabled || (this.elForm || {}).disabled;
},
_elFormItemSize: function _elFormItemSize() {
return (this.elFormItem || {}).elFormItemSize;
},
checkboxSize: function checkboxSize() {
var temCheckboxSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
return this.isGroup ? this._checkboxGroup.checkboxGroupSize || temCheckboxSize : temCheckboxSize;
}
},
props: {
value: {},
label: {},
indeterminate: Boolean,
disabled: Boolean,
checked: Boolean,
name: String,
trueLabel: [String, Number],
falseLabel: [String, Number],
id: String, /* 当indeterminate为真时,为controls提供相关连的checkbox的id,表明元素间的控制关系*/
controls: String, /* 当indeterminate为真时,为controls提供相关连的checkbox的id,表明元素间的控制关系*/
border: Boolean,
size: String
},
methods: {
addToStore: function addToStore() {
if (Array.isArray(this.model) && this.model.indexOf(this.label) === -1) {
this.model.push(this.label);
} else {
this.model = this.trueLabel || true;
}
},
handleChange: function handleChange(ev) {
var _this = this;
if (this.isLimitExceeded) return;
var value = void 0;
if (ev.target.checked) {
value = this.trueLabel === undefined ? true : this.trueLabel;
} else {
value = this.falseLabel === undefined ? false : this.falseLabel;
}
this.$emit('change', value, ev);
this.$nextTick(function () {
if (_this.isGroup) {
_this.dispatch('TisCheckboxGroup', 'change', [_this._checkboxGroup.value]);
}
});
}
},
created: function created() {
this.checked && this.addToStore();
},
mounted: function mounted() {
// 为indeterminate元素 添加aria-controls 属性
if (this.indeterminate) {
this.$el.setAttribute('aria-controls', this.controls);
}
},
watch: {
value: function value(_value) {
this.dispatch('ElFormItem', 'el.form.change', _value);
}
}
});
// CONCATENATED MODULE: ./packages/checkbox/src/checkbox.vue?vue&type=script&lang=js&
/* harmony default export */ var src_checkboxvue_type_script_lang_js_ = (checkboxvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);
// CONCATENATED MODULE: ./packages/checkbox/src/checkbox.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
src_checkboxvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "packages/checkbox/src/checkbox.vue"
/* harmony default export */ var src_checkbox = (component.exports);
// CONCATENATED MODULE: ./packages/checkbox/index.js
/* istanbul ignore next */
src_checkbox.install = function (Vue) {
Vue.component(src_checkbox.name, src_checkbox);
};
/* harmony default export */ var packages_checkbox = __webpack_exports__["default"] = (src_checkbox);
/***/ }),
/***/ 7:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/dom");
/***/ }),
/***/ 72:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/locale");
/***/ }),
/***/ 89:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/types");
/***/ }),
/***/ 90:
/***/ (function(module, exports) {
module.exports = require("babel-helper-vue-jsx-merge-props");
/***/ }),
/***/ 95:
/***/ (function(module, exports) {
module.exports = require("tis-ui/lib/utils/scroll-into-view");
/***/ })
/******/ });