primevue 4.3.1 → 4.3.3
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/accordionheader/AccordionHeader.vue +8 -2
- package/accordionheader/index.mjs +8 -1
- package/accordionheader/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +72 -16
- package/autocomplete/index.d.ts +3 -3
- package/autocomplete/index.mjs +84 -37
- package/autocomplete/index.mjs.map +1 -1
- package/avatar/Avatar.vue +13 -4
- package/avatar/index.d.ts +3 -3
- package/avatar/index.mjs +26 -6
- package/avatar/index.mjs.map +1 -1
- package/badge/Badge.vue +13 -2
- package/badge/index.d.ts +1 -1
- package/badge/index.mjs +18 -3
- package/badge/index.mjs.map +1 -1
- package/blockui/BlockUI.vue +15 -4
- package/blockui/index.mjs +13 -4
- package/blockui/index.mjs.map +1 -1
- package/button/Button.vue +30 -3
- package/button/index.d.ts +3 -7
- package/button/index.mjs +28 -9
- package/button/index.mjs.map +1 -1
- package/cascadeselect/CascadeSelect.vue +1 -1
- package/cascadeselect/index.d.ts +2 -2
- package/cascadeselect/index.mjs +1 -2
- package/cascadeselect/index.mjs.map +1 -1
- package/checkbox/Checkbox.vue +15 -5
- package/checkbox/index.d.ts +2 -2
- package/checkbox/index.mjs +29 -7
- package/checkbox/index.mjs.map +1 -1
- package/chip/BaseChip.vue +1 -1
- package/chip/Chip.vue +9 -1
- package/chip/index.d.ts +1 -1
- package/chip/index.mjs +13 -3
- package/chip/index.mjs.map +1 -1
- package/colorpicker/ColorPicker.vue +10 -2
- package/colorpicker/index.d.ts +1 -1
- package/colorpicker/index.mjs +9 -2
- package/colorpicker/index.mjs.map +1 -1
- package/column/index.d.ts +3 -3
- package/columngroup/index.d.ts +2 -2
- package/confirmationoptions/index.d.ts +1 -1
- package/datatable/BodyCell.vue +4 -1
- package/datatable/BodyRow.vue +2 -0
- package/datatable/ColumnFilter.vue +1 -1
- package/datatable/DataTable.vue +103 -44
- package/datatable/HeaderCheckbox.vue +2 -2
- package/datatable/RowCheckbox.vue +1 -1
- package/datatable/TableBody.vue +12 -1
- package/datatable/TableFooter.vue +9 -1
- package/datatable/TableHeader.vue +9 -2
- package/datatable/index.d.ts +45 -37
- package/datatable/index.mjs +170 -101
- package/datatable/index.mjs.map +1 -1
- package/dataview/DataView.vue +4 -0
- package/dataview/index.d.ts +61 -4
- package/dataview/index.mjs +6 -2
- package/dataview/index.mjs.map +1 -1
- package/datepicker/DatePicker.vue +370 -234
- package/datepicker/index.d.ts +162 -6
- package/datepicker/index.mjs +644 -384
- package/datepicker/index.mjs.map +1 -1
- package/dialog/Dialog.vue +48 -39
- package/dialog/index.d.ts +26 -1
- package/dialog/index.mjs +73 -50
- package/dialog/index.mjs.map +1 -1
- package/divider/Divider.vue +13 -3
- package/divider/index.d.ts +4 -4
- package/divider/index.mjs +18 -5
- package/divider/index.mjs.map +1 -1
- package/dock/index.d.ts +4 -4
- package/drawer/Drawer.vue +30 -20
- package/drawer/index.d.ts +12 -2
- package/drawer/index.mjs +42 -25
- package/drawer/index.mjs.map +1 -1
- package/fieldset/Fieldset.vue +8 -2
- package/fieldset/index.mjs +20 -10
- package/fieldset/index.mjs.map +1 -1
- package/fileupload/FileUpload.vue +1 -1
- package/fileupload/index.d.ts +2 -2
- package/fileupload/index.mjs +2 -2
- package/fileupload/index.mjs.map +1 -1
- package/floatlabel/index.d.ts +2 -2
- package/galleria/Galleria.vue +39 -3
- package/galleria/GalleriaItem.vue +8 -9
- package/galleria/index.d.ts +3 -3
- package/galleria/index.mjs +48 -11
- package/galleria/index.mjs.map +1 -1
- package/inplace/Inplace.vue +1 -1
- package/inplace/index.mjs +3 -2
- package/inplace/index.mjs.map +1 -1
- package/inputchips/index.d.ts +2 -2
- package/inputmask/InputMask.vue +15 -1
- package/inputmask/index.d.ts +3 -3
- package/inputmask/index.mjs +12 -1
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/BaseInputNumber.vue +4 -0
- package/inputnumber/InputNumber.vue +29 -14
- package/inputnumber/index.d.ts +6 -6
- package/inputnumber/index.mjs +47 -25
- package/inputnumber/index.mjs.map +1 -1
- package/inputotp/index.d.ts +3 -3
- package/inputtext/InputText.vue +10 -1
- package/inputtext/index.d.ts +4 -5
- package/inputtext/index.mjs +14 -1
- package/inputtext/index.mjs.map +1 -1
- package/keyfilter/index.mjs +12 -19
- package/keyfilter/index.mjs.map +1 -1
- package/knob/Knob.vue +1 -1
- package/knob/index.mjs +1 -1
- package/knob/index.mjs.map +1 -1
- package/listbox/Listbox.vue +9 -2
- package/listbox/index.mjs +11 -3
- package/listbox/index.mjs.map +1 -1
- package/megamenu/index.d.ts +2 -2
- package/menu/Menu.vue +8 -2
- package/menu/Menuitem.vue +14 -4
- package/menu/index.mjs +36 -16
- package/menu/index.mjs.map +1 -1
- package/message/Message.vue +16 -7
- package/message/index.d.ts +2 -2
- package/message/index.mjs +35 -13
- package/message/index.mjs.map +1 -1
- package/metergroup/MeterGroup.vue +9 -3
- package/metergroup/MeterGroupLabel.vue +10 -1
- package/metergroup/index.mjs +32 -7
- package/metergroup/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +41 -6
- package/multiselect/index.d.ts +3 -3
- package/multiselect/index.mjs +53 -21
- package/multiselect/index.mjs.map +1 -1
- package/organizationchart/index.d.ts +2 -2
- package/overlaybadge/index.d.ts +1 -1
- package/package.json +3 -3
- package/paginator/Paginator.vue +2 -0
- package/paginator/index.d.ts +8 -0
- package/paginator/index.mjs +3 -1
- package/paginator/index.mjs.map +1 -1
- package/panel/Panel.vue +29 -22
- package/panel/index.d.ts +22 -2
- package/panel/index.mjs +55 -31
- package/panel/index.mjs.map +1 -1
- package/panelmenu/PanelMenuList.vue +1 -1
- package/panelmenu/index.mjs +1 -1
- package/panelmenu/index.mjs.map +1 -1
- package/password/Password.vue +21 -3
- package/password/index.d.ts +3 -3
- package/password/index.mjs +32 -10
- package/password/index.mjs.map +1 -1
- package/popover/Popover.vue +3 -3
- package/popover/index.mjs +3 -4
- package/popover/index.mjs.map +1 -1
- package/progressbar/ProgressBar.vue +11 -4
- package/progressbar/index.mjs +21 -7
- package/progressbar/index.mjs.map +1 -1
- package/radiobutton/RadioButton.vue +13 -3
- package/radiobutton/index.d.ts +3 -3
- package/radiobutton/index.mjs +24 -4
- package/radiobutton/index.mjs.map +1 -1
- package/rating/Rating.vue +19 -2
- package/rating/index.mjs +28 -7
- package/rating/index.mjs.map +1 -1
- package/scrolltop/ScrollTop.vue +2 -2
- package/scrolltop/index.d.ts +2 -2
- package/scrolltop/index.mjs +4 -2
- package/scrolltop/index.mjs.map +1 -1
- package/select/Select.vue +56 -16
- package/select/index.d.ts +2 -2
- package/select/index.mjs +111 -74
- package/select/index.mjs.map +1 -1
- package/selectbutton/SelectButton.vue +26 -9
- package/selectbutton/index.d.ts +2 -2
- package/selectbutton/index.mjs +30 -10
- package/selectbutton/index.mjs.map +1 -1
- package/skeleton/Skeleton.vue +7 -1
- package/skeleton/index.d.ts +3 -3
- package/skeleton/index.mjs +12 -1
- package/skeleton/index.mjs.map +1 -1
- package/slider/Slider.vue +11 -2
- package/slider/index.d.ts +2 -2
- package/slider/index.mjs +27 -8
- package/slider/index.mjs.map +1 -1
- package/speeddial/index.d.ts +5 -5
- package/splitbutton/index.d.ts +1 -1
- package/splitter/Splitter.vue +10 -2
- package/splitter/index.d.ts +3 -3
- package/splitter/index.mjs +19 -6
- package/splitter/index.mjs.map +1 -1
- package/step/Step.vue +25 -7
- package/step/index.mjs +44 -14
- package/step/index.mjs.map +1 -1
- package/steppanel/StepPanel.vue +9 -3
- package/steppanel/index.d.ts +8 -0
- package/steppanel/index.mjs +23 -8
- package/steppanel/index.mjs.map +1 -1
- package/stepper/StepperSeparator.vue +5 -2
- package/stepper/index.d.ts +4 -0
- package/tab/Tab.vue +12 -6
- package/tab/index.mjs +13 -5
- package/tab/index.mjs.map +1 -1
- package/tablist/TabList.vue +13 -2
- package/tablist/index.mjs +21 -8
- package/tablist/index.mjs.map +1 -1
- package/tabpanel/TabPanel.vue +2 -2
- package/tabpanel/index.mjs +2 -2
- package/tabpanel/index.mjs.map +1 -1
- package/tag/Tag.vue +11 -2
- package/tag/index.mjs +17 -3
- package/tag/index.mjs.map +1 -1
- package/textarea/Textarea.vue +10 -1
- package/textarea/index.d.ts +4 -5
- package/textarea/index.mjs +14 -1
- package/textarea/index.mjs.map +1 -1
- package/tieredmenu/TieredMenu.vue +1 -1
- package/tieredmenu/index.mjs +1 -2
- package/tieredmenu/index.mjs.map +1 -1
- package/timeline/Timeline.vue +16 -7
- package/timeline/index.d.ts +3 -3
- package/timeline/index.mjs +42 -11
- package/timeline/index.mjs.map +1 -1
- package/toast/Toast.vue +10 -1
- package/toast/ToastMessage.vue +29 -19
- package/toast/index.d.ts +2 -2
- package/toast/index.mjs +77 -38
- package/toast/index.mjs.map +1 -1
- package/togglebutton/ToggleButton.vue +10 -1
- package/togglebutton/index.d.ts +3 -3
- package/togglebutton/index.mjs +19 -4
- package/togglebutton/index.mjs.map +1 -1
- package/toggleswitch/ToggleSwitch.vue +11 -3
- package/toggleswitch/index.mjs +20 -5
- package/toggleswitch/index.mjs.map +1 -1
- package/tooltip/index.mjs +22 -22
- package/tooltip/index.mjs.map +1 -1
- package/tree/Tree.vue +14 -2
- package/tree/TreeNode.vue +2 -2
- package/tree/index.d.ts +3 -3
- package/tree/index.mjs +28 -10
- package/tree/index.mjs.map +1 -1
- package/treeselect/TreeSelect.vue +1 -1
- package/treeselect/index.d.ts +6 -6
- package/treeselect/index.mjs +1 -2
- package/treeselect/index.mjs.map +1 -1
- package/treetable/index.d.ts +7 -7
- package/treetable/style/index.mjs +2 -3
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/virtualscroller/VirtualScroller.vue +13 -2
- package/virtualscroller/index.d.ts +2 -2
- package/virtualscroller/index.mjs +14 -4
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<component v-if="!asChild" :is="as" v-ripple :class="cx('root')" @click="onClick" v-bind="attrs">
|
|
2
|
+
<component v-if="!asChild" :is="as" v-ripple :data-p="dataP" :class="cx('root')" @click="onClick" v-bind="attrs">
|
|
3
3
|
<slot :active="$pcAccordionPanel.active"></slot>
|
|
4
4
|
<slot name="toggleicon" :active="$pcAccordionPanel.active" :class="cx('toggleicon')">
|
|
5
5
|
<component
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
</template>
|
|
23
23
|
|
|
24
24
|
<script>
|
|
25
|
-
import {
|
|
25
|
+
import { cn } from '@primeuix/utils';
|
|
26
|
+
import { findSingle, focus, getAttribute } from '@primeuix/utils/dom';
|
|
26
27
|
import ChevronDownIcon from '@primevue/icons/chevrondown';
|
|
27
28
|
import ChevronUpIcon from '@primevue/icons/chevronup';
|
|
28
29
|
import Ripple from 'primevue/ripple';
|
|
@@ -158,6 +159,11 @@ export default {
|
|
|
158
159
|
active: this.$pcAccordionPanel.active
|
|
159
160
|
}
|
|
160
161
|
};
|
|
162
|
+
},
|
|
163
|
+
dataP() {
|
|
164
|
+
return cn({
|
|
165
|
+
active: this.$pcAccordionPanel.active
|
|
166
|
+
});
|
|
161
167
|
}
|
|
162
168
|
},
|
|
163
169
|
components: {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cn } from '@primeuix/utils';
|
|
1
2
|
import { focus, getAttribute, findSingle } from '@primeuix/utils/dom';
|
|
2
3
|
import ChevronDownIcon from '@primevue/icons/chevrondown';
|
|
3
4
|
import ChevronUpIcon from '@primevue/icons/chevronup';
|
|
@@ -149,6 +150,11 @@ var script = {
|
|
|
149
150
|
active: this.$pcAccordionPanel.active
|
|
150
151
|
}
|
|
151
152
|
};
|
|
153
|
+
},
|
|
154
|
+
dataP: function dataP() {
|
|
155
|
+
return cn({
|
|
156
|
+
active: this.$pcAccordionPanel.active
|
|
157
|
+
});
|
|
152
158
|
}
|
|
153
159
|
},
|
|
154
160
|
components: {
|
|
@@ -164,6 +170,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
164
170
|
var _directive_ripple = resolveDirective("ripple");
|
|
165
171
|
return !_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({
|
|
166
172
|
key: 0,
|
|
173
|
+
"data-p": $options.dataP,
|
|
167
174
|
"class": _ctx.cx('root'),
|
|
168
175
|
onClick: $options.onClick
|
|
169
176
|
}, $options.attrs), {
|
|
@@ -186,7 +193,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
186
193
|
})];
|
|
187
194
|
}),
|
|
188
195
|
_: 3
|
|
189
|
-
}, 16, ["class", "onClick"])), [[_directive_ripple]]) : renderSlot(_ctx.$slots, "default", {
|
|
196
|
+
}, 16, ["data-p", "class", "onClick"])), [[_directive_ripple]]) : renderSlot(_ctx.$slots, "default", {
|
|
190
197
|
key: 1,
|
|
191
198
|
"class": normalizeClass(_ctx.cx('root')),
|
|
192
199
|
active: $options.$pcAccordionPanel.active,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/accordionheader/BaseAccordionHeader.vue","../../src/accordionheader/AccordionHeader.vue","../../src/accordionheader/AccordionHeader.vue?vue&type=template&id=de1b1e4e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AccordionHeaderStyle from 'primevue/accordionheader/style';\n\nexport default {\n name: 'BaseAccordionHeader',\n extends: BaseComponent,\n props: {\n as: {\n type: [String, Object],\n default: 'BUTTON'\n },\n asChild: {\n type: Boolean,\n default: false\n }\n },\n style: AccordionHeaderStyle,\n provide() {\n return {\n $pcAccordionHeader: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot :active=\"$pcAccordionPanel.active\"></slot>\n <slot name=\"toggleicon\" :active=\"$pcAccordionPanel.active\" :class=\"cx('toggleicon')\">\n <component\n v-if=\"$pcAccordionPanel.active\"\n :is=\"$pcAccordion.$slots.collapseicon ? $pcAccordion.$slots.collapseicon : $pcAccordion.collapseIcon ? 'span' : 'ChevronUpIcon'\"\n :class=\"[$pcAccordion.collapseIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n <component\n v-else\n :is=\"$pcAccordion.$slots.expandicon ? $pcAccordion.$slots.expandicon : $pcAccordion.expandIcon ? 'span' : 'ChevronDownIcon'\"\n :class=\"[$pcAccordion.expandIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n </slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"$pcAccordionPanel.active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { findSingle, getAttribute, focus } from '@primeuix/utils/dom';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseAccordionHeader from './BaseAccordionHeader.vue';\n\nexport default {\n name: 'AccordionHeader',\n extends: BaseAccordionHeader,\n inheritAttrs: false,\n inject: ['$pcAccordion', '$pcAccordionPanel'],\n methods: {\n onFocus() {\n this.$pcAccordion.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));\n\n nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));\n\n prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstPanel = this.findFirstPanel();\n\n this.changeFocusedPanel(event, firstPanel);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastPanel = this.findLastPanel();\n\n this.changeFocusedPanel(event, lastPanel);\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findPanel(headerElement) {\n return headerElement?.closest('[data-pc-name=\"accordionpanel\"]');\n },\n findHeader(panelElement) {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]');\n },\n findNextPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;\n },\n findPrevPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;\n },\n findFirstPanel() {\n return this.findNextPanel(this.$pcAccordion.$el.firstElementChild, true);\n },\n findLastPanel() {\n return this.findPrevPanel(this.$pcAccordion.$el.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcAccordion.updateValue(this.$pcAccordionPanel.value);\n },\n changeFocusedPanel(event, element) {\n focus(this.findHeader(element));\n }\n },\n computed: {\n id() {\n return `${this.$pcAccordion.id}_accordionheader_${this.$pcAccordionPanel.value}`;\n },\n ariaControls() {\n return `${this.$pcAccordion.id}_accordioncontent_${this.$pcAccordionPanel.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.$pcAccordionPanel.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.$pcAccordion.tabindex,\n 'aria-expanded': this.$pcAccordionPanel.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'accordionheader',\n 'data-p-disabled': this.$pcAccordionPanel.disabled,\n 'data-p-active': this.$pcAccordionPanel.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.$pcAccordionPanel.active\n }\n };\n }\n },\n components: {\n ChevronUpIcon,\n ChevronDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot :active=\"$pcAccordionPanel.active\"></slot>\n <slot name=\"toggleicon\" :active=\"$pcAccordionPanel.active\" :class=\"cx('toggleicon')\">\n <component\n v-if=\"$pcAccordionPanel.active\"\n :is=\"$pcAccordion.$slots.collapseicon ? $pcAccordion.$slots.collapseicon : $pcAccordion.collapseIcon ? 'span' : 'ChevronUpIcon'\"\n :class=\"[$pcAccordion.collapseIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n <component\n v-else\n :is=\"$pcAccordion.$slots.expandicon ? $pcAccordion.$slots.expandicon : $pcAccordion.expandIcon ? 'span' : 'ChevronDownIcon'\"\n :class=\"[$pcAccordion.expandIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n </slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"$pcAccordionPanel.active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { findSingle, getAttribute, focus } from '@primeuix/utils/dom';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseAccordionHeader from './BaseAccordionHeader.vue';\n\nexport default {\n name: 'AccordionHeader',\n extends: BaseAccordionHeader,\n inheritAttrs: false,\n inject: ['$pcAccordion', '$pcAccordionPanel'],\n methods: {\n onFocus() {\n this.$pcAccordion.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));\n\n nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));\n\n prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstPanel = this.findFirstPanel();\n\n this.changeFocusedPanel(event, firstPanel);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastPanel = this.findLastPanel();\n\n this.changeFocusedPanel(event, lastPanel);\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findPanel(headerElement) {\n return headerElement?.closest('[data-pc-name=\"accordionpanel\"]');\n },\n findHeader(panelElement) {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]');\n },\n findNextPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;\n },\n findPrevPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;\n },\n findFirstPanel() {\n return this.findNextPanel(this.$pcAccordion.$el.firstElementChild, true);\n },\n findLastPanel() {\n return this.findPrevPanel(this.$pcAccordion.$el.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcAccordion.updateValue(this.$pcAccordionPanel.value);\n },\n changeFocusedPanel(event, element) {\n focus(this.findHeader(element));\n }\n },\n computed: {\n id() {\n return `${this.$pcAccordion.id}_accordionheader_${this.$pcAccordionPanel.value}`;\n },\n ariaControls() {\n return `${this.$pcAccordion.id}_accordioncontent_${this.$pcAccordionPanel.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.$pcAccordionPanel.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.$pcAccordion.tabindex,\n 'aria-expanded': this.$pcAccordionPanel.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'accordionheader',\n 'data-p-disabled': this.$pcAccordionPanel.disabled,\n 'data-p-active': this.$pcAccordionPanel.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.$pcAccordionPanel.active\n }\n };\n }\n },\n components: {\n ChevronUpIcon,\n ChevronDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","as","type","String","Object","asChild","Boolean","style","AccordionHeaderStyle","provide","$pcAccordionHeader","$parentInstance","BaseAccordionHeader","inheritAttrs","inject","methods","onFocus","$pcAccordion","selectOnFocus","changeActiveValue","onClick","onKeydown","event","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","nextPanel","findNextPanel","findPanel","currentTarget","changeFocusedPanel","preventDefault","prevPanel","findPrevPanel","firstPanel","findFirstPanel","lastPanel","findLastPanel","headerElement","closest","findHeader","panelElement","findSingle","selfCheck","element","nextElementSibling","getAttribute","previousElementSibling","$el","firstElementChild","lastElementChild","updateValue","$pcAccordionPanel","value","focus","computed","id","concat","ariaControls","attrs","mergeProps","asAttrs","a11yAttrs","ptmi","ptParams","disabled","undefined","tabindex","active","context","components","ChevronUpIcon","ChevronDownIcon","directives","ripple","Ripple","_ctx","_createBlock","_resolveDynamicComponent","_mergeProps","cx","$options","_renderSlot","$slots","_openBlock","collapseicon","collapseIcon","ptm","expandicon","expandIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/accordionheader/BaseAccordionHeader.vue","../../src/accordionheader/AccordionHeader.vue","../../src/accordionheader/AccordionHeader.vue?vue&type=template&id=3b2aba2e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AccordionHeaderStyle from 'primevue/accordionheader/style';\n\nexport default {\n name: 'BaseAccordionHeader',\n extends: BaseComponent,\n props: {\n as: {\n type: [String, Object],\n default: 'BUTTON'\n },\n asChild: {\n type: Boolean,\n default: false\n }\n },\n style: AccordionHeaderStyle,\n provide() {\n return {\n $pcAccordionHeader: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :data-p=\"dataP\" :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot :active=\"$pcAccordionPanel.active\"></slot>\n <slot name=\"toggleicon\" :active=\"$pcAccordionPanel.active\" :class=\"cx('toggleicon')\">\n <component\n v-if=\"$pcAccordionPanel.active\"\n :is=\"$pcAccordion.$slots.collapseicon ? $pcAccordion.$slots.collapseicon : $pcAccordion.collapseIcon ? 'span' : 'ChevronUpIcon'\"\n :class=\"[$pcAccordion.collapseIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n <component\n v-else\n :is=\"$pcAccordion.$slots.expandicon ? $pcAccordion.$slots.expandicon : $pcAccordion.expandIcon ? 'span' : 'ChevronDownIcon'\"\n :class=\"[$pcAccordion.expandIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n </slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"$pcAccordionPanel.active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseAccordionHeader from './BaseAccordionHeader.vue';\n\nexport default {\n name: 'AccordionHeader',\n extends: BaseAccordionHeader,\n inheritAttrs: false,\n inject: ['$pcAccordion', '$pcAccordionPanel'],\n methods: {\n onFocus() {\n this.$pcAccordion.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));\n\n nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));\n\n prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstPanel = this.findFirstPanel();\n\n this.changeFocusedPanel(event, firstPanel);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastPanel = this.findLastPanel();\n\n this.changeFocusedPanel(event, lastPanel);\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findPanel(headerElement) {\n return headerElement?.closest('[data-pc-name=\"accordionpanel\"]');\n },\n findHeader(panelElement) {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]');\n },\n findNextPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;\n },\n findPrevPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;\n },\n findFirstPanel() {\n return this.findNextPanel(this.$pcAccordion.$el.firstElementChild, true);\n },\n findLastPanel() {\n return this.findPrevPanel(this.$pcAccordion.$el.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcAccordion.updateValue(this.$pcAccordionPanel.value);\n },\n changeFocusedPanel(event, element) {\n focus(this.findHeader(element));\n }\n },\n computed: {\n id() {\n return `${this.$pcAccordion.id}_accordionheader_${this.$pcAccordionPanel.value}`;\n },\n ariaControls() {\n return `${this.$pcAccordion.id}_accordioncontent_${this.$pcAccordionPanel.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.$pcAccordionPanel.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.$pcAccordion.tabindex,\n 'aria-expanded': this.$pcAccordionPanel.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'accordionheader',\n 'data-p-disabled': this.$pcAccordionPanel.disabled,\n 'data-p-active': this.$pcAccordionPanel.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.$pcAccordionPanel.active\n }\n };\n },\n dataP() {\n return cn({\n active: this.$pcAccordionPanel.active\n });\n }\n },\n components: {\n ChevronUpIcon,\n ChevronDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <component v-if=\"!asChild\" :is=\"as\" v-ripple :data-p=\"dataP\" :class=\"cx('root')\" @click=\"onClick\" v-bind=\"attrs\">\n <slot :active=\"$pcAccordionPanel.active\"></slot>\n <slot name=\"toggleicon\" :active=\"$pcAccordionPanel.active\" :class=\"cx('toggleicon')\">\n <component\n v-if=\"$pcAccordionPanel.active\"\n :is=\"$pcAccordion.$slots.collapseicon ? $pcAccordion.$slots.collapseicon : $pcAccordion.collapseIcon ? 'span' : 'ChevronUpIcon'\"\n :class=\"[$pcAccordion.collapseIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n <component\n v-else\n :is=\"$pcAccordion.$slots.expandicon ? $pcAccordion.$slots.expandicon : $pcAccordion.expandIcon ? 'span' : 'ChevronDownIcon'\"\n :class=\"[$pcAccordion.expandIcon, cx('toggleicon')]\"\n aria-hidden=\"true\"\n v-bind=\"ptm('toggleicon', ptParams)\"\n ></component>\n </slot>\n </component>\n <slot v-else :class=\"cx('root')\" :active=\"$pcAccordionPanel.active\" :a11yAttrs=\"a11yAttrs\" :onClick=\"onClick\"></slot>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\nimport BaseAccordionHeader from './BaseAccordionHeader.vue';\n\nexport default {\n name: 'AccordionHeader',\n extends: BaseAccordionHeader,\n inheritAttrs: false,\n inject: ['$pcAccordion', '$pcAccordionPanel'],\n methods: {\n onFocus() {\n this.$pcAccordion.selectOnFocus && this.changeActiveValue();\n },\n onClick() {\n this.changeActiveValue();\n },\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));\n\n nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));\n\n prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey(event) {\n const firstPanel = this.findFirstPanel();\n\n this.changeFocusedPanel(event, firstPanel);\n event.preventDefault();\n },\n onEndKey(event) {\n const lastPanel = this.findLastPanel();\n\n this.changeFocusedPanel(event, lastPanel);\n event.preventDefault();\n },\n onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findPanel(headerElement) {\n return headerElement?.closest('[data-pc-name=\"accordionpanel\"]');\n },\n findHeader(panelElement) {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]');\n },\n findNextPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;\n },\n findPrevPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;\n },\n findFirstPanel() {\n return this.findNextPanel(this.$pcAccordion.$el.firstElementChild, true);\n },\n findLastPanel() {\n return this.findPrevPanel(this.$pcAccordion.$el.lastElementChild, true);\n },\n changeActiveValue() {\n this.$pcAccordion.updateValue(this.$pcAccordionPanel.value);\n },\n changeFocusedPanel(event, element) {\n focus(this.findHeader(element));\n }\n },\n computed: {\n id() {\n return `${this.$pcAccordion.id}_accordionheader_${this.$pcAccordionPanel.value}`;\n },\n ariaControls() {\n return `${this.$pcAccordion.id}_accordioncontent_${this.$pcAccordionPanel.value}`;\n },\n attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs() {\n return this.as === 'BUTTON' ? { type: 'button', disabled: this.$pcAccordionPanel.disabled } : undefined;\n },\n a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.$pcAccordion.tabindex,\n 'aria-expanded': this.$pcAccordionPanel.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'accordionheader',\n 'data-p-disabled': this.$pcAccordionPanel.disabled,\n 'data-p-active': this.$pcAccordionPanel.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams() {\n return {\n context: {\n active: this.$pcAccordionPanel.active\n }\n };\n },\n dataP() {\n return cn({\n active: this.$pcAccordionPanel.active\n });\n }\n },\n components: {\n ChevronUpIcon,\n ChevronDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","as","type","String","Object","asChild","Boolean","style","AccordionHeaderStyle","provide","$pcAccordionHeader","$parentInstance","BaseAccordionHeader","inheritAttrs","inject","methods","onFocus","$pcAccordion","selectOnFocus","changeActiveValue","onClick","onKeydown","event","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","nextPanel","findNextPanel","findPanel","currentTarget","changeFocusedPanel","preventDefault","prevPanel","findPrevPanel","firstPanel","findFirstPanel","lastPanel","findLastPanel","headerElement","closest","findHeader","panelElement","findSingle","selfCheck","element","nextElementSibling","getAttribute","previousElementSibling","$el","firstElementChild","lastElementChild","updateValue","$pcAccordionPanel","value","focus","computed","id","concat","ariaControls","attrs","mergeProps","asAttrs","a11yAttrs","ptmi","ptParams","disabled","undefined","tabindex","active","context","dataP","cn","components","ChevronUpIcon","ChevronDownIcon","directives","ripple","Ripple","_ctx","_createBlock","_resolveDynamicComponent","_mergeProps","$options","cx","_renderSlot","$slots","_openBlock","collapseicon","collapseIcon","ptm","expandicon","expandIcon"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div ref="container" :class="cx('root')" :style="sx('root')" @click="onContainerClick" v-bind="ptmi('root')">
|
|
2
|
+
<div ref="container" :class="cx('root')" :style="sx('root')" @click="onContainerClick" :data-p="containerDataP" v-bind="ptmi('root')">
|
|
3
3
|
<InputText
|
|
4
4
|
v-if="!multiple"
|
|
5
5
|
ref="focusInput"
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
@input="onInput"
|
|
32
32
|
@change="onChange"
|
|
33
33
|
:unstyled="unstyled"
|
|
34
|
+
:data-p-has-dropdown="dropdown"
|
|
34
35
|
:pt="ptm('pcInputText')"
|
|
35
36
|
/>
|
|
36
37
|
<ul
|
|
@@ -44,6 +45,8 @@
|
|
|
44
45
|
@focus="onMultipleContainerFocus"
|
|
45
46
|
@blur="onMultipleContainerBlur"
|
|
46
47
|
@keydown="onMultipleContainerKeyDown"
|
|
48
|
+
:data-p-has-dropdown="dropdown"
|
|
49
|
+
:data-p="inputMultipleDataP"
|
|
47
50
|
v-bind="ptm('inputMultiple')"
|
|
48
51
|
>
|
|
49
52
|
<li
|
|
@@ -60,7 +63,16 @@
|
|
|
60
63
|
>
|
|
61
64
|
<slot name="chip" :class="cx('pcChip')" :value="option" :index="i" :removeCallback="(event) => removeOption(event, i)" v-bind="ptm('pcChip')">
|
|
62
65
|
<!-- TODO: removetokenicon and removeTokenIcon deprecated since v4.0. Use chipicon slot and chipIcon prop-->
|
|
63
|
-
<Chip
|
|
66
|
+
<Chip
|
|
67
|
+
:class="cx('pcChip')"
|
|
68
|
+
:label="getOptionLabel(option)"
|
|
69
|
+
:removeIcon="chipIcon || removeTokenIcon"
|
|
70
|
+
removable
|
|
71
|
+
:unstyled="unstyled"
|
|
72
|
+
@remove="removeOption($event, i)"
|
|
73
|
+
:data-p-focused="focusedMultipleOptionIndex === i"
|
|
74
|
+
:pt="ptm('pcChip')"
|
|
75
|
+
>
|
|
64
76
|
<template #removeicon>
|
|
65
77
|
<slot :name="$slots.chipicon ? 'chipicon' : 'removetokenicon'" :class="cx('chipIcon')" :index="i" :removeCallback="(event) => removeOption(event, i)" />
|
|
66
78
|
</template>
|
|
@@ -97,8 +109,8 @@
|
|
|
97
109
|
</li>
|
|
98
110
|
</ul>
|
|
99
111
|
<slot v-if="searching || loading" :class="cx('loader')" :name="$slots.loader ? 'loader' : 'loadingicon'">
|
|
100
|
-
<i v-if="loader || loadingIcon" :class="['pi-spin', cx('loader'), loader, loadingIcon]" aria-hidden="true" v-bind="ptm('loader')" />
|
|
101
|
-
<SpinnerIcon v-else :class="cx('loader')" spin aria-hidden="true" v-bind="ptm('loader')" />
|
|
112
|
+
<i v-if="loader || loadingIcon" :class="['pi-spin', cx('loader'), loader, loadingIcon]" aria-hidden="true" :data-p-has-dropdown="dropdown" v-bind="ptm('loader')" />
|
|
113
|
+
<SpinnerIcon v-else :class="cx('loader')" spin aria-hidden="true" :data-p-has-dropdown="dropdown" v-bind="ptm('loader')" />
|
|
102
114
|
</slot>
|
|
103
115
|
<slot :name="$slots.dropdown ? 'dropdown' : 'dropdownbutton'" :toggleCallback="(event) => onDropdownClick(event)">
|
|
104
116
|
<button
|
|
@@ -118,12 +130,22 @@
|
|
|
118
130
|
</slot>
|
|
119
131
|
</button>
|
|
120
132
|
</slot>
|
|
121
|
-
<span role="status" aria-live="polite" class="p-hidden-accessible" v-bind="ptm('hiddenSearchResult')" :data-p-hidden-accessible="true">
|
|
133
|
+
<span v-if="typeahead" role="status" aria-live="polite" class="p-hidden-accessible" v-bind="ptm('hiddenSearchResult')" :data-p-hidden-accessible="true">
|
|
122
134
|
{{ searchResultMessageText }}
|
|
123
135
|
</span>
|
|
124
136
|
<Portal :appendTo="appendTo">
|
|
125
137
|
<transition name="p-connected-overlay" @enter="onOverlayEnter" @after-enter="onOverlayAfterEnter" @leave="onOverlayLeave" @after-leave="onOverlayAfterLeave" v-bind="ptm('transition')">
|
|
126
|
-
<div
|
|
138
|
+
<div
|
|
139
|
+
v-if="overlayVisible"
|
|
140
|
+
:ref="overlayRef"
|
|
141
|
+
:id="panelId"
|
|
142
|
+
:class="[cx('overlay'), panelClass, overlayClass]"
|
|
143
|
+
:style="{ ...panelStyle, ...overlayStyle }"
|
|
144
|
+
@click="onOverlayClick"
|
|
145
|
+
@keydown="onOverlayKeyDown"
|
|
146
|
+
:data-p="overlayDataP"
|
|
147
|
+
v-bind="ptm('overlay')"
|
|
148
|
+
>
|
|
127
149
|
<slot name="header" :value="d_value" :suggestions="visibleOptions"></slot>
|
|
128
150
|
<div :class="cx('listContainer')" :style="{ 'max-height': virtualScrollerDisabled ? scrollHeight : '' }" v-bind="ptm('listContainer')">
|
|
129
151
|
<VirtualScroller :ref="virtualScrollerRef" v-bind="virtualScrollerOptions" :style="{ height: scrollHeight }" :items="visibleOptions" :tabindex="-1" :disabled="virtualScrollerDisabled" :pt="ptm('virtualScroller')">
|
|
@@ -155,7 +177,7 @@
|
|
|
155
177
|
@click="onOptionSelect($event, option)"
|
|
156
178
|
@mousemove="onOptionMouseMove($event, getOptionIndex(i, getItemOptions))"
|
|
157
179
|
:data-p-selected="isSelected(option)"
|
|
158
|
-
:data-p-
|
|
180
|
+
:data-p-focused="focusedOptionIndex === getOptionIndex(i, getItemOptions)"
|
|
159
181
|
:data-p-disabled="isOptionDisabled(option)"
|
|
160
182
|
v-bind="getPTOptions(option, getItemOptions, i, 'option')"
|
|
161
183
|
>
|
|
@@ -183,6 +205,7 @@
|
|
|
183
205
|
</template>
|
|
184
206
|
|
|
185
207
|
<script>
|
|
208
|
+
import { cn } from '@primeuix/utils';
|
|
186
209
|
import { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';
|
|
187
210
|
import { equals, findLastIndex, isEmpty, isNotEmpty, resolveFieldData } from '@primeuix/utils/object';
|
|
188
211
|
import { ZIndex } from '@primeuix/utils/zindex';
|
|
@@ -387,10 +410,13 @@ export default {
|
|
|
387
410
|
|
|
388
411
|
case 'Enter':
|
|
389
412
|
case 'NumpadEnter':
|
|
390
|
-
case 'Space':
|
|
391
413
|
this.onEnterKey(event);
|
|
392
414
|
break;
|
|
393
415
|
|
|
416
|
+
case 'Space':
|
|
417
|
+
this.onSpaceKey(event);
|
|
418
|
+
break;
|
|
419
|
+
|
|
394
420
|
case 'Escape':
|
|
395
421
|
this.onEscapeKey(event);
|
|
396
422
|
break;
|
|
@@ -448,7 +474,7 @@ export default {
|
|
|
448
474
|
|
|
449
475
|
// when forceSelection is on, prevent called twice onOptionSelect()
|
|
450
476
|
if (this.visibleOptions && !this.multiple) {
|
|
451
|
-
let value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput
|
|
477
|
+
let value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput?.$el?.value;
|
|
452
478
|
const matchedValue = this.visibleOptions.find((option) => this.isOptionMatched(option, value || ''));
|
|
453
479
|
|
|
454
480
|
if (matchedValue !== undefined) {
|
|
@@ -458,8 +484,12 @@ export default {
|
|
|
458
484
|
}
|
|
459
485
|
|
|
460
486
|
if (!valid) {
|
|
461
|
-
if (this.multiple)
|
|
462
|
-
|
|
487
|
+
if (this.multiple) {
|
|
488
|
+
this.$refs.focusInput.value = '';
|
|
489
|
+
} else {
|
|
490
|
+
const inputEl = this.$refs.focusInput?.$el;
|
|
491
|
+
inputEl && (inputEl.value = '');
|
|
492
|
+
}
|
|
463
493
|
this.$emit('clear');
|
|
464
494
|
!this.multiple && this.updateModel(event, null);
|
|
465
495
|
}
|
|
@@ -682,8 +712,10 @@ export default {
|
|
|
682
712
|
onEnterKey(event) {
|
|
683
713
|
if (!this.typeahead) {
|
|
684
714
|
if (this.multiple) {
|
|
685
|
-
|
|
686
|
-
|
|
715
|
+
if (event.target.value.trim()) {
|
|
716
|
+
this.updateModel(event, [...(this.d_value || []), event.target.value.trim()]);
|
|
717
|
+
this.$refs.focusInput.value = '';
|
|
718
|
+
}
|
|
687
719
|
}
|
|
688
720
|
} else {
|
|
689
721
|
if (!this.overlayVisible) {
|
|
@@ -702,8 +734,11 @@ export default {
|
|
|
702
734
|
this.hide();
|
|
703
735
|
}
|
|
704
736
|
}
|
|
705
|
-
|
|
706
|
-
|
|
737
|
+
},
|
|
738
|
+
onSpaceKey(event) {
|
|
739
|
+
if (this.focusedOptionIndex !== -1) {
|
|
740
|
+
this.onEnterKey(event);
|
|
741
|
+
}
|
|
707
742
|
},
|
|
708
743
|
onEscapeKey(event) {
|
|
709
744
|
this.overlayVisible && this.hide(true);
|
|
@@ -752,7 +787,7 @@ export default {
|
|
|
752
787
|
onOverlayEnter(el) {
|
|
753
788
|
ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);
|
|
754
789
|
|
|
755
|
-
addStyle(el, { position: 'absolute', top: '0'
|
|
790
|
+
addStyle(el, { position: 'absolute', top: '0' });
|
|
756
791
|
this.alignOverlay();
|
|
757
792
|
},
|
|
758
793
|
onOverlayAfterEnter() {
|
|
@@ -1052,6 +1087,27 @@ export default {
|
|
|
1052
1087
|
},
|
|
1053
1088
|
panelId() {
|
|
1054
1089
|
return this.$id + '_panel';
|
|
1090
|
+
},
|
|
1091
|
+
containerDataP() {
|
|
1092
|
+
return cn({
|
|
1093
|
+
fluid: this.$fluid
|
|
1094
|
+
});
|
|
1095
|
+
},
|
|
1096
|
+
overlayDataP() {
|
|
1097
|
+
return cn({
|
|
1098
|
+
['portal-' + this.appendTo]: 'portal-' + this.appendTo
|
|
1099
|
+
});
|
|
1100
|
+
},
|
|
1101
|
+
inputMultipleDataP() {
|
|
1102
|
+
return cn({
|
|
1103
|
+
invalid: this.$invalid,
|
|
1104
|
+
disabled: this.disabled,
|
|
1105
|
+
focus: this.focused,
|
|
1106
|
+
fluid: this.$fluid,
|
|
1107
|
+
filled: this.$variant === 'filled',
|
|
1108
|
+
empty: !this.$filled,
|
|
1109
|
+
[this.size]: this.size
|
|
1110
|
+
});
|
|
1055
1111
|
}
|
|
1056
1112
|
},
|
|
1057
1113
|
components: {
|
package/autocomplete/index.d.ts
CHANGED
|
@@ -360,7 +360,7 @@ export interface AutoCompleteProps {
|
|
|
360
360
|
* Specifies the behavior dropdown button. Default 'blank' mode sends an empty string and 'current' mode sends the input value.
|
|
361
361
|
* @defaultValue blank
|
|
362
362
|
*/
|
|
363
|
-
dropdownMode?: 'blank' | 'current' | undefined;
|
|
363
|
+
dropdownMode?: HintedString<'blank' | 'current'> | undefined;
|
|
364
364
|
/**
|
|
365
365
|
* Specifies if multiple values can be selected.
|
|
366
366
|
* @defaultValue false
|
|
@@ -378,7 +378,7 @@ export interface AutoCompleteProps {
|
|
|
378
378
|
/**
|
|
379
379
|
* Defines the size of the component.
|
|
380
380
|
*/
|
|
381
|
-
size?: 'small' | 'large' | undefined;
|
|
381
|
+
size?: HintedString<'small' | 'large'> | undefined;
|
|
382
382
|
/**
|
|
383
383
|
* When present, it specifies that the component should have invalid state style.
|
|
384
384
|
* @defaultValue false
|
|
@@ -393,7 +393,7 @@ export interface AutoCompleteProps {
|
|
|
393
393
|
* Specifies the input variant of the component.
|
|
394
394
|
* @defaultValue null
|
|
395
395
|
*/
|
|
396
|
-
variant?: 'outlined' | 'filled' | undefined | null;
|
|
396
|
+
variant?: HintedString<'outlined' | 'filled'> | undefined | null;
|
|
397
397
|
/**
|
|
398
398
|
* A property to uniquely identify an option.
|
|
399
399
|
*/
|