huibo-ui 0.4.0 → 0.5.0
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/cjs/{a11y-802de67a.js → a11y-4385c871.js} +17 -2
- package/dist/cjs/a11y-4385c871.js.map +1 -0
- package/dist/cjs/{date-helpers-1ffddc59.js → date-helpers-c05ef385.js} +5 -16
- package/dist/cjs/date-helpers-c05ef385.js.map +1 -0
- package/dist/cjs/hb-alert.cjs.entry.js +2 -1
- package/dist/cjs/hb-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-calendar.cjs.entry.js +2 -2
- package/dist/cjs/hb-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-cascader.cjs.entry.js +48 -12
- package/dist/cjs/hb-cascader.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-checkbox-group.cjs.entry.js +12 -8
- package/dist/cjs/hb-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-checkbox.cjs.entry.js +9 -4
- package/dist/cjs/hb-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-collapse-item.cjs.entry.js +13 -4
- package/dist/cjs/hb-collapse-item.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-collapse.cjs.entry.js +20 -15
- package/dist/cjs/hb-collapse.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-color-picker.cjs.entry.js +22 -19
- package/dist/cjs/hb-color-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-date-picker-pane.cjs.entry.js +1 -1
- package/dist/cjs/hb-date-picker.cjs.entry.js +13 -10
- package/dist/cjs/hb-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-date-range-picker.cjs.entry.js +1 -1
- package/dist/cjs/hb-date-time-picker.cjs.entry.js +1 -1
- package/dist/cjs/hb-descriptions.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-dialog.cjs.entry.js +51 -12
- package/dist/cjs/hb-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-drawer.cjs.entry.js +34 -4
- package/dist/cjs/hb-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-dropdown.cjs.entry.js +27 -15
- package/dist/cjs/hb-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-empty.cjs.entry.js +1 -1
- package/dist/cjs/hb-float-button.cjs.entry.js +2 -2
- package/dist/cjs/hb-form-item.cjs.entry.js +11 -10
- package/dist/cjs/hb-form-item.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-form.cjs.entry.js +12 -7
- package/dist/cjs/hb-form.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-image-preview.cjs.entry.js +1 -1
- package/dist/cjs/hb-image-preview.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-image.cjs.entry.js +21 -3
- package/dist/cjs/hb-image.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-input-number.cjs.entry.js +7 -7
- package/dist/cjs/hb-input-number.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-input-tag.cjs.entry.js +2 -2
- package/dist/cjs/hb-input.cjs.entry.js +3 -2
- package/dist/cjs/hb-input.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-layout.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-link.cjs.entry.js +2 -2
- package/dist/cjs/hb-loading.cjs.entry.js +2 -2
- package/dist/cjs/hb-menu-item.cjs.entry.js +14 -5
- package/dist/cjs/hb-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-menu.cjs.entry.js +2 -2
- package/dist/cjs/hb-message.cjs.entry.js +13 -4
- package/dist/cjs/hb-message.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-page-header.cjs.entry.js +1 -1
- package/dist/cjs/hb-pagination.cjs.entry.js +8 -5
- package/dist/cjs/hb-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-popconfirm.cjs.entry.js +27 -8
- package/dist/cjs/hb-popconfirm.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-popover.cjs.entry.js +26 -14
- package/dist/cjs/hb-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-progress.cjs.entry.js +1 -1
- package/dist/cjs/hb-radio.cjs.entry.js +8 -3
- package/dist/cjs/hb-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-rate.cjs.entry.js +3 -3
- package/dist/cjs/hb-rate.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-row.cjs.entry.js +2 -2
- package/dist/cjs/hb-scrollbar.cjs.entry.js +5 -5
- package/dist/cjs/hb-scrollbar.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-segmented.cjs.entry.js +13 -2
- package/dist/cjs/hb-segmented.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-select.cjs.entry.js +21 -12
- package/dist/cjs/hb-select.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-slider.cjs.entry.js +6 -12
- package/dist/cjs/hb-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-space.cjs.entry.js +2 -2
- package/dist/cjs/hb-statistic.cjs.entry.js +1 -1
- package/dist/cjs/hb-step.cjs.entry.js +1 -1
- package/dist/cjs/hb-steps.cjs.entry.js +2 -2
- package/dist/cjs/hb-steps.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-sub-menu.cjs.entry.js +5 -5
- package/dist/cjs/hb-switch.cjs.entry.js +3 -3
- package/dist/cjs/hb-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/hb-table.cjs.entry.js +25 -16
- package/dist/cjs/hb-table.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tabs.cjs.entry.js +31 -10
- package/dist/cjs/hb-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tag.cjs.entry.js +3 -2
- package/dist/cjs/hb-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-text.cjs.entry.js +2 -2
- package/dist/cjs/hb-time-picker.cjs.entry.js +14 -9
- package/dist/cjs/hb-time-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-time-select.cjs.entry.js +13 -4
- package/dist/cjs/hb-time-select.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tooltip.cjs.entry.js +30 -10
- package/dist/cjs/hb-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tree-select.cjs.entry.js +125 -10
- package/dist/cjs/hb-tree-select.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tree.cjs.entry.js +145 -12
- package/dist/cjs/hb-tree.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-watermark.cjs.entry.js +19 -11
- package/dist/cjs/hb-watermark.cjs.entry.js.map +1 -1
- package/dist/cjs/huibo-ui.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/transition-59f1da0f.js +34 -0
- package/dist/cjs/transition-59f1da0f.js.map +1 -0
- package/dist/collection/components/Alert/Alert.js +2 -1
- package/dist/collection/components/Alert/Alert.js.map +1 -1
- package/dist/collection/components/Calendar/Calendar.js +2 -2
- package/dist/collection/components/Calendar/Calendar.js.map +1 -1
- package/dist/collection/components/Cascader/Cascader.js +47 -11
- package/dist/collection/components/Cascader/Cascader.js.map +1 -1
- package/dist/collection/components/Checkbox/Checkbox.js +9 -4
- package/dist/collection/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/collection/components/Checkbox/CheckboxGroup.js +12 -8
- package/dist/collection/components/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/collection/components/Collapse/Collapse.js +20 -15
- package/dist/collection/components/Collapse/Collapse.js.map +1 -1
- package/dist/collection/components/Collapse/CollapseItem.js +33 -4
- package/dist/collection/components/Collapse/CollapseItem.js.map +1 -1
- package/dist/collection/components/ColorPicker/ColorPicker.js +22 -19
- package/dist/collection/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/collection/components/ColorPicker/color-picker.css +8 -3
- package/dist/collection/components/DatePicker/DatePicker.js +12 -9
- package/dist/collection/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/collection/components/DatePicker/date-picker.css +3 -2
- package/dist/collection/components/Descriptions/descriptions.css +30 -10
- package/dist/collection/components/Dialog/Dialog.js +54 -10
- package/dist/collection/components/Dialog/Dialog.js.map +1 -1
- package/dist/collection/components/Dialog/dialog.css +57 -11
- package/dist/collection/components/Drawer/Drawer.js +34 -3
- package/dist/collection/components/Drawer/Drawer.js.map +1 -1
- package/dist/collection/components/Drawer/drawer.css +207 -17
- package/dist/collection/components/Dropdown/Dropdown.js +28 -13
- package/dist/collection/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/collection/components/Dropdown/dropdown.css +24 -2
- package/dist/collection/components/Empty/Empty.js +1 -1
- package/dist/collection/components/FloatButton/FloatButton.js +2 -2
- package/dist/collection/components/Form/Form.js +14 -9
- package/dist/collection/components/Form/Form.js.map +1 -1
- package/dist/collection/components/Form/FormItem.js +13 -12
- package/dist/collection/components/Form/FormItem.js.map +1 -1
- package/dist/collection/components/Form/form-item.css +8 -2
- package/dist/collection/components/Image/Image.js +24 -3
- package/dist/collection/components/Image/Image.js.map +1 -1
- package/dist/collection/components/ImagePreview/ImagePreview.js +1 -1
- package/dist/collection/components/ImagePreview/ImagePreview.js.map +1 -1
- package/dist/collection/components/Input/Input.js +3 -2
- package/dist/collection/components/Input/Input.js.map +1 -1
- package/dist/collection/components/Input/input.css +1 -2
- package/dist/collection/components/InputNumber/InputNumber.js +6 -6
- package/dist/collection/components/InputNumber/InputNumber.js.map +1 -1
- package/dist/collection/components/InputNumber/input-number.css +11 -1
- package/dist/collection/components/InputTag/InputTag.js +2 -2
- package/dist/collection/components/Layout/Layout.js.map +1 -1
- package/dist/collection/components/Layout/Row.js +2 -2
- package/dist/collection/components/Layout/layout.css +1713 -576
- package/dist/collection/components/Link/Link.js +2 -2
- package/dist/collection/components/Loading/Loading.js +2 -2
- package/dist/collection/components/Menu/Menu.js +2 -2
- package/dist/collection/components/Menu/MenuItem.js +34 -5
- package/dist/collection/components/Menu/MenuItem.js.map +1 -1
- package/dist/collection/components/Menu/SubMenu.js +4 -4
- package/dist/collection/components/Message/Message.js +13 -4
- package/dist/collection/components/Message/Message.js.map +1 -1
- package/dist/collection/components/PageHeader/PageHeader.js +1 -1
- package/dist/collection/components/Pagination/Pagination.js +8 -5
- package/dist/collection/components/Pagination/Pagination.js.map +1 -1
- package/dist/collection/components/Popconfirm/Popconfirm.js +28 -6
- package/dist/collection/components/Popconfirm/Popconfirm.js.map +1 -1
- package/dist/collection/components/Popconfirm/popconfirm.css +80 -16
- package/dist/collection/components/Popover/Popover.js +27 -12
- package/dist/collection/components/Popover/Popover.js.map +1 -1
- package/dist/collection/components/Popover/popover.css +49 -8
- package/dist/collection/components/Progress/Progress.js +1 -1
- package/dist/collection/components/Radio/Radio.js +8 -3
- package/dist/collection/components/Radio/Radio.js.map +1 -1
- package/dist/collection/components/Rate/Rate.js +3 -3
- package/dist/collection/components/Rate/Rate.js.map +1 -1
- package/dist/collection/components/Scrollbar/Scrollbar.js +5 -5
- package/dist/collection/components/Scrollbar/Scrollbar.js.map +1 -1
- package/dist/collection/components/Segmented/Segmented.js +15 -1
- package/dist/collection/components/Segmented/Segmented.js.map +1 -1
- package/dist/collection/components/Select/Select.js +21 -12
- package/dist/collection/components/Select/Select.js.map +1 -1
- package/dist/collection/components/Select/select.css +0 -1
- package/dist/collection/components/Slider/Slider.js +6 -12
- package/dist/collection/components/Slider/Slider.js.map +1 -1
- package/dist/collection/components/Slider/slider.css +0 -1
- package/dist/collection/components/Space/Space.js +2 -2
- package/dist/collection/components/Statistic/Statistic.js +1 -1
- package/dist/collection/components/Steps/Step.js +1 -1
- package/dist/collection/components/Steps/Steps.js +2 -2
- package/dist/collection/components/Steps/Steps.js.map +1 -1
- package/dist/collection/components/Switch/Switch.js +3 -3
- package/dist/collection/components/Switch/Switch.js.map +1 -1
- package/dist/collection/components/Switch/switch.css +3 -2
- package/dist/collection/components/Table/Table.js +25 -16
- package/dist/collection/components/Table/Table.js.map +1 -1
- package/dist/collection/components/Table/table.css +6 -2
- package/dist/collection/components/Tabs/TabPane.js +1 -1
- package/dist/collection/components/Tabs/Tabs.js +31 -10
- package/dist/collection/components/Tabs/Tabs.js.map +1 -1
- package/dist/collection/components/Tag/Tag.js +3 -2
- package/dist/collection/components/Tag/Tag.js.map +1 -1
- package/dist/collection/components/Text/Text.js +2 -2
- package/dist/collection/components/TimePicker/TimePicker.js +14 -9
- package/dist/collection/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/collection/components/TimeSelect/TimeSelect.js +13 -4
- package/dist/collection/components/TimeSelect/TimeSelect.js.map +1 -1
- package/dist/collection/components/Tooltip/Tooltip.js +31 -8
- package/dist/collection/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/collection/components/Tooltip/tooltip.css +24 -2
- package/dist/collection/components/Tree/Tree.js +147 -13
- package/dist/collection/components/Tree/Tree.js.map +1 -1
- package/dist/collection/components/TreeSelect/TreeSelect.js +130 -11
- package/dist/collection/components/TreeSelect/TreeSelect.js.map +1 -1
- package/dist/collection/components/Watermark/Watermark.js +19 -11
- package/dist/collection/components/Watermark/Watermark.js.map +1 -1
- package/dist/collection/utils/a11y.js +15 -1
- package/dist/collection/utils/a11y.js.map +1 -1
- package/dist/collection/utils/date-helpers.js +4 -15
- package/dist/collection/utils/date-helpers.js.map +1 -1
- package/dist/collection/utils/transition.js +29 -0
- package/dist/collection/utils/transition.js.map +1 -0
- package/dist/components/hb-alert.js +2 -1
- package/dist/components/hb-alert.js.map +1 -1
- package/dist/components/hb-calendar.js +2 -2
- package/dist/components/hb-calendar.js.map +1 -1
- package/dist/components/hb-cascader.js +48 -12
- package/dist/components/hb-cascader.js.map +1 -1
- package/dist/components/hb-checkbox-group.js +12 -8
- package/dist/components/hb-checkbox-group.js.map +1 -1
- package/dist/components/hb-checkbox.js +9 -4
- package/dist/components/hb-checkbox.js.map +1 -1
- package/dist/components/hb-collapse-item.js +14 -4
- package/dist/components/hb-collapse-item.js.map +1 -1
- package/dist/components/hb-collapse.js +20 -15
- package/dist/components/hb-collapse.js.map +1 -1
- package/dist/components/hb-color-picker.js +22 -19
- package/dist/components/hb-color-picker.js.map +1 -1
- package/dist/components/hb-date-picker-pane.js +1 -1
- package/dist/components/hb-date-picker.js +13 -10
- package/dist/components/hb-date-picker.js.map +1 -1
- package/dist/components/hb-date-range-picker.js +1 -1
- package/dist/components/hb-date-time-picker.js +1 -1
- package/dist/components/hb-descriptions.js.map +1 -1
- package/dist/components/hb-dialog.js +53 -13
- package/dist/components/hb-dialog.js.map +1 -1
- package/dist/components/hb-drawer.js +36 -5
- package/dist/components/hb-drawer.js.map +1 -1
- package/dist/components/hb-dropdown.js +28 -15
- package/dist/components/hb-dropdown.js.map +1 -1
- package/dist/components/hb-empty.js +1 -1
- package/dist/components/hb-float-button.js +2 -2
- package/dist/components/hb-form-item.js +11 -10
- package/dist/components/hb-form-item.js.map +1 -1
- package/dist/components/hb-form.js +12 -7
- package/dist/components/hb-form.js.map +1 -1
- package/dist/components/hb-image-preview.js +1 -1
- package/dist/components/hb-image-preview.js.map +1 -1
- package/dist/components/hb-image.js +23 -3
- package/dist/components/hb-image.js.map +1 -1
- package/dist/components/hb-input-number.js +7 -7
- package/dist/components/hb-input-number.js.map +1 -1
- package/dist/components/hb-input-tag.js +2 -2
- package/dist/components/hb-input.js +3 -2
- package/dist/components/hb-input.js.map +1 -1
- package/dist/components/hb-layout.js.map +1 -1
- package/dist/components/hb-link.js +2 -2
- package/dist/components/hb-loading.js +2 -2
- package/dist/components/hb-menu-item.js +15 -5
- package/dist/components/hb-menu-item.js.map +1 -1
- package/dist/components/hb-menu.js +2 -2
- package/dist/components/hb-message.js +13 -4
- package/dist/components/hb-message.js.map +1 -1
- package/dist/components/hb-page-header.js +1 -1
- package/dist/components/hb-pagination.js +8 -5
- package/dist/components/hb-pagination.js.map +1 -1
- package/dist/components/hb-popconfirm.js +28 -8
- package/dist/components/hb-popconfirm.js.map +1 -1
- package/dist/components/hb-popover.js +27 -14
- package/dist/components/hb-popover.js.map +1 -1
- package/dist/components/hb-progress.js +1 -1
- package/dist/components/hb-radio.js +8 -3
- package/dist/components/hb-radio.js.map +1 -1
- package/dist/components/hb-rate.js +3 -3
- package/dist/components/hb-rate.js.map +1 -1
- package/dist/components/hb-row.js +2 -2
- package/dist/components/hb-scrollbar.js +5 -5
- package/dist/components/hb-scrollbar.js.map +1 -1
- package/dist/components/hb-segmented.js +15 -2
- package/dist/components/hb-segmented.js.map +1 -1
- package/dist/components/hb-select.js +21 -12
- package/dist/components/hb-select.js.map +1 -1
- package/dist/components/hb-slider.js +6 -12
- package/dist/components/hb-slider.js.map +1 -1
- package/dist/components/hb-space.js +2 -2
- package/dist/components/hb-statistic.js +1 -1
- package/dist/components/hb-step.js +1 -1
- package/dist/components/hb-steps.js +2 -2
- package/dist/components/hb-steps.js.map +1 -1
- package/dist/components/hb-sub-menu.js +5 -5
- package/dist/components/hb-switch.js +3 -3
- package/dist/components/hb-switch.js.map +1 -1
- package/dist/components/hb-tab-pane.js +1 -1
- package/dist/components/hb-table.js +25 -16
- package/dist/components/hb-table.js.map +1 -1
- package/dist/components/hb-tabs.js +31 -10
- package/dist/components/hb-tabs.js.map +1 -1
- package/dist/components/hb-tag.js +3 -2
- package/dist/components/hb-tag.js.map +1 -1
- package/dist/components/hb-text.js +2 -2
- package/dist/components/hb-time-picker.js +14 -9
- package/dist/components/hb-time-picker.js.map +1 -1
- package/dist/components/hb-time-select.js +13 -4
- package/dist/components/hb-time-select.js.map +1 -1
- package/dist/components/hb-tooltip.js +31 -10
- package/dist/components/hb-tooltip.js.map +1 -1
- package/dist/components/hb-tree-select.js +129 -11
- package/dist/components/hb-tree-select.js.map +1 -1
- package/dist/components/hb-tree.js +147 -13
- package/dist/components/hb-tree.js.map +1 -1
- package/dist/components/hb-watermark.js +19 -11
- package/dist/components/hb-watermark.js.map +1 -1
- package/dist/{esm/a11y-f9ab2964.js → components/p-00aa34c8.js} +17 -3
- package/dist/components/p-00aa34c8.js.map +1 -0
- package/dist/components/{p-08b4005c.js → p-e0876aca.js} +5 -16
- package/dist/components/p-e0876aca.js.map +1 -0
- package/dist/components/p-fad66d69.js +32 -0
- package/dist/components/p-fad66d69.js.map +1 -0
- package/dist/{components/p-cc0aeb50.js → esm/a11y-e4cde5b0.js} +17 -3
- package/dist/esm/a11y-e4cde5b0.js.map +1 -0
- package/dist/esm/{date-helpers-44507189.js → date-helpers-259ed2f1.js} +5 -16
- package/dist/esm/date-helpers-259ed2f1.js.map +1 -0
- package/dist/esm/hb-alert.entry.js +2 -1
- package/dist/esm/hb-alert.entry.js.map +1 -1
- package/dist/esm/hb-calendar.entry.js +2 -2
- package/dist/esm/hb-calendar.entry.js.map +1 -1
- package/dist/esm/hb-cascader.entry.js +48 -12
- package/dist/esm/hb-cascader.entry.js.map +1 -1
- package/dist/esm/hb-checkbox-group.entry.js +12 -8
- package/dist/esm/hb-checkbox-group.entry.js.map +1 -1
- package/dist/esm/hb-checkbox.entry.js +9 -4
- package/dist/esm/hb-checkbox.entry.js.map +1 -1
- package/dist/esm/hb-collapse-item.entry.js +13 -4
- package/dist/esm/hb-collapse-item.entry.js.map +1 -1
- package/dist/esm/hb-collapse.entry.js +20 -15
- package/dist/esm/hb-collapse.entry.js.map +1 -1
- package/dist/esm/hb-color-picker.entry.js +22 -19
- package/dist/esm/hb-color-picker.entry.js.map +1 -1
- package/dist/esm/hb-date-picker-pane.entry.js +1 -1
- package/dist/esm/hb-date-picker.entry.js +13 -10
- package/dist/esm/hb-date-picker.entry.js.map +1 -1
- package/dist/esm/hb-date-range-picker.entry.js +1 -1
- package/dist/esm/hb-date-time-picker.entry.js +1 -1
- package/dist/esm/hb-descriptions.entry.js.map +1 -1
- package/dist/esm/hb-dialog.entry.js +51 -12
- package/dist/esm/hb-dialog.entry.js.map +1 -1
- package/dist/esm/hb-drawer.entry.js +34 -4
- package/dist/esm/hb-drawer.entry.js.map +1 -1
- package/dist/esm/hb-dropdown.entry.js +27 -15
- package/dist/esm/hb-dropdown.entry.js.map +1 -1
- package/dist/esm/hb-empty.entry.js +1 -1
- package/dist/esm/hb-float-button.entry.js +2 -2
- package/dist/esm/hb-form-item.entry.js +11 -10
- package/dist/esm/hb-form-item.entry.js.map +1 -1
- package/dist/esm/hb-form.entry.js +12 -7
- package/dist/esm/hb-form.entry.js.map +1 -1
- package/dist/esm/hb-image-preview.entry.js +1 -1
- package/dist/esm/hb-image-preview.entry.js.map +1 -1
- package/dist/esm/hb-image.entry.js +21 -3
- package/dist/esm/hb-image.entry.js.map +1 -1
- package/dist/esm/hb-input-number.entry.js +7 -7
- package/dist/esm/hb-input-number.entry.js.map +1 -1
- package/dist/esm/hb-input-tag.entry.js +2 -2
- package/dist/esm/hb-input.entry.js +3 -2
- package/dist/esm/hb-input.entry.js.map +1 -1
- package/dist/esm/hb-layout.entry.js.map +1 -1
- package/dist/esm/hb-link.entry.js +2 -2
- package/dist/esm/hb-loading.entry.js +2 -2
- package/dist/esm/hb-menu-item.entry.js +14 -5
- package/dist/esm/hb-menu-item.entry.js.map +1 -1
- package/dist/esm/hb-menu.entry.js +2 -2
- package/dist/esm/hb-message.entry.js +13 -4
- package/dist/esm/hb-message.entry.js.map +1 -1
- package/dist/esm/hb-page-header.entry.js +1 -1
- package/dist/esm/hb-pagination.entry.js +8 -5
- package/dist/esm/hb-pagination.entry.js.map +1 -1
- package/dist/esm/hb-popconfirm.entry.js +27 -8
- package/dist/esm/hb-popconfirm.entry.js.map +1 -1
- package/dist/esm/hb-popover.entry.js +26 -14
- package/dist/esm/hb-popover.entry.js.map +1 -1
- package/dist/esm/hb-progress.entry.js +1 -1
- package/dist/esm/hb-radio.entry.js +8 -3
- package/dist/esm/hb-radio.entry.js.map +1 -1
- package/dist/esm/hb-rate.entry.js +3 -3
- package/dist/esm/hb-rate.entry.js.map +1 -1
- package/dist/esm/hb-row.entry.js +2 -2
- package/dist/esm/hb-scrollbar.entry.js +5 -5
- package/dist/esm/hb-scrollbar.entry.js.map +1 -1
- package/dist/esm/hb-segmented.entry.js +13 -2
- package/dist/esm/hb-segmented.entry.js.map +1 -1
- package/dist/esm/hb-select.entry.js +21 -12
- package/dist/esm/hb-select.entry.js.map +1 -1
- package/dist/esm/hb-slider.entry.js +6 -12
- package/dist/esm/hb-slider.entry.js.map +1 -1
- package/dist/esm/hb-space.entry.js +2 -2
- package/dist/esm/hb-statistic.entry.js +1 -1
- package/dist/esm/hb-step.entry.js +1 -1
- package/dist/esm/hb-steps.entry.js +2 -2
- package/dist/esm/hb-steps.entry.js.map +1 -1
- package/dist/esm/hb-sub-menu.entry.js +5 -5
- package/dist/esm/hb-switch.entry.js +3 -3
- package/dist/esm/hb-switch.entry.js.map +1 -1
- package/dist/esm/hb-tab-pane.entry.js +1 -1
- package/dist/esm/hb-table.entry.js +25 -16
- package/dist/esm/hb-table.entry.js.map +1 -1
- package/dist/esm/hb-tabs.entry.js +31 -10
- package/dist/esm/hb-tabs.entry.js.map +1 -1
- package/dist/esm/hb-tag.entry.js +3 -2
- package/dist/esm/hb-tag.entry.js.map +1 -1
- package/dist/esm/hb-text.entry.js +2 -2
- package/dist/esm/hb-time-picker.entry.js +14 -9
- package/dist/esm/hb-time-picker.entry.js.map +1 -1
- package/dist/esm/hb-time-select.entry.js +13 -4
- package/dist/esm/hb-time-select.entry.js.map +1 -1
- package/dist/esm/hb-tooltip.entry.js +30 -10
- package/dist/esm/hb-tooltip.entry.js.map +1 -1
- package/dist/esm/hb-tree-select.entry.js +125 -10
- package/dist/esm/hb-tree-select.entry.js.map +1 -1
- package/dist/esm/hb-tree.entry.js +145 -12
- package/dist/esm/hb-tree.entry.js.map +1 -1
- package/dist/esm/hb-watermark.entry.js +19 -11
- package/dist/esm/hb-watermark.entry.js.map +1 -1
- package/dist/esm/huibo-ui.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/transition-4295d789.js +32 -0
- package/dist/esm/transition-4295d789.js.map +1 -0
- package/dist/huibo-ui/huibo-ui.esm.js +1 -1
- package/dist/huibo-ui/huibo-ui.esm.js.map +1 -1
- package/dist/huibo-ui/p-00aa34c8.js +2 -0
- package/dist/huibo-ui/p-00aa34c8.js.map +1 -0
- package/dist/huibo-ui/p-0cc1e3f3.entry.js +2 -0
- package/dist/huibo-ui/p-0cc1e3f3.entry.js.map +1 -0
- package/dist/huibo-ui/{p-678b4212.entry.js → p-0ddae4e9.entry.js} +2 -2
- package/dist/huibo-ui/p-10f6c184.entry.js.map +1 -1
- package/dist/huibo-ui/{p-f4336be9.entry.js → p-14c3b47b.entry.js} +2 -2
- package/dist/huibo-ui/{p-c50ad398.entry.js → p-193efdc0.entry.js} +2 -2
- package/dist/huibo-ui/{p-735bceef.entry.js → p-1b98152b.entry.js} +2 -2
- package/dist/huibo-ui/p-1b98152b.entry.js.map +1 -0
- package/dist/huibo-ui/p-1f6d0adb.entry.js +2 -0
- package/dist/huibo-ui/p-1f6d0adb.entry.js.map +1 -0
- package/dist/huibo-ui/{p-2943f5d0.entry.js → p-29092b85.entry.js} +2 -2
- package/dist/huibo-ui/p-29092b85.entry.js.map +1 -0
- package/dist/huibo-ui/p-2bc30b1b.entry.js +2 -0
- package/dist/huibo-ui/p-2bc30b1b.entry.js.map +1 -0
- package/dist/huibo-ui/{p-0d4b2997.entry.js → p-2bcda1bb.entry.js} +2 -2
- package/dist/huibo-ui/{p-b8d87f7e.entry.js → p-2ca9796a.entry.js} +2 -2
- package/dist/huibo-ui/p-2ca9796a.entry.js.map +1 -0
- package/dist/huibo-ui/{p-7da14d7c.entry.js → p-3042f986.entry.js} +2 -2
- package/dist/huibo-ui/{p-e039155d.entry.js → p-3dacb26b.entry.js} +2 -2
- package/dist/huibo-ui/{p-a084b8e5.entry.js → p-412ff618.entry.js} +2 -2
- package/dist/huibo-ui/{p-6beb5b81.entry.js → p-415295f3.entry.js} +2 -2
- package/dist/huibo-ui/p-415295f3.entry.js.map +1 -0
- package/dist/huibo-ui/p-494e6c25.entry.js +2 -0
- package/dist/huibo-ui/p-494e6c25.entry.js.map +1 -0
- package/dist/huibo-ui/p-4d87d7f4.entry.js +2 -0
- package/dist/huibo-ui/p-4d87d7f4.entry.js.map +1 -0
- package/dist/huibo-ui/{p-2811e603.entry.js → p-54a28052.entry.js} +2 -2
- package/dist/huibo-ui/p-54a28052.entry.js.map +1 -0
- package/dist/huibo-ui/p-5e253c15.entry.js +2 -0
- package/dist/huibo-ui/p-5e253c15.entry.js.map +1 -0
- package/dist/huibo-ui/p-63d68c61.entry.js +2 -0
- package/dist/huibo-ui/p-63d68c61.entry.js.map +1 -0
- package/dist/huibo-ui/{p-ccd09d5a.entry.js → p-6518c435.entry.js} +2 -2
- package/dist/huibo-ui/{p-1f8db37a.entry.js → p-687d8dff.entry.js} +2 -2
- package/dist/huibo-ui/p-687d8dff.entry.js.map +1 -0
- package/dist/huibo-ui/p-688460ce.entry.js +2 -0
- package/dist/huibo-ui/p-688460ce.entry.js.map +1 -0
- package/dist/huibo-ui/p-69bb1dd9.entry.js +2 -0
- package/dist/huibo-ui/p-69bb1dd9.entry.js.map +1 -0
- package/dist/huibo-ui/{p-e5cbfa9e.entry.js → p-6c23fbd1.entry.js} +2 -2
- package/dist/huibo-ui/p-6c23fbd1.entry.js.map +1 -0
- package/dist/huibo-ui/p-6c8cf248.entry.js.map +1 -1
- package/dist/huibo-ui/p-6efed295.entry.js +2 -0
- package/dist/huibo-ui/p-6efed295.entry.js.map +1 -0
- package/dist/huibo-ui/{p-c80f8ace.entry.js → p-79b24b83.entry.js} +2 -2
- package/dist/huibo-ui/p-79b24b83.entry.js.map +1 -0
- package/dist/huibo-ui/p-7a38b3e2.entry.js +2 -0
- package/dist/huibo-ui/p-7a38b3e2.entry.js.map +1 -0
- package/dist/huibo-ui/{p-cad57c2d.entry.js → p-7a682c56.entry.js} +2 -2
- package/dist/huibo-ui/{p-a8996d22.entry.js → p-815fc943.entry.js} +2 -2
- package/dist/huibo-ui/{p-af74667d.entry.js → p-89be7973.entry.js} +2 -2
- package/dist/huibo-ui/p-8a202bc5.entry.js.map +1 -1
- package/dist/huibo-ui/{p-213b9de7.entry.js → p-8c4415ed.entry.js} +2 -2
- package/dist/huibo-ui/p-8c4415ed.entry.js.map +1 -0
- package/dist/huibo-ui/{p-8fdbd17c.entry.js → p-950e7465.entry.js} +2 -2
- package/dist/huibo-ui/{p-ab9cf0e4.entry.js → p-96cecd21.entry.js} +2 -2
- package/dist/huibo-ui/p-96cecd21.entry.js.map +1 -0
- package/dist/huibo-ui/{p-2b4556ff.entry.js → p-98b513cd.entry.js} +2 -2
- package/dist/huibo-ui/p-98b513cd.entry.js.map +1 -0
- package/dist/huibo-ui/{p-86bdc48a.entry.js → p-ac18c68b.entry.js} +2 -2
- package/dist/huibo-ui/p-ac18c68b.entry.js.map +1 -0
- package/dist/huibo-ui/{p-89ea1141.entry.js → p-ac45291c.entry.js} +2 -2
- package/dist/huibo-ui/{p-e10fcfbe.entry.js → p-b105cf76.entry.js} +2 -2
- package/dist/huibo-ui/p-b105cf76.entry.js.map +1 -0
- package/dist/huibo-ui/{p-9a5406f0.entry.js → p-b38802b0.entry.js} +2 -2
- package/dist/huibo-ui/{p-9a5406f0.entry.js.map → p-b38802b0.entry.js.map} +1 -1
- package/dist/huibo-ui/{p-ea74fcae.entry.js → p-b3fd12c7.entry.js} +2 -2
- package/dist/huibo-ui/p-b3fd12c7.entry.js.map +1 -0
- package/dist/huibo-ui/p-b5ea18ba.entry.js +2 -0
- package/dist/huibo-ui/p-b5ea18ba.entry.js.map +1 -0
- package/dist/huibo-ui/{p-41d9c846.entry.js → p-b6afe81e.entry.js} +2 -2
- package/dist/huibo-ui/p-b7900dee.entry.js +2 -0
- package/dist/huibo-ui/p-b7900dee.entry.js.map +1 -0
- package/dist/huibo-ui/p-b8c83751.entry.js +2 -0
- package/dist/huibo-ui/p-b8c83751.entry.js.map +1 -0
- package/dist/huibo-ui/p-c7713947.entry.js +2 -0
- package/dist/huibo-ui/p-c7713947.entry.js.map +1 -0
- package/dist/huibo-ui/{p-33de6878.entry.js → p-c869842c.entry.js} +2 -2
- package/dist/huibo-ui/p-c869842c.entry.js.map +1 -0
- package/dist/huibo-ui/p-c8e917db.entry.js.map +1 -1
- package/dist/huibo-ui/p-cb66dbef.entry.js +2 -0
- package/dist/huibo-ui/p-cb66dbef.entry.js.map +1 -0
- package/dist/huibo-ui/p-cde83f76.entry.js +2 -0
- package/dist/huibo-ui/p-cde83f76.entry.js.map +1 -0
- package/dist/huibo-ui/{p-f5969181.entry.js → p-dd9c6459.entry.js} +2 -2
- package/dist/huibo-ui/{p-08b4005c.js → p-e0876aca.js} +1 -1
- package/dist/huibo-ui/p-e0876aca.js.map +1 -0
- package/dist/huibo-ui/{p-aa5e5e02.entry.js → p-e1773c93.entry.js} +2 -2
- package/dist/huibo-ui/p-e1773c93.entry.js.map +1 -0
- package/dist/huibo-ui/{p-626b48f1.entry.js → p-e73c357f.entry.js} +2 -2
- package/dist/huibo-ui/p-e73c357f.entry.js.map +1 -0
- package/dist/huibo-ui/{p-60532a1f.entry.js → p-e7c73624.entry.js} +2 -2
- package/dist/huibo-ui/p-e7c73624.entry.js.map +1 -0
- package/dist/huibo-ui/{p-13010da2.entry.js → p-e9e7abca.entry.js} +2 -2
- package/dist/huibo-ui/{p-f6889710.entry.js → p-ea0823f3.entry.js} +2 -2
- package/dist/huibo-ui/p-ea0823f3.entry.js.map +1 -0
- package/dist/huibo-ui/{p-b468858e.entry.js → p-f1f2483f.entry.js} +2 -2
- package/dist/huibo-ui/p-fad66d69.js +2 -0
- package/dist/huibo-ui/p-fad66d69.js.map +1 -0
- package/dist/huibo-ui/{p-fd8301c6.entry.js → p-fd6831f9.entry.js} +2 -2
- package/dist/huibo-ui/p-ff6bc5cc.entry.js +2 -0
- package/dist/huibo-ui/p-ff6bc5cc.entry.js.map +1 -0
- package/dist/types/components/Cascader/Cascader.d.ts +12 -0
- package/dist/types/components/Checkbox/Checkbox.d.ts +5 -0
- package/dist/types/components/Checkbox/CheckboxGroup.d.ts +1 -0
- package/dist/types/components/Collapse/Collapse.d.ts +2 -0
- package/dist/types/components/Collapse/CollapseItem.d.ts +8 -1
- package/dist/types/components/Dialog/Dialog.d.ts +13 -1
- package/dist/types/components/Drawer/Drawer.d.ts +4 -0
- package/dist/types/components/Dropdown/Dropdown.d.ts +6 -2
- package/dist/types/components/Form/Form.d.ts +2 -0
- package/dist/types/components/Image/Image.d.ts +6 -0
- package/dist/types/components/Menu/MenuItem.d.ts +8 -1
- package/dist/types/components/Message/Message.d.ts +3 -0
- package/dist/types/components/Popconfirm/Popconfirm.d.ts +6 -2
- package/dist/types/components/Popover/Popover.d.ts +6 -1
- package/dist/types/components/Radio/Radio.d.ts +5 -0
- package/dist/types/components/Segmented/Segmented.d.ts +6 -0
- package/dist/types/components/Select/Select.d.ts +5 -0
- package/dist/types/components/Table/Table.d.ts +8 -2
- package/dist/types/components/Tabs/Tabs.d.ts +6 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +6 -0
- package/dist/types/components/Tree/Tree.d.ts +24 -0
- package/dist/types/components/TreeSelect/TreeSelect.d.ts +17 -0
- package/dist/types/components/Watermark/Watermark.d.ts +7 -1
- package/dist/types/components.d.ts +40 -4
- package/dist/types/utils/a11y.d.ts +9 -0
- package/dist/types/utils/transition.d.ts +27 -0
- package/package.json +1 -1
- package/dist/cjs/a11y-802de67a.js.map +0 -1
- package/dist/cjs/date-helpers-1ffddc59.js.map +0 -1
- package/dist/components/p-08b4005c.js.map +0 -1
- package/dist/components/p-cc0aeb50.js.map +0 -1
- package/dist/esm/a11y-f9ab2964.js.map +0 -1
- package/dist/esm/date-helpers-44507189.js.map +0 -1
- package/dist/huibo-ui/p-08b4005c.js.map +0 -1
- package/dist/huibo-ui/p-1f8db37a.entry.js.map +0 -1
- package/dist/huibo-ui/p-213b9de7.entry.js.map +0 -1
- package/dist/huibo-ui/p-25fd7d5c.entry.js +0 -2
- package/dist/huibo-ui/p-25fd7d5c.entry.js.map +0 -1
- package/dist/huibo-ui/p-2811e603.entry.js.map +0 -1
- package/dist/huibo-ui/p-2943f5d0.entry.js.map +0 -1
- package/dist/huibo-ui/p-2b4556ff.entry.js.map +0 -1
- package/dist/huibo-ui/p-33de6878.entry.js.map +0 -1
- package/dist/huibo-ui/p-3807da71.entry.js +0 -2
- package/dist/huibo-ui/p-3807da71.entry.js.map +0 -1
- package/dist/huibo-ui/p-47ef7a86.entry.js +0 -2
- package/dist/huibo-ui/p-47ef7a86.entry.js.map +0 -1
- package/dist/huibo-ui/p-4d34e43e.entry.js +0 -2
- package/dist/huibo-ui/p-4d34e43e.entry.js.map +0 -1
- package/dist/huibo-ui/p-54aa2fd8.entry.js +0 -2
- package/dist/huibo-ui/p-54aa2fd8.entry.js.map +0 -1
- package/dist/huibo-ui/p-60532a1f.entry.js.map +0 -1
- package/dist/huibo-ui/p-626b48f1.entry.js.map +0 -1
- package/dist/huibo-ui/p-639f167d.entry.js +0 -2
- package/dist/huibo-ui/p-639f167d.entry.js.map +0 -1
- package/dist/huibo-ui/p-6beb5b81.entry.js.map +0 -1
- package/dist/huibo-ui/p-735bceef.entry.js.map +0 -1
- package/dist/huibo-ui/p-76519752.entry.js +0 -2
- package/dist/huibo-ui/p-76519752.entry.js.map +0 -1
- package/dist/huibo-ui/p-79af2efa.entry.js +0 -2
- package/dist/huibo-ui/p-79af2efa.entry.js.map +0 -1
- package/dist/huibo-ui/p-7f6975ad.entry.js +0 -2
- package/dist/huibo-ui/p-7f6975ad.entry.js.map +0 -1
- package/dist/huibo-ui/p-86bdc48a.entry.js.map +0 -1
- package/dist/huibo-ui/p-8a8443b8.entry.js +0 -2
- package/dist/huibo-ui/p-8a8443b8.entry.js.map +0 -1
- package/dist/huibo-ui/p-8fd788c9.entry.js +0 -2
- package/dist/huibo-ui/p-8fd788c9.entry.js.map +0 -1
- package/dist/huibo-ui/p-92521c31.entry.js +0 -2
- package/dist/huibo-ui/p-92521c31.entry.js.map +0 -1
- package/dist/huibo-ui/p-965d4d02.entry.js +0 -2
- package/dist/huibo-ui/p-965d4d02.entry.js.map +0 -1
- package/dist/huibo-ui/p-aa5e5e02.entry.js.map +0 -1
- package/dist/huibo-ui/p-ab9cf0e4.entry.js.map +0 -1
- package/dist/huibo-ui/p-b8d87f7e.entry.js.map +0 -1
- package/dist/huibo-ui/p-c6c91664.entry.js +0 -2
- package/dist/huibo-ui/p-c6c91664.entry.js.map +0 -1
- package/dist/huibo-ui/p-c80f8ace.entry.js.map +0 -1
- package/dist/huibo-ui/p-cc0aeb50.js +0 -2
- package/dist/huibo-ui/p-cc0aeb50.js.map +0 -1
- package/dist/huibo-ui/p-d79a15b1.entry.js +0 -2
- package/dist/huibo-ui/p-d79a15b1.entry.js.map +0 -1
- package/dist/huibo-ui/p-e10fcfbe.entry.js.map +0 -1
- package/dist/huibo-ui/p-e5cbfa9e.entry.js.map +0 -1
- package/dist/huibo-ui/p-ea74fcae.entry.js.map +0 -1
- package/dist/huibo-ui/p-edbda423.entry.js +0 -2
- package/dist/huibo-ui/p-edbda423.entry.js.map +0 -1
- package/dist/huibo-ui/p-f6889710.entry.js.map +0 -1
- package/dist/huibo-ui/p-f9bb5217.entry.js +0 -2
- package/dist/huibo-ui/p-f9bb5217.entry.js.map +0 -1
- package/dist/huibo-ui/p-fea20295.entry.js +0 -2
- package/dist/huibo-ui/p-fea20295.entry.js.map +0 -1
- /package/dist/huibo-ui/{p-678b4212.entry.js.map → p-0ddae4e9.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-f4336be9.entry.js.map → p-14c3b47b.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-c50ad398.entry.js.map → p-193efdc0.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-0d4b2997.entry.js.map → p-2bcda1bb.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-7da14d7c.entry.js.map → p-3042f986.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-e039155d.entry.js.map → p-3dacb26b.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-a084b8e5.entry.js.map → p-412ff618.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-ccd09d5a.entry.js.map → p-6518c435.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-cad57c2d.entry.js.map → p-7a682c56.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-a8996d22.entry.js.map → p-815fc943.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-af74667d.entry.js.map → p-89be7973.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-8fdbd17c.entry.js.map → p-950e7465.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-89ea1141.entry.js.map → p-ac45291c.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-41d9c846.entry.js.map → p-b6afe81e.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-f5969181.entry.js.map → p-dd9c6459.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-13010da2.entry.js.map → p-e9e7abca.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-b468858e.entry.js.map → p-f1f2483f.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-fd8301c6.entry.js.map → p-fd6831f9.entry.js.map} +0 -0
|
@@ -44,12 +44,12 @@ export class Link {
|
|
|
44
44
|
};
|
|
45
45
|
render() {
|
|
46
46
|
const Tag = this.href ? 'a' : 'span';
|
|
47
|
-
return (h(Tag, { key: '
|
|
47
|
+
return (h(Tag, { key: 'adc292c63a29c892aad0a7fbc8731daab5cb274f', class: {
|
|
48
48
|
'hb-link': true,
|
|
49
49
|
[`hb-link--${this.type}`]: true,
|
|
50
50
|
'hb-link--underline': this.underline,
|
|
51
51
|
'hb-link--disabled': this.disabled,
|
|
52
|
-
}, href: this.disabled ? undefined : this.href, target: this.target, onClick: this.handleClick }, this.icon && h("i", { key: '
|
|
52
|
+
}, href: this.disabled ? undefined : this.href, target: this.target, onClick: this.handleClick }, this.icon && h("i", { key: '8647d19079e91743aa0cb73e170f1a017caed895', class: this.icon }), h("slot", { key: '852517194c30de3092746039dfa1d294dc5fd243' })));
|
|
53
53
|
}
|
|
54
54
|
static get is() { return "hb-link"; }
|
|
55
55
|
static get encapsulation() { return "shadow"; }
|
|
@@ -11,11 +11,11 @@ export class Loading {
|
|
|
11
11
|
/** 是否全屏显示 */
|
|
12
12
|
fullscreen = false;
|
|
13
13
|
render() {
|
|
14
|
-
return (h("div", { key: '
|
|
14
|
+
return (h("div", { key: 'd4d4a02e79e76f293ec86320163cb69ff73b41ac', class: {
|
|
15
15
|
'hb-loading': true,
|
|
16
16
|
'hb-loading--fullscreen': this.fullscreen,
|
|
17
17
|
[`hb-loading--${this.size}`]: true,
|
|
18
|
-
} }, h("div", { key: '
|
|
18
|
+
} }, h("div", { key: 'c31b2e33a1d5a789dfd5eff3ae460b01f960627a', class: "hb-loading__spinner" }, h("div", { key: 'd02a2a05dbfe2b1185512375b64a157d2ebd16a0', class: "hb-loading__circle" }), this.text && h("div", { key: 'd224855e42c1448d2471262c52e14e812cc50d9a', class: "hb-loading__text" }, this.text))));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "hb-loading"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -61,11 +61,11 @@ export class Menu {
|
|
|
61
61
|
style['--hb-menu-color'] = this.textColor;
|
|
62
62
|
if (this.activeTextColor)
|
|
63
63
|
style['--hb-menu-active-color'] = this.activeTextColor;
|
|
64
|
-
return (h("ul", { key: '
|
|
64
|
+
return (h("ul", { key: 'afca5c6b17206341e12c66c5948c328396ceeccf', class: {
|
|
65
65
|
'hb-menu': true,
|
|
66
66
|
[`hb-menu--${this.mode}`]: true,
|
|
67
67
|
'hb-menu--collapsed': this.collapsed,
|
|
68
|
-
}, style: style, role: "menu" }, h("slot", { key: '
|
|
68
|
+
}, style: style, role: "menu" }, h("slot", { key: '3de1ef4c434bacb9fea50b46a275ab8854df65c6' })));
|
|
69
69
|
}
|
|
70
70
|
static get is() { return "hb-menu"; }
|
|
71
71
|
static get encapsulation() { return "shadow"; }
|
|
@@ -5,8 +5,17 @@ import { isActivationKey } from "../../utils/a11y";
|
|
|
5
5
|
*/
|
|
6
6
|
export class MenuItem {
|
|
7
7
|
el;
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* 唯一标识。
|
|
10
|
+
* O3:推荐用 itemKey。保留 key 作为向后兼容别名(key 是 Stencil/React 保留 prop,
|
|
11
|
+
* 通过 JSX 设置时可能被 vdom 拦截;HTML 属性 key="..." 仍可工作)。
|
|
12
|
+
*/
|
|
13
|
+
itemKey = '';
|
|
9
14
|
key = '';
|
|
15
|
+
/** 解析出的有效 key:itemKey 优先,回退到 key */
|
|
16
|
+
get effectiveKey() {
|
|
17
|
+
return this.itemKey || this.key;
|
|
18
|
+
}
|
|
10
19
|
/** 是否禁用 */
|
|
11
20
|
disabled = false;
|
|
12
21
|
/** 图标 */
|
|
@@ -20,7 +29,7 @@ export class MenuItem {
|
|
|
20
29
|
if (menu) {
|
|
21
30
|
// 使用内部事件名 hbMenuItemSelect,与 Menu 向外发射的公开事件 hbSelect 区分,
|
|
22
31
|
// 否则 Menu 的 @Listen('hbSelect') 会被自身 emit 的事件再次触发,导致无限递归。
|
|
23
|
-
menu.dispatchEvent(new CustomEvent('hbMenuItemSelect', { detail: this.
|
|
32
|
+
menu.dispatchEvent(new CustomEvent('hbMenuItemSelect', { detail: this.effectiveKey, bubbles: true }));
|
|
24
33
|
}
|
|
25
34
|
};
|
|
26
35
|
handleKeydown = (e) => {
|
|
@@ -32,16 +41,36 @@ export class MenuItem {
|
|
|
32
41
|
}
|
|
33
42
|
};
|
|
34
43
|
render() {
|
|
35
|
-
return (h("li", { key: '
|
|
44
|
+
return (h("li", { key: '67ecfc7c68603c1264237d73a4d5cfa3803835df', class: {
|
|
36
45
|
'hb-menu-item': true,
|
|
37
46
|
'hb-menu-item--active': this.active,
|
|
38
47
|
'hb-menu-item--disabled': this.disabled,
|
|
39
|
-
}, role: "menuitem", tabindex: this.disabled ? -1 : 0, "aria-disabled": this.disabled ? 'true' : undefined, "aria-current": this.active ? 'page' : undefined, onClick: this.handleClick, onKeyDown: this.handleKeydown }, this.icon && h("span", { key: '
|
|
48
|
+
}, role: "menuitem", tabindex: this.disabled ? -1 : 0, "aria-disabled": this.disabled ? 'true' : undefined, "aria-current": this.active ? 'page' : undefined, onClick: this.handleClick, onKeyDown: this.handleKeydown }, this.icon && h("span", { key: 'c1327820c95c2d16241194dad04143f8a05ee9ce', class: "hb-menu-item__icon" }, this.icon), h("span", { key: '01b93549cd0431e05f61ddcaddcfcf3ed71de866', class: "hb-menu-item__text" }, h("slot", { key: 'e7051746681ca4e78581494bb52bd0ed26afef21' }))));
|
|
40
49
|
}
|
|
41
50
|
static get is() { return "hb-menu-item"; }
|
|
42
51
|
static get encapsulation() { return "shadow"; }
|
|
43
52
|
static get properties() {
|
|
44
53
|
return {
|
|
54
|
+
"itemKey": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"mutable": false,
|
|
57
|
+
"complexType": {
|
|
58
|
+
"original": "string",
|
|
59
|
+
"resolved": "string",
|
|
60
|
+
"references": {}
|
|
61
|
+
},
|
|
62
|
+
"required": false,
|
|
63
|
+
"optional": false,
|
|
64
|
+
"docs": {
|
|
65
|
+
"tags": [],
|
|
66
|
+
"text": "\u552F\u4E00\u6807\u8BC6\u3002\nO3\uFF1A\u63A8\u8350\u7528 itemKey\u3002\u4FDD\u7559 key \u4F5C\u4E3A\u5411\u540E\u517C\u5BB9\u522B\u540D\uFF08key \u662F Stencil/React \u4FDD\u7559 prop\uFF0C\n\u901A\u8FC7 JSX \u8BBE\u7F6E\u65F6\u53EF\u80FD\u88AB vdom \u62E6\u622A\uFF1BHTML \u5C5E\u6027 key=\"...\" \u4ECD\u53EF\u5DE5\u4F5C\uFF09\u3002"
|
|
67
|
+
},
|
|
68
|
+
"getter": false,
|
|
69
|
+
"setter": false,
|
|
70
|
+
"attribute": "item-key",
|
|
71
|
+
"reflect": false,
|
|
72
|
+
"defaultValue": "''"
|
|
73
|
+
},
|
|
45
74
|
"key": {
|
|
46
75
|
"type": "string",
|
|
47
76
|
"mutable": false,
|
|
@@ -54,7 +83,7 @@ export class MenuItem {
|
|
|
54
83
|
"optional": false,
|
|
55
84
|
"docs": {
|
|
56
85
|
"tags": [],
|
|
57
|
-
"text": "
|
|
86
|
+
"text": ""
|
|
58
87
|
},
|
|
59
88
|
"getter": false,
|
|
60
89
|
"setter": false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../../src/components/Menu/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AAKH,MAAM,OAAO,QAAQ;IACR,EAAE,CAAc;IAE3B,
|
|
1
|
+
{"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../../src/components/Menu/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AAKH,MAAM,OAAO,QAAQ;IACR,EAAE,CAAc;IAE3B;;;;OAIG;IACK,OAAO,GAAW,EAAE,CAAC;IACrB,GAAG,GAAW,EAAE,CAAC;IAEzB,oCAAoC;IACpC,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,WAAW;IACH,QAAQ,GAAY,KAAK,CAAC;IAElC,SAAS;IACD,IAAI,CAAU;IAEtB,wBAAwB;IAChB,MAAM,GAAY,KAAK,CAAC;IAExB,WAAW,GAAG,GAAG,EAAE;QACzB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,yDAAyD;YACzD,0DAA0D;YAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxG,CAAC;IACH,CAAC,CAAC;IAEM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM;QACJ,OAAO,CACL,2DACE,KAAK,EAAE;gBACL,cAAc,EAAE,IAAI;gBACpB,sBAAsB,EAAE,IAAI,CAAC,MAAM;gBACnC,wBAAwB,EAAE,IAAI,CAAC,QAAQ;aACxC,EACD,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,kBACnC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa;YAE5B,IAAI,CAAC,IAAI,IAAI,6DAAM,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,IAAI,CAAQ;YACjE,6DAAM,KAAK,EAAC,oBAAoB;gBAC9B,8DAAQ,CACH,CACJ,CACN,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Element } from '@stencil/core';\nimport { isActivationKey } from '../../utils/a11y';\n\n/**\n * MenuItem 菜单项\n */\n@Component({\n tag: 'hb-menu-item',\n shadow: true,\n})\nexport class MenuItem {\n @Element() el: HTMLElement;\n\n /**\n * 唯一标识。\n * O3:推荐用 itemKey。保留 key 作为向后兼容别名(key 是 Stencil/React 保留 prop,\n * 通过 JSX 设置时可能被 vdom 拦截;HTML 属性 key=\"...\" 仍可工作)。\n */\n @Prop() itemKey: string = '';\n @Prop() key: string = '';\n\n /** 解析出的有效 key:itemKey 优先,回退到 key */\n private get effectiveKey(): string {\n return this.itemKey || this.key;\n }\n\n /** 是否禁用 */\n @Prop() disabled: boolean = false;\n\n /** 图标 */\n @Prop() icon?: string;\n\n /** 是否激活(由父级 Menu 设置) */\n @Prop() active: boolean = false;\n\n private handleClick = () => {\n if (this.disabled) return;\n const menu = this.el.closest('hb-menu');\n if (menu) {\n // 使用内部事件名 hbMenuItemSelect,与 Menu 向外发射的公开事件 hbSelect 区分,\n // 否则 Menu 的 @Listen('hbSelect') 会被自身 emit 的事件再次触发,导致无限递归。\n menu.dispatchEvent(new CustomEvent('hbMenuItemSelect', { detail: this.effectiveKey, bubbles: true }));\n }\n };\n\n private handleKeydown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n if (isActivationKey(e.key)) {\n e.preventDefault();\n this.handleClick();\n }\n };\n\n render() {\n return (\n <li\n class={{\n 'hb-menu-item': true,\n 'hb-menu-item--active': this.active,\n 'hb-menu-item--disabled': this.disabled,\n }}\n role=\"menuitem\"\n tabindex={this.disabled ? -1 : 0}\n aria-disabled={this.disabled ? 'true' : undefined}\n aria-current={this.active ? 'page' : undefined}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown}\n >\n {this.icon && <span class=\"hb-menu-item__icon\">{this.icon}</span>}\n <span class=\"hb-menu-item__text\">\n <slot />\n </span>\n </li>\n );\n }\n}\n"]}
|
|
@@ -53,16 +53,16 @@ export class SubMenu {
|
|
|
53
53
|
render() {
|
|
54
54
|
// 折叠态:浮层是否显示由 hover 决定;非折叠态:就地展开由 isOpen 决定
|
|
55
55
|
const showChildren = this.collapsed ? this.isHover : this.isOpen;
|
|
56
|
-
return (h("li", { key: '
|
|
56
|
+
return (h("li", { key: '8ffe1d7210cd000e7947b6723048e1b80bc6c8d8', class: {
|
|
57
57
|
'hb-sub-menu': true,
|
|
58
58
|
'hb-sub-menu--open': this.isOpen,
|
|
59
59
|
'hb-sub-menu--collapsed': this.collapsed,
|
|
60
|
-
}, role: "menuitem", "aria-haspopup": "menu", "aria-expanded": showChildren ? 'true' : 'false', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("div", { key: '
|
|
60
|
+
}, role: "menuitem", "aria-haspopup": "menu", "aria-expanded": showChildren ? 'true' : 'false', onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("div", { key: 'f5f84c08e60bd3207d1b3ef9066d4f66ba20f043', class: "hb-sub-menu__title", role: "button", tabindex: 0, "aria-expanded": showChildren ? 'true' : 'false',
|
|
61
61
|
// 折叠态用原生 title 提供文字提示(图标条场景)
|
|
62
|
-
title: this.collapsed ? this.label : undefined, onClick: this.toggle, onKeyDown: this.handleTitleKeydown }, this.icon && h("span", { key: '
|
|
62
|
+
title: this.collapsed ? this.label : undefined, onClick: this.toggle, onKeyDown: this.handleTitleKeydown }, this.icon && h("span", { key: 'a0fbdd43702b3bfd66dc77ccbca6c315f729ac6f', class: "hb-sub-menu__icon" }, this.icon), h("span", { key: 'ecaeed1a964217d2ee4c01713720a2e1ccc58023', class: "hb-sub-menu__label" }, this.label), h("span", { key: '3a354625d91de2598dd4e69cdce41bcee470bbc5', class: { 'hb-sub-menu__arrow': true, 'hb-sub-menu__arrow--open': showChildren } }, "\u25B6")), showChildren && (h("ul", { key: 'a7426f5611557c3f8a5bf27fe4a98653d4d59a74', class: {
|
|
63
63
|
'hb-sub-menu__children': true,
|
|
64
64
|
'hb-sub-menu__children--popover': this.collapsed,
|
|
65
|
-
}, role: "menu", onClick: this.handleChildrenClick }, h("slot", { key: '
|
|
65
|
+
}, role: "menu", onClick: this.handleChildrenClick }, h("slot", { key: '7a891101a285504556914763a08318d54689139e' })))));
|
|
66
66
|
}
|
|
67
67
|
static get is() { return "hb-sub-menu"; }
|
|
68
68
|
static get encapsulation() { return "shadow"; }
|
|
@@ -21,21 +21,30 @@ export class Message {
|
|
|
21
21
|
/** 显示时间(毫秒),0 为不自动关闭 */
|
|
22
22
|
duration = 3000;
|
|
23
23
|
visible = true;
|
|
24
|
+
// L3:存储 timer id 以便 disconnectedCallback 清理(修复前未存、卸载后仍触发 detached 实例)
|
|
25
|
+
autoCloseTimer;
|
|
26
|
+
removeTimer;
|
|
24
27
|
componentDidLoad() {
|
|
25
28
|
if (this.duration > 0) {
|
|
26
|
-
setTimeout(() => this.close(), this.duration);
|
|
29
|
+
this.autoCloseTimer = setTimeout(() => this.close(), this.duration);
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
close = () => {
|
|
30
33
|
this.visible = false;
|
|
31
|
-
setTimeout(() => this.el.remove(), 300);
|
|
34
|
+
this.removeTimer = setTimeout(() => this.el.remove(), 300);
|
|
32
35
|
};
|
|
36
|
+
disconnectedCallback() {
|
|
37
|
+
if (this.autoCloseTimer)
|
|
38
|
+
clearTimeout(this.autoCloseTimer);
|
|
39
|
+
if (this.removeTimer)
|
|
40
|
+
clearTimeout(this.removeTimer);
|
|
41
|
+
}
|
|
33
42
|
render() {
|
|
34
|
-
return (h("div", { key: '
|
|
43
|
+
return (h("div", { key: '8502f9c4c0877fb5cebe6db6fcc838ce9de92c97', class: {
|
|
35
44
|
'hb-message': true,
|
|
36
45
|
[`hb-message--${this.type}`]: true,
|
|
37
46
|
'hb-message--visible': this.visible,
|
|
38
|
-
}, role: "alert" }, h("span", { key: '
|
|
47
|
+
}, role: "alert" }, h("span", { key: 'fa00c1a8f6fbc9c4be3cb3809a739eb1f08035b2', class: "hb-message__icon" }, ICON_MAP[this.type]), h("span", { key: '870991d67ff662ba9c15d3df820394258d5eef3e', class: "hb-message__text" }, this.message), this.closable && (h("span", { key: '5f10b7332a0125841384238b2048572e7ee8558b', class: "hb-message__close", onClick: this.close }, "\u00D7"))));
|
|
39
48
|
}
|
|
40
49
|
static get is() { return "hb-message"; }
|
|
41
50
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/components/Message/Message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAInE,MAAM,QAAQ,GAAgC;IAC5C,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACb,CAAC;AAEF;;;GAGG;AAKH,MAAM,OAAO,OAAO;IACP,EAAE,CAAc;IAE3B,WAAW;IACH,OAAO,GAAW,EAAE,CAAC;IAE7B,WAAW;IACH,IAAI,GAAgB,MAAM,CAAC;IAEnC,eAAe;IACP,QAAQ,GAAY,KAAK,CAAC;IAElC,wBAAwB;IAChB,QAAQ,GAAW,IAAI,CAAC;IAEvB,OAAO,GAAY,IAAI,CAAC;IAEjC,gBAAgB;QACd,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/components/Message/Message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAInE,MAAM,QAAQ,GAAgC;IAC5C,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACb,CAAC;AAEF;;;GAGG;AAKH,MAAM,OAAO,OAAO;IACP,EAAE,CAAc;IAE3B,WAAW;IACH,OAAO,GAAW,EAAE,CAAC;IAE7B,WAAW;IACH,IAAI,GAAgB,MAAM,CAAC;IAEnC,eAAe;IACP,QAAQ,GAAY,KAAK,CAAC;IAElC,wBAAwB;IAChB,QAAQ,GAAW,IAAI,CAAC;IAEvB,OAAO,GAAY,IAAI,CAAC;IAEjC,sEAAsE;IAC9D,cAAc,CAAiC;IAC/C,WAAW,CAAiC;IAEpD,gBAAgB;QACd,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,KAAK,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,oBAAoB;QAClB,IAAI,IAAI,CAAC,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,CACL,4DACE,KAAK,EAAE;gBACL,YAAY,EAAE,IAAI;gBAClB,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAClC,qBAAqB,EAAE,IAAI,CAAC,OAAO;aACpC,EACD,IAAI,EAAC,OAAO;YAEZ,6DAAM,KAAK,EAAC,kBAAkB,IAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAQ;YAC3D,6DAAM,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,OAAO,CAAQ;YACnD,IAAI,CAAC,QAAQ,IAAI,CAChB,6DAAM,KAAK,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,aAE5C,CACR,CACG,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, State, Element } from '@stencil/core';\n\nexport type MessageType = 'success' | 'warning' | 'info' | 'error' | 'loading';\n\nconst ICON_MAP: Record<MessageType, string> = {\n success: '✓',\n warning: '⚠',\n info: 'ℹ',\n error: '✕',\n loading: '⏳',\n};\n\n/**\n * Message 消息提示组件\n * 常用于主动操作后的反馈提示\n */\n@Component({\n tag: 'hb-message',\n shadow: true,\n})\nexport class Message {\n @Element() el: HTMLElement;\n\n /** 消息文字 */\n @Prop() message: string = '';\n\n /** 消息类型 */\n @Prop() type: MessageType = 'info';\n\n /** 是否显示关闭按钮 */\n @Prop() closable: boolean = false;\n\n /** 显示时间(毫秒),0 为不自动关闭 */\n @Prop() duration: number = 3000;\n\n @State() visible: boolean = true;\n\n // L3:存储 timer id 以便 disconnectedCallback 清理(修复前未存、卸载后仍触发 detached 实例)\n private autoCloseTimer?: ReturnType<typeof setTimeout>;\n private removeTimer?: ReturnType<typeof setTimeout>;\n\n componentDidLoad() {\n if (this.duration > 0) {\n this.autoCloseTimer = setTimeout(() => this.close(), this.duration);\n }\n }\n\n private close = () => {\n this.visible = false;\n this.removeTimer = setTimeout(() => this.el.remove(), 300);\n };\n\n disconnectedCallback() {\n if (this.autoCloseTimer) clearTimeout(this.autoCloseTimer);\n if (this.removeTimer) clearTimeout(this.removeTimer);\n }\n\n render() {\n return (\n <div\n class={{\n 'hb-message': true,\n [`hb-message--${this.type}`]: true,\n 'hb-message--visible': this.visible,\n }}\n role=\"alert\"\n >\n <span class=\"hb-message__icon\">{ICON_MAP[this.type]}</span>\n <span class=\"hb-message__text\">{this.message}</span>\n {this.closable && (\n <span class=\"hb-message__close\" onClick={this.close}>\n ×\n </span>\n )}\n </div>\n );\n }\n}\n"]}
|
|
@@ -19,7 +19,7 @@ export class PageHeader {
|
|
|
19
19
|
this.hbBack.emit();
|
|
20
20
|
};
|
|
21
21
|
render() {
|
|
22
|
-
return (h("div", { key: '
|
|
22
|
+
return (h("div", { key: 'ecfe4d352c4696133f30f9cb130a484c9512872f', class: { 'hb-page-header': true, 'hb-page-header--ghost': this.ghost } }, h("div", { key: 'b8972b2af8caf2c16dfa336434112d53dbced99e', class: "hb-page-header__main" }, this.back && (h("button", { key: '175834ac887d6079cc4518e2e454e3b19b574e49', type: "button", class: "hb-page-header__back", onClick: this.handleBack, "aria-label": "\u8FD4\u56DE" }, h("span", { key: '2effefb7b2e1846992b549def041226f9076ae8c', class: "hb-page-header__back-arrow" }, "\u2190"))), h("div", { key: '2bd0014a9b6788bd9202f330b36808f74d3feecc', class: "hb-page-header__titles" }, this.title && h("span", { key: 'a1538b4e5a6e1eb611c7cfa3eaaefbd802d71911', class: "hb-page-header__title" }, this.title), this.subtitle && h("span", { key: 'ff730fda5ba94da9482a513262b6f31749f712ad', class: "hb-page-header__subtitle" }, this.subtitle))), h("div", { key: '5b062f4656eed561e52f1aacb26c32ac8f638fb9', class: "hb-page-header__extra" }, h("slot", { key: 'd5cb18262a07f8b4962704f0d661ec3265275b35' }))));
|
|
23
23
|
}
|
|
24
24
|
static get is() { return "hb-page-header"; }
|
|
25
25
|
static get encapsulation() { return "shadow"; }
|
|
@@ -50,14 +50,17 @@ export class Pagination {
|
|
|
50
50
|
handleSizeChange(e) {
|
|
51
51
|
const target = e.target;
|
|
52
52
|
const size = parseInt(target.value, 10);
|
|
53
|
-
// 切 pageSize 后立即重算 totalPages,并防止 currentPage
|
|
53
|
+
// 切 pageSize 后立即重算 totalPages,并防止 currentPage 越界。
|
|
54
|
+
// 注意:先记下旧页码再赋值,否则「safePage !== internalCurrent」恒为 false(B2 回归)。
|
|
54
55
|
this.internalPageSize = size;
|
|
55
56
|
const newTotal = Math.max(1, Math.ceil(this.total / size));
|
|
56
|
-
const
|
|
57
|
+
const oldCurrent = this.internalCurrent;
|
|
58
|
+
const safePage = Math.min(oldCurrent, newTotal);
|
|
57
59
|
this.hbSizeChange.emit(size);
|
|
58
60
|
this.internalCurrent = safePage;
|
|
59
61
|
this.currentPage = safePage;
|
|
60
|
-
|
|
62
|
+
// 仅当页码真的被钳位时才 emit,避免切 pageSize 但页码未变时多余回调
|
|
63
|
+
if (safePage !== oldCurrent) {
|
|
61
64
|
this.hbCurrentChange.emit(safePage);
|
|
62
65
|
}
|
|
63
66
|
}
|
|
@@ -94,10 +97,10 @@ export class Pagination {
|
|
|
94
97
|
}
|
|
95
98
|
render() {
|
|
96
99
|
const pages = this.getPages();
|
|
97
|
-
return (h("nav", { key: '
|
|
100
|
+
return (h("nav", { key: '9879e0e196ad17034b61a53919db135b70e829c7', class: { 'hb-pagination': true, 'hb-pagination--disabled': this.disabled }, role: "navigation", "aria-label": "\u5206\u9875" }, this.showTotal && (h("span", { key: '4cdc7fb2bbd5a05306b8256083e226fe326c6d3e', class: "hb-pagination__total", "aria-live": "polite" }, "\u5171 ", this.total, " \u6761")), this.showPageSize && (h("select", { key: '0d9630a2193aba460d576d126dcc54db34c8061c', class: "hb-pagination__sizes", onChange: this.handleSizeChange, disabled: this.disabled, "aria-label": "\u6BCF\u9875\u6761\u6570" }, this.pageSizes.map(size => (h("option", { value: size, selected: size === this.internalPageSize }, size, " \u6761/\u9875"))))), h("button", { key: '01e783d289673b1594101be14c2656ad4916edd8', type: "button", class: "hb-pagination__btn hb-pagination__prev", disabled: this.disabled || this.internalCurrent <= 1, onClick: () => this.handlePageClick(this.internalCurrent - 1), "aria-label": "\u4E0A\u4E00\u9875" }, "\u2039"), pages.map(page => page === '...' ? (h("span", { class: "hb-pagination__ellipsis", "aria-hidden": "true" }, "...")) : (h("button", { type: "button", class: {
|
|
98
101
|
'hb-pagination__btn': true,
|
|
99
102
|
'hb-pagination__btn--active': page === this.internalCurrent,
|
|
100
|
-
}, disabled: this.disabled, onClick: () => this.handlePageClick(page), "aria-label": `第 ${page} 页`, "aria-current": page === this.internalCurrent ? 'page' : undefined }, page))), h("button", { key: '
|
|
103
|
+
}, disabled: this.disabled, onClick: () => this.handlePageClick(page), "aria-label": `第 ${page} 页`, "aria-current": page === this.internalCurrent ? 'page' : undefined }, page))), h("button", { key: '946f06b2333376cd02dd6309377d691b5f5e6039', type: "button", class: "hb-pagination__btn hb-pagination__next", disabled: this.disabled || this.internalCurrent >= this.totalPages, onClick: () => this.handlePageClick(this.internalCurrent + 1), "aria-label": "\u4E0B\u4E00\u9875" }, "\u203A")));
|
|
101
104
|
}
|
|
102
105
|
static get is() { return "hb-pagination"; }
|
|
103
106
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\n\n/**\n * Pagination 分页组件\n * 当数据量过多时,使用分页分解数据\n */\n@Component({\n tag: 'hb-pagination',\n styleUrl: 'pagination.css',\n shadow: true,\n})\nexport class Pagination {\n /** 总条目数 */\n @Prop() total: number = 0;\n\n /** 每页显示条目数 */\n @Prop() pageSize: number = 10;\n\n /** 当前页数 */\n @Prop({ mutable: true }) currentPage: number = 1;\n\n /** 每页显示个数选择器的选项设置 */\n @Prop() pageSizes: number[] = [10, 20, 50, 100];\n\n /** 最大页码按钮数 */\n @Prop() pagerCount: number = 7;\n\n /** 是否禁用 */\n @Prop() disabled: boolean = false;\n\n /** 是否显示总条数 */\n @Prop() showTotal: boolean = false;\n\n /** 是否显示每页条数选择器 */\n @Prop() showPageSize: boolean = false;\n\n @State() internalCurrent: number = 1;\n /** 内部每页条数:pageSize 变更时同步;size 切换后立即生效重算 totalPages */\n @State() internalPageSize: number = 10;\n\n /** 当前页改变事件 */\n @Event() hbCurrentChange: EventEmitter<number>;\n\n /** 每页条数改变事件 */\n @Event() hbSizeChange: EventEmitter<number>;\n\n @Watch('currentPage')\n handleCurrentPageChange() {\n this.internalCurrent = this.currentPage;\n }\n\n @Watch('pageSize')\n handlePageSizeChange() {\n this.internalPageSize = this.pageSize;\n }\n\n componentDidLoad() {\n this.internalCurrent = this.currentPage;\n this.internalPageSize = this.pageSize;\n }\n\n private get totalPages(): number {\n return Math.max(1, Math.ceil(this.total / this.internalPageSize));\n }\n\n private handlePageClick(page: number) {\n if (this.disabled || page === this.internalCurrent || page < 1 || page > this.totalPages) return;\n this.internalCurrent = page;\n this.currentPage = page;\n this.hbCurrentChange.emit(page);\n }\n\n private handleSizeChange(e: Event) {\n const target = e.target as HTMLSelectElement;\n const size = parseInt(target.value, 10);\n // 切 pageSize 后立即重算 totalPages,并防止 currentPage 越界\n this.internalPageSize = size;\n const newTotal = Math.max(1, Math.ceil(this.total / size));\n const safePage = Math.min(this.internalCurrent, newTotal);\n this.hbSizeChange.emit(size);\n this.internalCurrent = safePage;\n this.currentPage = safePage;\n if (safePage !== this.internalCurrent) {\n this.hbCurrentChange.emit(safePage);\n }\n }\n\n private getPages(): (number | '...')[] {\n const pages: (number | '...')[] = [];\n const total = this.totalPages;\n const current = this.internalCurrent;\n const pager = this.pagerCount;\n\n if (total <= pager) {\n for (let i = 1; i <= total; i++) pages.push(i);\n return pages;\n }\n\n const half = Math.floor((pager - 2) / 2);\n let start = current - half;\n let end = current + half;\n\n if (start < 2) {\n start = 2;\n end = Math.min(pager - 1, total - 1);\n }\n if (end > total - 1) {\n end = total - 1;\n start = Math.max(2, total - pager + 2);\n }\n\n pages.push(1);\n if (start > 2) pages.push('...');\n for (let i = start; i <= end; i++) pages.push(i);\n if (end < total - 1) pages.push('...');\n pages.push(total);\n\n return pages;\n }\n\n render() {\n const pages = this.getPages();\n\n return (\n <nav\n class={{ 'hb-pagination': true, 'hb-pagination--disabled': this.disabled }}\n role=\"navigation\"\n aria-label=\"分页\"\n >\n {this.showTotal && (\n <span class=\"hb-pagination__total\" aria-live=\"polite\">共 {this.total} 条</span>\n )}\n\n {this.showPageSize && (\n <select\n class=\"hb-pagination__sizes\"\n onChange={this.handleSizeChange}\n disabled={this.disabled}\n aria-label=\"每页条数\"\n >\n {this.pageSizes.map(size => (\n <option value={size} selected={size === this.internalPageSize}>{size} 条/页</option>\n ))}\n </select>\n )}\n\n <button\n type=\"button\"\n class=\"hb-pagination__btn hb-pagination__prev\"\n disabled={this.disabled || this.internalCurrent <= 1}\n onClick={() => this.handlePageClick(this.internalCurrent - 1)}\n aria-label=\"上一页\"\n >\n ‹\n </button>\n\n {pages.map(page =>\n page === '...' ? (\n <span class=\"hb-pagination__ellipsis\" aria-hidden=\"true\">...</span>\n ) : (\n <button\n type=\"button\"\n class={{\n 'hb-pagination__btn': true,\n 'hb-pagination__btn--active': page === this.internalCurrent,\n }}\n disabled={this.disabled}\n onClick={() => this.handlePageClick(page as number)}\n aria-label={`第 ${page} 页`}\n aria-current={page === this.internalCurrent ? 'page' : undefined}\n >\n {page}\n </button>\n )\n )}\n\n <button\n type=\"button\"\n class=\"hb-pagination__btn hb-pagination__next\"\n disabled={this.disabled || this.internalCurrent >= this.totalPages}\n onClick={() => this.handlePageClick(this.internalCurrent + 1)}\n aria-label=\"下一页\"\n >\n ›\n </button>\n </nav>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\n\n/**\n * Pagination 分页组件\n * 当数据量过多时,使用分页分解数据\n */\n@Component({\n tag: 'hb-pagination',\n styleUrl: 'pagination.css',\n shadow: true,\n})\nexport class Pagination {\n /** 总条目数 */\n @Prop() total: number = 0;\n\n /** 每页显示条目数 */\n @Prop() pageSize: number = 10;\n\n /** 当前页数 */\n @Prop({ mutable: true }) currentPage: number = 1;\n\n /** 每页显示个数选择器的选项设置 */\n @Prop() pageSizes: number[] = [10, 20, 50, 100];\n\n /** 最大页码按钮数 */\n @Prop() pagerCount: number = 7;\n\n /** 是否禁用 */\n @Prop() disabled: boolean = false;\n\n /** 是否显示总条数 */\n @Prop() showTotal: boolean = false;\n\n /** 是否显示每页条数选择器 */\n @Prop() showPageSize: boolean = false;\n\n @State() internalCurrent: number = 1;\n /** 内部每页条数:pageSize 变更时同步;size 切换后立即生效重算 totalPages */\n @State() internalPageSize: number = 10;\n\n /** 当前页改变事件 */\n @Event() hbCurrentChange: EventEmitter<number>;\n\n /** 每页条数改变事件 */\n @Event() hbSizeChange: EventEmitter<number>;\n\n @Watch('currentPage')\n handleCurrentPageChange() {\n this.internalCurrent = this.currentPage;\n }\n\n @Watch('pageSize')\n handlePageSizeChange() {\n this.internalPageSize = this.pageSize;\n }\n\n componentDidLoad() {\n this.internalCurrent = this.currentPage;\n this.internalPageSize = this.pageSize;\n }\n\n private get totalPages(): number {\n return Math.max(1, Math.ceil(this.total / this.internalPageSize));\n }\n\n private handlePageClick(page: number) {\n if (this.disabled || page === this.internalCurrent || page < 1 || page > this.totalPages) return;\n this.internalCurrent = page;\n this.currentPage = page;\n this.hbCurrentChange.emit(page);\n }\n\n private handleSizeChange(e: Event) {\n const target = e.target as HTMLSelectElement;\n const size = parseInt(target.value, 10);\n // 切 pageSize 后立即重算 totalPages,并防止 currentPage 越界。\n // 注意:先记下旧页码再赋值,否则「safePage !== internalCurrent」恒为 false(B2 回归)。\n this.internalPageSize = size;\n const newTotal = Math.max(1, Math.ceil(this.total / size));\n const oldCurrent = this.internalCurrent;\n const safePage = Math.min(oldCurrent, newTotal);\n this.hbSizeChange.emit(size);\n this.internalCurrent = safePage;\n this.currentPage = safePage;\n // 仅当页码真的被钳位时才 emit,避免切 pageSize 但页码未变时多余回调\n if (safePage !== oldCurrent) {\n this.hbCurrentChange.emit(safePage);\n }\n }\n\n private getPages(): (number | '...')[] {\n const pages: (number | '...')[] = [];\n const total = this.totalPages;\n const current = this.internalCurrent;\n const pager = this.pagerCount;\n\n if (total <= pager) {\n for (let i = 1; i <= total; i++) pages.push(i);\n return pages;\n }\n\n const half = Math.floor((pager - 2) / 2);\n let start = current - half;\n let end = current + half;\n\n if (start < 2) {\n start = 2;\n end = Math.min(pager - 1, total - 1);\n }\n if (end > total - 1) {\n end = total - 1;\n start = Math.max(2, total - pager + 2);\n }\n\n pages.push(1);\n if (start > 2) pages.push('...');\n for (let i = start; i <= end; i++) pages.push(i);\n if (end < total - 1) pages.push('...');\n pages.push(total);\n\n return pages;\n }\n\n render() {\n const pages = this.getPages();\n\n return (\n <nav class={{ 'hb-pagination': true, 'hb-pagination--disabled': this.disabled }} role=\"navigation\" aria-label=\"分页\">\n {this.showTotal && (\n <span class=\"hb-pagination__total\" aria-live=\"polite\">\n 共 {this.total} 条\n </span>\n )}\n\n {this.showPageSize && (\n <select class=\"hb-pagination__sizes\" onChange={this.handleSizeChange} disabled={this.disabled} aria-label=\"每页条数\">\n {this.pageSizes.map(size => (\n <option value={size} selected={size === this.internalPageSize}>\n {size} 条/页\n </option>\n ))}\n </select>\n )}\n\n <button\n type=\"button\"\n class=\"hb-pagination__btn hb-pagination__prev\"\n disabled={this.disabled || this.internalCurrent <= 1}\n onClick={() => this.handlePageClick(this.internalCurrent - 1)}\n aria-label=\"上一页\"\n >\n ‹\n </button>\n\n {pages.map(page =>\n page === '...' ? (\n <span class=\"hb-pagination__ellipsis\" aria-hidden=\"true\">\n ...\n </span>\n ) : (\n <button\n type=\"button\"\n class={{\n 'hb-pagination__btn': true,\n 'hb-pagination__btn--active': page === this.internalCurrent,\n }}\n disabled={this.disabled}\n onClick={() => this.handlePageClick(page as number)}\n aria-label={`第 ${page} 页`}\n aria-current={page === this.internalCurrent ? 'page' : undefined}\n >\n {page}\n </button>\n ),\n )}\n\n <button\n type=\"button\"\n class=\"hb-pagination__btn hb-pagination__next\"\n disabled={this.disabled || this.internalCurrent >= this.totalPages}\n onClick={() => this.handlePageClick(this.internalCurrent + 1)}\n aria-label=\"下一页\"\n >\n ›\n </button>\n </nav>\n );\n }\n}\n"]}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
2
|
import { computePosition, getNextZIndex } from "../../utils/popup-manager";
|
|
3
3
|
import { isActivationKey } from "../../utils/a11y";
|
|
4
|
+
import { createLeaveScheduler } from "../../utils/transition";
|
|
4
5
|
/**
|
|
5
6
|
* Popconfirm 气泡确认框
|
|
6
7
|
* 无障碍(对齐 antd / WAI-ARIA):
|
|
7
8
|
* - 触发器 role=button + aria-haspopup=dialog + aria-expanded + aria-describedby
|
|
8
9
|
* - 浮层 role=dialog + aria-live=polite(确认文屏幕阅读器实时播报)
|
|
9
10
|
* - 键盘:trigger Enter/Space 打开;Esc=取消关闭;打开时自动聚焦确认按钮
|
|
11
|
+
*
|
|
12
|
+
* 进出场动画:用 leaving state 延迟卸载。
|
|
10
13
|
*/
|
|
11
14
|
export class Popconfirm {
|
|
12
15
|
el;
|
|
@@ -17,29 +20,35 @@ export class Popconfirm {
|
|
|
17
20
|
disabled = false;
|
|
18
21
|
icon = '⚠';
|
|
19
22
|
visible = false;
|
|
23
|
+
leaving = false;
|
|
20
24
|
popupStyle = {};
|
|
21
25
|
triggerRef;
|
|
22
26
|
popupRef;
|
|
23
27
|
confirmBtnRef;
|
|
28
|
+
leave = createLeaveScheduler(() => this.leaving, v => (this.leaving = v), 200);
|
|
24
29
|
show = () => {
|
|
25
30
|
if (this.disabled)
|
|
26
31
|
return;
|
|
32
|
+
this.leave.cancel();
|
|
27
33
|
this.visible = true;
|
|
28
34
|
requestAnimationFrame(() => {
|
|
29
35
|
this.updatePosition();
|
|
30
|
-
// 打开后自动聚焦确认按钮(对齐 antd:Enter 直接确认)
|
|
31
36
|
this.confirmBtnRef?.focus();
|
|
32
37
|
});
|
|
33
38
|
};
|
|
34
|
-
hide = () => {
|
|
35
|
-
|
|
39
|
+
hide = () => {
|
|
40
|
+
this.visible = false;
|
|
41
|
+
this.leave.start();
|
|
42
|
+
};
|
|
43
|
+
disconnectedCallback() {
|
|
44
|
+
this.leave.dispose();
|
|
45
|
+
}
|
|
36
46
|
handleKeydown = (e) => {
|
|
37
|
-
if (e.key === 'Escape' && this.visible) {
|
|
47
|
+
if (e.key === 'Escape' && (this.visible || this.leaving)) {
|
|
38
48
|
e.preventDefault();
|
|
39
49
|
this.handleCancel(e);
|
|
40
50
|
}
|
|
41
51
|
};
|
|
42
|
-
/** 触发器键盘:Enter/Space 打开 */
|
|
43
52
|
handleTriggerKeydown = (e) => {
|
|
44
53
|
if (this.disabled)
|
|
45
54
|
return;
|
|
@@ -66,8 +75,20 @@ export class Popconfirm {
|
|
|
66
75
|
this.hide();
|
|
67
76
|
this.el.dispatchEvent(new CustomEvent('hbCancel', { bubbles: true }));
|
|
68
77
|
};
|
|
78
|
+
get shouldRender() {
|
|
79
|
+
return this.visible || this.leaving;
|
|
80
|
+
}
|
|
69
81
|
render() {
|
|
70
|
-
return (h("div", { key: '
|
|
82
|
+
return (h("div", { key: '226619c96a2db6ccaebb74ad82945fa412a12ac1', class: "hb-popconfirm", onClick: this.show, onKeyDown: this.handleKeydown }, h("div", { key: 'fa33a01af716ef727ab4e1bb5ab936e6a9831baa', ref: (el) => {
|
|
83
|
+
this.triggerRef = el;
|
|
84
|
+
}, class: "hb-popconfirm__trigger", role: "button", tabindex: this.disabled ? -1 : 0, "aria-haspopup": "dialog", "aria-expanded": this.visible ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', onKeyDown: this.handleTriggerKeydown }, h("slot", { key: 'bb7ce2a124bcfdb45138d62e548954af35115f44' })), this.shouldRender && (h("div", { key: '706762852f8cfdcbc4afdb33ef7ea33263cb5e5f', ref: (el) => {
|
|
85
|
+
this.popupRef = el;
|
|
86
|
+
}, class: {
|
|
87
|
+
'hb-popconfirm__popup': true,
|
|
88
|
+
'hb-popconfirm__popup--leaving': this.leaving,
|
|
89
|
+
}, style: this.popupStyle, role: "dialog", "aria-live": "polite", "aria-labelledby": "hb-popconfirm__title" }, h("div", { key: '543120f1621f1d1d48c11d9c0981def93f48d052', class: "hb-popconfirm__main" }, h("span", { key: 'fb9289e719296fb6dd41180f9f04fbfcd00cb308', class: "hb-popconfirm__icon", "aria-hidden": "true" }, this.icon), h("span", { key: '337236e625fa0153dede32b2806e3bab936e322c', id: "hb-popconfirm__title", class: "hb-popconfirm__title" }, this.title)), h("div", { key: '00ec4666bbc3b3d313af8a02a0da73609eed5584', class: "hb-popconfirm__action" }, h("button", { key: 'ee50356e14f2c81f8aeab193f99530b77bc15f6c', type: "button", class: "hb-popconfirm__btn hb-popconfirm__btn--cancel", onClick: this.handleCancel }, this.cancelButtonText), h("button", { key: '719717991db63b57000c9d93ba2e254e8bf7045f', type: "button", ref: (el) => {
|
|
90
|
+
this.confirmBtnRef = el;
|
|
91
|
+
}, class: "hb-popconfirm__btn hb-popconfirm__btn--confirm", onClick: this.handleConfirm }, this.confirmButtonText))))));
|
|
71
92
|
}
|
|
72
93
|
static get is() { return "hb-popconfirm"; }
|
|
73
94
|
static get encapsulation() { return "shadow"; }
|
|
@@ -214,6 +235,7 @@ export class Popconfirm {
|
|
|
214
235
|
static get states() {
|
|
215
236
|
return {
|
|
216
237
|
"visible": {},
|
|
238
|
+
"leaving": {},
|
|
217
239
|
"popupStyle": {}
|
|
218
240
|
};
|
|
219
241
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popconfirm.js","sourceRoot":"","sources":["../../../src/components/Popconfirm/Popconfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAa,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Popconfirm.js","sourceRoot":"","sources":["../../../src/components/Popconfirm/Popconfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAa,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;GAQG;AAEH,MAAM,OAAO,UAAU;IACV,EAAE,CAAc;IACnB,KAAK,GAAW,UAAU,CAAC;IAC3B,iBAAiB,GAAW,IAAI,CAAC;IACjC,gBAAgB,GAAW,IAAI,CAAC;IAChC,SAAS,GAAc,KAAK,CAAC;IAC7B,QAAQ,GAAY,KAAK,CAAC;IAC1B,IAAI,GAAW,GAAG,CAAC;IAClB,OAAO,GAAY,KAAK,CAAC;IACzB,OAAO,GAAY,KAAK,CAAC;IACzB,UAAU,GAA2B,EAAE,CAAC;IAEzC,UAAU,CAAe;IACzB,QAAQ,CAAkB;IAC1B,aAAa,CAAqB;IAClC,KAAK,GAAG,oBAAoB,CAClC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAClB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EACvB,GAAG,CACJ,CAAC;IAEM,IAAI,GAAG,GAAG,EAAE;QAClB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,qBAAqB,CAAC,GAAG,EAAE;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACM,IAAI,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,oBAAoB;QAClB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;QAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEM,oBAAoB,GAAG,CAAC,CAAgB,EAAE,EAAE;QAClD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEM,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACxE,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;IACpG,CAAC;IAEO,aAAa,GAAG,CAAC,CAAQ,EAAE,EAAE;QACnC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC;IACM,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;QAClC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa;YAC1E,4DACE,GAAG,EAAE,CAAC,EAAO,EAAE,EAAE;oBACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACvB,CAAC,EACD,KAAK,EAAC,wBAAwB,EAC9B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAClB,QAAQ,mBACP,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC/C,SAAS,EAAE,IAAI,CAAC,oBAAoB;gBAEpC,8DAAQ,CACJ;YACL,IAAI,CAAC,YAAY,IAAI,CACpB,4DACE,GAAG,EAAE,CAAC,EAAO,EAAE,EAAE;oBACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACrB,CAAC,EACD,KAAK,EAAE;oBACL,sBAAsB,EAAE,IAAI;oBAC5B,+BAA+B,EAAE,IAAI,CAAC,OAAO;iBAC9C,EACD,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,IAAI,EAAC,QAAQ,eACH,QAAQ,qBACF,sBAAsB;gBAEtC,4DAAK,KAAK,EAAC,qBAAqB;oBAC9B,6DAAM,KAAK,EAAC,qBAAqB,iBAAa,MAAM,IACjD,IAAI,CAAC,IAAI,CACL;oBACP,6DAAM,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC,sBAAsB,IACzD,IAAI,CAAC,KAAK,CACN,CACH;gBACN,4DAAK,KAAK,EAAC,uBAAuB;oBAChC,+DAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+CAA+C,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,IACnG,IAAI,CAAC,gBAAgB,CACf;oBACT,+DACE,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,CAAC,EAAO,EAAE,EAAE;4BACf,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBAC1B,CAAC,EACD,KAAK,EAAC,gDAAgD,EACtD,OAAO,EAAE,IAAI,CAAC,aAAa,IAE1B,IAAI,CAAC,iBAAiB,CAChB,CACL,CACF,CACP,CACG,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, State, Element } from '@stencil/core';\nimport { computePosition, getNextZIndex, Placement } from '../../utils/popup-manager';\nimport { isActivationKey } from '../../utils/a11y';\nimport { createLeaveScheduler } from '../../utils/transition';\n\n/**\n * Popconfirm 气泡确认框\n * 无障碍(对齐 antd / WAI-ARIA):\n * - 触发器 role=button + aria-haspopup=dialog + aria-expanded + aria-describedby\n * - 浮层 role=dialog + aria-live=polite(确认文屏幕阅读器实时播报)\n * - 键盘:trigger Enter/Space 打开;Esc=取消关闭;打开时自动聚焦确认按钮\n *\n * 进出场动画:用 leaving state 延迟卸载。\n */\n@Component({ tag: 'hb-popconfirm', styleUrl: 'popconfirm.css', shadow: true })\nexport class Popconfirm {\n @Element() el: HTMLElement;\n @Prop() title: string = '确定执行此操作?';\n @Prop() confirmButtonText: string = '确定';\n @Prop() cancelButtonText: string = '取消';\n @Prop() placement: Placement = 'top';\n @Prop() disabled: boolean = false;\n @Prop() icon: string = '⚠';\n @State() visible: boolean = false;\n @State() leaving: boolean = false;\n @State() popupStyle: Record<string, string> = {};\n\n private triggerRef?: HTMLElement;\n private popupRef?: HTMLDivElement;\n private confirmBtnRef?: HTMLButtonElement;\n private leave = createLeaveScheduler(\n () => this.leaving,\n v => (this.leaving = v),\n 200,\n );\n\n private show = () => {\n if (this.disabled) return;\n this.leave.cancel();\n this.visible = true;\n requestAnimationFrame(() => {\n this.updatePosition();\n this.confirmBtnRef?.focus();\n });\n };\n private hide = () => {\n this.visible = false;\n this.leave.start();\n };\n\n disconnectedCallback() {\n this.leave.dispose();\n }\n\n private handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && (this.visible || this.leaving)) {\n e.preventDefault();\n this.handleCancel(e);\n }\n };\n\n private handleTriggerKeydown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n if (isActivationKey(e.key)) {\n e.preventDefault();\n this.show();\n }\n };\n\n private updatePosition() {\n if (!this.triggerRef || !this.popupRef) return;\n const rect = this.triggerRef.getBoundingClientRect();\n const { width: pw, height: ph } = this.popupRef.getBoundingClientRect();\n const pos = computePosition(rect, pw, ph, this.placement, 8);\n this.popupStyle = { top: `${pos.top}px`, left: `${pos.left}px`, zIndex: String(getNextZIndex()) };\n }\n\n private handleConfirm = (e: Event) => {\n e.stopPropagation();\n this.hide();\n this.el.dispatchEvent(new CustomEvent('hbConfirm', { bubbles: true }));\n };\n private handleCancel = (e: Event) => {\n e.stopPropagation();\n this.hide();\n this.el.dispatchEvent(new CustomEvent('hbCancel', { bubbles: true }));\n };\n\n private get shouldRender(): boolean {\n return this.visible || this.leaving;\n }\n\n render() {\n return (\n <div class=\"hb-popconfirm\" onClick={this.show} onKeyDown={this.handleKeydown}>\n <div\n ref={(el: any) => {\n this.triggerRef = el;\n }}\n class=\"hb-popconfirm__trigger\"\n role=\"button\"\n tabindex={this.disabled ? -1 : 0}\n aria-haspopup=\"dialog\"\n aria-expanded={this.visible ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onKeyDown={this.handleTriggerKeydown}\n >\n <slot />\n </div>\n {this.shouldRender && (\n <div\n ref={(el: any) => {\n this.popupRef = el;\n }}\n class={{\n 'hb-popconfirm__popup': true,\n 'hb-popconfirm__popup--leaving': this.leaving,\n }}\n style={this.popupStyle}\n role=\"dialog\"\n aria-live=\"polite\"\n aria-labelledby=\"hb-popconfirm__title\"\n >\n <div class=\"hb-popconfirm__main\">\n <span class=\"hb-popconfirm__icon\" aria-hidden=\"true\">\n {this.icon}\n </span>\n <span id=\"hb-popconfirm__title\" class=\"hb-popconfirm__title\">\n {this.title}\n </span>\n </div>\n <div class=\"hb-popconfirm__action\">\n <button type=\"button\" class=\"hb-popconfirm__btn hb-popconfirm__btn--cancel\" onClick={this.handleCancel}>\n {this.cancelButtonText}\n </button>\n <button\n type=\"button\"\n ref={(el: any) => {\n this.confirmBtnRef = el;\n }}\n class=\"hb-popconfirm__btn hb-popconfirm__btn--confirm\"\n onClick={this.handleConfirm}\n >\n {this.confirmButtonText}\n </button>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"]}
|
|
@@ -1,20 +1,84 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
|
|
1
|
+
:host {
|
|
2
|
+
display: inline-block;
|
|
3
|
+
}
|
|
4
|
+
.hb-popconfirm__trigger {
|
|
5
|
+
display: inline-block;
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
}
|
|
3
8
|
.hb-popconfirm__popup {
|
|
4
|
-
position: fixed;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
position: fixed;
|
|
10
|
+
background: var(--hb-color-bg-elevated);
|
|
11
|
+
border-radius: var(--hb-border-radius-base);
|
|
12
|
+
box-shadow: var(--hb-box-shadow);
|
|
13
|
+
padding: var(--hb-spacing-md);
|
|
14
|
+
min-width: 200px;
|
|
15
|
+
animation: hb-popconfirm-fade 0.15s ease-out;
|
|
16
|
+
pointer-events: auto;
|
|
17
|
+
}
|
|
18
|
+
.hb-popconfirm__main {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: flex-start;
|
|
21
|
+
gap: var(--hb-spacing-xs);
|
|
22
|
+
margin-bottom: var(--hb-spacing-sm);
|
|
23
|
+
}
|
|
24
|
+
.hb-popconfirm__icon {
|
|
25
|
+
color: var(--hb-color-warning);
|
|
26
|
+
font-size: 16px;
|
|
27
|
+
flex-shrink: 0;
|
|
28
|
+
}
|
|
29
|
+
.hb-popconfirm__title {
|
|
30
|
+
font-size: var(--hb-font-size-sm);
|
|
31
|
+
color: var(--hb-color-text);
|
|
32
|
+
line-height: 1.5;
|
|
33
|
+
}
|
|
34
|
+
.hb-popconfirm__action {
|
|
35
|
+
display: flex;
|
|
36
|
+
justify-content: flex-end;
|
|
37
|
+
gap: var(--hb-spacing-xs);
|
|
38
|
+
}
|
|
12
39
|
.hb-popconfirm__btn {
|
|
13
|
-
padding: 4px 12px;
|
|
14
|
-
|
|
40
|
+
padding: 4px 12px;
|
|
41
|
+
font-size: var(--hb-font-size-xs);
|
|
42
|
+
border-radius: var(--hb-border-radius-sm);
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
border: 1px solid var(--hb-color-border);
|
|
45
|
+
background: var(--hb-color-bg);
|
|
15
46
|
transition: all var(--hb-transition-duration);
|
|
16
47
|
}
|
|
17
|
-
.hb-popconfirm__btn--cancel:hover {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
48
|
+
.hb-popconfirm__btn--cancel:hover {
|
|
49
|
+
color: var(--hb-color-primary);
|
|
50
|
+
border-color: var(--hb-color-primary);
|
|
51
|
+
}
|
|
52
|
+
.hb-popconfirm__btn--confirm {
|
|
53
|
+
background: var(--hb-color-primary);
|
|
54
|
+
color: #fff;
|
|
55
|
+
border-color: var(--hb-color-primary);
|
|
56
|
+
}
|
|
57
|
+
.hb-popconfirm__btn--confirm:hover {
|
|
58
|
+
background: var(--hb-color-primary-hover);
|
|
59
|
+
}
|
|
60
|
+
@keyframes hb-popconfirm-fade {
|
|
61
|
+
from {
|
|
62
|
+
opacity: 0;
|
|
63
|
+
transform: scale(0.95);
|
|
64
|
+
}
|
|
65
|
+
to {
|
|
66
|
+
opacity: 1;
|
|
67
|
+
transform: scale(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* 离场动画 */
|
|
72
|
+
.hb-popconfirm__popup--leaving {
|
|
73
|
+
animation: hb-popconfirm-fade-out 0.2s ease-in forwards;
|
|
74
|
+
}
|
|
75
|
+
@keyframes hb-popconfirm-fade-out {
|
|
76
|
+
from {
|
|
77
|
+
opacity: 1;
|
|
78
|
+
transform: scale(1);
|
|
79
|
+
}
|
|
80
|
+
to {
|
|
81
|
+
opacity: 0;
|
|
82
|
+
transform: scale(0.98);
|
|
83
|
+
}
|
|
84
|
+
}
|