primevue 4.3.2 → 4.3.4

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.
Files changed (168) hide show
  1. package/accordionheader/AccordionHeader.vue +1 -1
  2. package/accordionheader/index.d.ts +6 -1
  3. package/accordionheader/index.mjs +1 -1
  4. package/accordionheader/index.mjs.map +1 -1
  5. package/autocomplete/AutoComplete.vue +60 -11
  6. package/autocomplete/index.d.ts +4 -0
  7. package/autocomplete/index.mjs +96 -59
  8. package/autocomplete/index.mjs.map +1 -1
  9. package/cascadeselect/CascadeSelect.vue +4 -1
  10. package/cascadeselect/CascadeSelectSub.vue +1 -1
  11. package/cascadeselect/index.mjs +22 -20
  12. package/cascadeselect/index.mjs.map +1 -1
  13. package/checkbox/Checkbox.vue +1 -1
  14. package/checkbox/index.mjs +2 -1
  15. package/checkbox/index.mjs.map +1 -1
  16. package/chip/BaseChip.vue +1 -1
  17. package/chip/index.d.ts +1 -1
  18. package/chip/index.mjs +1 -1
  19. package/chip/index.mjs.map +1 -1
  20. package/colorpicker/ColorPicker.vue +5 -1
  21. package/colorpicker/index.mjs +5 -1
  22. package/colorpicker/index.mjs.map +1 -1
  23. package/confirmationoptions/index.d.ts +1 -1
  24. package/confirmdialog/index.d.ts +4 -0
  25. package/contextmenu/index.mjs +12 -12
  26. package/contextmenu/index.mjs.map +1 -1
  27. package/datatable/BodyCell.vue +1 -0
  28. package/datatable/ColumnFilter.vue +3 -3
  29. package/datatable/DataTable.vue +103 -44
  30. package/datatable/HeaderCheckbox.vue +2 -2
  31. package/datatable/RowCheckbox.vue +1 -1
  32. package/datatable/TableBody.vue +12 -1
  33. package/datatable/TableFooter.vue +9 -1
  34. package/datatable/TableHeader.vue +9 -2
  35. package/datatable/index.d.ts +37 -29
  36. package/datatable/index.mjs +175 -111
  37. package/datatable/index.mjs.map +1 -1
  38. package/datatable/style/index.mjs +4 -4
  39. package/datatable/style/index.mjs.map +1 -1
  40. package/dataview/DataView.vue +4 -0
  41. package/dataview/index.d.ts +63 -6
  42. package/dataview/index.mjs +6 -2
  43. package/dataview/index.mjs.map +1 -1
  44. package/datepicker/DatePicker.vue +379 -236
  45. package/datepicker/index.d.ts +156 -0
  46. package/datepicker/index.mjs +676 -406
  47. package/datepicker/index.mjs.map +1 -1
  48. package/drawer/Drawer.vue +30 -20
  49. package/drawer/index.d.ts +10 -0
  50. package/drawer/index.mjs +42 -25
  51. package/drawer/index.mjs.map +1 -1
  52. package/fileupload/FileUpload.vue +3 -4
  53. package/fileupload/index.mjs +8 -10
  54. package/fileupload/index.mjs.map +1 -1
  55. package/galleria/Galleria.vue +39 -3
  56. package/galleria/index.mjs +40 -3
  57. package/galleria/index.mjs.map +1 -1
  58. package/image/Image.vue +1 -1
  59. package/image/index.mjs +1 -1
  60. package/image/index.mjs.map +1 -1
  61. package/inplace/Inplace.vue +1 -1
  62. package/inplace/index.mjs +3 -2
  63. package/inplace/index.mjs.map +1 -1
  64. package/inputmask/InputMask.vue +3 -3
  65. package/inputmask/index.d.ts +3 -3
  66. package/inputmask/index.mjs +3 -3
  67. package/inputmask/index.mjs.map +1 -1
  68. package/inputnumber/BaseInputNumber.vue +4 -0
  69. package/inputnumber/InputNumber.vue +3 -10
  70. package/inputnumber/index.mjs +8 -9
  71. package/inputnumber/index.mjs.map +1 -1
  72. package/keyfilter/index.mjs +12 -19
  73. package/keyfilter/index.mjs.map +1 -1
  74. package/listbox/Listbox.vue +10 -2
  75. package/listbox/index.mjs +38 -29
  76. package/listbox/index.mjs.map +1 -1
  77. package/megamenu/index.d.ts +1 -1
  78. package/megamenu/index.mjs +11 -11
  79. package/megamenu/index.mjs.map +1 -1
  80. package/menu/Menu.vue +12 -6
  81. package/menu/Menuitem.vue +14 -4
  82. package/menu/index.d.ts +3 -12
  83. package/menu/index.mjs +40 -20
  84. package/menu/index.mjs.map +1 -1
  85. package/menubar/index.mjs +16 -16
  86. package/menubar/index.mjs.map +1 -1
  87. package/metergroup/MeterGroup.vue +9 -3
  88. package/metergroup/MeterGroupLabel.vue +10 -1
  89. package/metergroup/index.d.ts +1 -1
  90. package/metergroup/index.mjs +32 -7
  91. package/metergroup/index.mjs.map +1 -1
  92. package/multiselect/MultiSelect.vue +40 -6
  93. package/multiselect/index.d.ts +1 -1
  94. package/multiselect/index.mjs +100 -68
  95. package/multiselect/index.mjs.map +1 -1
  96. package/organizationchart/OrganizationChartNode.vue +1 -1
  97. package/organizationchart/index.mjs.map +1 -1
  98. package/organizationchart/style/index.mjs +11 -6
  99. package/organizationchart/style/index.mjs.map +1 -1
  100. package/package.json +6 -6
  101. package/paginator/Paginator.vue +2 -0
  102. package/paginator/index.d.ts +8 -0
  103. package/paginator/index.mjs +3 -1
  104. package/paginator/index.mjs.map +1 -1
  105. package/panel/Panel.vue +2 -2
  106. package/panel/index.mjs +2 -2
  107. package/panel/index.mjs.map +1 -1
  108. package/panelmenu/PanelMenuList.vue +1 -1
  109. package/panelmenu/index.mjs +4 -4
  110. package/panelmenu/index.mjs.map +1 -1
  111. package/password/Password.vue +28 -6
  112. package/password/index.mjs +44 -16
  113. package/password/index.mjs.map +1 -1
  114. package/popover/Popover.vue +1 -1
  115. package/popover/index.mjs +1 -2
  116. package/popover/index.mjs.map +1 -1
  117. package/progressbar/ProgressBar.vue +4 -4
  118. package/progressbar/index.mjs +8 -12
  119. package/progressbar/index.mjs.map +1 -1
  120. package/scrolltop/ScrollTop.vue +2 -2
  121. package/scrolltop/index.mjs +4 -2
  122. package/scrolltop/index.mjs.map +1 -1
  123. package/select/Select.vue +68 -13
  124. package/select/index.mjs +128 -77
  125. package/select/index.mjs.map +1 -1
  126. package/selectbutton/index.d.ts +0 -24
  127. package/splitter/Splitter.vue +10 -2
  128. package/splitter/index.d.ts +1 -1
  129. package/splitter/index.mjs +19 -7
  130. package/splitter/index.mjs.map +1 -1
  131. package/splitter/style/index.mjs +1 -13
  132. package/splitter/style/index.mjs.map +1 -1
  133. package/step/Step.vue +27 -9
  134. package/step/index.mjs +46 -16
  135. package/step/index.mjs.map +1 -1
  136. package/steppanel/StepPanel.vue +11 -5
  137. package/steppanel/index.d.ts +8 -0
  138. package/steppanel/index.mjs +25 -10
  139. package/steppanel/index.mjs.map +1 -1
  140. package/stepper/StepperSeparator.vue +5 -2
  141. package/tab/Tab.vue +4 -4
  142. package/tab/index.mjs +4 -4
  143. package/tab/index.mjs.map +1 -1
  144. package/tablist/TabList.vue +3 -0
  145. package/tablist/index.mjs +1 -0
  146. package/tablist/index.mjs.map +1 -1
  147. package/tabpanel/TabPanel.vue +2 -2
  148. package/tabpanel/index.mjs +2 -2
  149. package/tabpanel/index.mjs.map +1 -1
  150. package/tieredmenu/TieredMenu.vue +1 -1
  151. package/tieredmenu/index.mjs +13 -14
  152. package/tieredmenu/index.mjs.map +1 -1
  153. package/tooltip/index.mjs +47 -30
  154. package/tooltip/index.mjs.map +1 -1
  155. package/tree/Tree.vue +14 -2
  156. package/tree/TreeNode.vue +2 -2
  157. package/tree/index.mjs +28 -10
  158. package/tree/index.mjs.map +1 -1
  159. package/treeselect/TreeSelect.vue +4 -1
  160. package/treeselect/index.mjs +4 -2
  161. package/treeselect/index.mjs.map +1 -1
  162. package/umd/primevue.min.js +12213 -1
  163. package/virtualscroller/VirtualScroller.vue +13 -2
  164. package/virtualscroller/index.mjs +28 -18
  165. package/virtualscroller/index.mjs.map +1 -1
  166. package/virtualscroller/style/index.mjs +1 -1
  167. package/virtualscroller/style/index.mjs.map +1 -1
  168. package/web-types.json +1 -1
package/menu/Menu.vue CHANGED
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <Portal :appendTo="appendTo" :disabled="!popup">
3
3
  <transition name="p-connected-overlay" @enter="onEnter" @leave="onLeave" @after-leave="onAfterLeave" v-bind="ptm('transition')">
4
- <div v-if="popup ? overlayVisible : true" :ref="containerRef" :id="$id" :class="cx('root')" @click="onOverlayClick" v-bind="ptmi('root')">
4
+ <div v-if="popup ? overlayVisible : true" :ref="containerRef" :id="$id" :class="cx('root')" @click="onOverlayClick" :data-p="dataP" v-bind="ptmi('root')">
5
5
  <div v-if="$slots.start" :class="cx('start')" v-bind="ptm('start')">
6
6
  <slot name="start"></slot>
7
7
  </div>
@@ -65,6 +65,7 @@
65
65
  </template>
66
66
 
67
67
  <script>
68
+ import { cn } from '@primeuix/utils';
68
69
  import { absolutePosition, addStyle, find, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';
69
70
  import { ZIndex } from '@primeuix/utils/zindex';
70
71
  import { ConnectedOverlayScrollHandler } from '@primevue/core/utils';
@@ -246,20 +247,20 @@ export default {
246
247
 
247
248
  order > -1 && (this.focusedOptionIndex = links[order].getAttribute('id'));
248
249
  },
249
- toggle(event) {
250
+ toggle(event, target) {
250
251
  if (this.overlayVisible) this.hide();
251
- else this.show(event);
252
+ else this.show(event, target);
252
253
  },
253
- show(event) {
254
+ show(event, target) {
254
255
  this.overlayVisible = true;
255
- this.target = event.currentTarget;
256
+ this.target = target ?? event.currentTarget;
256
257
  },
257
258
  hide() {
258
259
  this.overlayVisible = false;
259
260
  this.target = null;
260
261
  },
261
262
  onEnter(el) {
262
- addStyle(el, { position: 'absolute', top: '0', left: '0' });
263
+ addStyle(el, { position: 'absolute', top: '0' });
263
264
  this.alignOverlay();
264
265
  this.bindOutsideClickListener();
265
266
  this.bindResizeListener();
@@ -374,6 +375,11 @@ export default {
374
375
  computed: {
375
376
  focusedOptionId() {
376
377
  return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
378
+ },
379
+ dataP() {
380
+ return cn({
381
+ popup: this.popup
382
+ });
377
383
  }
378
384
  },
379
385
  components: {
package/menu/Menuitem.vue CHANGED
@@ -7,16 +7,17 @@
7
7
  :style="item.style"
8
8
  :aria-label="label()"
9
9
  :aria-disabled="disabled()"
10
- v-bind="getPTOptions('item')"
11
10
  :data-p-focused="isItemFocused()"
12
11
  :data-p-disabled="disabled() || false"
12
+ :data-p="dataP"
13
+ v-bind="getPTOptions('item')"
13
14
  >
14
- <div :class="cx('itemContent')" @click="onItemClick($event)" @mousemove="onItemMouseMove($event)" v-bind="getPTOptions('itemContent')">
15
+ <div :class="cx('itemContent')" @click="onItemClick($event)" @mousemove="onItemMouseMove($event)" :data-p="dataP" v-bind="getPTOptions('itemContent')">
15
16
  <template v-if="!templates.item">
16
17
  <a v-ripple :href="item.url" :class="cx('itemLink')" :target="item.target" tabindex="-1" v-bind="getPTOptions('itemLink')">
17
18
  <component v-if="templates.itemicon" :is="templates.itemicon" :item="item" :class="cx('itemIcon')" />
18
- <span v-else-if="item.icon" :class="[cx('itemIcon'), item.icon]" v-bind="getPTOptions('itemIcon')" />
19
- <span :class="cx('itemLabel')" v-bind="getPTOptions('itemLabel')">{{ label() }}</span>
19
+ <span v-else-if="item.icon" :class="[cx('itemIcon'), item.icon]" :data-p="dataP" v-bind="getPTOptions('itemIcon')" />
20
+ <span :class="cx('itemLabel')" :data-p="dataP" v-bind="getPTOptions('itemLabel')">{{ label() }}</span>
20
21
  </a>
21
22
  </template>
22
23
  <component v-else-if="templates.item" :is="templates.item" :item="item" :label="label()" :props="getMenuItemProps(item)"></component>
@@ -25,6 +26,7 @@
25
26
  </template>
26
27
 
27
28
  <script>
29
+ import { cn } from '@primeuix/utils';
28
30
  import { resolve } from '@primeuix/utils/object';
29
31
  import BaseComponent from '@primevue/core/basecomponent';
30
32
  import Ripple from 'primevue/ripple';
@@ -102,6 +104,14 @@ export default {
102
104
  };
103
105
  }
104
106
  },
107
+ computed: {
108
+ dataP() {
109
+ return cn({
110
+ focus: this.isItemFocused(),
111
+ disabled: this.disabled()
112
+ });
113
+ }
114
+ },
105
115
  directives: {
106
116
  ripple: Ripple
107
117
  }
package/menu/index.d.ts CHANGED
@@ -294,7 +294,7 @@ export interface MenuSlots {
294
294
  class: any;
295
295
  }): VNode[];
296
296
  /**
297
- * @deprecated since v4.0. Use submenuitem slot instead.
297
+ * @deprecated since v4.0. Use submenulabel slot instead.
298
298
  * Custom submenu header template.
299
299
  * @param {Object} scope - submenuheader slot's params.
300
300
  */
@@ -304,16 +304,6 @@ export interface MenuSlots {
304
304
  */
305
305
  item: MenuItem;
306
306
  }): VNode[];
307
- /**
308
- * Custom submenu item template.
309
- * @param {Object} scope - submenuitem slot's params.
310
- */
311
- submenuitem(scope: {
312
- /**
313
- * Menuitem instance
314
- */
315
- item: MenuItem;
316
- }): VNode[];
317
307
  }
318
308
 
319
309
  /**
@@ -348,10 +338,11 @@ export interface MenuMethods {
348
338
  /**
349
339
  * Toggles the visibility of the overlay.
350
340
  * @param {Event} event - Browser event.
341
+ * @param {*} [target] - Target element
351
342
  *
352
343
  * @memberof Menu
353
344
  */
354
- toggle(event: Event): void;
345
+ toggle(event: Event, target?: any): void;
355
346
  /**
356
347
  * Shows the overlay.
357
348
  * @param {Event} event - Browser event.
package/menu/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { cn } from '@primeuix/utils';
1
2
  import { isTouchDevice, absolutePosition, getOuterWidth, addStyle, focus, find, findSingle } from '@primeuix/utils/dom';
2
3
  import { ZIndex } from '@primeuix/utils/zindex';
3
4
  import { ConnectedOverlayScrollHandler } from '@primevue/core/utils';
@@ -128,13 +129,24 @@ var script$1 = {
128
129
  };
129
130
  }
130
131
  },
132
+ computed: {
133
+ dataP: function dataP() {
134
+ return cn({
135
+ focus: this.isItemFocused(),
136
+ disabled: this.disabled()
137
+ });
138
+ }
139
+ },
131
140
  directives: {
132
141
  ripple: Ripple
133
142
  }
134
143
  };
135
144
 
136
- var _hoisted_1$1 = ["id", "aria-label", "aria-disabled", "data-p-focused", "data-p-disabled"];
137
- var _hoisted_2$1 = ["href", "target"];
145
+ var _hoisted_1$1 = ["id", "aria-label", "aria-disabled", "data-p-focused", "data-p-disabled", "data-p"];
146
+ var _hoisted_2$1 = ["data-p"];
147
+ var _hoisted_3$1 = ["href", "target"];
148
+ var _hoisted_4 = ["data-p"];
149
+ var _hoisted_5 = ["data-p"];
138
150
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
139
151
  var _directive_ripple = resolveDirective("ripple");
140
152
  return $options.visible() ? (openBlock(), createElementBlock("li", mergeProps({
@@ -144,18 +156,19 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
144
156
  role: "menuitem",
145
157
  style: $props.item.style,
146
158
  "aria-label": $options.label(),
147
- "aria-disabled": $options.disabled()
148
- }, $options.getPTOptions('item'), {
159
+ "aria-disabled": $options.disabled(),
149
160
  "data-p-focused": $options.isItemFocused(),
150
- "data-p-disabled": $options.disabled() || false
151
- }), [createElementVNode("div", mergeProps({
161
+ "data-p-disabled": $options.disabled() || false,
162
+ "data-p": $options.dataP
163
+ }, $options.getPTOptions('item')), [createElementVNode("div", mergeProps({
152
164
  "class": _ctx.cx('itemContent'),
153
165
  onClick: _cache[0] || (_cache[0] = function ($event) {
154
166
  return $options.onItemClick($event);
155
167
  }),
156
168
  onMousemove: _cache[1] || (_cache[1] = function ($event) {
157
169
  return $options.onItemMouseMove($event);
158
- })
170
+ }),
171
+ "data-p": $options.dataP
159
172
  }, $options.getPTOptions('itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock("a", mergeProps({
160
173
  key: 0,
161
174
  href: $props.item.url,
@@ -168,15 +181,17 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
168
181
  "class": normalizeClass(_ctx.cx('itemIcon'))
169
182
  }, null, 8, ["item", "class"])) : $props.item.icon ? (openBlock(), createElementBlock("span", mergeProps({
170
183
  key: 1,
171
- "class": [_ctx.cx('itemIcon'), $props.item.icon]
172
- }, $options.getPTOptions('itemIcon')), null, 16)) : createCommentVNode("", true), createElementVNode("span", mergeProps({
173
- "class": _ctx.cx('itemLabel')
174
- }, $options.getPTOptions('itemLabel')), toDisplayString($options.label()), 17)], 16, _hoisted_2$1)), [[_directive_ripple]]) : $props.templates.item ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {
184
+ "class": [_ctx.cx('itemIcon'), $props.item.icon],
185
+ "data-p": $options.dataP
186
+ }, $options.getPTOptions('itemIcon')), null, 16, _hoisted_4)) : createCommentVNode("", true), createElementVNode("span", mergeProps({
187
+ "class": _ctx.cx('itemLabel'),
188
+ "data-p": $options.dataP
189
+ }, $options.getPTOptions('itemLabel')), toDisplayString($options.label()), 17, _hoisted_5)], 16, _hoisted_3$1)), [[_directive_ripple]]) : $props.templates.item ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {
175
190
  key: 1,
176
191
  item: $props.item,
177
192
  label: $options.label(),
178
193
  props: $options.getMenuItemProps($props.item)
179
- }, null, 8, ["item", "label", "props"])) : createCommentVNode("", true)], 16)], 16, _hoisted_1$1)) : createCommentVNode("", true);
194
+ }, null, 8, ["item", "label", "props"])) : createCommentVNode("", true)], 16, _hoisted_2$1)], 16, _hoisted_1$1)) : createCommentVNode("", true);
180
195
  }
181
196
 
182
197
  script$1.render = render$1;
@@ -338,12 +353,12 @@ var script = {
338
353
  var order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;
339
354
  order > -1 && (this.focusedOptionIndex = links[order].getAttribute('id'));
340
355
  },
341
- toggle: function toggle(event) {
342
- if (this.overlayVisible) this.hide();else this.show(event);
356
+ toggle: function toggle(event, target) {
357
+ if (this.overlayVisible) this.hide();else this.show(event, target);
343
358
  },
344
- show: function show(event) {
359
+ show: function show(event, target) {
345
360
  this.overlayVisible = true;
346
- this.target = event.currentTarget;
361
+ this.target = target !== null && target !== void 0 ? target : event.currentTarget;
347
362
  },
348
363
  hide: function hide() {
349
364
  this.overlayVisible = false;
@@ -352,8 +367,7 @@ var script = {
352
367
  onEnter: function onEnter(el) {
353
368
  addStyle(el, {
354
369
  position: 'absolute',
355
- top: '0',
356
- left: '0'
370
+ top: '0'
357
371
  });
358
372
  this.alignOverlay();
359
373
  this.bindOutsideClickListener();
@@ -464,6 +478,11 @@ var script = {
464
478
  computed: {
465
479
  focusedOptionId: function focusedOptionId() {
466
480
  return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;
481
+ },
482
+ dataP: function dataP() {
483
+ return cn({
484
+ popup: this.popup
485
+ });
467
486
  }
468
487
  },
469
488
  components: {
@@ -472,7 +491,7 @@ var script = {
472
491
  }
473
492
  };
474
493
 
475
- var _hoisted_1 = ["id"];
494
+ var _hoisted_1 = ["id", "data-p"];
476
495
  var _hoisted_2 = ["id", "tabindex", "aria-activedescendant", "aria-label", "aria-labelledby"];
477
496
  var _hoisted_3 = ["id"];
478
497
  function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -497,7 +516,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
497
516
  "class": _ctx.cx('root'),
498
517
  onClick: _cache[3] || (_cache[3] = function () {
499
518
  return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);
500
- })
519
+ }),
520
+ "data-p": $options.dataP
501
521
  }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock("div", mergeProps({
502
522
  key: 0,
503
523
  "class": _ctx.cx('start')
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/menu/BaseMenu.vue","../../src/menu/Menuitem.vue","../../src/menu/Menuitem.vue?vue&type=template&id=e64d2dd2&lang.js","../../src/menu/Menu.vue","../../src/menu/Menu.vue?vue&type=template&id=16dc8f9f&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenuStyle from 'primevue/menu/style';\n\nexport default {\n name: 'BaseMenu',\n extends: BaseComponent,\n props: {\n popup: {\n type: Boolean,\n default: false\n },\n model: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: MenuStyle,\n provide() {\n return {\n $pcMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <li\n v-if=\"visible()\"\n :id=\"id\"\n :class=\"[cx('item'), item.class]\"\n role=\"menuitem\"\n :style=\"item.style\"\n :aria-label=\"label()\"\n :aria-disabled=\"disabled()\"\n v-bind=\"getPTOptions('item')\"\n :data-p-focused=\"isItemFocused()\"\n :data-p-disabled=\"disabled() || false\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event)\" @mousemove=\"onItemMouseMove($event)\" v-bind=\"getPTOptions('itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" tabindex=\"-1\" v-bind=\"getPTOptions('itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" v-bind=\"getPTOptions('itemIcon')\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel')\">{{ label() }}</span>\n </a>\n </template>\n <component v-else-if=\"templates.item\" :is=\"templates.item\" :item=\"item\" :label=\"label()\" :props=\"getMenuItemProps(item)\"></component>\n </div>\n </li>\n</template>\n\n<script>\nimport { resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'Menuitem',\n hostName: 'Menu',\n extends: BaseComponent,\n inheritAttrs: false,\n emits: ['item-click', 'item-mousemove'],\n props: {\n item: null,\n templates: null,\n id: null,\n focusedOptionId: null,\n index: null\n },\n methods: {\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n item: this.item,\n index: this.index,\n focused: this.isItemFocused(),\n disabled: this.disabled()\n }\n });\n },\n isItemFocused() {\n return this.focusedOptionId === this.id;\n },\n onItemClick(event) {\n const command = this.getItemProp(this.item, 'command');\n\n command && command({ originalEvent: event, item: this.item.item });\n this.$emit('item-click', { originalEvent: event, item: this.item, id: this.id });\n },\n onItemMouseMove(event) {\n this.$emit('item-mousemove', { originalEvent: event, item: this.item, id: this.id });\n },\n visible() {\n return typeof this.item.visible === 'function' ? this.item.visible() : this.item.visible !== false;\n },\n disabled() {\n return typeof this.item.disabled === 'function' ? this.item.disabled() : this.item.disabled;\n },\n label() {\n return typeof this.item.label === 'function' ? this.item.label() : this.item.label;\n },\n getMenuItemProps(item) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: '-1'\n },\n this.getPTOptions('itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel')\n )\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <li\n v-if=\"visible()\"\n :id=\"id\"\n :class=\"[cx('item'), item.class]\"\n role=\"menuitem\"\n :style=\"item.style\"\n :aria-label=\"label()\"\n :aria-disabled=\"disabled()\"\n v-bind=\"getPTOptions('item')\"\n :data-p-focused=\"isItemFocused()\"\n :data-p-disabled=\"disabled() || false\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event)\" @mousemove=\"onItemMouseMove($event)\" v-bind=\"getPTOptions('itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" tabindex=\"-1\" v-bind=\"getPTOptions('itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" v-bind=\"getPTOptions('itemIcon')\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel')\">{{ label() }}</span>\n </a>\n </template>\n <component v-else-if=\"templates.item\" :is=\"templates.item\" :item=\"item\" :label=\"label()\" :props=\"getMenuItemProps(item)\"></component>\n </div>\n </li>\n</template>\n\n<script>\nimport { resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'Menuitem',\n hostName: 'Menu',\n extends: BaseComponent,\n inheritAttrs: false,\n emits: ['item-click', 'item-mousemove'],\n props: {\n item: null,\n templates: null,\n id: null,\n focusedOptionId: null,\n index: null\n },\n methods: {\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n item: this.item,\n index: this.index,\n focused: this.isItemFocused(),\n disabled: this.disabled()\n }\n });\n },\n isItemFocused() {\n return this.focusedOptionId === this.id;\n },\n onItemClick(event) {\n const command = this.getItemProp(this.item, 'command');\n\n command && command({ originalEvent: event, item: this.item.item });\n this.$emit('item-click', { originalEvent: event, item: this.item, id: this.id });\n },\n onItemMouseMove(event) {\n this.$emit('item-mousemove', { originalEvent: event, item: this.item, id: this.id });\n },\n visible() {\n return typeof this.item.visible === 'function' ? this.item.visible() : this.item.visible !== false;\n },\n disabled() {\n return typeof this.item.disabled === 'function' ? this.item.disabled() : this.item.disabled;\n },\n label() {\n return typeof this.item.label === 'function' ? this.item.label() : this.item.label;\n },\n getMenuItemProps(item) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: '-1'\n },\n this.getPTOptions('itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel')\n )\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"popup ? overlayVisible : true\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <ul\n :ref=\"listRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('list')\"\n role=\"menu\"\n :tabindex=\"tabindex\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(item, i) of model\" :key=\"label(item) + i.toString()\">\n <template v-if=\"item.items && visible(item) && !item.separator\">\n <li v-if=\"item.items\" :id=\"$id + '_' + i\" :class=\"[cx('submenuLabel'), item.class]\" role=\"none\" v-bind=\"ptm('submenuLabel')\">\n <!--TODO: submenuheader deprecated since v4.0. Use submenulabel-->\n <slot :name=\"$slots.submenulabel ? 'submenulabel' : 'submenuheader'\" :item=\"item\">{{ label(item) }}</slot>\n </li>\n <template v-for=\"(child, j) of item.items\" :key=\"child.label + i + '_' + j\">\n <PVMenuitem\n v-if=\"visible(child) && !child.separator\"\n :id=\"$id + '_' + i + '_' + j\"\n :item=\"child\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n <li v-else-if=\"visible(child) && child.separator\" :key=\"'separator' + i + j\" :class=\"[cx('separator'), item.class]\" :style=\"child.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n </template>\n </template>\n <li v-else-if=\"visible(item) && item.separator\" :key=\"'separator' + i.toString()\" :class=\"[cx('separator'), item.class]\" :style=\"item.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n <PVMenuitem\n v-else\n :key=\"label(item) + i.toString()\"\n :id=\"$id + '_' + i\"\n :item=\"item\"\n :index=\"i\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n </template>\n </ul>\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, find, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseMenu from './BaseMenu.vue';\nimport Menuitem from './Menuitem.vue';\n\nexport default {\n name: 'Menu',\n extends: BaseMenu,\n inheritAttrs: false,\n emits: ['show', 'hide', 'focus', 'blur'],\n data() {\n return {\n overlayVisible: false,\n focused: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: -1\n };\n },\n target: null,\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n container: null,\n list: null,\n mounted() {\n if (!this.popup) {\n this.bindResizeListener();\n this.bindOutsideClickListener();\n }\n },\n beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.target = null;\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.container = null;\n },\n methods: {\n itemClick(event) {\n const item = event.item;\n\n if (this.disabled(item)) {\n return;\n }\n\n if (item.command) {\n item.command(event);\n }\n\n if (this.overlayVisible) this.hide();\n\n if (!this.popup && this.focusedOptionIndex !== event.id) {\n this.focusedOptionIndex = event.id;\n }\n },\n itemMouseMove(event) {\n if (this.focused) {\n this.focusedOptionIndex = event.id;\n }\n },\n onListFocus(event) {\n this.focused = true;\n !this.popup && this.changeFocusedOptionIndex(0);\n\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onListKeyDown(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 this.onEnterKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Escape':\n if (this.popup) {\n focus(this.target);\n this.hide();\n }\n\n case 'Tab':\n this.overlayVisible && this.hide();\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.popup) {\n focus(this.target);\n this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(0);\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]').length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n const element = findSingle(this.list, `li[id=\"${`${this.focusedOptionIndex}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n this.popup && focus(this.target);\n anchorElement ? anchorElement.click() : element && element.click();\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n findNextOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n },\n findPrevOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n },\n changeFocusedOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n let order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;\n\n order > -1 && (this.focusedOptionIndex = links[order].getAttribute('id'));\n },\n toggle(event) {\n if (this.overlayVisible) this.hide();\n else this.show(event);\n },\n show(event) {\n this.overlayVisible = true;\n this.target = event.currentTarget;\n },\n hide() {\n this.overlayVisible = false;\n this.target = null;\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.bindOutsideClickListener();\n this.bindResizeListener();\n this.bindScrollListener();\n\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n if (this.popup) {\n focus(this.list);\n }\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.$emit('hide');\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (this.overlayVisible && isOutsideContainer && isOutsideTarget) {\n this.hide();\n } else if (!this.popup && isOutsideContainer && isOutsideTarget) {\n this.focusedOptionIndex = -1;\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n containerRef(el) {\n this.container = el;\n },\n listRef(el) {\n this.list = el;\n }\n },\n computed: {\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n }\n },\n components: {\n PVMenuitem: Menuitem,\n Portal: Portal\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"popup ? overlayVisible : true\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <ul\n :ref=\"listRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('list')\"\n role=\"menu\"\n :tabindex=\"tabindex\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(item, i) of model\" :key=\"label(item) + i.toString()\">\n <template v-if=\"item.items && visible(item) && !item.separator\">\n <li v-if=\"item.items\" :id=\"$id + '_' + i\" :class=\"[cx('submenuLabel'), item.class]\" role=\"none\" v-bind=\"ptm('submenuLabel')\">\n <!--TODO: submenuheader deprecated since v4.0. Use submenulabel-->\n <slot :name=\"$slots.submenulabel ? 'submenulabel' : 'submenuheader'\" :item=\"item\">{{ label(item) }}</slot>\n </li>\n <template v-for=\"(child, j) of item.items\" :key=\"child.label + i + '_' + j\">\n <PVMenuitem\n v-if=\"visible(child) && !child.separator\"\n :id=\"$id + '_' + i + '_' + j\"\n :item=\"child\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n <li v-else-if=\"visible(child) && child.separator\" :key=\"'separator' + i + j\" :class=\"[cx('separator'), item.class]\" :style=\"child.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n </template>\n </template>\n <li v-else-if=\"visible(item) && item.separator\" :key=\"'separator' + i.toString()\" :class=\"[cx('separator'), item.class]\" :style=\"item.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n <PVMenuitem\n v-else\n :key=\"label(item) + i.toString()\"\n :id=\"$id + '_' + i\"\n :item=\"item\"\n :index=\"i\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n </template>\n </ul>\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, find, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseMenu from './BaseMenu.vue';\nimport Menuitem from './Menuitem.vue';\n\nexport default {\n name: 'Menu',\n extends: BaseMenu,\n inheritAttrs: false,\n emits: ['show', 'hide', 'focus', 'blur'],\n data() {\n return {\n overlayVisible: false,\n focused: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: -1\n };\n },\n target: null,\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n container: null,\n list: null,\n mounted() {\n if (!this.popup) {\n this.bindResizeListener();\n this.bindOutsideClickListener();\n }\n },\n beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.target = null;\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.container = null;\n },\n methods: {\n itemClick(event) {\n const item = event.item;\n\n if (this.disabled(item)) {\n return;\n }\n\n if (item.command) {\n item.command(event);\n }\n\n if (this.overlayVisible) this.hide();\n\n if (!this.popup && this.focusedOptionIndex !== event.id) {\n this.focusedOptionIndex = event.id;\n }\n },\n itemMouseMove(event) {\n if (this.focused) {\n this.focusedOptionIndex = event.id;\n }\n },\n onListFocus(event) {\n this.focused = true;\n !this.popup && this.changeFocusedOptionIndex(0);\n\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onListKeyDown(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 this.onEnterKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Escape':\n if (this.popup) {\n focus(this.target);\n this.hide();\n }\n\n case 'Tab':\n this.overlayVisible && this.hide();\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.popup) {\n focus(this.target);\n this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(0);\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]').length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n const element = findSingle(this.list, `li[id=\"${`${this.focusedOptionIndex}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n this.popup && focus(this.target);\n anchorElement ? anchorElement.click() : element && element.click();\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n findNextOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n },\n findPrevOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n },\n changeFocusedOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n let order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;\n\n order > -1 && (this.focusedOptionIndex = links[order].getAttribute('id'));\n },\n toggle(event) {\n if (this.overlayVisible) this.hide();\n else this.show(event);\n },\n show(event) {\n this.overlayVisible = true;\n this.target = event.currentTarget;\n },\n hide() {\n this.overlayVisible = false;\n this.target = null;\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute', top: '0', left: '0' });\n this.alignOverlay();\n this.bindOutsideClickListener();\n this.bindResizeListener();\n this.bindScrollListener();\n\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n if (this.popup) {\n focus(this.list);\n }\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.$emit('hide');\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (this.overlayVisible && isOutsideContainer && isOutsideTarget) {\n this.hide();\n } else if (!this.popup && isOutsideContainer && isOutsideTarget) {\n this.focusedOptionIndex = -1;\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n containerRef(el) {\n this.container = el;\n },\n listRef(el) {\n this.list = el;\n }\n },\n computed: {\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n }\n },\n components: {\n PVMenuitem: Menuitem,\n Portal: Portal\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","popup","type","Boolean","model","Array","appendTo","String","Object","autoZIndex","baseZIndex","Number","tabindex","ariaLabel","ariaLabelledby","style","MenuStyle","provide","$pcMenu","$parentInstance","hostName","inheritAttrs","emits","item","templates","id","focusedOptionId","index","methods","getItemProp","processedItem","resolve","undefined","getPTOptions","key","ptm","context","focused","isItemFocused","disabled","onItemClick","event","command","originalEvent","$emit","onItemMouseMove","visible","label","getMenuItemProps","action","mergeProps","cx","icon","directives","ripple","Ripple","$options","_openBlock","_createElementBlock","_mergeProps","$props","_ctx","role","_createElementVNode","onClick","_cache","$event","onMousemove","_withDirectives","href","url","target","itemicon","_createBlock","_resolveDynamicComponent","BaseMenu","data","overlayVisible","focusedOptionIndex","selectedOptionIndex","outsideClickListener","scrollHandler","resizeListener","container","list","mounted","bindResizeListener","bindOutsideClickListener","beforeUnmount","unbindResizeListener","unbindOutsideClickListener","destroy","ZIndex","clear","itemClick","hide","itemMouseMove","onListFocus","changeFocusedOptionIndex","onListBlur","onListKeyDown","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","focus","optionIndex","findNextOptionIndex","preventDefault","altKey","findPrevOptionIndex","find","length","element","findSingle","concat","anchorElement","click","links","matchedOptionIndex","_toConsumableArray","findIndex","link","order","getAttribute","toggle","show","currentTarget","onEnter","el","addStyle","position","top","left","alignOverlay","bindScrollListener","set","$primevue","config","zIndex","menu","onLeave","unbindScrollListener","onAfterLeave","absolutePosition","targetWidth","getOuterWidth","minWidth","_this","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this2","ConnectedOverlayScrollHandler","_this3","isTouchDevice","window","onOverlayClick","OverlayEventBus","emit","containerRef","listRef","computed","components","PVMenuitem","Menuitem","Portal","_component_Portal","_createVNode","_Transition","$data","ref","$id","apply","arguments","ptmi","$slots","start","_renderSlot","onFocus","onBlur","onKeydown","_Fragment","_renderList","i","toString","items","separator","submenulabel","_createTextVNode","_toDisplayString","child","j","_component_PVMenuitem","unstyled","onItemMousemove","pt","end"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/menu/BaseMenu.vue","../../src/menu/Menuitem.vue","../../src/menu/Menuitem.vue?vue&type=template&id=d15e76a4&lang.js","../../src/menu/Menu.vue","../../src/menu/Menu.vue?vue&type=template&id=1adaab2c&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenuStyle from 'primevue/menu/style';\n\nexport default {\n name: 'BaseMenu',\n extends: BaseComponent,\n props: {\n popup: {\n type: Boolean,\n default: false\n },\n model: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: MenuStyle,\n provide() {\n return {\n $pcMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <li\n v-if=\"visible()\"\n :id=\"id\"\n :class=\"[cx('item'), item.class]\"\n role=\"menuitem\"\n :style=\"item.style\"\n :aria-label=\"label()\"\n :aria-disabled=\"disabled()\"\n :data-p-focused=\"isItemFocused()\"\n :data-p-disabled=\"disabled() || false\"\n :data-p=\"dataP\"\n v-bind=\"getPTOptions('item')\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event)\" @mousemove=\"onItemMouseMove($event)\" :data-p=\"dataP\" v-bind=\"getPTOptions('itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" tabindex=\"-1\" v-bind=\"getPTOptions('itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" :data-p=\"dataP\" v-bind=\"getPTOptions('itemIcon')\" />\n <span :class=\"cx('itemLabel')\" :data-p=\"dataP\" v-bind=\"getPTOptions('itemLabel')\">{{ label() }}</span>\n </a>\n </template>\n <component v-else-if=\"templates.item\" :is=\"templates.item\" :item=\"item\" :label=\"label()\" :props=\"getMenuItemProps(item)\"></component>\n </div>\n </li>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'Menuitem',\n hostName: 'Menu',\n extends: BaseComponent,\n inheritAttrs: false,\n emits: ['item-click', 'item-mousemove'],\n props: {\n item: null,\n templates: null,\n id: null,\n focusedOptionId: null,\n index: null\n },\n methods: {\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n item: this.item,\n index: this.index,\n focused: this.isItemFocused(),\n disabled: this.disabled()\n }\n });\n },\n isItemFocused() {\n return this.focusedOptionId === this.id;\n },\n onItemClick(event) {\n const command = this.getItemProp(this.item, 'command');\n\n command && command({ originalEvent: event, item: this.item.item });\n this.$emit('item-click', { originalEvent: event, item: this.item, id: this.id });\n },\n onItemMouseMove(event) {\n this.$emit('item-mousemove', { originalEvent: event, item: this.item, id: this.id });\n },\n visible() {\n return typeof this.item.visible === 'function' ? this.item.visible() : this.item.visible !== false;\n },\n disabled() {\n return typeof this.item.disabled === 'function' ? this.item.disabled() : this.item.disabled;\n },\n label() {\n return typeof this.item.label === 'function' ? this.item.label() : this.item.label;\n },\n getMenuItemProps(item) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: '-1'\n },\n this.getPTOptions('itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel')\n )\n };\n }\n },\n computed: {\n dataP() {\n return cn({\n focus: this.isItemFocused(),\n disabled: this.disabled()\n });\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <li\n v-if=\"visible()\"\n :id=\"id\"\n :class=\"[cx('item'), item.class]\"\n role=\"menuitem\"\n :style=\"item.style\"\n :aria-label=\"label()\"\n :aria-disabled=\"disabled()\"\n :data-p-focused=\"isItemFocused()\"\n :data-p-disabled=\"disabled() || false\"\n :data-p=\"dataP\"\n v-bind=\"getPTOptions('item')\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event)\" @mousemove=\"onItemMouseMove($event)\" :data-p=\"dataP\" v-bind=\"getPTOptions('itemContent')\">\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"item.url\" :class=\"cx('itemLink')\" :target=\"item.target\" tabindex=\"-1\" v-bind=\"getPTOptions('itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"item.icon\" :class=\"[cx('itemIcon'), item.icon]\" :data-p=\"dataP\" v-bind=\"getPTOptions('itemIcon')\" />\n <span :class=\"cx('itemLabel')\" :data-p=\"dataP\" v-bind=\"getPTOptions('itemLabel')\">{{ label() }}</span>\n </a>\n </template>\n <component v-else-if=\"templates.item\" :is=\"templates.item\" :item=\"item\" :label=\"label()\" :props=\"getMenuItemProps(item)\"></component>\n </div>\n </li>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'Menuitem',\n hostName: 'Menu',\n extends: BaseComponent,\n inheritAttrs: false,\n emits: ['item-click', 'item-mousemove'],\n props: {\n item: null,\n templates: null,\n id: null,\n focusedOptionId: null,\n index: null\n },\n methods: {\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getPTOptions(key) {\n return this.ptm(key, {\n context: {\n item: this.item,\n index: this.index,\n focused: this.isItemFocused(),\n disabled: this.disabled()\n }\n });\n },\n isItemFocused() {\n return this.focusedOptionId === this.id;\n },\n onItemClick(event) {\n const command = this.getItemProp(this.item, 'command');\n\n command && command({ originalEvent: event, item: this.item.item });\n this.$emit('item-click', { originalEvent: event, item: this.item, id: this.id });\n },\n onItemMouseMove(event) {\n this.$emit('item-mousemove', { originalEvent: event, item: this.item, id: this.id });\n },\n visible() {\n return typeof this.item.visible === 'function' ? this.item.visible() : this.item.visible !== false;\n },\n disabled() {\n return typeof this.item.disabled === 'function' ? this.item.disabled() : this.item.disabled;\n },\n label() {\n return typeof this.item.label === 'function' ? this.item.label() : this.item.label;\n },\n getMenuItemProps(item) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: '-1'\n },\n this.getPTOptions('itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel')\n )\n };\n }\n },\n computed: {\n dataP() {\n return cn({\n focus: this.isItemFocused(),\n disabled: this.disabled()\n });\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"popup ? overlayVisible : true\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <ul\n :ref=\"listRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('list')\"\n role=\"menu\"\n :tabindex=\"tabindex\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(item, i) of model\" :key=\"label(item) + i.toString()\">\n <template v-if=\"item.items && visible(item) && !item.separator\">\n <li v-if=\"item.items\" :id=\"$id + '_' + i\" :class=\"[cx('submenuLabel'), item.class]\" role=\"none\" v-bind=\"ptm('submenuLabel')\">\n <!--TODO: submenuheader deprecated since v4.0. Use submenulabel-->\n <slot :name=\"$slots.submenulabel ? 'submenulabel' : 'submenuheader'\" :item=\"item\">{{ label(item) }}</slot>\n </li>\n <template v-for=\"(child, j) of item.items\" :key=\"child.label + i + '_' + j\">\n <PVMenuitem\n v-if=\"visible(child) && !child.separator\"\n :id=\"$id + '_' + i + '_' + j\"\n :item=\"child\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n <li v-else-if=\"visible(child) && child.separator\" :key=\"'separator' + i + j\" :class=\"[cx('separator'), item.class]\" :style=\"child.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n </template>\n </template>\n <li v-else-if=\"visible(item) && item.separator\" :key=\"'separator' + i.toString()\" :class=\"[cx('separator'), item.class]\" :style=\"item.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n <PVMenuitem\n v-else\n :key=\"label(item) + i.toString()\"\n :id=\"$id + '_' + i\"\n :item=\"item\"\n :index=\"i\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n </template>\n </ul>\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { absolutePosition, addStyle, find, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseMenu from './BaseMenu.vue';\nimport Menuitem from './Menuitem.vue';\n\nexport default {\n name: 'Menu',\n extends: BaseMenu,\n inheritAttrs: false,\n emits: ['show', 'hide', 'focus', 'blur'],\n data() {\n return {\n overlayVisible: false,\n focused: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: -1\n };\n },\n target: null,\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n container: null,\n list: null,\n mounted() {\n if (!this.popup) {\n this.bindResizeListener();\n this.bindOutsideClickListener();\n }\n },\n beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.target = null;\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.container = null;\n },\n methods: {\n itemClick(event) {\n const item = event.item;\n\n if (this.disabled(item)) {\n return;\n }\n\n if (item.command) {\n item.command(event);\n }\n\n if (this.overlayVisible) this.hide();\n\n if (!this.popup && this.focusedOptionIndex !== event.id) {\n this.focusedOptionIndex = event.id;\n }\n },\n itemMouseMove(event) {\n if (this.focused) {\n this.focusedOptionIndex = event.id;\n }\n },\n onListFocus(event) {\n this.focused = true;\n !this.popup && this.changeFocusedOptionIndex(0);\n\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onListKeyDown(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 this.onEnterKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Escape':\n if (this.popup) {\n focus(this.target);\n this.hide();\n }\n\n case 'Tab':\n this.overlayVisible && this.hide();\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.popup) {\n focus(this.target);\n this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(0);\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]').length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n const element = findSingle(this.list, `li[id=\"${`${this.focusedOptionIndex}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n this.popup && focus(this.target);\n anchorElement ? anchorElement.click() : element && element.click();\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n findNextOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n },\n findPrevOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n },\n changeFocusedOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n let order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;\n\n order > -1 && (this.focusedOptionIndex = links[order].getAttribute('id'));\n },\n toggle(event, target) {\n if (this.overlayVisible) this.hide();\n else this.show(event, target);\n },\n show(event, target) {\n this.overlayVisible = true;\n this.target = target ?? event.currentTarget;\n },\n hide() {\n this.overlayVisible = false;\n this.target = null;\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n this.bindOutsideClickListener();\n this.bindResizeListener();\n this.bindScrollListener();\n\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n if (this.popup) {\n focus(this.list);\n }\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.$emit('hide');\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (this.overlayVisible && isOutsideContainer && isOutsideTarget) {\n this.hide();\n } else if (!this.popup && isOutsideContainer && isOutsideTarget) {\n this.focusedOptionIndex = -1;\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n containerRef(el) {\n this.container = el;\n },\n listRef(el) {\n this.list = el;\n }\n },\n computed: {\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n },\n dataP() {\n return cn({\n popup: this.popup\n });\n }\n },\n components: {\n PVMenuitem: Menuitem,\n Portal: Portal\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"popup ? overlayVisible : true\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <ul\n :ref=\"listRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('list')\"\n role=\"menu\"\n :tabindex=\"tabindex\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(item, i) of model\" :key=\"label(item) + i.toString()\">\n <template v-if=\"item.items && visible(item) && !item.separator\">\n <li v-if=\"item.items\" :id=\"$id + '_' + i\" :class=\"[cx('submenuLabel'), item.class]\" role=\"none\" v-bind=\"ptm('submenuLabel')\">\n <!--TODO: submenuheader deprecated since v4.0. Use submenulabel-->\n <slot :name=\"$slots.submenulabel ? 'submenulabel' : 'submenuheader'\" :item=\"item\">{{ label(item) }}</slot>\n </li>\n <template v-for=\"(child, j) of item.items\" :key=\"child.label + i + '_' + j\">\n <PVMenuitem\n v-if=\"visible(child) && !child.separator\"\n :id=\"$id + '_' + i + '_' + j\"\n :item=\"child\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n <li v-else-if=\"visible(child) && child.separator\" :key=\"'separator' + i + j\" :class=\"[cx('separator'), item.class]\" :style=\"child.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n </template>\n </template>\n <li v-else-if=\"visible(item) && item.separator\" :key=\"'separator' + i.toString()\" :class=\"[cx('separator'), item.class]\" :style=\"item.style\" role=\"separator\" v-bind=\"ptm('separator')\"></li>\n <PVMenuitem\n v-else\n :key=\"label(item) + i.toString()\"\n :id=\"$id + '_' + i\"\n :item=\"item\"\n :index=\"i\"\n :templates=\"$slots\"\n :focusedOptionId=\"focusedOptionId\"\n :unstyled=\"unstyled\"\n @item-click=\"itemClick\"\n @item-mousemove=\"itemMouseMove\"\n :pt=\"pt\"\n />\n </template>\n </ul>\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { absolutePosition, addStyle, find, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseMenu from './BaseMenu.vue';\nimport Menuitem from './Menuitem.vue';\n\nexport default {\n name: 'Menu',\n extends: BaseMenu,\n inheritAttrs: false,\n emits: ['show', 'hide', 'focus', 'blur'],\n data() {\n return {\n overlayVisible: false,\n focused: false,\n focusedOptionIndex: -1,\n selectedOptionIndex: -1\n };\n },\n target: null,\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n container: null,\n list: null,\n mounted() {\n if (!this.popup) {\n this.bindResizeListener();\n this.bindOutsideClickListener();\n }\n },\n beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.target = null;\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.container = null;\n },\n methods: {\n itemClick(event) {\n const item = event.item;\n\n if (this.disabled(item)) {\n return;\n }\n\n if (item.command) {\n item.command(event);\n }\n\n if (this.overlayVisible) this.hide();\n\n if (!this.popup && this.focusedOptionIndex !== event.id) {\n this.focusedOptionIndex = event.id;\n }\n },\n itemMouseMove(event) {\n if (this.focused) {\n this.focusedOptionIndex = event.id;\n }\n },\n onListFocus(event) {\n this.focused = true;\n !this.popup && this.changeFocusedOptionIndex(0);\n\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onListKeyDown(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 this.onEnterKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Escape':\n if (this.popup) {\n focus(this.target);\n this.hide();\n }\n\n case 'Tab':\n this.overlayVisible && this.hide();\n break;\n\n default:\n break;\n }\n },\n onArrowDownKey(event) {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey && this.popup) {\n focus(this.target);\n this.hide();\n event.preventDefault();\n } else {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedOptionIndex(0);\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedOptionIndex(find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]').length - 1);\n event.preventDefault();\n },\n onEnterKey(event) {\n const element = findSingle(this.list, `li[id=\"${`${this.focusedOptionIndex}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n this.popup && focus(this.target);\n anchorElement ? anchorElement.click() : element && element.click();\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n findNextOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n },\n findPrevOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n },\n changeFocusedOptionIndex(index) {\n const links = find(this.container, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n let order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;\n\n order > -1 && (this.focusedOptionIndex = links[order].getAttribute('id'));\n },\n toggle(event, target) {\n if (this.overlayVisible) this.hide();\n else this.show(event, target);\n },\n show(event, target) {\n this.overlayVisible = true;\n this.target = target ?? event.currentTarget;\n },\n hide() {\n this.overlayVisible = false;\n this.target = null;\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n this.bindOutsideClickListener();\n this.bindResizeListener();\n this.bindScrollListener();\n\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n if (this.popup) {\n focus(this.list);\n }\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.$emit('hide');\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (this.overlayVisible && isOutsideContainer && isOutsideTarget) {\n this.hide();\n } else if (!this.popup && isOutsideContainer && isOutsideTarget) {\n this.focusedOptionIndex = -1;\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n visible(item) {\n return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n label(item) {\n return typeof item.label === 'function' ? item.label() : item.label;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n containerRef(el) {\n this.container = el;\n },\n listRef(el) {\n this.list = el;\n }\n },\n computed: {\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n },\n dataP() {\n return cn({\n popup: this.popup\n });\n }\n },\n components: {\n PVMenuitem: Menuitem,\n Portal: Portal\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","popup","type","Boolean","model","Array","appendTo","String","Object","autoZIndex","baseZIndex","Number","tabindex","ariaLabel","ariaLabelledby","style","MenuStyle","provide","$pcMenu","$parentInstance","hostName","inheritAttrs","emits","item","templates","id","focusedOptionId","index","methods","getItemProp","processedItem","resolve","undefined","getPTOptions","key","ptm","context","focused","isItemFocused","disabled","onItemClick","event","command","originalEvent","$emit","onItemMouseMove","visible","label","getMenuItemProps","action","mergeProps","cx","icon","computed","dataP","cn","focus","directives","ripple","Ripple","$options","_openBlock","_createElementBlock","_mergeProps","$props","_ctx","role","_createElementVNode","onClick","_cache","$event","onMousemove","_withDirectives","href","url","target","itemicon","_createBlock","_resolveDynamicComponent","_hoisted_4","_hoisted_5","BaseMenu","data","overlayVisible","focusedOptionIndex","selectedOptionIndex","outsideClickListener","scrollHandler","resizeListener","container","list","mounted","bindResizeListener","bindOutsideClickListener","beforeUnmount","unbindResizeListener","unbindOutsideClickListener","destroy","ZIndex","clear","itemClick","hide","itemMouseMove","onListFocus","changeFocusedOptionIndex","onListBlur","onListKeyDown","code","onArrowDownKey","onArrowUpKey","onHomeKey","onEndKey","onEnterKey","onSpaceKey","optionIndex","findNextOptionIndex","preventDefault","altKey","findPrevOptionIndex","find","length","element","findSingle","concat","anchorElement","click","links","matchedOptionIndex","_toConsumableArray","findIndex","link","order","getAttribute","toggle","show","currentTarget","onEnter","el","addStyle","position","top","alignOverlay","bindScrollListener","set","$primevue","config","zIndex","menu","onLeave","unbindScrollListener","onAfterLeave","absolutePosition","targetWidth","getOuterWidth","minWidth","_this","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this2","ConnectedOverlayScrollHandler","_this3","isTouchDevice","window","onOverlayClick","OverlayEventBus","emit","containerRef","listRef","components","PVMenuitem","Menuitem","Portal","_component_Portal","_createVNode","_Transition","$data","ref","$id","apply","arguments","ptmi","$slots","start","_renderSlot","onFocus","onBlur","onKeydown","_Fragment","_renderList","i","toString","items","separator","submenulabel","_createTextVNode","_toDisplayString","child","j","_component_PVMenuitem","unstyled","onItemMousemove","pt","end"],"mappings":"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"}