primevue 3.27.0 → 3.28.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/README.md +1 -1
- package/autocomplete/AutoComplete.d.ts +10 -1
- package/autocomplete/AutoComplete.vue +1 -1
- package/autocomplete/autocomplete.cjs.js +4 -1
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.esm.js +4 -1
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +4 -1
- package/autocomplete/autocomplete.min.js +1 -1
- package/avatar/Avatar.d.ts +44 -0
- package/avatar/Avatar.vue +10 -8
- package/avatar/avatar.cjs.js +36 -34
- package/avatar/avatar.cjs.min.js +1 -1
- package/avatar/avatar.esm.js +33 -35
- package/avatar/avatar.esm.min.js +1 -1
- package/avatar/avatar.js +37 -36
- package/avatar/avatar.min.js +1 -1
- package/avatargroup/AvatarGroup.d.ts +27 -1
- package/avatargroup/AvatarGroup.vue +5 -2
- package/avatargroup/avatargroup.cjs.js +9 -5
- package/avatargroup/avatargroup.cjs.min.js +1 -1
- package/avatargroup/avatargroup.esm.js +6 -6
- package/avatargroup/avatargroup.esm.min.js +1 -1
- package/avatargroup/avatargroup.js +10 -7
- package/avatargroup/avatargroup.min.js +1 -1
- package/badge/Badge.d.ts +32 -0
- package/badge/Badge.vue +3 -1
- package/badge/badge.cjs.js +8 -4
- package/badge/badge.cjs.min.js +1 -1
- package/badge/badge.esm.js +5 -5
- package/badge/badge.esm.min.js +1 -1
- package/badge/badge.js +9 -6
- package/badge/badge.min.js +1 -1
- package/basecomponent/BaseComponent.vue +10 -3
- package/basecomponent/basecomponent.cjs.js +10 -3
- package/basecomponent/basecomponent.cjs.min.js +1 -1
- package/basecomponent/basecomponent.esm.js +10 -3
- package/basecomponent/basecomponent.esm.min.js +1 -1
- package/basecomponent/basecomponent.js +10 -3
- package/basecomponent/basecomponent.min.js +1 -1
- package/baseicon/BaseIcon.vue +2 -2
- package/baseicon/baseicon.cjs.js +2 -2
- package/baseicon/baseicon.cjs.min.js +1 -1
- package/baseicon/baseicon.esm.js +2 -2
- package/baseicon/baseicon.esm.min.js +1 -1
- package/baseicon/baseicon.js +2 -2
- package/baseicon/baseicon.min.js +1 -1
- package/blockui/BlockUI.d.ts +44 -0
- package/blockui/BlockUI.vue +3 -1
- package/blockui/blockui.cjs.js +9 -3
- package/blockui/blockui.cjs.min.js +1 -1
- package/blockui/blockui.esm.js +6 -4
- package/blockui/blockui.esm.min.js +1 -1
- package/blockui/blockui.js +10 -5
- package/blockui/blockui.min.js +1 -1
- package/breadcrumb/Breadcrumb.d.ts +60 -0
- package/breadcrumb/Breadcrumb.vue +8 -6
- package/breadcrumb/BreadcrumbItem.vue +14 -10
- package/breadcrumb/breadcrumb.cjs.js +53 -51
- package/breadcrumb/breadcrumb.cjs.min.js +1 -1
- package/breadcrumb/breadcrumb.esm.js +53 -52
- package/breadcrumb/breadcrumb.esm.min.js +1 -1
- package/breadcrumb/breadcrumb.js +54 -53
- package/breadcrumb/breadcrumb.min.js +1 -1
- package/button/Button.d.ts +48 -0
- package/button/Button.vue +10 -9
- package/button/button.cjs.js +43 -44
- package/button/button.cjs.min.js +1 -1
- package/button/button.esm.js +43 -45
- package/button/button.esm.min.js +1 -1
- package/button/button.js +44 -46
- package/button/button.min.js +1 -1
- package/chart/Chart.d.ts +36 -0
- package/chart/Chart.vue +5 -2
- package/chart/chart.cjs.js +10 -5
- package/chart/chart.cjs.min.js +1 -1
- package/chart/chart.esm.js +7 -6
- package/chart/chart.esm.min.js +1 -1
- package/chart/chart.js +11 -7
- package/chart/chart.min.js +1 -1
- package/chip/Chip.d.ts +60 -0
- package/chip/Chip.vue +10 -9
- package/chip/chip.cjs.js +35 -36
- package/chip/chip.cjs.min.js +1 -1
- package/chip/chip.esm.js +35 -37
- package/chip/chip.esm.min.js +1 -1
- package/chip/chip.js +36 -38
- package/chip/chip.min.js +1 -1
- package/config/PrimeVue.d.ts +8 -0
- package/config/config.cjs.js +3 -1
- package/config/config.cjs.min.js +1 -1
- package/config/config.esm.js +3 -2
- package/config/config.esm.min.js +1 -1
- package/config/config.js +3 -1
- package/config/config.min.js +1 -1
- package/confirmdialog/ConfirmDialog.d.ts +88 -0
- package/confirmdialog/ConfirmDialog.vue +9 -6
- package/confirmdialog/confirmdialog.cjs.js +22 -18
- package/confirmdialog/confirmdialog.cjs.min.js +1 -1
- package/confirmdialog/confirmdialog.esm.js +22 -19
- package/confirmdialog/confirmdialog.esm.min.js +1 -1
- package/confirmdialog/confirmdialog.js +23 -20
- package/confirmdialog/confirmdialog.min.js +1 -1
- package/confirmpopup/ConfirmPopup.d.ts +75 -0
- package/confirmpopup/ConfirmPopup.vue +11 -9
- package/confirmpopup/confirmpopup.cjs.js +27 -25
- package/confirmpopup/confirmpopup.cjs.min.js +1 -1
- package/confirmpopup/confirmpopup.esm.js +27 -26
- package/confirmpopup/confirmpopup.esm.min.js +1 -1
- package/confirmpopup/confirmpopup.js +28 -27
- package/confirmpopup/confirmpopup.min.js +1 -1
- package/contextmenu/ContextMenu.d.ts +135 -0
- package/contextmenu/ContextMenu.vue +4 -1
- package/contextmenu/ContextMenuSub.vue +46 -10
- package/contextmenu/contextmenu.cjs.js +57 -46
- package/contextmenu/contextmenu.cjs.min.js +1 -1
- package/contextmenu/contextmenu.esm.js +57 -47
- package/contextmenu/contextmenu.esm.min.js +1 -1
- package/contextmenu/contextmenu.js +58 -48
- package/contextmenu/contextmenu.min.js +1 -1
- package/core/core.js +278 -246
- package/core/core.min.js +11 -11
- package/dialog/Dialog.d.ts +87 -0
- package/dialog/Dialog.vue +23 -10
- package/dialog/dialog.cjs.js +31 -30
- package/dialog/dialog.cjs.min.js +1 -1
- package/dialog/dialog.esm.js +31 -31
- package/dialog/dialog.esm.min.js +1 -1
- package/dialog/dialog.js +32 -32
- package/dialog/dialog.min.js +1 -1
- package/dock/Dock.d.ts +94 -0
- package/dock/Dock.vue +4 -2
- package/dock/DockSub.vue +30 -6
- package/dock/dock.cjs.js +52 -39
- package/dock/dock.cjs.min.js +1 -1
- package/dock/dock.esm.js +52 -40
- package/dock/dock.esm.min.js +1 -1
- package/dock/dock.js +53 -41
- package/dock/dock.min.js +1 -1
- package/dropdown/Dropdown.vue +1 -1
- package/dropdown/dropdown.cjs.js +1 -1
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +1 -1
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +1 -1
- package/dropdown/dropdown.min.js +1 -1
- package/dynamicdialog/DynamicDialog.vue +3 -1
- package/dynamicdialog/dynamicdialog.cjs.js +5 -1
- package/dynamicdialog/dynamicdialog.cjs.min.js +1 -1
- package/dynamicdialog/dynamicdialog.esm.js +4 -1
- package/dynamicdialog/dynamicdialog.esm.min.js +1 -1
- package/dynamicdialog/dynamicdialog.js +6 -3
- package/dynamicdialog/dynamicdialog.min.js +1 -1
- package/fileupload/FileContent.vue +11 -9
- package/fileupload/FileUpload.d.ts +154 -0
- package/fileupload/FileUpload.vue +26 -24
- package/fileupload/fileupload.cjs.js +100 -97
- package/fileupload/fileupload.cjs.min.js +1 -1
- package/fileupload/fileupload.esm.js +100 -98
- package/fileupload/fileupload.esm.min.js +1 -1
- package/fileupload/fileupload.js +101 -99
- package/fileupload/fileupload.min.js +1 -1
- package/inlinemessage/InlineMessage.d.ts +52 -0
- package/inlinemessage/InlineMessage.vue +7 -3
- package/inlinemessage/inlinemessage.cjs.js +12 -11
- package/inlinemessage/inlinemessage.cjs.min.js +1 -1
- package/inlinemessage/inlinemessage.esm.js +12 -12
- package/inlinemessage/inlinemessage.esm.min.js +1 -1
- package/inlinemessage/inlinemessage.js +13 -13
- package/inlinemessage/inlinemessage.min.js +1 -1
- package/inplace/Inplace.d.ts +59 -0
- package/inplace/Inplace.vue +7 -5
- package/inplace/inplace.cjs.js +17 -16
- package/inplace/inplace.cjs.min.js +1 -1
- package/inplace/inplace.esm.js +17 -17
- package/inplace/inplace.esm.min.js +1 -1
- package/inplace/inplace.js +18 -18
- package/inplace/inplace.min.js +1 -1
- package/listbox/Listbox.d.ts +1 -1
- package/megamenu/MegaMenu.d.ts +149 -0
- package/megamenu/MegaMenu.vue +6 -3
- package/megamenu/MegaMenuSub.vue +43 -15
- package/megamenu/megamenu.cjs.js +83 -75
- package/megamenu/megamenu.cjs.min.js +1 -1
- package/megamenu/megamenu.esm.js +83 -76
- package/megamenu/megamenu.esm.min.js +1 -1
- package/megamenu/megamenu.js +84 -77
- package/megamenu/megamenu.min.js +1 -1
- package/menu/Menu.d.ts +113 -0
- package/menu/Menu.vue +11 -8
- package/menu/Menuitem.vue +20 -8
- package/menu/menu.cjs.js +73 -62
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +73 -63
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +74 -64
- package/menu/menu.min.js +1 -1
- package/menubar/Menubar.d.ts +146 -0
- package/menubar/Menubar.vue +8 -5
- package/menubar/MenubarSub.vue +38 -10
- package/menubar/menubar.cjs.js +70 -60
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +70 -61
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +71 -62
- package/menubar/menubar.min.js +1 -1
- package/message/Message.d.ts +64 -1
- package/message/Message.vue +9 -7
- package/message/message.cjs.js +22 -21
- package/message/message.cjs.min.js +1 -1
- package/message/message.esm.js +22 -22
- package/message/message.esm.min.js +1 -1
- package/message/message.js +23 -23
- package/message/message.min.js +1 -1
- package/multiselect/MultiSelect.d.ts +1 -1
- package/overlaypanel/OverlayPanel.d.ts +56 -0
- package/overlaypanel/OverlayPanel.vue +6 -4
- package/overlaypanel/overlaypanel.cjs.js +13 -10
- package/overlaypanel/overlaypanel.cjs.min.js +1 -1
- package/overlaypanel/overlaypanel.esm.js +13 -11
- package/overlaypanel/overlaypanel.esm.min.js +1 -1
- package/overlaypanel/overlaypanel.js +14 -12
- package/overlaypanel/overlaypanel.min.js +1 -1
- package/package.json +1 -1
- package/panel/Panel.d.ts +10 -1
- package/panel/Panel.vue +1 -1
- package/panel/panel.cjs.js +4 -1
- package/panel/panel.cjs.min.js +1 -1
- package/panel/panel.esm.js +4 -1
- package/panel/panel.esm.min.js +1 -1
- package/panel/panel.js +4 -1
- package/panel/panel.min.js +1 -1
- package/panelmenu/PanelMenu.d.ts +133 -0
- package/panelmenu/PanelMenu.vue +36 -13
- package/panelmenu/PanelMenuList.vue +3 -0
- package/panelmenu/PanelMenuSub.vue +33 -12
- package/panelmenu/panelmenu.cjs.js +115 -96
- package/panelmenu/panelmenu.cjs.min.js +1 -1
- package/panelmenu/panelmenu.esm.js +115 -97
- package/panelmenu/panelmenu.esm.min.js +1 -1
- package/panelmenu/panelmenu.js +116 -98
- package/panelmenu/panelmenu.min.js +1 -1
- package/password/Password.vue +2 -2
- package/password/password.cjs.js +2 -2
- package/password/password.cjs.min.js +1 -1
- package/password/password.esm.js +2 -2
- package/password/password.esm.min.js +1 -1
- package/password/password.js +2 -2
- package/password/password.min.js +1 -1
- package/progressbar/ProgressBar.d.ts +40 -0
- package/progressbar/ProgressBar.vue +8 -5
- package/progressbar/progressbar.cjs.js +25 -23
- package/progressbar/progressbar.cjs.min.js +1 -1
- package/progressbar/progressbar.esm.js +22 -24
- package/progressbar/progressbar.esm.min.js +1 -1
- package/progressbar/progressbar.js +26 -25
- package/progressbar/progressbar.min.js +1 -1
- package/progressspinner/ProgressSpinner.d.ts +40 -0
- package/progressspinner/ProgressSpinner.vue +6 -3
- package/progressspinner/progressspinner.cjs.js +18 -13
- package/progressspinner/progressspinner.cjs.min.js +1 -1
- package/progressspinner/progressspinner.esm.js +15 -14
- package/progressspinner/progressspinner.esm.min.js +1 -1
- package/progressspinner/progressspinner.js +19 -15
- package/progressspinner/progressspinner.min.js +1 -1
- package/resources/themes/arya-blue/theme.css +1 -1
- package/resources/themes/arya-green/theme.css +1 -1
- package/resources/themes/arya-orange/theme.css +1 -1
- package/resources/themes/arya-purple/theme.css +1 -1
- package/resources/themes/bootstrap4-dark-blue/theme.css +1 -1
- package/resources/themes/bootstrap4-dark-purple/theme.css +1 -1
- package/resources/themes/bootstrap4-light-blue/theme.css +1 -1
- package/resources/themes/bootstrap4-light-purple/theme.css +1 -1
- package/resources/themes/fluent-light/theme.css +1 -1
- package/resources/themes/lara-dark-blue/theme.css +1 -1
- package/resources/themes/lara-dark-indigo/theme.css +1 -1
- package/resources/themes/lara-dark-purple/theme.css +1 -1
- package/resources/themes/lara-dark-teal/theme.css +1 -1
- package/resources/themes/lara-light-blue/theme.css +1 -1
- package/resources/themes/lara-light-indigo/theme.css +1 -1
- package/resources/themes/lara-light-purple/theme.css +1 -1
- package/resources/themes/lara-light-teal/theme.css +1 -1
- package/resources/themes/luna-amber/theme.css +1 -1
- package/resources/themes/luna-blue/theme.css +1 -1
- package/resources/themes/luna-green/theme.css +1 -1
- package/resources/themes/luna-pink/theme.css +1 -1
- package/resources/themes/md-dark-deeppurple/theme.css +4 -1
- package/resources/themes/md-dark-indigo/theme.css +4 -1
- package/resources/themes/md-light-deeppurple/theme.css +4 -1
- package/resources/themes/md-light-indigo/theme.css +4 -1
- package/resources/themes/mdc-dark-deeppurple/theme.css +4 -1
- package/resources/themes/mdc-dark-indigo/theme.css +4 -1
- package/resources/themes/mdc-light-deeppurple/theme.css +4 -1
- package/resources/themes/mdc-light-indigo/theme.css +4 -1
- package/resources/themes/mira/theme.css +1 -1
- package/resources/themes/nano/theme.css +1 -1
- package/resources/themes/nova/theme.css +1 -1
- package/resources/themes/nova-accent/theme.css +1 -1
- package/resources/themes/nova-alt/theme.css +1 -1
- package/resources/themes/nova-vue/theme.css +1 -1
- package/resources/themes/rhea/theme.css +1 -1
- package/resources/themes/saga-blue/theme.css +1 -1
- package/resources/themes/saga-green/theme.css +1 -1
- package/resources/themes/saga-orange/theme.css +1 -1
- package/resources/themes/saga-purple/theme.css +1 -1
- package/resources/themes/soho-dark/theme.css +1 -1
- package/resources/themes/soho-light/theme.css +1 -1
- package/resources/themes/tailwind-light/theme.css +1 -1
- package/resources/themes/vela-blue/theme.css +1 -1
- package/resources/themes/vela-green/theme.css +1 -1
- package/resources/themes/vela-orange/theme.css +1 -1
- package/resources/themes/vela-purple/theme.css +1 -1
- package/resources/themes/viva-dark/theme.css +1 -1
- package/resources/themes/viva-light/theme.css +1 -1
- package/scrolltop/ScrollTop.d.ts +48 -0
- package/scrolltop/ScrollTop.vue +5 -2
- package/scrolltop/scrolltop.cjs.js +10 -7
- package/scrolltop/scrolltop.cjs.min.js +1 -1
- package/scrolltop/scrolltop.esm.js +10 -8
- package/scrolltop/scrolltop.esm.min.js +1 -1
- package/scrolltop/scrolltop.js +11 -9
- package/scrolltop/scrolltop.min.js +1 -1
- package/sidebar/Sidebar.d.ts +68 -0
- package/sidebar/Sidebar.vue +9 -7
- package/sidebar/sidebar.cjs.js +26 -24
- package/sidebar/sidebar.cjs.min.js +1 -1
- package/sidebar/sidebar.esm.js +26 -25
- package/sidebar/sidebar.esm.min.js +1 -1
- package/sidebar/sidebar.js +27 -26
- package/sidebar/sidebar.min.js +1 -1
- package/skeleton/Skeleton.d.ts +32 -0
- package/skeleton/Skeleton.vue +4 -1
- package/skeleton/skeleton.cjs.js +10 -4
- package/skeleton/skeleton.cjs.min.js +1 -1
- package/skeleton/skeleton.esm.js +7 -5
- package/skeleton/skeleton.esm.min.js +1 -1
- package/skeleton/skeleton.js +11 -6
- package/skeleton/skeleton.min.js +1 -1
- package/speeddial/SpeedDial.d.ts +101 -0
- package/speeddial/SpeedDial.vue +31 -8
- package/speeddial/speeddial.cjs.js +47 -33
- package/speeddial/speeddial.cjs.min.js +1 -1
- package/speeddial/speeddial.esm.js +47 -34
- package/speeddial/speeddial.esm.min.js +1 -1
- package/speeddial/speeddial.js +48 -35
- package/speeddial/speeddial.min.js +1 -1
- package/splitbutton/SplitButton.d.ts +64 -0
- package/splitbutton/SplitButton.vue +8 -5
- package/splitbutton/splitbutton.cjs.js +23 -18
- package/splitbutton/splitbutton.cjs.min.js +1 -1
- package/splitbutton/splitbutton.esm.js +23 -19
- package/splitbutton/splitbutton.esm.min.js +1 -1
- package/splitbutton/splitbutton.js +24 -20
- package/splitbutton/splitbutton.min.js +1 -1
- package/steps/Steps.d.ts +52 -0
- package/steps/Steps.vue +11 -8
- package/steps/steps.cjs.js +34 -33
- package/steps/steps.cjs.min.js +1 -1
- package/steps/steps.esm.js +31 -34
- package/steps/steps.esm.min.js +1 -1
- package/steps/steps.js +35 -35
- package/steps/steps.min.js +1 -1
- package/tabmenu/TabMenu.d.ts +79 -0
- package/tabmenu/TabMenu.vue +20 -10
- package/tabmenu/tabmenu.cjs.js +47 -41
- package/tabmenu/tabmenu.cjs.min.js +1 -1
- package/tabmenu/tabmenu.esm.js +47 -42
- package/tabmenu/tabmenu.esm.min.js +1 -1
- package/tabmenu/tabmenu.js +48 -43
- package/tabmenu/tabmenu.min.js +1 -1
- package/tag/Tag.d.ts +40 -0
- package/tag/Tag.vue +7 -4
- package/tag/tag.cjs.js +14 -12
- package/tag/tag.cjs.min.js +1 -1
- package/tag/tag.esm.js +11 -13
- package/tag/tag.esm.min.js +1 -1
- package/tag/tag.js +15 -14
- package/tag/tag.min.js +1 -1
- package/terminal/Terminal.d.ts +79 -0
- package/terminal/Terminal.vue +12 -10
- package/terminal/terminal.cjs.js +23 -28
- package/terminal/terminal.cjs.min.js +1 -1
- package/terminal/terminal.esm.js +23 -29
- package/terminal/terminal.esm.min.js +1 -1
- package/terminal/terminal.js +24 -30
- package/terminal/terminal.min.js +1 -1
- package/tieredmenu/TieredMenu.d.ts +130 -0
- package/tieredmenu/TieredMenu.vue +4 -1
- package/tieredmenu/TieredMenuSub.vue +39 -11
- package/tieredmenu/tieredmenu.cjs.js +53 -41
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +53 -42
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +54 -43
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/toast/Toast.d.ts +79 -0
- package/toast/Toast.vue +4 -1
- package/toast/ToastMessage.vue +12 -10
- package/toast/toast.cjs.js +31 -31
- package/toast/toast.cjs.min.js +1 -1
- package/toast/toast.esm.js +31 -32
- package/toast/toast.esm.min.js +1 -1
- package/toast/toast.js +32 -33
- package/toast/toast.min.js +1 -1
- package/treeselect/TreeSelect.d.ts +1 -2
- package/vetur-attributes.json +160 -0
- package/vetur-tags.json +79 -34
- package/web-types.json +404 -2
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import BaseComponent from 'primevue/basecomponent';
|
|
1
2
|
import Button from 'primevue/button';
|
|
2
3
|
import PlusIcon from 'primevue/icons/plus';
|
|
3
4
|
import Ripple from 'primevue/ripple';
|
|
4
5
|
import Tooltip from 'primevue/tooltip';
|
|
5
6
|
import { UniqueComponentId, DomHandler } from 'primevue/utils';
|
|
6
|
-
import { resolveComponent, resolveDirective, openBlock, createElementBlock, Fragment, createElementVNode,
|
|
7
|
+
import { resolveComponent, resolveDirective, openBlock, createElementBlock, Fragment, createElementVNode, mergeProps, renderSlot, createVNode, normalizeClass, withCtx, createBlock, resolveDynamicComponent, renderList, withDirectives, createCommentVNode } from 'vue';
|
|
7
8
|
|
|
8
9
|
var script = {
|
|
9
10
|
name: 'SpeedDial',
|
|
11
|
+
extends: BaseComponent,
|
|
10
12
|
emits: ['click', 'show', 'hide', 'focus', 'blur'],
|
|
11
13
|
props: {
|
|
12
14
|
model: null,
|
|
@@ -113,6 +115,13 @@ var script = {
|
|
|
113
115
|
this.unbindDocumentClickListener();
|
|
114
116
|
},
|
|
115
117
|
methods: {
|
|
118
|
+
getPTOptions(id, key) {
|
|
119
|
+
return this.ptm(key, {
|
|
120
|
+
context: {
|
|
121
|
+
active: this.isItemActive(id)
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
},
|
|
116
125
|
onFocus(event) {
|
|
117
126
|
this.focused = true;
|
|
118
127
|
|
|
@@ -427,6 +436,9 @@ var script = {
|
|
|
427
436
|
isItemVisible(item) {
|
|
428
437
|
return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
|
|
429
438
|
},
|
|
439
|
+
isItemActive(id) {
|
|
440
|
+
return id === this.focusedOptionId;
|
|
441
|
+
},
|
|
430
442
|
containerRef(el) {
|
|
431
443
|
this.container = el;
|
|
432
444
|
},
|
|
@@ -436,7 +448,7 @@ var script = {
|
|
|
436
448
|
itemClass(id) {
|
|
437
449
|
return [
|
|
438
450
|
{
|
|
439
|
-
'p-focus':
|
|
451
|
+
'p-focus': this.isItemActive(id)
|
|
440
452
|
}
|
|
441
453
|
];
|
|
442
454
|
}
|
|
@@ -495,11 +507,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
495
507
|
const _directive_ripple = resolveDirective("ripple");
|
|
496
508
|
|
|
497
509
|
return (openBlock(), createElementBlock(Fragment, null, [
|
|
498
|
-
createElementVNode("div", {
|
|
510
|
+
createElementVNode("div", mergeProps({
|
|
499
511
|
ref: $options.containerRef,
|
|
500
|
-
class:
|
|
501
|
-
style:
|
|
502
|
-
}, [
|
|
512
|
+
class: $options.containerClass,
|
|
513
|
+
style: $props.style
|
|
514
|
+
}, _ctx.ptm('root')), [
|
|
503
515
|
renderSlot(_ctx.$slots, "button", { toggle: $options.onClick }, () => [
|
|
504
516
|
createVNode(_component_SDButton, {
|
|
505
517
|
type: "button",
|
|
@@ -511,25 +523,26 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
511
523
|
"aria-haspopup": true,
|
|
512
524
|
"aria-controls": $data.id + '_list',
|
|
513
525
|
"aria-label": _ctx.ariaLabel,
|
|
514
|
-
"aria-labelledby": _ctx.ariaLabelledby
|
|
526
|
+
"aria-labelledby": _ctx.ariaLabelledby,
|
|
527
|
+
pt: _ctx.ptm('button')
|
|
515
528
|
}, {
|
|
516
529
|
icon: withCtx(() => [
|
|
517
530
|
renderSlot(_ctx.$slots, "icon", { visible: $data.d_visible }, () => [
|
|
518
531
|
($data.d_visible && !!$props.hideIcon)
|
|
519
|
-
? (openBlock(), createBlock(resolveDynamicComponent($props.hideIcon ? 'span' : 'PlusIcon'), {
|
|
532
|
+
? (openBlock(), createBlock(resolveDynamicComponent($props.hideIcon ? 'span' : 'PlusIcon'), mergeProps({
|
|
520
533
|
key: 0,
|
|
521
|
-
class:
|
|
522
|
-
}, null,
|
|
523
|
-
: (openBlock(), createBlock(resolveDynamicComponent($props.showIcon ? 'span' : 'PlusIcon'), {
|
|
534
|
+
class: $props.hideIcon
|
|
535
|
+
}, _ctx.ptm('button')['icon']), null, 16, ["class"]))
|
|
536
|
+
: (openBlock(), createBlock(resolveDynamicComponent($props.showIcon ? 'span' : 'PlusIcon'), mergeProps({
|
|
524
537
|
key: 1,
|
|
525
|
-
class:
|
|
526
|
-
}, null,
|
|
538
|
+
class: $props.showIcon
|
|
539
|
+
}, _ctx.ptm('button')['icon']), null, 16, ["class"]))
|
|
527
540
|
])
|
|
528
541
|
]),
|
|
529
542
|
_: 3
|
|
530
|
-
}, 8, ["class", "disabled", "onKeydown", "aria-expanded", "aria-controls", "aria-label", "aria-labelledby"])
|
|
543
|
+
}, 8, ["class", "disabled", "onKeydown", "aria-expanded", "aria-controls", "aria-label", "aria-labelledby", "pt"])
|
|
531
544
|
]),
|
|
532
|
-
createElementVNode("ul", {
|
|
545
|
+
createElementVNode("ul", mergeProps({
|
|
533
546
|
ref: $options.listRef,
|
|
534
547
|
id: $data.id + '_list',
|
|
535
548
|
class: "p-speeddial-list",
|
|
@@ -539,36 +552,36 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
539
552
|
onKeydown: _cache[3] || (_cache[3] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args))),
|
|
540
553
|
"aria-activedescendant": $data.focused ? $options.focusedOptionId : undefined,
|
|
541
554
|
tabindex: "-1"
|
|
542
|
-
}, [
|
|
555
|
+
}, _ctx.ptm('menu')), [
|
|
543
556
|
(openBlock(true), createElementBlock(Fragment, null, renderList($props.model, (item, index) => {
|
|
544
557
|
return (openBlock(), createElementBlock(Fragment, { key: index }, [
|
|
545
558
|
($options.isItemVisible(item))
|
|
546
|
-
? (openBlock(), createElementBlock("li", {
|
|
559
|
+
? (openBlock(), createElementBlock("li", mergeProps({
|
|
547
560
|
key: 0,
|
|
548
561
|
id: `${$data.id}_${index}`,
|
|
549
562
|
"aria-controls": `${$data.id}_item`,
|
|
550
|
-
class:
|
|
551
|
-
style:
|
|
563
|
+
class: ["p-speeddial-item", $options.itemClass(`${$data.id}_${index}`)],
|
|
564
|
+
style: $options.getItemStyle(index),
|
|
552
565
|
role: "menuitem"
|
|
553
|
-
}, [
|
|
566
|
+
}, $options.getPTOptions(`${$data.id}_${index}`, 'menuitem')), [
|
|
554
567
|
(!_ctx.$slots.item)
|
|
555
|
-
? withDirectives((openBlock(), createElementBlock("a", {
|
|
568
|
+
? withDirectives((openBlock(), createElementBlock("a", mergeProps({
|
|
556
569
|
key: 0,
|
|
557
570
|
tabindex: -1,
|
|
558
571
|
href: item.url || '#',
|
|
559
572
|
role: "menuitem",
|
|
560
|
-
class:
|
|
573
|
+
class: ['p-speeddial-action', { 'p-disabled': item.disabled }],
|
|
561
574
|
target: item.target,
|
|
562
575
|
onClick: $event => ($options.onItemClick($event, item)),
|
|
563
576
|
"aria-label": item.label
|
|
564
|
-
}, [
|
|
577
|
+
}, $options.getPTOptions(`${$data.id}_${index}`, 'action')), [
|
|
565
578
|
(item.icon)
|
|
566
|
-
? (openBlock(), createElementBlock("span", {
|
|
579
|
+
? (openBlock(), createElementBlock("span", mergeProps({
|
|
567
580
|
key: 0,
|
|
568
|
-
class:
|
|
569
|
-
}, null,
|
|
581
|
+
class: ['p-speeddial-action-icon', item.icon]
|
|
582
|
+
}, $options.getPTOptions(`${$data.id}_${index}`, 'actionIcon')), null, 16))
|
|
570
583
|
: createCommentVNode("", true)
|
|
571
|
-
],
|
|
584
|
+
], 16, _hoisted_3)), [
|
|
572
585
|
[_directive_tooltip, { value: item.label, disabled: !$props.tooltipOptions }, $props.tooltipOptions],
|
|
573
586
|
[_directive_ripple]
|
|
574
587
|
])
|
|
@@ -576,18 +589,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
576
589
|
key: 1,
|
|
577
590
|
item: item
|
|
578
591
|
}, null, 8, ["item"]))
|
|
579
|
-
],
|
|
592
|
+
], 16, _hoisted_2))
|
|
580
593
|
: createCommentVNode("", true)
|
|
581
594
|
], 64))
|
|
582
595
|
}), 128))
|
|
583
|
-
],
|
|
584
|
-
],
|
|
596
|
+
], 16, _hoisted_1)
|
|
597
|
+
], 16),
|
|
585
598
|
($props.mask)
|
|
586
|
-
? (openBlock(), createElementBlock("div", {
|
|
599
|
+
? (openBlock(), createElementBlock("div", mergeProps({
|
|
587
600
|
key: 0,
|
|
588
|
-
class:
|
|
589
|
-
style:
|
|
590
|
-
}, null,
|
|
601
|
+
class: $options.maskClassName,
|
|
602
|
+
style: $props.maskStyle
|
|
603
|
+
}, _ctx.ptm('mask')), null, 16))
|
|
591
604
|
: createCommentVNode("", true)
|
|
592
605
|
], 64))
|
|
593
606
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"primevue/button";import t from"primevue/icons/plus";import i from"primevue/ripple";import n from"primevue/tooltip";import{UniqueComponentId as s,DomHandler as o}from"primevue/utils";import{resolveComponent as l,resolveDirective as a,openBlock as d,createElementBlock as r,Fragment as c,createElementVNode as p,normalizeClass as h,normalizeStyle as u,renderSlot as f,createVNode as m,withCtx as b,createBlock as y,resolveDynamicComponent as g,renderList as v,withDirectives as x,createCommentVNode as w}from"vue";var I={name:"SpeedDial",emits:["click","show","hide","focus","blur"],props:{model:null,visible:{type:Boolean,default:!1},direction:{type:String,default:"up"},transitionDelay:{type:Number,default:30},type:{type:String,default:"linear"},radius:{type:Number,default:0},mask:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},hideOnClickOutside:{type:Boolean,default:!0},buttonClass:null,maskStyle:null,maskClass:null,showIcon:{type:String,default:void 0},hideIcon:{type:String,default:void 0},rotateAnimation:{type:Boolean,default:!0},tooltipOptions:null,style:null,class:null,"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},documentClickListener:null,container:null,list:null,data(){return{id:this.$attrs.id,d_visible:this.visible,isItemClicked:!1,focused:!1,focusedOptionIndex:-1}},watch:{"$attrs.id":function(e){this.id=e||s()},visible(e){this.d_visible=e}},mounted(){if(this.id=this.id||s(),"linear"!==this.type){const e=o.findSingle(this.container,".p-speeddial-button"),t=o.findSingle(this.list,".p-speeddial-item");if(e&&t){const i=Math.abs(e.offsetWidth-t.offsetWidth),n=Math.abs(e.offsetHeight-t.offsetHeight);this.list.style.setProperty("--item-diff-x",i/2+"px"),this.list.style.setProperty("--item-diff-y",n/2+"px")}}this.hideOnClickOutside&&this.bindDocumentClickListener()},beforeMount(){this.unbindDocumentClickListener()},methods:{onFocus(e){this.focused=!0,this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedOptionIndex=-1,this.$emit("blur",e)},onItemClick(e,t){t.command&&t.command({originalEvent:e,item:t}),this.hide(),this.isItemClicked=!0,e.preventDefault()},onClick(e){this.d_visible?this.hide():this.show(),this.isItemClicked=!0,this.$emit("click",e)},show(){this.d_visible=!0,this.$emit("show")},hide(){this.d_visible=!1,this.$emit("hide")},calculateTransitionDelay(e){const t=this.model.length;return(this.d_visible?e:t-e-1)*this.transitionDelay},onTogglerKeydown(e){switch(e.code){case"ArrowDown":case"ArrowLeft":this.onTogglerArrowDown(e);break;case"ArrowUp":case"ArrowRight":this.onTogglerArrowUp(e);break;case"Escape":this.onEscapeKey()}},onKeyDown(e){switch(e.code){case"ArrowDown":this.onArrowDown(e);break;case"ArrowUp":this.onArrowUp(e);break;case"ArrowLeft":this.onArrowLeft(e);break;case"ArrowRight":this.onArrowRight(e);break;case"Enter":case"Space":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Home":this.onHomeKey(e);break;case"End":this.onEndKey(e)}},onTogglerArrowUp(e){this.focused=!0,o.focus(this.list),this.show(),this.navigatePrevItem(e),e.preventDefault()},onTogglerArrowDown(e){this.focused=!0,o.focus(this.list),this.show(),this.navigateNextItem(e),e.preventDefault()},onEnterKey(e){const t=[...o.find(this.container,".p-speeddial-item")].findIndex((e=>e.id===this.focusedOptionIndex));this.onItemClick(e,this.model[t]),this.onBlur(e);const i=o.findSingle(this.container,"button");i&&o.focus(i)},onEscapeKey(){this.hide();const e=o.findSingle(this.container,"button");e&&o.focus(e)},onArrowUp(e){"up"===this.direction?this.navigateNextItem(e):"down"===this.direction?this.navigatePrevItem(e):this.navigateNextItem(e)},onArrowDown(e){"up"===this.direction?this.navigatePrevItem(e):"down"===this.direction?this.navigateNextItem(e):this.navigatePrevItem(e)},onArrowLeft(e){["left","up-right","down-left"].includes(this.direction)?this.navigateNextItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigatePrevItem(e))},onArrowRight(e){["left","up-right","down-left"].includes(this.direction)?this.navigatePrevItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigateNextItem(e))},onEndKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigatePrevItem(e)},onHomeKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigateNextItem(e)},navigateNextItem(e){const t=this.findNextOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},navigatePrevItem(e){const t=this.findPrevOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},changeFocusedOptionIndex(e){const t=[...o.find(this.container,".p-speeddial-item")].filter((e=>!o.hasClass(o.findSingle(e,"a"),"p-disabled")));t[e]&&(this.focusedOptionIndex=t[e].getAttribute("id"))},findPrevOptionIndex(e){const t=[...o.find(this.container,".p-speeddial-item")].filter((e=>!o.hasClass(o.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[t.length-1].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?t.length-1:n-1,n},findNextOptionIndex(e){const t=[...o.find(this.container,".p-speeddial-item")].filter((e=>!o.hasClass(o.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[0].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?0:n+1,n},calculatePointStyle(e){const t=this.type;if("linear"!==t){const i=this.model.length,n=this.radius||20*i;if("circle"===t){const t=2*Math.PI/i;return{left:`calc(${n*Math.cos(t*e)}px + var(--item-diff-x, 0px))`,top:`calc(${n*Math.sin(t*e)}px + var(--item-diff-y, 0px))`}}if("semi-circle"===t){const t=this.direction,s=Math.PI/(i-1),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up"===t)return{left:o,bottom:l};if("down"===t)return{left:o,top:l};if("left"===t)return{right:l,top:o};if("right"===t)return{left:l,top:o}}else if("quarter-circle"===t){const t=this.direction,s=Math.PI/(2*(i-1)),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up-left"===t)return{right:o,bottom:l};if("up-right"===t)return{left:o,bottom:l};if("down-left"===t)return{right:l,top:o};if("down-right"===t)return{left:l,top:o}}}return{}},getItemStyle(e){return{transitionDelay:`${this.calculateTransitionDelay(e)}ms`,...this.calculatePointStyle(e)}},bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=e=>{this.d_visible&&this.isOutsideClicked(e)&&this.hide(),this.isItemClicked=!1},document.addEventListener("click",this.documentClickListener))},unbindDocumentClickListener(){this.documentClickListener&&(document.removeEventListener("click",this.documentClickListener),this.documentClickListener=null)},isOutsideClicked(e){return this.container&&!(this.container.isSameNode(e.target)||this.container.contains(e.target)||this.isItemClicked)},isItemVisible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible,containerRef(e){this.container=e},listRef(e){this.list=e},itemClass(e){return[{"p-focus":e===this.focusedOptionId}]}},computed:{containerClass(){return[`p-speeddial p-component p-speeddial-${this.type}`,{[`p-speeddial-direction-${this.direction}`]:"circle"!==this.type,"p-speeddial-opened":this.d_visible,"p-disabled":this.disabled},this.class]},buttonClassName(){return["p-speeddial-button p-button-rounded",{"p-speeddial-rotate":this.rotateAnimation&&!this.hideIcon},this.buttonClass]},maskClassName(){return["p-speeddial-mask",{"p-speeddial-mask-visible":this.d_visible},this.maskClass]},focusedOptionId(){return-1!==this.focusedOptionIndex?this.focusedOptionIndex:null}},components:{SDButton:e,PlusIcon:t},directives:{ripple:i,tooltip:n}};const k=["id","aria-activedescendant"],C=["id","aria-controls"],D=["href","target","onClick","aria-label"];!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}("\n.p-speeddial {\n position: absolute;\n display: flex;\n}\n.p-speeddial-button {\n z-index: 1;\n}\n.p-speeddial-list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: top 0s linear 0.2s;\n pointer-events: none;\n z-index: 2;\n}\n.p-speeddial-item {\n transform: scale(0);\n opacity: 0;\n transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, opacity 0.8s;\n will-change: transform;\n}\n.p-speeddial-action {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n}\n.p-speeddial-circle .p-speeddial-item,\n.p-speeddial-semi-circle .p-speeddial-item,\n.p-speeddial-quarter-circle .p-speeddial-item {\n position: absolute;\n}\n.p-speeddial-rotate {\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n will-change: transform;\n}\n.p-speeddial-mask {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n transition: opacity 250ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-mask-visible {\n pointer-events: none;\n opacity: 1;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-opened .p-speeddial-list {\n pointer-events: auto;\n}\n.p-speeddial-opened .p-speeddial-item {\n transform: scale(1);\n opacity: 1;\n}\n.p-speeddial-opened .p-speeddial-rotate {\n transform: rotate(45deg);\n}\n\n/* Direction */\n.p-speeddial-direction-up {\n align-items: center;\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-up .p-speeddial-list {\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-down {\n align-items: center;\n flex-direction: column;\n}\n.p-speeddial-direction-down .p-speeddial-list {\n flex-direction: column;\n}\n.p-speeddial-direction-left {\n justify-content: center;\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-left .p-speeddial-list {\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-right {\n justify-content: center;\n flex-direction: row;\n}\n.p-speeddial-direction-right .p-speeddial-list {\n flex-direction: row;\n}\n"),I.render=function(e,t,i,n,s,o){const I=l("SDButton"),O=a("tooltip"),A=a("ripple");return d(),r(c,null,[p("div",{ref:o.containerRef,class:h(o.containerClass),style:u(i.style)},[f(e.$slots,"button",{toggle:o.onClick},(()=>[m(I,{type:"button",class:h(o.buttonClassName),onClick:t[0]||(t[0]=e=>o.onClick(e)),disabled:i.disabled,onKeydown:o.onTogglerKeydown,"aria-expanded":s.d_visible,"aria-haspopup":!0,"aria-controls":s.id+"_list","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby},{icon:b((()=>[f(e.$slots,"icon",{visible:s.d_visible},(()=>[s.d_visible&&i.hideIcon?(d(),y(g(i.hideIcon?"span":"PlusIcon"),{key:0,class:h(i.hideIcon)},null,8,["class"])):(d(),y(g(i.showIcon?"span":"PlusIcon"),{key:1,class:h(i.showIcon)},null,8,["class"]))]))])),_:3},8,["class","disabled","onKeydown","aria-expanded","aria-controls","aria-label","aria-labelledby"])])),p("ul",{ref:o.listRef,id:s.id+"_list",class:"p-speeddial-list",role:"menu",onFocus:t[1]||(t[1]=(...e)=>o.onFocus&&o.onFocus(...e)),onBlur:t[2]||(t[2]=(...e)=>o.onBlur&&o.onBlur(...e)),onKeydown:t[3]||(t[3]=(...e)=>o.onKeyDown&&o.onKeyDown(...e)),"aria-activedescendant":s.focused?o.focusedOptionId:void 0,tabindex:"-1"},[(d(!0),r(c,null,v(i.model,((t,n)=>(d(),r(c,{key:n},[o.isItemVisible(t)?(d(),r("li",{key:0,id:`${s.id}_${n}`,"aria-controls":`${s.id}_item`,class:h(["p-speeddial-item",o.itemClass(`${s.id}_${n}`)]),style:u(o.getItemStyle(n)),role:"menuitem"},[e.$slots.item?(d(),y(g(e.$slots.item),{key:1,item:t},null,8,["item"])):x((d(),r("a",{key:0,tabindex:-1,href:t.url||"#",role:"menuitem",class:h(["p-speeddial-action",{"p-disabled":t.disabled}]),target:t.target,onClick:e=>o.onItemClick(e,t),"aria-label":t.label},[t.icon?(d(),r("span",{key:0,class:h(["p-speeddial-action-icon",t.icon])},null,2)):w("",!0)],10,D)),[[O,{value:t.label,disabled:!i.tooltipOptions},i.tooltipOptions],[A]])],14,C)):w("",!0)],64)))),128))],40,k)],6),i.mask?(d(),r("div",{key:0,class:h(o.maskClassName),style:u(i.maskStyle)},null,6)):w("",!0)],64)};export{I as default};
|
|
1
|
+
import e from"primevue/basecomponent";import t from"primevue/button";import i from"primevue/icons/plus";import n from"primevue/ripple";import s from"primevue/tooltip";import{UniqueComponentId as o,DomHandler as l}from"primevue/utils";import{resolveComponent as a,resolveDirective as d,openBlock as r,createElementBlock as c,Fragment as p,createElementVNode as u,mergeProps as h,renderSlot as m,createVNode as f,normalizeClass as b,withCtx as g,createBlock as v,resolveDynamicComponent as y,renderList as x,withDirectives as I,createCommentVNode as w}from"vue";var k={name:"SpeedDial",extends:e,emits:["click","show","hide","focus","blur"],props:{model:null,visible:{type:Boolean,default:!1},direction:{type:String,default:"up"},transitionDelay:{type:Number,default:30},type:{type:String,default:"linear"},radius:{type:Number,default:0},mask:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},hideOnClickOutside:{type:Boolean,default:!0},buttonClass:null,maskStyle:null,maskClass:null,showIcon:{type:String,default:void 0},hideIcon:{type:String,default:void 0},rotateAnimation:{type:Boolean,default:!0},tooltipOptions:null,style:null,class:null,"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},documentClickListener:null,container:null,list:null,data(){return{id:this.$attrs.id,d_visible:this.visible,isItemClicked:!1,focused:!1,focusedOptionIndex:-1}},watch:{"$attrs.id":function(e){this.id=e||o()},visible(e){this.d_visible=e}},mounted(){if(this.id=this.id||o(),"linear"!==this.type){const e=l.findSingle(this.container,".p-speeddial-button"),t=l.findSingle(this.list,".p-speeddial-item");if(e&&t){const i=Math.abs(e.offsetWidth-t.offsetWidth),n=Math.abs(e.offsetHeight-t.offsetHeight);this.list.style.setProperty("--item-diff-x",i/2+"px"),this.list.style.setProperty("--item-diff-y",n/2+"px")}}this.hideOnClickOutside&&this.bindDocumentClickListener()},beforeMount(){this.unbindDocumentClickListener()},methods:{getPTOptions(e,t){return this.ptm(t,{context:{active:this.isItemActive(e)}})},onFocus(e){this.focused=!0,this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedOptionIndex=-1,this.$emit("blur",e)},onItemClick(e,t){t.command&&t.command({originalEvent:e,item:t}),this.hide(),this.isItemClicked=!0,e.preventDefault()},onClick(e){this.d_visible?this.hide():this.show(),this.isItemClicked=!0,this.$emit("click",e)},show(){this.d_visible=!0,this.$emit("show")},hide(){this.d_visible=!1,this.$emit("hide")},calculateTransitionDelay(e){const t=this.model.length;return(this.d_visible?e:t-e-1)*this.transitionDelay},onTogglerKeydown(e){switch(e.code){case"ArrowDown":case"ArrowLeft":this.onTogglerArrowDown(e);break;case"ArrowUp":case"ArrowRight":this.onTogglerArrowUp(e);break;case"Escape":this.onEscapeKey()}},onKeyDown(e){switch(e.code){case"ArrowDown":this.onArrowDown(e);break;case"ArrowUp":this.onArrowUp(e);break;case"ArrowLeft":this.onArrowLeft(e);break;case"ArrowRight":this.onArrowRight(e);break;case"Enter":case"Space":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Home":this.onHomeKey(e);break;case"End":this.onEndKey(e)}},onTogglerArrowUp(e){this.focused=!0,l.focus(this.list),this.show(),this.navigatePrevItem(e),e.preventDefault()},onTogglerArrowDown(e){this.focused=!0,l.focus(this.list),this.show(),this.navigateNextItem(e),e.preventDefault()},onEnterKey(e){const t=[...l.find(this.container,".p-speeddial-item")].findIndex((e=>e.id===this.focusedOptionIndex));this.onItemClick(e,this.model[t]),this.onBlur(e);const i=l.findSingle(this.container,"button");i&&l.focus(i)},onEscapeKey(){this.hide();const e=l.findSingle(this.container,"button");e&&l.focus(e)},onArrowUp(e){"up"===this.direction?this.navigateNextItem(e):"down"===this.direction?this.navigatePrevItem(e):this.navigateNextItem(e)},onArrowDown(e){"up"===this.direction?this.navigatePrevItem(e):"down"===this.direction?this.navigateNextItem(e):this.navigatePrevItem(e)},onArrowLeft(e){["left","up-right","down-left"].includes(this.direction)?this.navigateNextItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigatePrevItem(e))},onArrowRight(e){["left","up-right","down-left"].includes(this.direction)?this.navigatePrevItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigateNextItem(e))},onEndKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigatePrevItem(e)},onHomeKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigateNextItem(e)},navigateNextItem(e){const t=this.findNextOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},navigatePrevItem(e){const t=this.findPrevOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},changeFocusedOptionIndex(e){const t=[...l.find(this.container,".p-speeddial-item")].filter((e=>!l.hasClass(l.findSingle(e,"a"),"p-disabled")));t[e]&&(this.focusedOptionIndex=t[e].getAttribute("id"))},findPrevOptionIndex(e){const t=[...l.find(this.container,".p-speeddial-item")].filter((e=>!l.hasClass(l.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[t.length-1].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?t.length-1:n-1,n},findNextOptionIndex(e){const t=[...l.find(this.container,".p-speeddial-item")].filter((e=>!l.hasClass(l.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[0].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?0:n+1,n},calculatePointStyle(e){const t=this.type;if("linear"!==t){const i=this.model.length,n=this.radius||20*i;if("circle"===t){const t=2*Math.PI/i;return{left:`calc(${n*Math.cos(t*e)}px + var(--item-diff-x, 0px))`,top:`calc(${n*Math.sin(t*e)}px + var(--item-diff-y, 0px))`}}if("semi-circle"===t){const t=this.direction,s=Math.PI/(i-1),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up"===t)return{left:o,bottom:l};if("down"===t)return{left:o,top:l};if("left"===t)return{right:l,top:o};if("right"===t)return{left:l,top:o}}else if("quarter-circle"===t){const t=this.direction,s=Math.PI/(2*(i-1)),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up-left"===t)return{right:o,bottom:l};if("up-right"===t)return{left:o,bottom:l};if("down-left"===t)return{right:l,top:o};if("down-right"===t)return{left:l,top:o}}}return{}},getItemStyle(e){return{transitionDelay:`${this.calculateTransitionDelay(e)}ms`,...this.calculatePointStyle(e)}},bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=e=>{this.d_visible&&this.isOutsideClicked(e)&&this.hide(),this.isItemClicked=!1},document.addEventListener("click",this.documentClickListener))},unbindDocumentClickListener(){this.documentClickListener&&(document.removeEventListener("click",this.documentClickListener),this.documentClickListener=null)},isOutsideClicked(e){return this.container&&!(this.container.isSameNode(e.target)||this.container.contains(e.target)||this.isItemClicked)},isItemVisible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible,isItemActive(e){return e===this.focusedOptionId},containerRef(e){this.container=e},listRef(e){this.list=e},itemClass(e){return[{"p-focus":this.isItemActive(e)}]}},computed:{containerClass(){return[`p-speeddial p-component p-speeddial-${this.type}`,{[`p-speeddial-direction-${this.direction}`]:"circle"!==this.type,"p-speeddial-opened":this.d_visible,"p-disabled":this.disabled},this.class]},buttonClassName(){return["p-speeddial-button p-button-rounded",{"p-speeddial-rotate":this.rotateAnimation&&!this.hideIcon},this.buttonClass]},maskClassName(){return["p-speeddial-mask",{"p-speeddial-mask-visible":this.d_visible},this.maskClass]},focusedOptionId(){return-1!==this.focusedOptionIndex?this.focusedOptionIndex:null}},components:{SDButton:t,PlusIcon:i},directives:{ripple:n,tooltip:s}};const C=["id","aria-activedescendant"],O=["id","aria-controls"],$=["href","target","onClick","aria-label"];!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}("\n.p-speeddial {\n position: absolute;\n display: flex;\n}\n.p-speeddial-button {\n z-index: 1;\n}\n.p-speeddial-list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: top 0s linear 0.2s;\n pointer-events: none;\n z-index: 2;\n}\n.p-speeddial-item {\n transform: scale(0);\n opacity: 0;\n transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, opacity 0.8s;\n will-change: transform;\n}\n.p-speeddial-action {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n}\n.p-speeddial-circle .p-speeddial-item,\n.p-speeddial-semi-circle .p-speeddial-item,\n.p-speeddial-quarter-circle .p-speeddial-item {\n position: absolute;\n}\n.p-speeddial-rotate {\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n will-change: transform;\n}\n.p-speeddial-mask {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n transition: opacity 250ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-mask-visible {\n pointer-events: none;\n opacity: 1;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-opened .p-speeddial-list {\n pointer-events: auto;\n}\n.p-speeddial-opened .p-speeddial-item {\n transform: scale(1);\n opacity: 1;\n}\n.p-speeddial-opened .p-speeddial-rotate {\n transform: rotate(45deg);\n}\n\n/* Direction */\n.p-speeddial-direction-up {\n align-items: center;\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-up .p-speeddial-list {\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-down {\n align-items: center;\n flex-direction: column;\n}\n.p-speeddial-direction-down .p-speeddial-list {\n flex-direction: column;\n}\n.p-speeddial-direction-left {\n justify-content: center;\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-left .p-speeddial-list {\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-right {\n justify-content: center;\n flex-direction: row;\n}\n.p-speeddial-direction-right .p-speeddial-list {\n flex-direction: row;\n}\n"),k.render=function(e,t,i,n,s,o){const l=a("SDButton"),k=d("tooltip"),A=d("ripple");return r(),c(p,null,[u("div",h({ref:o.containerRef,class:o.containerClass,style:i.style},e.ptm("root")),[m(e.$slots,"button",{toggle:o.onClick},(()=>[f(l,{type:"button",class:b(o.buttonClassName),onClick:t[0]||(t[0]=e=>o.onClick(e)),disabled:i.disabled,onKeydown:o.onTogglerKeydown,"aria-expanded":s.d_visible,"aria-haspopup":!0,"aria-controls":s.id+"_list","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,pt:e.ptm("button")},{icon:g((()=>[m(e.$slots,"icon",{visible:s.d_visible},(()=>[s.d_visible&&i.hideIcon?(r(),v(y(i.hideIcon?"span":"PlusIcon"),h({key:0,class:i.hideIcon},e.ptm("button").icon),null,16,["class"])):(r(),v(y(i.showIcon?"span":"PlusIcon"),h({key:1,class:i.showIcon},e.ptm("button").icon),null,16,["class"]))]))])),_:3},8,["class","disabled","onKeydown","aria-expanded","aria-controls","aria-label","aria-labelledby","pt"])])),u("ul",h({ref:o.listRef,id:s.id+"_list",class:"p-speeddial-list",role:"menu",onFocus:t[1]||(t[1]=(...e)=>o.onFocus&&o.onFocus(...e)),onBlur:t[2]||(t[2]=(...e)=>o.onBlur&&o.onBlur(...e)),onKeydown:t[3]||(t[3]=(...e)=>o.onKeyDown&&o.onKeyDown(...e)),"aria-activedescendant":s.focused?o.focusedOptionId:void 0,tabindex:"-1"},e.ptm("menu")),[(r(!0),c(p,null,x(i.model,((t,n)=>(r(),c(p,{key:n},[o.isItemVisible(t)?(r(),c("li",h({key:0,id:`${s.id}_${n}`,"aria-controls":`${s.id}_item`,class:["p-speeddial-item",o.itemClass(`${s.id}_${n}`)],style:o.getItemStyle(n),role:"menuitem"},o.getPTOptions(`${s.id}_${n}`,"menuitem")),[e.$slots.item?(r(),v(y(e.$slots.item),{key:1,item:t},null,8,["item"])):I((r(),c("a",h({key:0,tabindex:-1,href:t.url||"#",role:"menuitem",class:["p-speeddial-action",{"p-disabled":t.disabled}],target:t.target,onClick:e=>o.onItemClick(e,t),"aria-label":t.label},o.getPTOptions(`${s.id}_${n}`,"action")),[t.icon?(r(),c("span",h({key:0,class:["p-speeddial-action-icon",t.icon]},o.getPTOptions(`${s.id}_${n}`,"actionIcon")),null,16)):w("",!0)],16,$)),[[k,{value:t.label,disabled:!i.tooltipOptions},i.tooltipOptions],[A]])],16,O)):w("",!0)],64)))),128))],16,C)],16),i.mask?(r(),c("div",h({key:0,class:o.maskClassName,style:i.maskStyle},e.ptm("mask")),null,16)):w("",!0)],64)};export{k as default};
|
package/speeddial/speeddial.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
this.primevue = this.primevue || {};
|
|
2
|
-
this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, vue) {
|
|
2
|
+
this.primevue.speeddial = (function (BaseComponent, Button, PlusIcon, Ripple, Tooltip, utils, vue) {
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
6
6
|
|
|
7
|
+
var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
|
|
7
8
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
8
9
|
var PlusIcon__default = /*#__PURE__*/_interopDefaultLegacy(PlusIcon);
|
|
9
10
|
var Ripple__default = /*#__PURE__*/_interopDefaultLegacy(Ripple);
|
|
@@ -11,6 +12,7 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
11
12
|
|
|
12
13
|
var script = {
|
|
13
14
|
name: 'SpeedDial',
|
|
15
|
+
extends: BaseComponent__default["default"],
|
|
14
16
|
emits: ['click', 'show', 'hide', 'focus', 'blur'],
|
|
15
17
|
props: {
|
|
16
18
|
model: null,
|
|
@@ -117,6 +119,13 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
117
119
|
this.unbindDocumentClickListener();
|
|
118
120
|
},
|
|
119
121
|
methods: {
|
|
122
|
+
getPTOptions(id, key) {
|
|
123
|
+
return this.ptm(key, {
|
|
124
|
+
context: {
|
|
125
|
+
active: this.isItemActive(id)
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
},
|
|
120
129
|
onFocus(event) {
|
|
121
130
|
this.focused = true;
|
|
122
131
|
|
|
@@ -431,6 +440,9 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
431
440
|
isItemVisible(item) {
|
|
432
441
|
return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
|
|
433
442
|
},
|
|
443
|
+
isItemActive(id) {
|
|
444
|
+
return id === this.focusedOptionId;
|
|
445
|
+
},
|
|
434
446
|
containerRef(el) {
|
|
435
447
|
this.container = el;
|
|
436
448
|
},
|
|
@@ -440,7 +452,7 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
440
452
|
itemClass(id) {
|
|
441
453
|
return [
|
|
442
454
|
{
|
|
443
|
-
'p-focus':
|
|
455
|
+
'p-focus': this.isItemActive(id)
|
|
444
456
|
}
|
|
445
457
|
];
|
|
446
458
|
}
|
|
@@ -499,11 +511,11 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
499
511
|
const _directive_ripple = vue.resolveDirective("ripple");
|
|
500
512
|
|
|
501
513
|
return (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
|
|
502
|
-
vue.createElementVNode("div", {
|
|
514
|
+
vue.createElementVNode("div", vue.mergeProps({
|
|
503
515
|
ref: $options.containerRef,
|
|
504
|
-
class:
|
|
505
|
-
style:
|
|
506
|
-
}, [
|
|
516
|
+
class: $options.containerClass,
|
|
517
|
+
style: $props.style
|
|
518
|
+
}, _ctx.ptm('root')), [
|
|
507
519
|
vue.renderSlot(_ctx.$slots, "button", { toggle: $options.onClick }, () => [
|
|
508
520
|
vue.createVNode(_component_SDButton, {
|
|
509
521
|
type: "button",
|
|
@@ -515,25 +527,26 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
515
527
|
"aria-haspopup": true,
|
|
516
528
|
"aria-controls": $data.id + '_list',
|
|
517
529
|
"aria-label": _ctx.ariaLabel,
|
|
518
|
-
"aria-labelledby": _ctx.ariaLabelledby
|
|
530
|
+
"aria-labelledby": _ctx.ariaLabelledby,
|
|
531
|
+
pt: _ctx.ptm('button')
|
|
519
532
|
}, {
|
|
520
533
|
icon: vue.withCtx(() => [
|
|
521
534
|
vue.renderSlot(_ctx.$slots, "icon", { visible: $data.d_visible }, () => [
|
|
522
535
|
($data.d_visible && !!$props.hideIcon)
|
|
523
|
-
? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.hideIcon ? 'span' : 'PlusIcon'), {
|
|
536
|
+
? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.hideIcon ? 'span' : 'PlusIcon'), vue.mergeProps({
|
|
524
537
|
key: 0,
|
|
525
|
-
class:
|
|
526
|
-
}, null,
|
|
527
|
-
: (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.showIcon ? 'span' : 'PlusIcon'), {
|
|
538
|
+
class: $props.hideIcon
|
|
539
|
+
}, _ctx.ptm('button')['icon']), null, 16, ["class"]))
|
|
540
|
+
: (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.showIcon ? 'span' : 'PlusIcon'), vue.mergeProps({
|
|
528
541
|
key: 1,
|
|
529
|
-
class:
|
|
530
|
-
}, null,
|
|
542
|
+
class: $props.showIcon
|
|
543
|
+
}, _ctx.ptm('button')['icon']), null, 16, ["class"]))
|
|
531
544
|
])
|
|
532
545
|
]),
|
|
533
546
|
_: 3
|
|
534
|
-
}, 8, ["class", "disabled", "onKeydown", "aria-expanded", "aria-controls", "aria-label", "aria-labelledby"])
|
|
547
|
+
}, 8, ["class", "disabled", "onKeydown", "aria-expanded", "aria-controls", "aria-label", "aria-labelledby", "pt"])
|
|
535
548
|
]),
|
|
536
|
-
vue.createElementVNode("ul", {
|
|
549
|
+
vue.createElementVNode("ul", vue.mergeProps({
|
|
537
550
|
ref: $options.listRef,
|
|
538
551
|
id: $data.id + '_list',
|
|
539
552
|
class: "p-speeddial-list",
|
|
@@ -543,36 +556,36 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
543
556
|
onKeydown: _cache[3] || (_cache[3] = (...args) => ($options.onKeyDown && $options.onKeyDown(...args))),
|
|
544
557
|
"aria-activedescendant": $data.focused ? $options.focusedOptionId : undefined,
|
|
545
558
|
tabindex: "-1"
|
|
546
|
-
}, [
|
|
559
|
+
}, _ctx.ptm('menu')), [
|
|
547
560
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($props.model, (item, index) => {
|
|
548
561
|
return (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index }, [
|
|
549
562
|
($options.isItemVisible(item))
|
|
550
|
-
? (vue.openBlock(), vue.createElementBlock("li", {
|
|
563
|
+
? (vue.openBlock(), vue.createElementBlock("li", vue.mergeProps({
|
|
551
564
|
key: 0,
|
|
552
565
|
id: `${$data.id}_${index}`,
|
|
553
566
|
"aria-controls": `${$data.id}_item`,
|
|
554
|
-
class:
|
|
555
|
-
style:
|
|
567
|
+
class: ["p-speeddial-item", $options.itemClass(`${$data.id}_${index}`)],
|
|
568
|
+
style: $options.getItemStyle(index),
|
|
556
569
|
role: "menuitem"
|
|
557
|
-
}, [
|
|
570
|
+
}, $options.getPTOptions(`${$data.id}_${index}`, 'menuitem')), [
|
|
558
571
|
(!_ctx.$slots.item)
|
|
559
|
-
? vue.withDirectives((vue.openBlock(), vue.createElementBlock("a", {
|
|
572
|
+
? vue.withDirectives((vue.openBlock(), vue.createElementBlock("a", vue.mergeProps({
|
|
560
573
|
key: 0,
|
|
561
574
|
tabindex: -1,
|
|
562
575
|
href: item.url || '#',
|
|
563
576
|
role: "menuitem",
|
|
564
|
-
class:
|
|
577
|
+
class: ['p-speeddial-action', { 'p-disabled': item.disabled }],
|
|
565
578
|
target: item.target,
|
|
566
579
|
onClick: $event => ($options.onItemClick($event, item)),
|
|
567
580
|
"aria-label": item.label
|
|
568
|
-
}, [
|
|
581
|
+
}, $options.getPTOptions(`${$data.id}_${index}`, 'action')), [
|
|
569
582
|
(item.icon)
|
|
570
|
-
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
583
|
+
? (vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({
|
|
571
584
|
key: 0,
|
|
572
|
-
class:
|
|
573
|
-
}, null,
|
|
585
|
+
class: ['p-speeddial-action-icon', item.icon]
|
|
586
|
+
}, $options.getPTOptions(`${$data.id}_${index}`, 'actionIcon')), null, 16))
|
|
574
587
|
: vue.createCommentVNode("", true)
|
|
575
|
-
],
|
|
588
|
+
], 16, _hoisted_3)), [
|
|
576
589
|
[_directive_tooltip, { value: item.label, disabled: !$props.tooltipOptions }, $props.tooltipOptions],
|
|
577
590
|
[_directive_ripple]
|
|
578
591
|
])
|
|
@@ -580,18 +593,18 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
580
593
|
key: 1,
|
|
581
594
|
item: item
|
|
582
595
|
}, null, 8, ["item"]))
|
|
583
|
-
],
|
|
596
|
+
], 16, _hoisted_2))
|
|
584
597
|
: vue.createCommentVNode("", true)
|
|
585
598
|
], 64))
|
|
586
599
|
}), 128))
|
|
587
|
-
],
|
|
588
|
-
],
|
|
600
|
+
], 16, _hoisted_1)
|
|
601
|
+
], 16),
|
|
589
602
|
($props.mask)
|
|
590
|
-
? (vue.openBlock(), vue.createElementBlock("div", {
|
|
603
|
+
? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
|
|
591
604
|
key: 0,
|
|
592
|
-
class:
|
|
593
|
-
style:
|
|
594
|
-
}, null,
|
|
605
|
+
class: $options.maskClassName,
|
|
606
|
+
style: $props.maskStyle
|
|
607
|
+
}, _ctx.ptm('mask')), null, 16))
|
|
595
608
|
: vue.createCommentVNode("", true)
|
|
596
609
|
], 64))
|
|
597
610
|
}
|
|
@@ -630,4 +643,4 @@ this.primevue.speeddial = (function (Button, PlusIcon, Ripple, Tooltip, utils, v
|
|
|
630
643
|
|
|
631
644
|
return script;
|
|
632
645
|
|
|
633
|
-
})(primevue.button, primevue.icons.plus, primevue.ripple, primevue.tooltip, primevue.utils, Vue);
|
|
646
|
+
})(primevue.basecomponent, primevue.button, primevue.icons.plus, primevue.ripple, primevue.tooltip, primevue.utils, Vue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
this.primevue=this.primevue||{},this.primevue.speeddial=function(e,t,i,n,s,o){"use strict";function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=l(e),d=l(t),r=l(i),c=l(n),p={name:"SpeedDial",emits:["click","show","hide","focus","blur"],props:{model:null,visible:{type:Boolean,default:!1},direction:{type:String,default:"up"},transitionDelay:{type:Number,default:30},type:{type:String,default:"linear"},radius:{type:Number,default:0},mask:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},hideOnClickOutside:{type:Boolean,default:!0},buttonClass:null,maskStyle:null,maskClass:null,showIcon:{type:String,default:void 0},hideIcon:{type:String,default:void 0},rotateAnimation:{type:Boolean,default:!0},tooltipOptions:null,style:null,class:null,"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},documentClickListener:null,container:null,list:null,data(){return{id:this.$attrs.id,d_visible:this.visible,isItemClicked:!1,focused:!1,focusedOptionIndex:-1}},watch:{"$attrs.id":function(e){this.id=e||s.UniqueComponentId()},visible(e){this.d_visible=e}},mounted(){if(this.id=this.id||s.UniqueComponentId(),"linear"!==this.type){const e=s.DomHandler.findSingle(this.container,".p-speeddial-button"),t=s.DomHandler.findSingle(this.list,".p-speeddial-item");if(e&&t){const i=Math.abs(e.offsetWidth-t.offsetWidth),n=Math.abs(e.offsetHeight-t.offsetHeight);this.list.style.setProperty("--item-diff-x",i/2+"px"),this.list.style.setProperty("--item-diff-y",n/2+"px")}}this.hideOnClickOutside&&this.bindDocumentClickListener()},beforeMount(){this.unbindDocumentClickListener()},methods:{onFocus(e){this.focused=!0,this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedOptionIndex=-1,this.$emit("blur",e)},onItemClick(e,t){t.command&&t.command({originalEvent:e,item:t}),this.hide(),this.isItemClicked=!0,e.preventDefault()},onClick(e){this.d_visible?this.hide():this.show(),this.isItemClicked=!0,this.$emit("click",e)},show(){this.d_visible=!0,this.$emit("show")},hide(){this.d_visible=!1,this.$emit("hide")},calculateTransitionDelay(e){const t=this.model.length;return(this.d_visible?e:t-e-1)*this.transitionDelay},onTogglerKeydown(e){switch(e.code){case"ArrowDown":case"ArrowLeft":this.onTogglerArrowDown(e);break;case"ArrowUp":case"ArrowRight":this.onTogglerArrowUp(e);break;case"Escape":this.onEscapeKey()}},onKeyDown(e){switch(e.code){case"ArrowDown":this.onArrowDown(e);break;case"ArrowUp":this.onArrowUp(e);break;case"ArrowLeft":this.onArrowLeft(e);break;case"ArrowRight":this.onArrowRight(e);break;case"Enter":case"Space":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Home":this.onHomeKey(e);break;case"End":this.onEndKey(e)}},onTogglerArrowUp(e){this.focused=!0,s.DomHandler.focus(this.list),this.show(),this.navigatePrevItem(e),e.preventDefault()},onTogglerArrowDown(e){this.focused=!0,s.DomHandler.focus(this.list),this.show(),this.navigateNextItem(e),e.preventDefault()},onEnterKey(e){const t=[...s.DomHandler.find(this.container,".p-speeddial-item")].findIndex((e=>e.id===this.focusedOptionIndex));this.onItemClick(e,this.model[t]),this.onBlur(e);const i=s.DomHandler.findSingle(this.container,"button");i&&s.DomHandler.focus(i)},onEscapeKey(){this.hide();const e=s.DomHandler.findSingle(this.container,"button");e&&s.DomHandler.focus(e)},onArrowUp(e){"up"===this.direction?this.navigateNextItem(e):"down"===this.direction?this.navigatePrevItem(e):this.navigateNextItem(e)},onArrowDown(e){"up"===this.direction?this.navigatePrevItem(e):"down"===this.direction?this.navigateNextItem(e):this.navigatePrevItem(e)},onArrowLeft(e){["left","up-right","down-left"].includes(this.direction)?this.navigateNextItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigatePrevItem(e))},onArrowRight(e){["left","up-right","down-left"].includes(this.direction)?this.navigatePrevItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigateNextItem(e))},onEndKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigatePrevItem(e)},onHomeKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigateNextItem(e)},navigateNextItem(e){const t=this.findNextOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},navigatePrevItem(e){const t=this.findPrevOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},changeFocusedOptionIndex(e){const t=[...s.DomHandler.find(this.container,".p-speeddial-item")].filter((e=>!s.DomHandler.hasClass(s.DomHandler.findSingle(e,"a"),"p-disabled")));t[e]&&(this.focusedOptionIndex=t[e].getAttribute("id"))},findPrevOptionIndex(e){const t=[...s.DomHandler.find(this.container,".p-speeddial-item")].filter((e=>!s.DomHandler.hasClass(s.DomHandler.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[t.length-1].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?t.length-1:n-1,n},findNextOptionIndex(e){const t=[...s.DomHandler.find(this.container,".p-speeddial-item")].filter((e=>!s.DomHandler.hasClass(s.DomHandler.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[0].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?0:n+1,n},calculatePointStyle(e){const t=this.type;if("linear"!==t){const i=this.model.length,n=this.radius||20*i;if("circle"===t){const t=2*Math.PI/i;return{left:`calc(${n*Math.cos(t*e)}px + var(--item-diff-x, 0px))`,top:`calc(${n*Math.sin(t*e)}px + var(--item-diff-y, 0px))`}}if("semi-circle"===t){const t=this.direction,s=Math.PI/(i-1),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up"===t)return{left:o,bottom:l};if("down"===t)return{left:o,top:l};if("left"===t)return{right:l,top:o};if("right"===t)return{left:l,top:o}}else if("quarter-circle"===t){const t=this.direction,s=Math.PI/(2*(i-1)),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up-left"===t)return{right:o,bottom:l};if("up-right"===t)return{left:o,bottom:l};if("down-left"===t)return{right:l,top:o};if("down-right"===t)return{left:l,top:o}}}return{}},getItemStyle(e){return{transitionDelay:`${this.calculateTransitionDelay(e)}ms`,...this.calculatePointStyle(e)}},bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=e=>{this.d_visible&&this.isOutsideClicked(e)&&this.hide(),this.isItemClicked=!1},document.addEventListener("click",this.documentClickListener))},unbindDocumentClickListener(){this.documentClickListener&&(document.removeEventListener("click",this.documentClickListener),this.documentClickListener=null)},isOutsideClicked(e){return this.container&&!(this.container.isSameNode(e.target)||this.container.contains(e.target)||this.isItemClicked)},isItemVisible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible,containerRef(e){this.container=e},listRef(e){this.list=e},itemClass(e){return[{"p-focus":e===this.focusedOptionId}]}},computed:{containerClass(){return[`p-speeddial p-component p-speeddial-${this.type}`,{[`p-speeddial-direction-${this.direction}`]:"circle"!==this.type,"p-speeddial-opened":this.d_visible,"p-disabled":this.disabled},this.class]},buttonClassName(){return["p-speeddial-button p-button-rounded",{"p-speeddial-rotate":this.rotateAnimation&&!this.hideIcon},this.buttonClass]},maskClassName(){return["p-speeddial-mask",{"p-speeddial-mask-visible":this.d_visible},this.maskClass]},focusedOptionId(){return-1!==this.focusedOptionIndex?this.focusedOptionIndex:null}},components:{SDButton:a.default,PlusIcon:d.default},directives:{ripple:r.default,tooltip:c.default}};const u=["id","aria-activedescendant"],h=["id","aria-controls"],m=["href","target","onClick","aria-label"];return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}("\n.p-speeddial {\n position: absolute;\n display: flex;\n}\n.p-speeddial-button {\n z-index: 1;\n}\n.p-speeddial-list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: top 0s linear 0.2s;\n pointer-events: none;\n z-index: 2;\n}\n.p-speeddial-item {\n transform: scale(0);\n opacity: 0;\n transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, opacity 0.8s;\n will-change: transform;\n}\n.p-speeddial-action {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n}\n.p-speeddial-circle .p-speeddial-item,\n.p-speeddial-semi-circle .p-speeddial-item,\n.p-speeddial-quarter-circle .p-speeddial-item {\n position: absolute;\n}\n.p-speeddial-rotate {\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n will-change: transform;\n}\n.p-speeddial-mask {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n transition: opacity 250ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-mask-visible {\n pointer-events: none;\n opacity: 1;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-opened .p-speeddial-list {\n pointer-events: auto;\n}\n.p-speeddial-opened .p-speeddial-item {\n transform: scale(1);\n opacity: 1;\n}\n.p-speeddial-opened .p-speeddial-rotate {\n transform: rotate(45deg);\n}\n\n/* Direction */\n.p-speeddial-direction-up {\n align-items: center;\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-up .p-speeddial-list {\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-down {\n align-items: center;\n flex-direction: column;\n}\n.p-speeddial-direction-down .p-speeddial-list {\n flex-direction: column;\n}\n.p-speeddial-direction-left {\n justify-content: center;\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-left .p-speeddial-list {\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-right {\n justify-content: center;\n flex-direction: row;\n}\n.p-speeddial-direction-right .p-speeddial-list {\n flex-direction: row;\n}\n"),p.render=function(e,t,i,n,s,l){const a=o.resolveComponent("SDButton"),d=o.resolveDirective("tooltip"),r=o.resolveDirective("ripple");return o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createElementVNode("div",{ref:l.containerRef,class:o.normalizeClass(l.containerClass),style:o.normalizeStyle(i.style)},[o.renderSlot(e.$slots,"button",{toggle:l.onClick},(()=>[o.createVNode(a,{type:"button",class:o.normalizeClass(l.buttonClassName),onClick:t[0]||(t[0]=e=>l.onClick(e)),disabled:i.disabled,onKeydown:l.onTogglerKeydown,"aria-expanded":s.d_visible,"aria-haspopup":!0,"aria-controls":s.id+"_list","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby},{icon:o.withCtx((()=>[o.renderSlot(e.$slots,"icon",{visible:s.d_visible},(()=>[s.d_visible&&i.hideIcon?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(i.hideIcon?"span":"PlusIcon"),{key:0,class:o.normalizeClass(i.hideIcon)},null,8,["class"])):(o.openBlock(),o.createBlock(o.resolveDynamicComponent(i.showIcon?"span":"PlusIcon"),{key:1,class:o.normalizeClass(i.showIcon)},null,8,["class"]))]))])),_:3},8,["class","disabled","onKeydown","aria-expanded","aria-controls","aria-label","aria-labelledby"])])),o.createElementVNode("ul",{ref:l.listRef,id:s.id+"_list",class:"p-speeddial-list",role:"menu",onFocus:t[1]||(t[1]=(...e)=>l.onFocus&&l.onFocus(...e)),onBlur:t[2]||(t[2]=(...e)=>l.onBlur&&l.onBlur(...e)),onKeydown:t[3]||(t[3]=(...e)=>l.onKeyDown&&l.onKeyDown(...e)),"aria-activedescendant":s.focused?l.focusedOptionId:void 0,tabindex:"-1"},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.model,((t,n)=>(o.openBlock(),o.createElementBlock(o.Fragment,{key:n},[l.isItemVisible(t)?(o.openBlock(),o.createElementBlock("li",{key:0,id:`${s.id}_${n}`,"aria-controls":`${s.id}_item`,class:o.normalizeClass(["p-speeddial-item",l.itemClass(`${s.id}_${n}`)]),style:o.normalizeStyle(l.getItemStyle(n)),role:"menuitem"},[e.$slots.item?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(e.$slots.item),{key:1,item:t},null,8,["item"])):o.withDirectives((o.openBlock(),o.createElementBlock("a",{key:0,tabindex:-1,href:t.url||"#",role:"menuitem",class:o.normalizeClass(["p-speeddial-action",{"p-disabled":t.disabled}]),target:t.target,onClick:e=>l.onItemClick(e,t),"aria-label":t.label},[t.icon?(o.openBlock(),o.createElementBlock("span",{key:0,class:o.normalizeClass(["p-speeddial-action-icon",t.icon])},null,2)):o.createCommentVNode("",!0)],10,m)),[[d,{value:t.label,disabled:!i.tooltipOptions},i.tooltipOptions],[r]])],14,h)):o.createCommentVNode("",!0)],64)))),128))],40,u)],6),i.mask?(o.openBlock(),o.createElementBlock("div",{key:0,class:o.normalizeClass(l.maskClassName),style:o.normalizeStyle(i.maskStyle)},null,6)):o.createCommentVNode("",!0)],64)},p}(primevue.button,primevue.icons.plus,primevue.ripple,primevue.tooltip,primevue.utils,Vue);
|
|
1
|
+
this.primevue=this.primevue||{},this.primevue.speeddial=function(e,t,i,n,s,o,l){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(e),r=a(t),c=a(i),p=a(n),u=a(s),m={name:"SpeedDial",extends:d.default,emits:["click","show","hide","focus","blur"],props:{model:null,visible:{type:Boolean,default:!1},direction:{type:String,default:"up"},transitionDelay:{type:Number,default:30},type:{type:String,default:"linear"},radius:{type:Number,default:0},mask:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},hideOnClickOutside:{type:Boolean,default:!0},buttonClass:null,maskStyle:null,maskClass:null,showIcon:{type:String,default:void 0},hideIcon:{type:String,default:void 0},rotateAnimation:{type:Boolean,default:!0},tooltipOptions:null,style:null,class:null,"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},documentClickListener:null,container:null,list:null,data(){return{id:this.$attrs.id,d_visible:this.visible,isItemClicked:!1,focused:!1,focusedOptionIndex:-1}},watch:{"$attrs.id":function(e){this.id=e||o.UniqueComponentId()},visible(e){this.d_visible=e}},mounted(){if(this.id=this.id||o.UniqueComponentId(),"linear"!==this.type){const e=o.DomHandler.findSingle(this.container,".p-speeddial-button"),t=o.DomHandler.findSingle(this.list,".p-speeddial-item");if(e&&t){const i=Math.abs(e.offsetWidth-t.offsetWidth),n=Math.abs(e.offsetHeight-t.offsetHeight);this.list.style.setProperty("--item-diff-x",i/2+"px"),this.list.style.setProperty("--item-diff-y",n/2+"px")}}this.hideOnClickOutside&&this.bindDocumentClickListener()},beforeMount(){this.unbindDocumentClickListener()},methods:{getPTOptions(e,t){return this.ptm(t,{context:{active:this.isItemActive(e)}})},onFocus(e){this.focused=!0,this.$emit("focus",e)},onBlur(e){this.focused=!1,this.focusedOptionIndex=-1,this.$emit("blur",e)},onItemClick(e,t){t.command&&t.command({originalEvent:e,item:t}),this.hide(),this.isItemClicked=!0,e.preventDefault()},onClick(e){this.d_visible?this.hide():this.show(),this.isItemClicked=!0,this.$emit("click",e)},show(){this.d_visible=!0,this.$emit("show")},hide(){this.d_visible=!1,this.$emit("hide")},calculateTransitionDelay(e){const t=this.model.length;return(this.d_visible?e:t-e-1)*this.transitionDelay},onTogglerKeydown(e){switch(e.code){case"ArrowDown":case"ArrowLeft":this.onTogglerArrowDown(e);break;case"ArrowUp":case"ArrowRight":this.onTogglerArrowUp(e);break;case"Escape":this.onEscapeKey()}},onKeyDown(e){switch(e.code){case"ArrowDown":this.onArrowDown(e);break;case"ArrowUp":this.onArrowUp(e);break;case"ArrowLeft":this.onArrowLeft(e);break;case"ArrowRight":this.onArrowRight(e);break;case"Enter":case"Space":this.onEnterKey(e);break;case"Escape":this.onEscapeKey(e);break;case"Home":this.onHomeKey(e);break;case"End":this.onEndKey(e)}},onTogglerArrowUp(e){this.focused=!0,o.DomHandler.focus(this.list),this.show(),this.navigatePrevItem(e),e.preventDefault()},onTogglerArrowDown(e){this.focused=!0,o.DomHandler.focus(this.list),this.show(),this.navigateNextItem(e),e.preventDefault()},onEnterKey(e){const t=[...o.DomHandler.find(this.container,".p-speeddial-item")].findIndex((e=>e.id===this.focusedOptionIndex));this.onItemClick(e,this.model[t]),this.onBlur(e);const i=o.DomHandler.findSingle(this.container,"button");i&&o.DomHandler.focus(i)},onEscapeKey(){this.hide();const e=o.DomHandler.findSingle(this.container,"button");e&&o.DomHandler.focus(e)},onArrowUp(e){"up"===this.direction?this.navigateNextItem(e):"down"===this.direction?this.navigatePrevItem(e):this.navigateNextItem(e)},onArrowDown(e){"up"===this.direction?this.navigatePrevItem(e):"down"===this.direction?this.navigateNextItem(e):this.navigatePrevItem(e)},onArrowLeft(e){["left","up-right","down-left"].includes(this.direction)?this.navigateNextItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigatePrevItem(e))},onArrowRight(e){["left","up-right","down-left"].includes(this.direction)?this.navigatePrevItem(e):(["right","up-left","down-right"].includes(this.direction),this.navigateNextItem(e))},onEndKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigatePrevItem(e)},onHomeKey(e){e.preventDefault(),this.focusedOptionIndex=-1,this.navigateNextItem(e)},navigateNextItem(e){const t=this.findNextOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},navigatePrevItem(e){const t=this.findPrevOptionIndex(this.focusedOptionIndex);this.changeFocusedOptionIndex(t),e.preventDefault()},changeFocusedOptionIndex(e){const t=[...o.DomHandler.find(this.container,".p-speeddial-item")].filter((e=>!o.DomHandler.hasClass(o.DomHandler.findSingle(e,"a"),"p-disabled")));t[e]&&(this.focusedOptionIndex=t[e].getAttribute("id"))},findPrevOptionIndex(e){const t=[...o.DomHandler.find(this.container,".p-speeddial-item")].filter((e=>!o.DomHandler.hasClass(o.DomHandler.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[t.length-1].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?t.length-1:n-1,n},findNextOptionIndex(e){const t=[...o.DomHandler.find(this.container,".p-speeddial-item")].filter((e=>!o.DomHandler.hasClass(o.DomHandler.findSingle(e,"a"),"p-disabled"))),i=-1===e?t[0].id:e;let n=t.findIndex((e=>e.getAttribute("id")===i));return n=-1===e?0:n+1,n},calculatePointStyle(e){const t=this.type;if("linear"!==t){const i=this.model.length,n=this.radius||20*i;if("circle"===t){const t=2*Math.PI/i;return{left:`calc(${n*Math.cos(t*e)}px + var(--item-diff-x, 0px))`,top:`calc(${n*Math.sin(t*e)}px + var(--item-diff-y, 0px))`}}if("semi-circle"===t){const t=this.direction,s=Math.PI/(i-1),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up"===t)return{left:o,bottom:l};if("down"===t)return{left:o,top:l};if("left"===t)return{right:l,top:o};if("right"===t)return{left:l,top:o}}else if("quarter-circle"===t){const t=this.direction,s=Math.PI/(2*(i-1)),o=`calc(${n*Math.cos(s*e)}px + var(--item-diff-x, 0px))`,l=`calc(${n*Math.sin(s*e)}px + var(--item-diff-y, 0px))`;if("up-left"===t)return{right:o,bottom:l};if("up-right"===t)return{left:o,bottom:l};if("down-left"===t)return{right:l,top:o};if("down-right"===t)return{left:l,top:o}}}return{}},getItemStyle(e){return{transitionDelay:`${this.calculateTransitionDelay(e)}ms`,...this.calculatePointStyle(e)}},bindDocumentClickListener(){this.documentClickListener||(this.documentClickListener=e=>{this.d_visible&&this.isOutsideClicked(e)&&this.hide(),this.isItemClicked=!1},document.addEventListener("click",this.documentClickListener))},unbindDocumentClickListener(){this.documentClickListener&&(document.removeEventListener("click",this.documentClickListener),this.documentClickListener=null)},isOutsideClicked(e){return this.container&&!(this.container.isSameNode(e.target)||this.container.contains(e.target)||this.isItemClicked)},isItemVisible:e=>"function"==typeof e.visible?e.visible():!1!==e.visible,isItemActive(e){return e===this.focusedOptionId},containerRef(e){this.container=e},listRef(e){this.list=e},itemClass(e){return[{"p-focus":this.isItemActive(e)}]}},computed:{containerClass(){return[`p-speeddial p-component p-speeddial-${this.type}`,{[`p-speeddial-direction-${this.direction}`]:"circle"!==this.type,"p-speeddial-opened":this.d_visible,"p-disabled":this.disabled},this.class]},buttonClassName(){return["p-speeddial-button p-button-rounded",{"p-speeddial-rotate":this.rotateAnimation&&!this.hideIcon},this.buttonClass]},maskClassName(){return["p-speeddial-mask",{"p-speeddial-mask-visible":this.d_visible},this.maskClass]},focusedOptionId(){return-1!==this.focusedOptionIndex?this.focusedOptionIndex:null}},components:{SDButton:r.default,PlusIcon:c.default},directives:{ripple:p.default,tooltip:u.default}};const h=["id","aria-activedescendant"],f=["id","aria-controls"],b=["href","target","onClick","aria-label"];return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}("\n.p-speeddial {\n position: absolute;\n display: flex;\n}\n.p-speeddial-button {\n z-index: 1;\n}\n.p-speeddial-list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: top 0s linear 0.2s;\n pointer-events: none;\n z-index: 2;\n}\n.p-speeddial-item {\n transform: scale(0);\n opacity: 0;\n transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, opacity 0.8s;\n will-change: transform;\n}\n.p-speeddial-action {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n}\n.p-speeddial-circle .p-speeddial-item,\n.p-speeddial-semi-circle .p-speeddial-item,\n.p-speeddial-quarter-circle .p-speeddial-item {\n position: absolute;\n}\n.p-speeddial-rotate {\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n will-change: transform;\n}\n.p-speeddial-mask {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n transition: opacity 250ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-mask-visible {\n pointer-events: none;\n opacity: 1;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n.p-speeddial-opened .p-speeddial-list {\n pointer-events: auto;\n}\n.p-speeddial-opened .p-speeddial-item {\n transform: scale(1);\n opacity: 1;\n}\n.p-speeddial-opened .p-speeddial-rotate {\n transform: rotate(45deg);\n}\n\n/* Direction */\n.p-speeddial-direction-up {\n align-items: center;\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-up .p-speeddial-list {\n flex-direction: column-reverse;\n}\n.p-speeddial-direction-down {\n align-items: center;\n flex-direction: column;\n}\n.p-speeddial-direction-down .p-speeddial-list {\n flex-direction: column;\n}\n.p-speeddial-direction-left {\n justify-content: center;\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-left .p-speeddial-list {\n flex-direction: row-reverse;\n}\n.p-speeddial-direction-right {\n justify-content: center;\n flex-direction: row;\n}\n.p-speeddial-direction-right .p-speeddial-list {\n flex-direction: row;\n}\n"),m.render=function(e,t,i,n,s,o){const a=l.resolveComponent("SDButton"),d=l.resolveDirective("tooltip"),r=l.resolveDirective("ripple");return l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("div",l.mergeProps({ref:o.containerRef,class:o.containerClass,style:i.style},e.ptm("root")),[l.renderSlot(e.$slots,"button",{toggle:o.onClick},(()=>[l.createVNode(a,{type:"button",class:l.normalizeClass(o.buttonClassName),onClick:t[0]||(t[0]=e=>o.onClick(e)),disabled:i.disabled,onKeydown:o.onTogglerKeydown,"aria-expanded":s.d_visible,"aria-haspopup":!0,"aria-controls":s.id+"_list","aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledby,pt:e.ptm("button")},{icon:l.withCtx((()=>[l.renderSlot(e.$slots,"icon",{visible:s.d_visible},(()=>[s.d_visible&&i.hideIcon?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(i.hideIcon?"span":"PlusIcon"),l.mergeProps({key:0,class:i.hideIcon},e.ptm("button").icon),null,16,["class"])):(l.openBlock(),l.createBlock(l.resolveDynamicComponent(i.showIcon?"span":"PlusIcon"),l.mergeProps({key:1,class:i.showIcon},e.ptm("button").icon),null,16,["class"]))]))])),_:3},8,["class","disabled","onKeydown","aria-expanded","aria-controls","aria-label","aria-labelledby","pt"])])),l.createElementVNode("ul",l.mergeProps({ref:o.listRef,id:s.id+"_list",class:"p-speeddial-list",role:"menu",onFocus:t[1]||(t[1]=(...e)=>o.onFocus&&o.onFocus(...e)),onBlur:t[2]||(t[2]=(...e)=>o.onBlur&&o.onBlur(...e)),onKeydown:t[3]||(t[3]=(...e)=>o.onKeyDown&&o.onKeyDown(...e)),"aria-activedescendant":s.focused?o.focusedOptionId:void 0,tabindex:"-1"},e.ptm("menu")),[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(i.model,((t,n)=>(l.openBlock(),l.createElementBlock(l.Fragment,{key:n},[o.isItemVisible(t)?(l.openBlock(),l.createElementBlock("li",l.mergeProps({key:0,id:`${s.id}_${n}`,"aria-controls":`${s.id}_item`,class:["p-speeddial-item",o.itemClass(`${s.id}_${n}`)],style:o.getItemStyle(n),role:"menuitem"},o.getPTOptions(`${s.id}_${n}`,"menuitem")),[e.$slots.item?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(e.$slots.item),{key:1,item:t},null,8,["item"])):l.withDirectives((l.openBlock(),l.createElementBlock("a",l.mergeProps({key:0,tabindex:-1,href:t.url||"#",role:"menuitem",class:["p-speeddial-action",{"p-disabled":t.disabled}],target:t.target,onClick:e=>o.onItemClick(e,t),"aria-label":t.label},o.getPTOptions(`${s.id}_${n}`,"action")),[t.icon?(l.openBlock(),l.createElementBlock("span",l.mergeProps({key:0,class:["p-speeddial-action-icon",t.icon]},o.getPTOptions(`${s.id}_${n}`,"actionIcon")),null,16)):l.createCommentVNode("",!0)],16,b)),[[d,{value:t.label,disabled:!i.tooltipOptions},i.tooltipOptions],[r]])],16,f)):l.createCommentVNode("",!0)],64)))),128))],16,h)],16),i.mask?(l.openBlock(),l.createElementBlock("div",l.mergeProps({key:0,class:o.maskClassName,style:i.maskStyle},e.ptm("mask")),null,16)):l.createCommentVNode("",!0)],64)},m}(primevue.basecomponent,primevue.button,primevue.icons.plus,primevue.ripple,primevue.tooltip,primevue.utils,Vue);
|
|
@@ -8,9 +8,68 @@
|
|
|
8
8
|
*
|
|
9
9
|
*/
|
|
10
10
|
import { ButtonHTMLAttributes, VNode } from 'vue';
|
|
11
|
+
import { ButtonPassThroughOptions } from '../button';
|
|
11
12
|
import { MenuItem } from '../menuitem';
|
|
13
|
+
import { TieredMenuPassThroughOptions } from '../tieredmenu';
|
|
12
14
|
import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
|
|
13
15
|
|
|
16
|
+
export declare type SplitButtonPassThroughOptionType = SplitButtonPassThroughAttributes | ((options: SplitButtonPassThroughMethodOptions) => SplitButtonPassThroughAttributes) | null | undefined;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Custom passthrough(pt) option method.
|
|
20
|
+
*/
|
|
21
|
+
export interface SplitButtonPassThroughMethodOptions {
|
|
22
|
+
props: SplitButtonProps;
|
|
23
|
+
state: SplitButtonState;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Custom passthrough(pt) options.
|
|
28
|
+
* @see {@link SplitButtonProps.pt}
|
|
29
|
+
*/
|
|
30
|
+
export interface SplitButtonPassThroughOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Uses to pass attributes to the root's DOM element.
|
|
33
|
+
*/
|
|
34
|
+
root?: SplitButtonPassThroughOptionType;
|
|
35
|
+
/**
|
|
36
|
+
* Uses to pass attributes to the button's DOM element.
|
|
37
|
+
*/
|
|
38
|
+
button?: SplitButtonPassThroughOptionType;
|
|
39
|
+
/**
|
|
40
|
+
* Uses to pass attributes to the icon's DOM element.
|
|
41
|
+
*/
|
|
42
|
+
icon?: SplitButtonPassThroughOptionType;
|
|
43
|
+
/**
|
|
44
|
+
* Uses to pass attributes to the Button component.
|
|
45
|
+
* @see {@link ButtonPassThroughOptions}
|
|
46
|
+
*/
|
|
47
|
+
menuButton?: ButtonPassThroughOptions;
|
|
48
|
+
/**
|
|
49
|
+
* Uses to pass attributes to the TieredMenu component.
|
|
50
|
+
* @see {@link TieredMenuPassThroughOptions}
|
|
51
|
+
*/
|
|
52
|
+
menu?: TieredMenuPassThroughOptions;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Custom passthrough attributes for each DOM elements
|
|
57
|
+
*/
|
|
58
|
+
export interface SplitButtonPassThroughAttributes {
|
|
59
|
+
[key: string]: any;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Defines current inline state in SplitButton component.
|
|
64
|
+
*/
|
|
65
|
+
export interface SplitButtonState {
|
|
66
|
+
/**
|
|
67
|
+
* Current blocked state as a boolean.
|
|
68
|
+
* @defaultValue false
|
|
69
|
+
*/
|
|
70
|
+
isBlocked: boolean;
|
|
71
|
+
}
|
|
72
|
+
|
|
14
73
|
/**
|
|
15
74
|
* Defines valid properties in SplitButton component.
|
|
16
75
|
*/
|
|
@@ -103,6 +162,11 @@ export interface SplitButtonProps {
|
|
|
103
162
|
* @defaultValue false
|
|
104
163
|
*/
|
|
105
164
|
plain?: boolean | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* Uses to pass attributes to DOM elements inside the component.
|
|
167
|
+
* @type {SplitButtonPassThroughOptions}
|
|
168
|
+
*/
|
|
169
|
+
pt?: SplitButtonPassThroughOptions;
|
|
106
170
|
}
|
|
107
171
|
|
|
108
172
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="containerClass" :style="style">
|
|
2
|
+
<div :class="containerClass" :style="style" v-bind="ptm('root')">
|
|
3
3
|
<slot>
|
|
4
|
-
<PVSButton type="button" class="p-splitbutton-defaultbutton" :label="label" :disabled="disabled" :aria-label="label" @click="onDefaultButtonClick" v-bind="buttonProps">
|
|
4
|
+
<PVSButton type="button" class="p-splitbutton-defaultbutton" :label="label" :disabled="disabled" :aria-label="label" @click="onDefaultButtonClick" v-bind="{ ...buttonProps, ...ptm('button') }">
|
|
5
5
|
<template #icon="slotProps">
|
|
6
6
|
<slot name="icon">
|
|
7
|
-
<span :class="[icon, slotProps.class]" />
|
|
7
|
+
<span :class="[icon, slotProps.class]" v-bind="ptm('icon')" />
|
|
8
8
|
</slot>
|
|
9
9
|
</template>
|
|
10
10
|
</PVSButton>
|
|
@@ -19,19 +19,21 @@
|
|
|
19
19
|
:aria-controls="ariaId + '_overlay'"
|
|
20
20
|
@click="onDropdownButtonClick"
|
|
21
21
|
@keydown="onDropdownKeydown"
|
|
22
|
+
:pt="ptm('menuButton')"
|
|
22
23
|
v-bind="menuButtonProps"
|
|
23
24
|
>
|
|
24
25
|
<template #icon="slotProps">
|
|
25
26
|
<slot name="menubuttonicon">
|
|
26
|
-
<component :is="menuButtonIcon ? 'span' : 'ChevronDownIcon'" :class="[menuButtonIcon, slotProps.class]" />
|
|
27
|
+
<component :is="menuButtonIcon ? 'span' : 'ChevronDownIcon'" :class="[menuButtonIcon, slotProps.class]" v-bind="ptm('menuButton')['icon']" />
|
|
27
28
|
</slot>
|
|
28
29
|
</template>
|
|
29
30
|
</PVSButton>
|
|
30
|
-
<PVSMenu ref="menu" :id="ariaId + '_overlay'" :model="model" :popup="true" :autoZIndex="autoZIndex" :baseZIndex="baseZIndex" :appendTo="appendTo" />
|
|
31
|
+
<PVSMenu ref="menu" :id="ariaId + '_overlay'" :model="model" :popup="true" :autoZIndex="autoZIndex" :baseZIndex="baseZIndex" :appendTo="appendTo" :pt="ptm('menu')" />
|
|
31
32
|
</div>
|
|
32
33
|
</template>
|
|
33
34
|
|
|
34
35
|
<script>
|
|
36
|
+
import BaseComponent from 'primevue/basecomponent';
|
|
35
37
|
import Button from 'primevue/button';
|
|
36
38
|
import ChevronDownIcon from 'primevue/icons/chevrondown';
|
|
37
39
|
import TieredMenu from 'primevue/tieredmenu';
|
|
@@ -39,6 +41,7 @@ import { UniqueComponentId } from 'primevue/utils';
|
|
|
39
41
|
|
|
40
42
|
export default {
|
|
41
43
|
name: 'SplitButton',
|
|
44
|
+
extends: BaseComponent,
|
|
42
45
|
emits: ['click'],
|
|
43
46
|
props: {
|
|
44
47
|
label: {
|