element-pe 2.2.47 → 2.2.49
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/dist/index.full.js +13 -13
- package/dist/index.full.min.js +2 -2
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +9 -9
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +13 -13
- package/es/components/affix/index.mjs +2 -2
- package/es/components/affix/src/affix.mjs +26 -119
- package/es/components/affix/src/affix.mjs.map +1 -1
- package/es/components/affix/src/affix2.mjs +119 -26
- package/es/components/affix/src/affix2.mjs.map +1 -1
- package/es/components/alert/index.d.ts +4 -4
- package/es/components/alert/src/alert.d.ts +1 -1
- package/es/components/alert/src/alert.vue.d.ts +4 -4
- package/es/components/autocomplete/index.d.ts +65 -65
- package/es/components/autocomplete/index.mjs +2 -2
- package/es/components/autocomplete/src/autocomplete.mjs +82 -362
- package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
- package/es/components/autocomplete/src/autocomplete.vue.d.ts +65 -65
- package/es/components/autocomplete/src/autocomplete2.mjs +362 -82
- package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
- package/es/components/avatar/index.mjs +2 -2
- package/es/components/avatar/src/avatar.mjs +32 -69
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/avatar/src/avatar2.mjs +69 -32
- package/es/components/avatar/src/avatar2.mjs.map +1 -1
- package/es/components/backtop/index.mjs +2 -2
- package/es/components/backtop/src/backtop.mjs +23 -61
- package/es/components/backtop/src/backtop.mjs.map +1 -1
- package/es/components/backtop/src/backtop2.mjs +61 -23
- package/es/components/backtop/src/backtop2.mjs.map +1 -1
- package/es/components/badge/index.mjs +2 -2
- package/es/components/badge/src/badge.mjs +59 -17
- package/es/components/badge/src/badge.mjs.map +1 -1
- package/es/components/badge/src/badge2.mjs +17 -59
- package/es/components/badge/src/badge2.mjs.map +1 -1
- package/es/components/button/index.d.ts +5 -5
- package/es/components/button/index.mjs +1 -1
- package/es/components/button/src/button-group.mjs +6 -30
- package/es/components/button/src/button-group.mjs.map +1 -1
- package/es/components/button/src/button-group2.mjs +30 -6
- package/es/components/button/src/button-group2.mjs.map +1 -1
- package/es/components/button/src/button.d.ts +1 -1
- package/es/components/button/src/button.vue.d.ts +5 -5
- package/es/components/button/src/use-button.d.ts +1 -1
- package/es/components/calendar/index.d.ts +5 -5
- package/es/components/calendar/src/calendar.vue.d.ts +5 -5
- package/es/components/carousel/index.d.ts +5 -5
- package/es/components/carousel/index.mjs +4 -4
- package/es/components/carousel/src/carousel-item.mjs +8 -63
- package/es/components/carousel/src/carousel-item.mjs.map +1 -1
- package/es/components/carousel/src/carousel-item2.mjs +63 -8
- package/es/components/carousel/src/carousel-item2.mjs.map +1 -1
- package/es/components/carousel/src/carousel.d.ts +1 -1
- package/es/components/carousel/src/carousel.mjs +56 -164
- package/es/components/carousel/src/carousel.mjs.map +1 -1
- package/es/components/carousel/src/carousel.vue.d.ts +5 -5
- package/es/components/carousel/src/carousel2.mjs +164 -56
- package/es/components/carousel/src/carousel2.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +128 -128
- package/es/components/cascader/index.mjs +2 -2
- package/es/components/cascader/src/cascader.mjs +63 -622
- package/es/components/cascader/src/cascader.mjs.map +1 -1
- package/es/components/cascader/src/cascader.vue.d.ts +64 -64
- package/es/components/cascader/src/cascader2.mjs +622 -63
- package/es/components/cascader/src/cascader2.mjs.map +1 -1
- package/es/components/check-tag/index.mjs +2 -2
- package/es/components/check-tag/src/check-tag.mjs +30 -12
- package/es/components/check-tag/src/check-tag.mjs.map +1 -1
- package/es/components/check-tag/src/check-tag2.mjs +12 -30
- package/es/components/check-tag/src/check-tag2.mjs.map +1 -1
- package/es/components/checkbox/index.mjs +2 -2
- package/es/components/checkbox/src/checkbox-group.mjs +28 -72
- package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox-group2.mjs +72 -28
- package/es/components/checkbox/src/checkbox-group2.mjs.map +1 -1
- package/es/components/col/index.mjs +2 -2
- package/es/components/col/src/col.mjs +66 -43
- package/es/components/col/src/col.mjs.map +1 -1
- package/es/components/col/src/col2.mjs +43 -66
- package/es/components/col/src/col2.mjs.map +1 -1
- package/es/components/collection/index.mjs +1 -1
- package/es/components/collection/src/collection.mjs +10 -62
- package/es/components/collection/src/collection.mjs.map +1 -1
- package/es/components/collection/src/collection2.mjs +62 -10
- package/es/components/collection/src/collection2.mjs.map +1 -1
- package/es/components/color-picker/index.d.ts +35 -35
- package/es/components/color-picker/src/color-picker.vue.d.ts +35 -35
- package/es/components/countdown/index.mjs +2 -2
- package/es/components/countdown/src/countdown.mjs +23 -76
- package/es/components/countdown/src/countdown.mjs.map +1 -1
- package/es/components/countdown/src/countdown2.mjs +76 -23
- package/es/components/countdown/src/countdown2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +17 -17
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +17 -17
- package/es/components/date-picker/src/panel-utils.d.ts +34 -34
- package/es/components/descriptions/index.mjs +2 -2
- package/es/components/descriptions/src/description.mjs +120 -27
- package/es/components/descriptions/src/description.mjs.map +1 -1
- package/es/components/descriptions/src/description2.mjs +27 -120
- package/es/components/descriptions/src/description2.mjs.map +1 -1
- package/es/components/dialog/index.d.ts +1 -1
- package/es/components/dialog/index.mjs +2 -2
- package/es/components/dialog/src/dialog-content.mjs +94 -39
- package/es/components/dialog/src/dialog-content.mjs.map +1 -1
- package/es/components/dialog/src/dialog-content2.mjs +39 -94
- package/es/components/dialog/src/dialog-content2.mjs.map +1 -1
- package/es/components/dialog/src/dialog.mjs +174 -73
- package/es/components/dialog/src/dialog.mjs.map +1 -1
- package/es/components/dialog/src/dialog.vue.d.ts +1 -1
- package/es/components/dialog/src/dialog2.mjs +73 -174
- package/es/components/dialog/src/dialog2.mjs.map +1 -1
- package/es/components/drawer/src/drawer.mjs +1 -1
- package/es/components/dropdown/index.d.ts +28 -28
- package/es/components/dropdown/index.mjs +2 -2
- package/es/components/dropdown/src/dropdown-item-impl.mjs +6 -6
- package/es/components/dropdown/src/dropdown-item-impl.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item-impl.vue.d.ts +4 -4
- package/es/components/dropdown/src/dropdown-item.mjs +2 -2
- package/es/components/dropdown/src/dropdown-item.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue.d.ts +1 -1
- package/es/components/dropdown/src/dropdown-menu.mjs +6 -6
- package/es/components/dropdown/src/dropdown-menu.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue.d.ts +7 -7
- package/es/components/dropdown/src/dropdown.mjs +105 -310
- package/es/components/dropdown/src/dropdown.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +12 -12
- package/es/components/dropdown/src/dropdown2.mjs +310 -105
- package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
- package/es/components/focus-trap/src/focus-trap.mjs +2 -1
- package/es/components/focus-trap/src/focus-trap.mjs.map +1 -1
- package/es/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
- package/es/components/form/index.d.ts +12 -12
- package/es/components/form/index.mjs +2 -2
- package/es/components/form/src/form-item.d.ts +1 -1
- package/es/components/form/src/form-item.mjs +326 -46
- package/es/components/form/src/form-item.mjs.map +1 -1
- package/es/components/form/src/form-item.vue.d.ts +5 -5
- package/es/components/form/src/form-item2.mjs +46 -326
- package/es/components/form/src/form-item2.mjs.map +1 -1
- package/es/components/icon/index.mjs +2 -2
- package/es/components/icon/src/icon.mjs +36 -8
- package/es/components/icon/src/icon.mjs.map +1 -1
- package/es/components/icon/src/icon2.mjs +8 -36
- package/es/components/icon/src/icon2.mjs.map +1 -1
- package/es/components/image/index.d.ts +1 -1
- package/es/components/image/index.mjs +2 -2
- package/es/components/image/src/image.mjs +65 -226
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/image/src/image.vue.d.ts +1 -1
- package/es/components/image/src/image2.mjs +226 -65
- package/es/components/image/src/image2.mjs.map +1 -1
- package/es/components/index.mjs +41 -41
- package/es/components/input/index.d.ts +12 -12
- package/es/components/input/src/input.vue.d.ts +12 -12
- package/es/components/input-number/index.d.ts +45 -45
- package/es/components/input-number/src/input-number.vue.d.ts +45 -45
- package/es/components/menu/index.d.ts +3 -3
- package/es/components/menu/index.mjs +4 -4
- package/es/components/menu/src/menu-item-group.mjs +35 -4
- package/es/components/menu/src/menu-item-group.mjs.map +1 -1
- package/es/components/menu/src/menu-item-group2.mjs +4 -35
- package/es/components/menu/src/menu-item-group2.mjs.map +1 -1
- package/es/components/menu/src/menu-item.mjs +97 -14
- package/es/components/menu/src/menu-item.mjs.map +1 -1
- package/es/components/menu/src/menu-item2.mjs +14 -97
- package/es/components/menu/src/menu-item2.mjs.map +1 -1
- package/es/components/menu/src/menu.d.ts +4 -4
- package/es/components/message/index.mjs +1 -1
- package/es/components/message/src/message.d.ts +1 -1
- package/es/components/message/src/message.mjs +151 -86
- package/es/components/message/src/message.mjs.map +1 -1
- package/es/components/message/src/message.vue.d.ts +4 -4
- package/es/components/message/src/message2.mjs +86 -151
- package/es/components/message/src/message2.mjs.map +1 -1
- package/es/components/message/src/method.mjs +2 -2
- package/es/components/notification/index.mjs +1 -1
- package/es/components/notification/src/notification.d.ts +1 -1
- package/es/components/notification/src/notification.mjs +69 -149
- package/es/components/notification/src/notification.mjs.map +1 -1
- package/es/components/notification/src/notification.vue.d.ts +4 -4
- package/es/components/notification/src/notification2.mjs +149 -69
- package/es/components/notification/src/notification2.mjs.map +1 -1
- package/es/components/notification/src/notify.mjs +2 -2
- package/es/components/page-header/index.mjs +2 -2
- package/es/components/page-header/src/page-header.mjs +103 -17
- package/es/components/page-header/src/page-header.mjs.map +1 -1
- package/es/components/page-header/src/page-header2.mjs +17 -103
- package/es/components/page-header/src/page-header2.mjs.map +1 -1
- package/es/components/pagination/src/components/jumper.vue.d.ts +12 -12
- package/es/components/pagination/src/components/pager.mjs +17 -216
- package/es/components/pagination/src/components/pager.mjs.map +1 -1
- package/es/components/pagination/src/components/pager2.mjs +216 -17
- package/es/components/pagination/src/components/pager2.mjs.map +1 -1
- package/es/components/pagination/src/components/prev.mjs +38 -18
- package/es/components/pagination/src/components/prev.mjs.map +1 -1
- package/es/components/pagination/src/components/prev2.mjs +18 -38
- package/es/components/pagination/src/components/prev2.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue.d.ts +14 -14
- package/es/components/pagination/src/pagination.mjs +2 -2
- package/es/components/popconfirm/index.d.ts +23 -23
- package/es/components/popconfirm/src/popconfirm.mjs +1 -1
- package/es/components/popconfirm/src/popconfirm.vue.d.ts +23 -23
- package/es/components/popover/index.d.ts +18 -18
- package/es/components/popover/index.mjs +2 -2
- package/es/components/popover/src/popover.mjs +111 -66
- package/es/components/popover/src/popover.mjs.map +1 -1
- package/es/components/popover/src/popover.vue.d.ts +18 -18
- package/es/components/popover/src/popover2.mjs +66 -111
- package/es/components/popover/src/popover2.mjs.map +1 -1
- package/es/components/popper/index.mjs +4 -4
- package/es/components/popper/src/content.vue.d.ts +6 -6
- package/es/components/popper/src/popper.mjs +25 -32
- package/es/components/popper/src/popper.mjs.map +1 -1
- package/es/components/popper/src/popper2.mjs +32 -25
- package/es/components/popper/src/popper2.mjs.map +1 -1
- package/es/components/popper/src/trigger.mjs +121 -31
- package/es/components/popper/src/trigger.mjs.map +1 -1
- package/es/components/popper/src/trigger2.mjs +31 -121
- package/es/components/popper/src/trigger2.mjs.map +1 -1
- package/es/components/progress/index.mjs +2 -2
- package/es/components/progress/src/progress.mjs +204 -59
- package/es/components/progress/src/progress.mjs.map +1 -1
- package/es/components/progress/src/progress2.mjs +59 -204
- package/es/components/progress/src/progress2.mjs.map +1 -1
- package/es/components/radio/index.mjs +2 -2
- package/es/components/radio/src/radio-group.mjs +70 -36
- package/es/components/radio/src/radio-group.mjs.map +1 -1
- package/es/components/radio/src/radio-group2.mjs +36 -70
- package/es/components/radio/src/radio-group2.mjs.map +1 -1
- package/es/components/rate/index.mjs +2 -2
- package/es/components/rate/src/rate.mjs +257 -87
- package/es/components/rate/src/rate.mjs.map +1 -1
- package/es/components/rate/src/rate2.mjs +87 -257
- package/es/components/rate/src/rate2.mjs.map +1 -1
- package/es/components/result/index.d.ts +4 -4
- package/es/components/result/src/result.d.ts +1 -1
- package/es/components/result/src/result.vue.d.ts +4 -4
- package/es/components/roving-focus-group/src/roving-focus-group.mjs +1 -1
- package/es/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/es/components/scrollbar/index.mjs +2 -2
- package/es/components/scrollbar/src/scrollbar.mjs +176 -46
- package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar2.mjs +46 -176
- package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
- package/es/components/select/index.d.ts +14 -14
- package/es/components/select/src/select.mjs +2 -2
- package/es/components/select/src/select.vue.d.ts +14 -14
- package/es/components/select/src/useSelect.d.ts +12 -12
- package/es/components/select-v2/index.d.ts +30 -30
- package/es/components/select-v2/src/defaults.mjs +1 -1
- package/es/components/select-v2/src/option-item.vue.d.ts +1 -1
- package/es/components/select-v2/src/select.vue.d.ts +15 -15
- package/es/components/select-v2/src/useSelect.d.ts +13 -13
- package/es/components/skeleton/index.mjs +4 -4
- package/es/components/skeleton/src/skeleton-item.mjs +18 -23
- package/es/components/skeleton/src/skeleton-item.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton-item2.mjs +23 -18
- package/es/components/skeleton/src/skeleton-item2.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton.mjs +22 -49
- package/es/components/skeleton/src/skeleton.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton2.mjs +49 -22
- package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
- package/es/components/slider/index.d.ts +75 -75
- package/es/components/slider/index.mjs +2 -2
- package/es/components/slider/src/button.vue.d.ts +6 -6
- package/es/components/slider/src/composables/use-slide.d.ts +24 -24
- package/es/components/slider/src/slider.mjs +233 -91
- package/es/components/slider/src/slider.mjs.map +1 -1
- package/es/components/slider/src/slider.vue.d.ts +75 -75
- package/es/components/slider/src/slider2.mjs +91 -233
- package/es/components/slider/src/slider2.mjs.map +1 -1
- package/es/components/steps/index.d.ts +16 -16
- package/es/components/steps/index.mjs +2 -2
- package/es/components/steps/src/item.d.ts +1 -1
- package/es/components/steps/src/item.mjs +19 -190
- package/es/components/steps/src/item.mjs.map +1 -1
- package/es/components/steps/src/item.vue.d.ts +4 -4
- package/es/components/steps/src/item2.mjs +190 -19
- package/es/components/steps/src/item2.mjs.map +1 -1
- package/es/components/steps/src/steps.d.ts +2 -2
- package/es/components/steps/src/steps.vue.d.ts +8 -8
- package/es/components/switch/index.mjs +2 -2
- package/es/components/switch/src/switch.mjs +243 -88
- package/es/components/switch/src/switch.mjs.map +1 -1
- package/es/components/switch/src/switch2.mjs +88 -243
- package/es/components/switch/src/switch2.mjs.map +1 -1
- package/es/components/table/index.d.ts +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +12 -12
- package/es/components/table/src/table.vue.d.ts +1 -1
- package/es/components/tabs/index.mjs +2 -2
- package/es/components/tabs/src/tab-pane.mjs +14 -73
- package/es/components/tabs/src/tab-pane.mjs.map +1 -1
- package/es/components/tabs/src/tab-pane2.mjs +73 -14
- package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
- package/es/components/tag/index.d.ts +1 -1
- package/es/components/tag/index.mjs +2 -2
- package/es/components/tag/src/tag.mjs +98 -33
- package/es/components/tag/src/tag.mjs.map +1 -1
- package/es/components/tag/src/tag.vue.d.ts +1 -1
- package/es/components/tag/src/tag2.mjs +33 -98
- package/es/components/tag/src/tag2.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +34 -34
- package/es/components/time-select/index.d.ts +62 -62
- package/es/components/time-select/src/time-select.vue.d.ts +31 -31
- package/es/components/tooltip/index.d.ts +6 -6
- package/es/components/tooltip/index.mjs +1 -1
- package/es/components/tooltip/src/content.mjs +179 -31
- package/es/components/tooltip/src/content.mjs.map +1 -1
- package/es/components/tooltip/src/content.vue.d.ts +6 -6
- package/es/components/tooltip/src/content2.mjs +31 -179
- package/es/components/tooltip/src/content2.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.mjs +2 -2
- package/es/components/tooltip/src/tooltip.vue.d.ts +6 -6
- package/es/components/tooltip/src/tooltip2.mjs +1 -1
- package/es/components/tooltip/src/trigger.mjs +1 -1
- package/es/components/tooltip/src/trigger2.mjs +1 -1
- package/es/components/tooltip-v2/index.d.ts +4 -4
- package/es/components/tooltip-v2/index.mjs +1 -1
- package/es/components/tooltip-v2/src/arrow.mjs +37 -22
- package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
- package/es/components/tooltip-v2/src/arrow2.mjs +22 -37
- package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
- package/es/components/tooltip-v2/src/content2.mjs +1 -1
- package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
- package/es/components/tooltip-v2/src/tooltip.vue.d.ts +4 -4
- package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
- package/es/components/transfer/index.d.ts +65 -65
- package/es/components/transfer/index.mjs +2 -2
- package/es/components/transfer/src/composables/use-check.mjs +1 -1
- package/es/components/transfer/src/composables/use-checked-change.mjs +1 -1
- package/es/components/transfer/src/transfer-panel.mjs +19 -128
- package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue.d.ts +12 -12
- package/es/components/transfer/src/transfer-panel2.mjs +128 -19
- package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
- package/es/components/transfer/src/transfer.mjs +69 -162
- package/es/components/transfer/src/transfer.mjs.map +1 -1
- package/es/components/transfer/src/transfer.vue.d.ts +65 -65
- package/es/components/transfer/src/transfer2.mjs +162 -69
- package/es/components/transfer/src/transfer2.mjs.map +1 -1
- package/es/components/tree-v2/index.d.ts +1 -1
- package/es/components/tree-v2/src/tree-node.vue.d.ts +1 -1
- package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/es/components/upload/index.d.ts +5 -5
- package/es/components/upload/index.mjs +1 -1
- package/es/components/upload/src/upload-content.mjs +178 -33
- package/es/components/upload/src/upload-content.mjs.map +1 -1
- package/es/components/upload/src/upload-content.vue.d.ts +1 -1
- package/es/components/upload/src/upload-content2.mjs +33 -178
- package/es/components/upload/src/upload-content2.mjs.map +1 -1
- package/es/components/upload/src/upload.vue.d.ts +5 -5
- package/es/components/upload/src/upload2.mjs +1 -1
- package/es/components/visual-hidden/index.mjs +3 -3
- package/es/components/visual-hidden/src/visual-hidden.mjs +35 -7
- package/es/components/visual-hidden/src/visual-hidden.mjs.map +1 -1
- package/es/components/visual-hidden/src/visual-hidden2.mjs +7 -35
- package/es/components/visual-hidden/src/visual-hidden2.mjs.map +1 -1
- package/es/index.mjs +41 -41
- package/lib/components/affix/index.js +2 -2
- package/lib/components/affix/src/affix.js +27 -119
- package/lib/components/affix/src/affix.js.map +1 -1
- package/lib/components/affix/src/affix2.js +119 -27
- package/lib/components/affix/src/affix2.js.map +1 -1
- package/lib/components/alert/index.d.ts +4 -4
- package/lib/components/alert/src/alert.d.ts +1 -1
- package/lib/components/alert/src/alert.vue.d.ts +4 -4
- package/lib/components/autocomplete/index.d.ts +65 -65
- package/lib/components/autocomplete/index.js +2 -2
- package/lib/components/autocomplete/src/autocomplete.js +82 -361
- package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
- package/lib/components/autocomplete/src/autocomplete.vue.d.ts +65 -65
- package/lib/components/autocomplete/src/autocomplete2.js +361 -82
- package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
- package/lib/components/avatar/index.js +2 -2
- package/lib/components/avatar/src/avatar.js +33 -69
- package/lib/components/avatar/src/avatar.js.map +1 -1
- package/lib/components/avatar/src/avatar2.js +69 -33
- package/lib/components/avatar/src/avatar2.js.map +1 -1
- package/lib/components/backtop/index.js +2 -2
- package/lib/components/backtop/src/backtop.js +24 -61
- package/lib/components/backtop/src/backtop.js.map +1 -1
- package/lib/components/backtop/src/backtop2.js +61 -24
- package/lib/components/backtop/src/backtop2.js.map +1 -1
- package/lib/components/badge/index.js +2 -2
- package/lib/components/badge/src/badge.js +59 -17
- package/lib/components/badge/src/badge.js.map +1 -1
- package/lib/components/badge/src/badge2.js +17 -59
- package/lib/components/badge/src/badge2.js.map +1 -1
- package/lib/components/button/index.d.ts +5 -5
- package/lib/components/button/index.js +1 -1
- package/lib/components/button/src/button-group.js +6 -30
- package/lib/components/button/src/button-group.js.map +1 -1
- package/lib/components/button/src/button-group2.js +30 -6
- package/lib/components/button/src/button-group2.js.map +1 -1
- package/lib/components/button/src/button.d.ts +1 -1
- package/lib/components/button/src/button.vue.d.ts +5 -5
- package/lib/components/button/src/use-button.d.ts +1 -1
- package/lib/components/calendar/index.d.ts +5 -5
- package/lib/components/calendar/src/calendar.vue.d.ts +5 -5
- package/lib/components/carousel/index.d.ts +5 -5
- package/lib/components/carousel/index.js +4 -4
- package/lib/components/carousel/src/carousel-item.js +8 -63
- package/lib/components/carousel/src/carousel-item.js.map +1 -1
- package/lib/components/carousel/src/carousel-item2.js +63 -8
- package/lib/components/carousel/src/carousel-item2.js.map +1 -1
- package/lib/components/carousel/src/carousel.d.ts +1 -1
- package/lib/components/carousel/src/carousel.js +57 -164
- package/lib/components/carousel/src/carousel.js.map +1 -1
- package/lib/components/carousel/src/carousel.vue.d.ts +5 -5
- package/lib/components/carousel/src/carousel2.js +164 -57
- package/lib/components/carousel/src/carousel2.js.map +1 -1
- package/lib/components/cascader/index.d.ts +128 -128
- package/lib/components/cascader/index.js +2 -2
- package/lib/components/cascader/src/cascader.js +64 -622
- package/lib/components/cascader/src/cascader.js.map +1 -1
- package/lib/components/cascader/src/cascader.vue.d.ts +64 -64
- package/lib/components/cascader/src/cascader2.js +622 -64
- package/lib/components/cascader/src/cascader2.js.map +1 -1
- package/lib/components/check-tag/index.js +2 -2
- package/lib/components/check-tag/src/check-tag.js +30 -13
- package/lib/components/check-tag/src/check-tag.js.map +1 -1
- package/lib/components/check-tag/src/check-tag2.js +13 -30
- package/lib/components/check-tag/src/check-tag2.js.map +1 -1
- package/lib/components/checkbox/index.js +2 -2
- package/lib/components/checkbox/src/checkbox-group.js +29 -72
- package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
- package/lib/components/checkbox/src/checkbox-group2.js +72 -29
- package/lib/components/checkbox/src/checkbox-group2.js.map +1 -1
- package/lib/components/col/index.js +2 -2
- package/lib/components/col/src/col.js +66 -43
- package/lib/components/col/src/col.js.map +1 -1
- package/lib/components/col/src/col2.js +43 -66
- package/lib/components/col/src/col2.js.map +1 -1
- package/lib/components/collection/index.js +1 -1
- package/lib/components/collection/src/collection.js +9 -62
- package/lib/components/collection/src/collection.js.map +1 -1
- package/lib/components/collection/src/collection2.js +62 -9
- package/lib/components/collection/src/collection2.js.map +1 -1
- package/lib/components/color-picker/index.d.ts +35 -35
- package/lib/components/color-picker/src/color-picker.vue.d.ts +35 -35
- package/lib/components/countdown/index.js +2 -2
- package/lib/components/countdown/src/countdown.js +24 -76
- package/lib/components/countdown/src/countdown.js.map +1 -1
- package/lib/components/countdown/src/countdown2.js +76 -24
- package/lib/components/countdown/src/countdown2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +17 -17
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +17 -17
- package/lib/components/date-picker/src/panel-utils.d.ts +34 -34
- package/lib/components/descriptions/index.js +2 -2
- package/lib/components/descriptions/src/description.js +120 -27
- package/lib/components/descriptions/src/description.js.map +1 -1
- package/lib/components/descriptions/src/description2.js +27 -120
- package/lib/components/descriptions/src/description2.js.map +1 -1
- package/lib/components/dialog/index.d.ts +1 -1
- package/lib/components/dialog/index.js +2 -2
- package/lib/components/dialog/src/dialog-content.js +93 -39
- package/lib/components/dialog/src/dialog-content.js.map +1 -1
- package/lib/components/dialog/src/dialog-content2.js +39 -93
- package/lib/components/dialog/src/dialog-content2.js.map +1 -1
- package/lib/components/dialog/src/dialog.js +173 -73
- package/lib/components/dialog/src/dialog.js.map +1 -1
- package/lib/components/dialog/src/dialog.vue.d.ts +1 -1
- package/lib/components/dialog/src/dialog2.js +73 -173
- package/lib/components/dialog/src/dialog2.js.map +1 -1
- package/lib/components/drawer/src/drawer.js +1 -1
- package/lib/components/dropdown/index.d.ts +28 -28
- package/lib/components/dropdown/index.js +2 -2
- package/lib/components/dropdown/src/dropdown-item-impl.js +6 -6
- package/lib/components/dropdown/src/dropdown-item-impl.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item-impl.vue.d.ts +4 -4
- package/lib/components/dropdown/src/dropdown-item.js +2 -2
- package/lib/components/dropdown/src/dropdown-item.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown-menu.js +6 -6
- package/lib/components/dropdown/src/dropdown-menu.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +7 -7
- package/lib/components/dropdown/src/dropdown.js +114 -310
- package/lib/components/dropdown/src/dropdown.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +12 -12
- package/lib/components/dropdown/src/dropdown2.js +310 -114
- package/lib/components/dropdown/src/dropdown2.js.map +1 -1
- package/lib/components/focus-trap/src/focus-trap.js +6 -5
- package/lib/components/focus-trap/src/focus-trap.js.map +1 -1
- package/lib/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
- package/lib/components/form/index.d.ts +12 -12
- package/lib/components/form/index.js +2 -2
- package/lib/components/form/src/form-item.d.ts +1 -1
- package/lib/components/form/src/form-item.js +330 -47
- package/lib/components/form/src/form-item.js.map +1 -1
- package/lib/components/form/src/form-item.vue.d.ts +5 -5
- package/lib/components/form/src/form-item2.js +47 -330
- package/lib/components/form/src/form-item2.js.map +1 -1
- package/lib/components/icon/index.js +2 -2
- package/lib/components/icon/src/icon.js +36 -8
- package/lib/components/icon/src/icon.js.map +1 -1
- package/lib/components/icon/src/icon2.js +8 -36
- package/lib/components/icon/src/icon2.js.map +1 -1
- package/lib/components/image/index.d.ts +1 -1
- package/lib/components/image/index.js +2 -2
- package/lib/components/image/src/image.js +65 -225
- package/lib/components/image/src/image.js.map +1 -1
- package/lib/components/image/src/image.vue.d.ts +1 -1
- package/lib/components/image/src/image2.js +225 -65
- package/lib/components/image/src/image2.js.map +1 -1
- package/lib/components/index.js +41 -41
- package/lib/components/input/index.d.ts +12 -12
- package/lib/components/input/src/input.vue.d.ts +12 -12
- package/lib/components/input-number/index.d.ts +45 -45
- package/lib/components/input-number/src/input-number.vue.d.ts +45 -45
- package/lib/components/menu/index.d.ts +3 -3
- package/lib/components/menu/index.js +4 -4
- package/lib/components/menu/src/menu-item-group.js +35 -4
- package/lib/components/menu/src/menu-item-group.js.map +1 -1
- package/lib/components/menu/src/menu-item-group2.js +4 -35
- package/lib/components/menu/src/menu-item-group2.js.map +1 -1
- package/lib/components/menu/src/menu-item.js +97 -15
- package/lib/components/menu/src/menu-item.js.map +1 -1
- package/lib/components/menu/src/menu-item2.js +15 -97
- package/lib/components/menu/src/menu-item2.js.map +1 -1
- package/lib/components/menu/src/menu.d.ts +4 -4
- package/lib/components/message/index.js +1 -1
- package/lib/components/message/src/message.d.ts +1 -1
- package/lib/components/message/src/message.js +150 -88
- package/lib/components/message/src/message.js.map +1 -1
- package/lib/components/message/src/message.vue.d.ts +4 -4
- package/lib/components/message/src/message2.js +88 -150
- package/lib/components/message/src/message2.js.map +1 -1
- package/lib/components/message/src/method.js +2 -2
- package/lib/components/notification/index.js +1 -1
- package/lib/components/notification/src/notification.d.ts +1 -1
- package/lib/components/notification/src/notification.js +70 -148
- package/lib/components/notification/src/notification.js.map +1 -1
- package/lib/components/notification/src/notification.vue.d.ts +4 -4
- package/lib/components/notification/src/notification2.js +148 -70
- package/lib/components/notification/src/notification2.js.map +1 -1
- package/lib/components/notification/src/notify.js +2 -2
- package/lib/components/page-header/index.js +2 -2
- package/lib/components/page-header/src/page-header.js +103 -18
- package/lib/components/page-header/src/page-header.js.map +1 -1
- package/lib/components/page-header/src/page-header2.js +18 -103
- package/lib/components/page-header/src/page-header2.js.map +1 -1
- package/lib/components/pagination/src/components/jumper.vue.d.ts +12 -12
- package/lib/components/pagination/src/components/pager.js +17 -216
- package/lib/components/pagination/src/components/pager.js.map +1 -1
- package/lib/components/pagination/src/components/pager2.js +216 -17
- package/lib/components/pagination/src/components/pager2.js.map +1 -1
- package/lib/components/pagination/src/components/prev.js +38 -19
- package/lib/components/pagination/src/components/prev.js.map +1 -1
- package/lib/components/pagination/src/components/prev2.js +19 -38
- package/lib/components/pagination/src/components/prev2.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue.d.ts +14 -14
- package/lib/components/pagination/src/pagination.js +2 -2
- package/lib/components/popconfirm/index.d.ts +23 -23
- package/lib/components/popconfirm/src/popconfirm.js +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue.d.ts +23 -23
- package/lib/components/popover/index.d.ts +18 -18
- package/lib/components/popover/index.js +2 -2
- package/lib/components/popover/src/popover.js +111 -67
- package/lib/components/popover/src/popover.js.map +1 -1
- package/lib/components/popover/src/popover.vue.d.ts +18 -18
- package/lib/components/popover/src/popover2.js +67 -111
- package/lib/components/popover/src/popover2.js.map +1 -1
- package/lib/components/popper/index.js +4 -4
- package/lib/components/popper/src/content.vue.d.ts +6 -6
- package/lib/components/popper/src/popper.js +28 -32
- package/lib/components/popper/src/popper.js.map +1 -1
- package/lib/components/popper/src/popper2.js +32 -28
- package/lib/components/popper/src/popper2.js.map +1 -1
- package/lib/components/popper/src/trigger.js +121 -32
- package/lib/components/popper/src/trigger.js.map +1 -1
- package/lib/components/popper/src/trigger2.js +32 -121
- package/lib/components/popper/src/trigger2.js.map +1 -1
- package/lib/components/progress/index.js +2 -2
- package/lib/components/progress/src/progress.js +204 -59
- package/lib/components/progress/src/progress.js.map +1 -1
- package/lib/components/progress/src/progress2.js +59 -204
- package/lib/components/progress/src/progress2.js.map +1 -1
- package/lib/components/radio/index.js +2 -2
- package/lib/components/radio/src/radio-group.js +70 -37
- package/lib/components/radio/src/radio-group.js.map +1 -1
- package/lib/components/radio/src/radio-group2.js +37 -70
- package/lib/components/radio/src/radio-group2.js.map +1 -1
- package/lib/components/rate/index.js +2 -2
- package/lib/components/rate/src/rate.js +256 -87
- package/lib/components/rate/src/rate.js.map +1 -1
- package/lib/components/rate/src/rate2.js +87 -256
- package/lib/components/rate/src/rate2.js.map +1 -1
- package/lib/components/result/index.d.ts +4 -4
- package/lib/components/result/src/result.d.ts +1 -1
- package/lib/components/result/src/result.vue.d.ts +4 -4
- package/lib/components/roving-focus-group/src/roving-focus-group.js +1 -1
- package/lib/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/lib/components/scrollbar/index.js +2 -2
- package/lib/components/scrollbar/src/scrollbar.js +176 -47
- package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar2.js +47 -176
- package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
- package/lib/components/select/index.d.ts +14 -14
- package/lib/components/select/src/select.js +2 -2
- package/lib/components/select/src/select.vue.d.ts +14 -14
- package/lib/components/select/src/useSelect.d.ts +12 -12
- package/lib/components/select-v2/index.d.ts +30 -30
- package/lib/components/select-v2/src/defaults.js +1 -1
- package/lib/components/select-v2/src/option-item.vue.d.ts +1 -1
- package/lib/components/select-v2/src/select.vue.d.ts +15 -15
- package/lib/components/select-v2/src/useSelect.d.ts +13 -13
- package/lib/components/skeleton/index.js +4 -4
- package/lib/components/skeleton/src/skeleton-item.js +18 -23
- package/lib/components/skeleton/src/skeleton-item.js.map +1 -1
- package/lib/components/skeleton/src/skeleton-item2.js +23 -18
- package/lib/components/skeleton/src/skeleton-item2.js.map +1 -1
- package/lib/components/skeleton/src/skeleton.js +22 -49
- package/lib/components/skeleton/src/skeleton.js.map +1 -1
- package/lib/components/skeleton/src/skeleton2.js +49 -22
- package/lib/components/skeleton/src/skeleton2.js.map +1 -1
- package/lib/components/slider/index.d.ts +75 -75
- package/lib/components/slider/index.js +2 -2
- package/lib/components/slider/src/button.vue.d.ts +6 -6
- package/lib/components/slider/src/composables/use-slide.d.ts +24 -24
- package/lib/components/slider/src/slider.js +233 -92
- package/lib/components/slider/src/slider.js.map +1 -1
- package/lib/components/slider/src/slider.vue.d.ts +75 -75
- package/lib/components/slider/src/slider2.js +92 -233
- package/lib/components/slider/src/slider2.js.map +1 -1
- package/lib/components/steps/index.d.ts +16 -16
- package/lib/components/steps/index.js +2 -2
- package/lib/components/steps/src/item.d.ts +1 -1
- package/lib/components/steps/src/item.js +19 -190
- package/lib/components/steps/src/item.js.map +1 -1
- package/lib/components/steps/src/item.vue.d.ts +4 -4
- package/lib/components/steps/src/item2.js +190 -19
- package/lib/components/steps/src/item2.js.map +1 -1
- package/lib/components/steps/src/steps.d.ts +2 -2
- package/lib/components/steps/src/steps.vue.d.ts +8 -8
- package/lib/components/switch/index.js +2 -2
- package/lib/components/switch/src/switch.js +242 -88
- package/lib/components/switch/src/switch.js.map +1 -1
- package/lib/components/switch/src/switch2.js +88 -242
- package/lib/components/switch/src/switch2.js.map +1 -1
- package/lib/components/table/index.d.ts +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +12 -12
- package/lib/components/table/src/table.vue.d.ts +1 -1
- package/lib/components/tabs/index.js +2 -2
- package/lib/components/tabs/src/tab-pane.js +14 -73
- package/lib/components/tabs/src/tab-pane.js.map +1 -1
- package/lib/components/tabs/src/tab-pane2.js +73 -14
- package/lib/components/tabs/src/tab-pane2.js.map +1 -1
- package/lib/components/tag/index.d.ts +1 -1
- package/lib/components/tag/index.js +2 -2
- package/lib/components/tag/src/tag.js +98 -34
- package/lib/components/tag/src/tag.js.map +1 -1
- package/lib/components/tag/src/tag.vue.d.ts +1 -1
- package/lib/components/tag/src/tag2.js +34 -98
- package/lib/components/tag/src/tag2.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +34 -34
- package/lib/components/time-select/index.d.ts +62 -62
- package/lib/components/time-select/src/time-select.vue.d.ts +31 -31
- package/lib/components/tooltip/index.d.ts +6 -6
- package/lib/components/tooltip/index.js +1 -1
- package/lib/components/tooltip/src/content.js +179 -31
- package/lib/components/tooltip/src/content.js.map +1 -1
- package/lib/components/tooltip/src/content.vue.d.ts +6 -6
- package/lib/components/tooltip/src/content2.js +31 -179
- package/lib/components/tooltip/src/content2.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.js +2 -2
- package/lib/components/tooltip/src/tooltip.vue.d.ts +6 -6
- package/lib/components/tooltip/src/tooltip2.js +1 -1
- package/lib/components/tooltip/src/trigger.js +1 -1
- package/lib/components/tooltip/src/trigger2.js +1 -1
- package/lib/components/tooltip-v2/index.d.ts +4 -4
- package/lib/components/tooltip-v2/index.js +1 -1
- package/lib/components/tooltip-v2/src/arrow.js +37 -23
- package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
- package/lib/components/tooltip-v2/src/arrow2.js +23 -37
- package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
- package/lib/components/tooltip-v2/src/content2.js +1 -1
- package/lib/components/tooltip-v2/src/tooltip.js +1 -1
- package/lib/components/tooltip-v2/src/tooltip.vue.d.ts +4 -4
- package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
- package/lib/components/transfer/index.d.ts +65 -65
- package/lib/components/transfer/index.js +2 -2
- package/lib/components/transfer/src/composables/use-check.js +1 -1
- package/lib/components/transfer/src/composables/use-checked-change.js +1 -1
- package/lib/components/transfer/src/transfer-panel.js +21 -128
- package/lib/components/transfer/src/transfer-panel.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue.d.ts +12 -12
- package/lib/components/transfer/src/transfer-panel2.js +128 -21
- package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
- package/lib/components/transfer/src/transfer.js +73 -162
- package/lib/components/transfer/src/transfer.js.map +1 -1
- package/lib/components/transfer/src/transfer.vue.d.ts +65 -65
- package/lib/components/transfer/src/transfer2.js +162 -73
- package/lib/components/transfer/src/transfer2.js.map +1 -1
- package/lib/components/tree-v2/index.d.ts +1 -1
- package/lib/components/tree-v2/src/tree-node.vue.d.ts +1 -1
- package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/lib/components/upload/index.d.ts +5 -5
- package/lib/components/upload/index.js +1 -1
- package/lib/components/upload/src/upload-content.js +176 -31
- package/lib/components/upload/src/upload-content.js.map +1 -1
- package/lib/components/upload/src/upload-content.vue.d.ts +1 -1
- package/lib/components/upload/src/upload-content2.js +31 -176
- package/lib/components/upload/src/upload-content2.js.map +1 -1
- package/lib/components/upload/src/upload.vue.d.ts +5 -5
- package/lib/components/upload/src/upload2.js +1 -1
- package/lib/components/visual-hidden/index.js +2 -2
- package/lib/components/visual-hidden/src/visual-hidden.js +35 -7
- package/lib/components/visual-hidden/src/visual-hidden.js.map +1 -1
- package/lib/components/visual-hidden/src/visual-hidden2.js +7 -35
- package/lib/components/visual-hidden/src/visual-hidden2.js.map +1 -1
- package/lib/index.js +41 -41
- package/package.json +1 -1
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-trap.mjs","sources":["../../../../../../packages/components/focus-trap/src/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch,\n} from 'vue'\nimport { useGlobalConfig } from '../../config-provider'\nimport { isNil } from 'lodash-unified'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useEscapeKeydown } from '@element-plus/hooks'\nimport { isString } from '@element-plus/utils'\nimport {\n createFocusOutPreventedEvent,\n focusFirstDescendant,\n focusableStack,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason,\n} from './utils'\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT,\n} from './tokens'\n\nimport type { PropType } from 'vue'\nimport type { FocusLayer } from './utils'\n\nexport default defineComponent({\n name: 'ElFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first',\n },\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested',\n ],\n setup(props, ctx) {\n const forEditor = useGlobalConfig('forEditor')\n const emit = forEditor.value ? (name: string, evt: Event) => {} : ctx.emit\n\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\n\n const { focusReason } = useFocusReason()\n\n useEscapeKeydown((event) => {\n if (props.trapped && !focusLayer.paused) {\n emit('release-requested', event)\n }\n })\n\n const focusLayer: FocusLayer = {\n paused: false,\n pause() {\n this.paused = true\n },\n resume() {\n this.paused = false\n },\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (!props.loop && !props.trapped) return\n if (focusLayer.paused) return\n\n const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n const { loop } = props\n const isTabbing =\n key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n const currentFocusingEl = document.activeElement\n if (isTabbing && currentFocusingEl) {\n const container = currentTarget as HTMLElement\n const [first, last] = getEdges(container)\n const isTabbable = first && last\n if (!isTabbable) {\n if (currentFocusingEl === container) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n }\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n }\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n }\n }\n }\n }\n }\n\n provide(FOCUS_TRAP_INJECTION_KEY, {\n focusTrapRef: forwardRef,\n onKeydown,\n })\n\n watch(\n () => props.focusTrapEl,\n (focusTrapEl) => {\n if (focusTrapEl) {\n forwardRef.value = focusTrapEl\n }\n },\n { immediate: true }\n )\n\n watch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n if (forwardRef) {\n forwardRef.addEventListener('keydown', onKeydown)\n forwardRef.addEventListener('focusin', onFocusIn)\n forwardRef.addEventListener('focusout', onFocusOut)\n }\n if (oldForwardRef) {\n oldForwardRef.removeEventListener('keydown', onKeydown)\n oldForwardRef.removeEventListener('focusin', onFocusIn)\n oldForwardRef.removeEventListener('focusout', onFocusOut)\n }\n })\n\n const trapOnFocus = (e: Event) => {\n emit(ON_TRAP_FOCUS_EVT, e)\n }\n const releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n const onFocusIn = (e: FocusEvent) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const relatedTarget = e.relatedTarget as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n\n if (!props.trapped) {\n const isPrevFocusedInTrap =\n relatedTarget && trapContainer.contains(relatedTarget)\n if (!isPrevFocusedInTrap) {\n lastFocusBeforeTrapped = relatedTarget\n }\n }\n\n if (isFocusedInTrap) emit('focusin', e)\n\n if (focusLayer.paused) return\n\n if (props.trapped) {\n if (isFocusedInTrap) {\n lastFocusAfterTrapped = target\n } else {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }\n\n const onFocusOut = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (focusLayer.paused || !trapContainer) return\n\n if (props.trapped) {\n const relatedTarget = (e as FocusEvent)\n .relatedTarget as HTMLElement | null\n if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n // Give embedded focus layer time to pause this layer before reclaiming focus\n // And only reclaim focus if it should currently be trapping\n setTimeout(() => {\n if (!focusLayer.paused && props.trapped) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }, 0)\n }\n } else {\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (!isFocusedInTrap) emit('focusout', e)\n }\n }\n\n async function startTrap() {\n // Wait for forwardRef to resolve\n await nextTick()\n const trapContainer = unref(forwardRef)\n if (trapContainer) {\n focusableStack.push(focusLayer)\n const prevFocusedElement = trapContainer.contains(\n document.activeElement\n )\n ? lastFocusBeforeTrapped\n : document.activeElement\n lastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n const isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n if (!isPrevFocusContained) {\n const focusEvent = new Event(\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n trapContainer.dispatchEvent(focusEvent)\n if (!focusEvent.defaultPrevented) {\n nextTick(() => {\n let focusStartEl = props.focusStartEl\n if (!isString(focusStartEl)) {\n tryFocus(focusStartEl)\n if (document.activeElement !== focusStartEl) {\n focusStartEl = 'first'\n }\n }\n if (focusStartEl === 'first') {\n focusFirstDescendant(\n obtainAllFocusableElements(trapContainer),\n true\n )\n }\n if (\n document.activeElement === prevFocusedElement ||\n focusStartEl === 'container'\n ) {\n tryFocus(trapContainer)\n }\n })\n }\n }\n }\n }\n\n function stopTrap() {\n const trapContainer = unref(forwardRef)\n\n if (trapContainer) {\n trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n ...FOCUS_AFTER_TRAPPED_OPTS,\n detail: {\n focusReason: focusReason.value,\n },\n })\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n if (\n !releasedEvent.defaultPrevented &&\n (focusReason.value == 'keyboard' ||\n !isFocusCausedByUserEvent() ||\n trapContainer.contains(document.activeElement))\n ) {\n tryFocus(lastFocusBeforeTrapped ?? document.body)\n }\n\n trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n focusableStack.remove(focusLayer)\n }\n }\n\n onMounted(() => {\n if (props.trapped) {\n startTrap()\n }\n\n watch(\n () => props.trapped,\n (trapped) => {\n if (trapped) {\n startTrap()\n } else {\n stopTrap()\n }\n }\n )\n })\n\n onBeforeUnmount(() => {\n if (props.trapped) {\n stopTrap()\n }\n })\n\n return {\n onKeydown,\n }\n },\n})\n</script>\n"],"names":["_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-trap.mjs","sources":["../../../../../../packages/components/focus-trap/src/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n} from 'vue'\nimport { useGlobalConfig, watch } from '../../config-provider'\nimport { isNil } from 'lodash-unified'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useEscapeKeydown } from '@element-plus/hooks'\nimport { isString } from '@element-plus/utils'\nimport {\n createFocusOutPreventedEvent,\n focusFirstDescendant,\n focusableStack,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason,\n} from './utils'\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT,\n} from './tokens'\n\nimport type { PropType } from 'vue'\nimport type { FocusLayer } from './utils'\n\nexport default defineComponent({\n name: 'ElFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first',\n },\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested',\n ],\n setup(props, ctx) {\n const forEditor = useGlobalConfig('forEditor')\n const emit = forEditor.value ? (name: string, evt: Event) => {} : ctx.emit\n\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\n\n const { focusReason } = useFocusReason()\n\n useEscapeKeydown((event) => {\n if (props.trapped && !focusLayer.paused) {\n emit('release-requested', event)\n }\n })\n\n const focusLayer: FocusLayer = {\n paused: false,\n pause() {\n this.paused = true\n },\n resume() {\n this.paused = false\n },\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (!props.loop && !props.trapped) return\n if (focusLayer.paused) return\n\n const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n const { loop } = props\n const isTabbing =\n key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n const currentFocusingEl = document.activeElement\n if (isTabbing && currentFocusingEl) {\n const container = currentTarget as HTMLElement\n const [first, last] = getEdges(container)\n const isTabbable = first && last\n if (!isTabbable) {\n if (currentFocusingEl === container) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n }\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n }\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n }\n }\n }\n }\n }\n\n provide(FOCUS_TRAP_INJECTION_KEY, {\n focusTrapRef: forwardRef,\n onKeydown,\n })\n\n watch(\n () => props.focusTrapEl,\n (focusTrapEl) => {\n if (focusTrapEl) {\n forwardRef.value = focusTrapEl\n }\n },\n { immediate: true }\n )\n\n watch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n if (forwardRef) {\n forwardRef.addEventListener('keydown', onKeydown)\n forwardRef.addEventListener('focusin', onFocusIn)\n forwardRef.addEventListener('focusout', onFocusOut)\n }\n if (oldForwardRef) {\n oldForwardRef.removeEventListener('keydown', onKeydown)\n oldForwardRef.removeEventListener('focusin', onFocusIn)\n oldForwardRef.removeEventListener('focusout', onFocusOut)\n }\n })\n\n const trapOnFocus = (e: Event) => {\n emit(ON_TRAP_FOCUS_EVT, e)\n }\n const releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n const onFocusIn = (e: FocusEvent) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const relatedTarget = e.relatedTarget as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n\n if (!props.trapped) {\n const isPrevFocusedInTrap =\n relatedTarget && trapContainer.contains(relatedTarget)\n if (!isPrevFocusedInTrap) {\n lastFocusBeforeTrapped = relatedTarget\n }\n }\n\n if (isFocusedInTrap) emit('focusin', e)\n\n if (focusLayer.paused) return\n\n if (props.trapped) {\n if (isFocusedInTrap) {\n lastFocusAfterTrapped = target\n } else {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }\n\n const onFocusOut = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (focusLayer.paused || !trapContainer) return\n\n if (props.trapped) {\n const relatedTarget = (e as FocusEvent)\n .relatedTarget as HTMLElement | null\n if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n // Give embedded focus layer time to pause this layer before reclaiming focus\n // And only reclaim focus if it should currently be trapping\n setTimeout(() => {\n if (!focusLayer.paused && props.trapped) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }, 0)\n }\n } else {\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (!isFocusedInTrap) emit('focusout', e)\n }\n }\n\n async function startTrap() {\n // Wait for forwardRef to resolve\n await nextTick()\n const trapContainer = unref(forwardRef)\n if (trapContainer) {\n focusableStack.push(focusLayer)\n const prevFocusedElement = trapContainer.contains(\n document.activeElement\n )\n ? lastFocusBeforeTrapped\n : document.activeElement\n lastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n const isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n if (!isPrevFocusContained) {\n const focusEvent = new Event(\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n trapContainer.dispatchEvent(focusEvent)\n if (!focusEvent.defaultPrevented) {\n nextTick(() => {\n let focusStartEl = props.focusStartEl\n if (!isString(focusStartEl)) {\n tryFocus(focusStartEl)\n if (document.activeElement !== focusStartEl) {\n focusStartEl = 'first'\n }\n }\n if (focusStartEl === 'first') {\n focusFirstDescendant(\n obtainAllFocusableElements(trapContainer),\n true\n )\n }\n if (\n document.activeElement === prevFocusedElement ||\n focusStartEl === 'container'\n ) {\n tryFocus(trapContainer)\n }\n })\n }\n }\n }\n }\n\n function stopTrap() {\n const trapContainer = unref(forwardRef)\n\n if (trapContainer) {\n trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n ...FOCUS_AFTER_TRAPPED_OPTS,\n detail: {\n focusReason: focusReason.value,\n },\n })\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n if (\n !releasedEvent.defaultPrevented &&\n (focusReason.value == 'keyboard' ||\n !isFocusCausedByUserEvent() ||\n trapContainer.contains(document.activeElement))\n ) {\n tryFocus(lastFocusBeforeTrapped ?? document.body)\n }\n\n trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n focusableStack.remove(focusLayer)\n }\n }\n\n onMounted(() => {\n if (props.trapped) {\n startTrap()\n }\n\n watch(\n () => props.trapped,\n (trapped) => {\n if (trapped) {\n startTrap()\n } else {\n stopTrap()\n }\n }\n )\n })\n\n onBeforeUnmount(() => {\n if (props.trapped) {\n stopTrap()\n }\n })\n\n return {\n onKeydown,\n }\n },\n})\n</script>\n"],"names":["_renderSlot"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
9
9
|
};
|
|
10
10
|
}, {
|
|
11
11
|
onKeydown: (e: KeyboardEvent) => void;
|
|
12
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("
|
|
12
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested")[], "focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13
13
|
loop: BooleanConstructor;
|
|
14
14
|
trapped: BooleanConstructor;
|
|
15
15
|
focusTrapEl: PropType<HTMLElement>;
|
|
@@ -171,7 +171,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
|
|
|
171
171
|
};
|
|
172
172
|
readonly error: StringConstructor;
|
|
173
173
|
readonly validateStatus: {
|
|
174
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
174
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
175
175
|
readonly required: false;
|
|
176
176
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
177
177
|
__epPropKey: true;
|
|
@@ -211,7 +211,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
|
|
|
211
211
|
};
|
|
212
212
|
readonly error: StringConstructor;
|
|
213
213
|
readonly validateStatus: {
|
|
214
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
214
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
215
215
|
readonly required: false;
|
|
216
216
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
217
217
|
__epPropKey: true;
|
|
@@ -260,8 +260,8 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
|
|
|
260
260
|
};
|
|
261
261
|
labelId: string;
|
|
262
262
|
inputIds: import("vue").Ref<string[]>;
|
|
263
|
-
validateState: import("vue").Ref<"" | "
|
|
264
|
-
validateStateDebounced: Readonly<import("vue").Ref<"" | "
|
|
263
|
+
validateState: import("vue").Ref<"" | "error" | "success" | "validating">;
|
|
264
|
+
validateStateDebounced: Readonly<import("vue").Ref<"" | "error" | "success" | "validating">>;
|
|
265
265
|
validateMessage: import("vue").Ref<string>;
|
|
266
266
|
formItemRef: import("vue").Ref<HTMLDivElement | undefined>;
|
|
267
267
|
initialValue: any;
|
|
@@ -287,7 +287,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
|
|
|
287
287
|
isRequired: import("vue").ComputedRef<boolean>;
|
|
288
288
|
shouldShowError: import("vue").ComputedRef<import("element-pe/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>>;
|
|
289
289
|
currentLabel: import("vue").ComputedRef<string>;
|
|
290
|
-
setValidationState: (state: "" | "
|
|
290
|
+
setValidationState: (state: "" | "error" | "success" | "validating") => void;
|
|
291
291
|
onValidationFailed: (error: import("./src/types").FormValidateFailure) => void;
|
|
292
292
|
onValidationSucceeded: () => void;
|
|
293
293
|
doValidate: (rules: import("async-validator").RuleItem[]) => Promise<true>;
|
|
@@ -325,7 +325,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
|
|
|
325
325
|
};
|
|
326
326
|
readonly error: StringConstructor;
|
|
327
327
|
readonly validateStatus: {
|
|
328
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
328
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
329
329
|
readonly required: false;
|
|
330
330
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
331
331
|
__epPropKey: true;
|
|
@@ -371,7 +371,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
|
|
|
371
371
|
};
|
|
372
372
|
readonly error: StringConstructor;
|
|
373
373
|
readonly validateStatus: {
|
|
374
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
374
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
375
375
|
readonly required: false;
|
|
376
376
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
377
377
|
__epPropKey: true;
|
|
@@ -411,7 +411,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
|
|
|
411
411
|
};
|
|
412
412
|
readonly error: StringConstructor;
|
|
413
413
|
readonly validateStatus: {
|
|
414
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
414
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
415
415
|
readonly required: false;
|
|
416
416
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
417
417
|
__epPropKey: true;
|
|
@@ -460,8 +460,8 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
|
|
|
460
460
|
};
|
|
461
461
|
labelId: string;
|
|
462
462
|
inputIds: import("vue").Ref<string[]>;
|
|
463
|
-
validateState: import("vue").Ref<"" | "
|
|
464
|
-
validateStateDebounced: Readonly<import("vue").Ref<"" | "
|
|
463
|
+
validateState: import("vue").Ref<"" | "error" | "success" | "validating">;
|
|
464
|
+
validateStateDebounced: Readonly<import("vue").Ref<"" | "error" | "success" | "validating">>;
|
|
465
465
|
validateMessage: import("vue").Ref<string>;
|
|
466
466
|
formItemRef: import("vue").Ref<HTMLDivElement | undefined>;
|
|
467
467
|
initialValue: any;
|
|
@@ -487,7 +487,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
|
|
|
487
487
|
isRequired: import("vue").ComputedRef<boolean>;
|
|
488
488
|
shouldShowError: import("vue").ComputedRef<import("element-pe/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>>;
|
|
489
489
|
currentLabel: import("vue").ComputedRef<string>;
|
|
490
|
-
setValidationState: (state: "" | "
|
|
490
|
+
setValidationState: (state: "" | "error" | "success" | "validating") => void;
|
|
491
491
|
onValidationFailed: (error: import("./src/types").FormValidateFailure) => void;
|
|
492
492
|
onValidationSucceeded: () => void;
|
|
493
493
|
doValidate: (rules: import("async-validator").RuleItem[]) => Promise<true>;
|
|
@@ -525,7 +525,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
|
|
|
525
525
|
};
|
|
526
526
|
readonly error: StringConstructor;
|
|
527
527
|
readonly validateStatus: {
|
|
528
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
528
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
529
529
|
readonly required: false;
|
|
530
530
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
531
531
|
__epPropKey: true;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import '../../utils/index.mjs';
|
|
2
2
|
import Form from './src/form2.mjs';
|
|
3
|
-
import FormItem from './src/form-
|
|
3
|
+
import FormItem from './src/form-item.mjs';
|
|
4
4
|
export { formEmits, formProps } from './src/form.mjs';
|
|
5
|
-
export { formItemProps, formItemValidateStates } from './src/form-
|
|
5
|
+
export { formItemProps, formItemValidateStates } from './src/form-item2.mjs';
|
|
6
6
|
import './src/types.mjs';
|
|
7
7
|
export { formContextKey, formItemContextKey } from './src/constants.mjs';
|
|
8
8
|
import './src/hooks/index.mjs';
|
|
@@ -22,7 +22,7 @@ export declare const formItemProps: {
|
|
|
22
22
|
};
|
|
23
23
|
readonly error: StringConstructor;
|
|
24
24
|
readonly validateStatus: {
|
|
25
|
-
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "
|
|
25
|
+
readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
|
|
26
26
|
readonly required: false;
|
|
27
27
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
28
28
|
__epPropKey: true;
|
|
@@ -1,52 +1,332 @@
|
|
|
1
|
-
import '
|
|
1
|
+
import { defineComponent, useSlots, inject, ref, computed, nextTick, reactive, toRefs, provide, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, createBlock, resolveDynamicComponent, normalizeStyle, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, TransitionGroup } from 'vue';
|
|
2
|
+
import '../../config-provider/index.mjs';
|
|
3
|
+
import AsyncValidator from 'async-validator';
|
|
4
|
+
import { castArray, clone } from 'lodash-unified';
|
|
5
|
+
import { refDebounced } from '@vueuse/core';
|
|
2
6
|
import '../../../utils/index.mjs';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
7
|
+
import '../../../hooks/index.mjs';
|
|
8
|
+
import './hooks/index.mjs';
|
|
9
|
+
import { formItemProps } from './form-item2.mjs';
|
|
10
|
+
import FormLabelWrap from './form-label-wrap.mjs';
|
|
11
|
+
import { formContextKey, formItemContextKey } from './constants.mjs';
|
|
12
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
13
|
+
import { useGlobalConfig } from '../../config-provider/src/hooks/use-global-config.mjs';
|
|
14
|
+
import { useFormSize } from './hooks/use-form-common-props.mjs';
|
|
15
|
+
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
16
|
+
import { useId } from '../../../hooks/use-id/index.mjs';
|
|
17
|
+
import { addUnit } from '../../../utils/dom/style.mjs';
|
|
18
|
+
import { isBoolean } from '../../../utils/types.mjs';
|
|
19
|
+
import { isString, isFunction } from '@vue/shared';
|
|
20
|
+
import { getProp } from '../../../utils/objects.mjs';
|
|
21
|
+
import { watch } from '../../config-provider/src/for-editor.mjs';
|
|
5
22
|
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
23
|
+
const _hoisted_1 = ["role", "aria-labelledby", "widget"];
|
|
24
|
+
const _hoisted_2 = ["widget"];
|
|
25
|
+
const __default__ = defineComponent({
|
|
26
|
+
name: "ElFormItem"
|
|
27
|
+
});
|
|
28
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
29
|
+
...__default__,
|
|
30
|
+
props: formItemProps,
|
|
31
|
+
setup(__props, { expose }) {
|
|
32
|
+
const props = __props;
|
|
33
|
+
const forEditor = useGlobalConfig("forEditor");
|
|
34
|
+
const slots = useSlots();
|
|
35
|
+
const formContext = inject(formContextKey, void 0);
|
|
36
|
+
const parentFormItemContext = inject(formItemContextKey, void 0);
|
|
37
|
+
const _size = useFormSize(void 0, { formItem: false });
|
|
38
|
+
const ns = useNamespace("form-item");
|
|
39
|
+
const labelId = useId().value;
|
|
40
|
+
const inputIds = ref([]);
|
|
41
|
+
const validateState = ref("");
|
|
42
|
+
const validateStateDebounced = refDebounced(validateState, 100);
|
|
43
|
+
const validateMessage = ref("");
|
|
44
|
+
const formItemRef = ref();
|
|
45
|
+
let initialValue = void 0;
|
|
46
|
+
let isResettingField = false;
|
|
47
|
+
const labelStyle = computed(() => {
|
|
48
|
+
if ((formContext == null ? void 0 : formContext.labelPosition) === "top") {
|
|
49
|
+
return {};
|
|
50
|
+
}
|
|
51
|
+
const labelWidth = addUnit(props.labelWidth || (formContext == null ? void 0 : formContext.labelWidth) || "");
|
|
52
|
+
if (labelWidth)
|
|
53
|
+
return { width: labelWidth };
|
|
54
|
+
return {};
|
|
55
|
+
});
|
|
56
|
+
const contentStyle = computed(() => {
|
|
57
|
+
if ((formContext == null ? void 0 : formContext.labelPosition) === "top" || (formContext == null ? void 0 : formContext.inline)) {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
if (!props.label && !props.labelWidth && isNested) {
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
const labelWidth = addUnit(props.labelWidth || (formContext == null ? void 0 : formContext.labelWidth) || "");
|
|
64
|
+
if (!props.label && !slots.label) {
|
|
65
|
+
return { marginLeft: labelWidth };
|
|
66
|
+
}
|
|
67
|
+
return {};
|
|
68
|
+
});
|
|
69
|
+
const formItemClasses = computed(() => [
|
|
70
|
+
ns.b(),
|
|
71
|
+
ns.m(_size.value),
|
|
72
|
+
ns.is("error", validateState.value === "error"),
|
|
73
|
+
ns.is("validating", validateState.value === "validating"),
|
|
74
|
+
ns.is("success", validateState.value === "success"),
|
|
75
|
+
ns.is("required", isRequired.value || props.required),
|
|
76
|
+
ns.is("no-asterisk", formContext == null ? void 0 : formContext.hideRequiredAsterisk),
|
|
77
|
+
(formContext == null ? void 0 : formContext.requireAsteriskPosition) === "right" ? "asterisk-right" : "asterisk-left",
|
|
78
|
+
{ [ns.m("feedback")]: formContext == null ? void 0 : formContext.statusIcon }
|
|
79
|
+
]);
|
|
80
|
+
const _inlineMessage = computed(() => isBoolean(props.inlineMessage) ? props.inlineMessage : (formContext == null ? void 0 : formContext.inlineMessage) || false);
|
|
81
|
+
const validateClasses = computed(() => [
|
|
82
|
+
ns.e("error"),
|
|
83
|
+
{ [ns.em("error", "inline")]: _inlineMessage.value }
|
|
84
|
+
]);
|
|
85
|
+
const propString = computed(() => {
|
|
86
|
+
if (!props.prop)
|
|
87
|
+
return "";
|
|
88
|
+
return isString(props.prop) ? props.prop : props.prop.join(".");
|
|
89
|
+
});
|
|
90
|
+
const hasLabel = computed(() => {
|
|
91
|
+
return !!(props.label || slots.label);
|
|
92
|
+
});
|
|
93
|
+
const labelFor = computed(() => {
|
|
94
|
+
return props.for || inputIds.value.length === 1 ? inputIds.value[0] : void 0;
|
|
95
|
+
});
|
|
96
|
+
const isGroup = computed(() => {
|
|
97
|
+
return !labelFor.value && hasLabel.value;
|
|
98
|
+
});
|
|
99
|
+
const isNested = !!parentFormItemContext;
|
|
100
|
+
const fieldValue = computed(() => {
|
|
101
|
+
const model = formContext == null ? void 0 : formContext.model;
|
|
102
|
+
if (!model || !props.prop) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
return getProp(model, props.prop).value;
|
|
106
|
+
});
|
|
107
|
+
const normalizedRules = computed(() => {
|
|
108
|
+
const { required } = props;
|
|
109
|
+
const rules = [];
|
|
110
|
+
if (props.rules) {
|
|
111
|
+
rules.push(...castArray(props.rules));
|
|
112
|
+
}
|
|
113
|
+
const formRules = formContext == null ? void 0 : formContext.rules;
|
|
114
|
+
if (formRules && props.prop) {
|
|
115
|
+
const _rules = getProp(formRules, props.prop).value;
|
|
116
|
+
if (_rules) {
|
|
117
|
+
rules.push(...castArray(_rules));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (required !== void 0) {
|
|
121
|
+
const requiredRules = rules.map((rule, i) => [rule, i]).filter(([rule]) => Object.keys(rule).includes("required"));
|
|
122
|
+
if (requiredRules.length > 0) {
|
|
123
|
+
for (const [rule, i] of requiredRules) {
|
|
124
|
+
if (rule.required === required)
|
|
125
|
+
continue;
|
|
126
|
+
rules[i] = { ...rule, required };
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
rules.push({ required });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return rules;
|
|
133
|
+
});
|
|
134
|
+
const validateEnabled = computed(() => normalizedRules.value.length > 0);
|
|
135
|
+
const getFilteredRule = (trigger) => {
|
|
136
|
+
const rules = normalizedRules.value;
|
|
137
|
+
return rules.filter((rule) => {
|
|
138
|
+
if (!rule.trigger || !trigger)
|
|
139
|
+
return true;
|
|
140
|
+
if (Array.isArray(rule.trigger)) {
|
|
141
|
+
return rule.trigger.includes(trigger);
|
|
142
|
+
} else {
|
|
143
|
+
return rule.trigger === trigger;
|
|
144
|
+
}
|
|
145
|
+
}).map(({ trigger: trigger2, ...rule }) => rule);
|
|
146
|
+
};
|
|
147
|
+
const isRequired = computed(() => normalizedRules.value.some((rule) => rule.required));
|
|
148
|
+
const shouldShowError = computed(() => {
|
|
149
|
+
var _a;
|
|
150
|
+
return validateStateDebounced.value === "error" && props.showMessage && ((_a = formContext == null ? void 0 : formContext.showMessage) != null ? _a : true);
|
|
151
|
+
});
|
|
152
|
+
const currentLabel = computed(() => `${props.label || ""}${(formContext == null ? void 0 : formContext.labelSuffix) || ""}`);
|
|
153
|
+
const setValidationState = (state) => {
|
|
154
|
+
validateState.value = state;
|
|
155
|
+
};
|
|
156
|
+
const onValidationFailed = (error) => {
|
|
157
|
+
var _a, _b;
|
|
158
|
+
const { errors, fields } = error;
|
|
159
|
+
if (!errors || !fields) {
|
|
160
|
+
console.error(error);
|
|
161
|
+
}
|
|
162
|
+
setValidationState("error");
|
|
163
|
+
validateMessage.value = errors ? (_b = (_a = errors == null ? void 0 : errors[0]) == null ? void 0 : _a.message) != null ? _b : `${props.prop} is required` : "";
|
|
164
|
+
formContext == null ? void 0 : formContext.emit("validate", props.prop, false, validateMessage.value);
|
|
165
|
+
};
|
|
166
|
+
const onValidationSucceeded = () => {
|
|
167
|
+
setValidationState("success");
|
|
168
|
+
formContext == null ? void 0 : formContext.emit("validate", props.prop, true, "");
|
|
169
|
+
};
|
|
170
|
+
const doValidate = async (rules) => {
|
|
171
|
+
const modelName = propString.value;
|
|
172
|
+
const validator = new AsyncValidator({
|
|
173
|
+
[modelName]: rules
|
|
174
|
+
});
|
|
175
|
+
return validator.validate({ [modelName]: fieldValue.value }, { firstFields: true }).then(() => {
|
|
176
|
+
onValidationSucceeded();
|
|
177
|
+
return true;
|
|
178
|
+
}).catch((err) => {
|
|
179
|
+
onValidationFailed(err);
|
|
180
|
+
return Promise.reject(err);
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
const validate = async (trigger, callback) => {
|
|
184
|
+
if (isResettingField || !props.prop) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
const hasCallback = isFunction(callback);
|
|
188
|
+
if (!validateEnabled.value) {
|
|
189
|
+
callback == null ? void 0 : callback(false);
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
const rules = getFilteredRule(trigger);
|
|
193
|
+
if (rules.length === 0) {
|
|
194
|
+
callback == null ? void 0 : callback(true);
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
setValidationState("validating");
|
|
198
|
+
return doValidate(rules).then(() => {
|
|
199
|
+
callback == null ? void 0 : callback(true);
|
|
200
|
+
return true;
|
|
201
|
+
}).catch((err) => {
|
|
202
|
+
const { fields } = err;
|
|
203
|
+
callback == null ? void 0 : callback(false, fields);
|
|
204
|
+
return hasCallback ? false : Promise.reject(fields);
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
const clearValidate = () => {
|
|
208
|
+
setValidationState("");
|
|
209
|
+
validateMessage.value = "";
|
|
210
|
+
isResettingField = false;
|
|
211
|
+
};
|
|
212
|
+
const resetField = async () => {
|
|
213
|
+
const model = formContext == null ? void 0 : formContext.model;
|
|
214
|
+
if (!model || !props.prop)
|
|
215
|
+
return;
|
|
216
|
+
const computedValue = getProp(model, props.prop);
|
|
217
|
+
isResettingField = true;
|
|
218
|
+
computedValue.value = clone(initialValue);
|
|
219
|
+
await nextTick();
|
|
220
|
+
clearValidate();
|
|
221
|
+
isResettingField = false;
|
|
222
|
+
};
|
|
223
|
+
const addInputId = (id) => {
|
|
224
|
+
if (!inputIds.value.includes(id)) {
|
|
225
|
+
inputIds.value.push(id);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
const removeInputId = (id) => {
|
|
229
|
+
inputIds.value = inputIds.value.filter((listId) => listId !== id);
|
|
230
|
+
};
|
|
231
|
+
watch(() => props.error, (val) => {
|
|
232
|
+
validateMessage.value = val || "";
|
|
233
|
+
setValidationState(val ? "error" : "");
|
|
234
|
+
}, { immediate: true });
|
|
235
|
+
watch(() => props.validateStatus, (val) => setValidationState(val || ""));
|
|
236
|
+
const context = reactive({
|
|
237
|
+
...toRefs(props),
|
|
238
|
+
$el: formItemRef,
|
|
239
|
+
size: _size,
|
|
240
|
+
validateState,
|
|
241
|
+
labelId,
|
|
242
|
+
inputIds,
|
|
243
|
+
isGroup,
|
|
244
|
+
hasLabel,
|
|
245
|
+
addInputId,
|
|
246
|
+
removeInputId,
|
|
247
|
+
resetField,
|
|
248
|
+
clearValidate,
|
|
249
|
+
validate
|
|
250
|
+
});
|
|
251
|
+
provide(formItemContextKey, context);
|
|
252
|
+
onMounted(() => {
|
|
253
|
+
if (props.prop) {
|
|
254
|
+
formContext == null ? void 0 : formContext.addField(context);
|
|
255
|
+
initialValue = clone(fieldValue.value);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
onBeforeUnmount(() => {
|
|
259
|
+
formContext == null ? void 0 : formContext.removeField(context);
|
|
260
|
+
});
|
|
261
|
+
expose({
|
|
262
|
+
size: _size,
|
|
263
|
+
validateMessage,
|
|
264
|
+
validateState,
|
|
265
|
+
validate,
|
|
266
|
+
clearValidate,
|
|
267
|
+
resetField
|
|
268
|
+
});
|
|
269
|
+
return (_ctx, _cache) => {
|
|
270
|
+
var _a;
|
|
271
|
+
return openBlock(), createElementBlock("div", {
|
|
272
|
+
ref_key: "formItemRef",
|
|
273
|
+
ref: formItemRef,
|
|
274
|
+
class: normalizeClass(unref(formItemClasses)),
|
|
275
|
+
role: unref(isGroup) ? "group" : void 0,
|
|
276
|
+
"aria-labelledby": unref(isGroup) ? unref(labelId) : void 0,
|
|
277
|
+
widget: _ctx.widget
|
|
278
|
+
}, [
|
|
279
|
+
createVNode(unref(FormLabelWrap), {
|
|
280
|
+
"is-auto-width": unref(labelStyle).width === "auto",
|
|
281
|
+
"update-all": ((_a = unref(formContext)) == null ? void 0 : _a.labelWidth) === "auto"
|
|
282
|
+
}, {
|
|
283
|
+
default: withCtx(() => [
|
|
284
|
+
unref(hasLabel) ? (openBlock(), createBlock(resolveDynamicComponent(unref(labelFor) ? "label" : "div"), {
|
|
285
|
+
key: 0,
|
|
286
|
+
id: unref(labelId),
|
|
287
|
+
for: unref(labelFor),
|
|
288
|
+
class: normalizeClass(unref(ns).e("label")),
|
|
289
|
+
style: normalizeStyle(unref(labelStyle)),
|
|
290
|
+
widget: _ctx.widget ? "form-item:label:" + _ctx.widget.split(":")[1] : void 0
|
|
291
|
+
}, {
|
|
292
|
+
default: withCtx(() => [
|
|
293
|
+
renderSlot(_ctx.$slots, "label", { label: unref(currentLabel) }, () => [
|
|
294
|
+
createTextVNode(toDisplayString(unref(currentLabel)), 1)
|
|
295
|
+
])
|
|
296
|
+
]),
|
|
297
|
+
_: 3
|
|
298
|
+
}, 8, ["id", "for", "class", "style", "widget"])) : createCommentVNode("v-if", true)
|
|
299
|
+
]),
|
|
300
|
+
_: 3
|
|
301
|
+
}, 8, ["is-auto-width", "update-all"]),
|
|
302
|
+
createElementVNode("div", {
|
|
303
|
+
class: normalizeClass(unref(ns).e("content")),
|
|
304
|
+
style: normalizeStyle(unref(contentStyle)),
|
|
305
|
+
widget: _ctx.widget ? "form-item:default:" + _ctx.widget.split(":")[1] : void 0
|
|
306
|
+
}, [
|
|
307
|
+
renderSlot(_ctx.$slots, "default"),
|
|
308
|
+
createVNode(TransitionGroup, {
|
|
309
|
+
duration: unref(forEditor) ? -1 : 0,
|
|
310
|
+
name: `${unref(ns).namespace.value}-zoom-in-top`
|
|
311
|
+
}, {
|
|
312
|
+
default: withCtx(() => [
|
|
313
|
+
unref(shouldShowError) ? renderSlot(_ctx.$slots, "error", {
|
|
314
|
+
key: 0,
|
|
315
|
+
error: validateMessage.value
|
|
316
|
+
}, () => [
|
|
317
|
+
createElementVNode("div", {
|
|
318
|
+
class: normalizeClass(unref(validateClasses))
|
|
319
|
+
}, toDisplayString(validateMessage.value), 3)
|
|
320
|
+
]) : createCommentVNode("v-if", true)
|
|
321
|
+
]),
|
|
322
|
+
_: 3
|
|
323
|
+
}, 8, ["duration", "name"])
|
|
324
|
+
], 14, _hoisted_2)
|
|
325
|
+
], 10, _hoisted_1);
|
|
326
|
+
};
|
|
48
327
|
}
|
|
49
328
|
});
|
|
329
|
+
var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/meng/workspace/element-pe/packages/components/form/src/form-item.vue"]]);
|
|
50
330
|
|
|
51
|
-
export {
|
|
331
|
+
export { FormItem as default };
|
|
52
332
|
//# sourceMappingURL=form-item.mjs.map
|