primevue 3.30.1 → 3.30.2

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 (152) hide show
  1. package/basecomponent/BaseComponent.vue +1 -1
  2. package/basecomponent/basecomponent.cjs.js +1 -1
  3. package/basecomponent/basecomponent.cjs.min.js +1 -1
  4. package/basecomponent/basecomponent.esm.js +1 -1
  5. package/basecomponent/basecomponent.esm.min.js +1 -1
  6. package/basecomponent/basecomponent.js +1 -1
  7. package/basecomponent/basecomponent.min.js +1 -1
  8. package/basedirective/basedirective.cjs.js +1 -1
  9. package/basedirective/basedirective.cjs.min.js +1 -1
  10. package/basedirective/basedirective.esm.js +1 -1
  11. package/basedirective/basedirective.esm.min.js +1 -1
  12. package/basedirective/basedirective.js +1 -1
  13. package/basedirective/basedirective.min.js +1 -1
  14. package/column/Column.d.ts +48 -0
  15. package/columngroup/ColumnGroup.d.ts +5 -0
  16. package/core/core.js +19 -13
  17. package/core/core.min.js +5 -5
  18. package/datatable/BaseDataTable.vue +7 -1
  19. package/datatable/BodyCell.vue +5 -3
  20. package/datatable/ColumnFilter.vue +43 -8
  21. package/datatable/DataTable.d.ts +30 -0
  22. package/datatable/FooterCell.vue +3 -1
  23. package/datatable/HeaderCell.vue +6 -2
  24. package/datatable/HeaderCheckbox.vue +5 -2
  25. package/datatable/RowCheckbox.vue +5 -2
  26. package/datatable/RowRadioButton.vue +5 -2
  27. package/datatable/TableBody.vue +33 -13
  28. package/datatable/TableFooter.vue +10 -2
  29. package/datatable/TableHeader.vue +12 -2
  30. package/datatable/datatable.cjs.js +149 -43
  31. package/datatable/datatable.cjs.min.js +1 -1
  32. package/datatable/datatable.esm.js +149 -43
  33. package/datatable/datatable.esm.min.js +1 -1
  34. package/datatable/datatable.js +150 -44
  35. package/datatable/datatable.min.js +1 -1
  36. package/dialog/Dialog.vue +13 -1
  37. package/dialog/dialog.cjs.js +6 -2
  38. package/dialog/dialog.cjs.min.js +1 -1
  39. package/dialog/dialog.esm.js +6 -2
  40. package/dialog/dialog.esm.min.js +1 -1
  41. package/dialog/dialog.js +6 -2
  42. package/dialog/dialog.min.js +1 -1
  43. package/dock/Dock.d.ts +4 -0
  44. package/dock/DockSub.vue +9 -8
  45. package/dock/dock.cjs.js +9 -8
  46. package/dock/dock.cjs.min.js +1 -1
  47. package/dock/dock.esm.js +9 -8
  48. package/dock/dock.esm.min.js +1 -1
  49. package/dock/dock.js +9 -8
  50. package/dock/dock.min.js +1 -1
  51. package/galleria/Galleria.d.ts +4 -0
  52. package/galleria/GalleriaContent.vue +16 -6
  53. package/galleria/GalleriaItem.vue +2 -1
  54. package/galleria/GalleriaThumbnails.vue +1 -0
  55. package/galleria/galleria.cjs.js +34 -17
  56. package/galleria/galleria.cjs.min.js +1 -1
  57. package/galleria/galleria.esm.js +35 -18
  58. package/galleria/galleria.esm.min.js +1 -1
  59. package/galleria/galleria.js +34 -17
  60. package/galleria/galleria.min.js +1 -1
  61. package/message/BaseMessage.vue +2 -2
  62. package/message/Message.d.ts +10 -0
  63. package/message/Message.vue +3 -3
  64. package/message/message.cjs.js +8 -8
  65. package/message/message.cjs.min.js +1 -1
  66. package/message/message.esm.js +8 -8
  67. package/message/message.esm.min.js +1 -1
  68. package/message/message.js +8 -8
  69. package/message/message.min.js +1 -1
  70. package/multiselect/MultiSelect.vue +2 -1
  71. package/multiselect/multiselect.cjs.js +4 -4
  72. package/multiselect/multiselect.cjs.min.js +1 -1
  73. package/multiselect/multiselect.esm.js +5 -5
  74. package/multiselect/multiselect.esm.min.js +1 -1
  75. package/multiselect/multiselect.js +4 -4
  76. package/multiselect/multiselect.min.js +1 -1
  77. package/overlaypanel/OverlayPanel.vue +4 -2
  78. package/overlaypanel/overlaypanel.cjs.js +4 -2
  79. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  80. package/overlaypanel/overlaypanel.esm.js +4 -2
  81. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  82. package/overlaypanel/overlaypanel.js +4 -2
  83. package/overlaypanel/overlaypanel.min.js +1 -1
  84. package/package.json +1 -1
  85. package/scrollpanel/ScrollPanel.vue +2 -0
  86. package/scrollpanel/scrollpanel.cjs.js +6 -2
  87. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  88. package/scrollpanel/scrollpanel.esm.js +6 -2
  89. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  90. package/scrollpanel/scrollpanel.js +6 -2
  91. package/scrollpanel/scrollpanel.min.js +1 -1
  92. package/sidebar/Sidebar.vue +1 -1
  93. package/sidebar/sidebar.cjs.js +3 -1
  94. package/sidebar/sidebar.cjs.min.js +1 -1
  95. package/sidebar/sidebar.esm.js +3 -1
  96. package/sidebar/sidebar.esm.min.js +1 -1
  97. package/sidebar/sidebar.js +3 -1
  98. package/sidebar/sidebar.min.js +1 -1
  99. package/splitbutton/SplitButton.vue +2 -1
  100. package/splitbutton/splitbutton.cjs.js +4 -2
  101. package/splitbutton/splitbutton.cjs.min.js +1 -1
  102. package/splitbutton/splitbutton.esm.js +4 -2
  103. package/splitbutton/splitbutton.esm.min.js +1 -1
  104. package/splitbutton/splitbutton.js +4 -2
  105. package/splitbutton/splitbutton.min.js +1 -1
  106. package/tabmenu/TabMenu.vue +71 -72
  107. package/tabmenu/tabmenu.cjs.js +67 -75
  108. package/tabmenu/tabmenu.cjs.min.js +1 -1
  109. package/tabmenu/tabmenu.esm.js +67 -75
  110. package/tabmenu/tabmenu.esm.min.js +1 -1
  111. package/tabmenu/tabmenu.js +67 -75
  112. package/tabmenu/tabmenu.min.js +1 -1
  113. package/tabview/TabView.vue +2 -0
  114. package/tabview/tabview.cjs.js +6 -2
  115. package/tabview/tabview.cjs.min.js +1 -1
  116. package/tabview/tabview.esm.js +6 -2
  117. package/tabview/tabview.esm.min.js +1 -1
  118. package/tabview/tabview.js +6 -2
  119. package/tabview/tabview.min.js +1 -1
  120. package/toast/BaseToast.vue +2 -2
  121. package/toast/Toast.d.ts +10 -0
  122. package/toast/ToastMessage.vue +3 -2
  123. package/toast/toast.cjs.js +7 -6
  124. package/toast/toast.cjs.min.js +1 -1
  125. package/toast/toast.esm.js +7 -6
  126. package/toast/toast.esm.min.js +1 -1
  127. package/toast/toast.js +7 -6
  128. package/toast/toast.min.js +1 -1
  129. package/tree/Tree.d.ts +9 -0
  130. package/tree/TreeNode.vue +3 -1
  131. package/tree/tree.cjs.js +3 -1
  132. package/tree/tree.cjs.min.js +1 -1
  133. package/tree/tree.esm.js +3 -1
  134. package/tree/tree.esm.min.js +1 -1
  135. package/tree/tree.js +3 -1
  136. package/tree/tree.min.js +1 -1
  137. package/treetable/BaseTreeTable.vue +7 -1
  138. package/treetable/BodyCell.vue +14 -4
  139. package/treetable/FooterCell.vue +3 -1
  140. package/treetable/HeaderCell.vue +9 -2
  141. package/treetable/TreeTable.d.ts +30 -8
  142. package/treetable/TreeTable.vue +9 -2
  143. package/treetable/TreeTableRow.vue +10 -1
  144. package/treetable/treetable.cjs.js +58 -13
  145. package/treetable/treetable.cjs.min.js +1 -1
  146. package/treetable/treetable.esm.js +59 -14
  147. package/treetable/treetable.esm.min.js +1 -1
  148. package/treetable/treetable.js +58 -13
  149. package/treetable/treetable.min.js +1 -1
  150. package/vetur-attributes.json +8 -0
  151. package/vetur-tags.json +2 -0
  152. package/web-types.json +21 -1
@@ -1 +1 @@
1
- this.primevue=this.primevue||{},this.primevue.splitbutton=function(t,n,e,o,u,l,r){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=i(t),s=i(n),p=i(e),d=i(u);function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function b(t,n,e){return(n=m(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function m(t){var n=f(t,"string");return"symbol"===c(n)?n:String(n)}function f(t,n){if("object"!==c(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var o=e.call(t,n||"default");if("object"!==c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}var y={root:function(t){var n,e=t.props;return["p-splitbutton p-component",(n={},b(n,"p-button-".concat(e.severity),e.severity),b(n,"p-button-raised",e.raised),b(n,"p-button-rounded",e.rounded),b(n,"p-button-text",e.text),b(n,"p-button-outlined",e.outlined),b(n,"p-button-sm","small"===e.size),b(n,"p-button-lg","large"===e.size),n)]},button:"p-splitbutton-defaultbutton",menuButton:"p-splitbutton-menubutton"},v=l.useStyle("\n.p-splitbutton {\n display: inline-flex;\n position: relative;\n}\n\n.p-splitbutton .p-splitbutton-defaultbutton,\n.p-splitbutton.p-button-rounded > .p-splitbutton-defaultbutton.p-button,\n.p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button {\n flex: 1 1 auto;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 0 none;\n}\n\n.p-splitbutton-menubutton,\n.p-splitbutton.p-button-rounded > .p-splitbutton-menubutton.p-button,\n.p-splitbutton.p-button-outlined > .p-splitbutton-menubutton.p-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.p-splitbutton .p-menu {\n min-width: 100%;\n}\n\n.p-fluid .p-splitbutton {\n display: flex;\n}\n",{name:"splitbutton",manual:!0}),h={name:"SplitButton",extends:{name:"BaseSplitButton",extends:d.default,props:{label:{type:String,default:null},icon:{type:String,default:null},model:{type:Array,default:null},autoZIndex:{type:Boolean,default:!0},baseZIndex:{type:Number,default:0},appendTo:{type:String,default:"body"},disabled:{type:Boolean,default:!1},class:{type:null,default:null},style:{type:null,default:null},buttonProps:{type:null,default:null},menuButtonProps:{type:null,default:null},menuButtonIcon:{type:String,default:void 0},severity:{type:String,default:null},raised:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},text:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},size:{type:String,default:null},plain:{type:Boolean,default:!1}},css:{classes:y,loadStyle:v.load},provide:function(){return{$parentInstance:this}}},emits:["click"],data:function(){return{isExpanded:!1}},mounted:function(){var t=this;this.$watch("$refs.menu.visible",(function(n){t.isExpanded=n}))},methods:{onDropdownButtonClick:function(){this.$refs.menu.toggle({currentTarget:this.$el,relatedTarget:this.$refs.button.$el}),this.isExpanded=this.$refs.menu.visible},onDropdownKeydown:function(t){"ArrowDown"!==t.code&&"ArrowUp"!==t.code||(this.onDropdownButtonClick(),t.preventDefault())},onDefaultButtonClick:function(t){this.isExpanded&&this.$refs.menu.hide(t),this.$emit("click",t)}},computed:{ariaId:function(){return o.UniqueComponentId()},containerClass:function(){return[this.cx("root"),this.class]}},components:{PVSButton:a.default,PVSMenu:p.default,ChevronDownIcon:s.default}},B=["data-pc-severity"];return h.render=function(t,n,e,o,u,l){var i=r.resolveComponent("PVSButton"),a=r.resolveComponent("PVSMenu");return r.openBlock(),r.createElementBlock("div",r.mergeProps({class:l.containerClass,style:t.style},t.ptm("root"),{"data-pc-name":"splitbutton","data-pc-severity":t.severity}),[r.renderSlot(t.$slots,"default",{},(function(){return[r.createVNode(i,r.mergeProps({type:"button",class:t.cx("button"),label:t.label,disabled:t.disabled,"aria-label":t.label,onClick:l.onDefaultButtonClick,pt:t.ptm("button")},t.buttonProps,{unstyled:t.unstyled}),r.createSlots({_:2},[t.icon?{name:"icon",fn:r.withCtx((function(n){return[r.renderSlot(t.$slots,"icon",{class:r.normalizeClass(n.class)},(function(){return[r.createElementVNode("span",r.mergeProps({class:[t.icon,n.class]},t.ptm("button").icon),null,16)]}))]})),key:"0"}:void 0]),1040,["class","label","disabled","aria-label","onClick","pt","unstyled"])]})),r.createVNode(i,r.mergeProps({ref:"button",type:"button",class:t.cx("menuButton"),disabled:t.disabled,"aria-haspopup":"true","aria-expanded":u.isExpanded,"aria-controls":l.ariaId+"_overlay",onClick:l.onDropdownButtonClick,onKeydown:l.onDropdownKeydown,pt:t.ptm("menuButton")},t.menuButtonProps,{unstyled:t.unstyled}),{icon:r.withCtx((function(n){return[r.renderSlot(t.$slots,"menubuttonicon",{class:r.normalizeClass(n.class)},(function(){return[(r.openBlock(),r.createBlock(r.resolveDynamicComponent(t.menuButtonIcon?"span":"ChevronDownIcon"),r.mergeProps({class:[t.menuButtonIcon,n.class]},t.ptm("menuButton").icon),null,16,["class"]))]}))]})),_:3},16,["class","disabled","aria-expanded","aria-controls","onClick","onKeydown","pt","unstyled"]),r.createVNode(a,{ref:"menu",id:l.ariaId+"_overlay",model:t.model,popup:!0,autoZIndex:t.autoZIndex,baseZIndex:t.baseZIndex,appendTo:t.appendTo,unstyled:t.unstyled,pt:t.ptm("menu")},null,8,["id","model","autoZIndex","baseZIndex","appendTo","unstyled","pt"])],16,B)},h}(primevue.button,primevue.icons.chevrondown,primevue.tieredmenu,primevue.utils,primevue.basecomponent,primevue.usestyle,Vue);
1
+ this.primevue=this.primevue||{},this.primevue.splitbutton=function(t,n,e,o,u,l,r){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=i(t),s=i(n),p=i(e),d=i(u);function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function b(t,n,e){return(n=m(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function m(t){var n=f(t,"string");return"symbol"===c(n)?n:String(n)}function f(t,n){if("object"!==c(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var o=e.call(t,n||"default");if("object"!==c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}var y={root:function(t){var n,e=t.props;return["p-splitbutton p-component",(n={},b(n,"p-button-".concat(e.severity),e.severity),b(n,"p-button-raised",e.raised),b(n,"p-button-rounded",e.rounded),b(n,"p-button-text",e.text),b(n,"p-button-outlined",e.outlined),b(n,"p-button-sm","small"===e.size),b(n,"p-button-lg","large"===e.size),n)]},button:"p-splitbutton-defaultbutton",menuButton:"p-splitbutton-menubutton"},v=l.useStyle("\n.p-splitbutton {\n display: inline-flex;\n position: relative;\n}\n\n.p-splitbutton .p-splitbutton-defaultbutton,\n.p-splitbutton.p-button-rounded > .p-splitbutton-defaultbutton.p-button,\n.p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button {\n flex: 1 1 auto;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 0 none;\n}\n\n.p-splitbutton-menubutton,\n.p-splitbutton.p-button-rounded > .p-splitbutton-menubutton.p-button,\n.p-splitbutton.p-button-outlined > .p-splitbutton-menubutton.p-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.p-splitbutton .p-menu {\n min-width: 100%;\n}\n\n.p-fluid .p-splitbutton {\n display: flex;\n}\n",{name:"splitbutton",manual:!0}),h={name:"SplitButton",extends:{name:"BaseSplitButton",extends:d.default,props:{label:{type:String,default:null},icon:{type:String,default:null},model:{type:Array,default:null},autoZIndex:{type:Boolean,default:!0},baseZIndex:{type:Number,default:0},appendTo:{type:String,default:"body"},disabled:{type:Boolean,default:!1},class:{type:null,default:null},style:{type:null,default:null},buttonProps:{type:null,default:null},menuButtonProps:{type:null,default:null},menuButtonIcon:{type:String,default:void 0},severity:{type:String,default:null},raised:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},text:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},size:{type:String,default:null},plain:{type:Boolean,default:!1}},css:{classes:y,loadStyle:v.load},provide:function(){return{$parentInstance:this}}},emits:["click"],data:function(){return{isExpanded:!1}},mounted:function(){var t=this;this.$watch("$refs.menu.visible",(function(n){t.isExpanded=n}))},methods:{onDropdownButtonClick:function(){this.$refs.menu.toggle({currentTarget:this.$el,relatedTarget:this.$refs.button.$el}),this.isExpanded=this.$refs.menu.visible},onDropdownKeydown:function(t){"ArrowDown"!==t.code&&"ArrowUp"!==t.code||(this.onDropdownButtonClick(),t.preventDefault())},onDefaultButtonClick:function(t){this.isExpanded&&this.$refs.menu.hide(t),this.$emit("click",t)}},computed:{ariaId:function(){return o.UniqueComponentId()},containerClass:function(){return[this.cx("root"),this.class]}},components:{PVSButton:a.default,PVSMenu:p.default,ChevronDownIcon:s.default}},B=["data-pc-severity"];return h.render=function(t,n,e,o,u,l){var i=r.resolveComponent("PVSButton"),a=r.resolveComponent("PVSMenu");return r.openBlock(),r.createElementBlock("div",r.mergeProps({class:l.containerClass,style:t.style},t.ptm("root"),{"data-pc-name":"splitbutton","data-pc-severity":t.severity}),[r.renderSlot(t.$slots,"default",{},(function(){return[r.createVNode(i,r.mergeProps({type:"button",class:t.cx("button"),label:t.label,disabled:t.disabled,"aria-label":t.label,onClick:l.onDefaultButtonClick,pt:t.ptm("button")},t.buttonProps,{unstyled:t.unstyled,"data-pc-section":"button"}),r.createSlots({_:2},[t.icon?{name:"icon",fn:r.withCtx((function(n){return[r.renderSlot(t.$slots,"icon",{class:r.normalizeClass(n.class)},(function(){return[r.createElementVNode("span",r.mergeProps({class:[t.icon,n.class]},t.ptm("button").icon),null,16)]}))]})),key:"0"}:void 0]),1040,["class","label","disabled","aria-label","onClick","pt","unstyled"])]})),r.createVNode(i,r.mergeProps({ref:"button",type:"button",class:t.cx("menuButton"),disabled:t.disabled,"aria-haspopup":"true","aria-expanded":u.isExpanded,"aria-controls":l.ariaId+"_overlay",onClick:l.onDropdownButtonClick,onKeydown:l.onDropdownKeydown,pt:t.ptm("menuButton")},t.menuButtonProps,{unstyled:t.unstyled,"data-pc-section":"menubutton"}),{icon:r.withCtx((function(n){return[r.renderSlot(t.$slots,"menubuttonicon",{class:r.normalizeClass(n.class)},(function(){return[(r.openBlock(),r.createBlock(r.resolveDynamicComponent(t.menuButtonIcon?"span":"ChevronDownIcon"),r.mergeProps({class:[t.menuButtonIcon,n.class]},t.ptm("menuButton").icon),null,16,["class"]))]}))]})),_:3},16,["class","disabled","aria-expanded","aria-controls","onClick","onKeydown","pt","unstyled"]),r.createVNode(a,{ref:"menu",id:l.ariaId+"_overlay",model:t.model,popup:!0,autoZIndex:t.autoZIndex,baseZIndex:t.baseZIndex,appendTo:t.appendTo,unstyled:t.unstyled,pt:t.ptm("menu")},null,8,["id","model","autoZIndex","baseZIndex","appendTo","unstyled","pt"])],16,B)},h}(primevue.button,primevue.icons.chevrondown,primevue.tieredmenu,primevue.utils,primevue.basecomponent,primevue.usestyle,Vue);
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div :class="cx('root')" v-bind="ptm('root')" data-pc-name="tabmenu">
3
3
  <ul ref="nav" :class="cx('menu')" role="menubar" :aria-labelledby="ariaLabelledby" :aria-label="ariaLabel" v-bind="ptm('menu')">
4
- <template v-for="(item, i) of focusableItems" :key="label(item) + '_' + i.toString()">
4
+ <template v-for="(item, i) of model" :key="label(item) + '_' + i.toString()">
5
5
  <router-link v-if="item.to && !disabled(item)" v-slot="{ navigate, href, isActive, isExactActive }" :to="item.to" custom>
6
6
  <li
7
7
  v-if="visible(item)"
@@ -22,9 +22,9 @@
22
22
  :class="cx('action')"
23
23
  :aria-label="label(item)"
24
24
  :aria-disabled="disabled(item)"
25
- :tabindex="isExactActive ? '0' : '-1'"
25
+ :tabindex="-1"
26
26
  @click="onItemClick($event, item, i, navigate)"
27
- @keydown="onKeydownItem($event, i, navigate)"
27
+ @keydown="onKeydownItem($event, item, i, navigate)"
28
28
  v-bind="getPTOptions('action', i)"
29
29
  >
30
30
  <component v-if="$slots.itemicon" :is="$slots.itemicon" :item="item" :class="[cx('icon'), item.icon]" />
@@ -41,13 +41,13 @@
41
41
  :class="[cx('menuitem', { item, index: i }), item.class]"
42
42
  role="presentation"
43
43
  @click="onItemClick($event, item, i)"
44
- @keydown="onKeydownItem($event, i)"
44
+ @keydown="onKeydownItem($event, item, i)"
45
45
  v-bind="getPTOptions('menuitem', i)"
46
46
  :data-p-highlight="d_activeIndex === i"
47
47
  :data-p-disabled="disabled(item)"
48
48
  >
49
49
  <template v-if="!$slots.item">
50
- <a ref="tabLink" v-ripple role="menuitem" :href="item.url" :class="cx('action')" :target="item.target" :aria-label="label(item)" :aria-disabled="disabled(item)" :tabindex="setTabIndex(i)" v-bind="getPTOptions('action', i)">
50
+ <a ref="tabLink" v-ripple role="menuitem" :href="item.url" :class="cx('action')" :target="item.target" :aria-label="label(item)" :aria-disabled="disabled(item)" :tabindex="-1" v-bind="getPTOptions('action', i)">
51
51
  <component v-if="$slots.itemicon" :is="$slots.itemicon" :item="item" :class="[cx('icon'), item.icon]" />
52
52
  <span v-else-if="item.icon" :class="[cx('icon'), item.icon]" v-bind="getPTOptions('icon', i)" />
53
53
  <span :class="cx('label')" v-bind="getPTOptions('label', i)">{{ label(item) }}</span>
@@ -86,6 +86,10 @@ export default {
86
86
  },
87
87
  mounted() {
88
88
  this.updateInkBar();
89
+
90
+ const activeItem = this.findActiveItem();
91
+
92
+ activeItem && (activeItem.tabIndex = '0');
89
93
  },
90
94
  updated() {
91
95
  this.updateInkBar();
@@ -129,39 +133,28 @@ export default {
129
133
  index: index
130
134
  });
131
135
  },
132
- onKeydownItem(event, index) {
133
- let i = index;
134
-
135
- let foundElement = {};
136
- const tabLinkRef = this.$refs.tabLink;
137
-
136
+ onKeydownItem(event, item, index, navigate) {
138
137
  switch (event.code) {
139
138
  case 'ArrowRight': {
140
- foundElement = this.findNextItem(this.$refs.tab, i);
141
- i = foundElement.i;
142
-
139
+ this.navigateToNextItem(event.target);
140
+ event.preventDefault();
143
141
  break;
144
142
  }
145
143
 
146
144
  case 'ArrowLeft': {
147
- foundElement = this.findPrevItem(this.$refs.tab, i);
148
- i = foundElement.i;
149
-
145
+ this.navigateToPrevItem(event.target);
146
+ event.preventDefault();
150
147
  break;
151
148
  }
152
149
 
153
- case 'End': {
154
- foundElement = this.findPrevItem(this.$refs.tab, this.model.length);
155
- i = foundElement.i;
156
-
150
+ case 'Home': {
151
+ this.navigateToFirstItem(event.target);
157
152
  event.preventDefault();
158
153
  break;
159
154
  }
160
155
 
161
- case 'Home': {
162
- foundElement = this.findNextItem(this.$refs.tab, -1);
163
- i = foundElement.i;
164
-
156
+ case 'End': {
157
+ this.navigateToLastItem(event.target);
165
158
  event.preventDefault();
166
159
  break;
167
160
  }
@@ -169,73 +162,88 @@ export default {
169
162
  case 'Space':
170
163
 
171
164
  case 'Enter': {
172
- if (event.currentTarget) {
173
- event.currentTarget.click();
174
- }
175
-
165
+ this.onItemClick(event, item, index, navigate);
176
166
  event.preventDefault();
177
167
  break;
178
168
  }
179
169
 
180
170
  case 'Tab': {
181
- this.setDefaultTabIndexes(tabLinkRef);
182
-
171
+ this.onTabKey();
183
172
  break;
184
173
  }
185
174
 
186
175
  default:
187
176
  break;
188
177
  }
178
+ },
179
+ navigateToNextItem(target) {
180
+ const nextItem = this.findNextItem(target);
189
181
 
190
- if (tabLinkRef[i] && tabLinkRef[index]) {
191
- tabLinkRef[index].tabIndex = '-1';
192
- tabLinkRef[i].tabIndex = '0';
193
- tabLinkRef[i].focus();
194
- }
182
+ nextItem && this.setFocusToMenuitem(target, nextItem);
195
183
  },
196
- findNextItem(items, index) {
197
- let i = index + 1;
184
+ navigateToPrevItem(target) {
185
+ const prevItem = this.findPrevItem(target);
198
186
 
199
- if (i >= items.length) {
200
- return { nextItem: items[items.length], i: items.length };
201
- }
187
+ prevItem && this.setFocusToMenuitem(target, prevItem);
188
+ },
189
+ navigateToFirstItem(target) {
190
+ const firstItem = this.findFirstItem(target);
202
191
 
203
- let nextItem = items[i];
192
+ firstItem && this.setFocusToMenuitem(target, firstItem);
193
+ },
194
+ navigateToLastItem(target) {
195
+ const lastItem = this.findLastItem(target);
204
196
 
205
- if (nextItem) return DomHandler.getAttribute(nextItem, 'data-p-disabled') ? this.findNextItem(items, i) : { nextItem, i };
206
- else return null;
197
+ lastItem && this.setFocusToMenuitem(target, lastItem);
207
198
  },
208
- findPrevItem(items, index) {
209
- let i = index - 1;
199
+ findNextItem(item) {
200
+ const nextItem = item.parentElement.nextElementSibling;
210
201
 
211
- if (i < 0) {
212
- return { nextItem: items[0], i: 0 };
213
- }
202
+ return nextItem ? (DomHandler.getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0]) : null;
203
+ },
204
+ findPrevItem(item) {
205
+ const prevItem = item.parentElement.previousElementSibling;
206
+
207
+ return prevItem ? (DomHandler.getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0]) : null;
208
+ },
209
+ findFirstItem() {
210
+ const firstSibling = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
214
211
 
215
- let prevItem = items[i];
212
+ return firstSibling ? firstSibling.children[0] : null;
213
+ },
214
+ findLastItem() {
215
+ const siblings = DomHandler.find(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
216
216
 
217
- if (prevItem) return DomHandler.getAttribute(prevItem, 'data-p-disabled') ? this.findPrevItem(items, i) : { prevItem, i };
218
- else return null;
217
+ return siblings ? siblings[siblings.length - 1].children[0] : null;
218
+ },
219
+ findActiveItem() {
220
+ const activeItem = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
221
+
222
+ return activeItem ? activeItem.children[0] : null;
223
+ },
224
+ setFocusToMenuitem(target, focusableItem) {
225
+ target.tabIndex = '-1';
226
+ focusableItem.tabIndex = '0';
227
+ focusableItem.focus();
228
+ },
229
+ onTabKey() {
230
+ const activeItem = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
231
+ const focusedItem = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="action"][tabindex="0"]');
232
+
233
+ if (focusedItem !== activeItem.children[0]) {
234
+ activeItem && (activeItem.children[0].tabIndex = '0');
235
+ focusedItem.tabIndex = '-1';
236
+ }
219
237
  },
220
238
  visible(item) {
221
239
  return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
222
240
  },
223
241
  disabled(item) {
224
- return typeof item.disabled === 'function' ? item.disabled() : item.disabled;
242
+ return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;
225
243
  },
226
244
  label(item) {
227
245
  return typeof item.label === 'function' ? item.label() : item.label;
228
246
  },
229
- setDefaultTabIndexes(tabLinkRef) {
230
- setTimeout(() => {
231
- tabLinkRef.forEach((item) => {
232
- item.tabIndex = DomHandler.getAttribute(item.parentElement, 'data-p-highlight') ? '0' : '-1';
233
- });
234
- }, 300);
235
- },
236
- setTabIndex(index) {
237
- return this.d_activeIndex === index ? '0' : '-1';
238
- },
239
247
  updateInkBar() {
240
248
  let tabs = this.$refs.nav.children;
241
249
  let inkHighlighted = false;
@@ -256,15 +264,6 @@ export default {
256
264
  }
257
265
  }
258
266
  },
259
- computed: {
260
- focusableItems() {
261
- return (this.model || []).reduce((result, item) => {
262
- this.visible(item) && !this.disabled(item) && result.push(item);
263
-
264
- return result;
265
- }, []);
266
- }
267
- },
268
267
  directives: {
269
268
  ripple: Ripple
270
269
  }
@@ -96,6 +96,8 @@ var script = {
96
96
  },
97
97
  mounted: function mounted() {
98
98
  this.updateInkBar();
99
+ var activeItem = this.findActiveItem();
100
+ activeItem && (activeItem.tabIndex = '0');
99
101
  },
100
102
  updated: function updated() {
101
103
  this.updateInkBar();
@@ -134,105 +136,104 @@ var script = {
134
136
  index: index
135
137
  });
136
138
  },
137
- onKeydownItem: function onKeydownItem(event, index) {
138
- var i = index;
139
- var foundElement = {};
140
- var tabLinkRef = this.$refs.tabLink;
139
+ onKeydownItem: function onKeydownItem(event, item, index, navigate) {
141
140
  switch (event.code) {
142
141
  case 'ArrowRight':
143
142
  {
144
- foundElement = this.findNextItem(this.$refs.tab, i);
145
- i = foundElement.i;
143
+ this.navigateToNextItem(event.target);
144
+ event.preventDefault();
146
145
  break;
147
146
  }
148
147
  case 'ArrowLeft':
149
148
  {
150
- foundElement = this.findPrevItem(this.$refs.tab, i);
151
- i = foundElement.i;
149
+ this.navigateToPrevItem(event.target);
150
+ event.preventDefault();
152
151
  break;
153
152
  }
154
- case 'End':
153
+ case 'Home':
155
154
  {
156
- foundElement = this.findPrevItem(this.$refs.tab, this.model.length);
157
- i = foundElement.i;
155
+ this.navigateToFirstItem(event.target);
158
156
  event.preventDefault();
159
157
  break;
160
158
  }
161
- case 'Home':
159
+ case 'End':
162
160
  {
163
- foundElement = this.findNextItem(this.$refs.tab, -1);
164
- i = foundElement.i;
161
+ this.navigateToLastItem(event.target);
165
162
  event.preventDefault();
166
163
  break;
167
164
  }
168
165
  case 'Space':
169
166
  case 'Enter':
170
167
  {
171
- if (event.currentTarget) {
172
- event.currentTarget.click();
173
- }
168
+ this.onItemClick(event, item, index, navigate);
174
169
  event.preventDefault();
175
170
  break;
176
171
  }
177
172
  case 'Tab':
178
173
  {
179
- this.setDefaultTabIndexes(tabLinkRef);
174
+ this.onTabKey();
180
175
  break;
181
176
  }
182
177
  }
183
- if (tabLinkRef[i] && tabLinkRef[index]) {
184
- tabLinkRef[index].tabIndex = '-1';
185
- tabLinkRef[i].tabIndex = '0';
186
- tabLinkRef[i].focus();
187
- }
188
178
  },
189
- findNextItem: function findNextItem(items, index) {
190
- var i = index + 1;
191
- if (i >= items.length) {
192
- return {
193
- nextItem: items[items.length],
194
- i: items.length
195
- };
196
- }
197
- var nextItem = items[i];
198
- if (nextItem) return utils.DomHandler.getAttribute(nextItem, 'data-p-disabled') ? this.findNextItem(items, i) : {
199
- nextItem: nextItem,
200
- i: i
201
- };else return null;
179
+ navigateToNextItem: function navigateToNextItem(target) {
180
+ var nextItem = this.findNextItem(target);
181
+ nextItem && this.setFocusToMenuitem(target, nextItem);
182
+ },
183
+ navigateToPrevItem: function navigateToPrevItem(target) {
184
+ var prevItem = this.findPrevItem(target);
185
+ prevItem && this.setFocusToMenuitem(target, prevItem);
186
+ },
187
+ navigateToFirstItem: function navigateToFirstItem(target) {
188
+ var firstItem = this.findFirstItem(target);
189
+ firstItem && this.setFocusToMenuitem(target, firstItem);
190
+ },
191
+ navigateToLastItem: function navigateToLastItem(target) {
192
+ var lastItem = this.findLastItem(target);
193
+ lastItem && this.setFocusToMenuitem(target, lastItem);
202
194
  },
203
- findPrevItem: function findPrevItem(items, index) {
204
- var i = index - 1;
205
- if (i < 0) {
206
- return {
207
- nextItem: items[0],
208
- i: 0
209
- };
195
+ findNextItem: function findNextItem(item) {
196
+ var nextItem = item.parentElement.nextElementSibling;
197
+ return nextItem ? utils.DomHandler.getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0] : null;
198
+ },
199
+ findPrevItem: function findPrevItem(item) {
200
+ var prevItem = item.parentElement.previousElementSibling;
201
+ return prevItem ? utils.DomHandler.getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0] : null;
202
+ },
203
+ findFirstItem: function findFirstItem() {
204
+ var firstSibling = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
205
+ return firstSibling ? firstSibling.children[0] : null;
206
+ },
207
+ findLastItem: function findLastItem() {
208
+ var siblings = utils.DomHandler.find(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
209
+ return siblings ? siblings[siblings.length - 1].children[0] : null;
210
+ },
211
+ findActiveItem: function findActiveItem() {
212
+ var activeItem = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
213
+ return activeItem ? activeItem.children[0] : null;
214
+ },
215
+ setFocusToMenuitem: function setFocusToMenuitem(target, focusableItem) {
216
+ target.tabIndex = '-1';
217
+ focusableItem.tabIndex = '0';
218
+ focusableItem.focus();
219
+ },
220
+ onTabKey: function onTabKey() {
221
+ var activeItem = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
222
+ var focusedItem = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="action"][tabindex="0"]');
223
+ if (focusedItem !== activeItem.children[0]) {
224
+ activeItem && (activeItem.children[0].tabIndex = '0');
225
+ focusedItem.tabIndex = '-1';
210
226
  }
211
- var prevItem = items[i];
212
- if (prevItem) return utils.DomHandler.getAttribute(prevItem, 'data-p-disabled') ? this.findPrevItem(items, i) : {
213
- prevItem: prevItem,
214
- i: i
215
- };else return null;
216
227
  },
217
228
  visible: function visible(item) {
218
229
  return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
219
230
  },
220
231
  disabled: function disabled(item) {
221
- return typeof item.disabled === 'function' ? item.disabled() : item.disabled;
232
+ return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;
222
233
  },
223
234
  label: function label(item) {
224
235
  return typeof item.label === 'function' ? item.label() : item.label;
225
236
  },
226
- setDefaultTabIndexes: function setDefaultTabIndexes(tabLinkRef) {
227
- setTimeout(function () {
228
- tabLinkRef.forEach(function (item) {
229
- item.tabIndex = utils.DomHandler.getAttribute(item.parentElement, 'data-p-highlight') ? '0' : '-1';
230
- });
231
- }, 300);
232
- },
233
- setTabIndex: function setTabIndex(index) {
234
- return this.d_activeIndex === index ? '0' : '-1';
235
- },
236
237
  updateInkBar: function updateInkBar() {
237
238
  var tabs = this.$refs.nav.children;
238
239
  var inkHighlighted = false;
@@ -250,15 +251,6 @@ var script = {
250
251
  }
251
252
  }
252
253
  },
253
- computed: {
254
- focusableItems: function focusableItems() {
255
- var _this2 = this;
256
- return (this.model || []).reduce(function (result, item) {
257
- _this2.visible(item) && !_this2.disabled(item) && result.push(item);
258
- return result;
259
- }, []);
260
- }
261
- },
262
254
  directives: {
263
255
  ripple: Ripple__default["default"]
264
256
  }
@@ -266,9 +258,9 @@ var script = {
266
258
 
267
259
  var _hoisted_1 = ["aria-labelledby", "aria-label"];
268
260
  var _hoisted_2 = ["data-p-highlight", "data-p-disabled"];
269
- var _hoisted_3 = ["href", "aria-label", "aria-disabled", "tabindex", "onClick", "onKeydown"];
261
+ var _hoisted_3 = ["href", "aria-label", "aria-disabled", "onClick", "onKeydown"];
270
262
  var _hoisted_4 = ["onClick", "onKeydown", "data-p-highlight", "data-p-disabled"];
271
- var _hoisted_5 = ["href", "target", "aria-label", "aria-disabled", "tabindex"];
263
+ var _hoisted_5 = ["href", "target", "aria-label", "aria-disabled"];
272
264
  function render(_ctx, _cache, $props, $setup, $data, $options) {
273
265
  var _component_router_link = vue.resolveComponent("router-link");
274
266
  var _directive_ripple = vue.resolveDirective("ripple");
@@ -282,7 +274,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
282
274
  role: "menubar",
283
275
  "aria-labelledby": _ctx.ariaLabelledby,
284
276
  "aria-label": _ctx.ariaLabel
285
- }, _ctx.ptm('menu')), [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($options.focusableItems, function (item, i) {
277
+ }, _ctx.ptm('menu')), [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.model, function (item, i) {
286
278
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
287
279
  key: $options.label(item) + '_' + i.toString()
288
280
  }, [item.to && !$options.disabled(item) ? (vue.openBlock(), vue.createBlock(_component_router_link, {
@@ -318,12 +310,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
318
310
  "class": _ctx.cx('action'),
319
311
  "aria-label": $options.label(item),
320
312
  "aria-disabled": $options.disabled(item),
321
- tabindex: isExactActive ? '0' : '-1',
313
+ tabindex: -1,
322
314
  onClick: function onClick($event) {
323
315
  return $options.onItemClick($event, item, i, navigate);
324
316
  },
325
317
  onKeydown: function onKeydown($event) {
326
- return $options.onKeydownItem($event, i, navigate);
318
+ return $options.onKeydownItem($event, item, i, navigate);
327
319
  }
328
320
  }, $options.getPTOptions('action', i)), [_ctx.$slots.itemicon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.$slots.itemicon), {
329
321
  key: 0,
@@ -354,7 +346,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
354
346
  return $options.onItemClick($event, item, i);
355
347
  },
356
348
  onKeydown: function onKeydown($event) {
357
- return $options.onKeydownItem($event, i);
349
+ return $options.onKeydownItem($event, item, i);
358
350
  }
359
351
  }, $options.getPTOptions('menuitem', i), {
360
352
  "data-p-highlight": $data.d_activeIndex === i,
@@ -369,7 +361,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
369
361
  target: item.target,
370
362
  "aria-label": $options.label(item),
371
363
  "aria-disabled": $options.disabled(item),
372
- tabindex: $options.setTabIndex(i)
364
+ tabindex: -1
373
365
  }, $options.getPTOptions('action', i)), [_ctx.$slots.itemicon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.$slots.itemicon), {
374
366
  key: 0,
375
367
  item: item,
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/ripple"),t=require("primevue/utils"),n=require("primevue/basecomponent"),i=require("primevue/usestyle"),a=require("vue");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=l(e),o=l(n),s=i.useStyle("\n.p-tabmenu {\n overflow-x: auto;\n}\n\n.p-tabmenu-nav {\n display: flex;\n margin: 0;\n padding: 0;\n list-style-type: none;\n flex-wrap: nowrap;\n}\n\n.p-tabmenu-nav a {\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n position: relative;\n text-decoration: none;\n text-decoration: none;\n overflow: hidden;\n}\n\n.p-tabmenu-nav a:focus {\n z-index: 1;\n}\n\n.p-tabmenu-nav .p-menuitem-text {\n line-height: 1;\n}\n\n.p-tabmenu-ink-bar {\n display: none;\n z-index: 1;\n}\n\n.p-tabmenu::-webkit-scrollbar {\n display: none;\n}\n",{name:"tabmenu",manual:!0}),c={name:"TabMenu",extends:{name:"BaseTabMenu",extends:o.default,props:{model:{type:Array,default:null},exact:{type:Boolean,default:!0},activeIndex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},css:{classes:{root:"p-tabmenu p-component",menu:"p-tabmenu-nav p-reset",menuitem:function(e){var t=e.instance;return["p-tabmenuitem",{"p-highlight":(e.props.exact?e.isExactActive:e.isActive)||t.d_activeIndex===e.index,"p-disabled":t.disabled(e.item)}]},action:"p-menuitem-link",icon:"p-menuitem-icon",label:"p-menuitem-text",inkbar:"p-tabmenu-ink-bar"},loadStyle:s.load},provide:function(){return{$parentInstance:this}}},emits:["update:activeIndex","tab-change"],timeout:null,data:function(){return{d_activeIndex:this.activeIndex}},watch:{$route:function(){var e=this;this.timeout=setTimeout((function(){return e.updateInkBar()}),50)},activeIndex:function(e){this.d_activeIndex=e}},mounted:function(){this.updateInkBar()},updated:function(){this.updateInkBar()},beforeUnmount:function(){clearTimeout(this.timeout)},methods:{getPTOptions:function(e,t){return this.ptm(e,{context:{order:t}})},onItemClick:function(e,t,n,i){this.disabled(t)?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),t.to&&i&&i(e),n!==this.d_activeIndex&&(this.d_activeIndex=n,this.$emit("update:activeIndex",this.d_activeIndex)),this.$emit("tab-change",{originalEvent:e,index:n}))},onKeydownItem:function(e,t){var n=t,i=this.$refs.tabLink;switch(e.code){case"ArrowRight":n=this.findNextItem(this.$refs.tab,n).i;break;case"ArrowLeft":n=this.findPrevItem(this.$refs.tab,n).i;break;case"End":n=this.findPrevItem(this.$refs.tab,this.model.length).i,e.preventDefault();break;case"Home":n=this.findNextItem(this.$refs.tab,-1).i,e.preventDefault();break;case"Space":case"Enter":e.currentTarget&&e.currentTarget.click(),e.preventDefault();break;case"Tab":this.setDefaultTabIndexes(i)}i[n]&&i[t]&&(i[t].tabIndex="-1",i[n].tabIndex="0",i[n].focus())},findNextItem:function(e,n){var i=n+1;if(i>=e.length)return{nextItem:e[e.length],i:e.length};var a=e[i];return a?t.DomHandler.getAttribute(a,"data-p-disabled")?this.findNextItem(e,i):{nextItem:a,i:i}:null},findPrevItem:function(e,n){var i=n-1;if(i<0)return{nextItem:e[0],i:0};var a=e[i];return a?t.DomHandler.getAttribute(a,"data-p-disabled")?this.findPrevItem(e,i):{prevItem:a,i:i}:null},visible:function(e){return"function"==typeof e.visible?e.visible():!1!==e.visible},disabled:function(e){return"function"==typeof e.disabled?e.disabled():e.disabled},label:function(e){return"function"==typeof e.label?e.label():e.label},setDefaultTabIndexes:function(e){setTimeout((function(){e.forEach((function(e){e.tabIndex=t.DomHandler.getAttribute(e.parentElement,"data-p-highlight")?"0":"-1"}))}),300)},setTabIndex:function(e){return this.d_activeIndex===e?"0":"-1"},updateInkBar:function(){for(var e=this.$refs.nav.children,n=!1,i=0;i<e.length;i++){var a=e[i];t.DomHandler.getAttribute(a,"data-p-highlight")&&(this.$refs.inkbar.style.width=t.DomHandler.getWidth(a)+"px",this.$refs.inkbar.style.left=t.DomHandler.getOffset(a).left-t.DomHandler.getOffset(this.$refs.nav).left+"px",n=!0)}n||(this.$refs.inkbar.style.width="0px",this.$refs.inkbar.style.left="0px")}},computed:{focusableItems:function(){var e=this;return(this.model||[]).reduce((function(t,n){return e.visible(n)&&!e.disabled(n)&&t.push(n),t}),[])}},directives:{ripple:r.default}},d=["aria-labelledby","aria-label"],m=["data-p-highlight","data-p-disabled"],u=["href","aria-label","aria-disabled","tabindex","onClick","onKeydown"],p=["onClick","onKeydown","data-p-highlight","data-p-disabled"],b=["href","target","aria-label","aria-disabled","tabindex"];c.render=function(e,t,n,i,l,r){var o=a.resolveComponent("router-link"),s=a.resolveDirective("ripple");return a.openBlock(),a.createElementBlock("div",a.mergeProps({class:e.cx("root")},e.ptm("root"),{"data-pc-name":"tabmenu"}),[a.createElementVNode("ul",a.mergeProps({ref:"nav",class:e.cx("menu"),role:"menubar","aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel},e.ptm("menu")),[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(r.focusableItems,(function(t,n){return a.openBlock(),a.createElementBlock(a.Fragment,{key:r.label(t)+"_"+n.toString()},[t.to&&!r.disabled(t)?(a.openBlock(),a.createBlock(o,{key:0,to:t.to,custom:""},{default:a.withCtx((function(i){var l=i.navigate,o=i.href,c=i.isActive,d=i.isExactActive;return[r.visible(t)?(a.openBlock(),a.createElementBlock("li",a.mergeProps({key:0,ref_for:!0,ref:"tab",class:[e.cx("menuitem",{item:t,isActive:c,isExactActive:d}),t.class],style:t.style,role:"presentation"},r.getPTOptions("menuitem",n),{"data-p-highlight":e.exact?d:c,"data-p-disabled":r.disabled(t)}),[e.$slots.item?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.item),{key:1,item:t,index:n},null,8,["item","index"])):a.withDirectives((a.openBlock(),a.createElementBlock("a",a.mergeProps({key:0,ref_for:!0,ref:"tabLink",role:"menuitem",href:o,class:e.cx("action"),"aria-label":r.label(t),"aria-disabled":r.disabled(t),tabindex:d?"0":"-1",onClick:function(e){return r.onItemClick(e,t,n,l)},onKeydown:function(e){return r.onKeydownItem(e,n,l)}},r.getPTOptions("action",n)),[e.$slots.itemicon?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.itemicon),{key:0,item:t,class:a.normalizeClass([e.cx("icon"),t.icon])},null,8,["item","class"])):t.icon?(a.openBlock(),a.createElementBlock("span",a.mergeProps({key:1,class:[e.cx("icon"),t.icon]},r.getPTOptions("icon",n)),null,16)):a.createCommentVNode("",!0),a.createElementVNode("span",a.mergeProps({class:e.cx("label")},r.getPTOptions("label",n)),a.toDisplayString(r.label(t)),17)],16,u)),[[s]])],16,m)):a.createCommentVNode("",!0)]})),_:2},1032,["to"])):r.visible(t)?(a.openBlock(),a.createElementBlock("li",a.mergeProps({key:1,ref_for:!0,ref:"tab",class:[e.cx("menuitem",{item:t,index:n}),t.class],role:"presentation",onClick:function(e){return r.onItemClick(e,t,n)},onKeydown:function(e){return r.onKeydownItem(e,n)}},r.getPTOptions("menuitem",n),{"data-p-highlight":l.d_activeIndex===n,"data-p-disabled":r.disabled(t)}),[e.$slots.item?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.item),{key:1,item:t,index:n},null,8,["item","index"])):a.withDirectives((a.openBlock(),a.createElementBlock("a",a.mergeProps({key:0,ref_for:!0,ref:"tabLink",role:"menuitem",href:t.url,class:e.cx("action"),target:t.target,"aria-label":r.label(t),"aria-disabled":r.disabled(t),tabindex:r.setTabIndex(n)},r.getPTOptions("action",n)),[e.$slots.itemicon?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.itemicon),{key:0,item:t,class:a.normalizeClass([e.cx("icon"),t.icon])},null,8,["item","class"])):t.icon?(a.openBlock(),a.createElementBlock("span",a.mergeProps({key:1,class:[e.cx("icon"),t.icon]},r.getPTOptions("icon",n)),null,16)):a.createCommentVNode("",!0),a.createElementVNode("span",a.mergeProps({class:e.cx("label")},r.getPTOptions("label",n)),a.toDisplayString(r.label(t)),17)],16,b)),[[s]])],16,p)):a.createCommentVNode("",!0)],64)})),128)),a.createElementVNode("li",a.mergeProps({ref:"inkbar",role:"none",class:e.cx("inkbar")},e.ptm("inkbar")),null,16)],16,d)],16)},module.exports=c;
1
+ "use strict";var e=require("primevue/ripple"),t=require("primevue/utils"),n=require("primevue/basecomponent"),i=require("primevue/usestyle"),a=require("vue");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=l(e),r=l(n),s=i.useStyle("\n.p-tabmenu {\n overflow-x: auto;\n}\n\n.p-tabmenu-nav {\n display: flex;\n margin: 0;\n padding: 0;\n list-style-type: none;\n flex-wrap: nowrap;\n}\n\n.p-tabmenu-nav a {\n cursor: pointer;\n user-select: none;\n display: flex;\n align-items: center;\n position: relative;\n text-decoration: none;\n text-decoration: none;\n overflow: hidden;\n}\n\n.p-tabmenu-nav a:focus {\n z-index: 1;\n}\n\n.p-tabmenu-nav .p-menuitem-text {\n line-height: 1;\n}\n\n.p-tabmenu-ink-bar {\n display: none;\n z-index: 1;\n}\n\n.p-tabmenu::-webkit-scrollbar {\n display: none;\n}\n",{name:"tabmenu",manual:!0}),c={name:"TabMenu",extends:{name:"BaseTabMenu",extends:r.default,props:{model:{type:Array,default:null},exact:{type:Boolean,default:!0},activeIndex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},css:{classes:{root:"p-tabmenu p-component",menu:"p-tabmenu-nav p-reset",menuitem:function(e){var t=e.instance;return["p-tabmenuitem",{"p-highlight":(e.props.exact?e.isExactActive:e.isActive)||t.d_activeIndex===e.index,"p-disabled":t.disabled(e.item)}]},action:"p-menuitem-link",icon:"p-menuitem-icon",label:"p-menuitem-text",inkbar:"p-tabmenu-ink-bar"},loadStyle:s.load},provide:function(){return{$parentInstance:this}}},emits:["update:activeIndex","tab-change"],timeout:null,data:function(){return{d_activeIndex:this.activeIndex}},watch:{$route:function(){var e=this;this.timeout=setTimeout((function(){return e.updateInkBar()}),50)},activeIndex:function(e){this.d_activeIndex=e}},mounted:function(){this.updateInkBar();var e=this.findActiveItem();e&&(e.tabIndex="0")},updated:function(){this.updateInkBar()},beforeUnmount:function(){clearTimeout(this.timeout)},methods:{getPTOptions:function(e,t){return this.ptm(e,{context:{order:t}})},onItemClick:function(e,t,n,i){this.disabled(t)?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),t.to&&i&&i(e),n!==this.d_activeIndex&&(this.d_activeIndex=n,this.$emit("update:activeIndex",this.d_activeIndex)),this.$emit("tab-change",{originalEvent:e,index:n}))},onKeydownItem:function(e,t,n,i){switch(e.code){case"ArrowRight":this.navigateToNextItem(e.target),e.preventDefault();break;case"ArrowLeft":this.navigateToPrevItem(e.target),e.preventDefault();break;case"Home":this.navigateToFirstItem(e.target),e.preventDefault();break;case"End":this.navigateToLastItem(e.target),e.preventDefault();break;case"Space":case"Enter":this.onItemClick(e,t,n,i),e.preventDefault();break;case"Tab":this.onTabKey()}},navigateToNextItem:function(e){var t=this.findNextItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToPrevItem:function(e){var t=this.findPrevItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToFirstItem:function(e){var t=this.findFirstItem(e);t&&this.setFocusToMenuitem(e,t)},navigateToLastItem:function(e){var t=this.findLastItem(e);t&&this.setFocusToMenuitem(e,t)},findNextItem:function(e){var n=e.parentElement.nextElementSibling;return n?!0===t.DomHandler.getAttribute(n,"data-p-disabled")?this.findNextItem(n.children[0]):n.children[0]:null},findPrevItem:function(e){var n=e.parentElement.previousElementSibling;return n?!0===t.DomHandler.getAttribute(n,"data-p-disabled")?this.findPrevItem(n.children[0]):n.children[0]:null},findFirstItem:function(){var e=t.DomHandler.findSingle(this.$refs.nav,'[data-pc-section="menuitem"][data-p-disabled="false"]');return e?e.children[0]:null},findLastItem:function(){var e=t.DomHandler.find(this.$refs.nav,'[data-pc-section="menuitem"][data-p-disabled="false"]');return e?e[e.length-1].children[0]:null},findActiveItem:function(){var e=t.DomHandler.findSingle(this.$refs.nav,'[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');return e?e.children[0]:null},setFocusToMenuitem:function(e,t){e.tabIndex="-1",t.tabIndex="0",t.focus()},onTabKey:function(){var e=t.DomHandler.findSingle(this.$refs.nav,'[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]'),n=t.DomHandler.findSingle(this.$refs.nav,'[data-pc-section="action"][tabindex="0"]');n!==e.children[0]&&(e&&(e.children[0].tabIndex="0"),n.tabIndex="-1")},visible:function(e){return"function"==typeof e.visible?e.visible():!1!==e.visible},disabled:function(e){return"function"==typeof e.disabled?e.disabled():!0===e.disabled},label:function(e){return"function"==typeof e.label?e.label():e.label},updateInkBar:function(){for(var e=this.$refs.nav.children,n=!1,i=0;i<e.length;i++){var a=e[i];t.DomHandler.getAttribute(a,"data-p-highlight")&&(this.$refs.inkbar.style.width=t.DomHandler.getWidth(a)+"px",this.$refs.inkbar.style.left=t.DomHandler.getOffset(a).left-t.DomHandler.getOffset(this.$refs.nav).left+"px",n=!0)}n||(this.$refs.inkbar.style.width="0px",this.$refs.inkbar.style.left="0px")}},directives:{ripple:o.default}},d=["aria-labelledby","aria-label"],m=["data-p-highlight","data-p-disabled"],u=["href","aria-label","aria-disabled","onClick","onKeydown"],p=["onClick","onKeydown","data-p-highlight","data-p-disabled"],f=["href","target","aria-label","aria-disabled"];c.render=function(e,t,n,i,l,o){var r=a.resolveComponent("router-link"),s=a.resolveDirective("ripple");return a.openBlock(),a.createElementBlock("div",a.mergeProps({class:e.cx("root")},e.ptm("root"),{"data-pc-name":"tabmenu"}),[a.createElementVNode("ul",a.mergeProps({ref:"nav",class:e.cx("menu"),role:"menubar","aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel},e.ptm("menu")),[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.model,(function(t,n){return a.openBlock(),a.createElementBlock(a.Fragment,{key:o.label(t)+"_"+n.toString()},[t.to&&!o.disabled(t)?(a.openBlock(),a.createBlock(r,{key:0,to:t.to,custom:""},{default:a.withCtx((function(i){var l=i.navigate,r=i.href,c=i.isActive,d=i.isExactActive;return[o.visible(t)?(a.openBlock(),a.createElementBlock("li",a.mergeProps({key:0,ref_for:!0,ref:"tab",class:[e.cx("menuitem",{item:t,isActive:c,isExactActive:d}),t.class],style:t.style,role:"presentation"},o.getPTOptions("menuitem",n),{"data-p-highlight":e.exact?d:c,"data-p-disabled":o.disabled(t)}),[e.$slots.item?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.item),{key:1,item:t,index:n},null,8,["item","index"])):a.withDirectives((a.openBlock(),a.createElementBlock("a",a.mergeProps({key:0,ref_for:!0,ref:"tabLink",role:"menuitem",href:r,class:e.cx("action"),"aria-label":o.label(t),"aria-disabled":o.disabled(t),tabindex:-1,onClick:function(e){return o.onItemClick(e,t,n,l)},onKeydown:function(e){return o.onKeydownItem(e,t,n,l)}},o.getPTOptions("action",n)),[e.$slots.itemicon?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.itemicon),{key:0,item:t,class:a.normalizeClass([e.cx("icon"),t.icon])},null,8,["item","class"])):t.icon?(a.openBlock(),a.createElementBlock("span",a.mergeProps({key:1,class:[e.cx("icon"),t.icon]},o.getPTOptions("icon",n)),null,16)):a.createCommentVNode("",!0),a.createElementVNode("span",a.mergeProps({class:e.cx("label")},o.getPTOptions("label",n)),a.toDisplayString(o.label(t)),17)],16,u)),[[s]])],16,m)):a.createCommentVNode("",!0)]})),_:2},1032,["to"])):o.visible(t)?(a.openBlock(),a.createElementBlock("li",a.mergeProps({key:1,ref_for:!0,ref:"tab",class:[e.cx("menuitem",{item:t,index:n}),t.class],role:"presentation",onClick:function(e){return o.onItemClick(e,t,n)},onKeydown:function(e){return o.onKeydownItem(e,t,n)}},o.getPTOptions("menuitem",n),{"data-p-highlight":l.d_activeIndex===n,"data-p-disabled":o.disabled(t)}),[e.$slots.item?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.item),{key:1,item:t,index:n},null,8,["item","index"])):a.withDirectives((a.openBlock(),a.createElementBlock("a",a.mergeProps({key:0,ref_for:!0,ref:"tabLink",role:"menuitem",href:t.url,class:e.cx("action"),target:t.target,"aria-label":o.label(t),"aria-disabled":o.disabled(t),tabindex:-1},o.getPTOptions("action",n)),[e.$slots.itemicon?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(e.$slots.itemicon),{key:0,item:t,class:a.normalizeClass([e.cx("icon"),t.icon])},null,8,["item","class"])):t.icon?(a.openBlock(),a.createElementBlock("span",a.mergeProps({key:1,class:[e.cx("icon"),t.icon]},o.getPTOptions("icon",n)),null,16)):a.createCommentVNode("",!0),a.createElementVNode("span",a.mergeProps({class:e.cx("label")},o.getPTOptions("label",n)),a.toDisplayString(o.label(t)),17)],16,f)),[[s]])],16,p)):a.createCommentVNode("",!0)],64)})),128)),a.createElementVNode("li",a.mergeProps({ref:"inkbar",role:"none",class:e.cx("inkbar")},e.ptm("inkbar")),null,16)],16,d)],16)},module.exports=c;