element-plus 1.2.0-beta.1 → 1.2.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +930 -690
- package/dist/index.full.min.js +11 -11
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +11 -11
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +937 -699
- package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs +1 -0
- package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.mjs.map +1 -1
- package/es/components/alert/src/alert.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs +1 -1
- package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs +4 -0
- package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.mjs.map +1 -1
- package/es/components/button/index.d.ts +6 -1
- package/es/components/button/src/button.d.ts +4 -0
- package/es/components/button/src/button.mjs +4 -1
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/button/src/button.vue.d.ts +6 -1
- package/es/components/button/src/button.vue_vue&type=script&lang.mjs +7 -1
- package/es/components/button/src/button.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +8430 -12
- package/es/components/cascader/src/index.vue.d.ts +4216 -6
- package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs +25 -16
- package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs.map +1 -1
- package/es/components/cascader-panel/index.d.ts +238 -10
- package/es/components/cascader-panel/src/index.vue.d.ts +122 -8
- package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs +31 -12
- package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.vue.d.ts +2 -2
- package/es/components/cascader-panel/src/menu.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs +14 -11
- package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/node.vue.d.ts +1 -1
- package/es/components/cascader-panel/src/node.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs +1 -1
- package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs.map +1 -1
- package/es/components/color-picker/src/color.mjs +20 -13
- package/es/components/color-picker/src/color.mjs.map +1 -1
- package/es/components/config-provider/index.d.ts +12 -5
- package/es/components/config-provider/index.mjs +1 -1
- package/es/components/config-provider/index.mjs.map +1 -1
- package/es/components/config-provider/src/config-provider.d.ts +7 -0
- package/es/components/config-provider/src/config-provider.mjs +18 -0
- package/es/components/config-provider/src/config-provider.mjs.map +1 -0
- package/es/components/config-provider/src/index.d.ts +18 -0
- package/es/components/config-provider/src/index.mjs +22 -0
- package/es/components/config-provider/src/index.mjs.map +1 -0
- package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs +23 -16
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs +2 -0
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs +2 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs +2 -0
- package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs +68 -68
- package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs.map +1 -1
- package/es/components/form/index.d.ts +2 -2
- package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs +4 -3
- package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.mjs.map +1 -1
- package/es/components/form/src/form.type.d.ts +1 -3
- package/es/components/form/src/form.vue.d.ts +2 -3
- package/es/components/image/index.d.ts +4 -0
- package/es/components/image/src/image.d.ts +1 -0
- package/es/components/image/src/image.mjs +4 -0
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/image/src/image.vue.d.ts +4 -0
- package/es/components/image/src/image.vue_vue&type=script&lang.mjs +2 -2
- package/es/components/image/src/image.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/image/src/image.vue_vue&type=template&id=34467287&lang.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs +2 -2
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs +2 -2
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs.map +1 -1
- package/es/components/input/src/input.vue_vue&type=script&lang.mjs +2 -2
- package/es/components/input/src/input.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs +18 -16
- package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs.map +1 -1
- package/es/components/loading/src/createLoadingComponent.mjs +3 -7
- package/es/components/loading/src/createLoadingComponent.mjs.map +1 -1
- package/es/components/menu/src/menu.mjs +1 -1
- package/es/components/menu/src/menu.mjs.map +1 -1
- package/es/components/menu/src/sub-menu.mjs +1 -1
- package/es/components/menu/src/sub-menu.mjs.map +1 -1
- package/es/components/message/src/message-method.mjs +13 -0
- package/es/components/message/src/message-method.mjs.map +1 -1
- package/es/components/message/src/message.d.ts +2 -0
- package/es/components/message/src/message.mjs +8 -0
- package/es/components/message/src/message.mjs.map +1 -1
- package/es/components/message/src/message.vue.d.ts +8 -0
- package/es/components/message/src/message.vue_vue&type=script&lang.mjs +7 -1
- package/es/components/message/src/message.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs +56 -46
- package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs.map +1 -1
- package/es/components/page-header/src/page-header.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs +3 -3
- package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs.map +1 -1
- package/es/components/result/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs +4 -3
- package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs.map +1 -1
- package/es/components/select/index.d.ts +5 -1
- package/es/components/select/src/select.vue.d.ts +5 -1
- package/es/components/select/src/select.vue_vue&type=script&lang.mjs +4 -1
- package/es/components/select/src/select.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs +6 -5
- package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs.map +1 -1
- package/es/components/select/src/useSelect.mjs +1 -1
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +14 -0
- package/es/components/select-v2/src/defaults.d.ts +4 -0
- package/es/components/select-v2/src/defaults.mjs +4 -0
- package/es/components/select-v2/src/defaults.mjs.map +1 -1
- package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs +1 -0
- package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue.d.ts +7 -0
- package/es/components/select-v2/src/select.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs +9 -7
- package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs.map +1 -1
- package/es/components/table/src/config.mjs +22 -2
- package/es/components/table/src/config.mjs.map +1 -1
- package/es/components/table/src/store/watcher.mjs +15 -7
- package/es/components/table/src/store/watcher.mjs.map +1 -1
- package/es/components/table/src/table/style-helper.mjs +2 -2
- package/es/components/table/src/table/style-helper.mjs.map +1 -1
- package/es/components/table/src/table-body/render-helper.mjs +2 -3
- package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
- package/es/components/table/src/table-header/event-helper.mjs +3 -1
- package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
- package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs +3 -3
- package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tabs/src/tabs.mjs +1 -1
- package/es/components/tabs/src/tabs.mjs.map +1 -1
- package/es/components/teleport/index.d.ts +23 -0
- package/es/components/teleport/index.mjs +9 -0
- package/es/components/teleport/index.mjs.map +1 -0
- package/es/components/teleport/src/teleport.d.ts +7 -0
- package/es/components/teleport/src/teleport.mjs +18 -0
- package/es/components/teleport/src/teleport.mjs.map +1 -0
- package/es/components/teleport/src/teleport.vue.d.ts +22 -0
- package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs +28 -0
- package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs.map +1 -0
- package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs +19 -0
- package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs.map +1 -0
- package/es/components/teleport/src/teleport2.mjs +7 -0
- package/es/components/teleport/src/teleport2.mjs.map +1 -0
- package/es/components/teleport/style/css.d.ts +0 -0
- package/es/components/teleport/style/css.mjs +2 -0
- package/es/components/teleport/style/css.mjs.map +1 -0
- package/es/components/teleport/style/index.d.ts +0 -0
- package/es/components/teleport/style/index.mjs +2 -0
- package/es/components/teleport/style/index.mjs.map +1 -0
- package/es/components/time-picker/src/common/picker.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs +11 -8
- package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs +9 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs +6 -3
- package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs +2 -0
- package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs +3 -2
- package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs.map +1 -1
- package/es/components/transfer/src/useMove.mjs +3 -0
- package/es/components/transfer/src/useMove.mjs.map +1 -1
- package/es/components/tree/index.d.ts +6 -0
- package/es/components/tree/src/tree-node.vue.d.ts +1 -0
- package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs +20 -0
- package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs +10 -7
- package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs.map +1 -1
- package/es/components/tree/src/tree.type.d.ts +3 -0
- package/es/components/tree/src/tree.vue.d.ts +3 -0
- package/es/components/tree/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs +2 -1
- package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs +4 -2
- package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs +5 -4
- package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs +2 -1
- package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs.map +1 -1
- package/es/components/virtual-list/src/builders/build-grid.d.ts +7 -2
- package/es/components/virtual-list/src/builders/build-list.d.ts +9 -3
- package/es/components/virtual-list/src/builders/build-list.mjs +7 -4
- package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
- package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
- package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
- package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
- package/es/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
- package/es/components/virtual-list/src/components/scrollbar.mjs +1 -2
- package/es/components/virtual-list/src/components/scrollbar.mjs.map +1 -1
- package/es/components/virtual-list/src/props.d.ts +6 -3
- package/es/components/virtual-list/src/props.mjs +5 -1
- package/es/components/virtual-list/src/props.mjs.map +1 -1
- package/es/hooks/index.d.ts +1 -0
- package/es/hooks/index.mjs +1 -0
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-global-config/index.d.ts +1 -0
- package/es/hooks/use-global-config/index.mjs +15 -0
- package/es/hooks/use-global-config/index.mjs.map +1 -0
- package/es/hooks/use-locale/index.d.ts +2 -4
- package/es/hooks/use-locale/index.mjs +4 -3
- package/es/hooks/use-locale/index.mjs.map +1 -1
- package/es/hooks/use-popper/index.mjs +6 -5
- package/es/hooks/use-popper/index.mjs.map +1 -1
- package/es/index.mjs +2 -0
- package/es/index.mjs.map +1 -1
- package/es/tokens/config-provider.d.ts +4 -0
- package/es/tokens/config-provider.mjs +4 -0
- package/es/tokens/config-provider.mjs.map +1 -0
- package/es/tokens/index.d.ts +1 -0
- package/es/tokens/index.mjs +1 -0
- package/es/tokens/index.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/affix/src/affix.vue_vue&type=script&lang.js +1 -0
- package/lib/components/affix/src/affix.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.js.map +1 -1
- package/lib/components/alert/src/alert.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js +1 -1
- package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js +4 -0
- package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.js.map +1 -1
- package/lib/components/button/index.d.ts +6 -1
- package/lib/components/button/src/button.d.ts +4 -0
- package/lib/components/button/src/button.js +4 -1
- package/lib/components/button/src/button.js.map +1 -1
- package/lib/components/button/src/button.vue.d.ts +6 -1
- package/lib/components/button/src/button.vue_vue&type=script&lang.js +9 -3
- package/lib/components/button/src/button.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.js.map +1 -1
- package/lib/components/cascader/index.d.ts +8430 -12
- package/lib/components/cascader/src/index.vue.d.ts +4216 -6
- package/lib/components/cascader/src/index.vue_vue&type=script&lang.js +25 -16
- package/lib/components/cascader/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js.map +1 -1
- package/lib/components/cascader-panel/index.d.ts +238 -10
- package/lib/components/cascader-panel/src/index.vue.d.ts +122 -8
- package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js +31 -12
- package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.vue.d.ts +2 -2
- package/lib/components/cascader-panel/src/menu.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js +14 -11
- package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/node.vue.d.ts +1 -1
- package/lib/components/cascader-panel/src/node.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js +1 -1
- package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js.map +1 -1
- package/lib/components/color-picker/src/color.js +20 -13
- package/lib/components/color-picker/src/color.js.map +1 -1
- package/lib/components/config-provider/index.d.ts +12 -5
- package/lib/components/config-provider/index.js +2 -2
- package/lib/components/config-provider/index.js.map +1 -1
- package/lib/components/config-provider/src/config-provider.d.ts +7 -0
- package/lib/components/config-provider/src/config-provider.js +22 -0
- package/lib/components/config-provider/src/config-provider.js.map +1 -0
- package/lib/components/config-provider/src/index.d.ts +18 -0
- package/lib/components/config-provider/src/index.js +26 -0
- package/lib/components/config-provider/src/index.js.map +1 -0
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js +22 -15
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js +4 -2
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js +4 -3
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js +2 -0
- package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js +67 -67
- package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js.map +1 -1
- package/lib/components/form/index.d.ts +2 -2
- package/lib/components/form/src/form-item.vue_vue&type=script&lang.js +3 -2
- package/lib/components/form/src/form-item.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.js.map +1 -1
- package/lib/components/form/src/form.type.d.ts +1 -3
- package/lib/components/form/src/form.vue.d.ts +2 -3
- package/lib/components/image/index.d.ts +4 -0
- package/lib/components/image/src/image.d.ts +1 -0
- package/lib/components/image/src/image.js +4 -0
- package/lib/components/image/src/image.js.map +1 -1
- package/lib/components/image/src/image.vue.d.ts +4 -0
- package/lib/components/image/src/image.vue_vue&type=script&lang.js +2 -2
- package/lib/components/image/src/image.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/image/src/image.vue_vue&type=template&id=34467287&lang.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js +2 -2
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js +2 -2
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js.map +1 -1
- package/lib/components/input/src/input.vue_vue&type=script&lang.js +1 -1
- package/lib/components/input/src/input.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js +17 -15
- package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js.map +1 -1
- package/lib/components/loading/src/createLoadingComponent.js +3 -7
- package/lib/components/loading/src/createLoadingComponent.js.map +1 -1
- package/lib/components/menu/src/menu.js +1 -1
- package/lib/components/menu/src/menu.js.map +1 -1
- package/lib/components/menu/src/sub-menu.js +1 -1
- package/lib/components/menu/src/sub-menu.js.map +1 -1
- package/lib/components/message/src/message-method.js +13 -0
- package/lib/components/message/src/message-method.js.map +1 -1
- package/lib/components/message/src/message.d.ts +2 -0
- package/lib/components/message/src/message.js +8 -0
- package/lib/components/message/src/message.js.map +1 -1
- package/lib/components/message/src/message.vue.d.ts +8 -0
- package/lib/components/message/src/message.vue_vue&type=script&lang.js +8 -2
- package/lib/components/message/src/message.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js +55 -45
- package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js.map +1 -1
- package/lib/components/page-header/src/page-header.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js +2 -2
- package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js.map +1 -1
- package/lib/components/result/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js +3 -2
- package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js.map +1 -1
- package/lib/components/select/index.d.ts +5 -1
- package/lib/components/select/src/select.vue.d.ts +5 -1
- package/lib/components/select/src/select.vue_vue&type=script&lang.js +4 -1
- package/lib/components/select/src/select.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js +6 -5
- package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js.map +1 -1
- package/lib/components/select/src/useSelect.js +1 -1
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +14 -0
- package/lib/components/select-v2/src/defaults.d.ts +4 -0
- package/lib/components/select-v2/src/defaults.js +4 -0
- package/lib/components/select-v2/src/defaults.js.map +1 -1
- package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js +1 -0
- package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/select-v2/src/select.vue.d.ts +7 -0
- package/lib/components/select-v2/src/select.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js +9 -7
- package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js.map +1 -1
- package/lib/components/table/src/config.js +22 -2
- package/lib/components/table/src/config.js.map +1 -1
- package/lib/components/table/src/store/watcher.js +14 -6
- package/lib/components/table/src/store/watcher.js.map +1 -1
- package/lib/components/table/src/table/style-helper.js +2 -2
- package/lib/components/table/src/table/style-helper.js.map +1 -1
- package/lib/components/table/src/table-body/render-helper.js +2 -3
- package/lib/components/table/src/table-body/render-helper.js.map +1 -1
- package/lib/components/table/src/table-header/event-helper.js +3 -1
- package/lib/components/table/src/table-header/event-helper.js.map +1 -1
- package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js +3 -3
- package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tabs/src/tabs.js +1 -1
- package/lib/components/tabs/src/tabs.js.map +1 -1
- package/lib/components/teleport/index.d.ts +23 -0
- package/lib/components/teleport/index.js +15 -0
- package/lib/components/teleport/index.js.map +1 -0
- package/lib/components/teleport/src/teleport.d.ts +7 -0
- package/lib/components/teleport/src/teleport.js +22 -0
- package/lib/components/teleport/src/teleport.js.map +1 -0
- package/lib/components/teleport/src/teleport.vue.d.ts +22 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js +32 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js.map +1 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js +23 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js.map +1 -0
- package/lib/components/teleport/src/teleport2.js +12 -0
- package/lib/components/teleport/src/teleport2.js.map +1 -0
- package/lib/components/teleport/style/css.d.ts +0 -0
- package/lib/components/teleport/style/css.js +3 -0
- package/lib/components/teleport/style/css.js.map +1 -0
- package/lib/components/teleport/style/index.d.ts +0 -0
- package/lib/components/teleport/style/index.js +3 -0
- package/lib/components/teleport/style/index.js.map +1 -0
- package/lib/components/time-picker/src/common/picker.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js +10 -7
- package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js +9 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js +5 -2
- package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js +4 -2
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js +3 -2
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js.map +1 -1
- package/lib/components/transfer/src/useMove.js +3 -0
- package/lib/components/transfer/src/useMove.js.map +1 -1
- package/lib/components/tree/index.d.ts +6 -0
- package/lib/components/tree/src/tree-node.vue.d.ts +1 -0
- package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js +20 -0
- package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js +9 -6
- package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js.map +1 -1
- package/lib/components/tree/src/tree.type.d.ts +3 -0
- package/lib/components/tree/src/tree.vue.d.ts +3 -0
- package/lib/components/tree/src/tree.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js +2 -1
- package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js +4 -2
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js +4 -3
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js +2 -1
- package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js.map +1 -1
- package/lib/components/virtual-list/src/builders/build-grid.d.ts +7 -2
- package/lib/components/virtual-list/src/builders/build-list.d.ts +9 -3
- package/lib/components/virtual-list/src/builders/build-list.js +7 -4
- package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
- package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
- package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
- package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
- package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
- package/lib/components/virtual-list/src/components/scrollbar.js +1 -2
- package/lib/components/virtual-list/src/components/scrollbar.js.map +1 -1
- package/lib/components/virtual-list/src/props.d.ts +6 -3
- package/lib/components/virtual-list/src/props.js +5 -1
- package/lib/components/virtual-list/src/props.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +2 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-global-config/index.d.ts +1 -0
- package/lib/hooks/use-global-config/index.js +19 -0
- package/lib/hooks/use-global-config/index.js.map +1 -0
- package/lib/hooks/use-locale/index.d.ts +2 -4
- package/lib/hooks/use-locale/index.js +4 -3
- package/lib/hooks/use-locale/index.js.map +1 -1
- package/lib/hooks/use-popper/index.js +6 -5
- package/lib/hooks/use-popper/index.js.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/tokens/config-provider.d.ts +4 -0
- package/lib/tokens/config-provider.js +8 -0
- package/lib/tokens/config-provider.js.map +1 -0
- package/lib/tokens/index.d.ts +1 -0
- package/lib/tokens/index.js +2 -0
- package/lib/tokens/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- package/theme-chalk/el-checkbox.css +1 -1
- package/theme-chalk/el-date-picker.css +1 -1
- package/theme-chalk/el-form.css +1 -1
- package/theme-chalk/el-input-number.css +1 -1
- package/theme-chalk/el-input.css +1 -1
- package/theme-chalk/el-menu.css +1 -1
- package/theme-chalk/el-message.css +1 -1
- package/theme-chalk/el-select.css +1 -1
- package/theme-chalk/el-tabs.css +1 -1
- package/theme-chalk/el-time-picker.css +1 -1
- package/theme-chalk/el-time-select.css +1 -1
- package/theme-chalk/el-virtual-list.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/checkbox.scss +1 -1
- package/theme-chalk/src/common/var.scss +0 -2
- package/theme-chalk/src/date-picker/picker.scss +0 -1
- package/theme-chalk/src/form.scss +1 -1
- package/theme-chalk/src/input-number.scss +1 -0
- package/theme-chalk/src/input.scss +14 -15
- package/theme-chalk/src/menu.scss +16 -14
- package/theme-chalk/src/message.scss +6 -1
- package/theme-chalk/src/select.scss +2 -3
- package/theme-chalk/src/tabs.scss +6 -0
- package/theme-chalk/src/virtual-list.scss +16 -0
- package/web-types.json +1 -1
- package/es/components/affix/index.d.ts +0 -48
- package/es/components/affix/src/affix.vue.d.ts +0 -48
- package/es/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
- package/es/components/config-provider/config-provider.d.ts +0 -11
- package/es/components/config-provider/config-provider.mjs +0 -20
- package/es/components/config-provider/config-provider.mjs.map +0 -1
- package/es/components/select/src/useSelect.d.ts +0 -76
- package/es/components/slider/index.d.ts +0 -307
- package/es/components/slider/src/index.vue.d.ts +0 -155
- package/es/components/slider/src/useSlide.d.ts +0 -21
- package/es/components/tree-v2/src/composables/useTree.d.ts +0 -29
- package/lib/components/affix/index.d.ts +0 -48
- package/lib/components/affix/src/affix.vue.d.ts +0 -48
- package/lib/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
- package/lib/components/config-provider/config-provider.d.ts +0 -11
- package/lib/components/config-provider/config-provider.js +0 -24
- package/lib/components/config-provider/config-provider.js.map +0 -1
- package/lib/components/select/src/useSelect.d.ts +0 -76
- package/lib/components/slider/index.d.ts +0 -307
- package/lib/components/slider/src/index.vue.d.ts +0 -155
- package/lib/components/slider/src/useSlide.d.ts +0 -21
- package/lib/components/tree-v2/src/composables/useTree.d.ts +0 -29
|
@@ -170,15 +170,16 @@ var script = defineComponent({
|
|
|
170
170
|
return (_a = popper.value) == null ? void 0 : _a.popperRef;
|
|
171
171
|
});
|
|
172
172
|
const togglePopperVisible = (visible) => {
|
|
173
|
+
var _a, _b, _c;
|
|
173
174
|
if (isDisabled.value)
|
|
174
175
|
return;
|
|
175
176
|
visible = visible != null ? visible : !popperVisible.value;
|
|
176
177
|
if (visible !== popperVisible.value) {
|
|
177
178
|
popperVisible.value = visible;
|
|
178
|
-
input.value.input.setAttribute("aria-expanded", visible);
|
|
179
|
+
(_b = (_a = input.value) == null ? void 0 : _a.input) == null ? void 0 : _b.setAttribute("aria-expanded", `${visible}`);
|
|
179
180
|
if (visible) {
|
|
180
181
|
updatePopperPosition();
|
|
181
|
-
nextTick(panel.value.scrollToExpandingNode);
|
|
182
|
+
nextTick((_c = panel.value) == null ? void 0 : _c.scrollToExpandingNode);
|
|
182
183
|
} else if (props.filterable) {
|
|
183
184
|
const { value } = presentText;
|
|
184
185
|
inputValue.value = value;
|
|
@@ -188,7 +189,8 @@ var script = defineComponent({
|
|
|
188
189
|
}
|
|
189
190
|
};
|
|
190
191
|
const updatePopperPosition = () => {
|
|
191
|
-
|
|
192
|
+
var _a;
|
|
193
|
+
nextTick((_a = popper.value) == null ? void 0 : _a.update);
|
|
192
194
|
};
|
|
193
195
|
const hideSuggestionPanel = () => {
|
|
194
196
|
filtering.value = false;
|
|
@@ -204,9 +206,10 @@ var script = defineComponent({
|
|
|
204
206
|
};
|
|
205
207
|
};
|
|
206
208
|
const deleteTag = (tag) => {
|
|
207
|
-
|
|
209
|
+
var _a;
|
|
210
|
+
const node = tag.node;
|
|
208
211
|
node.doCheck(false);
|
|
209
|
-
panel.value.calculateCheckedValue();
|
|
212
|
+
(_a = panel.value) == null ? void 0 : _a.calculateCheckedValue();
|
|
210
213
|
emit("remove-tag", node.valueByOption);
|
|
211
214
|
};
|
|
212
215
|
const calculatePresentTags = () => {
|
|
@@ -233,8 +236,9 @@ var script = defineComponent({
|
|
|
233
236
|
presentTags.value = tags;
|
|
234
237
|
};
|
|
235
238
|
const calculateSuggestions = () => {
|
|
239
|
+
var _a, _b;
|
|
236
240
|
const { filterMethod, showAllLevels, separator } = props;
|
|
237
|
-
const res = panel.value.getFlattedNodes(!props.props.checkStrictly).filter((node) => {
|
|
241
|
+
const res = (_b = (_a = panel.value) == null ? void 0 : _a.getFlattedNodes(!props.props.checkStrictly)) == null ? void 0 : _b.filter((node) => {
|
|
238
242
|
if (node.isDisabled)
|
|
239
243
|
return false;
|
|
240
244
|
node.calcText(showAllLevels, separator);
|
|
@@ -251,7 +255,7 @@ var script = defineComponent({
|
|
|
251
255
|
};
|
|
252
256
|
const focusFirstNode = () => {
|
|
253
257
|
var _a;
|
|
254
|
-
let firstNode
|
|
258
|
+
let firstNode;
|
|
255
259
|
if (filtering.value && suggestionPanel.value) {
|
|
256
260
|
firstNode = suggestionPanel.value.$el.querySelector(".el-cascader__suggestion-item");
|
|
257
261
|
} else {
|
|
@@ -263,10 +267,10 @@ var script = defineComponent({
|
|
|
263
267
|
}
|
|
264
268
|
};
|
|
265
269
|
const updateStyle = () => {
|
|
266
|
-
var _a;
|
|
267
|
-
const inputInner = input.value.input;
|
|
270
|
+
var _a, _b;
|
|
271
|
+
const inputInner = (_a = input.value) == null ? void 0 : _a.input;
|
|
268
272
|
const tagWrapperEl = tagWrapper.value;
|
|
269
|
-
const suggestionPanelEl = (
|
|
273
|
+
const suggestionPanelEl = (_b = suggestionPanel.value) == null ? void 0 : _b.$el;
|
|
270
274
|
if (isServer || !inputInner)
|
|
271
275
|
return;
|
|
272
276
|
if (suggestionPanelEl) {
|
|
@@ -281,7 +285,8 @@ var script = defineComponent({
|
|
|
281
285
|
}
|
|
282
286
|
};
|
|
283
287
|
const getCheckedNodes = (leafOnly) => {
|
|
284
|
-
|
|
288
|
+
var _a;
|
|
289
|
+
return (_a = panel.value) == null ? void 0 : _a.getCheckedNodes(leafOnly);
|
|
285
290
|
};
|
|
286
291
|
const handleExpandChange = (value) => {
|
|
287
292
|
updatePopperPosition();
|
|
@@ -317,15 +322,17 @@ var script = defineComponent({
|
|
|
317
322
|
}
|
|
318
323
|
};
|
|
319
324
|
const handleClear = () => {
|
|
320
|
-
|
|
325
|
+
var _a;
|
|
326
|
+
(_a = panel.value) == null ? void 0 : _a.clearCheckedNodes();
|
|
321
327
|
togglePopperVisible(false);
|
|
322
328
|
};
|
|
323
329
|
const handleSuggestionClick = (node) => {
|
|
330
|
+
var _a, _b;
|
|
324
331
|
const { checked } = node;
|
|
325
332
|
if (multiple.value) {
|
|
326
|
-
panel.value.handleCheckChange(node, !checked, false);
|
|
333
|
+
(_a = panel.value) == null ? void 0 : _a.handleCheckChange(node, !checked, false);
|
|
327
334
|
} else {
|
|
328
|
-
!checked && panel.value.handleCheckChange(node, true, false);
|
|
335
|
+
!checked && ((_b = panel.value) == null ? void 0 : _b.handleCheckChange(node, true, false));
|
|
329
336
|
togglePopperVisible(false);
|
|
330
337
|
}
|
|
331
338
|
};
|
|
@@ -387,12 +394,14 @@ var script = defineComponent({
|
|
|
387
394
|
});
|
|
388
395
|
watch(presentText, (val) => inputValue.value = val, { immediate: true });
|
|
389
396
|
onMounted(() => {
|
|
390
|
-
|
|
397
|
+
var _a;
|
|
398
|
+
const inputEl = (_a = input.value) == null ? void 0 : _a.$el;
|
|
391
399
|
inputInitialHeight = (inputEl == null ? void 0 : inputEl.offsetHeight) || INPUT_HEIGHT_MAP[realSize.value] || DEFAULT_INPUT_HEIGHT;
|
|
392
400
|
addResizeListener(inputEl, updateStyle);
|
|
393
401
|
});
|
|
394
402
|
onBeforeUnmount(() => {
|
|
395
|
-
|
|
403
|
+
var _a;
|
|
404
|
+
removeResizeListener((_a = input.value) == null ? void 0 : _a.$el, updateStyle);
|
|
396
405
|
});
|
|
397
406
|
return {
|
|
398
407
|
Effect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__suggestion-list\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper = ref(null)\n const input = ref(null)\n const tagWrapper = ref(null)\n const panel = ref(null)\n const suggestionPanel = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value.input.setAttribute('aria-expanded', visible)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const { node } = tag\n node.doCheck(false)\n panel.value.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n .getFlattedNodes(!props.props.checkStrictly)\n .filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode = null\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["ElCascaderPanel","ElPopper","ElScrollbar","Clickoutside"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__suggestion-list\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype popperType = InstanceType<typeof ElPopper>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper: Ref<popperType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value?.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value?.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["ElCascaderPanel","ElPopper","ElScrollbar","Clickoutside"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue_vue&type=template&id=0429c2db&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue?vue&type=template&id=0429c2db&lang.js"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__suggestion-list\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper = ref(null)\n const input = ref(null)\n const tagWrapper = ref(null)\n const panel = ref(null)\n const suggestionPanel = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value.input.setAttribute('aria-expanded', visible)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const { node } = tag\n node.doCheck(false)\n panel.value.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n .getFlattedNodes(!props.props.checkStrictly)\n .filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode = null\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_createElementVNode","_createVNode","_createElementBlock","_renderSlot"],"mappings":";;;;EAsE6B,KAAI;AAAA,EAAa,OAAM;AAAA;;;qBAmEtC,OAAM;;;;;;;;;;;;sBAxIlBA;IACE,KAAI;AAAA,IACI,SAAS;gEAAA;IACjB,eAAA;AAAA,IACC,kBAAgB;IACjB,WAAU;AAAA,IACT,yCAAuC;IACvC,kBAAgB;IAChB,uBAAqB;IACrB,2BAAyB;AAAA,IAC1B,YAAW;AAAA,IACV,oBAAkB;AAAA,IAClB,QAAQ,YAAO;AAAA,IAChB,MAAA;AAAA,IACC,cAAa;;IAEH,iBACT;qBAAAC;QAEG;;;;;QAKA,2CAAa,yBAAoB,gBAAW;QAC5C,oDAAS;QACT,sDAAY;QACZ,sDAAY;;QAEbC;UACE,KAAI;AAAA,sBACU;uEAAA;0BAAd;UACC,aAAa;UACb,UAAU;UACV,UAAU;UACV,kBAAgB;AAAA,UAChB,MAAM;UACN,oCAAqB;UACrB,oBAAkB;UAClB,qBAAmB;UACnB,kBAAgB;UAChB,oCAAQ,MAAM,oBAAe;AAAA,UAC7B,mCAAO,MAAM,mBAAc;AAAA,UAC3B,SAAO;;UAEG,gBACT;YACQ,qCADRF;cAEE,KAAI;AAAA,cACJ,OAAM;AAAA,cACL,uBAAY;;+BAEb;gBAAAE;;;gDAEFF;cAEE,KAAI;AAAA,cACH;;;;;cAKA,6DAAY;;+BAEb;gBAAAE;;;;;;;QAKK,8BAAXC,0BAAA;4BACEA,8CACgB,mBAAP;gCADTH;cAEG,KAAK,IAAI;AAAA,cACV,MAAK;AAAA,cACJ,MAAM;cACN,KAAK,IAAI;AAAA,cACT,UAAU,IAAI;AAAA,cACf,uBAAA;AAAA,cACC,qBAAO,eAAU;AAAA;+BAElB;gBAAAC,iDAAS,IAAI;;;;;UAGP,oBAAe,+CADvBE;;yEAEgB;YACd,MAAK;AAAA,YACL,OAAM;AAAA,YACL,aAAa,wBAAmB;YAChC,oCAAQ,MAAM,iBAAY,uBAAkB;AAAA,YAC5C,6DAAY;YACZ,2DAAgB;YAChB,2DAAkB;YAClB,4DAAmB;YACnB,2DAAgB;;;;cATH;;sBAAd;AAAA;AAAA;;;wCAlEkC,iCAAvB;;;IAiFR,iBACT;qBAAAD;QAEE,KAAI;AAAA,oBACK;uEAAA;QACR,SAAS;QACT,OAAO;QACP,QAAQ;AAAA,QACR,gBAAc,YAAO;AAAA,QACrB,gBAAe;QACf,iDAAO;;iBARC;;MAWH,+CADRF;;QAGE,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,WAAS;;yBAEV;UAAgB,iBAAY,2BAC1BG,oDACiB,mBAAR;gCADTA;cAEG,KAAK,KAAK;AAAA,cACV;;;;cAIA,UAAU;AAAA,cACV,qBAAO,2BAAsB;AAAA;cAE9BF,iDAAS,KAAK;cACC,KAAK,wBAApBD;iCAA6B;kBAAAE,YAAS;AAAA;AAAA;;;sBAG1CE,6CAAA;YACEH,yBAAA,4BACK;;;;;gBAxBC;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.vue_vue&type=template&id=0429c2db&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue?vue&type=template&id=0429c2db&lang.js"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__suggestion-list\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype popperType = InstanceType<typeof ElPopper>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper: Ref<popperType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value?.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value?.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_createElementVNode","_createVNode","_createElementBlock","_renderSlot"],"mappings":";;;;EAsE6B,KAAI;AAAA,EAAa,OAAM;AAAA;;;qBAmEtC,OAAM;;;;;;;;;;;;sBAxIlBA;IACE,KAAI;AAAA,IACI,SAAS;gEAAA;IACjB,eAAA;AAAA,IACC,kBAAgB;IACjB,WAAU;AAAA,IACT,yCAAuC;IACvC,kBAAgB;IAChB,uBAAqB;IACrB,2BAAyB;AAAA,IAC1B,YAAW;AAAA,IACV,oBAAkB;AAAA,IAClB,QAAQ,YAAO;AAAA,IAChB,MAAA;AAAA,IACC,cAAa;;IAEH,iBACT;qBAAAC;QAEG;;;;;QAKA,2CAAa,yBAAoB,gBAAW;QAC5C,oDAAS;QACT,sDAAY;QACZ,sDAAY;;QAEbC;UACE,KAAI;AAAA,sBACU;uEAAA;0BAAd;UACC,aAAa;UACb,UAAU;UACV,UAAU;UACV,kBAAgB;AAAA,UAChB,MAAM;UACN,oCAAqB;UACrB,oBAAkB;UAClB,qBAAmB;UACnB,kBAAgB;UAChB,oCAAQ,MAAM,oBAAe;AAAA,UAC7B,mCAAO,MAAM,mBAAc;AAAA,UAC3B,SAAO;;UAEG,gBACT;YACQ,qCADRF;cAEE,KAAI;AAAA,cACJ,OAAM;AAAA,cACL,uBAAY;;+BAEb;gBAAAE;;;gDAEFF;cAEE,KAAI;AAAA,cACH;;;;;cAKA,6DAAY;;+BAEb;gBAAAE;;;;;;;QAKK,8BAAXC,0BAAA;4BACEA,8CACgB,mBAAP;gCADTH;cAEG,KAAK,IAAI;AAAA,cACV,MAAK;AAAA,cACJ,MAAM;cACN,KAAK,IAAI;AAAA,cACT,UAAU,IAAI;AAAA,cACf,uBAAA;AAAA,cACC,qBAAO,eAAU;AAAA;+BAElB;gBAAAC,iDAAS,IAAI;;;;;UAGP,oBAAe,+CADvBE;;yEAEgB;YACd,MAAK;AAAA,YACL,OAAM;AAAA,YACL,aAAa,wBAAmB;YAChC,oCAAQ,MAAM,iBAAY,uBAAkB;AAAA,YAC5C,6DAAY;YACZ,2DAAgB;YAChB,2DAAkB;YAClB,4DAAmB;YACnB,2DAAgB;;;;cATH;;sBAAd;AAAA;AAAA;;;wCAlEkC,iCAAvB;;;IAiFR,iBACT;qBAAAD;QAEE,KAAI;AAAA,oBACK;uEAAA;QACR,SAAS;QACT,OAAO;QACP,QAAQ;AAAA,QACR,gBAAc,YAAO;AAAA,QACrB,gBAAe;QACf,iDAAO;;iBARC;;MAWH,+CADRF;;QAGE,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,WAAS;;yBAEV;UAAgB,iBAAY,2BAC1BG,oDACiB,mBAAR;gCADTA;cAEG,KAAK,KAAK;AAAA,cACV;;;;cAIA,UAAU;AAAA,cACV,qBAAO,2BAAsB;AAAA;cAE9BF,iDAAS,KAAK;cACC,KAAK,wBAApBD;iCAA6B;kBAAAE,YAAS;AAAA;AAAA;;;sBAG1CE,6CAAA;YACEH,yBAAA,4BACK;;;;;gBAxBC;;;;;;;;;"}
|
|
@@ -15,13 +15,127 @@ declare const _CascaderPanel: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
15
15
|
default: () => import("./src/node").CascaderProps;
|
|
16
16
|
};
|
|
17
17
|
}, {
|
|
18
|
-
menuList: import("vue").Ref<
|
|
19
|
-
menus: import("vue").Ref<
|
|
20
|
-
|
|
18
|
+
menuList: import("vue").Ref<any[]>;
|
|
19
|
+
menus: import("vue").Ref<{
|
|
20
|
+
readonly uid: number;
|
|
21
|
+
readonly level: number;
|
|
22
|
+
readonly value: import("./src/node").CascaderNodeValue;
|
|
23
|
+
readonly label: string;
|
|
24
|
+
readonly pathNodes: any[];
|
|
25
|
+
readonly pathValues: import("./src/node").CascaderNodeValue[];
|
|
26
|
+
readonly pathLabels: string[];
|
|
27
|
+
childrenData: {
|
|
28
|
+
[x: string]: unknown;
|
|
29
|
+
label?: string | undefined;
|
|
30
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
31
|
+
children?: any[] | undefined;
|
|
32
|
+
disabled?: boolean | undefined;
|
|
33
|
+
leaf?: boolean | undefined;
|
|
34
|
+
}[] | undefined;
|
|
35
|
+
children: any[];
|
|
36
|
+
text: string;
|
|
37
|
+
loaded: boolean;
|
|
38
|
+
checked: boolean;
|
|
39
|
+
indeterminate: boolean;
|
|
40
|
+
loading: boolean;
|
|
41
|
+
readonly data: {
|
|
42
|
+
[x: string]: unknown;
|
|
43
|
+
label?: string | undefined;
|
|
44
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
45
|
+
children?: any[] | undefined;
|
|
46
|
+
disabled?: boolean | undefined;
|
|
47
|
+
leaf?: boolean | undefined;
|
|
48
|
+
} | null;
|
|
49
|
+
readonly config: {
|
|
50
|
+
expandTrigger: import("./src/node").ExpandTrigger;
|
|
51
|
+
multiple: boolean;
|
|
52
|
+
checkStrictly: boolean;
|
|
53
|
+
emitPath: boolean;
|
|
54
|
+
lazy: boolean;
|
|
55
|
+
lazyLoad: import("./src/node").LazyLoad;
|
|
56
|
+
value: string;
|
|
57
|
+
label: string;
|
|
58
|
+
children: string;
|
|
59
|
+
disabled: string | import("./src/node").isDisabled;
|
|
60
|
+
leaf: string | import("./src/node").isLeaf;
|
|
61
|
+
hoverThreshold: number;
|
|
62
|
+
};
|
|
63
|
+
readonly parent?: any | undefined;
|
|
64
|
+
readonly root: boolean;
|
|
65
|
+
readonly isDisabled: boolean;
|
|
66
|
+
readonly isLeaf: boolean;
|
|
67
|
+
readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
|
|
68
|
+
appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
|
|
69
|
+
calcText: (allLevels: boolean, separator: string) => string;
|
|
70
|
+
broadcast: (event: string, ...args: unknown[]) => void;
|
|
71
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
72
|
+
onParentCheck: (checked: boolean) => void;
|
|
73
|
+
onChildCheck: () => void;
|
|
74
|
+
setCheckState: (checked: boolean) => void;
|
|
75
|
+
doCheck: (checked: boolean) => void;
|
|
76
|
+
}[][]>;
|
|
77
|
+
checkedNodes: import("vue").Ref<{
|
|
78
|
+
readonly uid: number;
|
|
79
|
+
readonly level: number;
|
|
80
|
+
readonly value: import("./src/node").CascaderNodeValue;
|
|
81
|
+
readonly label: string;
|
|
82
|
+
readonly pathNodes: any[];
|
|
83
|
+
readonly pathValues: import("./src/node").CascaderNodeValue[];
|
|
84
|
+
readonly pathLabels: string[];
|
|
85
|
+
childrenData: {
|
|
86
|
+
[x: string]: unknown;
|
|
87
|
+
label?: string | undefined;
|
|
88
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
89
|
+
children?: any[] | undefined;
|
|
90
|
+
disabled?: boolean | undefined;
|
|
91
|
+
leaf?: boolean | undefined;
|
|
92
|
+
}[] | undefined;
|
|
93
|
+
children: any[];
|
|
94
|
+
text: string;
|
|
95
|
+
loaded: boolean;
|
|
96
|
+
checked: boolean;
|
|
97
|
+
indeterminate: boolean;
|
|
98
|
+
loading: boolean;
|
|
99
|
+
readonly data: {
|
|
100
|
+
[x: string]: unknown;
|
|
101
|
+
label?: string | undefined;
|
|
102
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
103
|
+
children?: any[] | undefined;
|
|
104
|
+
disabled?: boolean | undefined;
|
|
105
|
+
leaf?: boolean | undefined;
|
|
106
|
+
} | null;
|
|
107
|
+
readonly config: {
|
|
108
|
+
expandTrigger: import("./src/node").ExpandTrigger;
|
|
109
|
+
multiple: boolean;
|
|
110
|
+
checkStrictly: boolean;
|
|
111
|
+
emitPath: boolean;
|
|
112
|
+
lazy: boolean;
|
|
113
|
+
lazyLoad: import("./src/node").LazyLoad;
|
|
114
|
+
value: string;
|
|
115
|
+
label: string;
|
|
116
|
+
children: string;
|
|
117
|
+
disabled: string | import("./src/node").isDisabled;
|
|
118
|
+
leaf: string | import("./src/node").isLeaf;
|
|
119
|
+
hoverThreshold: number;
|
|
120
|
+
};
|
|
121
|
+
readonly parent?: any | undefined;
|
|
122
|
+
readonly root: boolean;
|
|
123
|
+
readonly isDisabled: boolean;
|
|
124
|
+
readonly isLeaf: boolean;
|
|
125
|
+
readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
|
|
126
|
+
appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
|
|
127
|
+
calcText: (allLevels: boolean, separator: string) => string;
|
|
128
|
+
broadcast: (event: string, ...args: unknown[]) => void;
|
|
129
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
130
|
+
onParentCheck: (checked: boolean) => void;
|
|
131
|
+
onChildCheck: () => void;
|
|
132
|
+
setCheckState: (checked: boolean) => void;
|
|
133
|
+
doCheck: (checked: boolean) => void;
|
|
134
|
+
}[]>;
|
|
21
135
|
handleKeyDown: (e: KeyboardEvent) => void;
|
|
22
136
|
handleCheckChange: (node: import("./src/node").default, checked: boolean, emitClose?: boolean | undefined) => void;
|
|
23
|
-
getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[];
|
|
24
|
-
getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[];
|
|
137
|
+
getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
|
|
138
|
+
getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
|
|
25
139
|
clearCheckedNodes: () => void;
|
|
26
140
|
calculateCheckedValue: () => void;
|
|
27
141
|
scrollToExpandingNode: () => void;
|
|
@@ -65,13 +179,127 @@ export declare const ElCascaderPanel: SFCWithInstall<import("vue").DefineCompone
|
|
|
65
179
|
default: () => import("./src/node").CascaderProps;
|
|
66
180
|
};
|
|
67
181
|
}, {
|
|
68
|
-
menuList: import("vue").Ref<
|
|
69
|
-
menus: import("vue").Ref<
|
|
70
|
-
|
|
182
|
+
menuList: import("vue").Ref<any[]>;
|
|
183
|
+
menus: import("vue").Ref<{
|
|
184
|
+
readonly uid: number;
|
|
185
|
+
readonly level: number;
|
|
186
|
+
readonly value: import("./src/node").CascaderNodeValue;
|
|
187
|
+
readonly label: string;
|
|
188
|
+
readonly pathNodes: any[];
|
|
189
|
+
readonly pathValues: import("./src/node").CascaderNodeValue[];
|
|
190
|
+
readonly pathLabels: string[];
|
|
191
|
+
childrenData: {
|
|
192
|
+
[x: string]: unknown;
|
|
193
|
+
label?: string | undefined;
|
|
194
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
195
|
+
children?: any[] | undefined;
|
|
196
|
+
disabled?: boolean | undefined;
|
|
197
|
+
leaf?: boolean | undefined;
|
|
198
|
+
}[] | undefined;
|
|
199
|
+
children: any[];
|
|
200
|
+
text: string;
|
|
201
|
+
loaded: boolean;
|
|
202
|
+
checked: boolean;
|
|
203
|
+
indeterminate: boolean;
|
|
204
|
+
loading: boolean;
|
|
205
|
+
readonly data: {
|
|
206
|
+
[x: string]: unknown;
|
|
207
|
+
label?: string | undefined;
|
|
208
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
209
|
+
children?: any[] | undefined;
|
|
210
|
+
disabled?: boolean | undefined;
|
|
211
|
+
leaf?: boolean | undefined;
|
|
212
|
+
} | null;
|
|
213
|
+
readonly config: {
|
|
214
|
+
expandTrigger: import("./src/node").ExpandTrigger;
|
|
215
|
+
multiple: boolean;
|
|
216
|
+
checkStrictly: boolean;
|
|
217
|
+
emitPath: boolean;
|
|
218
|
+
lazy: boolean;
|
|
219
|
+
lazyLoad: import("./src/node").LazyLoad;
|
|
220
|
+
value: string;
|
|
221
|
+
label: string;
|
|
222
|
+
children: string;
|
|
223
|
+
disabled: string | import("./src/node").isDisabled;
|
|
224
|
+
leaf: string | import("./src/node").isLeaf;
|
|
225
|
+
hoverThreshold: number;
|
|
226
|
+
};
|
|
227
|
+
readonly parent?: any | undefined;
|
|
228
|
+
readonly root: boolean;
|
|
229
|
+
readonly isDisabled: boolean;
|
|
230
|
+
readonly isLeaf: boolean;
|
|
231
|
+
readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
|
|
232
|
+
appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
|
|
233
|
+
calcText: (allLevels: boolean, separator: string) => string;
|
|
234
|
+
broadcast: (event: string, ...args: unknown[]) => void;
|
|
235
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
236
|
+
onParentCheck: (checked: boolean) => void;
|
|
237
|
+
onChildCheck: () => void;
|
|
238
|
+
setCheckState: (checked: boolean) => void;
|
|
239
|
+
doCheck: (checked: boolean) => void;
|
|
240
|
+
}[][]>;
|
|
241
|
+
checkedNodes: import("vue").Ref<{
|
|
242
|
+
readonly uid: number;
|
|
243
|
+
readonly level: number;
|
|
244
|
+
readonly value: import("./src/node").CascaderNodeValue;
|
|
245
|
+
readonly label: string;
|
|
246
|
+
readonly pathNodes: any[];
|
|
247
|
+
readonly pathValues: import("./src/node").CascaderNodeValue[];
|
|
248
|
+
readonly pathLabels: string[];
|
|
249
|
+
childrenData: {
|
|
250
|
+
[x: string]: unknown;
|
|
251
|
+
label?: string | undefined;
|
|
252
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
253
|
+
children?: any[] | undefined;
|
|
254
|
+
disabled?: boolean | undefined;
|
|
255
|
+
leaf?: boolean | undefined;
|
|
256
|
+
}[] | undefined;
|
|
257
|
+
children: any[];
|
|
258
|
+
text: string;
|
|
259
|
+
loaded: boolean;
|
|
260
|
+
checked: boolean;
|
|
261
|
+
indeterminate: boolean;
|
|
262
|
+
loading: boolean;
|
|
263
|
+
readonly data: {
|
|
264
|
+
[x: string]: unknown;
|
|
265
|
+
label?: string | undefined;
|
|
266
|
+
value?: import("./src/node").CascaderNodeValue | undefined;
|
|
267
|
+
children?: any[] | undefined;
|
|
268
|
+
disabled?: boolean | undefined;
|
|
269
|
+
leaf?: boolean | undefined;
|
|
270
|
+
} | null;
|
|
271
|
+
readonly config: {
|
|
272
|
+
expandTrigger: import("./src/node").ExpandTrigger;
|
|
273
|
+
multiple: boolean;
|
|
274
|
+
checkStrictly: boolean;
|
|
275
|
+
emitPath: boolean;
|
|
276
|
+
lazy: boolean;
|
|
277
|
+
lazyLoad: import("./src/node").LazyLoad;
|
|
278
|
+
value: string;
|
|
279
|
+
label: string;
|
|
280
|
+
children: string;
|
|
281
|
+
disabled: string | import("./src/node").isDisabled;
|
|
282
|
+
leaf: string | import("./src/node").isLeaf;
|
|
283
|
+
hoverThreshold: number;
|
|
284
|
+
};
|
|
285
|
+
readonly parent?: any | undefined;
|
|
286
|
+
readonly root: boolean;
|
|
287
|
+
readonly isDisabled: boolean;
|
|
288
|
+
readonly isLeaf: boolean;
|
|
289
|
+
readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
|
|
290
|
+
appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
|
|
291
|
+
calcText: (allLevels: boolean, separator: string) => string;
|
|
292
|
+
broadcast: (event: string, ...args: unknown[]) => void;
|
|
293
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
294
|
+
onParentCheck: (checked: boolean) => void;
|
|
295
|
+
onChildCheck: () => void;
|
|
296
|
+
setCheckState: (checked: boolean) => void;
|
|
297
|
+
doCheck: (checked: boolean) => void;
|
|
298
|
+
}[]>;
|
|
71
299
|
handleKeyDown: (e: KeyboardEvent) => void;
|
|
72
300
|
handleCheckChange: (node: import("./src/node").default, checked: boolean, emitClose?: boolean | undefined) => void;
|
|
73
|
-
getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[];
|
|
74
|
-
getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[];
|
|
301
|
+
getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
|
|
302
|
+
getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
|
|
75
303
|
clearCheckedNodes: () => void;
|
|
76
304
|
calculateCheckedValue: () => void;
|
|
77
305
|
scrollToExpandingNode: () => void;
|