{"version":3,"file":"js/chunk-vendors-488e6a82.0db90892.js","mappings":"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","sources":["webpack://dicom-frontend/./node_modules/@ant-design/colors/lib/generate.js","webpack://dicom-frontend/./node_modules/@ant-design/colors/lib/index.js","webpack://dicom-frontend/./node_modules/@ant-design/icons-vue/es/utils.js","webpack://dicom-frontend/./node_modules/@ant-design/icons-vue/es/components/Icon.js","webpack://dicom-frontend/./node_modules/@ant-design/icons-vue/es/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-time-picker/Header.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-time-picker/Select.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-time-picker/Combobox.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-time-picker/Panel.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-time-picker/placements.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-time-picker/TimePicker.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tooltip/Content.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tooltip/Tooltip.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tooltip/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tooltip/placements.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-util/Dom/class.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/SelectTrigger.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Base/BaseSelector.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/SingleSelector.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/SearchInput.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/Selection.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Base/BasePopup.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Popup/SinglePopup.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Popup/MultiplePopup.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/SelectNode.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/Select.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree-select/src/strategies.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree/src/Tree.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree/src/TreeNode.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-tree/src/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-trigger/LazyRenderBox.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-trigger/PopupInner.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-trigger/Popup.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-trigger/utils.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-trigger/Trigger.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-trigger/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/request.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/uid.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/attr-accept.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/traverseFileTree.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/AjaxUploader.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/IframeUploader.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/Upload.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-upload/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-util/Dom/addEventListener.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-util/Dom/contains.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-util/warning.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/version/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/calendar/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/calendar/locale/ru_RU.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/date-picker/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/date-picker/locale/ru_RU.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/locale/default.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/locale/ru_RU.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/time-picker/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/time-picker/locale/ru_RU.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/vc-calendar/src/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/vc-calendar/src/locale/ru_RU.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/vc-pagination/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/lib/vc-pagination/locale/ru_RU.js","webpack://dicom-frontend/./node_modules/array-tree-filter/lib/index.js","webpack://dicom-frontend/./node_modules/async-validator/dist-web/index.js"],"sourcesContent":["\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tinycolor2_1 = __importDefault(require(\"tinycolor2\"));\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 5; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 5; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n }\n else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n }\n else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = Math.round(hsv.s * 100) - saturationStep * i;\n }\n else if (i === darkColorCount) {\n saturation = Math.round(hsv.s * 100) + saturationStep;\n }\n else {\n saturation = Math.round(hsv.s * 100) + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 100) {\n saturation = 100;\n }\n // 第一格的 s 限制在 6-10 之间\n if (light && i === lightColorCount && saturation > 10) {\n saturation = 10;\n }\n if (saturation < 6) {\n saturation = 6;\n }\n return saturation;\n}\nfunction getValue(hsv, i, light) {\n if (light) {\n return Math.round(hsv.v * 100) + brightnessStep1 * i;\n }\n return Math.round(hsv.v * 100) - brightnessStep2 * i;\n}\nfunction generate(color) {\n var patterns = [];\n var pColor = tinycolor2_1.default(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = pColor.toHsv();\n var colorString = tinycolor2_1.default({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true),\n }).toHexString();\n patterns.push(colorString);\n }\n patterns.push(pColor.toHexString());\n for (var i = 1; i <= darkColorCount; i += 1) {\n var hsv = pColor.toHsv();\n var colorString = tinycolor2_1.default({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i),\n }).toHexString();\n patterns.push(colorString);\n }\n return patterns;\n}\nexports.default = generate;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar generate_1 = __importDefault(require(\"./generate\"));\nexports.generate = generate_1.default;\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666',\n};\nexports.presetPrimaryColors = presetPrimaryColors;\nvar presetPalettes = {};\nexports.presetPalettes = presetPalettes;\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate_1.default(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n});\nvar red = presetPalettes.red;\nexports.red = red;\nvar volcano = presetPalettes.volcano;\nexports.volcano = volcano;\nvar gold = presetPalettes.gold;\nexports.gold = gold;\nvar orange = presetPalettes.orange;\nexports.orange = orange;\nvar yellow = presetPalettes.yellow;\nexports.yellow = yellow;\nvar lime = presetPalettes.lime;\nexports.lime = lime;\nvar green = presetPalettes.green;\nexports.green = green;\nvar cyan = presetPalettes.cyan;\nexports.cyan = cyan;\nvar blue = presetPalettes.blue;\nexports.blue = blue;\nvar geekblue = presetPalettes.geekblue;\nexports.geekblue = geekblue;\nvar purple = presetPalettes.purple;\nexports.purple = purple;\nvar magenta = presetPalettes.magenta;\nexports.magenta = magenta;\nvar grey = presetPalettes.grey;\nexports.grey = grey;\n","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport { generate as generateColor } from '@ant-design/colors';\n\nexport function log(message) {\n if (!(process && process.env && process.env.NODE_ENV === 'production')) {\n console.error('[@ant-design/icons-vue]: ' + message + '.');\n }\n}\n\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\n\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc['class'];\n break;\n default:\n acc[key] = val;\n }\n return acc;\n }, {});\n}\n\nexport var MiniMap = function () {\n function MiniMap() {\n _classCallCheck(this, MiniMap);\n\n this.collection = {};\n }\n\n _createClass(MiniMap, [{\n key: 'clear',\n value: function clear() {\n this.collection = {};\n }\n }, {\n key: 'delete',\n value: function _delete(key) {\n return delete this.collection[key];\n }\n }, {\n key: 'get',\n value: function get(key) {\n return this.collection[key];\n }\n }, {\n key: 'has',\n value: function has(key) {\n return Boolean(this.collection[key]);\n }\n }, {\n key: 'set',\n value: function set(key, value) {\n this.collection[key] = value;\n return this;\n }\n }, {\n key: 'size',\n get: function get() {\n return Object.keys(this.collection).length;\n }\n }]);\n\n return MiniMap;\n}();\n\nexport function generate(h, node, key, rootProps) {\n if (!rootProps) {\n return h(node.tag, { key: key, attrs: _extends({}, normalizeAttrs(node.attrs)) }, (node.children || []).map(function (child, index) {\n return generate(h, child, key + '-' + node.tag + '-' + index);\n }));\n }\n return h(node.tag, _extends({\n key: key\n }, rootProps, {\n attrs: _extends({}, normalizeAttrs(node.attrs), rootProps.attrs)\n }), (node.children || []).map(function (child, index) {\n return generate(h, child, key + '-' + node.tag + '-' + index);\n }));\n}\n\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\n\nexport function withSuffix(name, theme) {\n switch (theme) {\n case 'fill':\n return name + '-fill';\n case 'outline':\n return name + '-o';\n case 'twotone':\n return name + '-twotone';\n default:\n throw new TypeError('Unknown theme type: ' + theme + ', name: ' + name);\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport { generate, getSecondaryColor, isIconDefinition, log, MiniMap, withSuffix } from '../utils';\n\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6'\n};\n\nvar Icon = {\n name: 'AntdIcon',\n props: ['type', 'primaryColor', 'secondaryColor'],\n displayName: 'IconVue',\n definitions: new MiniMap(),\n data: function data() {\n return {\n twoToneColorPalette: twoToneColorPalette\n };\n },\n add: function add() {\n for (var _len = arguments.length, icons = Array(_len), _key = 0; _key < _len; _key++) {\n icons[_key] = arguments[_key];\n }\n\n icons.forEach(function (icon) {\n Icon.definitions.set(withSuffix(icon.name, icon.theme), icon);\n });\n },\n clear: function clear() {\n Icon.definitions.clear();\n },\n get: function get(key) {\n var colors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : twoToneColorPalette;\n\n if (key) {\n var target = Icon.definitions.get(key);\n if (target && typeof target.icon === 'function') {\n target = _extends({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return target;\n }\n },\n setTwoToneColors: function setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n },\n getTwoToneColors: function getTwoToneColors() {\n return _extends({}, twoToneColorPalette);\n },\n render: function render(h) {\n var _$props = this.$props,\n type = _$props.type,\n primaryColor = _$props.primaryColor,\n secondaryColor = _$props.secondaryColor;\n\n\n var target = void 0;\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n if (isIconDefinition(type)) {\n target = type;\n } else if (typeof type === 'string') {\n target = Icon.get(type, colors);\n if (!target) {\n // log(`Could not find icon: ${type}`);\n return null;\n }\n }\n if (!target) {\n log('type should be string or icon definiton, but got ' + type);\n return null;\n }\n if (target && typeof target.icon === 'function') {\n target = _extends({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(h, target.icon, 'svg-' + target.name, {\n attrs: {\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n },\n on: this.$listeners\n });\n }\n};\n\n/* istanbul ignore next */\nIcon.install = function (Vue) {\n Vue.component(Icon.name, Icon);\n};\n\nexport default Icon;","import Icon from './components/Icon';\n\nexport default Icon;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport moment from 'moment';\n\nvar Header = {\n mixins: [BaseMixin],\n props: {\n format: PropTypes.string,\n prefixCls: PropTypes.string,\n disabledDate: PropTypes.func,\n placeholder: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n inputReadOnly: PropTypes.bool.def(false),\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n // onChange: PropTypes.func,\n // onClear: PropTypes.func,\n // onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n defaultOpenValue: PropTypes.object,\n currentSelectPanel: PropTypes.string,\n focusOnOpen: PropTypes.bool,\n // onKeyDown: PropTypes.func,\n clearIcon: PropTypes.any\n },\n data: function data() {\n var value = this.value,\n format = this.format;\n\n return {\n str: value && value.format(format) || '',\n invalid: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.focusOnOpen) {\n // Wait one frame for the panel to be positioned before focusing\n var requestAnimationFrame = window.requestAnimationFrame || window.setTimeout;\n requestAnimationFrame(function () {\n _this.$refs.input.focus();\n _this.$refs.input.select();\n });\n }\n },\n\n watch: {\n value: function value(val) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setState({\n str: val && val.format(_this2.format) || '',\n invalid: false\n });\n });\n }\n },\n\n methods: {\n onInputChange: function onInputChange(e) {\n var _e$target = e.target,\n str = _e$target.value,\n composing = _e$target.composing;\n var _str = this.str,\n oldStr = _str === undefined ? '' : _str;\n\n if (e.isComposing || composing || oldStr === str) return;\n\n this.setState({\n str: str\n });\n var format = this.format,\n hourOptions = this.hourOptions,\n minuteOptions = this.minuteOptions,\n secondOptions = this.secondOptions,\n disabledHours = this.disabledHours,\n disabledMinutes = this.disabledMinutes,\n disabledSeconds = this.disabledSeconds,\n originalValue = this.value;\n\n\n if (str) {\n var value = this.getProtoValue().clone();\n var parsed = moment(str, format, true);\n if (!parsed.isValid()) {\n this.setState({\n invalid: true\n });\n return;\n }\n value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());\n\n // if time value not allowed, response warning.\n if (hourOptions.indexOf(value.hour()) < 0 || minuteOptions.indexOf(value.minute()) < 0 || secondOptions.indexOf(value.second()) < 0) {\n this.setState({\n invalid: true\n });\n return;\n }\n\n // if time value is disabled, response warning.\n var disabledHourOptions = disabledHours();\n var disabledMinuteOptions = disabledMinutes(value.hour());\n var disabledSecondOptions = disabledSeconds(value.hour(), value.minute());\n if (disabledHourOptions && disabledHourOptions.indexOf(value.hour()) >= 0 || disabledMinuteOptions && disabledMinuteOptions.indexOf(value.minute()) >= 0 || disabledSecondOptions && disabledSecondOptions.indexOf(value.second()) >= 0) {\n this.setState({\n invalid: true\n });\n return;\n }\n\n if (originalValue) {\n if (originalValue.hour() !== value.hour() || originalValue.minute() !== value.minute() || originalValue.second() !== value.second()) {\n // keep other fields for rc-calendar\n var changedValue = originalValue.clone();\n changedValue.hour(value.hour());\n changedValue.minute(value.minute());\n changedValue.second(value.second());\n this.__emit('change', changedValue);\n }\n } else if (originalValue !== value) {\n this.__emit('change', value);\n }\n } else {\n this.__emit('change', null);\n }\n\n this.setState({\n invalid: false\n });\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === 27) {\n this.__emit('esc');\n }\n this.__emit('keydown', e);\n },\n getProtoValue: function getProtoValue() {\n return this.value || this.defaultOpenValue;\n },\n getInput: function getInput() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n inputReadOnly = this.inputReadOnly,\n invalid = this.invalid,\n str = this.str;\n\n var invalidClass = invalid ? prefixCls + '-input-invalid' : '';\n return h('input', _mergeJSXProps([{\n 'class': prefixCls + '-input ' + invalidClass,\n ref: 'input',\n on: {\n 'keydown': this.onKeyDown,\n 'input': this.onInputChange\n },\n domProps: {\n 'value': str\n },\n attrs: {\n placeholder: placeholder,\n\n readOnly: !!inputReadOnly\n }\n }, {\n directives: [{\n name: 'ant-input'\n }]\n }]));\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls;\n\n return h(\n 'div',\n { 'class': prefixCls + '-input-wrap' },\n [this.getInput()]\n );\n }\n};\n\nexport default Header;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport classnames from 'classnames';\nimport raf from 'raf';\n\nfunction noop() {}\nvar scrollTo = function scrollTo(element, to, duration) {\n // jump to target if duration zero\n if (duration <= 0) {\n raf(function () {\n element.scrollTop = to;\n });\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n\n raf(function () {\n element.scrollTop += perTick;\n if (element.scrollTop === to) return;\n scrollTo(element, to, duration - 10);\n });\n};\n\nvar Select = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n options: PropTypes.array,\n selectedIndex: PropTypes.number,\n type: PropTypes.string\n // onSelect: PropTypes.func,\n // onMouseEnter: PropTypes.func,\n },\n data: function data() {\n return {\n active: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // jump to selected option\n _this.scrollToSelected(0);\n });\n },\n\n watch: {\n selectedIndex: function selectedIndex() {\n var _this2 = this;\n\n this.$nextTick(function () {\n // smooth scroll to selected option\n _this2.scrollToSelected(120);\n });\n }\n },\n methods: {\n onSelect: function onSelect(value) {\n var type = this.type;\n\n this.__emit('select', type, value);\n },\n onEsc: function onEsc(e) {\n this.__emit('esc', e);\n },\n getOptions: function getOptions() {\n var _this3 = this;\n\n var h = this.$createElement;\n var options = this.options,\n selectedIndex = this.selectedIndex,\n prefixCls = this.prefixCls;\n\n return options.map(function (item, index) {\n var _classnames;\n\n var cls = classnames((_classnames = {}, _defineProperty(_classnames, prefixCls + '-select-option-selected', selectedIndex === index), _defineProperty(_classnames, prefixCls + '-select-option-disabled', item.disabled), _classnames));\n var onClick = item.disabled ? noop : function () {\n _this3.onSelect(item.value);\n };\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === 13) onClick();else if (e.keyCode === 27) _this3.onEsc();\n };\n return h(\n 'li',\n {\n attrs: {\n role: 'button',\n\n disabled: item.disabled,\n tabIndex: '0'\n },\n on: {\n 'click': onClick,\n 'keydown': onKeyDown\n },\n\n 'class': cls,\n key: index },\n [item.value]\n );\n });\n },\n handleMouseEnter: function handleMouseEnter(e) {\n this.setState({ active: true });\n this.__emit('mouseenter', e);\n },\n handleMouseLeave: function handleMouseLeave() {\n this.setState({ active: false });\n },\n scrollToSelected: function scrollToSelected(duration) {\n // move to selected item\n var select = this.$el;\n var list = this.$refs.list;\n if (!list) {\n return;\n }\n var index = this.selectedIndex;\n if (index < 0) {\n index = 0;\n }\n var topOption = list.children[index];\n var to = topOption.offsetTop;\n scrollTo(select, to, duration);\n }\n },\n\n render: function render() {\n var _cls;\n\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n options = this.options,\n active = this.active;\n\n if (options.length === 0) {\n return null;\n }\n\n var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-select', 1), _defineProperty(_cls, prefixCls + '-select-active', active), _cls);\n\n return h(\n 'div',\n { 'class': cls, on: {\n 'mouseenter': this.handleMouseEnter,\n 'mouseleave': this.handleMouseLeave\n }\n },\n [h(\n 'ul',\n { ref: 'list' },\n [this.getOptions()]\n )]\n );\n }\n};\n\nexport default Select;","import PropTypes from '../_util/vue-types';\nimport Select from './Select';\nimport BaseMixin from '../_util/BaseMixin';\n\nvar formatOption = function formatOption(option, disabledOptions) {\n var value = '' + option;\n if (option < 10) {\n value = '0' + option;\n }\n\n var disabled = false;\n if (disabledOptions && disabledOptions.indexOf(option) >= 0) {\n disabled = true;\n }\n\n return {\n value: value,\n disabled: disabled\n };\n};\n\nvar Combobox = {\n mixins: [BaseMixin],\n name: 'Combobox',\n props: {\n format: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n // onChange: PropTypes.func,\n // onAmPmChange: PropTypes.func,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n // onCurrentSelectPanelChange: PropTypes.func,\n use12Hours: PropTypes.bool,\n isAM: PropTypes.bool\n },\n methods: {\n onItemChange: function onItemChange(type, itemValue) {\n var defaultOpenValue = this.defaultOpenValue,\n use12Hours = this.use12Hours,\n propValue = this.value,\n isAM = this.isAM;\n\n var value = (propValue || defaultOpenValue).clone();\n\n if (type === 'hour') {\n if (use12Hours) {\n if (isAM) {\n value.hour(+itemValue % 12);\n } else {\n value.hour(+itemValue % 12 + 12);\n }\n } else {\n value.hour(+itemValue);\n }\n } else if (type === 'minute') {\n value.minute(+itemValue);\n } else if (type === 'ampm') {\n var ampm = itemValue.toUpperCase();\n if (use12Hours) {\n if (ampm === 'PM' && value.hour() < 12) {\n value.hour(value.hour() % 12 + 12);\n }\n\n if (ampm === 'AM') {\n if (value.hour() >= 12) {\n value.hour(value.hour() - 12);\n }\n }\n }\n this.__emit('amPmChange', ampm);\n } else {\n value.second(+itemValue);\n }\n this.__emit('change', value);\n },\n onEnterSelectPanel: function onEnterSelectPanel(range) {\n this.__emit('currentSelectPanelChange', range);\n },\n onEsc: function onEsc(e) {\n this.__emit('esc', e);\n },\n getHourSelect: function getHourSelect(hour) {\n var _this = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n hourOptions = this.hourOptions,\n disabledHours = this.disabledHours,\n showHour = this.showHour,\n use12Hours = this.use12Hours;\n\n if (!showHour) {\n return null;\n }\n var disabledOptions = disabledHours();\n var hourOptionsAdj = void 0;\n var hourAdj = void 0;\n if (use12Hours) {\n hourOptionsAdj = [12].concat(hourOptions.filter(function (h) {\n return h < 12 && h > 0;\n }));\n hourAdj = hour % 12 || 12;\n } else {\n hourOptionsAdj = hourOptions;\n hourAdj = hour;\n }\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: hourOptionsAdj.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: hourOptionsAdj.indexOf(hourAdj),\n type: 'hour'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this.onEnterSelectPanel('hour');\n },\n 'esc': this.onEsc\n }\n });\n },\n getMinuteSelect: function getMinuteSelect(minute) {\n var _this2 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n minuteOptions = this.minuteOptions,\n disabledMinutes = this.disabledMinutes,\n defaultOpenValue = this.defaultOpenValue,\n showMinute = this.showMinute,\n propValue = this.value;\n\n if (!showMinute) {\n return null;\n }\n var value = propValue || defaultOpenValue;\n var disabledOptions = disabledMinutes(value.hour());\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: minuteOptions.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: minuteOptions.indexOf(minute),\n type: 'minute'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this2.onEnterSelectPanel('minute');\n },\n 'esc': this.onEsc\n }\n });\n },\n getSecondSelect: function getSecondSelect(second) {\n var _this3 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n secondOptions = this.secondOptions,\n disabledSeconds = this.disabledSeconds,\n showSecond = this.showSecond,\n defaultOpenValue = this.defaultOpenValue,\n propValue = this.value;\n\n if (!showSecond) {\n return null;\n }\n var value = propValue || defaultOpenValue;\n var disabledOptions = disabledSeconds(value.hour(), value.minute());\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: secondOptions.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: secondOptions.indexOf(second),\n type: 'second'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this3.onEnterSelectPanel('second');\n },\n 'esc': this.onEsc\n }\n });\n },\n getAMPMSelect: function getAMPMSelect() {\n var _this4 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n use12Hours = this.use12Hours,\n format = this.format,\n isAM = this.isAM;\n\n if (!use12Hours) {\n return null;\n }\n\n var AMPMOptions = ['am', 'pm'] // If format has A char, then we should uppercase AM/PM\n .map(function (c) {\n return format.match(/\\sA/) ? c.toUpperCase() : c;\n }).map(function (c) {\n return { value: c };\n });\n\n var selected = isAM ? 0 : 1;\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: AMPMOptions,\n selectedIndex: selected,\n type: 'ampm'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this4.onEnterSelectPanel('ampm');\n },\n 'esc': this.onEsc\n }\n });\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n defaultOpenValue = this.defaultOpenValue,\n propValue = this.value;\n\n var value = propValue || defaultOpenValue;\n return h(\n 'div',\n { 'class': prefixCls + '-combobox' },\n [this.getHourSelect(value.hour()), this.getMinuteSelect(value.minute()), this.getSecondSelect(value.second()), this.getAMPMSelect(value.hour())]\n );\n }\n};\n\nexport default Combobox;","import moment from 'moment';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport Header from './Header';\nimport Combobox from './Combobox';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\n\nfunction noop() {}\n\nfunction generateOptions(length, disabledOptions, hideDisabledOptions) {\n var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n var arr = [];\n for (var value = 0; value < length; value += step) {\n if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nfunction toNearestValidTime(time, hourOptions, minuteOptions, secondOptions) {\n var hour = hourOptions.slice().sort(function (a, b) {\n return Math.abs(time.hour() - a) - Math.abs(time.hour() - b);\n })[0];\n var minute = minuteOptions.slice().sort(function (a, b) {\n return Math.abs(time.minute() - a) - Math.abs(time.minute() - b);\n })[0];\n var second = secondOptions.slice().sort(function (a, b) {\n return Math.abs(time.second() - a) - Math.abs(time.second() - b);\n })[0];\n return moment(hour + ':' + minute + ':' + second, 'HH:mm:ss');\n}\n\nvar Panel = {\n mixins: [BaseMixin],\n props: {\n clearText: PropTypes.string,\n prefixCls: PropTypes.string.def('rc-time-picker-panel'),\n defaultOpenValue: {\n type: Object,\n 'default': function _default() {\n return moment();\n }\n },\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n inputReadOnly: PropTypes.bool.def(false),\n disabledHours: PropTypes.func.def(noop),\n disabledMinutes: PropTypes.func.def(noop),\n disabledSeconds: PropTypes.func.def(noop),\n hideDisabledOptions: PropTypes.bool,\n // onChange: PropTypes.func,\n // onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n // onClear: PropTypes.func,\n use12Hours: PropTypes.bool.def(false),\n hourStep: PropTypes.number,\n minuteStep: PropTypes.number,\n secondStep: PropTypes.number,\n addon: PropTypes.func.def(noop),\n focusOnOpen: PropTypes.bool,\n // onKeydown: PropTypes.func,\n clearIcon: PropTypes.any\n },\n data: function data() {\n return {\n sValue: this.value,\n selectionRange: [],\n currentSelectPanel: ''\n };\n },\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n }\n },\n\n methods: {\n onChange: function onChange(newValue) {\n this.setState({ sValue: newValue });\n this.__emit('change', newValue);\n },\n onAmPmChange: function onAmPmChange(ampm) {\n this.__emit('amPmChange', ampm);\n },\n onCurrentSelectPanelChange: function onCurrentSelectPanelChange(currentSelectPanel) {\n this.setState({ currentSelectPanel: currentSelectPanel });\n },\n\n\n // https://github.com/ant-design/ant-design/issues/5829\n close: function close() {\n this.__emit('esc');\n },\n onEsc: function onEsc(e) {\n this.__emit('esc', e);\n },\n disabledHours2: function disabledHours2() {\n var use12Hours = this.use12Hours,\n disabledHours = this.disabledHours;\n\n var disabledOptions = disabledHours();\n if (use12Hours && Array.isArray(disabledOptions)) {\n if (this.isAM()) {\n disabledOptions = disabledOptions.filter(function (h) {\n return h < 12;\n }).map(function (h) {\n return h === 0 ? 12 : h;\n });\n } else {\n disabledOptions = disabledOptions.map(function (h) {\n return h === 12 ? 12 : h - 12;\n });\n }\n }\n return disabledOptions;\n },\n isAM: function isAM() {\n var value = this.sValue || this.defaultOpenValue;\n return value.hour() >= 0 && value.hour() < 12;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n disabledMinutes = this.disabledMinutes,\n addon = this.addon,\n disabledSeconds = this.disabledSeconds,\n hideDisabledOptions = this.hideDisabledOptions,\n showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n format = this.format,\n defaultOpenValue = this.defaultOpenValue,\n clearText = this.clearText,\n use12Hours = this.use12Hours,\n focusOnOpen = this.focusOnOpen,\n hourStep = this.hourStep,\n minuteStep = this.minuteStep,\n secondStep = this.secondStep,\n inputReadOnly = this.inputReadOnly,\n sValue = this.sValue,\n currentSelectPanel = this.currentSelectPanel;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n\n var _getListeners = getListeners(this),\n _getListeners$esc = _getListeners.esc,\n esc = _getListeners$esc === undefined ? noop : _getListeners$esc,\n _getListeners$keydown = _getListeners.keydown,\n keydown = _getListeners$keydown === undefined ? noop : _getListeners$keydown;\n\n var disabledHourOptions = this.disabledHours2();\n var disabledMinuteOptions = disabledMinutes(sValue ? sValue.hour() : null);\n var disabledSecondOptions = disabledSeconds(sValue ? sValue.hour() : null, sValue ? sValue.minute() : null);\n var hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions, hourStep);\n var minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions, minuteStep);\n var secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions, secondStep);\n var validDefaultOpenValue = toNearestValidTime(defaultOpenValue, hourOptions, minuteOptions, secondOptions);\n return h(\n 'div',\n { 'class': prefixCls + '-inner' },\n [h(Header, {\n attrs: {\n clearText: clearText,\n prefixCls: prefixCls,\n defaultOpenValue: validDefaultOpenValue,\n value: sValue,\n currentSelectPanel: currentSelectPanel,\n\n format: format,\n placeholder: placeholder,\n hourOptions: hourOptions,\n minuteOptions: minuteOptions,\n secondOptions: secondOptions,\n disabledHours: this.disabledHours2,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n\n focusOnOpen: focusOnOpen,\n\n inputReadOnly: inputReadOnly,\n clearIcon: clearIcon\n },\n on: {\n 'esc': esc,\n 'change': this.onChange,\n 'keydown': keydown\n }\n }), h(Combobox, {\n attrs: {\n prefixCls: prefixCls,\n value: sValue,\n defaultOpenValue: validDefaultOpenValue,\n format: format,\n\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n hourOptions: hourOptions,\n minuteOptions: minuteOptions,\n secondOptions: secondOptions,\n disabledHours: this.disabledHours2,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n\n use12Hours: use12Hours,\n\n isAM: this.isAM()\n },\n on: {\n 'change': this.onChange,\n 'amPmChange': this.onAmPmChange,\n 'currentSelectPanelChange': this.onCurrentSelectPanelChange,\n 'esc': this.onEsc\n }\n }), addon(this)]\n );\n }\n};\n\nexport default Panel;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nvar placements = {\n bottomLeft: {\n points: ['tl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { initDefaultProps, hasProp, getComponentFromProp, isValidElement, getEvents } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport Trigger from '../vc-trigger';\nimport Panel from './Panel';\nimport placements from './placements';\n\nfunction noop() {}\n\nexport default {\n name: 'VcTimePicker',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.any,\n defaultOpenValue: {\n type: Object,\n 'default': function _default() {\n return moment();\n }\n },\n inputReadOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n allowEmpty: PropTypes.bool,\n defaultValue: PropTypes.any,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n align: PropTypes.object,\n placement: PropTypes.any,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n popupClassName: PropTypes.string,\n popupStyle: PropTypes.object,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n // onChange: PropTypes.func,\n // onAmPmChange: PropTypes.func,\n // onOpen: PropTypes.func,\n // onClose: PropTypes.func,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n name: PropTypes.string,\n autoComplete: PropTypes.string,\n use12Hours: PropTypes.bool,\n hourStep: PropTypes.number,\n minuteStep: PropTypes.number,\n secondStep: PropTypes.number,\n focusOnOpen: PropTypes.bool,\n // onKeyDown: PropTypes.func,\n autoFocus: PropTypes.bool,\n id: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n addon: PropTypes.func\n }, {\n clearText: 'clear',\n prefixCls: 'rc-time-picker',\n defaultOpen: false,\n inputReadOnly: false,\n popupClassName: '',\n popupStyle: {},\n align: {},\n allowEmpty: true,\n showHour: true,\n showMinute: true,\n showSecond: true,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n hideDisabledOptions: false,\n placement: 'bottomLeft',\n use12Hours: false,\n focusOnOpen: false\n }),\n data: function data() {\n var defaultOpen = this.defaultOpen,\n defaultValue = this.defaultValue,\n _open = this.open,\n open = _open === undefined ? defaultOpen : _open,\n _value = this.value,\n value = _value === undefined ? defaultValue : _value;\n\n return {\n sOpen: open,\n sValue: value\n };\n },\n\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n },\n open: function open(val) {\n if (val !== undefined) {\n this.setState({\n sOpen: val\n });\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus) {\n _this.focus();\n }\n });\n },\n\n methods: {\n onPanelChange: function onPanelChange(value) {\n this.setValue(value);\n },\n onAmPmChange: function onAmPmChange(ampm) {\n this.__emit('amPmChange', ampm);\n },\n onClear: function onClear(event) {\n event.stopPropagation();\n this.setValue(null);\n this.setOpen(false);\n },\n onVisibleChange: function onVisibleChange(open) {\n this.setOpen(open);\n },\n onEsc: function onEsc() {\n this.setOpen(false);\n this.focus();\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === 40) {\n this.setOpen(true);\n }\n },\n onKeyDown2: function onKeyDown2(e) {\n this.__emit('keydown', e);\n },\n setValue: function setValue(value) {\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n this.__emit('change', value);\n },\n getFormat: function getFormat() {\n var format = this.format,\n showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n use12Hours = this.use12Hours;\n\n if (format) {\n return format;\n }\n\n if (use12Hours) {\n var fmtString = [showHour ? 'h' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {\n return !!item;\n }).join(':');\n\n return fmtString.concat(' a');\n }\n\n return [showHour ? 'HH' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {\n return !!item;\n }).join(':');\n },\n getPanelElement: function getPanelElement() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n disabledHours = this.disabledHours,\n addon = this.addon,\n disabledMinutes = this.disabledMinutes,\n disabledSeconds = this.disabledSeconds,\n hideDisabledOptions = this.hideDisabledOptions,\n inputReadOnly = this.inputReadOnly,\n showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n defaultOpenValue = this.defaultOpenValue,\n clearText = this.clearText,\n use12Hours = this.use12Hours,\n focusOnOpen = this.focusOnOpen,\n onKeyDown2 = this.onKeyDown2,\n hourStep = this.hourStep,\n minuteStep = this.minuteStep,\n secondStep = this.secondStep,\n sValue = this.sValue;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n return h(Panel, {\n attrs: {\n clearText: clearText,\n prefixCls: prefixCls + '-panel',\n\n value: sValue,\n inputReadOnly: inputReadOnly,\n\n defaultOpenValue: defaultOpenValue,\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n\n format: this.getFormat(),\n placeholder: placeholder,\n disabledHours: disabledHours,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n hideDisabledOptions: hideDisabledOptions,\n use12Hours: use12Hours,\n hourStep: hourStep,\n minuteStep: minuteStep,\n secondStep: secondStep,\n focusOnOpen: focusOnOpen,\n\n clearIcon: clearIcon,\n addon: addon\n },\n ref: 'panel', on: {\n 'change': this.onPanelChange,\n 'amPmChange': this.onAmPmChange,\n 'esc': this.onEsc,\n 'keydown': onKeyDown2\n }\n });\n },\n getPopupClassName: function getPopupClassName() {\n var showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n use12Hours = this.use12Hours,\n prefixCls = this.prefixCls,\n popupClassName = this.popupClassName;\n\n\n var selectColumnCount = 0;\n if (showHour) {\n selectColumnCount += 1;\n }\n if (showMinute) {\n selectColumnCount += 1;\n }\n if (showSecond) {\n selectColumnCount += 1;\n }\n if (use12Hours) {\n selectColumnCount += 1;\n }\n // Keep it for old compatibility\n return classNames(popupClassName, _defineProperty({}, prefixCls + '-panel-narrow', (!showHour || !showMinute || !showSecond) && !use12Hours), prefixCls + '-panel-column-' + selectColumnCount);\n },\n setOpen: function setOpen(open) {\n if (this.sOpen !== open) {\n if (!hasProp(this, 'open')) {\n this.setState({ sOpen: open });\n }\n if (open) {\n this.__emit('open', { open: open });\n } else {\n this.__emit('close', { open: open });\n }\n }\n },\n focus: function focus() {\n this.$refs.picker.focus();\n },\n blur: function blur() {\n this.$refs.picker.blur();\n },\n onFocus: function onFocus(e) {\n this.__emit('focus', e);\n },\n onBlur: function onBlur(e) {\n this.__emit('blur', e);\n },\n renderClearButton: function renderClearButton() {\n var _this2 = this;\n\n var h = this.$createElement;\n var sValue = this.sValue;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n allowEmpty = _$props.allowEmpty,\n clearText = _$props.clearText,\n disabled = _$props.disabled;\n\n if (!allowEmpty || !sValue || disabled) {\n return null;\n }\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n if (isValidElement(clearIcon)) {\n var _ref = getEvents(clearIcon) || {},\n _click = _ref.click;\n\n return cloneElement(clearIcon, {\n on: {\n click: function click() {\n if (_click) _click.apply(undefined, arguments);\n _this2.onClear.apply(_this2, arguments);\n }\n }\n });\n }\n\n return h(\n 'a',\n {\n attrs: {\n role: 'button',\n\n title: clearText,\n\n tabIndex: 0\n },\n 'class': prefixCls + '-clear', on: {\n 'click': this.onClear\n }\n },\n [clearIcon || h('i', { 'class': prefixCls + '-clear-icon' })]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n placement = this.placement,\n align = this.align,\n id = this.id,\n disabled = this.disabled,\n transitionName = this.transitionName,\n getPopupContainer = this.getPopupContainer,\n name = this.name,\n autoComplete = this.autoComplete,\n autoFocus = this.autoFocus,\n sOpen = this.sOpen,\n sValue = this.sValue,\n onFocus = this.onFocus,\n onBlur = this.onBlur,\n popupStyle = this.popupStyle;\n\n var popupClassName = this.getPopupClassName();\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n return h(\n Trigger,\n {\n attrs: {\n prefixCls: prefixCls + '-panel',\n popupClassName: popupClassName,\n popupStyle: popupStyle,\n popupAlign: align,\n builtinPlacements: placements,\n popupPlacement: placement,\n action: disabled ? [] : ['click'],\n destroyPopupOnHide: true,\n getPopupContainer: getPopupContainer,\n popupTransitionName: transitionName,\n popupVisible: sOpen\n },\n on: {\n 'popupVisibleChange': this.onVisibleChange\n }\n },\n [h(\n 'template',\n { slot: 'popup' },\n [this.getPanelElement()]\n ), h(\n 'span',\n { 'class': '' + prefixCls },\n [h('input', {\n 'class': prefixCls + '-input',\n ref: 'picker',\n attrs: { type: 'text',\n placeholder: placeholder,\n name: name,\n\n disabled: disabled,\n\n autoComplete: autoComplete,\n\n autoFocus: autoFocus,\n readOnly: true,\n id: id\n },\n on: {\n 'keydown': this.onKeyDown,\n 'focus': onFocus,\n 'blur': onBlur\n },\n domProps: {\n 'value': sValue && sValue.format(this.getFormat()) || ''\n }\n }), inputIcon || h('span', { 'class': prefixCls + '-icon' }), this.renderClearButton()]\n )]\n );\n }\n};","import PropTypes from '../_util/vue-types';\n\nexport default {\n props: {\n prefixCls: PropTypes.string,\n overlay: PropTypes.any,\n trigger: PropTypes.any\n },\n updated: function updated() {\n var trigger = this.trigger;\n\n if (trigger) {\n trigger.forcePopupAlign();\n }\n },\n render: function render() {\n var h = arguments[0];\n var overlay = this.overlay,\n prefixCls = this.prefixCls;\n\n return h(\n 'div',\n { 'class': prefixCls + '-inner', attrs: { role: 'tooltip' }\n },\n [typeof overlay === 'function' ? overlay() : overlay]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\nimport { hasProp, getComponentFromProp, getOptionProps, getListeners } from '../_util/props-util';\nfunction noop() {}\nexport default {\n props: {\n trigger: PropTypes.any.def(['hover']),\n defaultVisible: PropTypes.bool,\n visible: PropTypes.bool,\n placement: PropTypes.string.def('right'),\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animation: PropTypes.any,\n afterVisibleChange: PropTypes.func.def(function () {}),\n overlay: PropTypes.any,\n overlayStyle: PropTypes.object,\n overlayClassName: PropTypes.string,\n prefixCls: PropTypes.string.def('rc-tooltip'),\n mouseEnterDelay: PropTypes.number.def(0),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n getTooltipContainer: PropTypes.func,\n destroyTooltipOnHide: PropTypes.bool.def(false),\n align: PropTypes.object.def(function () {\n return {};\n }),\n arrowContent: PropTypes.any.def(null),\n tipId: PropTypes.string,\n builtinPlacements: PropTypes.object\n },\n methods: {\n getPopupElement: function getPopupElement() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n tipId = _$props.tipId;\n\n return [h(\n 'div',\n { 'class': prefixCls + '-arrow', key: 'arrow' },\n [getComponentFromProp(this, 'arrowContent')]\n ), h(Content, {\n key: 'content',\n attrs: { trigger: this.$refs.trigger,\n prefixCls: prefixCls,\n id: tipId,\n overlay: getComponentFromProp(this, 'overlay')\n }\n })];\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.trigger.getPopupDomNode();\n }\n },\n render: function render(h) {\n var _getOptionProps = getOptionProps(this),\n overlayClassName = _getOptionProps.overlayClassName,\n trigger = _getOptionProps.trigger,\n mouseEnterDelay = _getOptionProps.mouseEnterDelay,\n mouseLeaveDelay = _getOptionProps.mouseLeaveDelay,\n overlayStyle = _getOptionProps.overlayStyle,\n prefixCls = _getOptionProps.prefixCls,\n afterVisibleChange = _getOptionProps.afterVisibleChange,\n transitionName = _getOptionProps.transitionName,\n animation = _getOptionProps.animation,\n placement = _getOptionProps.placement,\n align = _getOptionProps.align,\n destroyTooltipOnHide = _getOptionProps.destroyTooltipOnHide,\n defaultVisible = _getOptionProps.defaultVisible,\n getTooltipContainer = _getOptionProps.getTooltipContainer,\n restProps = _objectWithoutProperties(_getOptionProps, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', 'overlayStyle', 'prefixCls', 'afterVisibleChange', 'transitionName', 'animation', 'placement', 'align', 'destroyTooltipOnHide', 'defaultVisible', 'getTooltipContainer']);\n\n var extraProps = _extends({}, restProps);\n if (hasProp(this, 'visible')) {\n extraProps.popupVisible = this.$props.visible;\n }\n var listeners = getListeners(this);\n var triggerProps = {\n props: _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps),\n on: _extends({}, listeners, {\n popupVisibleChange: listeners.visibleChange || noop,\n popupAlign: listeners.popupAlign || noop\n }),\n ref: 'trigger'\n };\n return h(\n Trigger,\n triggerProps,\n [h(\n 'template',\n { slot: 'popup' },\n [this.getPopupElement(h)]\n ), this.$slots['default']]\n );\n }\n};","// based on rc-tooltip 3.7.3\nimport Tooltip from './Tooltip';\n\nexport default Tooltip;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","// export this package's api\n// base 2.9.3\nimport Vue from 'vue';\nimport TreeSelect from './src';\nimport ref from 'vue-ref';\n\nVue.use(ref, { name: 'ant-ref' });\nexport default TreeSelect;\n\nexport { TreeNode, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './src';","export function hasClass(node, className) {\n if (node.classList) {\n return node.classList.contains(className);\n }\n var originClass = node.className;\n return (' ' + originClass + ' ').indexOf(' ' + className + ' ') > -1;\n}\n\nexport function addClass(node, className) {\n if (node.classList) {\n node.classList.add(className);\n } else {\n if (!hasClass(node, className)) {\n node.className = node.className + ' ' + className;\n }\n }\n}\n\nexport function removeClass(node, className) {\n if (node.classList) {\n node.classList.remove(className);\n } else {\n if (hasClass(node, className)) {\n var originClass = node.className;\n node.className = (' ' + originClass + ' ').replace(' ' + className + ' ', ' ');\n }\n }\n}","import _typeof from 'babel-runtime/helpers/typeof';\nimport _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\nimport omit from 'omit.js';\nimport { convertDataToTree as vcConvertDataToTree, convertTreeToEntities as vcConvertTreeToEntities, conductCheck as rcConductCheck } from '../../vc-tree/src/util';\nimport { hasClass } from '../../vc-util/Dom/class';\nimport { SHOW_CHILD, SHOW_PARENT } from './strategies';\nimport { getSlots, getPropsData, isEmptyElement } from '../../_util/props-util';\n\nvar warnDeprecatedLabel = false;\n\n// =================== DOM =====================\nexport function findPopupContainer(node, prefixClass) {\n var current = node;\n while (current) {\n if (hasClass(current, prefixClass)) {\n return current;\n }\n current = current.parentNode;\n }\n\n return null;\n}\n\n// =================== MISC ====================\nexport function toTitle(title) {\n if (typeof title === 'string') {\n return title;\n }\n return null;\n}\n\nexport function toArray(data) {\n if (data === undefined || data === null) return [];\n\n return Array.isArray(data) ? data : [data];\n}\n\nexport function createRef() {\n var func = function setRef(node) {\n func.current = node;\n };\n return func;\n}\n\n// =============== Legacy ===============\nexport var UNSELECTABLE_STYLE = {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n};\n\nexport var UNSELECTABLE_ATTRIBUTE = {\n unselectable: 'unselectable'\n};\n\n/**\n * Convert position list to hierarchy structure.\n * This is little hack since use '-' to split the position.\n */\nexport function flatToHierarchy(positionList) {\n if (!positionList.length) {\n return [];\n }\n\n var entrances = {};\n\n // Prepare the position map\n var posMap = {};\n var parsedList = positionList.slice().map(function (entity) {\n var clone = _extends({}, entity, {\n fields: entity.pos.split('-')\n });\n delete clone.children;\n return clone;\n });\n\n parsedList.forEach(function (entity) {\n posMap[entity.pos] = entity;\n });\n\n parsedList.sort(function (a, b) {\n return a.fields.length - b.fields.length;\n });\n\n // Create the hierarchy\n parsedList.forEach(function (entity) {\n var parentPos = entity.fields.slice(0, -1).join('-');\n var parentEntity = posMap[parentPos];\n\n if (!parentEntity) {\n entrances[entity.pos] = entity;\n } else {\n parentEntity.children = parentEntity.children || [];\n parentEntity.children.push(entity);\n }\n\n // Some time position list provide `key`, we don't need it\n delete entity.key;\n delete entity.fields;\n });\n\n return Object.keys(entrances).map(function (key) {\n return entrances[key];\n });\n}\n\n// =============== Accessibility ===============\nvar ariaId = 0;\n\nexport function resetAriaId() {\n ariaId = 0;\n}\n\nexport function generateAriaId(prefix) {\n ariaId += 1;\n return prefix + '_' + ariaId;\n}\n\nexport function isLabelInValue(props) {\n var treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue;\n\n if (treeCheckable && treeCheckStrictly) {\n return true;\n }\n return labelInValue || false;\n}\n\n// =================== Tree ====================\nexport function parseSimpleTreeData(treeData, _ref) {\n var id = _ref.id,\n pId = _ref.pId,\n rootPId = _ref.rootPId;\n\n var keyNodes = {};\n var rootNodeList = [];\n\n // Fill in the map\n var nodeList = treeData.map(function (node) {\n var clone = _extends({}, node);\n var key = clone[id];\n keyNodes[key] = clone;\n clone.key = clone.key || key;\n return clone;\n });\n\n // Connect tree\n nodeList.forEach(function (node) {\n var parentKey = node[pId];\n var parent = keyNodes[parentKey];\n\n // Fill parent\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n }\n\n // Fill root tree node\n if (parentKey === rootPId || !parent && rootPId === null) {\n rootNodeList.push(node);\n }\n });\n\n return rootNodeList;\n}\n\n/**\n * Detect if position has relation.\n * e.g. 1-2 related with 1-2-3\n * e.g. 1-3-2 related with 1\n * e.g. 1-2 not related with 1-21\n */\nexport function isPosRelated(pos1, pos2) {\n var fields1 = pos1.split('-');\n var fields2 = pos2.split('-');\n\n var minLen = Math.min(fields1.length, fields2.length);\n for (var i = 0; i < minLen; i += 1) {\n if (fields1[i] !== fields2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * This function is only used on treeNode check (none treeCheckStrictly but has searchInput).\n * We convert entity to { node, pos, children } format.\n * This is legacy bug but we still need to do with it.\n * @param entity\n */\nexport function cleanEntity(_ref2) {\n var node = _ref2.node,\n pos = _ref2.pos,\n children = _ref2.children;\n\n var instance = {\n node: node,\n pos: pos\n };\n\n if (children) {\n instance.children = children.map(cleanEntity);\n }\n\n return instance;\n}\n\n/**\n * Get a filtered TreeNode list by provided treeNodes.\n * [Legacy] Since `Tree` use `key` as map but `key` will changed by React,\n * we have to convert `treeNodes > data > treeNodes` to keep the key.\n * Such performance hungry!\n */\nexport function getFilterTree(h, treeNodes, searchValue, filterFunc, valueEntities, Component) {\n if (!searchValue) {\n return null;\n }\n\n function mapFilteredNodeToData(node) {\n if (!node || isEmptyElement(node)) return null;\n\n var match = false;\n if (filterFunc(searchValue, node)) {\n match = true;\n }\n var children = getSlots(node)['default'];\n children = ((typeof children === 'function' ? children() : children) || []).map(mapFilteredNodeToData).filter(function (n) {\n return n;\n });\n if (children.length || match) {\n return h(\n Component,\n _mergeJSXProps([node.data, { key: valueEntities[getPropsData(node).value].key }]),\n [children]\n );\n }\n\n return null;\n }\n return treeNodes.map(mapFilteredNodeToData).filter(function (node) {\n return node;\n });\n}\n\n// =================== Value ===================\n/**\n * Convert value to array format to make logic simplify.\n */\nexport function formatInternalValue(value, props) {\n var valueList = toArray(value);\n\n // Parse label in value\n if (isLabelInValue(props)) {\n return valueList.map(function (val) {\n if ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) !== 'object' || !val) {\n return {\n value: '',\n label: ''\n };\n }\n\n return val;\n });\n }\n\n return valueList.map(function (val) {\n return {\n value: val\n };\n });\n}\n\nexport function getLabel(wrappedValue, entity, treeNodeLabelProp) {\n if (wrappedValue.label) {\n return wrappedValue.label;\n }\n\n if (entity) {\n var props = getPropsData(entity.node);\n if (Object.keys(props).length) {\n return props[treeNodeLabelProp];\n }\n }\n\n // Since value without entity will be in missValueList.\n // This code will never reached, but we still need this in case.\n return wrappedValue.value;\n}\n\n/**\n * Convert internal state `valueList` to user needed value list.\n * This will return an array list. You need check if is not multiple when return.\n *\n * `allCheckedNodes` is used for `treeCheckStrictly`\n */\nexport function formatSelectorValue(valueList, props, valueEntities) {\n var treeNodeLabelProp = props.treeNodeLabelProp,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n showCheckedStrategy = props.showCheckedStrategy;\n\n // Will hide some value if `showCheckedStrategy` is set\n\n if (treeCheckable && !treeCheckStrictly) {\n var values = {};\n valueList.forEach(function (wrappedValue) {\n values[wrappedValue.value] = wrappedValue;\n });\n var hierarchyList = flatToHierarchy(valueList.map(function (_ref3) {\n var value = _ref3.value;\n return valueEntities[value];\n }));\n\n if (showCheckedStrategy === SHOW_PARENT) {\n // Only get the parent checked value\n return hierarchyList.map(function (_ref4) {\n var node = _ref4.node;\n\n var value = getPropsData(node).value;\n return {\n label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n value: value\n };\n });\n }\n if (showCheckedStrategy === SHOW_CHILD) {\n // Only get the children checked value\n var targetValueList = [];\n\n // Find the leaf children\n var traverse = function traverse(_ref5) {\n var node = _ref5.node,\n children = _ref5.children;\n\n var value = getPropsData(node).value;\n if (!children || children.length === 0) {\n targetValueList.push({\n label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n value: value\n });\n return;\n }\n\n children.forEach(function (entity) {\n traverse(entity);\n });\n };\n\n hierarchyList.forEach(function (entity) {\n traverse(entity);\n });\n\n return targetValueList;\n }\n }\n\n return valueList.map(function (wrappedValue) {\n return {\n label: getLabel(wrappedValue, valueEntities[wrappedValue.value], treeNodeLabelProp),\n value: wrappedValue.value\n };\n });\n}\n\n/**\n * Use `rc-tree` convertDataToTree to convert treeData to TreeNodes.\n * This will change the label to title value\n */\nfunction processProps(props) {\n var title = props.title,\n label = props.label,\n value = props.value,\n cls = props['class'],\n style = props.style,\n _props$on = props.on,\n on = _props$on === undefined ? {} : _props$on;\n\n var key = props.key;\n if (!key && (key === undefined || key === null)) {\n key = value;\n }\n var p = {\n props: omit(props, ['on', 'key', 'class', 'className', 'style']),\n on: on,\n 'class': cls || props.className,\n style: style,\n key: key\n };\n // Warning user not to use deprecated label prop.\n if (label && !title) {\n if (!warnDeprecatedLabel) {\n warning(false, \"'label' in treeData is deprecated. Please use 'title' instead.\");\n warnDeprecatedLabel = true;\n }\n\n p.props.title = label;\n }\n\n return p;\n}\n\nexport function convertDataToTree(h, treeData) {\n return vcConvertDataToTree(h, treeData, { processProps: processProps });\n}\n\n/**\n * Use `rc-tree` convertTreeToEntities for entities calculation.\n * We have additional entities of `valueEntities`\n */\nfunction initWrapper(wrapper) {\n return _extends({}, wrapper, {\n valueEntities: {}\n });\n}\n\nfunction processEntity(entity, wrapper) {\n var value = getPropsData(entity.node).value;\n entity.value = value;\n\n // This should be empty, or will get error message.\n var currentEntity = wrapper.valueEntities[value];\n if (currentEntity) {\n warning(false, 'Conflict! value of node \\'' + entity.key + '\\' (' + value + ') has already used by node \\'' + currentEntity.key + '\\'.');\n }\n wrapper.valueEntities[value] = entity;\n}\n\nexport function convertTreeToEntities(treeNodes) {\n return vcConvertTreeToEntities(treeNodes, {\n initWrapper: initWrapper,\n processEntity: processEntity\n });\n}\n\n/**\n * https://github.com/ant-design/ant-design/issues/13328\n * We need calculate the half check key when searchValue is set.\n */\n// TODO: This logic may better move to rc-tree\nexport function getHalfCheckedKeys(valueList, valueEntities) {\n var values = {};\n\n // Fill checked keys\n valueList.forEach(function (_ref6) {\n var value = _ref6.value;\n\n values[value] = false;\n });\n\n // Fill half checked keys\n valueList.forEach(function (_ref7) {\n var value = _ref7.value;\n\n var current = valueEntities[value];\n\n while (current && current.parent) {\n var parentValue = current.parent.value;\n if (parentValue in values) break;\n values[parentValue] = true;\n\n current = current.parent;\n }\n });\n\n // Get half keys\n return Object.keys(values).filter(function (value) {\n return values[value];\n }).map(function (value) {\n return valueEntities[value].key;\n });\n}\n\nexport var conductCheck = rcConductCheck;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../_util/vue-types';\n\nimport Trigger from '../../vc-trigger';\nimport { createRef } from './util';\nimport classNames from 'classnames';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n },\n ignoreShake: true\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n },\n ignoreShake: true\n }\n};\n\nvar SelectTrigger = {\n name: 'SelectTrigger',\n props: {\n // Pass by outside user props\n disabled: PropTypes.bool,\n showSearch: PropTypes.bool,\n prefixCls: PropTypes.string,\n dropdownPopupAlign: PropTypes.object,\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n transitionName: PropTypes.string,\n animation: PropTypes.string,\n getPopupContainer: PropTypes.func,\n\n dropdownMatchSelectWidth: PropTypes.bool,\n\n // Pass by Select\n isMultiple: PropTypes.bool,\n dropdownPrefixCls: PropTypes.string,\n dropdownVisibleChange: PropTypes.func,\n popupElement: PropTypes.node,\n open: PropTypes.bool\n },\n created: function created() {\n this.triggerRef = createRef();\n },\n\n methods: {\n getDropdownTransitionName: function getDropdownTransitionName() {\n var _$props = this.$props,\n transitionName = _$props.transitionName,\n animation = _$props.animation,\n dropdownPrefixCls = _$props.dropdownPrefixCls;\n\n if (!transitionName && animation) {\n return dropdownPrefixCls + '-' + animation;\n }\n return transitionName;\n },\n forcePopupAlign: function forcePopupAlign() {\n var $trigger = this.triggerRef.current;\n if ($trigger) {\n $trigger.forcePopupAlign();\n }\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props2 = this.$props,\n disabled = _$props2.disabled,\n isMultiple = _$props2.isMultiple,\n dropdownPopupAlign = _$props2.dropdownPopupAlign,\n dropdownMatchSelectWidth = _$props2.dropdownMatchSelectWidth,\n dropdownClassName = _$props2.dropdownClassName,\n dropdownStyle = _$props2.dropdownStyle,\n dropdownVisibleChange = _$props2.dropdownVisibleChange,\n getPopupContainer = _$props2.getPopupContainer,\n dropdownPrefixCls = _$props2.dropdownPrefixCls,\n popupElement = _$props2.popupElement,\n open = _$props2.open;\n\n // TODO: [Legacy] Use new action when trigger fixed: https://github.com/react-component/trigger/pull/86\n\n // When false do nothing with the width\n // ref: https://github.com/ant-design/ant-design/issues/10927\n\n var stretch = void 0;\n if (dropdownMatchSelectWidth !== false) {\n stretch = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n }\n return h(\n Trigger,\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.triggerRef\n }]\n }, {\n attrs: {\n action: disabled ? [] : ['click'],\n popupPlacement: 'bottomLeft',\n builtinPlacements: BUILT_IN_PLACEMENTS,\n popupAlign: dropdownPopupAlign,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: this.getDropdownTransitionName(),\n\n popup: popupElement,\n popupVisible: open,\n getPopupContainer: getPopupContainer,\n stretch: stretch,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, dropdownPrefixCls + '--multiple', isMultiple), _defineProperty(_classNames, dropdownPrefixCls + '--single', !isMultiple), _classNames)),\n popupStyle: dropdownStyle\n },\n on: {\n 'popupVisibleChange': dropdownVisibleChange\n }\n }]),\n [this.$slots['default']]\n );\n }\n};\n\nexport default SelectTrigger;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Input Box is in different position for different mode.\n * This not the same design as `Select` cause it's followed by antd 0.x `Select`.\n * We will not follow the new design immediately since antd 3.x is already released.\n *\n * So this file named as Selector to avoid confuse.\n */\nimport { createRef } from '../util';\nimport PropTypes from '../../../_util/vue-types';\nimport classNames from 'classnames';\nimport { initDefaultProps, getComponentFromProp, getListeners } from '../../../_util/props-util';\nimport BaseMixin from '../../../_util/BaseMixin';\nexport var selectorPropTypes = function selectorPropTypes() {\n return {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n open: PropTypes.bool,\n selectorValueList: PropTypes.array,\n allowClear: PropTypes.bool,\n showArrow: PropTypes.bool,\n // onClick: PropTypes.func,\n // onBlur: PropTypes.func,\n // onFocus: PropTypes.func,\n removeSelected: PropTypes.func,\n choiceTransitionName: PropTypes.string,\n // Pass by component\n ariaId: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n placeholder: PropTypes.any,\n disabled: PropTypes.bool,\n focused: PropTypes.bool\n };\n};\n\nfunction noop() {}\nexport default function (modeName) {\n var BaseSelector = {\n name: 'BaseSelector',\n mixins: [BaseMixin],\n props: initDefaultProps(_extends({}, selectorPropTypes(), {\n\n // Pass by HOC\n renderSelection: PropTypes.func.isRequired,\n renderPlaceholder: PropTypes.func,\n tabIndex: PropTypes.number\n }), {\n tabIndex: 0\n }),\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n created: function created() {\n this.domRef = createRef();\n },\n\n methods: {\n onFocus: function onFocus(e) {\n var focused = this.$props.focused;\n var onSelectorFocus = this.vcTreeSelect.onSelectorFocus;\n\n\n if (!focused) {\n onSelectorFocus();\n }\n this.__emit('focus', e);\n },\n onBlur: function onBlur(e) {\n var onSelectorBlur = this.vcTreeSelect.onSelectorBlur;\n\n // TODO: Not trigger when is inner component get focused\n\n onSelectorBlur();\n this.__emit('blur', e);\n },\n focus: function focus() {\n this.domRef.current.focus();\n },\n blur: function blur() {\n this.domRef.current.blur();\n },\n renderClear: function renderClear() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n allowClear = _$props.allowClear,\n selectorValueList = _$props.selectorValueList;\n var onSelectorClear = this.vcTreeSelect.onSelectorClear;\n\n\n if (!allowClear || !selectorValueList.length || !selectorValueList[0].value) {\n return null;\n }\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n return h(\n 'span',\n { key: 'clear', 'class': prefixCls + '-selection__clear', on: {\n 'click': onSelectorClear\n }\n },\n [clearIcon]\n );\n },\n renderArrow: function renderArrow() {\n var h = this.$createElement;\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n showArrow = _$props2.showArrow;\n\n if (!showArrow) {\n return null;\n }\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n return h(\n 'span',\n { key: 'arrow', 'class': prefixCls + '-arrow', style: { outline: 'none' } },\n [inputIcon]\n );\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n prefixCls = _$props3.prefixCls,\n className = _$props3.className,\n style = _$props3.style,\n open = _$props3.open,\n focused = _$props3.focused,\n disabled = _$props3.disabled,\n allowClear = _$props3.allowClear,\n ariaId = _$props3.ariaId,\n renderSelection = _$props3.renderSelection,\n renderPlaceholder = _$props3.renderPlaceholder,\n tabIndex = _$props3.tabIndex;\n var onSelectorKeyDown = this.vcTreeSelect.onSelectorKeyDown;\n\n\n var myTabIndex = tabIndex;\n if (disabled) {\n myTabIndex = null;\n }\n\n return h(\n 'span',\n _mergeJSXProps([{\n style: style,\n on: {\n 'click': getListeners(this).click || noop\n },\n\n 'class': classNames(className, prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-open', open), _defineProperty(_classNames, prefixCls + '-focused', open || focused), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-enabled', !disabled), _defineProperty(_classNames, prefixCls + '-allow-clear', allowClear), _classNames))\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.domRef\n }]\n }, {\n attrs: {\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-owns': open ? ariaId : undefined,\n 'aria-controls': open ? ariaId : undefined,\n 'aria-haspopup': 'listbox',\n 'aria-disabled': disabled,\n tabIndex: myTabIndex\n },\n on: {\n 'focus': this.onFocus,\n 'blur': this.onBlur,\n 'keydown': onSelectorKeyDown\n }\n }]),\n [h(\n 'span',\n {\n key: 'selection',\n 'class': classNames(prefixCls + '-selection', prefixCls + '-selection--' + modeName)\n },\n [renderSelection(), this.renderClear(), this.renderArrow(), renderPlaceholder && renderPlaceholder()]\n )]\n );\n }\n };\n\n return BaseSelector;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport generateSelector, { selectorPropTypes } from '../Base/BaseSelector';\nimport { toTitle } from '../util';\nimport { getOptionProps, getListeners } from '../../../_util/props-util';\nimport { createRef } from '../util';\nvar Selector = generateSelector('single');\n\nvar SingleSelector = {\n name: 'SingleSelector',\n props: selectorPropTypes(),\n created: function created() {\n this.selectorRef = createRef();\n },\n\n methods: {\n focus: function focus() {\n this.selectorRef.current.focus();\n },\n blur: function blur() {\n this.selectorRef.current.blur();\n },\n renderSelection: function renderSelection() {\n var h = this.$createElement;\n var _$props = this.$props,\n selectorValueList = _$props.selectorValueList,\n placeholder = _$props.placeholder,\n prefixCls = _$props.prefixCls;\n\n\n var innerNode = void 0;\n\n if (selectorValueList.length) {\n var _selectorValueList$ = selectorValueList[0],\n label = _selectorValueList$.label,\n value = _selectorValueList$.value;\n\n innerNode = h(\n 'span',\n { key: 'value', attrs: { title: toTitle(label) },\n 'class': prefixCls + '-selection-selected-value' },\n [label || value]\n );\n } else {\n innerNode = h(\n 'span',\n { key: 'placeholder', 'class': prefixCls + '-selection__placeholder' },\n [placeholder]\n );\n }\n\n return h(\n 'span',\n { 'class': prefixCls + '-selection__rendered' },\n [innerNode]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props$showArrow = this.$props.showArrow,\n showArrow = _$props$showArrow === undefined ? true : _$props$showArrow;\n\n var props = {\n props: _extends({}, getOptionProps(this), {\n showArrow: showArrow,\n renderSelection: this.renderSelection\n }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.selectorRef\n }]\n };\n return h(Selector, props);\n }\n};\n\nexport default SingleSelector;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Since search box is in different position with different mode.\n * - Single: in the popup box\n * - multiple: in the selector\n * Move the code as a SearchInput for easy management.\n */\n\nimport PropTypes from '../../_util/vue-types';\nimport { createRef } from './util';\n\nvar SearchInput = {\n name: 'SearchInput',\n props: {\n open: PropTypes.bool,\n searchValue: PropTypes.string,\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n renderPlaceholder: PropTypes.func,\n needAlign: PropTypes.bool,\n ariaId: PropTypes.string\n },\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n data: function data() {\n return {\n mirrorSearchValue: this.searchValue\n };\n },\n\n watch: {\n searchValue: function searchValue(val) {\n this.mirrorSearchValue = val;\n }\n },\n created: function created() {\n this.inputRef = createRef();\n this.mirrorInputRef = createRef();\n this.prevProps = _extends({}, this.$props);\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var _$props = _this.$props,\n open = _$props.open,\n needAlign = _$props.needAlign;\n\n if (needAlign) {\n _this.alignInputWidth();\n }\n\n if (open) {\n _this.focus(true);\n }\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n var _$props2 = this.$props,\n open = _$props2.open,\n searchValue = _$props2.searchValue,\n needAlign = _$props2.needAlign;\n var prevProps = this.prevProps;\n\n this.$nextTick(function () {\n if (open && prevProps.open !== open) {\n _this2.focus();\n }\n if (needAlign && searchValue !== prevProps.searchValue) {\n _this2.alignInputWidth();\n }\n _this2.prevProps = _extends({}, _this2.$props);\n });\n },\n\n methods: {\n /**\n * `scrollWidth` is not correct in IE, do the workaround.\n * ref: https://github.com/react-component/tree-select/issues/65\n * clientWidth 0 when mounted in vue. why?\n */\n alignInputWidth: function alignInputWidth() {\n this.inputRef.current.style.width = (this.mirrorInputRef.current.clientWidth || this.mirrorInputRef.current.offsetWidth) + 'px';\n },\n\n\n /**\n * Need additional timeout for focus cause parent dom is not ready when didMount trigger\n */\n focus: function focus(isDidMount) {\n var _this3 = this;\n\n if (this.inputRef.current) {\n if (isDidMount) {\n setTimeout(function () {\n _this3.inputRef.current.focus();\n }, 0);\n } else {\n // set it into else, Avoid scrolling when focus\n this.inputRef.current.focus();\n }\n }\n },\n blur: function blur() {\n if (this.inputRef.current) {\n this.inputRef.current.blur();\n }\n },\n handleInputChange: function handleInputChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n composing = _e$target.composing;\n var _searchValue = this.searchValue,\n searchValue = _searchValue === undefined ? '' : _searchValue;\n\n if (e.isComposing || composing || searchValue === value) {\n this.mirrorSearchValue = value;\n return;\n }\n this.vcTreeSelect.onSearchInputChange(e);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props3 = this.$props,\n searchValue = _$props3.searchValue,\n prefixCls = _$props3.prefixCls,\n disabled = _$props3.disabled,\n renderPlaceholder = _$props3.renderPlaceholder,\n open = _$props3.open,\n ariaId = _$props3.ariaId;\n var onSearchInputKeyDown = this.vcTreeSelect.onSearchInputKeyDown,\n handleInputChange = this.handleInputChange,\n mirrorSearchValue = this.mirrorSearchValue;\n\n return h(\n 'span',\n { 'class': prefixCls + '-search__field__wrap' },\n [h('input', _mergeJSXProps([{\n attrs: {\n type: 'text'\n }\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }, {\n name: 'ant-input'\n }]\n }, {\n on: {\n 'input': handleInputChange,\n 'keydown': onSearchInputKeyDown\n },\n domProps: {\n 'value': searchValue\n },\n attrs: {\n disabled: disabled,\n\n 'aria-label': 'filter select',\n 'aria-autocomplete': 'list',\n 'aria-controls': open ? ariaId : undefined,\n 'aria-multiline': 'false'\n },\n 'class': prefixCls + '-search__field' }])), h(\n 'span',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.mirrorInputRef\n }]\n }, {\n 'class': prefixCls + '-search__field__mirror'\n }]),\n [mirrorSearchValue, '\\xA0']\n ), renderPlaceholder && !mirrorSearchValue ? renderPlaceholder() : null]\n );\n }\n};\n\nexport default SearchInput;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../../../../_util/vue-types';\nimport { toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE } from '../../util';\nimport { getComponentFromProp, getListeners } from '../../../../_util/props-util';\nimport BaseMixin from '../../../../_util/BaseMixin';\n\nvar Selection = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n maxTagTextLength: PropTypes.number,\n // onRemove: PropTypes.func,\n\n label: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n removeIcon: PropTypes.any\n },\n methods: {\n onRemove: function onRemove(event) {\n var value = this.$props.value;\n\n this.__emit('remove', event, value);\n event.stopPropagation();\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n maxTagTextLength = _$props.maxTagTextLength,\n label = _$props.label,\n value = _$props.value;\n\n var content = label || value;\n if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n content = content.slice(0, maxTagTextLength) + '...';\n }\n\n return h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n attrs: {\n role: 'menuitem',\n\n title: toTitle(label)\n },\n 'class': prefixCls + '-selection__choice' }]),\n [getListeners(this).remove && h(\n 'span',\n { 'class': prefixCls + '-selection__choice__remove', on: {\n 'click': this.onRemove\n }\n },\n [getComponentFromProp(this, 'removeIcon')]\n ), h(\n 'span',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n )]\n );\n }\n};\n\nexport default Selection;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../../_util/vue-types';\nimport { createRef } from '../../util';\nimport generateSelector, { selectorPropTypes } from '../../Base/BaseSelector';\nimport SearchInput from '../../SearchInput';\nimport Selection from './Selection';\nimport { getComponentFromProp, getListeners } from '../../../../_util/props-util';\nimport getTransitionProps from '../../../../_util/getTransitionProps';\nimport BaseMixin from '../../../../_util/BaseMixin';\nvar TREE_SELECT_EMPTY_VALUE_KEY = 'RC_TREE_SELECT_EMPTY_VALUE_KEY';\n\nvar Selector = generateSelector('multiple');\n\n// export const multipleSelectorContextTypes = {\n// onMultipleSelectorRemove: PropTypes.func.isRequired,\n// }\n\nvar MultipleSelector = {\n mixins: [BaseMixin],\n props: _extends({}, selectorPropTypes(), SearchInput.props, {\n selectorValueList: PropTypes.array,\n disabled: PropTypes.bool,\n searchValue: PropTypes.string,\n labelInValue: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any\n\n // onChoiceAnimationLeave: PropTypes.func,\n }),\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n created: function created() {\n this.inputRef = createRef();\n },\n\n methods: {\n onPlaceholderClick: function onPlaceholderClick() {\n this.inputRef.current.focus();\n },\n focus: function focus() {\n this.inputRef.current.focus();\n },\n blur: function blur() {\n this.inputRef.current.blur();\n },\n _renderPlaceholder: function _renderPlaceholder() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n placeholder = _$props.placeholder,\n searchPlaceholder = _$props.searchPlaceholder,\n searchValue = _$props.searchValue,\n selectorValueList = _$props.selectorValueList;\n\n\n var currentPlaceholder = placeholder || searchPlaceholder;\n\n if (!currentPlaceholder) return null;\n\n var hidden = searchValue || selectorValueList.length;\n\n // [Legacy] Not remove the placeholder\n return h(\n 'span',\n {\n style: {\n display: hidden ? 'none' : 'block'\n },\n on: {\n 'click': this.onPlaceholderClick\n },\n\n 'class': prefixCls + '-search__field__placeholder'\n },\n [currentPlaceholder]\n );\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.__emit.apply(this, ['choiceAnimationLeave'].concat(_toConsumableArray(args)));\n },\n renderSelection: function renderSelection() {\n var _this = this;\n\n var h = this.$createElement;\n var _$props2 = this.$props,\n selectorValueList = _$props2.selectorValueList,\n choiceTransitionName = _$props2.choiceTransitionName,\n prefixCls = _$props2.prefixCls,\n labelInValue = _$props2.labelInValue,\n maxTagCount = _$props2.maxTagCount;\n var onMultipleSelectorRemove = this.vcTreeSelect.onMultipleSelectorRemove,\n $slots = this.$slots;\n\n var listeners = getListeners(this);\n // Check if `maxTagCount` is set\n var myValueList = selectorValueList;\n if (maxTagCount >= 0) {\n myValueList = selectorValueList.slice(0, maxTagCount);\n }\n // Selector node list\n var selectedValueNodes = myValueList.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return h(\n Selection,\n _mergeJSXProps([{\n props: _extends({}, _this.$props, {\n label: label,\n value: value\n }),\n on: _extends({}, listeners, { remove: onMultipleSelectorRemove })\n }, {\n key: value || TREE_SELECT_EMPTY_VALUE_KEY\n }]),\n [$slots['default']]\n );\n });\n\n // Rest node count\n if (maxTagCount >= 0 && maxTagCount < selectorValueList.length) {\n var content = '+ ' + (selectorValueList.length - maxTagCount) + ' ...';\n var maxTagPlaceholder = getComponentFromProp(this, 'maxTagPlaceholder', {}, false);\n if (typeof maxTagPlaceholder === 'string') {\n content = maxTagPlaceholder;\n } else if (typeof maxTagPlaceholder === 'function') {\n var restValueList = selectorValueList.slice(maxTagCount);\n content = maxTagPlaceholder(labelInValue ? restValueList : restValueList.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n }));\n }\n\n var restNodeSelect = h(\n Selection,\n _mergeJSXProps([{\n props: _extends({}, this.$props, {\n label: content,\n value: null\n }),\n on: listeners\n }, {\n key: 'rc-tree-select-internal-max-tag-counter'\n }]),\n [$slots['default']]\n );\n\n selectedValueNodes.push(restNodeSelect);\n }\n\n selectedValueNodes.push(h(\n 'li',\n { 'class': prefixCls + '-search ' + prefixCls + '-search--inline', key: '__input' },\n [h(\n SearchInput,\n {\n props: _extends({}, this.$props, {\n needAlign: true\n }),\n on: listeners,\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }]\n },\n [$slots['default']]\n )]\n ));\n var className = prefixCls + '-selection__rendered';\n if (choiceTransitionName) {\n var transitionProps = getTransitionProps(choiceTransitionName, {\n tag: 'ul',\n afterLeave: this.onChoiceAnimationLeave\n });\n return h(\n 'transition-group',\n _mergeJSXProps([{ 'class': className }, transitionProps]),\n [selectedValueNodes]\n );\n }\n return h(\n 'ul',\n { 'class': className, attrs: { role: 'menubar' }\n },\n [selectedValueNodes]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n $props = this.$props;\n\n var listeners = getListeners(this);\n var _$props$showArrow = $props.showArrow,\n showArrow = _$props$showArrow === undefined ? false : _$props$showArrow;\n\n return h(\n Selector,\n {\n props: _extends({}, this.$props, {\n showArrow: showArrow,\n tabIndex: -1,\n renderSelection: this.renderSelection,\n renderPlaceholder: this._renderPlaceholder\n }),\n on: listeners\n },\n [$slots['default']]\n );\n }\n};\n\nexport default MultipleSelector;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\nimport PropTypes from '../../../_util/vue-types';\nimport { Tree } from '../../../vc-tree';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { createRef } from '../util';\n\n// export const popupContextTypes = {\n// onPopupKeyDown: PropTypes.func.isRequired,\n// onTreeNodeSelect: PropTypes.func.isRequired,\n// onTreeNodeCheck: PropTypes.func.isRequired,\n// }\nfunction getDerivedState(nextProps, prevState) {\n var _ref = prevState || {},\n _ref$_prevProps = _ref._prevProps,\n prevProps = _ref$_prevProps === undefined ? {} : _ref$_prevProps,\n loadedKeys = _ref._loadedKeys,\n expandedKeyList = _ref._expandedKeyList,\n cachedExpandedKeyList = _ref._cachedExpandedKeyList;\n\n var valueList = nextProps.valueList,\n valueEntities = nextProps.valueEntities,\n keyEntities = nextProps.keyEntities,\n treeExpandedKeys = nextProps.treeExpandedKeys,\n filteredTreeNodes = nextProps.filteredTreeNodes,\n upperSearchValue = nextProps.upperSearchValue;\n\n\n var newState = {\n _prevProps: _extends({}, nextProps)\n };\n\n // Check value update\n if (valueList !== prevProps.valueList) {\n newState._keyList = valueList.map(function (_ref2) {\n var value = _ref2.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref3) {\n var key = _ref3.key;\n return key;\n });\n }\n\n // Show all when tree is in filter mode\n if (!treeExpandedKeys && filteredTreeNodes && filteredTreeNodes.length && filteredTreeNodes !== prevProps.filteredTreeNodes) {\n newState._expandedKeyList = [].concat(_toConsumableArray(keyEntities.keys()));\n }\n\n // Cache `expandedKeyList` when filter set\n if (upperSearchValue && !prevProps.upperSearchValue) {\n newState._cachedExpandedKeyList = expandedKeyList;\n } else if (!upperSearchValue && prevProps.upperSearchValue && !treeExpandedKeys) {\n newState._expandedKeyList = cachedExpandedKeyList || [];\n newState._cachedExpandedKeyList = [];\n }\n\n // Use expandedKeys if provided\n if (prevProps.treeExpandedKeys !== treeExpandedKeys) {\n newState._expandedKeyList = treeExpandedKeys;\n }\n\n // Clean loadedKeys if key not exist in keyEntities anymore\n if (nextProps.loadData) {\n newState._loadedKeys = loadedKeys.filter(function (key) {\n return keyEntities.has(key);\n });\n }\n\n return newState;\n}\nvar BasePopup = {\n mixins: [BaseMixin],\n name: 'BasePopup',\n props: {\n prefixCls: PropTypes.string,\n upperSearchValue: PropTypes.string,\n valueList: PropTypes.array,\n searchHalfCheckedKeys: PropTypes.array,\n valueEntities: PropTypes.object,\n keyEntities: Map,\n treeIcon: PropTypes.bool,\n treeLine: PropTypes.bool,\n treeNodeFilterProp: PropTypes.string,\n treeCheckable: PropTypes.any,\n treeCheckStrictly: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeExpandedKeys: PropTypes.array,\n loadData: PropTypes.func,\n multiple: PropTypes.bool,\n // onTreeExpand: PropTypes.func,\n searchValue: PropTypes.string,\n treeNodes: PropTypes.any,\n filteredTreeNodes: PropTypes.any,\n notFoundContent: PropTypes.any,\n\n ariaId: PropTypes.string,\n switcherIcon: PropTypes.any,\n // HOC\n renderSearch: PropTypes.func,\n // onTreeExpanded: PropTypes.func,\n\n __propsSymbol__: PropTypes.any\n },\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n var state = getDerivedState(this.$props, this.$data);\n this.setState(state);\n }\n },\n data: function data() {\n this.treeRef = createRef();\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n var _$props = this.$props,\n treeDefaultExpandAll = _$props.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _$props.treeDefaultExpandedKeys,\n keyEntities = _$props.keyEntities;\n\n // TODO: make `expandedKeyList` control\n\n var expandedKeyList = treeDefaultExpandedKeys;\n if (treeDefaultExpandAll) {\n expandedKeyList = [].concat(_toConsumableArray(keyEntities.keys()));\n }\n\n var state = {\n _keyList: [],\n _expandedKeyList: expandedKeyList,\n // Cache `expandedKeyList` when tree is in filter. This is used in `getDerivedState`\n _cachedExpandedKeyList: [],\n _loadedKeys: [],\n _prevProps: {}\n };\n return _extends({}, state, getDerivedState(this.$props, state));\n },\n\n methods: {\n onTreeExpand: function onTreeExpand(expandedKeyList) {\n var _this = this;\n\n var treeExpandedKeys = this.$props.treeExpandedKeys;\n\n // Set uncontrolled state\n\n if (!treeExpandedKeys) {\n this.setState({ _expandedKeyList: expandedKeyList }, function () {\n _this.__emit('treeExpanded');\n });\n }\n this.__emit('update:treeExpandedKeys', expandedKeyList);\n this.__emit('treeExpand', expandedKeyList);\n },\n onLoad: function onLoad(loadedKeys) {\n this.setState({ _loadedKeys: loadedKeys });\n },\n getTree: function getTree() {\n return this.treeRef.current;\n },\n\n\n /**\n * Not pass `loadData` when searching. To avoid loop ajax call makes browser crash.\n */\n getLoadData: function getLoadData() {\n var _$props2 = this.$props,\n loadData = _$props2.loadData,\n upperSearchValue = _$props2.upperSearchValue;\n\n if (upperSearchValue) return null;\n return loadData;\n },\n\n\n /**\n * This method pass to Tree component which is used for add filtered class\n * in TreeNode > li\n */\n filterTreeNode: function filterTreeNode(treeNode) {\n var _$props3 = this.$props,\n upperSearchValue = _$props3.upperSearchValue,\n treeNodeFilterProp = _$props3.treeNodeFilterProp;\n\n\n var filterVal = treeNode[treeNodeFilterProp];\n if (typeof filterVal === 'string') {\n return upperSearchValue && filterVal.toUpperCase().indexOf(upperSearchValue) !== -1;\n }\n\n return false;\n },\n renderNotFound: function renderNotFound() {\n var h = this.$createElement;\n var _$props4 = this.$props,\n prefixCls = _$props4.prefixCls,\n notFoundContent = _$props4.notFoundContent;\n\n\n return h(\n 'span',\n { 'class': prefixCls + '-not-found' },\n [notFoundContent]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$data = this.$data,\n keyList = _$data._keyList,\n expandedKeyList = _$data._expandedKeyList,\n loadedKeys = _$data._loadedKeys;\n var _$props5 = this.$props,\n prefixCls = _$props5.prefixCls,\n treeNodes = _$props5.treeNodes,\n filteredTreeNodes = _$props5.filteredTreeNodes,\n treeIcon = _$props5.treeIcon,\n treeLine = _$props5.treeLine,\n treeCheckable = _$props5.treeCheckable,\n treeCheckStrictly = _$props5.treeCheckStrictly,\n multiple = _$props5.multiple,\n ariaId = _$props5.ariaId,\n renderSearch = _$props5.renderSearch,\n switcherIcon = _$props5.switcherIcon,\n searchHalfCheckedKeys = _$props5.searchHalfCheckedKeys;\n var _vcTreeSelect = this.vcTreeSelect,\n onPopupKeyDown = _vcTreeSelect.onPopupKeyDown,\n onTreeNodeSelect = _vcTreeSelect.onTreeNodeSelect,\n onTreeNodeCheck = _vcTreeSelect.onTreeNodeCheck;\n\n\n var loadData = this.getLoadData();\n\n var treeProps = {};\n\n if (treeCheckable) {\n treeProps.checkedKeys = keyList;\n } else {\n treeProps.selectedKeys = keyList;\n }\n var $notFound = void 0;\n var $treeNodes = void 0;\n if (filteredTreeNodes) {\n if (filteredTreeNodes.length) {\n treeProps.checkStrictly = true;\n $treeNodes = filteredTreeNodes;\n\n // Fill halfCheckedKeys\n if (treeCheckable && !treeCheckStrictly) {\n treeProps.checkedKeys = {\n checked: keyList,\n halfChecked: searchHalfCheckedKeys\n };\n }\n } else {\n $notFound = this.renderNotFound();\n }\n } else if (!treeNodes || !treeNodes.length) {\n $notFound = this.renderNotFound();\n } else {\n $treeNodes = treeNodes;\n }\n\n var $tree = void 0;\n if ($notFound) {\n $tree = $notFound;\n } else {\n var treeAllProps = {\n props: _extends({\n prefixCls: prefixCls + '-tree',\n showIcon: treeIcon,\n showLine: treeLine,\n selectable: !treeCheckable,\n checkable: treeCheckable,\n checkStrictly: treeCheckStrictly,\n multiple: multiple,\n loadData: loadData,\n loadedKeys: loadedKeys,\n expandedKeys: expandedKeyList,\n filterTreeNode: this.filterTreeNode,\n switcherIcon: switcherIcon\n }, treeProps, {\n __propsSymbol__: Symbol(),\n children: $treeNodes\n }),\n on: {\n select: onTreeNodeSelect,\n check: onTreeNodeCheck,\n expand: this.onTreeExpand,\n load: this.onLoad\n },\n directives: [{\n name: 'ant-ref',\n value: this.treeRef\n }]\n };\n $tree = h(Tree, treeAllProps);\n }\n\n return h(\n 'div',\n {\n attrs: { role: 'listbox', id: ariaId, tabIndex: -1 },\n on: {\n 'keydown': onPopupKeyDown\n }\n },\n [renderSearch ? renderSearch() : null, $tree]\n );\n }\n};\n\nexport default BasePopup;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../_util/vue-types';\nimport BasePopup from '../Base/BasePopup';\nimport SearchInput from '../SearchInput';\nimport { createRef } from '../util';\nimport { getListeners } from '../../../_util/props-util';\n\nvar SinglePopup = {\n name: 'SinglePopup',\n props: _extends({}, BasePopup.props, SearchInput.props, {\n searchValue: PropTypes.string,\n showSearch: PropTypes.bool,\n dropdownPrefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n searchPlaceholder: PropTypes.string\n }),\n created: function created() {\n this.inputRef = createRef();\n this.searchRef = createRef();\n this.popupRef = createRef();\n },\n\n methods: {\n onPlaceholderClick: function onPlaceholderClick() {\n this.inputRef.current.focus();\n },\n getTree: function getTree() {\n return this.popupRef.current && this.popupRef.current.getTree();\n },\n _renderPlaceholder: function _renderPlaceholder() {\n var h = this.$createElement;\n var _$props = this.$props,\n searchPlaceholder = _$props.searchPlaceholder,\n searchValue = _$props.searchValue,\n prefixCls = _$props.prefixCls;\n\n\n if (!searchPlaceholder) {\n return null;\n }\n\n return h(\n 'span',\n {\n style: {\n display: searchValue ? 'none' : 'block'\n },\n on: {\n 'click': this.onPlaceholderClick\n },\n\n 'class': prefixCls + '-search__field__placeholder'\n },\n [searchPlaceholder]\n );\n },\n _renderSearch: function _renderSearch() {\n var h = this.$createElement;\n var _$props2 = this.$props,\n showSearch = _$props2.showSearch,\n dropdownPrefixCls = _$props2.dropdownPrefixCls;\n\n\n if (!showSearch) {\n return null;\n }\n\n return h(\n 'span',\n _mergeJSXProps([{\n 'class': dropdownPrefixCls + '-search'\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.searchRef\n }]\n }]),\n [h(SearchInput, {\n props: _extends({}, this.$props, { renderPlaceholder: this._renderPlaceholder }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }]\n })]\n );\n }\n },\n render: function render() {\n var h = arguments[0];\n\n return h(BasePopup, {\n props: _extends({}, this.$props, { renderSearch: this._renderSearch, __propsSymbol__: Symbol() }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.popupRef\n }]\n });\n }\n};\n\nexport default SinglePopup;","import BasePopup from '../Base/BasePopup';\n\nexport default BasePopup;","import _extends from 'babel-runtime/helpers/extends';\nimport { TreeNode } from '../../vc-tree';\n/**\n * SelectNode wrapped the tree node.\n * Let's use SelectNode instead of TreeNode\n * since TreeNode is so confuse here.\n */\nexport default {\n name: 'SelectNode',\n functional: true,\n isTreeNode: true,\n props: TreeNode.props,\n render: function render(h, context) {\n var props = context.props,\n slots = context.slots,\n listeners = context.listeners,\n data = context.data,\n scopedSlots = context.scopedSlots;\n\n var $slots = slots() || {};\n var children = $slots['default'];\n var slotsKey = Object.keys($slots);\n var scopedSlotsTemp = {}; // for vue 2.5.x\n slotsKey.forEach(function (name) {\n scopedSlotsTemp[name] = function () {\n return $slots[name];\n };\n });\n var treeNodeProps = _extends({}, data, {\n on: _extends({}, listeners, data.nativeOn),\n props: props,\n scopedSlots: _extends({}, scopedSlotsTemp, scopedSlots)\n });\n return h(\n TreeNode,\n treeNodeProps,\n [children]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * ARIA: https://www.w3.org/TR/wai-aria/#combobox\n * Sample 1: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/combobox/aria1.1pattern/listbox-combo.html\n * Sample 2: https://www.w3.org/blog/wai-components-gallery/widget/combobox-with-aria-autocompleteinline/\n *\n * Tab logic:\n * Popup is close\n * 1. Focus input (mark component as focused)\n * 2. Press enter to show the popup\n * 3. If popup has input, focus it\n *\n * Popup is open\n * 1. press tab to close the popup\n * 2. Focus back to the selection input box\n * 3. Let the native tab going on\n *\n * TreeSelect use 2 design type.\n * In single mode, we should focus on the `span`\n * In multiple mode, we should focus on the `input`\n */\n\nimport shallowEqual from 'shallowequal';\nimport raf from 'raf';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport warning from 'warning';\nimport PropTypes from '../../_util/vue-types';\nimport KeyCode from '../../_util/KeyCode';\n\nimport SelectTrigger from './SelectTrigger';\nimport SingleSelector from './Selector/SingleSelector';\nimport MultipleSelector from './Selector/MultipleSelector';\nimport SinglePopup from './Popup/SinglePopup';\nimport MultiplePopup from './Popup/MultiplePopup';\n\nimport { SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './strategies';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { createRef, generateAriaId, formatInternalValue, formatSelectorValue, parseSimpleTreeData, convertDataToTree, convertTreeToEntities, conductCheck, getHalfCheckedKeys, flatToHierarchy, isPosRelated, isLabelInValue as _isLabelInValue, getFilterTree, cleanEntity, findPopupContainer } from './util';\nimport SelectNode from './SelectNode';\nimport { initDefaultProps, getOptionProps, mergeProps, getPropsData, filterEmpty, getListeners } from '../../_util/props-util';\nfunction getWatch() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var watch = {};\n keys.forEach(function (k) {\n watch[k] = function () {\n this.needSyncKeys[k] = true;\n };\n });\n return watch;\n}\nvar Select = {\n name: 'Select',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n prefixAria: PropTypes.string,\n multiple: PropTypes.bool,\n showArrow: PropTypes.bool,\n open: PropTypes.bool,\n value: PropTypes.any,\n\n autoFocus: PropTypes.bool,\n\n defaultOpen: PropTypes.bool,\n defaultValue: PropTypes.any,\n\n showSearch: PropTypes.bool,\n placeholder: PropTypes.any,\n inputValue: PropTypes.string, // [Legacy] Deprecated. Use `searchValue` instead.\n searchValue: PropTypes.string,\n autoClearSearchValue: PropTypes.bool,\n searchPlaceholder: PropTypes.any, // [Legacy] Confuse with placeholder\n disabled: PropTypes.bool,\n children: PropTypes.any,\n labelInValue: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.any, PropTypes.func]),\n maxTagTextLength: PropTypes.number,\n showCheckedStrategy: PropTypes.oneOf([SHOW_ALL, SHOW_PARENT, SHOW_CHILD]),\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n dropdownVisibleChange: PropTypes.func,\n dropdownMatchSelectWidth: PropTypes.bool,\n treeData: PropTypes.array,\n treeDataSimpleMode: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n treeNodeFilterProp: PropTypes.string,\n treeNodeLabelProp: PropTypes.string,\n treeCheckable: PropTypes.oneOfType([PropTypes.any, PropTypes.object, PropTypes.bool]),\n // treeCheckable: PropTypes.any,\n treeCheckStrictly: PropTypes.bool,\n treeIcon: PropTypes.bool,\n treeLine: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeExpandedKeys: PropTypes.array,\n loadData: PropTypes.func,\n filterTreeNode: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n\n notFoundContent: PropTypes.any,\n getPopupContainer: PropTypes.func,\n\n // onSearch: PropTypes.func,\n // onSelect: PropTypes.func,\n // onDeselect: PropTypes.func,\n // onChange: PropTypes.func,\n // onDropdownVisibleChange: PropTypes.func,\n\n // onTreeExpand: PropTypes.func,\n allowClear: PropTypes.bool,\n transitionName: PropTypes.string,\n animation: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n switcherIcon: PropTypes.any,\n __propsSymbol__: PropTypes.any\n }, {\n prefixCls: 'rc-tree-select',\n prefixAria: 'rc-tree-select',\n showSearch: true,\n autoClearSearchValue: true,\n showCheckedStrategy: SHOW_CHILD,\n\n // dropdownMatchSelectWidth change the origin design, set to false now\n // ref: https://github.com/react-component/select/blob/4cad95e098a341a09de239ad6981067188842020/src/Select.jsx#L344\n // ref: https://github.com/react-component/select/pull/71\n treeNodeFilterProp: 'value',\n treeNodeLabelProp: 'title',\n treeIcon: false,\n notFoundContent: 'Not Found',\n dropdownStyle: {},\n dropdownVisibleChange: function dropdownVisibleChange() {\n return true;\n }\n }),\n\n data: function data() {\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n var _$props = this.$props,\n prefixAria = _$props.prefixAria,\n defaultOpen = _$props.defaultOpen,\n open = _$props.open;\n\n this.needSyncKeys = {};\n this.selectorRef = createRef();\n this.selectTriggerRef = createRef();\n\n // ARIA need `aria-controls` props mapping\n // Since this need user input. Let's generate ourselves\n this.ariaId = generateAriaId(prefixAria + '-list');\n\n var state = {\n _open: open || defaultOpen,\n _valueList: [],\n _searchHalfCheckedKeys: [],\n _missValueList: [], // Contains the value not in the tree\n _selectorValueList: [], // Used for multiple selector\n _valueEntities: {},\n _posEntities: new Map(),\n _keyEntities: new Map(),\n _searchValue: '',\n _prevProps: {},\n _init: true,\n _focused: undefined,\n _treeNodes: undefined,\n _filteredTreeNodes: undefined\n };\n var newState = this.getDerivedState(this.$props, state);\n return _extends({}, state, newState);\n },\n provide: function provide() {\n return {\n vcTreeSelect: {\n onSelectorFocus: this.onSelectorFocus,\n onSelectorBlur: this.onSelectorBlur,\n onSelectorKeyDown: this.onComponentKeyDown,\n onSelectorClear: this.onSelectorClear,\n onMultipleSelectorRemove: this.onMultipleSelectorRemove,\n\n onTreeNodeSelect: this.onTreeNodeSelect,\n onTreeNodeCheck: this.onTreeNodeCheck,\n onPopupKeyDown: this.onComponentKeyDown,\n\n onSearchInputChange: this.onSearchInputChange,\n onSearchInputKeyDown: this.onSearchInputKeyDown\n }\n };\n },\n\n watch: _extends({}, getWatch(['treeData', 'defaultValue', 'value']), {\n __propsSymbol__: function __propsSymbol__() {\n var state = this.getDerivedState(this.$props, this.$data);\n this.setState(state);\n this.needSyncKeys = {};\n },\n '$data._valueList': function $data_valueList() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.forcePopupAlign();\n });\n },\n '$data._open': function $data_open(open) {\n var _this2 = this;\n\n setTimeout(function () {\n var prefixCls = _this2.$props.prefixCls;\n var _$data = _this2.$data,\n selectorValueList = _$data._selectorValueList,\n valueEntities = _$data._valueEntities;\n\n var isMultiple = _this2.isMultiple();\n\n // Scroll to value position, only need sync on single mode\n if (!isMultiple && selectorValueList.length && open && _this2.popup) {\n var value = selectorValueList[0].value;\n\n var _popup$getTree = _this2.popup.getTree(),\n domTreeNodes = _popup$getTree.domTreeNodes;\n\n var _ref = valueEntities[value] || {},\n key = _ref.key;\n\n var treeNode = domTreeNodes[key];\n\n if (treeNode) {\n var domNode = treeNode.$el;\n raf(function () {\n var popupNode = _this2.popup.$el;\n var triggerContainer = findPopupContainer(popupNode, prefixCls + '-dropdown');\n var searchNode = _this2.popup.searchRef.current;\n\n if (domNode && triggerContainer && searchNode) {\n scrollIntoView(domNode, triggerContainer, {\n onlyScrollIfNeeded: true,\n offsetTop: searchNode.offsetHeight\n });\n }\n });\n }\n }\n });\n }\n }),\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n var _$props2 = _this3.$props,\n autoFocus = _$props2.autoFocus,\n disabled = _$props2.disabled;\n\n if (autoFocus && !disabled) {\n _this3.focus();\n }\n });\n },\n\n\n methods: {\n getDerivedState: function getDerivedState(nextProps, prevState) {\n var h = this.$createElement;\n var _prevState$_prevProps = prevState._prevProps,\n prevProps = _prevState$_prevProps === undefined ? {} : _prevState$_prevProps;\n var treeCheckable = nextProps.treeCheckable,\n treeCheckStrictly = nextProps.treeCheckStrictly,\n filterTreeNode = nextProps.filterTreeNode,\n treeNodeFilterProp = nextProps.treeNodeFilterProp,\n treeDataSimpleMode = nextProps.treeDataSimpleMode;\n\n var newState = {\n _prevProps: _extends({}, nextProps),\n _init: false\n };\n var self = this;\n // Process the state when props updated\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName] || self.needSyncKeys[propName]) {\n updater(nextProps[propName], prevProps[propName]);\n return true;\n }\n return false;\n }\n\n var valueRefresh = false;\n\n // Open\n processState('open', function (propValue) {\n newState._open = propValue;\n });\n\n // Tree Nodes\n var treeNodes = void 0;\n var treeDataChanged = false;\n var treeDataModeChanged = false;\n processState('treeData', function (propValue) {\n treeNodes = convertDataToTree(h, propValue);\n treeDataChanged = true;\n });\n\n processState('treeDataSimpleMode', function (propValue, prevValue) {\n if (!propValue) return;\n\n var prev = !prevValue || prevValue === true ? {} : prevValue;\n\n // Shallow equal to avoid dynamic prop object\n if (!shallowEqual(propValue, prev)) {\n treeDataModeChanged = true;\n }\n });\n\n // Parse by `treeDataSimpleMode`\n if (treeDataSimpleMode && (treeDataChanged || treeDataModeChanged)) {\n var simpleMapper = _extends({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, treeDataSimpleMode !== true ? treeDataSimpleMode : {});\n treeNodes = convertDataToTree(h, parseSimpleTreeData(nextProps.treeData, simpleMapper));\n }\n\n // If `treeData` not provide, use children TreeNodes\n if (!nextProps.treeData) {\n // processState('children', (propValue) => {\n // treeNodes = Array.isArray(propValue) ? propValue : [propValue]\n // })\n treeNodes = filterEmpty(this.$slots['default']);\n }\n\n // Convert `treeData` to entities\n if (treeNodes) {\n var entitiesMap = convertTreeToEntities(treeNodes);\n newState._treeNodes = treeNodes;\n newState._posEntities = entitiesMap.posEntities;\n newState._valueEntities = entitiesMap.valueEntities;\n newState._keyEntities = entitiesMap.keyEntities;\n\n valueRefresh = true;\n }\n\n // Value List\n if (prevState._init) {\n processState('defaultValue', function (propValue) {\n newState._valueList = formatInternalValue(propValue, nextProps);\n valueRefresh = true;\n });\n }\n\n processState('value', function (propValue) {\n newState._valueList = formatInternalValue(propValue, nextProps);\n valueRefresh = true;\n });\n\n // Selector Value List\n if (valueRefresh) {\n // Find out that value not exist in the tree\n var missValueList = [];\n var filteredValueList = [];\n var keyList = [];\n\n // Get latest value list\n var latestValueList = newState._valueList;\n if (!latestValueList) {\n // Also need add prev missValueList to avoid new treeNodes contains the value\n latestValueList = [].concat(_toConsumableArray(prevState._valueList), _toConsumableArray(prevState._missValueList));\n }\n\n // Get key by value\n var valueLabels = {};\n latestValueList.forEach(function (wrapperValue) {\n var value = wrapperValue.value,\n label = wrapperValue.label;\n\n var entity = (newState._valueEntities || prevState._valueEntities)[value];\n valueLabels[value] = label;\n\n if (entity) {\n keyList.push(entity.key);\n filteredValueList.push(wrapperValue);\n return;\n }\n\n // If not match, it may caused by ajax load. We need keep this\n missValueList.push(wrapperValue);\n });\n\n // We need calculate the value when tree is checked tree\n if (treeCheckable && !treeCheckStrictly) {\n // Calculate the keys need to be checked\n var _conductCheck = conductCheck(keyList, true, newState._keyEntities || prevState._keyEntities),\n checkedKeys = _conductCheck.checkedKeys;\n\n // Format value list again for internal usage\n\n\n newState._valueList = checkedKeys.map(function (key) {\n var val = (newState._keyEntities || prevState._keyEntities).get(key).value;\n\n var wrappedValue = {\n value: val\n };\n\n if (valueLabels[val] !== undefined) {\n wrappedValue.label = valueLabels[val];\n }\n\n return wrappedValue;\n });\n } else {\n newState._valueList = filteredValueList;\n }\n\n // Fill the missValueList, we still need display in the selector\n newState._missValueList = missValueList;\n\n // Calculate the value list for `Selector` usage\n newState._selectorValueList = formatSelectorValue(newState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n }\n\n // [Legacy] To align with `Select` component,\n // We use `searchValue` instead of `inputValue` but still keep the api\n // `inputValue` support `null` to work as `autoClearSearchValue`\n processState('inputValue', function (propValue) {\n if (propValue !== null) {\n newState._searchValue = propValue;\n }\n });\n\n // Search value\n processState('searchValue', function (propValue) {\n newState._searchValue = propValue;\n });\n\n // Do the search logic\n if (newState._searchValue !== undefined || prevState._searchValue && treeNodes) {\n var searchValue = newState._searchValue !== undefined ? newState._searchValue : prevState._searchValue;\n var upperSearchValue = String(searchValue).toUpperCase();\n\n var filterTreeNodeFn = filterTreeNode;\n if (filterTreeNode === false) {\n // Don't filter if is false\n filterTreeNodeFn = function filterTreeNodeFn() {\n return true;\n };\n } else if (typeof filterTreeNodeFn !== 'function') {\n // When is not function (true or undefined), use inner filter\n filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n return nodeValue.indexOf(upperSearchValue) !== -1;\n };\n }\n\n newState._filteredTreeNodes = getFilterTree(this.$createElement, newState._treeNodes || prevState._treeNodes, searchValue, filterTreeNodeFn, newState._valueEntities || prevState._valueEntities, SelectNode);\n }\n\n // We should re-calculate the halfCheckedKeys when in search mode\n if (valueRefresh && treeCheckable && !treeCheckStrictly && (newState._searchValue || prevState._searchValue)) {\n newState._searchHalfCheckedKeys = getHalfCheckedKeys(newState._valueList, newState._valueEntities || prevState._valueEntities);\n }\n\n // Checked Strategy\n processState('showCheckedStrategy', function () {\n newState._selectorValueList = newState._selectorValueList || formatSelectorValue(newState._valueList || prevState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n });\n\n return newState;\n },\n\n // ==================== Selector ====================\n onSelectorFocus: function onSelectorFocus() {\n this.setState({ _focused: true });\n },\n onSelectorBlur: function onSelectorBlur() {\n this.setState({ _focused: false });\n\n // TODO: Close when Popup is also not focused\n // this.setState({ open: false });\n },\n\n\n // Handle key board event in both Selector and Popup\n onComponentKeyDown: function onComponentKeyDown(event) {\n var open = this.$data._open;\n var keyCode = event.keyCode;\n\n\n if (!open) {\n if ([KeyCode.ENTER, KeyCode.DOWN].indexOf(keyCode) !== -1) {\n this.setOpenState(true);\n }\n } else if (KeyCode.ESC === keyCode) {\n this.setOpenState(false);\n } else if ([KeyCode.UP, KeyCode.DOWN, KeyCode.LEFT, KeyCode.RIGHT].indexOf(keyCode) !== -1) {\n // TODO: Handle `open` state\n event.stopPropagation();\n }\n },\n onDeselect: function onDeselect(wrappedValue, node, nodeEventInfo) {\n this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n },\n onSelectorClear: function onSelectorClear(event) {\n var disabled = this.$props.disabled;\n\n if (disabled) return;\n\n this.triggerChange([], []);\n\n if (!this.isSearchValueControlled()) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n\n event.stopPropagation();\n },\n onMultipleSelectorRemove: function onMultipleSelectorRemove(event, removeValue) {\n event.stopPropagation();\n\n var _$data2 = this.$data,\n valueList = _$data2._valueList,\n missValueList = _$data2._missValueList,\n valueEntities = _$data2._valueEntities;\n var _$props3 = this.$props,\n treeCheckable = _$props3.treeCheckable,\n treeCheckStrictly = _$props3.treeCheckStrictly,\n treeNodeLabelProp = _$props3.treeNodeLabelProp,\n disabled = _$props3.disabled;\n\n if (disabled) return;\n\n // Find trigger entity\n var triggerEntity = valueEntities[removeValue];\n\n // Clean up value\n var newValueList = valueList;\n if (triggerEntity) {\n // If value is in tree\n if (treeCheckable && !treeCheckStrictly) {\n newValueList = valueList.filter(function (_ref2) {\n var value = _ref2.value;\n\n var entity = valueEntities[value];\n return !isPosRelated(entity.pos, triggerEntity.pos);\n });\n } else {\n newValueList = valueList.filter(function (_ref3) {\n var value = _ref3.value;\n return value !== removeValue;\n });\n }\n }\n\n var triggerNode = triggerEntity ? triggerEntity.node : null;\n\n var extraInfo = {\n triggerValue: removeValue,\n triggerNode: triggerNode\n };\n var deselectInfo = {\n node: triggerNode\n };\n\n // [Legacy] Little hack on this to make same action as `onCheck` event.\n if (treeCheckable) {\n var filteredEntityList = newValueList.map(function (_ref4) {\n var value = _ref4.value;\n return valueEntities[value];\n });\n\n deselectInfo.event = 'check';\n deselectInfo.checked = false;\n deselectInfo.checkedNodes = filteredEntityList.map(function (_ref5) {\n var node = _ref5.node;\n return node;\n });\n deselectInfo.checkedNodesPositions = filteredEntityList.map(function (_ref6) {\n var node = _ref6.node,\n pos = _ref6.pos;\n return {\n node: node,\n pos: pos\n };\n });\n\n if (treeCheckStrictly) {\n extraInfo.allCheckedNodes = deselectInfo.checkedNodes;\n } else {\n // TODO: It's too expansive to get `halfCheckedKeys` in onDeselect. Not pass this.\n extraInfo.allCheckedNodes = flatToHierarchy(filteredEntityList).map(function (_ref7) {\n var node = _ref7.node;\n return node;\n });\n }\n } else {\n deselectInfo.event = 'select';\n deselectInfo.selected = false;\n deselectInfo.selectedNodes = newValueList.map(function (_ref8) {\n var value = _ref8.value;\n return (valueEntities[value] || {}).node;\n });\n }\n\n // Some value user pass prop is not in the tree, we also need clean it\n var newMissValueList = missValueList.filter(function (_ref9) {\n var value = _ref9.value;\n return value !== removeValue;\n });\n var wrappedValue = void 0;\n if (this.isLabelInValue()) {\n wrappedValue = {\n label: triggerNode ? getPropsData(triggerNode)[treeNodeLabelProp] : null,\n value: removeValue\n };\n } else {\n wrappedValue = removeValue;\n }\n\n this.onDeselect(wrappedValue, triggerNode, deselectInfo);\n\n this.triggerChange(newMissValueList, newValueList, extraInfo);\n },\n\n\n // ===================== Popup ======================\n onValueTrigger: function onValueTrigger(isAdd, nodeList, nodeEventInfo, nodeExtraInfo) {\n var node = nodeEventInfo.node;\n var value = node.$props.value;\n var _$data3 = this.$data,\n missValueList = _$data3._missValueList,\n valueEntities = _$data3._valueEntities,\n keyEntities = _$data3._keyEntities,\n searchValue = _$data3._searchValue;\n var _$props4 = this.$props,\n disabled = _$props4.disabled,\n inputValue = _$props4.inputValue,\n treeNodeLabelProp = _$props4.treeNodeLabelProp,\n multiple = _$props4.multiple,\n treeCheckable = _$props4.treeCheckable,\n treeCheckStrictly = _$props4.treeCheckStrictly,\n autoClearSearchValue = _$props4.autoClearSearchValue;\n\n var label = node.$props[treeNodeLabelProp];\n\n if (disabled) return;\n\n // Wrap the return value for user\n var wrappedValue = void 0;\n if (this.isLabelInValue()) {\n wrappedValue = {\n value: value,\n label: label\n };\n } else {\n wrappedValue = value;\n }\n\n // [Legacy] Origin code not trigger `onDeselect` every time. Let's align the behaviour.\n if (isAdd) {\n this.__emit('select', wrappedValue, node, nodeEventInfo);\n } else {\n this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n }\n\n // Get wrapped value list.\n // This is a bit hack cause we use key to match the value.\n var newValueList = nodeList.map(function (node) {\n var props = getPropsData(node);\n return {\n value: props.value,\n label: props[treeNodeLabelProp]\n };\n });\n\n // When is `treeCheckable` and with `searchValue`, `valueList` is not full filled.\n // We need calculate the missing nodes.\n if (treeCheckable && !treeCheckStrictly) {\n var keyList = newValueList.map(function (_ref10) {\n var val = _ref10.value;\n return valueEntities[val].key;\n });\n if (isAdd) {\n keyList = conductCheck(keyList, true, keyEntities).checkedKeys;\n } else {\n keyList = conductCheck([valueEntities[value].key], false, keyEntities, {\n checkedKeys: keyList\n }).checkedKeys;\n }\n newValueList = keyList.map(function (key) {\n var props = getPropsData(keyEntities.get(key).node);\n return {\n value: props.value,\n label: props[treeNodeLabelProp]\n };\n });\n }\n\n // Clean up `searchValue` when this prop is set\n if (autoClearSearchValue || inputValue === null) {\n // Clean state `searchValue` if uncontrolled\n if (!this.isSearchValueControlled() && (multiple || treeCheckable)) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n\n // Trigger onSearch if `searchValue` to be empty.\n // We should also trigger onSearch with empty string here\n // since if user use `treeExpandedKeys`, it need user have the ability to reset it.\n if (searchValue && searchValue.length) {\n this.__emit('update:searchValue', '');\n this.__emit('search', '');\n }\n }\n\n // [Legacy] Provide extra info\n var extraInfo = _extends({}, nodeExtraInfo, {\n triggerValue: value,\n triggerNode: node\n });\n\n this.triggerChange(missValueList, newValueList, extraInfo);\n },\n onTreeNodeSelect: function onTreeNodeSelect(_, nodeEventInfo) {\n var _$data4 = this.$data,\n valueList = _$data4._valueList,\n valueEntities = _$data4._valueEntities;\n var _$props5 = this.$props,\n treeCheckable = _$props5.treeCheckable,\n multiple = _$props5.multiple;\n\n if (treeCheckable) return;\n\n if (!multiple) {\n this.setOpenState(false);\n }\n\n var isAdd = nodeEventInfo.selected;\n var selectedValue = nodeEventInfo.node.$props.value;\n\n\n var newValueList = void 0;\n\n if (!multiple) {\n newValueList = [{ value: selectedValue }];\n } else {\n newValueList = valueList.filter(function (_ref11) {\n var value = _ref11.value;\n return value !== selectedValue;\n });\n if (isAdd) {\n newValueList.push({ value: selectedValue });\n }\n }\n\n var selectedNodes = newValueList.map(function (_ref12) {\n var value = _ref12.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref13) {\n var node = _ref13.node;\n return node;\n });\n\n this.onValueTrigger(isAdd, selectedNodes, nodeEventInfo, { selected: isAdd });\n },\n onTreeNodeCheck: function onTreeNodeCheck(_, nodeEventInfo) {\n var _$data5 = this.$data,\n searchValue = _$data5._searchValue,\n keyEntities = _$data5._keyEntities,\n valueEntities = _$data5._valueEntities,\n valueList = _$data5._valueList;\n var treeCheckStrictly = this.$props.treeCheckStrictly;\n var checkedNodes = nodeEventInfo.checkedNodes,\n checkedNodesPositions = nodeEventInfo.checkedNodesPositions;\n\n var isAdd = nodeEventInfo.checked;\n\n var extraInfo = {\n checked: isAdd\n };\n\n var checkedNodeList = checkedNodes;\n\n // [Legacy] Check event provide `allCheckedNodes`.\n // When `treeCheckStrictly` or internal `searchValue` is set, TreeNode will be unrelated:\n // - Related: Show the top checked nodes and has children prop.\n // - Unrelated: Show all the checked nodes.\n if (searchValue) {\n var oriKeyList = valueList.map(function (_ref14) {\n var value = _ref14.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref15) {\n var key = _ref15.key;\n return key;\n });\n\n var keyList = void 0;\n if (isAdd) {\n keyList = Array.from(new Set([].concat(_toConsumableArray(oriKeyList), _toConsumableArray(checkedNodeList.map(function (node) {\n var _getPropsData = getPropsData(node),\n value = _getPropsData.value;\n\n return valueEntities[value].key;\n })))));\n } else {\n keyList = conductCheck([getPropsData(nodeEventInfo.node).eventKey], false, keyEntities, {\n checkedKeys: oriKeyList\n }).checkedKeys;\n }\n\n checkedNodeList = keyList.map(function (key) {\n return keyEntities.get(key).node;\n });\n\n // Let's follow as not `treeCheckStrictly` format\n extraInfo.allCheckedNodes = keyList.map(function (key) {\n return cleanEntity(keyEntities.get(key));\n });\n } else if (treeCheckStrictly) {\n extraInfo.allCheckedNodes = nodeEventInfo.checkedNodes;\n } else {\n extraInfo.allCheckedNodes = flatToHierarchy(checkedNodesPositions);\n }\n\n this.onValueTrigger(isAdd, checkedNodeList, nodeEventInfo, extraInfo);\n },\n\n\n // ==================== Trigger =====================\n\n onDropdownVisibleChange: function onDropdownVisibleChange(open) {\n var _$props6 = this.$props,\n multiple = _$props6.multiple,\n treeCheckable = _$props6.treeCheckable;\n var _searchValue = this.$data._searchValue;\n\n // When set open success and single mode,\n // we will reset the input content.\n\n if (open && !multiple && !treeCheckable && _searchValue) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n this.setOpenState(open, true);\n },\n onSearchInputChange: function onSearchInputChange(event) {\n var value = event.target.value;\n var _$data6 = this.$data,\n treeNodes = _$data6._treeNodes,\n valueEntities = _$data6._valueEntities;\n var _$props7 = this.$props,\n filterTreeNode = _$props7.filterTreeNode,\n treeNodeFilterProp = _$props7.treeNodeFilterProp;\n\n this.__emit('update:searchValue', value);\n this.__emit('search', value);\n\n var isSet = false;\n\n if (!this.isSearchValueControlled()) {\n isSet = this.setUncontrolledState({\n _searchValue: value\n });\n this.setOpenState(true);\n }\n\n if (isSet) {\n // Do the search logic\n var upperSearchValue = String(value).toUpperCase();\n\n var filterTreeNodeFn = filterTreeNode;\n if (filterTreeNode === false) {\n filterTreeNodeFn = function filterTreeNodeFn() {\n return true;\n };\n } else if (!filterTreeNodeFn) {\n filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n return nodeValue.indexOf(upperSearchValue) !== -1;\n };\n }\n\n this.setState({\n _filteredTreeNodes: getFilterTree(this.$createElement, treeNodes, value, filterTreeNodeFn, valueEntities, SelectNode)\n });\n }\n },\n onSearchInputKeyDown: function onSearchInputKeyDown(event) {\n var _$data7 = this.$data,\n searchValue = _$data7._searchValue,\n valueList = _$data7._valueList;\n var keyCode = event.keyCode;\n\n\n if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) {\n var lastValue = valueList[valueList.length - 1].value;\n this.onMultipleSelectorRemove(event, lastValue);\n }\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n var _this4 = this;\n\n raf(function () {\n _this4.forcePopupAlign();\n });\n },\n setPopupRef: function setPopupRef(popup) {\n this.popup = popup;\n },\n\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState: function setUncontrolledState(state) {\n var needSync = false;\n var newState = {};\n var props = getOptionProps(this);\n Object.keys(state).forEach(function (name) {\n if (name.slice(1) in props) return;\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n\n return needSync;\n },\n\n\n // [Legacy] Origin provide `documentClickClose` which triggered by `Trigger`\n // Currently `TreeSelect` align the hide popup logic as `Select` which blur to hide.\n // `documentClickClose` is not accurate anymore. Let's just keep the key word.\n setOpenState: function setOpenState(open) {\n var byTrigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dropdownVisibleChange = this.$props.dropdownVisibleChange;\n\n\n if (dropdownVisibleChange && dropdownVisibleChange(open, { documentClickClose: !open && byTrigger }) === false) {\n return;\n }\n\n this.setUncontrolledState({ _open: open });\n },\n\n\n // Tree checkable is also a multiple case\n isMultiple: function isMultiple() {\n var _$props8 = this.$props,\n multiple = _$props8.multiple,\n treeCheckable = _$props8.treeCheckable;\n\n return !!(multiple || treeCheckable);\n },\n isLabelInValue: function isLabelInValue() {\n return _isLabelInValue(this.$props);\n },\n\n\n // [Legacy] To align with `Select` component,\n // We use `searchValue` instead of `inputValue`\n // but currently still need support that.\n // Add this method the check if is controlled\n isSearchValueControlled: function isSearchValueControlled() {\n var props = getOptionProps(this);\n var inputValue = props.inputValue;\n\n if ('searchValue' in props) return true;\n return 'inputValue' in props && inputValue !== null;\n },\n forcePopupAlign: function forcePopupAlign() {\n var $trigger = this.selectTriggerRef.current;\n if ($trigger) {\n $trigger.forcePopupAlign();\n }\n },\n delayForcePopupAlign: function delayForcePopupAlign() {\n var _this5 = this;\n\n // Wait 2 frame to avoid dom update & dom algin in the same time\n // https://github.com/ant-design/ant-design/issues/12031\n raf(function () {\n raf(_this5.forcePopupAlign);\n });\n },\n\n\n /**\n * 1. Update state valueList.\n * 2. Fire `onChange` event to user.\n */\n triggerChange: function triggerChange(missValueList, valueList) {\n var extraInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _$data8 = this.$data,\n valueEntities = _$data8._valueEntities,\n searchValue = _$data8._searchValue,\n prevSelectorValueList = _$data8._selectorValueList;\n\n var props = getOptionProps(this);\n var disabled = props.disabled,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly;\n\n if (disabled) return;\n\n // Trigger\n var extra = _extends({\n // [Legacy] Always return as array contains label & value\n preValue: prevSelectorValueList.map(function (_ref16) {\n var label = _ref16.label,\n value = _ref16.value;\n return { label: label, value: value };\n })\n }, extraInfo);\n\n // Format value by `treeCheckStrictly`\n var selectorValueList = formatSelectorValue(valueList, props, valueEntities);\n\n if (!('value' in props)) {\n var newState = {\n _missValueList: missValueList,\n _valueList: valueList,\n _selectorValueList: selectorValueList\n };\n\n if (searchValue && treeCheckable && !treeCheckStrictly) {\n newState._searchHalfCheckedKeys = getHalfCheckedKeys(valueList, valueEntities);\n }\n\n this.setState(newState);\n }\n\n // Only do the logic when `onChange` function provided\n if (getListeners(this).change) {\n var connectValueList = void 0;\n\n // Get value by mode\n if (this.isMultiple()) {\n connectValueList = [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList));\n } else {\n connectValueList = selectorValueList.slice(0, 1);\n }\n\n var labelList = null;\n var returnValue = void 0;\n\n if (this.isLabelInValue()) {\n returnValue = connectValueList.map(function (_ref17) {\n var label = _ref17.label,\n value = _ref17.value;\n return { label: label, value: value };\n });\n } else {\n labelList = [];\n returnValue = connectValueList.map(function (_ref18) {\n var label = _ref18.label,\n value = _ref18.value;\n\n labelList.push(label);\n return value;\n });\n }\n\n if (!this.isMultiple()) {\n returnValue = returnValue[0];\n }\n this.__emit('change', returnValue, labelList, extra);\n }\n },\n focus: function focus() {\n this.selectorRef.current.focus();\n },\n blur: function blur() {\n this.selectorRef.current.blur();\n }\n },\n\n // ===================== Render =====================\n\n render: function render() {\n var h = arguments[0];\n var _$data9 = this.$data,\n valueList = _$data9._valueList,\n missValueList = _$data9._missValueList,\n selectorValueList = _$data9._selectorValueList,\n searchHalfCheckedKeys = _$data9._searchHalfCheckedKeys,\n valueEntities = _$data9._valueEntities,\n keyEntities = _$data9._keyEntities,\n searchValue = _$data9._searchValue,\n open = _$data9._open,\n focused = _$data9._focused,\n treeNodes = _$data9._treeNodes,\n filteredTreeNodes = _$data9._filteredTreeNodes;\n\n var props = getOptionProps(this);\n var prefixCls = props.prefixCls,\n treeExpandedKeys = props.treeExpandedKeys;\n\n var isMultiple = this.isMultiple();\n\n var passProps = {\n props: _extends({}, props, {\n isMultiple: isMultiple,\n valueList: valueList,\n searchHalfCheckedKeys: searchHalfCheckedKeys,\n selectorValueList: [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList)),\n valueEntities: valueEntities,\n keyEntities: keyEntities,\n searchValue: searchValue,\n upperSearchValue: (searchValue || '').toUpperCase(), // Perf save\n open: open,\n focused: focused,\n dropdownPrefixCls: prefixCls + '-dropdown',\n ariaId: this.ariaId\n }),\n on: _extends({}, getListeners(this), {\n choiceAnimationLeave: this.onChoiceAnimationLeave\n }),\n scopedSlots: this.$scopedSlots\n };\n var popupProps = mergeProps(passProps, {\n props: {\n treeNodes: treeNodes,\n filteredTreeNodes: filteredTreeNodes,\n // Tree expanded control\n treeExpandedKeys: treeExpandedKeys,\n __propsSymbol__: Symbol()\n },\n on: {\n treeExpanded: this.delayForcePopupAlign\n },\n directives: [{\n name: 'ant-ref',\n value: this.setPopupRef\n }]\n });\n\n var Popup = isMultiple ? MultiplePopup : SinglePopup;\n var $popup = h(Popup, popupProps);\n\n var Selector = isMultiple ? MultipleSelector : SingleSelector;\n var $selector = h(Selector, _mergeJSXProps([passProps, {\n directives: [{\n name: 'ant-ref',\n value: this.selectorRef\n }]\n }]));\n var selectTriggerProps = mergeProps(passProps, {\n props: {\n popupElement: $popup,\n dropdownVisibleChange: this.onDropdownVisibleChange\n },\n directives: [{\n name: 'ant-ref',\n value: this.selectTriggerRef\n }]\n });\n return h(\n SelectTrigger,\n selectTriggerProps,\n [$selector]\n );\n }\n};\n\nSelect.TreeNode = SelectNode;\nSelect.SHOW_ALL = SHOW_ALL;\nSelect.SHOW_PARENT = SHOW_PARENT;\nSelect.SHOW_CHILD = SHOW_CHILD;\n\n// Let warning show correct component name\nSelect.name = 'TreeSelect';\n\nexport default Select;","import Select from './Select';\nimport SelectNode from './SelectNode';\n\nexport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from './strategies';\nexport var TreeNode = SelectNode;\n\nexport default Select;","export var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport { hasProp, initDefaultProps, getOptionProps, getSlots } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport BaseMixin from '../../_util/BaseMixin';\nimport proxyComponent from '../../_util/proxyComponent';\nimport { convertTreeToEntities, convertDataToTree, getPosition, getDragNodesKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr, mapChildren, conductCheck, warnOnlyTreeNode } from './util';\n\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\n\nfunction getWatch() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var watch = {};\n keys.forEach(function (k) {\n watch[k] = function () {\n this.needSyncKeys[k] = true;\n };\n });\n return watch;\n}\n\nvar Tree = {\n name: 'Tree',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.any,\n treeData: PropTypes.array, // Generate treeNode by children\n showLine: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n focusable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.array,\n expandedKeys: PropTypes.array,\n defaultCheckedKeys: PropTypes.array,\n checkedKeys: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n defaultSelectedKeys: PropTypes.array,\n selectedKeys: PropTypes.array,\n // onClick: PropTypes.func,\n // onDoubleClick: PropTypes.func,\n // onExpand: PropTypes.func,\n // onCheck: PropTypes.func,\n // onSelect: PropTypes.func,\n loadData: PropTypes.func,\n loadedKeys: PropTypes.array,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onRightClick: PropTypes.func,\n // onDragStart: PropTypes.func,\n // onDragEnter: PropTypes.func,\n // onDragOver: PropTypes.func,\n // onDragLeave: PropTypes.func,\n // onDragEnd: PropTypes.func,\n // onDrop: PropTypes.func,\n filterTreeNode: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n switcherIcon: PropTypes.any,\n _propsSymbol: PropTypes.any\n }, {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: []\n }),\n\n data: function data() {\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n warning(this.$props.children, 'please use children prop replace slots.default');\n this.needSyncKeys = {};\n this.domTreeNodes = {};\n var state = {\n _posEntities: new Map(),\n _keyEntities: new Map(),\n _expandedKeys: [],\n _selectedKeys: [],\n _checkedKeys: [],\n _halfCheckedKeys: [],\n _loadedKeys: [],\n _loadingKeys: [],\n _treeNode: [],\n _prevProps: null,\n _dragOverNodeKey: '',\n _dropPosition: null,\n _dragNodesKeys: []\n };\n return _extends({}, state, this.getDerivedState(getOptionProps(this), state));\n },\n provide: function provide() {\n return {\n vcTree: this\n };\n },\n\n\n watch: _extends({}, getWatch(['treeData', 'children', 'expandedKeys', 'autoExpandParent', 'selectedKeys', 'checkedKeys', 'loadedKeys']), {\n __propsSymbol__: function __propsSymbol__() {\n this.setState(this.getDerivedState(getOptionProps(this), this.$data));\n this.needSyncKeys = {};\n }\n }),\n\n methods: {\n getDerivedState: function getDerivedState(props, prevState) {\n var _prevProps = prevState._prevProps;\n\n var newState = {\n _prevProps: _extends({}, props)\n };\n var self = this;\n function needSync(name) {\n return !_prevProps && name in props || _prevProps && self.needSyncKeys[name];\n }\n\n // ================== Tree Node ==================\n var treeNode = null;\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeNode = convertDataToTree(this.$createElement, props.treeData);\n } else if (needSync('children')) {\n treeNode = props.children;\n }\n\n // Tree support filter function which will break the tree structure in the vdm.\n // We cache the treeNodes in state so that we can return the treeNode in event trigger.\n if (treeNode) {\n newState._treeNode = treeNode;\n\n // Calculate the entities data for quick match\n var entitiesMap = convertTreeToEntities(treeNode);\n newState._keyEntities = entitiesMap.keyEntities;\n }\n\n var keyEntities = newState._keyEntities || prevState._keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || _prevProps && needSync('autoExpandParent')) {\n newState._expandedKeys = props.autoExpandParent || !_prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!_prevProps && props.defaultExpandAll) {\n newState._expandedKeys = [].concat(_toConsumableArray(keyEntities.keys()));\n } else if (!_prevProps && props.defaultExpandedKeys) {\n newState._expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState._selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!_prevProps && props.defaultSelectedKeys) {\n newState._selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity = void 0;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!_prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeNode) {\n // If treeNode changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState._checkedKeys,\n halfCheckedKeys: prevState._halfCheckedKeys\n };\n }\n\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === undefined ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === undefined ? [] : _checkedKeyEntity$hal;\n\n\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n\n newState._checkedKeys = checkedKeys;\n newState._halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState._loadedKeys = props.loadedKeys;\n }\n\n return newState;\n },\n onNodeDragStart: function onNodeDragStart(event, node) {\n var _expandedKeys = this.$data._expandedKeys;\n var eventKey = node.eventKey;\n\n var children = getSlots(node)['default'];\n this.dragNode = node;\n\n this.setState({\n _dragNodesKeys: getDragNodesKeys(typeof children === 'function' ? children() : children, node),\n _expandedKeys: arrDel(_expandedKeys, eventKey)\n });\n this.__emit('dragstart', { event: event, node: node });\n },\n\n\n /**\n * [Legacy] Select handler is less small than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter: function onNodeDragEnter(event, node) {\n var _this = this;\n\n var expandedKeys = this.$data._expandedKeys;\n var pos = node.pos,\n eventKey = node.eventKey;\n\n\n if (!this.dragNode || !node.$refs.selectHandle) return;\n\n var dropPosition = calcDropPosition(event, node);\n\n // Skip if drag node is self\n if (this.dragNode.eventKey === eventKey && dropPosition === 0) {\n this.setState({\n _dragOverNodeKey: '',\n _dropPosition: null\n });\n return;\n }\n\n // Ref: https://github.com/react-component/tree/issues/132\n // Add timeout to let onDragLevel fire before onDragEnter,\n // so that we can clean drag props for onDragLeave node.\n // Macro task for this:\n // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n setTimeout(function () {\n // Update drag over node\n _this.setState({\n _dragOverNodeKey: eventKey,\n _dropPosition: dropPosition\n });\n\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n _this.delayedDragEnterLogic[pos] = setTimeout(function () {\n var newExpandedKeys = arrAdd(expandedKeys, eventKey);\n if (!hasProp(_this, 'expandedKeys')) {\n _this.setState({\n _expandedKeys: newExpandedKeys\n });\n }\n _this.__emit('dragenter', { event: event, node: node, expandedKeys: newExpandedKeys });\n }, 400);\n }, 0);\n },\n onNodeDragOver: function onNodeDragOver(event, node) {\n var eventKey = node.eventKey;\n var _$data = this.$data,\n _dragOverNodeKey = _$data._dragOverNodeKey,\n _dropPosition = _$data._dropPosition;\n // Update drag position\n\n if (this.dragNode && eventKey === _dragOverNodeKey && node.$refs.selectHandle) {\n var dropPosition = calcDropPosition(event, node);\n\n if (dropPosition === _dropPosition) return;\n\n this.setState({\n _dropPosition: dropPosition\n });\n }\n this.__emit('dragover', { event: event, node: node });\n },\n onNodeDragLeave: function onNodeDragLeave(event, node) {\n this.setState({\n _dragOverNodeKey: ''\n });\n this.__emit('dragleave', { event: event, node: node });\n },\n onNodeDragEnd: function onNodeDragEnd(event, node) {\n this.setState({\n _dragOverNodeKey: ''\n });\n this.__emit('dragend', { event: event, node: node });\n this.dragNode = null;\n },\n onNodeDrop: function onNodeDrop(event, node) {\n var _$data2 = this.$data,\n _$data2$_dragNodesKey = _$data2._dragNodesKeys,\n _dragNodesKeys = _$data2$_dragNodesKey === undefined ? [] : _$data2$_dragNodesKey,\n _dropPosition = _$data2._dropPosition;\n\n var eventKey = node.eventKey,\n pos = node.pos;\n\n\n this.setState({\n _dragOverNodeKey: ''\n });\n\n if (_dragNodesKeys.indexOf(eventKey) !== -1) {\n warning(false, \"Can not drop to dragNode(include it's children node)\");\n return;\n }\n\n var posArr = posToArr(pos);\n\n var dropResult = {\n event: event,\n node: node,\n dragNode: this.dragNode,\n dragNodesKeys: _dragNodesKeys.slice(),\n dropPosition: _dropPosition + Number(posArr[posArr.length - 1]),\n dropToGap: false\n };\n\n if (_dropPosition !== 0) {\n dropResult.dropToGap = true;\n }\n this.__emit('drop', dropResult);\n this.dragNode = null;\n },\n onNodeClick: function onNodeClick(e, treeNode) {\n this.__emit('click', e, treeNode);\n },\n onNodeDoubleClick: function onNodeDoubleClick(e, treeNode) {\n this.__emit('dblclick', e, treeNode);\n },\n onNodeSelect: function onNodeSelect(e, treeNode) {\n var selectedKeys = this.$data._selectedKeys;\n var keyEntities = this.$data._keyEntities;\n var multiple = this.$props.multiple;\n\n var _getOptionProps = getOptionProps(treeNode),\n selected = _getOptionProps.selected,\n eventKey = _getOptionProps.eventKey;\n\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, eventKey);\n } else if (!multiple) {\n selectedKeys = [eventKey];\n } else {\n selectedKeys = arrAdd(selectedKeys, eventKey);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (key) {\n var entity = keyEntities.get(key);\n if (!entity) return null;\n\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n\n this.setUncontrolledState({ _selectedKeys: selectedKeys });\n\n var eventObj = {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e\n };\n this.__emit('update:selectedKeys', selectedKeys);\n this.__emit('select', selectedKeys, eventObj);\n },\n onNodeCheck: function onNodeCheck(e, treeNode, checked) {\n var _$data3 = this.$data,\n keyEntities = _$data3._keyEntities,\n oriCheckedKeys = _$data3._checkedKeys,\n oriHalfCheckedKeys = _$data3._halfCheckedKeys;\n var checkStrictly = this.$props.checkStrictly;\n\n var _getOptionProps2 = getOptionProps(treeNode),\n eventKey = _getOptionProps2.eventKey;\n\n // Prepare trigger arguments\n\n\n var checkedObj = void 0;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e\n };\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, eventKey) : arrDel(oriCheckedKeys, eventKey);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, eventKey);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys.map(function (key) {\n return keyEntities.get(key);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n\n this.setUncontrolledState({ _checkedKeys: checkedKeys });\n } else {\n var _conductCheck = conductCheck([eventKey], checked, keyEntities, {\n checkedKeys: oriCheckedKeys,\n halfCheckedKeys: oriHalfCheckedKeys\n }),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n checkedObj = _checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n\n _checkedKeys.forEach(function (key) {\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var node = entity.node,\n pos = entity.pos;\n\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node: node, pos: pos });\n });\n\n this.setUncontrolledState({\n _checkedKeys: _checkedKeys,\n _halfCheckedKeys: _halfCheckedKeys\n });\n }\n this.__emit('check', checkedObj, eventObj);\n },\n onNodeLoad: function onNodeLoad(treeNode) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n // We need to get the latest state of loading/loaded keys\n _this2.setState(function (_ref) {\n var _ref$_loadedKeys = _ref._loadedKeys,\n loadedKeys = _ref$_loadedKeys === undefined ? [] : _ref$_loadedKeys,\n _ref$_loadingKeys = _ref._loadingKeys,\n loadingKeys = _ref$_loadingKeys === undefined ? [] : _ref$_loadingKeys;\n var loadData = _this2.$props.loadData;\n\n var _getOptionProps3 = getOptionProps(treeNode),\n eventKey = _getOptionProps3.eventKey;\n\n if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) {\n return {};\n }\n\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var _$data4 = _this2.$data,\n currentLoadedKeys = _$data4._loadedKeys,\n currentLoadingKeys = _$data4._loadingKeys;\n\n var newLoadedKeys = arrAdd(currentLoadedKeys, eventKey);\n var newLoadingKeys = arrDel(currentLoadingKeys, eventKey);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n _this2.__emit('load', newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this2.setUncontrolledState({\n _loadedKeys: newLoadedKeys\n });\n _this2.setState({\n _loadingKeys: newLoadingKeys\n });\n resolve();\n });\n\n return {\n _loadingKeys: arrAdd(loadingKeys, eventKey)\n };\n });\n });\n },\n onNodeExpand: function onNodeExpand(e, treeNode) {\n var _this3 = this;\n\n var expandedKeys = this.$data._expandedKeys;\n var loadData = this.$props.loadData;\n\n var _getOptionProps4 = getOptionProps(treeNode),\n eventKey = _getOptionProps4.eventKey,\n expanded = _getOptionProps4.expanded;\n\n // Update selected keys\n\n\n var index = expandedKeys.indexOf(eventKey);\n var targetExpanded = !expanded;\n\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, eventKey);\n } else {\n expandedKeys = arrDel(expandedKeys, eventKey);\n }\n\n this.setUncontrolledState({ _expandedKeys: expandedKeys });\n this.__emit('expand', expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e\n });\n this.__emit('update:expandedKeys', expandedKeys);\n\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = this.onNodeLoad(treeNode);\n return loadPromise ? loadPromise.then(function () {\n // [Legacy] Refresh logic\n _this3.setUncontrolledState({ _expandedKeys: expandedKeys });\n }) : null;\n }\n\n return null;\n },\n onNodeMouseEnter: function onNodeMouseEnter(event, node) {\n this.__emit('mouseenter', { event: event, node: node });\n },\n onNodeMouseLeave: function onNodeMouseLeave(event, node) {\n this.__emit('mouseleave', { event: event, node: node });\n },\n onNodeContextMenu: function onNodeContextMenu(event, node) {\n event.preventDefault();\n this.__emit('rightClick', { event: event, node: node });\n },\n\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState: function setUncontrolledState(state) {\n var needSync = false;\n var newState = {};\n var props = getOptionProps(this);\n Object.keys(state).forEach(function (name) {\n if (name.replace('_', '') in props) return;\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n },\n registerTreeNode: function registerTreeNode(key, node) {\n if (node) {\n this.domTreeNodes[key] = node;\n } else {\n delete this.domTreeNodes[key];\n }\n },\n isKeyChecked: function isKeyChecked(key) {\n var _$data$_checkedKeys = this.$data._checkedKeys,\n checkedKeys = _$data$_checkedKeys === undefined ? [] : _$data$_checkedKeys;\n\n return checkedKeys.indexOf(key) !== -1;\n },\n\n\n /**\n * [Legacy] Original logic use `key` as tracking clue.\n * We have to use `cloneElement` to pass `key`.\n */\n renderTreeNode: function renderTreeNode(child, index) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var _$data5 = this.$data,\n keyEntities = _$data5._keyEntities,\n _$data5$_expandedKeys = _$data5._expandedKeys,\n expandedKeys = _$data5$_expandedKeys === undefined ? [] : _$data5$_expandedKeys,\n _$data5$_selectedKeys = _$data5._selectedKeys,\n selectedKeys = _$data5$_selectedKeys === undefined ? [] : _$data5$_selectedKeys,\n _$data5$_halfCheckedK = _$data5._halfCheckedKeys,\n halfCheckedKeys = _$data5$_halfCheckedK === undefined ? [] : _$data5$_halfCheckedK,\n _$data5$_loadedKeys = _$data5._loadedKeys,\n loadedKeys = _$data5$_loadedKeys === undefined ? [] : _$data5$_loadedKeys,\n _$data5$_loadingKeys = _$data5._loadingKeys,\n loadingKeys = _$data5$_loadingKeys === undefined ? [] : _$data5$_loadingKeys,\n dragOverNodeKey = _$data5._dragOverNodeKey,\n dropPosition = _$data5._dropPosition;\n\n var pos = getPosition(level, index);\n var key = child.key;\n if (!key && (key === undefined || key === null)) {\n key = pos;\n }\n if (!keyEntities.get(key)) {\n warnOnlyTreeNode();\n return null;\n }\n\n return cloneElement(child, {\n props: {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: this.isKeyChecked(key),\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: pos,\n\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n },\n key: key\n });\n }\n },\n\n render: function render() {\n var _this4 = this;\n\n var h = arguments[0];\n var treeNode = this.$data._treeNode;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n focusable = _$props.focusable,\n showLine = _$props.showLine,\n _$props$tabIndex = _$props.tabIndex,\n tabIndex = _$props$tabIndex === undefined ? 0 : _$props$tabIndex;\n\n\n return h(\n 'ul',\n {\n 'class': classNames(prefixCls, _defineProperty({}, prefixCls + '-show-line', showLine)),\n attrs: { role: 'tree',\n unselectable: 'on',\n tabIndex: focusable ? tabIndex : null\n }\n },\n [mapChildren(treeNode, function (node, index) {\n return _this4.renderTreeNode(node, index);\n })]\n );\n }\n};\n\nexport { Tree };\n\nexport default proxyComponent(Tree);","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport { getNodeChildren as _getNodeChildren, mapChildren, warnOnlyTreeNode } from './util';\nimport { initDefaultProps, filterEmpty, getComponentFromProp } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport getTransitionProps from '../../_util/getTransitionProps';\n\nfunction noop() {}\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\n\nvar defaultTitle = '---';\n\nvar TreeNode = {\n name: 'TreeNode',\n mixins: [BaseMixin],\n __ANT_TREE_NODE: true,\n props: initDefaultProps({\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // Pass by parent `cloneElement`\n prefixCls: PropTypes.string,\n // className: PropTypes.string,\n root: PropTypes.object,\n // onSelect: PropTypes.func,\n\n // By parent\n expanded: PropTypes.bool,\n selected: PropTypes.bool,\n checked: PropTypes.bool,\n loaded: PropTypes.bool,\n loading: PropTypes.bool,\n halfChecked: PropTypes.bool,\n title: PropTypes.any,\n pos: PropTypes.string,\n dragOver: PropTypes.bool,\n dragOverGapTop: PropTypes.bool,\n dragOverGapBottom: PropTypes.bool,\n\n // By user\n isLeaf: PropTypes.bool,\n checkable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n disableCheckbox: PropTypes.bool,\n icon: PropTypes.any,\n dataRef: PropTypes.object,\n switcherIcon: PropTypes.any,\n label: PropTypes.any,\n value: PropTypes.any\n }, {}),\n\n data: function data() {\n return {\n dragNodeHighlight: false\n };\n },\n\n inject: {\n vcTree: { 'default': function _default() {\n return {};\n } },\n vcTreeNode: { 'default': function _default() {\n return {};\n } }\n },\n provide: function provide() {\n return {\n vcTreeNode: this\n };\n },\n\n\n // Isomorphic needn't load data in server side\n mounted: function mounted() {\n var eventKey = this.eventKey,\n registerTreeNode = this.vcTree.registerTreeNode;\n\n this.syncLoadData(this.$props);\n registerTreeNode && registerTreeNode(eventKey, this);\n },\n updated: function updated() {\n this.syncLoadData(this.$props);\n },\n beforeDestroy: function beforeDestroy() {\n var eventKey = this.eventKey,\n registerTreeNode = this.vcTree.registerTreeNode;\n\n registerTreeNode && registerTreeNode(eventKey, null);\n },\n\n\n methods: {\n onSelectorClick: function onSelectorClick(e) {\n // Click trigger before select/check operation\n var onNodeClick = this.vcTree.onNodeClick;\n\n onNodeClick(e, this);\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n },\n onSelectorDoubleClick: function onSelectorDoubleClick(e) {\n var onNodeDoubleClick = this.vcTree.onNodeDoubleClick;\n\n onNodeDoubleClick(e, this);\n },\n onSelect: function onSelect(e) {\n if (this.isDisabled()) return;\n\n var onNodeSelect = this.vcTree.onNodeSelect;\n\n e.preventDefault();\n onNodeSelect(e, this);\n },\n onCheck: function onCheck(e) {\n if (this.isDisabled()) return;\n\n var disableCheckbox = this.disableCheckbox,\n checked = this.checked;\n var onNodeCheck = this.vcTree.onNodeCheck;\n\n\n if (!this.isCheckable() || disableCheckbox) return;\n\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, this, targetChecked);\n },\n onMouseEnter: function onMouseEnter(e) {\n var onNodeMouseEnter = this.vcTree.onNodeMouseEnter;\n\n onNodeMouseEnter(e, this);\n },\n onMouseLeave: function onMouseLeave(e) {\n var onNodeMouseLeave = this.vcTree.onNodeMouseLeave;\n\n onNodeMouseLeave(e, this);\n },\n onContextMenu: function onContextMenu(e) {\n var onNodeContextMenu = this.vcTree.onNodeContextMenu;\n\n onNodeContextMenu(e, this);\n },\n onDragStart: function onDragStart(e) {\n var onNodeDragStart = this.vcTree.onNodeDragStart;\n\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n },\n onDragEnter: function onDragEnter(e) {\n var onNodeDragEnter = this.vcTree.onNodeDragEnter;\n\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n },\n onDragOver: function onDragOver(e) {\n var onNodeDragOver = this.vcTree.onNodeDragOver;\n\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n },\n onDragLeave: function onDragLeave(e) {\n var onNodeDragLeave = this.vcTree.onNodeDragLeave;\n\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n },\n onDragEnd: function onDragEnd(e) {\n var onNodeDragEnd = this.vcTree.onNodeDragEnd;\n\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, this);\n },\n onDrop: function onDrop(e) {\n var onNodeDrop = this.vcTree.onNodeDrop;\n\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, this);\n },\n\n\n // Disabled item still can be switch\n onExpand: function onExpand(e) {\n var onNodeExpand = this.vcTree.onNodeExpand;\n\n onNodeExpand(e, this);\n },\n getNodeChildren: function getNodeChildren() {\n var children = this.$slots['default'];\n\n var originList = filterEmpty(children);\n var targetList = _getNodeChildren(originList);\n\n if (originList.length !== targetList.length) {\n warnOnlyTreeNode();\n }\n\n return targetList;\n },\n getNodeState: function getNodeState() {\n var expanded = this.expanded;\n\n\n if (this.isLeaf2()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n },\n isLeaf2: function isLeaf2() {\n var isLeaf = this.isLeaf,\n loaded = this.loaded;\n var loadData = this.vcTree.loadData;\n\n\n var hasChildren = this.getNodeChildren().length !== 0;\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n },\n isDisabled: function isDisabled() {\n var disabled = this.disabled;\n var treeDisabled = this.vcTree.disabled;\n\n // Follow the logic of Selectable\n\n if (disabled === false) {\n return false;\n }\n\n return !!(treeDisabled || disabled);\n },\n isCheckable: function isCheckable() {\n var checkable = this.$props.checkable;\n var treeCheckable = this.vcTree.checkable;\n\n // Return false if tree or treeNode is not checkable\n\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n },\n\n\n // Load data to avoid default expanded tree without data\n syncLoadData: function syncLoadData(props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _vcTree = this.vcTree,\n loadData = _vcTree.loadData,\n onNodeLoad = _vcTree.onNodeLoad;\n\n if (loading) return;\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf2()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n var hasChildren = this.getNodeChildren().length !== 0;\n if (!hasChildren && !loaded) {\n onNodeLoad(this);\n }\n }\n },\n isSelectable: function isSelectable() {\n var selectable = this.selectable;\n var treeSelectable = this.vcTree.selectable;\n\n // Ignore when selectable is undefined or null\n\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n },\n\n\n // Switcher\n renderSwitcher: function renderSwitcher() {\n var h = this.$createElement;\n var expanded = this.expanded;\n var prefixCls = this.vcTree.prefixCls;\n\n var switcherIcon = getComponentFromProp(this, 'switcherIcon', {}, false) || getComponentFromProp(this.vcTree, 'switcherIcon', {}, false);\n if (this.isLeaf2()) {\n return h(\n 'span',\n {\n key: 'switcher',\n 'class': classNames(prefixCls + '-switcher', prefixCls + '-switcher-noop')\n },\n [typeof switcherIcon === 'function' ? switcherIcon(_extends({}, this.$props, this.$props.dataRef, { isLeaf: true })) : switcherIcon]\n );\n }\n\n var switcherCls = classNames(prefixCls + '-switcher', prefixCls + '-switcher_' + (expanded ? ICON_OPEN : ICON_CLOSE));\n return h(\n 'span',\n { key: 'switcher', on: {\n 'click': this.onExpand\n },\n 'class': switcherCls },\n [typeof switcherIcon === 'function' ? switcherIcon(_extends({}, this.$props, this.$props.dataRef, { isLeaf: false })) : switcherIcon]\n );\n },\n\n\n // Checkbox\n renderCheckbox: function renderCheckbox() {\n var h = this.$createElement;\n var checked = this.checked,\n halfChecked = this.halfChecked,\n disableCheckbox = this.disableCheckbox;\n var prefixCls = this.vcTree.prefixCls;\n\n var disabled = this.isDisabled();\n var checkable = this.isCheckable();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return h(\n 'span',\n {\n key: 'checkbox',\n 'class': classNames(prefixCls + '-checkbox', checked && prefixCls + '-checkbox-checked', !checked && halfChecked && prefixCls + '-checkbox-indeterminate', (disabled || disableCheckbox) && prefixCls + '-checkbox-disabled'),\n on: {\n 'click': this.onCheck\n }\n },\n [$custom]\n );\n },\n renderIcon: function renderIcon() {\n var h = this.$createElement;\n var loading = this.loading;\n var prefixCls = this.vcTree.prefixCls;\n\n\n return h('span', {\n key: 'icon',\n 'class': classNames(prefixCls + '-iconEle', prefixCls + '-icon__' + (this.getNodeState() || 'docu'), loading && prefixCls + '-icon_loading')\n });\n },\n\n\n // Icon + Title\n renderSelector: function renderSelector(h) {\n var selected = this.selected,\n loading = this.loading,\n dragNodeHighlight = this.dragNodeHighlight;\n\n var icon = getComponentFromProp(this, 'icon', {}, false);\n var _vcTree2 = this.vcTree,\n prefixCls = _vcTree2.prefixCls,\n showIcon = _vcTree2.showIcon,\n treeIcon = _vcTree2.icon,\n draggable = _vcTree2.draggable,\n loadData = _vcTree2.loadData;\n\n var disabled = this.isDisabled();\n var title = getComponentFromProp(this, 'title', {}, false);\n var wrapClass = prefixCls + '-node-content-wrapper';\n\n // Icon - Still show loading icon when loading without showIcon\n var $icon = void 0;\n\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? h(\n 'span',\n { 'class': classNames(prefixCls + '-iconEle', prefixCls + '-icon__customize') },\n [typeof currentIcon === 'function' ? currentIcon(_extends({}, this.$props, this.$props.dataRef), h) : currentIcon]\n ) : this.renderIcon();\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n var currentTitle = title;\n var $title = currentTitle ? h(\n 'span',\n { 'class': prefixCls + '-title' },\n [typeof currentTitle === 'function' ? currentTitle(_extends({}, this.$props, this.$props.dataRef), h) : currentTitle]\n ) : h(\n 'span',\n { 'class': prefixCls + '-title' },\n [defaultTitle]\n );\n\n return h(\n 'span',\n {\n key: 'selector',\n ref: 'selectHandle',\n attrs: { title: typeof title === 'string' ? title : '',\n\n draggable: !disabled && draggable || undefined,\n 'aria-grabbed': !disabled && draggable || undefined\n },\n 'class': classNames('' + wrapClass, wrapClass + '-' + (this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && prefixCls + '-node-selected', !disabled && draggable && 'draggable'), on: {\n 'mouseenter': this.onMouseEnter,\n 'mouseleave': this.onMouseLeave,\n 'contextmenu': this.onContextMenu,\n 'click': this.onSelectorClick,\n 'dblclick': this.onSelectorDoubleClick,\n 'dragstart': draggable ? this.onDragStart : noop\n }\n },\n [$icon, $title]\n );\n },\n\n\n // Children list wrapped with `Animation`\n renderChildren: function renderChildren() {\n var h = this.$createElement;\n var expanded = this.expanded,\n pos = this.pos;\n var _vcTree3 = this.vcTree,\n prefixCls = _vcTree3.prefixCls,\n openTransitionName = _vcTree3.openTransitionName,\n openAnimation = _vcTree3.openAnimation,\n renderTreeNode = _vcTree3.renderTreeNode;\n\n\n var animProps = {};\n if (openTransitionName) {\n animProps = getTransitionProps(openTransitionName);\n } else if ((typeof openAnimation === 'undefined' ? 'undefined' : _typeof(openAnimation)) === 'object') {\n animProps = _extends({}, openAnimation);\n animProps.props = _extends({ css: false }, animProps.props);\n }\n\n // Children TreeNode\n var nodeList = this.getNodeChildren();\n\n if (nodeList.length === 0) {\n return null;\n }\n\n var $children = void 0;\n if (expanded) {\n $children = h(\n 'ul',\n {\n 'class': classNames(prefixCls + '-child-tree', expanded && prefixCls + '-child-tree-open'),\n attrs: { 'data-expanded': expanded,\n role: 'group'\n }\n },\n [mapChildren(nodeList, function (node, index) {\n return renderTreeNode(node, index, pos);\n })]\n );\n }\n\n return h(\n 'transition',\n animProps,\n [$children]\n );\n }\n },\n\n render: function render(h) {\n var _ref;\n\n var _$props = this.$props,\n dragOver = _$props.dragOver,\n dragOverGapTop = _$props.dragOverGapTop,\n dragOverGapBottom = _$props.dragOverGapBottom,\n isLeaf = _$props.isLeaf,\n expanded = _$props.expanded,\n selected = _$props.selected,\n checked = _$props.checked,\n halfChecked = _$props.halfChecked,\n loading = _$props.loading;\n var _vcTree4 = this.vcTree,\n prefixCls = _vcTree4.prefixCls,\n filterTreeNode = _vcTree4.filterTreeNode,\n draggable = _vcTree4.draggable;\n\n var disabled = this.isDisabled();\n return h(\n 'li',\n {\n 'class': (_ref = {}, _defineProperty(_ref, prefixCls + '-treenode-disabled', disabled), _defineProperty(_ref, prefixCls + '-treenode-switcher-' + (expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_ref, prefixCls + '-treenode-checkbox-checked', checked), _defineProperty(_ref, prefixCls + '-treenode-checkbox-indeterminate', halfChecked), _defineProperty(_ref, prefixCls + '-treenode-selected', selected), _defineProperty(_ref, prefixCls + '-treenode-loading', loading), _defineProperty(_ref, 'drag-over', !disabled && dragOver), _defineProperty(_ref, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_ref, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_ref, 'filter-node', filterTreeNode && filterTreeNode(this)), _ref),\n attrs: { role: 'treeitem'\n },\n on: {\n 'dragenter': draggable ? this.onDragEnter : noop,\n 'dragover': draggable ? this.onDragOver : noop,\n 'dragleave': draggable ? this.onDragLeave : noop,\n 'drop': draggable ? this.onDrop : noop,\n 'dragend': draggable ? this.onDragEnd : noop\n }\n },\n [this.renderSwitcher(), this.renderCheckbox(), this.renderSelector(h), this.renderChildren()]\n );\n }\n};\n\nTreeNode.isTreeNode = 1;\n\nexport default TreeNode;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\n/* eslint no-loop-func: 0*/\nimport warning from 'warning';\nimport omit from 'omit.js';\nimport TreeNode from './TreeNode';\nimport { getSlotOptions, getOptionProps } from '../../_util/props-util';\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\n\nvar onlyTreeNodeWarned = false;\n\nexport function warnOnlyTreeNode() {\n if (onlyTreeNodeWarned) return;\n\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n}\n\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n var clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\nexport function getPosition(level, index) {\n return level + '-' + index;\n}\n\nexport function isTreeNode(node) {\n return getSlotOptions(node).isTreeNode;\n}\n\nexport function getNodeChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return children.filter(isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n var _ref = getOptionProps(node) || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\nexport function traverseTreeNodes(treeNodes, callback) {\n function processNode(node, index, parent) {\n var children = node ? node.componentOptions.children : treeNodes;\n var pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n var childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n var key = node.key;\n if (!key && (key === undefined || key === null)) {\n key = pos;\n }\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null\n };\n callback(data);\n }\n\n // Process children node\n childList.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, { node: node, pos: pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\nexport function mapChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var func = arguments[1];\n\n var list = children.map(func);\n if (list.length === 1) {\n return list[0];\n }\n return list;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n var _getOptionProps = getOptionProps(node),\n eventKey = _getOptionProps.eventKey,\n pos = _getOptionProps.pos;\n\n var dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, function (_ref2) {\n var key = _ref2.key;\n\n dragNodesKeys.push(key);\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\nexport function calcDropPosition(event, treeNode) {\n var clientY = event.clientY;\n\n var _treeNode$$refs$selec = treeNode.$refs.selectHandle.getBoundingClientRect(),\n top = _treeNode$$refs$selec.top,\n bottom = _treeNode$$refs$selec.bottom,\n height = _treeNode$$refs$selec.height;\n\n var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n }\n if (clientY >= bottom - des) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) {\n return undefined;\n }\n\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\n// function keyListToString (keyList) {\n// if (!keyList) return keyList\n// return keyList.map(key => String(key))\n// }\n\nvar internalProcessProps = function internalProcessProps() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return {\n props: omit(props, ['on', 'key', 'class', 'className', 'style']),\n on: props.on || {},\n 'class': props['class'] || props.className,\n style: props.style,\n key: props.key\n };\n};\nexport function convertDataToTree(h, treeData, processor) {\n if (!treeData) return [];\n\n var _ref3 = processor || {},\n _ref3$processProps = _ref3.processProps,\n processProps = _ref3$processProps === undefined ? internalProcessProps : _ref3$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref4) {\n var children = _ref4.children,\n props = _objectWithoutProperties(_ref4, ['children']);\n\n var childrenNodes = convertDataToTree(h, children, processor);\n return h(\n TreeNode,\n processProps(props),\n [childrenNodes]\n );\n });\n}\n\n// TODO: ========================= NEW LOGIC =========================\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity User can customize the entity\n */\nexport function convertTreeToEntities(treeNodes) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref5.initWrapper,\n processEntity = _ref5.processEntity,\n onProcessFinished = _ref5.onProcessFinished;\n\n var posEntities = new Map();\n var keyEntities = new Map();\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseTreeNodes(treeNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos;\n\n var entity = { node: node, index: index, key: key, pos: pos };\n\n posEntities.set(pos, entity);\n keyEntities.set(key, entity);\n\n // Fill children\n entity.parent = posEntities.get(parentPos);\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n var keyProps = void 0;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if ((typeof keys === 'undefined' ? 'undefined' : _typeof(keys)) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n // keyProps.checkedKeys = keyListToString(keyProps.checkedKeys)\n // keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys)\n\n return keyProps;\n}\n\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList list of keys\n * @param isCheck is check the node or not\n * @param keyEntities parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\nexport function conductCheck(keyList, isCheck, keyEntities) {\n var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var checkedKeys = new Map();\n var halfCheckedKeys = new Map(); // Record the key has some child checked (include child half checked)\n\n (checkStatus.checkedKeys || []).forEach(function (key) {\n checkedKeys.set(key, true);\n });\n\n (checkStatus.halfCheckedKeys || []).forEach(function (key) {\n halfCheckedKeys.set(key, true);\n });\n\n // Conduct up\n function conductUp(key) {\n if (checkedKeys.get(key) === isCheck) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n // Check child node checked status\n var everyChildChecked = true;\n var someChildChecked = false; // Child checked or half checked\n\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (_ref6) {\n var childKey = _ref6.key;\n\n var childChecked = checkedKeys.get(childKey);\n var childHalfChecked = halfCheckedKeys.get(childKey);\n\n if (childChecked || childHalfChecked) someChildChecked = true;\n if (!childChecked) everyChildChecked = false;\n });\n\n // Update checked status\n if (isCheck) {\n checkedKeys.set(key, everyChildChecked);\n } else {\n checkedKeys.set(key, false);\n }\n halfCheckedKeys.set(key, someChildChecked);\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (checkedKeys.get(key) === isCheck) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var children = entity.children,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n checkedKeys.set(key, isCheck);\n\n (children || []).forEach(function (child) {\n conductDown(child.key);\n });\n }\n\n function conduct(key) {\n var entity = keyEntities.get(key);\n\n if (!entity) {\n warning(false, '\\'' + key + '\\' does not exist in the tree.');\n return;\n }\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n checkedKeys.set(key, isCheck);\n\n if (isCheckDisabled(node)) return;\n\n // Conduct down\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (child) {\n conductDown(child.key);\n });\n\n // Conduct up\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conduct(key);\n });\n\n var checkedKeyList = [];\n var halfCheckedKeyList = [];\n\n // Fill checked list\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = checkedKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref7 = _step.value;\n\n var _ref8 = _slicedToArray(_ref7, 2);\n\n var key = _ref8[0];\n var value = _ref8[1];\n\n if (value) {\n checkedKeyList.push(key);\n }\n }\n\n // Fill half checked list\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = halfCheckedKeys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref9 = _step2.value;\n\n var _ref10 = _slicedToArray(_ref9, 2);\n\n var _key = _ref10[0];\n var _value = _ref10[1];\n\n if (!checkedKeys.get(_key) && _value) {\n halfCheckedKeyList.push(_key);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2['return']) {\n _iterator2['return']();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return {\n checkedKeys: checkedKeyList,\n halfCheckedKeys: halfCheckedKeyList\n };\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Map();\n\n function conductUp(key) {\n if (expandedKeys.get(key)) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n expandedKeys.set(key, true);\n\n var parent = entity.parent,\n node = entity.node;\n\n var props = getOptionProps(node);\n if (props && props.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n\n return [].concat(_toConsumableArray(expandedKeys.keys()));\n}\n\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props\n */\nexport function getDataAndAria(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","import PropTypes from '../_util/vue-types';\n\nexport default {\n props: {\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string\n },\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n hiddenClassName = _$props.hiddenClassName,\n visible = _$props.visible;\n\n var children = null;\n if (hiddenClassName || !this.$slots['default'] || this.$slots['default'].length > 1) {\n var cls = '';\n if (!visible && hiddenClassName) {\n // cls += ` ${hiddenClassName}`\n }\n children = h(\n 'div',\n { 'class': cls },\n [this.$slots['default']]\n );\n } else {\n children = this.$slots['default'][0];\n }\n return children;\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../_util/vue-types';\nimport LazyRenderBox from './LazyRenderBox';\nimport { getListeners } from '../_util/props-util';\n\nexport default {\n props: {\n hiddenClassName: PropTypes.string.def(''),\n prefixCls: PropTypes.string,\n visible: PropTypes.bool\n },\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n visible = _$props.visible,\n hiddenClassName = _$props.hiddenClassName;\n\n var divProps = {\n on: getListeners(this)\n };\n\n return h(\n 'div',\n _mergeJSXProps([divProps, { 'class': !visible ? hiddenClassName : '' }]),\n [h(\n LazyRenderBox,\n { 'class': prefixCls + '-content', attrs: { visible: visible }\n },\n [this.$slots['default']]\n )]\n );\n }\n};","import _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport Align from '../vc-align';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport animate from '../_util/css-animation';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getListeners } from '../_util/props-util';\n\nexport default {\n name: 'VCTriggerPopup',\n mixins: [BaseMixin],\n props: {\n visible: PropTypes.bool,\n getClassNameFromAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.bool,\n prefixCls: PropTypes.string,\n getContainer: PropTypes.func,\n transitionName: PropTypes.string,\n animation: PropTypes.any,\n maskAnimation: PropTypes.string,\n maskTransitionName: PropTypes.string,\n mask: PropTypes.bool,\n zIndex: PropTypes.number,\n popupClassName: PropTypes.any,\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n stretch: PropTypes.string,\n point: PropTypes.shape({\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })\n },\n data: function data() {\n this.domEl = null;\n return {\n // Used for stretch\n stretchChecked: false,\n targetWidth: undefined,\n targetHeight: undefined\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.rootNode = _this.getPopupDomNode();\n _this.setStretchSize();\n });\n },\n\n // 如添加会导致动画失效,如放开会导致快速输入时闪动 https://github.com/vueComponent/ant-design-vue/issues/1327,\n // 目前方案是保留动画,闪动问题(动画多次执行)进一步定位\n // beforeUpdate() {\n // if (this.domEl && this.domEl.rcEndListener) {\n // this.domEl.rcEndListener();\n // this.domEl = null;\n // }\n // },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setStretchSize();\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n } else if (this.$el.remove) {\n this.$el.remove();\n }\n },\n\n methods: {\n onAlign: function onAlign(popupDomNode, align) {\n var props = this.$props;\n var currentAlignClassName = props.getClassNameFromAlign(align);\n // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n if (this.currentAlignClassName !== currentAlignClassName) {\n this.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = this.getClassName(currentAlignClassName);\n }\n var listeners = getListeners(this);\n listeners.align && listeners.align(popupDomNode, align);\n },\n\n\n // Record size if stretch needed\n setStretchSize: function setStretchSize() {\n var _$props = this.$props,\n stretch = _$props.stretch,\n getRootDomNode = _$props.getRootDomNode,\n visible = _$props.visible;\n var _$data = this.$data,\n stretchChecked = _$data.stretchChecked,\n targetHeight = _$data.targetHeight,\n targetWidth = _$data.targetWidth;\n\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n this.setState({ stretchChecked: false });\n }\n return;\n }\n\n var $ele = getRootDomNode();\n if (!$ele) return;\n\n var height = $ele.offsetHeight;\n var width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n this.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width\n });\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.popupInstance ? this.$refs.popupInstance.$el : null;\n },\n getTargetElement: function getTargetElement() {\n return this.$props.getRootDomNode();\n },\n\n\n // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n getAlignTarget: function getAlignTarget() {\n var point = this.$props.point;\n\n if (point) {\n return point;\n }\n return this.getTargetElement;\n },\n getMaskTransitionName: function getMaskTransitionName() {\n var props = this.$props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n },\n getTransitionName: function getTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n var animation = props.animation;\n if (!transitionName) {\n if (typeof animation === 'string') {\n transitionName = '' + animation;\n } else if (animation && animation.props && animation.props.name) {\n transitionName = animation.props.name;\n }\n }\n return transitionName;\n },\n getClassName: function getClassName(currentAlignClassName) {\n return this.$props.prefixCls + ' ' + this.$props.popupClassName + ' ' + currentAlignClassName;\n },\n getPopupElement: function getPopupElement() {\n var _this3 = this;\n\n var h = this.$createElement;\n var props = this.$props,\n $slots = this.$slots,\n getTransitionName = this.getTransitionName;\n var _$data2 = this.$data,\n stretchChecked = _$data2.stretchChecked,\n targetHeight = _$data2.targetHeight,\n targetWidth = _$data2.targetWidth;\n var align = props.align,\n visible = props.visible,\n prefixCls = props.prefixCls,\n animation = props.animation,\n popupStyle = props.popupStyle,\n getClassNameFromAlign = props.getClassNameFromAlign,\n destroyPopupOnHide = props.destroyPopupOnHide,\n stretch = props.stretch;\n\n var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align));\n // const hiddenClassName = `${prefixCls}-hidden`\n if (!visible) {\n this.currentAlignClassName = null;\n }\n var sizeStyle = {};\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = typeof targetHeight === 'number' ? targetHeight + 'px' : targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = typeof targetHeight === 'number' ? targetHeight + 'px' : targetHeight;\n }\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = typeof targetWidth === 'number' ? targetWidth + 'px' : targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = typeof targetWidth === 'number' ? targetWidth + 'px' : targetWidth;\n }\n // Delay force align to makes ui smooth\n if (!stretchChecked) {\n // sizeStyle.visibility = 'hidden'\n setTimeout(function () {\n if (_this3.$refs.alignInstance) {\n _this3.$refs.alignInstance.forceAlign();\n }\n }, 0);\n }\n }\n var popupInnerProps = {\n props: {\n prefixCls: prefixCls,\n visible: visible\n // hiddenClassName,\n },\n 'class': className,\n on: getListeners(this),\n ref: 'popupInstance',\n style: _extends({}, sizeStyle, popupStyle, this.getZIndexStyle())\n };\n var transitionProps = {\n props: {\n appear: true,\n css: false\n }\n };\n var transitionName = getTransitionName();\n var useTransition = !!transitionName;\n var transitionEvent = {\n beforeEnter: function beforeEnter() {\n // el.style.display = el.__vOriginalDisplay\n // this.$refs.alignInstance.forceAlign();\n },\n enter: function enter(el, done) {\n // render 后 vue 会移除通过animate动态添加的 class导致动画闪动,延迟两帧添加动画class,可以进一步定位或者重写 transition 组件\n _this3.$nextTick(function () {\n if (_this3.$refs.alignInstance) {\n _this3.$refs.alignInstance.$nextTick(function () {\n _this3.domEl = el;\n animate(el, transitionName + '-enter', done);\n });\n } else {\n done();\n }\n });\n },\n beforeLeave: function beforeLeave() {\n _this3.domEl = null;\n },\n leave: function leave(el, done) {\n animate(el, transitionName + '-leave', done);\n }\n };\n\n if ((typeof animation === 'undefined' ? 'undefined' : _typeof(animation)) === 'object') {\n useTransition = true;\n\n var _animation$on = animation.on,\n on = _animation$on === undefined ? {} : _animation$on,\n _animation$props = animation.props,\n _props = _animation$props === undefined ? {} : _animation$props;\n\n transitionProps.props = _extends({}, transitionProps.props, _props);\n transitionProps.on = _extends({}, transitionEvent, on);\n } else {\n transitionProps.on = transitionEvent;\n }\n if (!useTransition) {\n transitionProps = {};\n }\n if (destroyPopupOnHide) {\n return h(\n 'transition',\n transitionProps,\n [visible ? h(\n Align,\n {\n attrs: {\n target: this.getAlignTarget(),\n\n monitorWindowResize: true,\n align: align\n },\n key: 'popup',\n ref: 'alignInstance', on: {\n 'align': this.onAlign\n }\n },\n [h(\n PopupInner,\n popupInnerProps,\n [$slots['default']]\n )]\n ) : null]\n );\n }\n return h(\n 'transition',\n transitionProps,\n [h(\n Align,\n {\n directives: [{\n name: 'show',\n value: visible\n }],\n attrs: {\n target: this.getAlignTarget(),\n\n monitorWindowResize: true,\n disabled: !visible,\n align: align\n },\n key: 'popup',\n ref: 'alignInstance', on: {\n 'align': this.onAlign\n }\n },\n [h(\n PopupInner,\n popupInnerProps,\n [$slots['default']]\n )]\n )]\n );\n },\n getZIndexStyle: function getZIndexStyle() {\n var style = {};\n var props = this.$props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n },\n getMaskElement: function getMaskElement() {\n var h = this.$createElement;\n\n var props = this.$props;\n var maskElement = null;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = h(LazyRenderBox, {\n directives: [{\n name: 'show',\n value: props.visible\n }],\n\n style: this.getZIndexStyle(),\n key: 'mask',\n 'class': props.prefixCls + '-mask',\n attrs: { visible: props.visible\n }\n });\n if (maskTransition) {\n maskElement = h(\n 'transition',\n {\n attrs: { appear: true, name: maskTransition }\n },\n [maskElement]\n );\n }\n }\n return maskElement;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var getMaskElement = this.getMaskElement,\n getPopupElement = this.getPopupElement;\n\n return h('div', [getMaskElement(), getPopupElement()]);\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\n\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\nexport function noop() {}","import _extends from 'babel-runtime/helpers/extends';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport PropTypes from '../_util/vue-types';\nimport contains from '../vc-util/Dom/contains';\nimport { hasProp, getComponentFromProp, getDataEvents, filterEmpty, getListeners } from '../_util/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport warning from '../_util/warning';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getAlignPopupClassName, noop } from './utils';\nimport BaseMixin from '../_util/BaseMixin';\nimport { cloneElement } from '../_util/vnode';\nimport ContainerRender from '../_util/ContainerRender';\n\nVue.use(ref, { name: 'ant-ref' });\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\nvar ALL_HANDLERS = ['click', 'mousedown', 'touchstart', 'mouseenter', 'mouseleave', 'focus', 'blur', 'contextmenu'];\n\nexport default {\n name: 'Trigger',\n mixins: [BaseMixin],\n props: {\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).def([]),\n showAction: PropTypes.any.def([]),\n hideAction: PropTypes.any.def([]),\n getPopupClassNameFromAlign: PropTypes.any.def(returnEmptyString),\n // onPopupVisibleChange: PropTypes.func.def(noop),\n afterPopupVisibleChange: PropTypes.func.def(noop),\n popup: PropTypes.any,\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n prefixCls: PropTypes.string.def('rc-trigger-popup'),\n popupClassName: PropTypes.string.def(''),\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n popupAnimation: PropTypes.any,\n mouseEnterDelay: PropTypes.number.def(0),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n zIndex: PropTypes.number,\n focusDelay: PropTypes.number.def(0),\n blurDelay: PropTypes.number.def(0.15),\n getPopupContainer: PropTypes.func,\n getDocument: PropTypes.func.def(returnDocument),\n forceRender: PropTypes.bool,\n destroyPopupOnHide: PropTypes.bool.def(false),\n mask: PropTypes.bool.def(false),\n maskClosable: PropTypes.bool.def(true),\n // onPopupAlign: PropTypes.func.def(noop),\n popupAlign: PropTypes.object.def(function () {\n return {};\n }),\n popupVisible: PropTypes.bool,\n defaultPopupVisible: PropTypes.bool.def(false),\n maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n alignPoint: PropTypes.bool // Maybe we can support user pass position in the future\n },\n provide: function provide() {\n return {\n vcTriggerContext: this\n };\n },\n\n inject: {\n vcTriggerContext: { 'default': function _default() {\n return {};\n } },\n savePopupRef: { 'default': function _default() {\n return noop;\n } },\n dialogContext: { 'default': function _default() {\n return null;\n } }\n },\n data: function data() {\n var _this = this;\n\n var props = this.$props;\n var popupVisible = void 0;\n if (hasProp(this, 'popupVisible')) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return {\n prevPopupVisible: popupVisible,\n sPopupVisible: popupVisible,\n point: null\n };\n },\n\n watch: {\n popupVisible: function popupVisible(val) {\n if (val !== undefined) {\n this.prevPopupVisible = this.sPopupVisible;\n this.sPopupVisible = val;\n }\n }\n },\n deactivated: function deactivated() {\n this.setPopupVisible(false);\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.renderComponent(null);\n _this2.updatedCal();\n });\n },\n updated: function updated() {\n var _this3 = this;\n\n var triggerAfterPopupVisibleChange = function triggerAfterPopupVisibleChange() {\n if (_this3.sPopupVisible !== _this3.prevPopupVisible) {\n _this3.afterPopupVisibleChange(_this3.sPopupVisible);\n }\n _this3.prevPopupVisible = _this3.sPopupVisible;\n };\n this.renderComponent(null, triggerAfterPopupVisibleChange);\n this.$nextTick(function () {\n _this3.updatedCal();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n },\n\n methods: {\n updatedCal: function updatedCal() {\n var props = this.$props;\n var state = this.$data;\n\n // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n if (state.sPopupVisible) {\n var currentDocument = void 0;\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextmenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n }\n // always hide on mobile\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n }\n // close popup when trigger type contains 'onContextmenu' and document is scrolling.\n if (!this.contextmenuOutsideHandler1 && this.isContextmenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextmenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextmenuClose);\n }\n // close popup when trigger type contains 'onContextmenu' and window is blur.\n if (!this.contextmenuOutsideHandler2 && this.isContextmenuToShow()) {\n this.contextmenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextmenuClose);\n }\n } else {\n this.clearOutsideHandler();\n }\n },\n onMouseenter: function onMouseenter(e) {\n var mouseEnterDelay = this.$props.mouseEnterDelay;\n\n this.fireEvents('mouseenter', e);\n this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n },\n onMouseMove: function onMouseMove(e) {\n this.fireEvents('mousemove', e);\n this.setPoint(e);\n },\n onMouseleave: function onMouseleave(e) {\n this.fireEvents('mouseleave', e);\n this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n },\n onPopupMouseenter: function onPopupMouseenter() {\n this.clearDelayTimer();\n },\n onPopupMouseleave: function onPopupMouseleave(e) {\n if (e && e.relatedTarget && !e.relatedTarget.setTimeout && this._component && this._component.getPopupDomNode && contains(this._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n },\n onFocus: function onFocus(e) {\n this.fireEvents('focus', e);\n // incase focusin and focusout\n this.clearDelayTimer();\n if (this.isFocusToShow()) {\n this.focusTime = Date.now();\n this.delaySetPopupVisible(true, this.$props.focusDelay);\n }\n },\n onMousedown: function onMousedown(e) {\n this.fireEvents('mousedown', e);\n this.preClickTime = Date.now();\n },\n onTouchstart: function onTouchstart(e) {\n this.fireEvents('touchstart', e);\n this.preTouchTime = Date.now();\n },\n onBlur: function onBlur(e) {\n if (!contains(e.target, e.relatedTarget || document.activeElement)) {\n this.fireEvents('blur', e);\n this.clearDelayTimer();\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.$props.blurDelay);\n }\n }\n },\n onContextmenu: function onContextmenu(e) {\n e.preventDefault();\n this.fireEvents('contextmenu', e);\n this.setPopupVisible(true, e);\n },\n onContextmenuClose: function onContextmenuClose() {\n if (this.isContextmenuToShow()) {\n this.close();\n }\n },\n onClick: function onClick(event) {\n this.fireEvents('click', event);\n // focus will trigger click\n if (this.focusTime) {\n var preTime = void 0;\n if (this.preClickTime && this.preTouchTime) {\n preTime = Math.min(this.preClickTime, this.preTouchTime);\n } else if (this.preClickTime) {\n preTime = this.preClickTime;\n } else if (this.preTouchTime) {\n preTime = this.preTouchTime;\n }\n if (Math.abs(preTime - this.focusTime) < 20) {\n return;\n }\n this.focusTime = 0;\n }\n this.preClickTime = 0;\n this.preTouchTime = 0;\n // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n if (this.isClickToShow() && (this.isClickToHide() || this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n if (event && event.domEvent) {\n event.domEvent.preventDefault();\n }\n var nextVisible = !this.$data.sPopupVisible;\n if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n this.setPopupVisible(!this.$data.sPopupVisible, event);\n }\n },\n onPopupMouseDown: function onPopupMouseDown() {\n var _this4 = this;\n\n var _vcTriggerContext = this.vcTriggerContext,\n vcTriggerContext = _vcTriggerContext === undefined ? {} : _vcTriggerContext;\n\n this.hasPopupMouseDown = true;\n\n clearTimeout(this.mouseDownTimeout);\n this.mouseDownTimeout = setTimeout(function () {\n _this4.hasPopupMouseDown = false;\n }, 0);\n\n if (vcTriggerContext.onPopupMouseDown) {\n vcTriggerContext.onPopupMouseDown.apply(vcTriggerContext, arguments);\n }\n },\n onDocumentClick: function onDocumentClick(event) {\n if (this.$props.mask && !this.$props.maskClosable) {\n return;\n }\n var target = event.target;\n var root = this.$el;\n if (!contains(root, target) && !this.hasPopupMouseDown) {\n this.close();\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n },\n getRootDomNode: function getRootDomNode() {\n return this.$el;\n // return this.$el.children[0] || this.$el\n },\n handleGetPopupClassFromAlign: function handleGetPopupClassFromAlign(align) {\n var className = [];\n var props = this.$props;\n var popupPlacement = props.popupPlacement,\n builtinPlacements = props.builtinPlacements,\n prefixCls = props.prefixCls,\n alignPoint = props.alignPoint,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n },\n getPopupAlign: function getPopupAlign() {\n var props = this.$props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n },\n savePopup: function savePopup(node) {\n this._component = node;\n this.savePopupRef(node);\n },\n getComponent: function getComponent() {\n var h = this.$createElement;\n\n var self = this;\n var mouseProps = {};\n if (this.isMouseEnterToShow()) {\n mouseProps.mouseenter = self.onPopupMouseenter;\n }\n if (this.isMouseLeaveToHide()) {\n mouseProps.mouseleave = self.onPopupMouseleave;\n }\n mouseProps.mousedown = this.onPopupMouseDown;\n mouseProps.touchstart = this.onPopupMouseDown;\n var handleGetPopupClassFromAlign = self.handleGetPopupClassFromAlign,\n getRootDomNode = self.getRootDomNode,\n getContainer = self.getContainer;\n var _self$$props = self.$props,\n prefixCls = _self$$props.prefixCls,\n destroyPopupOnHide = _self$$props.destroyPopupOnHide,\n popupClassName = _self$$props.popupClassName,\n action = _self$$props.action,\n popupAnimation = _self$$props.popupAnimation,\n popupTransitionName = _self$$props.popupTransitionName,\n popupStyle = _self$$props.popupStyle,\n mask = _self$$props.mask,\n maskAnimation = _self$$props.maskAnimation,\n maskTransitionName = _self$$props.maskTransitionName,\n zIndex = _self$$props.zIndex,\n stretch = _self$$props.stretch,\n alignPoint = _self$$props.alignPoint;\n var _$data = this.$data,\n sPopupVisible = _$data.sPopupVisible,\n point = _$data.point;\n\n var align = this.getPopupAlign();\n var popupProps = {\n props: {\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: sPopupVisible,\n point: alignPoint && point,\n action: action,\n align: align,\n animation: popupAnimation,\n getClassNameFromAlign: handleGetPopupClassFromAlign,\n stretch: stretch,\n getRootDomNode: getRootDomNode,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n getContainer: getContainer,\n popupClassName: popupClassName,\n popupStyle: popupStyle\n },\n on: _extends({\n align: getListeners(this).popupAlign || noop\n }, mouseProps),\n directives: [{\n name: 'ant-ref',\n value: this.savePopup\n }]\n };\n return h(\n Popup,\n popupProps,\n [getComponentFromProp(self, 'popup')]\n );\n },\n getContainer: function getContainer() {\n var props = this.$props,\n dialogContext = this.dialogContext;\n\n var popupContainer = document.createElement('div');\n // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(this.$el, dialogContext) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n this.popupContainer = popupContainer;\n return popupContainer;\n },\n setPopupVisible: function setPopupVisible(sPopupVisible, event) {\n var alignPoint = this.alignPoint,\n prevPopupVisible = this.sPopupVisible;\n\n this.clearDelayTimer();\n if (prevPopupVisible !== sPopupVisible) {\n if (!hasProp(this, 'popupVisible')) {\n this.setState({\n sPopupVisible: sPopupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n var listeners = getListeners(this);\n listeners.popupVisibleChange && listeners.popupVisibleChange(sPopupVisible);\n }\n // Always record the point position since mouseEnterDelay will delay the show\n if (alignPoint && event) {\n this.setPoint(event);\n }\n },\n setPoint: function setPoint(point) {\n var alignPoint = this.$props.alignPoint;\n\n if (!alignPoint || !point) return;\n\n this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n },\n delaySetPopupVisible: function delaySetPopupVisible(visible, delayS, event) {\n var _this5 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n var point = event ? { pageX: event.pageX, pageY: event.pageY } : null;\n this.delayTimer = requestAnimationTimeout(function () {\n _this5.setPopupVisible(visible, point);\n _this5.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n },\n clearDelayTimer: function clearDelayTimer() {\n if (this.delayTimer) {\n cancelAnimationTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n },\n clearOutsideHandler: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextmenuOutsideHandler1) {\n this.contextmenuOutsideHandler1.remove();\n this.contextmenuOutsideHandler1 = null;\n }\n\n if (this.contextmenuOutsideHandler2) {\n this.contextmenuOutsideHandler2.remove();\n this.contextmenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n },\n createTwoChains: function createTwoChains(event) {\n var fn = function fn() {};\n var events = getListeners(this);\n if (this.childOriginEvents[event] && events[event]) {\n return this['fire' + event];\n }\n fn = this.childOriginEvents[event] || events[event] || fn;\n return fn;\n },\n isClickToShow: function isClickToShow() {\n var _$props = this.$props,\n action = _$props.action,\n showAction = _$props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n },\n isContextmenuToShow: function isContextmenuToShow() {\n var _$props2 = this.$props,\n action = _$props2.action,\n showAction = _$props2.showAction;\n\n return action.indexOf('contextmenu') !== -1 || showAction.indexOf('contextmenu') !== -1;\n },\n isClickToHide: function isClickToHide() {\n var _$props3 = this.$props,\n action = _$props3.action,\n hideAction = _$props3.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n },\n isMouseEnterToShow: function isMouseEnterToShow() {\n var _$props4 = this.$props,\n action = _$props4.action,\n showAction = _$props4.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseenter') !== -1;\n },\n isMouseLeaveToHide: function isMouseLeaveToHide() {\n var _$props5 = this.$props,\n action = _$props5.action,\n hideAction = _$props5.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseleave') !== -1;\n },\n isFocusToShow: function isFocusToShow() {\n var _$props6 = this.$props,\n action = _$props6.action,\n showAction = _$props6.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n },\n isBlurToHide: function isBlurToHide() {\n var _$props7 = this.$props,\n action = _$props7.action,\n hideAction = _$props7.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n },\n forcePopupAlign: function forcePopupAlign() {\n if (this.$data.sPopupVisible && this._component && this._component.$refs.alignInstance) {\n this._component.$refs.alignInstance.forceAlign();\n }\n },\n fireEvents: function fireEvents(type, e) {\n if (this.childOriginEvents[type]) {\n this.childOriginEvents[type](e);\n }\n this.__emit(type, e);\n },\n close: function close() {\n this.setPopupVisible(false);\n }\n },\n render: function render() {\n var _this6 = this;\n\n var h = arguments[0];\n var sPopupVisible = this.sPopupVisible;\n\n var children = filterEmpty(this.$slots['default']);\n var _$props8 = this.$props,\n forceRender = _$props8.forceRender,\n alignPoint = _$props8.alignPoint;\n\n\n if (children.length > 1) {\n warning(false, 'Trigger $slots.default.length > 1, just support only one default', true);\n }\n var child = children[0];\n this.childOriginEvents = getDataEvents(child);\n var newChildProps = {\n props: {},\n nativeOn: {},\n key: 'trigger'\n };\n\n if (this.isContextmenuToShow()) {\n newChildProps.nativeOn.contextmenu = this.onContextmenu;\n } else {\n newChildProps.nativeOn.contextmenu = this.createTwoChains('contextmenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.nativeOn.click = this.onClick;\n newChildProps.nativeOn.mousedown = this.onMousedown;\n newChildProps.nativeOn.touchstart = this.onTouchstart;\n } else {\n newChildProps.nativeOn.click = this.createTwoChains('click');\n newChildProps.nativeOn.mousedown = this.createTwoChains('mousedown');\n newChildProps.nativeOn.touchstart = this.createTwoChains('onTouchstart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.nativeOn.mouseenter = this.onMouseenter;\n if (alignPoint) {\n newChildProps.nativeOn.mousemove = this.onMouseMove;\n }\n } else {\n newChildProps.nativeOn.mouseenter = this.createTwoChains('mouseenter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.nativeOn.mouseleave = this.onMouseleave;\n } else {\n newChildProps.nativeOn.mouseleave = this.createTwoChains('mouseleave');\n }\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.nativeOn.focus = this.onFocus;\n newChildProps.nativeOn.blur = this.onBlur;\n } else {\n newChildProps.nativeOn.focus = this.createTwoChains('focus');\n newChildProps.nativeOn.blur = function (e) {\n if (e && (!e.relatedTarget || !contains(e.target, e.relatedTarget))) {\n _this6.createTwoChains('blur')(e);\n }\n };\n }\n\n this.trigger = cloneElement(child, newChildProps);\n\n return h(ContainerRender, {\n attrs: {\n parent: this,\n visible: sPopupVisible,\n autoMount: false,\n forceRender: forceRender,\n getComponent: this.getComponent,\n getContainer: this.getContainer,\n children: function children(_ref) {\n var renderComponent = _ref.renderComponent;\n\n _this6.renderComponent = renderComponent;\n return _this6.trigger;\n }\n }\n });\n }\n};","// based on rc-trigger 2.6.5\nimport Trigger from './Trigger';\nexport default Trigger;","function getError(option, xhr) {\n var msg = 'cannot ' + option.method + ' ' + option.action + ' ' + xhr.status + '\\'';\n var err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\n\nfunction getBody(xhr) {\n var text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\n// option {\n// onProgress: (event: { percent: number }): void,\n// onError: (event: Error, body?: Object): void,\n// onSuccess: (body: Object): void,\n// data: Object,\n// filename: String,\n// file: File,\n// withCredentials: Boolean,\n// action: String,\n// headers: Object,\n// }\nexport default function upload(option) {\n var xhr = new window.XMLHttpRequest();\n\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n option.onProgress(e);\n };\n }\n\n var formData = new window.FormData();\n\n if (option.data) {\n Object.keys(option.data).forEach(function (key) {\n var value = option.data[key];\n // support key-value array data\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(key + '[]', item);\n });\n return;\n }\n\n formData.append(key, option.data[key]);\n });\n }\n\n formData.append(option.filename, option.file);\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr), xhr);\n };\n\n xhr.open(option.method, option.action, true);\n\n // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n var headers = option.headers || {};\n\n // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n for (var h in headers) {\n if (headers.hasOwnProperty(h) && headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n }\n xhr.send(formData);\n\n return {\n abort: function abort() {\n xhr.abort();\n }\n };\n}","var now = +new Date();\nvar index = 0;\n\nexport default function uid() {\n return \"vc-upload-\" + now + \"-\" + ++index;\n}","function endsWith(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n}\n\nexport default (function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = file.type || '';\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim();\n if (validType.charAt(0) === '.') {\n return endsWith(fileName.toLowerCase(), validType.toLowerCase());\n } else if (/\\/\\*$/.test(validType)) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n return mimeType === validType;\n });\n }\n return true;\n});","function loopFiles(item, callback) {\n var dirReader = item.createReader();\n var fileList = [];\n\n function sequence() {\n dirReader.readEntries(function (entries) {\n var entryList = Array.prototype.slice.apply(entries);\n fileList = fileList.concat(entryList);\n\n // Check if all the file has been viewed\n var isFinished = !entryList.length;\n\n if (isFinished) {\n callback(fileList);\n } else {\n sequence();\n }\n });\n }\n\n sequence();\n}\n\nvar traverseFileTree = function traverseFileTree(files, callback, isAccepted) {\n var _traverseFileTree = function _traverseFileTree(item, path) {\n path = path || '';\n if (item.isFile) {\n item.file(function (file) {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n });\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n callback([file]);\n }\n });\n } else if (item.isDirectory) {\n loopFiles(item, function (entries) {\n entries.forEach(function (entryItem) {\n _traverseFileTree(entryItem, '' + path + item.name + '/');\n });\n });\n }\n };\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var file = _step.value;\n\n _traverseFileTree(file.webkitGetAsEntry());\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n};\n\nexport default traverseFileTree;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport partition from 'lodash/partition';\nimport classNames from 'classnames';\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\nimport { getListeners } from '../../_util/props-util';\n\nvar upLoadPropTypes = {\n componentTag: PropTypes.string,\n // style: PropTypes.object,\n prefixCls: PropTypes.string,\n name: PropTypes.string,\n // className: PropTypes.string,\n multiple: PropTypes.bool,\n directory: PropTypes.bool,\n disabled: PropTypes.bool,\n accept: PropTypes.string,\n // children: PropTypes.any,\n // onStart: PropTypes.func,\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n headers: PropTypes.object,\n beforeUpload: PropTypes.func,\n customRequest: PropTypes.func,\n // onProgress: PropTypes.func,\n withCredentials: PropTypes.bool,\n openFileDialogOnClick: PropTypes.bool,\n transformFile: PropTypes.func,\n method: PropTypes.string\n};\n\nvar AjaxUploader = {\n inheritAttrs: false,\n name: 'ajaxUploader',\n mixins: [BaseMixin],\n props: upLoadPropTypes,\n data: function data() {\n this.reqs = {};\n return {\n uid: getUid()\n };\n },\n mounted: function mounted() {\n this._isMounted = true;\n },\n beforeDestroy: function beforeDestroy() {\n this._isMounted = false;\n this.abort();\n },\n\n methods: {\n onChange: function onChange(e) {\n var files = e.target.files;\n this.uploadFiles(files);\n this.reset();\n },\n onClick: function onClick() {\n var el = this.$refs.fileInputRef;\n if (!el) {\n return;\n }\n el.click();\n },\n onKeyDown: function onKeyDown(e) {\n if (e.key === 'Enter') {\n this.onClick();\n }\n },\n onFileDrop: function onFileDrop(e) {\n var _this = this;\n\n var multiple = this.$props.multiple;\n\n e.preventDefault();\n if (e.type === 'dragover') {\n return;\n }\n if (this.directory) {\n traverseFileTree(e.dataTransfer.items, this.uploadFiles, function (_file) {\n return attrAccept(_file, _this.accept);\n });\n } else {\n var files = partition(Array.prototype.slice.call(e.dataTransfer.files), function (file) {\n return attrAccept(file, _this.accept);\n });\n var successFiles = files[0];\n var errorFiles = files[1];\n if (multiple === false) {\n successFiles = successFiles.slice(0, 1);\n }\n this.uploadFiles(successFiles);\n\n if (errorFiles.length) {\n this.$emit('reject', errorFiles);\n }\n }\n },\n uploadFiles: function uploadFiles(files) {\n var _this2 = this;\n\n var postFiles = Array.prototype.slice.call(files);\n postFiles.map(function (file) {\n file.uid = getUid();\n return file;\n }).forEach(function (file) {\n _this2.upload(file, postFiles);\n });\n },\n upload: function upload(file, fileList) {\n var _this3 = this;\n\n if (!this.beforeUpload) {\n // always async in case use react state to keep fileList\n return setTimeout(function () {\n return _this3.post(file);\n }, 0);\n }\n\n var before = this.beforeUpload(file, fileList);\n if (before && before.then) {\n before.then(function (processedFile) {\n var processedFileType = Object.prototype.toString.call(processedFile);\n if (processedFileType === '[object File]' || processedFileType === '[object Blob]') {\n return _this3.post(processedFile);\n }\n return _this3.post(file);\n })['catch'](function (e) {\n console && console.log(e); // eslint-disable-line\n });\n } else if (before !== false) {\n setTimeout(function () {\n return _this3.post(file);\n }, 0);\n }\n },\n post: function post(file) {\n var _this4 = this;\n\n if (!this._isMounted) {\n return;\n }\n var props = this.$props;\n var data = props.data;\n var _props$transformFile = props.transformFile,\n transformFile = _props$transformFile === undefined ? function (originFile) {\n return originFile;\n } : _props$transformFile;\n\n\n new Promise(function (resolve) {\n var action = _this4.action;\n\n if (typeof action === 'function') {\n return resolve(action(file));\n }\n resolve(action);\n }).then(function (action) {\n var uid = file.uid;\n\n var request = _this4.customRequest || defaultRequest;\n var transform = Promise.resolve(transformFile(file))['catch'](function (e) {\n console.error(e); // eslint-disable-line no-console\n });\n transform.then(function (transformedFile) {\n if (typeof data === 'function') {\n data = data(file);\n }\n\n var requestOption = {\n action: action,\n filename: _this4.name,\n data: data,\n file: transformedFile,\n headers: _this4.headers,\n withCredentials: _this4.withCredentials,\n method: props.method || 'post',\n onProgress: function onProgress(e) {\n _this4.$emit('progress', e, file);\n },\n onSuccess: function onSuccess(ret, xhr) {\n delete _this4.reqs[uid];\n _this4.$emit('success', ret, file, xhr);\n },\n onError: function onError(err, ret) {\n delete _this4.reqs[uid];\n _this4.$emit('error', err, ret, file);\n }\n };\n _this4.reqs[uid] = request(requestOption);\n _this4.$emit('start', file);\n });\n });\n },\n reset: function reset() {\n this.setState({\n uid: getUid()\n });\n },\n abort: function abort(file) {\n var reqs = this.reqs;\n\n if (file) {\n var uid = file;\n if (file && file.uid) {\n uid = file.uid;\n }\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(function (uid) {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n\n delete reqs[uid];\n });\n }\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var $props = this.$props,\n $attrs = this.$attrs;\n var Tag = $props.componentTag,\n prefixCls = $props.prefixCls,\n disabled = $props.disabled,\n multiple = $props.multiple,\n accept = $props.accept,\n directory = $props.directory,\n openFileDialogOnClick = $props.openFileDialogOnClick;\n\n var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _classNames));\n var events = disabled ? {} : {\n click: openFileDialogOnClick ? this.onClick : function () {},\n keydown: openFileDialogOnClick ? this.onKeyDown : function () {},\n drop: this.onFileDrop,\n dragover: this.onFileDrop\n };\n var tagProps = {\n on: _extends({}, getListeners(this), events),\n attrs: {\n role: 'button',\n tabIndex: disabled ? null : '0'\n },\n 'class': cls\n };\n return h(\n Tag,\n tagProps,\n [h('input', {\n attrs: {\n id: $attrs.id,\n type: 'file',\n\n accept: accept,\n directory: directory ? 'directory' : null,\n webkitdirectory: directory ? 'webkitdirectory' : null,\n multiple: multiple\n },\n ref: 'fileInputRef',\n on: {\n 'click': function click(e) {\n return e.stopPropagation();\n },\n 'change': this.onChange\n },\n // https://github.com/ant-design/ant-design/issues/19948\n key: this.uid,\n style: { display: 'none' } }), this.$slots['default']]\n );\n }\n};\n\nexport default AjaxUploader;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport classNames from 'classnames';\nimport getUid from './uid';\nimport warning from '../../_util/warning';\n\nvar IFRAME_STYLE = {\n position: 'absolute',\n top: 0,\n opacity: 0,\n filter: 'alpha(opacity=0)',\n left: 0,\n zIndex: 9999\n};\n\n// diferent from AjaxUpload, can only upload on at one time, serial seriously\nvar IframeUploader = {\n mixins: [BaseMixin],\n props: {\n componentTag: PropTypes.string,\n // style: PropTypes.object,\n disabled: PropTypes.bool,\n prefixCls: PropTypes.string,\n // className: PropTypes.string,\n accept: PropTypes.string,\n // onStart: PropTypes.func,\n multiple: PropTypes.bool,\n // children: PropTypes.any,\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n name: PropTypes.string\n },\n data: function data() {\n this.file = {};\n return {\n uploading: false\n };\n },\n\n methods: {\n onLoad: function onLoad() {\n if (!this.uploading) {\n return;\n }\n var file = this.file;\n\n var response = void 0;\n try {\n var doc = this.getIframeDocument();\n var script = doc.getElementsByTagName('script')[0];\n if (script && script.parentNode === doc.body) {\n doc.body.removeChild(script);\n }\n response = doc.body.innerHTML;\n this.$emit('success', response, file);\n } catch (err) {\n warning(false, 'cross domain error for Upload. Maybe server should return document.domain script. see Note from https://github.com/react-component/upload');\n response = 'cross-domain';\n this.$emit('error', err, null, file);\n }\n this.endUpload();\n },\n onChange: function onChange() {\n var _this = this;\n\n var target = this.getFormInputNode();\n // ie8/9 don't support FileList Object\n // http://stackoverflow.com/questions/12830058/ie8-input-type-file-get-files\n var file = this.file = {\n uid: getUid(),\n name: target.value && target.value.substring(target.value.lastIndexOf('\\\\') + 1, target.value.length)\n };\n this.startUpload();\n var props = this.$props;\n\n if (!props.beforeUpload) {\n return this.post(file);\n }\n var before = props.beforeUpload(file);\n if (before && before.then) {\n before.then(function () {\n _this.post(file);\n }, function () {\n _this.endUpload();\n });\n } else if (before !== false) {\n this.post(file);\n } else {\n this.endUpload();\n }\n },\n getIframeNode: function getIframeNode() {\n return this.$refs.iframeRef;\n },\n getIframeDocument: function getIframeDocument() {\n return this.getIframeNode().contentDocument;\n },\n getFormNode: function getFormNode() {\n return this.getIframeDocument().getElementById('form');\n },\n getFormInputNode: function getFormInputNode() {\n return this.getIframeDocument().getElementById('input');\n },\n getFormDataNode: function getFormDataNode() {\n return this.getIframeDocument().getElementById('data');\n },\n getFileForMultiple: function getFileForMultiple(file) {\n return this.multiple ? [file] : file;\n },\n getIframeHTML: function getIframeHTML(domain) {\n var domainScript = '';\n var domainInput = '';\n if (domain) {\n var script = 'script';\n domainScript = '<' + script + '>document.domain=\"' + domain + '\";';\n domainInput = '';\n }\n return '\\n \\n \\n \\n \\n \\n ' + domainScript + '\\n \\n \\n
\\n \\n ' + domainInput + '\\n \\n
\\n \\n \\n ';\n },\n initIframeSrc: function initIframeSrc() {\n if (this.domain) {\n this.getIframeNode().src = 'javascript:void((function(){\\n var d = document;\\n d.open();\\n d.domain=\\'' + this.domain + '\\';\\n d.write(\\'\\');\\n d.close();\\n })())';\n }\n },\n initIframe: function initIframe() {\n var iframeNode = this.getIframeNode();\n var win = iframeNode.contentWindow;\n var doc = void 0;\n this.domain = this.domain || '';\n this.initIframeSrc();\n try {\n doc = win.document;\n } catch (e) {\n this.domain = document.domain;\n this.initIframeSrc();\n win = iframeNode.contentWindow;\n doc = win.document;\n }\n doc.open('text/html', 'replace');\n doc.write(this.getIframeHTML(this.domain));\n doc.close();\n this.getFormInputNode().onchange = this.onChange;\n },\n endUpload: function endUpload() {\n if (this.uploading) {\n this.file = {};\n // hack avoid batch\n this.uploading = false;\n this.setState({\n uploading: false\n });\n this.initIframe();\n }\n },\n startUpload: function startUpload() {\n if (!this.uploading) {\n this.uploading = true;\n this.setState({\n uploading: true\n });\n }\n },\n updateIframeWH: function updateIframeWH() {\n var rootNode = this.$el;\n var iframeNode = this.getIframeNode();\n iframeNode.style.height = rootNode.offsetHeight + 'px';\n iframeNode.style.width = rootNode.offsetWidth + 'px';\n },\n abort: function abort(file) {\n if (file) {\n var uid = file;\n if (file && file.uid) {\n uid = file.uid;\n }\n if (uid === this.file.uid) {\n this.endUpload();\n }\n } else {\n this.endUpload();\n }\n },\n post: function post(file) {\n var _this2 = this;\n\n var formNode = this.getFormNode();\n var dataSpan = this.getFormDataNode();\n var data = this.$props.data;\n\n if (typeof data === 'function') {\n data = data(file);\n }\n var inputs = document.createDocumentFragment();\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var input = document.createElement('input');\n input.setAttribute('name', key);\n input.value = data[key];\n inputs.appendChild(input);\n }\n }\n dataSpan.appendChild(inputs);\n new Promise(function (resolve) {\n var action = _this2.action;\n\n if (typeof action === 'function') {\n return resolve(action(file));\n }\n resolve(action);\n }).then(function (action) {\n formNode.setAttribute('action', action);\n formNode.submit();\n dataSpan.innerHTML = '';\n _this2.$emit('start', file);\n });\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.updateIframeWH();\n _this3.initIframe();\n });\n },\n updated: function updated() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.updateIframeWH();\n });\n },\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props = this.$props,\n Tag = _$props.componentTag,\n disabled = _$props.disabled,\n prefixCls = _$props.prefixCls;\n\n var iframeStyle = _extends({}, IFRAME_STYLE, {\n display: this.uploading || disabled ? 'none' : ''\n });\n var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _classNames));\n\n return h(\n Tag,\n {\n attrs: { className: cls },\n style: { position: 'relative', zIndex: 0 } },\n [h('iframe', { ref: 'iframeRef', on: {\n 'load': this.onLoad\n },\n style: iframeStyle }), this.$slots['default']]\n );\n }\n};\n\nexport default IframeUploader;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport { initDefaultProps, getListeners } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport AjaxUpload from './AjaxUploader';\nimport IframeUpload from './IframeUploader';\n\nfunction empty() {}\n\nvar uploadProps = {\n componentTag: PropTypes.string,\n prefixCls: PropTypes.string,\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n name: PropTypes.string,\n multipart: PropTypes.bool,\n directory: PropTypes.bool,\n // onError: PropTypes.func,\n // onSuccess: PropTypes.func,\n // onProgress: PropTypes.func,\n // onStart: PropTypes.func,\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n headers: PropTypes.object,\n accept: PropTypes.string,\n multiple: PropTypes.bool,\n disabled: PropTypes.bool,\n beforeUpload: PropTypes.func,\n customRequest: PropTypes.func,\n // onReady: PropTypes.func,\n method: PropTypes.string,\n withCredentials: PropTypes.bool,\n supportServerRender: PropTypes.bool,\n openFileDialogOnClick: PropTypes.bool,\n transformFile: PropTypes.func\n};\nexport default {\n name: 'Upload',\n mixins: [BaseMixin],\n inheritAttrs: false,\n props: initDefaultProps(uploadProps, {\n componentTag: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n // onReady: empty,\n // onStart: empty,\n // onError: empty,\n // onSuccess: empty,\n supportServerRender: false,\n multiple: false,\n beforeUpload: empty,\n withCredentials: false,\n openFileDialogOnClick: true\n }),\n data: function data() {\n return {\n Component: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.supportServerRender) {\n _this.setState({\n Component: _this.getComponent()\n }, function () {\n _this.$emit('ready');\n });\n }\n });\n },\n\n methods: {\n getComponent: function getComponent() {\n return typeof File !== 'undefined' ? AjaxUpload : IframeUpload;\n },\n abort: function abort(file) {\n this.$refs.uploaderRef.abort(file);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var componentProps = {\n props: _extends({}, this.$props),\n on: getListeners(this),\n ref: 'uploaderRef',\n attrs: this.$attrs\n };\n if (this.supportServerRender) {\n var _ComponentUploader = this.Component;\n if (_ComponentUploader) {\n return h(\n _ComponentUploader,\n componentProps,\n [this.$slots['default']]\n );\n }\n return null;\n }\n var ComponentUploader = this.getComponent();\n return h(\n ComponentUploader,\n componentProps,\n [this.$slots['default']]\n );\n }\n};","// export this package's api\nimport Upload from './Upload';\n\nexport default Upload;","// rc-upload 2.9.4\nimport upload from './src';\n\nexport default upload;","import addDOMEventListener from 'add-dom-event-listener';\n\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n return addDOMEventListener(target, eventType, cb, option);\n}","export default function contains(root, n) {\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n\n return false;\n}","/* eslint-disable no-console */\nvar warned = {};\n\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error('Warning: ' + message);\n }\n}\n\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn('Note: ' + message);\n }\n}\n\nexport function resetWarned() {\n warned = {};\n}\n\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\n\nexport default warningOnce;\n/* eslint-enable */","import packageInfo from '../../package.json';\n\nexport default packageInfo.version;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _en_US = require('../../date-picker/locale/en_US');\n\nvar _en_US2 = _interopRequireDefault(_en_US);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _en_US2['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ru_RU = require('../../date-picker/locale/ru_RU');\n\nvar _ru_RU2 = _interopRequireDefault(_ru_RU);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _ru_RU2['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _en_US = require('../../vc-calendar/src/locale/en_US');\n\nvar _en_US2 = _interopRequireDefault(_en_US);\n\nvar _en_US3 = require('../../time-picker/locale/en_US');\n\nvar _en_US4 = _interopRequireDefault(_en_US3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// Merge into a locale object\nvar locale = {\n lang: (0, _extends3['default'])({\n placeholder: 'Select date',\n rangePlaceholder: ['Start date', 'End date']\n }, _en_US2['default']),\n timePickerLocale: (0, _extends3['default'])({}, _en_US4['default'])\n};\n\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexports['default'] = locale;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _ru_RU = require('../../vc-calendar/src/locale/ru_RU');\n\nvar _ru_RU2 = _interopRequireDefault(_ru_RU);\n\nvar _ru_RU3 = require('../../time-picker/locale/ru_RU');\n\nvar _ru_RU4 = _interopRequireDefault(_ru_RU3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Created by Andrey Gayvoronsky on 13/04/16.\n */\n\nvar locale = {\n lang: (0, _extends3['default'])({\n placeholder: 'Выберите дату',\n rangePlaceholder: ['Начальная дата', 'Конечная дата']\n }, _ru_RU2['default']),\n timePickerLocale: (0, _extends3['default'])({}, _ru_RU4['default'])\n};\n\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexports['default'] = locale;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _en_US = require('../vc-pagination/locale/en_US');\n\nvar _en_US2 = _interopRequireDefault(_en_US);\n\nvar _en_US3 = require('../date-picker/locale/en_US');\n\nvar _en_US4 = _interopRequireDefault(_en_US3);\n\nvar _en_US5 = require('../time-picker/locale/en_US');\n\nvar _en_US6 = _interopRequireDefault(_en_US5);\n\nvar _en_US7 = require('../calendar/locale/en_US');\n\nvar _en_US8 = _interopRequireDefault(_en_US7);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n locale: 'en',\n Pagination: _en_US2['default'],\n DatePicker: _en_US4['default'],\n TimePicker: _en_US6['default'],\n Calendar: _en_US8['default'],\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _default = require('./default');\n\nvar _default2 = _interopRequireDefault(_default);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _default2['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ru_RU = require('../vc-pagination/locale/ru_RU');\n\nvar _ru_RU2 = _interopRequireDefault(_ru_RU);\n\nvar _ru_RU3 = require('../date-picker/locale/ru_RU');\n\nvar _ru_RU4 = _interopRequireDefault(_ru_RU3);\n\nvar _ru_RU5 = require('../time-picker/locale/ru_RU');\n\nvar _ru_RU6 = _interopRequireDefault(_ru_RU5);\n\nvar _ru_RU7 = require('../calendar/locale/ru_RU');\n\nvar _ru_RU8 = _interopRequireDefault(_ru_RU7);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n locale: 'ru',\n Pagination: _ru_RU2['default'],\n DatePicker: _ru_RU4['default'],\n TimePicker: _ru_RU6['default'],\n Calendar: _ru_RU8['default'],\n Table: {\n filterTitle: 'Фильтр',\n filterConfirm: 'OK',\n filterReset: 'Сбросить',\n selectAll: 'Выбрать всё',\n selectInvert: 'Инвертировать выбор',\n sortTitle: 'Сортировка'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Отмена',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Отмена'\n },\n Transfer: {\n searchPlaceholder: 'Поиск',\n itemUnit: 'элем.',\n itemsUnit: 'элем.'\n },\n Upload: {\n uploading: 'Загрузка...',\n removeFile: 'Удалить файл',\n uploadError: 'При загрузке произошла ошибка',\n previewFile: 'Предпросмотр файла',\n downloadFile: 'Загрузить файл'\n },\n Empty: {\n description: 'Нет данных'\n },\n Text: {\n edit: 'редактировать',\n copy: 'копировать',\n copied: 'скопировано',\n expand: 'раскрыть'\n },\n PageHeader: {\n back: 'назад'\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar locale = {\n placeholder: 'Select time'\n};\n\nexports['default'] = locale;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Created by Andrey Gayvoronsky on 13/04/16.\n */\nvar locale = {\n placeholder: 'Выберите время'\n};\n\nexports['default'] = locale;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = {\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = {\n today: 'Сегодня',\n now: 'Сейчас',\n backToToday: 'Текущая дата',\n ok: 'Ok',\n clear: 'Очистить',\n month: 'Месяц',\n year: 'Год',\n timeSelect: 'Выбрать время',\n dateSelect: 'Выбрать дату',\n monthSelect: 'Выбрать месяц',\n yearSelect: 'Выбрать год',\n decadeSelect: 'Выбрать десятилетие',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Предыдущий месяц (PageUp)',\n nextMonth: 'Следующий месяц (PageDown)',\n previousYear: 'Предыдущий год (Control + left)',\n nextYear: 'Следующий год (Control + right)',\n previousDecade: 'Предыдущее десятилетие',\n nextDecade: 'Следущее десятилетие',\n previousCentury: 'Предыдущий век',\n nextCentury: 'Следующий век'\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages'\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = {\n // Options.jsx\n items_per_page: '/ стр.',\n jump_to: 'Перейти',\n jump_to_confirm: 'подтвердить',\n page: '',\n\n // Pagination.jsx\n prev_page: 'Назад',\n next_page: 'Вперед',\n prev_5: 'Предыдущие 5',\n next_5: 'Следующие 5',\n prev_3: 'Предыдущие 3',\n next_3: 'Следующие 3'\n};","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.arrayTreeFilter = factory());\n}(this, (function () { 'use strict';\n\nfunction arrayTreeFilter(data, filterFn, options) {\n options = options || {};\n options.childrenKeyName = options.childrenKeyName || \"children\";\n var children = data || [];\n var result = [];\n var level = 0;\n do {\n var foundItem = children.filter(function (item) {\n return filterFn(item, level);\n })[0];\n if (!foundItem) {\n break;\n }\n result.push(foundItem);\n children = foundItem[options.childrenKeyName] || [];\n level += 1;\n } while (children.length > 0);\n return result;\n}\n\nreturn arrayTreeFilter;\n\n})));\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\n/* eslint no-console:0 */\nvar formatRegExp = /%[sdj%]/g;\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var i = 1;\n var f = args[0];\n var len = args.length;\n\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n\n if (i >= len) {\n return x;\n }\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n break;\n\n default:\n return x;\n }\n });\n return str;\n }\n\n return f;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n\n return false;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n\n var original = index;\n index = index + 1;\n\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(AsyncValidationError, _Error);\n\n function AsyncValidationError(errors, fields) {\n var _this;\n\n _this = _Error.call(this, 'Async Validation Error') || this;\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n\n return AsyncValidationError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nfunction asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve();\n };\n\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n\n _pending[\"catch\"](function (e) {\n return e;\n });\n\n return _pending;\n }\n\n var firstFields = option.firstFields || [];\n\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve();\n }\n };\n\n if (!objArrKeys.length) {\n callback(results);\n resolve();\n }\n\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField\n };\n };\n}\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = _extends({}, target[s], value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n\n return target;\n}\n\n/**\n * Rule for validating required fields.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n}\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n}\n\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp(\"^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$\", 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n return typeof value === 'number';\n },\n object: function object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\n/**\n * Rule for validating the type of a value.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n}\n\n/**\n * Rule for validating minimum and maximum allowed values.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n } // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n\n\n if (!key) {\n return false;\n }\n\n if (arr) {\n val = value.length;\n }\n\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\n\nvar ENUM = 'enum';\n/**\n * Rule for validating a value exists in an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n}\n\n/**\n * Rule for validating a regular expression pattern.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction pattern$1(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\n\nvar rules = {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n \"enum\": enumerable,\n pattern: pattern$1\n};\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'string');\n\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'array');\n\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\nvar ENUM$1 = 'enum';\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction enumerable$1(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules[ENUM$1](rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction pattern$2(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value);\n\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'date')) {\n var dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n\n callback(errors);\n}\n\nfunction required$1(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\nfunction type$1(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, ruleType);\n\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\n/**\n * Performs validation for any type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\n\nfunction any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n }\n\n callback(errors);\n}\n\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable$1,\n pattern: pattern$2,\n date: date,\n url: type$1,\n hex: type$1,\n email: type$1,\n required: required$1,\n any: any\n};\n\nfunction newMessages() {\n return {\n \"default\": 'Validation error on field %s',\n required: '%s is required',\n \"enum\": '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n \"boolean\": '%s is not a %s',\n integer: '%s is not an %s',\n \"float\": '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nvar messages = newMessages();\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\n\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n\n this.rules = {};\n var z;\n var item;\n\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate: function validate(source_, o, oc) {\n var _this = this;\n\n if (o === void 0) {\n o = {};\n }\n\n if (oc === void 0) {\n oc = function oc() {};\n }\n\n var source = source_;\n var options = o;\n var callback = oc;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n\n return Promise.resolve();\n }\n\n function complete(results) {\n var i;\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n\n callback(errors, fields);\n }\n\n if (options.messages) {\n var messages$1 = this.messages();\n\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n\n var arr;\n var value;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n\n value = source[z] = rule.transform(value);\n }\n\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n }\n\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n\n if (!rule.validator) {\n return;\n }\n\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n\n function addFullfield(key, schema) {\n return _extends({}, schema, {\n fullField: rule.fullField + \".\" + key\n });\n }\n\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n\n var errors = e;\n\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n\n if (errors.length && rule.message !== undefined) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(complementError(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n\n fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n\n if (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\n }\n\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n var res;\n\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || rule.field + \" fails\");\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n\n return validators[this.getType(rule)] || false;\n }\n};\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n\n validators[type] = validator;\n};\n\nSchema.warning = warning;\nSchema.messages = messages;\nSchema.validators = validators;\n\nexport default Schema;\n//# sourceMappingURL=index.js.map\n"],"names":["__importDefault","this","mod","__esModule","Object","defineProperty","exports","value","tinycolor2_1","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","getHue","hsv","i","light","hue","Math","round","h","getSaturation","s","saturation","getValue","v","generate","color","patterns","pColor","default","toHsv","colorString","toHexString","push","generate_1","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","keys","forEach","key","primary","log","message","process","console","error","isIconDefinition","target","name","theme","icon","normalizeAttrs","attrs","arguments","length","undefined","reduce","acc","val","className","MiniMap","collection","Boolean","get","node","rootProps","tag","children","map","child","index","getSecondaryColor","primaryColor","withSuffix","TypeError","twoToneColorPalette","secondaryColor","Icon","props","displayName","definitions","data","add","_len","icons","Array","_key","set","clear","colors","setTwoToneColors","_ref","getTwoToneColors","render","_$props","$props","type","width","height","fill","on","$listeners","Vue","component","Header","mixins","BaseMixin","format","string","prefixCls","disabledDate","func","placeholder","clearText","object","inputReadOnly","bool","def","hourOptions","array","minuteOptions","secondOptions","disabledHours","disabledMinutes","disabledSeconds","allowEmpty","defaultOpenValue","currentSelectPanel","focusOnOpen","clearIcon","any","str","invalid","mounted","_this","requestAnimationFrame","window","setTimeout","$refs","input","focus","select","watch","_this2","$nextTick","setState","methods","onInputChange","e","_e$target","composing","_str","oldStr","isComposing","originalValue","getProtoValue","clone","parsed","isValid","hour","minute","second","indexOf","disabledHourOptions","disabledMinuteOptions","disabledSecondOptions","changedValue","__emit","onKeyDown","keyCode","getInput","$createElement","invalidClass","ref","domProps","readOnly","directives","noop","scrollTo","element","to","duration","scrollTop","difference","perTick","Select","options","selectedIndex","number","active","scrollToSelected","onSelect","onEsc","getOptions","_this3","item","_classnames","cls","disabled","onClick","role","tabIndex","handleMouseEnter","handleMouseLeave","$el","list","topOption","offsetTop","_cls","formatOption","option","disabledOptions","Combobox","showHour","showMinute","showSecond","use12Hours","isAM","onItemChange","itemValue","propValue","ampm","toUpperCase","onEnterSelectPanel","range","getHourSelect","hourOptionsAdj","hourAdj","concat","filter","getMinuteSelect","getSecondSelect","getAMPMSelect","_this4","AMPMOptions","c","match","selected","generateOptions","hideDisabledOptions","step","arr","toNearestValidTime","time","slice","sort","a","b","abs","Panel","defaultValue","hourStep","minuteStep","secondStep","addon","sValue","selectionRange","onChange","newValue","onAmPmChange","onCurrentSelectPanelChange","close","disabledHours2","isArray","_getListeners","_getListeners$esc","esc","_getListeners$keydown","keydown","validDefaultOpenValue","autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","bottomLeft","points","overflow","offset","bottomRight","topRight","topLeft","open","defaultOpen","align","placement","transitionName","getPopupContainer","popupClassName","popupStyle","autoComplete","autoFocus","id","inputIcon","_open","_value","sOpen","onPanelChange","setValue","onClear","event","stopPropagation","setOpen","onVisibleChange","onKeyDown2","getFormat","fmtString","join","getPanelElement","getPopupClassName","selectColumnCount","picker","blur","onFocus","onBlur","renderClearButton","_click","click","apply","title","popupAlign","builtinPlacements","popupPlacement","action","destroyPopupOnHide","popupTransitionName","popupVisible","slot","overlay","trigger","updated","forcePopupAlign","defaultVisible","visible","oneOfType","animation","afterVisibleChange","overlayStyle","overlayClassName","mouseEnterDelay","mouseLeaveDelay","getTooltipContainer","destroyTooltipOnHide","arrowContent","tipId","getPopupElement","Content","getPopupDomNode","_getOptionProps","restProps","extraProps","listeners","triggerProps","afterPopupVisibleChange","popupAnimation","defaultPopupVisible","popupVisibleChange","visibleChange","$slots","left","right","top","bottom","leftTop","rightTop","rightBottom","leftBottom","use","hasClass","classList","contains","originClass","warnDeprecatedLabel","findPopupContainer","prefixClass","current","parentNode","toTitle","toArray","createRef","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","unselectable","flatToHierarchy","positionList","entrances","posMap","parsedList","entity","fields","pos","split","parentPos","parentEntity","ariaId","generateAriaId","prefix","treeCheckable","treeCheckStrictly","labelInValue","parseSimpleTreeData","treeData","pId","rootPId","keyNodes","rootNodeList","nodeList","parentKey","parent","isPosRelated","pos1","pos2","fields1","fields2","minLen","min","cleanEntity","_ref2","instance","getFilterTree","treeNodes","searchValue","filterFunc","valueEntities","Component","mapFilteredNodeToData","n","formatInternalValue","valueList","label","getLabel","wrappedValue","treeNodeLabelProp","formatSelectorValue","showCheckedStrategy","values","hierarchyList","_ref3","_ref4","targetValueList","traverse","_ref5","processProps","style","_props$on","p","convertDataToTree","initWrapper","wrapper","processEntity","currentEntity","convertTreeToEntities","getHalfCheckedKeys","_ref6","_ref7","parentValue","conductCheck","BUILT_IN_PLACEMENTS","ignoreShake","SelectTrigger","showSearch","dropdownPopupAlign","dropdownClassName","dropdownStyle","dropdownMatchSelectWidth","isMultiple","dropdownPrefixCls","dropdownVisibleChange","popupElement","created","triggerRef","getDropdownTransitionName","$trigger","_classNames","_$props2","stretch","popup","selectorPropTypes","selectorValueList","allowClear","showArrow","removeSelected","choiceTransitionName","removeIcon","focused","modeName","BaseSelector","renderSelection","isRequired","renderPlaceholder","inject","vcTreeSelect","domRef","onSelectorFocus","onSelectorBlur","renderClear","onSelectorClear","renderArrow","outline","_$props3","onSelectorKeyDown","myTabIndex","Selector","SingleSelector","selectorRef","innerNode","_selectorValueList$","_$props$showArrow","SearchInput","needAlign","mirrorSearchValue","inputRef","mirrorInputRef","prevProps","alignInputWidth","clientWidth","offsetWidth","isDidMount","handleInputChange","_searchValue","onSearchInputChange","onSearchInputKeyDown","Selection","maxTagTextLength","onRemove","content","remove","TREE_SELECT_EMPTY_VALUE_KEY","MultipleSelector","maxTagCount","maxTagPlaceholder","onPlaceholderClick","_renderPlaceholder","searchPlaceholder","currentPlaceholder","hidden","display","onChoiceAnimationLeave","args","onMultipleSelectorRemove","myValueList","selectedValueNodes","restValueList","restNodeSelect","transitionProps","getTransitionProps","afterLeave","getDerivedState","nextProps","prevState","_ref$_prevProps","_prevProps","loadedKeys","_loadedKeys","expandedKeyList","_expandedKeyList","cachedExpandedKeyList","_cachedExpandedKeyList","keyEntities","treeExpandedKeys","filteredTreeNodes","upperSearchValue","newState","_keyList","loadData","has","BasePopup","searchHalfCheckedKeys","Map","treeIcon","treeLine","treeNodeFilterProp","treeDefaultExpandAll","treeDefaultExpandedKeys","multiple","notFoundContent","switcherIcon","renderSearch","__propsSymbol__","state","$data","treeRef","onTreeExpand","onLoad","getTree","getLoadData","filterTreeNode","treeNode","filterVal","renderNotFound","_$props4","_$data","keyList","_$props5","_vcTreeSelect","onPopupKeyDown","onTreeNodeSelect","onTreeNodeCheck","treeProps","checkedKeys","selectedKeys","$notFound","$treeNodes","checkStrictly","checked","halfChecked","$tree","treeAllProps","showIcon","showLine","selectable","checkable","expandedKeys","Symbol","check","expand","load","Tree","SinglePopup","searchRef","popupRef","_renderSearch","functional","isTreeNode","TreeNode","context","slots","scopedSlots","slotsKey","scopedSlotsTemp","treeNodeProps","nativeOn","getWatch","k","needSyncKeys","prefixAria","inputValue","autoClearSearchValue","oneOf","treeDataSimpleMode","selectTriggerRef","_valueList","_searchHalfCheckedKeys","_missValueList","_selectorValueList","_valueEntities","_posEntities","_keyEntities","_init","_focused","_treeNodes","_filteredTreeNodes","provide","onComponentKeyDown","_popup$getTree","domTreeNodes","domNode","popupNode","triggerContainer","searchNode","onlyScrollIfNeeded","offsetHeight","_prevState$_prevProps","self","processState","propName","updater","valueRefresh","treeDataChanged","treeDataModeChanged","prevValue","prev","simpleMapper","entitiesMap","posEntities","missValueList","filteredValueList","latestValueList","valueLabels","wrapperValue","_conductCheck","String","filterTreeNodeFn","_","nodeValue","SelectNode","KeyCode","ESC","setOpenState","UP","DOWN","LEFT","RIGHT","ENTER","onDeselect","nodeEventInfo","triggerChange","isSearchValueControlled","setUncontrolledState","removeValue","_$data2","triggerEntity","newValueList","triggerNode","extraInfo","triggerValue","deselectInfo","filteredEntityList","checkedNodes","checkedNodesPositions","allCheckedNodes","selectedNodes","_ref8","newMissValueList","_ref9","isLabelInValue","onValueTrigger","isAdd","nodeExtraInfo","_$data3","_ref10","_$data4","selectedValue","_ref11","_ref12","_ref13","_$data5","checkedNodeList","oriKeyList","_ref14","_ref15","from","Set","_getPropsData","eventKey","onDropdownVisibleChange","_$props6","_$data6","_$props7","isSet","_$data7","BACKSPACE","lastValue","setPopupRef","needSync","byTrigger","documentClickClose","_$props8","delayForcePopupAlign","_this5","_$data8","prevSelectorValueList","extra","preValue","_ref16","change","connectValueList","labelList","returnValue","_ref17","_ref18","_$data9","passProps","choiceAnimationLeave","$scopedSlots","popupProps","treeExpanded","Popup","MultiplePopup","$popup","$selector","selectTriggerProps","SHOW_ALL","SHOW_PARENT","SHOW_CHILD","focusable","draggable","defaultExpandParent","autoExpandParent","defaultExpandAll","defaultExpandedKeys","defaultCheckedKeys","defaultSelectedKeys","openTransitionName","openAnimation","_propsSymbol","_expandedKeys","_selectedKeys","_checkedKeys","_halfCheckedKeys","_loadingKeys","_treeNode","_dragOverNodeKey","_dropPosition","_dragNodesKeys","vcTree","checkedKeyEntity","halfCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","onNodeDragStart","dragNode","onNodeDragEnter","selectHandle","dropPosition","delayedDragEnterLogic","clearTimeout","newExpandedKeys","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","_$data2$_dragNodesKey","posArr","dropResult","dragNodesKeys","Number","dropToGap","onNodeClick","onNodeDoubleClick","onNodeSelect","targetSelected","eventObj","nativeEvent","onNodeCheck","oriCheckedKeys","oriHalfCheckedKeys","_getOptionProps2","checkedObj","onNodeLoad","Promise","resolve","_ref$_loadedKeys","_ref$_loadingKeys","loadingKeys","_getOptionProps3","promise","then","currentLoadedKeys","currentLoadingKeys","newLoadedKeys","newLoadingKeys","onNodeExpand","_getOptionProps4","expanded","targetExpanded","loadPromise","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","preventDefault","replace","registerTreeNode","isKeyChecked","_$data$_checkedKeys","renderTreeNode","level","_$data5$_expandedKeys","_$data5$_selectedKeys","_$data5$_halfCheckedK","_$data5$_loadedKeys","_$data5$_loadingKeys","dragOverNodeKey","loaded","loading","dragOver","dragOverGapTop","dragOverGapBottom","_$props$tabIndex","ICON_OPEN","ICON_CLOSE","defaultTitle","__ANT_TREE_NODE","root","isLeaf","disableCheckbox","dataRef","dragNodeHighlight","vcTreeNode","syncLoadData","beforeDestroy","onSelectorClick","isSelectable","onCheck","onSelectorDoubleClick","isDisabled","isCheckable","targetChecked","onMouseEnter","onMouseLeave","onContextMenu","onDragStart","dataTransfer","setData","onDragEnter","onDragOver","onDragLeave","onDragEnd","onDrop","onExpand","getNodeChildren","originList","targetList","getNodeState","isLeaf2","hasChildren","treeDisabled","_vcTree","treeSelectable","renderSwitcher","switcherCls","renderCheckbox","$custom","renderIcon","renderSelector","_vcTree2","wrapClass","$icon","currentIcon","currentTitle","$title","renderChildren","_vcTree3","animProps","css","$children","_vcTree4","DRAG_SIDE_RANGE","DRAG_MIN_GAP","onlyTreeNodeWarned","warnOnlyTreeNode","arrDel","splice","arrAdd","posToArr","getPosition","isCheckDisabled","traverseTreeNodes","callback","processNode","componentOptions","childList","subNode","subIndex","mapChildren","getDragNodesKeys","calcDropPosition","clientY","_treeNode$$refs$selec","getBoundingClientRect","des","max","calcSelectedKeys","internalProcessProps","processor","_ref3$processProps","childrenNodes","onProcessFinished","parseCheckedKeys","keyProps","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","err","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","conductExpandParent","hiddenClassName","divProps","LazyRenderBox","getClassNameFromAlign","getRootDomNode","getContainer","maskAnimation","maskTransitionName","mask","zIndex","point","shape","pageX","pageY","domEl","stretchChecked","targetWidth","targetHeight","rootNode","setStretchSize","removeChild","onAlign","popupDomNode","currentAlignClassName","getClassName","$ele","popupInstance","getTargetElement","getAlignTarget","getMaskTransitionName","getTransitionName","sizeStyle","minHeight","minWidth","alignInstance","forceAlign","popupInnerProps","getZIndexStyle","appear","useTransition","transitionEvent","beforeEnter","enter","el","beforeLeave","leave","_animation$on","_animation$props","_props","A","monitorWindowResize","PopupInner","getMaskElement","maskElement","maskTransition","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","placementStr","baseAlign","getAlignPopupClassName","hasOwnProperty","returnEmptyString","returnDocument","document","ALL_HANDLERS","arrayOf","showAction","hideAction","getPopupClassNameFromAlign","focusDelay","blurDelay","getDocument","forceRender","maskClosable","alignPoint","vcTriggerContext","savePopupRef","dialogContext","fireEvents","prevPopupVisible","sPopupVisible","deactivated","setPopupVisible","renderComponent","updatedCal","triggerAfterPopupVisibleChange","clearDelayTimer","clearOutsideHandler","mouseDownTimeout","currentDocument","clickOutsideHandler","isClickToHide","isContextmenuToShow","addEventListener","onDocumentClick","touchOutsideHandler","contextmenuOutsideHandler1","onContextmenuClose","contextmenuOutsideHandler2","onMouseenter","delaySetPopupVisible","onMouseMove","setPoint","onMouseleave","onPopupMouseenter","onPopupMouseleave","relatedTarget","_component","isFocusToShow","focusTime","Date","now","onMousedown","preClickTime","onTouchstart","preTouchTime","activeElement","isBlurToHide","onContextmenu","preTime","isClickToShow","domEvent","nextVisible","onPopupMouseDown","_vcTriggerContext","hasPopupMouseDown","handleGetPopupClassFromAlign","getPopupAlign","savePopup","getComponent","mouseProps","isMouseEnterToShow","mouseenter","isMouseLeaveToHide","mouseleave","mousedown","touchstart","_self$$props","popupContainer","createElement","position","mountNode","body","appendChild","delayS","delay","delayTimer","requestAnimationTimeout","createTwoChains","fn","events","childOriginEvents","_this6","warning","newChildProps","contextmenu","mousemove","ContainerRender","autoMount","getError","xhr","msg","method","status","Error","url","getBody","text","responseText","response","JSON","parse","upload","XMLHttpRequest","onProgress","onprogress","total","percent","formData","FormData","append","filename","file","onerror","onError","onload","onSuccess","withCredentials","headers","setRequestHeader","send","abort","uid","endsWith","suffix","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","some","validType","trim","charAt","toLowerCase","test","loopFiles","dirReader","createReader","fileList","sequence","readEntries","entries","entryList","prototype","isFinished","traverseFileTree","files","isAccepted","_traverseFileTree","path","isFile","fullPath","webkitRelativePath","defineProperties","writable","isDirectory","entryItem","webkitGetAsEntry","upLoadPropTypes","componentTag","directory","accept","beforeUpload","customRequest","openFileDialogOnClick","transformFile","AjaxUploader","inheritAttrs","reqs","_isMounted","uploadFiles","reset","fileInputRef","onFileDrop","items","_file","call","successFiles","errorFiles","$emit","postFiles","post","before","processedFile","processedFileType","toString","_props$transformFile","originFile","request","transform","transformedFile","requestOption","ret","$attrs","Tag","drop","dragover","tagProps","webkitdirectory","IFRAME_STYLE","opacity","IframeUploader","uploading","doc","getIframeDocument","script","getElementsByTagName","innerHTML","endUpload","getFormInputNode","substring","lastIndexOf","startUpload","getIframeNode","iframeRef","contentDocument","getFormNode","getElementById","getFormDataNode","getFileForMultiple","getIframeHTML","domain","domainScript","domainInput","initIframeSrc","src","initIframe","iframeNode","win","contentWindow","write","onchange","updateIframeWH","formNode","dataSpan","inputs","createDocumentFragment","setAttribute","submit","iframeStyle","empty","uploadProps","multipart","supportServerRender","File","uploaderRef","componentProps","_ComponentUploader","ComponentUploader","addEventListenerWrap","eventType","cb","warned","valid","warningOnce","_en_US","_en_US2","_interopRequireDefault","obj","_ru_RU","_ru_RU2","_extends2","_extends3","_en_US3","_en_US4","locale","lang","rangePlaceholder","timePickerLocale","_ru_RU3","_ru_RU4","_en_US5","_en_US6","_en_US7","_en_US8","Pagination","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","selectAll","selectInvert","sortTitle","collapse","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","itemUnit","itemsUnit","Upload","removeFile","uploadError","previewFile","downloadFile","Empty","description","Text","edit","copy","copied","PageHeader","back","_default","_default2","_ru_RU5","_ru_RU6","_ru_RU7","_ru_RU8","today","backToToday","ok","month","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","factory","module","arrayTreeFilter","filterFn","childrenKeyName","result","foundItem","_extends","assign","source","_inheritsLoose","subClass","superClass","create","constructor","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_construct","Parent","Class","Constructor","Function","bind","_isNativeFunction","_wrapNativeSuper","_cache","Wrapper","enumerable","configurable","formatRegExp","convertFieldsError","errors","field","f","len","x","stringify","isNativeStringType","isEmptyValue","asyncParallelArray","results","arrLength","count","asyncSerialArray","original","flattenObjArr","objArr","AsyncValidationError","_Error","asyncMap","first","_pending","reject","flattenArr","firstFields","objArrKeys","objArrLength","pending","complementError","rule","oe","fullField","deepMerge","required","messages","whitespace","pattern","email","RegExp","hex","types","integer","parseInt","regexp","date","getTime","getMonth","getYear","isNaN","custom","ruleType","spRegexp","num","ENUM","pattern$1","lastIndex","mismatch","_pattern","rules","validate","_boolean","floatFn","ENUM$1","enumerable$1","pattern$2","dateObject","required$1","type$1","validators","newMessages","cloned","Schema","descriptor","_messages","define","z","source_","oc","complete","_errors","messages$1","series","r","validator","getValidationMethod","getType","errorFields","doIt","res","deep","defaultField","addFullfield","schema","suppressWarning","fieldsSchema","fieldSchema","errs","finalErrors","asyncValidator","messageIndex","register"],"sourceRoot":""}