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.
- package/basecomponent/BaseComponent.vue +1 -1
- package/basecomponent/basecomponent.cjs.js +1 -1
- package/basecomponent/basecomponent.cjs.min.js +1 -1
- package/basecomponent/basecomponent.esm.js +1 -1
- package/basecomponent/basecomponent.esm.min.js +1 -1
- package/basecomponent/basecomponent.js +1 -1
- package/basecomponent/basecomponent.min.js +1 -1
- package/basedirective/basedirective.cjs.js +1 -1
- package/basedirective/basedirective.cjs.min.js +1 -1
- package/basedirective/basedirective.esm.js +1 -1
- package/basedirective/basedirective.esm.min.js +1 -1
- package/basedirective/basedirective.js +1 -1
- package/basedirective/basedirective.min.js +1 -1
- package/column/Column.d.ts +48 -0
- package/columngroup/ColumnGroup.d.ts +5 -0
- package/core/core.js +19 -13
- package/core/core.min.js +5 -5
- package/datatable/BaseDataTable.vue +7 -1
- package/datatable/BodyCell.vue +5 -3
- package/datatable/ColumnFilter.vue +43 -8
- package/datatable/DataTable.d.ts +30 -0
- package/datatable/FooterCell.vue +3 -1
- package/datatable/HeaderCell.vue +6 -2
- package/datatable/HeaderCheckbox.vue +5 -2
- package/datatable/RowCheckbox.vue +5 -2
- package/datatable/RowRadioButton.vue +5 -2
- package/datatable/TableBody.vue +33 -13
- package/datatable/TableFooter.vue +10 -2
- package/datatable/TableHeader.vue +12 -2
- package/datatable/datatable.cjs.js +149 -43
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +149 -43
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +150 -44
- package/datatable/datatable.min.js +1 -1
- package/dialog/Dialog.vue +13 -1
- package/dialog/dialog.cjs.js +6 -2
- package/dialog/dialog.cjs.min.js +1 -1
- package/dialog/dialog.esm.js +6 -2
- package/dialog/dialog.esm.min.js +1 -1
- package/dialog/dialog.js +6 -2
- package/dialog/dialog.min.js +1 -1
- package/dock/Dock.d.ts +4 -0
- package/dock/DockSub.vue +9 -8
- package/dock/dock.cjs.js +9 -8
- package/dock/dock.cjs.min.js +1 -1
- package/dock/dock.esm.js +9 -8
- package/dock/dock.esm.min.js +1 -1
- package/dock/dock.js +9 -8
- package/dock/dock.min.js +1 -1
- package/galleria/Galleria.d.ts +4 -0
- package/galleria/GalleriaContent.vue +16 -6
- package/galleria/GalleriaItem.vue +2 -1
- package/galleria/GalleriaThumbnails.vue +1 -0
- package/galleria/galleria.cjs.js +34 -17
- package/galleria/galleria.cjs.min.js +1 -1
- package/galleria/galleria.esm.js +35 -18
- package/galleria/galleria.esm.min.js +1 -1
- package/galleria/galleria.js +34 -17
- package/galleria/galleria.min.js +1 -1
- package/message/BaseMessage.vue +2 -2
- package/message/Message.d.ts +10 -0
- package/message/Message.vue +3 -3
- package/message/message.cjs.js +8 -8
- package/message/message.cjs.min.js +1 -1
- package/message/message.esm.js +8 -8
- package/message/message.esm.min.js +1 -1
- package/message/message.js +8 -8
- package/message/message.min.js +1 -1
- package/multiselect/MultiSelect.vue +2 -1
- package/multiselect/multiselect.cjs.js +4 -4
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +5 -5
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +4 -4
- package/multiselect/multiselect.min.js +1 -1
- package/overlaypanel/OverlayPanel.vue +4 -2
- package/overlaypanel/overlaypanel.cjs.js +4 -2
- package/overlaypanel/overlaypanel.cjs.min.js +1 -1
- package/overlaypanel/overlaypanel.esm.js +4 -2
- package/overlaypanel/overlaypanel.esm.min.js +1 -1
- package/overlaypanel/overlaypanel.js +4 -2
- package/overlaypanel/overlaypanel.min.js +1 -1
- package/package.json +1 -1
- package/scrollpanel/ScrollPanel.vue +2 -0
- package/scrollpanel/scrollpanel.cjs.js +6 -2
- package/scrollpanel/scrollpanel.cjs.min.js +1 -1
- package/scrollpanel/scrollpanel.esm.js +6 -2
- package/scrollpanel/scrollpanel.esm.min.js +1 -1
- package/scrollpanel/scrollpanel.js +6 -2
- package/scrollpanel/scrollpanel.min.js +1 -1
- package/sidebar/Sidebar.vue +1 -1
- package/sidebar/sidebar.cjs.js +3 -1
- package/sidebar/sidebar.cjs.min.js +1 -1
- package/sidebar/sidebar.esm.js +3 -1
- package/sidebar/sidebar.esm.min.js +1 -1
- package/sidebar/sidebar.js +3 -1
- package/sidebar/sidebar.min.js +1 -1
- package/splitbutton/SplitButton.vue +2 -1
- package/splitbutton/splitbutton.cjs.js +4 -2
- package/splitbutton/splitbutton.cjs.min.js +1 -1
- package/splitbutton/splitbutton.esm.js +4 -2
- package/splitbutton/splitbutton.esm.min.js +1 -1
- package/splitbutton/splitbutton.js +4 -2
- package/splitbutton/splitbutton.min.js +1 -1
- package/tabmenu/TabMenu.vue +71 -72
- package/tabmenu/tabmenu.cjs.js +67 -75
- package/tabmenu/tabmenu.cjs.min.js +1 -1
- package/tabmenu/tabmenu.esm.js +67 -75
- package/tabmenu/tabmenu.esm.min.js +1 -1
- package/tabmenu/tabmenu.js +67 -75
- package/tabmenu/tabmenu.min.js +1 -1
- package/tabview/TabView.vue +2 -0
- package/tabview/tabview.cjs.js +6 -2
- package/tabview/tabview.cjs.min.js +1 -1
- package/tabview/tabview.esm.js +6 -2
- package/tabview/tabview.esm.min.js +1 -1
- package/tabview/tabview.js +6 -2
- package/tabview/tabview.min.js +1 -1
- package/toast/BaseToast.vue +2 -2
- package/toast/Toast.d.ts +10 -0
- package/toast/ToastMessage.vue +3 -2
- package/toast/toast.cjs.js +7 -6
- package/toast/toast.cjs.min.js +1 -1
- package/toast/toast.esm.js +7 -6
- package/toast/toast.esm.min.js +1 -1
- package/toast/toast.js +7 -6
- package/toast/toast.min.js +1 -1
- package/tree/Tree.d.ts +9 -0
- package/tree/TreeNode.vue +3 -1
- package/tree/tree.cjs.js +3 -1
- package/tree/tree.cjs.min.js +1 -1
- package/tree/tree.esm.js +3 -1
- package/tree/tree.esm.min.js +1 -1
- package/tree/tree.js +3 -1
- package/tree/tree.min.js +1 -1
- package/treetable/BaseTreeTable.vue +7 -1
- package/treetable/BodyCell.vue +14 -4
- package/treetable/FooterCell.vue +3 -1
- package/treetable/HeaderCell.vue +9 -2
- package/treetable/TreeTable.d.ts +30 -8
- package/treetable/TreeTable.vue +9 -2
- package/treetable/TreeTableRow.vue +10 -1
- package/treetable/treetable.cjs.js +58 -13
- package/treetable/treetable.cjs.min.js +1 -1
- package/treetable/treetable.esm.js +59 -14
- package/treetable/treetable.esm.min.js +1 -1
- package/treetable/treetable.js +58 -13
- package/treetable/treetable.min.js +1 -1
- package/vetur-attributes.json +8 -0
- package/vetur-tags.json +2 -0
- package/web-types.json +21 -1
package/tabmenu/tabmenu.esm.js
CHANGED
|
@@ -89,6 +89,8 @@ var script = {
|
|
|
89
89
|
},
|
|
90
90
|
mounted: function mounted() {
|
|
91
91
|
this.updateInkBar();
|
|
92
|
+
var activeItem = this.findActiveItem();
|
|
93
|
+
activeItem && (activeItem.tabIndex = '0');
|
|
92
94
|
},
|
|
93
95
|
updated: function updated() {
|
|
94
96
|
this.updateInkBar();
|
|
@@ -127,105 +129,104 @@ var script = {
|
|
|
127
129
|
index: index
|
|
128
130
|
});
|
|
129
131
|
},
|
|
130
|
-
onKeydownItem: function onKeydownItem(event, index) {
|
|
131
|
-
var i = index;
|
|
132
|
-
var foundElement = {};
|
|
133
|
-
var tabLinkRef = this.$refs.tabLink;
|
|
132
|
+
onKeydownItem: function onKeydownItem(event, item, index, navigate) {
|
|
134
133
|
switch (event.code) {
|
|
135
134
|
case 'ArrowRight':
|
|
136
135
|
{
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
this.navigateToNextItem(event.target);
|
|
137
|
+
event.preventDefault();
|
|
139
138
|
break;
|
|
140
139
|
}
|
|
141
140
|
case 'ArrowLeft':
|
|
142
141
|
{
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
this.navigateToPrevItem(event.target);
|
|
143
|
+
event.preventDefault();
|
|
145
144
|
break;
|
|
146
145
|
}
|
|
147
|
-
case '
|
|
146
|
+
case 'Home':
|
|
148
147
|
{
|
|
149
|
-
|
|
150
|
-
i = foundElement.i;
|
|
148
|
+
this.navigateToFirstItem(event.target);
|
|
151
149
|
event.preventDefault();
|
|
152
150
|
break;
|
|
153
151
|
}
|
|
154
|
-
case '
|
|
152
|
+
case 'End':
|
|
155
153
|
{
|
|
156
|
-
|
|
157
|
-
i = foundElement.i;
|
|
154
|
+
this.navigateToLastItem(event.target);
|
|
158
155
|
event.preventDefault();
|
|
159
156
|
break;
|
|
160
157
|
}
|
|
161
158
|
case 'Space':
|
|
162
159
|
case 'Enter':
|
|
163
160
|
{
|
|
164
|
-
|
|
165
|
-
event.currentTarget.click();
|
|
166
|
-
}
|
|
161
|
+
this.onItemClick(event, item, index, navigate);
|
|
167
162
|
event.preventDefault();
|
|
168
163
|
break;
|
|
169
164
|
}
|
|
170
165
|
case 'Tab':
|
|
171
166
|
{
|
|
172
|
-
this.
|
|
167
|
+
this.onTabKey();
|
|
173
168
|
break;
|
|
174
169
|
}
|
|
175
170
|
}
|
|
176
|
-
if (tabLinkRef[i] && tabLinkRef[index]) {
|
|
177
|
-
tabLinkRef[index].tabIndex = '-1';
|
|
178
|
-
tabLinkRef[i].tabIndex = '0';
|
|
179
|
-
tabLinkRef[i].focus();
|
|
180
|
-
}
|
|
181
171
|
},
|
|
182
|
-
|
|
183
|
-
var
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
172
|
+
navigateToNextItem: function navigateToNextItem(target) {
|
|
173
|
+
var nextItem = this.findNextItem(target);
|
|
174
|
+
nextItem && this.setFocusToMenuitem(target, nextItem);
|
|
175
|
+
},
|
|
176
|
+
navigateToPrevItem: function navigateToPrevItem(target) {
|
|
177
|
+
var prevItem = this.findPrevItem(target);
|
|
178
|
+
prevItem && this.setFocusToMenuitem(target, prevItem);
|
|
179
|
+
},
|
|
180
|
+
navigateToFirstItem: function navigateToFirstItem(target) {
|
|
181
|
+
var firstItem = this.findFirstItem(target);
|
|
182
|
+
firstItem && this.setFocusToMenuitem(target, firstItem);
|
|
183
|
+
},
|
|
184
|
+
navigateToLastItem: function navigateToLastItem(target) {
|
|
185
|
+
var lastItem = this.findLastItem(target);
|
|
186
|
+
lastItem && this.setFocusToMenuitem(target, lastItem);
|
|
195
187
|
},
|
|
196
|
-
|
|
197
|
-
var
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
188
|
+
findNextItem: function findNextItem(item) {
|
|
189
|
+
var nextItem = item.parentElement.nextElementSibling;
|
|
190
|
+
return nextItem ? DomHandler.getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0] : null;
|
|
191
|
+
},
|
|
192
|
+
findPrevItem: function findPrevItem(item) {
|
|
193
|
+
var prevItem = item.parentElement.previousElementSibling;
|
|
194
|
+
return prevItem ? DomHandler.getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0] : null;
|
|
195
|
+
},
|
|
196
|
+
findFirstItem: function findFirstItem() {
|
|
197
|
+
var firstSibling = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
|
|
198
|
+
return firstSibling ? firstSibling.children[0] : null;
|
|
199
|
+
},
|
|
200
|
+
findLastItem: function findLastItem() {
|
|
201
|
+
var siblings = DomHandler.find(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
|
|
202
|
+
return siblings ? siblings[siblings.length - 1].children[0] : null;
|
|
203
|
+
},
|
|
204
|
+
findActiveItem: function findActiveItem() {
|
|
205
|
+
var activeItem = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
|
|
206
|
+
return activeItem ? activeItem.children[0] : null;
|
|
207
|
+
},
|
|
208
|
+
setFocusToMenuitem: function setFocusToMenuitem(target, focusableItem) {
|
|
209
|
+
target.tabIndex = '-1';
|
|
210
|
+
focusableItem.tabIndex = '0';
|
|
211
|
+
focusableItem.focus();
|
|
212
|
+
},
|
|
213
|
+
onTabKey: function onTabKey() {
|
|
214
|
+
var activeItem = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
|
|
215
|
+
var focusedItem = DomHandler.findSingle(this.$refs.nav, '[data-pc-section="action"][tabindex="0"]');
|
|
216
|
+
if (focusedItem !== activeItem.children[0]) {
|
|
217
|
+
activeItem && (activeItem.children[0].tabIndex = '0');
|
|
218
|
+
focusedItem.tabIndex = '-1';
|
|
203
219
|
}
|
|
204
|
-
var prevItem = items[i];
|
|
205
|
-
if (prevItem) return DomHandler.getAttribute(prevItem, 'data-p-disabled') ? this.findPrevItem(items, i) : {
|
|
206
|
-
prevItem: prevItem,
|
|
207
|
-
i: i
|
|
208
|
-
};else return null;
|
|
209
220
|
},
|
|
210
221
|
visible: function visible(item) {
|
|
211
222
|
return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
|
|
212
223
|
},
|
|
213
224
|
disabled: function disabled(item) {
|
|
214
|
-
return typeof item.disabled === 'function' ? item.disabled() : item.disabled;
|
|
225
|
+
return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;
|
|
215
226
|
},
|
|
216
227
|
label: function label(item) {
|
|
217
228
|
return typeof item.label === 'function' ? item.label() : item.label;
|
|
218
229
|
},
|
|
219
|
-
setDefaultTabIndexes: function setDefaultTabIndexes(tabLinkRef) {
|
|
220
|
-
setTimeout(function () {
|
|
221
|
-
tabLinkRef.forEach(function (item) {
|
|
222
|
-
item.tabIndex = DomHandler.getAttribute(item.parentElement, 'data-p-highlight') ? '0' : '-1';
|
|
223
|
-
});
|
|
224
|
-
}, 300);
|
|
225
|
-
},
|
|
226
|
-
setTabIndex: function setTabIndex(index) {
|
|
227
|
-
return this.d_activeIndex === index ? '0' : '-1';
|
|
228
|
-
},
|
|
229
230
|
updateInkBar: function updateInkBar() {
|
|
230
231
|
var tabs = this.$refs.nav.children;
|
|
231
232
|
var inkHighlighted = false;
|
|
@@ -243,15 +244,6 @@ var script = {
|
|
|
243
244
|
}
|
|
244
245
|
}
|
|
245
246
|
},
|
|
246
|
-
computed: {
|
|
247
|
-
focusableItems: function focusableItems() {
|
|
248
|
-
var _this2 = this;
|
|
249
|
-
return (this.model || []).reduce(function (result, item) {
|
|
250
|
-
_this2.visible(item) && !_this2.disabled(item) && result.push(item);
|
|
251
|
-
return result;
|
|
252
|
-
}, []);
|
|
253
|
-
}
|
|
254
|
-
},
|
|
255
247
|
directives: {
|
|
256
248
|
ripple: Ripple
|
|
257
249
|
}
|
|
@@ -259,9 +251,9 @@ var script = {
|
|
|
259
251
|
|
|
260
252
|
var _hoisted_1 = ["aria-labelledby", "aria-label"];
|
|
261
253
|
var _hoisted_2 = ["data-p-highlight", "data-p-disabled"];
|
|
262
|
-
var _hoisted_3 = ["href", "aria-label", "aria-disabled", "
|
|
254
|
+
var _hoisted_3 = ["href", "aria-label", "aria-disabled", "onClick", "onKeydown"];
|
|
263
255
|
var _hoisted_4 = ["onClick", "onKeydown", "data-p-highlight", "data-p-disabled"];
|
|
264
|
-
var _hoisted_5 = ["href", "target", "aria-label", "aria-disabled"
|
|
256
|
+
var _hoisted_5 = ["href", "target", "aria-label", "aria-disabled"];
|
|
265
257
|
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
266
258
|
var _component_router_link = resolveComponent("router-link");
|
|
267
259
|
var _directive_ripple = resolveDirective("ripple");
|
|
@@ -275,7 +267,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
275
267
|
role: "menubar",
|
|
276
268
|
"aria-labelledby": _ctx.ariaLabelledby,
|
|
277
269
|
"aria-label": _ctx.ariaLabel
|
|
278
|
-
}, _ctx.ptm('menu')), [(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
270
|
+
}, _ctx.ptm('menu')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.model, function (item, i) {
|
|
279
271
|
return openBlock(), createElementBlock(Fragment, {
|
|
280
272
|
key: $options.label(item) + '_' + i.toString()
|
|
281
273
|
}, [item.to && !$options.disabled(item) ? (openBlock(), createBlock(_component_router_link, {
|
|
@@ -311,12 +303,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
311
303
|
"class": _ctx.cx('action'),
|
|
312
304
|
"aria-label": $options.label(item),
|
|
313
305
|
"aria-disabled": $options.disabled(item),
|
|
314
|
-
tabindex:
|
|
306
|
+
tabindex: -1,
|
|
315
307
|
onClick: function onClick($event) {
|
|
316
308
|
return $options.onItemClick($event, item, i, navigate);
|
|
317
309
|
},
|
|
318
310
|
onKeydown: function onKeydown($event) {
|
|
319
|
-
return $options.onKeydownItem($event, i, navigate);
|
|
311
|
+
return $options.onKeydownItem($event, item, i, navigate);
|
|
320
312
|
}
|
|
321
313
|
}, $options.getPTOptions('action', i)), [_ctx.$slots.itemicon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.itemicon), {
|
|
322
314
|
key: 0,
|
|
@@ -347,7 +339,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
347
339
|
return $options.onItemClick($event, item, i);
|
|
348
340
|
},
|
|
349
341
|
onKeydown: function onKeydown($event) {
|
|
350
|
-
return $options.onKeydownItem($event, i);
|
|
342
|
+
return $options.onKeydownItem($event, item, i);
|
|
351
343
|
}
|
|
352
344
|
}, $options.getPTOptions('menuitem', i), {
|
|
353
345
|
"data-p-highlight": $data.d_activeIndex === i,
|
|
@@ -362,7 +354,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
362
354
|
target: item.target,
|
|
363
355
|
"aria-label": $options.label(item),
|
|
364
356
|
"aria-disabled": $options.disabled(item),
|
|
365
|
-
tabindex:
|
|
357
|
+
tabindex: -1
|
|
366
358
|
}, $options.getPTOptions('action', i)), [_ctx.$slots.itemicon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.itemicon), {
|
|
367
359
|
key: 0,
|
|
368
360
|
item: item,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"primevue/ripple";import{DomHandler as t}from"primevue/utils";import n from"primevue/basecomponent";import{useStyle as i}from"primevue/usestyle";import{resolveComponent as a,resolveDirective as l,openBlock as r,createElementBlock as s,mergeProps as o,createElementVNode as d,Fragment as c,renderList as u,createBlock as m,withCtx as
|
|
1
|
+
import e from"primevue/ripple";import{DomHandler as t}from"primevue/utils";import n from"primevue/basecomponent";import{useStyle as i}from"primevue/usestyle";import{resolveComponent as a,resolveDirective as l,openBlock as r,createElementBlock as s,mergeProps as o,createElementVNode as d,Fragment as c,renderList as u,createBlock as m,withCtx as f,withDirectives as p,resolveDynamicComponent as b,normalizeClass as h,createCommentVNode as v,toDisplayString as x}from"vue";var g=i("\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}),I={name:"TabMenu",extends:{name:"BaseTabMenu",extends:n,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:g.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.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.getAttribute(n,"data-p-disabled")?this.findPrevItem(n.children[0]):n.children[0]:null},findFirstItem:function(){var e=t.findSingle(this.$refs.nav,'[data-pc-section="menuitem"][data-p-disabled="false"]');return e?e.children[0]:null},findLastItem:function(){var e=t.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.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.findSingle(this.$refs.nav,'[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]'),n=t.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.getAttribute(a,"data-p-highlight")&&(this.$refs.inkbar.style.width=t.getWidth(a)+"px",this.$refs.inkbar.style.left=t.getOffset(a).left-t.getOffset(this.$refs.nav).left+"px",n=!0)}n||(this.$refs.inkbar.style.width="0px",this.$refs.inkbar.style.left="0px")}},directives:{ripple:e}},y=["aria-labelledby","aria-label"],k=["data-p-highlight","data-p-disabled"],T=["href","aria-label","aria-disabled","onClick","onKeydown"],$=["onClick","onKeydown","data-p-highlight","data-p-disabled"],w=["href","target","aria-label","aria-disabled"];I.render=function(e,t,n,i,g,I){var A=a("router-link"),P=l("ripple");return r(),s("div",o({class:e.cx("root")},e.ptm("root"),{"data-pc-name":"tabmenu"}),[d("ul",o({ref:"nav",class:e.cx("menu"),role:"menubar","aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel},e.ptm("menu")),[(r(!0),s(c,null,u(e.model,(function(t,n){return r(),s(c,{key:I.label(t)+"_"+n.toString()},[t.to&&!I.disabled(t)?(r(),m(A,{key:0,to:t.to,custom:""},{default:f((function(i){var a=i.navigate,l=i.href,c=i.isActive,u=i.isExactActive;return[I.visible(t)?(r(),s("li",o({key:0,ref_for:!0,ref:"tab",class:[e.cx("menuitem",{item:t,isActive:c,isExactActive:u}),t.class],style:t.style,role:"presentation"},I.getPTOptions("menuitem",n),{"data-p-highlight":e.exact?u:c,"data-p-disabled":I.disabled(t)}),[e.$slots.item?(r(),m(b(e.$slots.item),{key:1,item:t,index:n},null,8,["item","index"])):p((r(),s("a",o({key:0,ref_for:!0,ref:"tabLink",role:"menuitem",href:l,class:e.cx("action"),"aria-label":I.label(t),"aria-disabled":I.disabled(t),tabindex:-1,onClick:function(e){return I.onItemClick(e,t,n,a)},onKeydown:function(e){return I.onKeydownItem(e,t,n,a)}},I.getPTOptions("action",n)),[e.$slots.itemicon?(r(),m(b(e.$slots.itemicon),{key:0,item:t,class:h([e.cx("icon"),t.icon])},null,8,["item","class"])):t.icon?(r(),s("span",o({key:1,class:[e.cx("icon"),t.icon]},I.getPTOptions("icon",n)),null,16)):v("",!0),d("span",o({class:e.cx("label")},I.getPTOptions("label",n)),x(I.label(t)),17)],16,T)),[[P]])],16,k)):v("",!0)]})),_:2},1032,["to"])):I.visible(t)?(r(),s("li",o({key:1,ref_for:!0,ref:"tab",class:[e.cx("menuitem",{item:t,index:n}),t.class],role:"presentation",onClick:function(e){return I.onItemClick(e,t,n)},onKeydown:function(e){return I.onKeydownItem(e,t,n)}},I.getPTOptions("menuitem",n),{"data-p-highlight":g.d_activeIndex===n,"data-p-disabled":I.disabled(t)}),[e.$slots.item?(r(),m(b(e.$slots.item),{key:1,item:t,index:n},null,8,["item","index"])):p((r(),s("a",o({key:0,ref_for:!0,ref:"tabLink",role:"menuitem",href:t.url,class:e.cx("action"),target:t.target,"aria-label":I.label(t),"aria-disabled":I.disabled(t),tabindex:-1},I.getPTOptions("action",n)),[e.$slots.itemicon?(r(),m(b(e.$slots.itemicon),{key:0,item:t,class:h([e.cx("icon"),t.icon])},null,8,["item","class"])):t.icon?(r(),s("span",o({key:1,class:[e.cx("icon"),t.icon]},I.getPTOptions("icon",n)),null,16)):v("",!0),d("span",o({class:e.cx("label")},I.getPTOptions("label",n)),x(I.label(t)),17)],16,w)),[[P]])],16,$)):v("",!0)],64)})),128)),d("li",o({ref:"inkbar",role:"none",class:e.cx("inkbar")},e.ptm("inkbar")),null,16)],16,y)],16)};export{I as default};
|
package/tabmenu/tabmenu.js
CHANGED
|
@@ -92,6 +92,8 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
92
92
|
},
|
|
93
93
|
mounted: function mounted() {
|
|
94
94
|
this.updateInkBar();
|
|
95
|
+
var activeItem = this.findActiveItem();
|
|
96
|
+
activeItem && (activeItem.tabIndex = '0');
|
|
95
97
|
},
|
|
96
98
|
updated: function updated() {
|
|
97
99
|
this.updateInkBar();
|
|
@@ -130,105 +132,104 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
130
132
|
index: index
|
|
131
133
|
});
|
|
132
134
|
},
|
|
133
|
-
onKeydownItem: function onKeydownItem(event, index) {
|
|
134
|
-
var i = index;
|
|
135
|
-
var foundElement = {};
|
|
136
|
-
var tabLinkRef = this.$refs.tabLink;
|
|
135
|
+
onKeydownItem: function onKeydownItem(event, item, index, navigate) {
|
|
137
136
|
switch (event.code) {
|
|
138
137
|
case 'ArrowRight':
|
|
139
138
|
{
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
this.navigateToNextItem(event.target);
|
|
140
|
+
event.preventDefault();
|
|
142
141
|
break;
|
|
143
142
|
}
|
|
144
143
|
case 'ArrowLeft':
|
|
145
144
|
{
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
this.navigateToPrevItem(event.target);
|
|
146
|
+
event.preventDefault();
|
|
148
147
|
break;
|
|
149
148
|
}
|
|
150
|
-
case '
|
|
149
|
+
case 'Home':
|
|
151
150
|
{
|
|
152
|
-
|
|
153
|
-
i = foundElement.i;
|
|
151
|
+
this.navigateToFirstItem(event.target);
|
|
154
152
|
event.preventDefault();
|
|
155
153
|
break;
|
|
156
154
|
}
|
|
157
|
-
case '
|
|
155
|
+
case 'End':
|
|
158
156
|
{
|
|
159
|
-
|
|
160
|
-
i = foundElement.i;
|
|
157
|
+
this.navigateToLastItem(event.target);
|
|
161
158
|
event.preventDefault();
|
|
162
159
|
break;
|
|
163
160
|
}
|
|
164
161
|
case 'Space':
|
|
165
162
|
case 'Enter':
|
|
166
163
|
{
|
|
167
|
-
|
|
168
|
-
event.currentTarget.click();
|
|
169
|
-
}
|
|
164
|
+
this.onItemClick(event, item, index, navigate);
|
|
170
165
|
event.preventDefault();
|
|
171
166
|
break;
|
|
172
167
|
}
|
|
173
168
|
case 'Tab':
|
|
174
169
|
{
|
|
175
|
-
this.
|
|
170
|
+
this.onTabKey();
|
|
176
171
|
break;
|
|
177
172
|
}
|
|
178
173
|
}
|
|
179
|
-
if (tabLinkRef[i] && tabLinkRef[index]) {
|
|
180
|
-
tabLinkRef[index].tabIndex = '-1';
|
|
181
|
-
tabLinkRef[i].tabIndex = '0';
|
|
182
|
-
tabLinkRef[i].focus();
|
|
183
|
-
}
|
|
184
174
|
},
|
|
185
|
-
|
|
186
|
-
var
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
175
|
+
navigateToNextItem: function navigateToNextItem(target) {
|
|
176
|
+
var nextItem = this.findNextItem(target);
|
|
177
|
+
nextItem && this.setFocusToMenuitem(target, nextItem);
|
|
178
|
+
},
|
|
179
|
+
navigateToPrevItem: function navigateToPrevItem(target) {
|
|
180
|
+
var prevItem = this.findPrevItem(target);
|
|
181
|
+
prevItem && this.setFocusToMenuitem(target, prevItem);
|
|
182
|
+
},
|
|
183
|
+
navigateToFirstItem: function navigateToFirstItem(target) {
|
|
184
|
+
var firstItem = this.findFirstItem(target);
|
|
185
|
+
firstItem && this.setFocusToMenuitem(target, firstItem);
|
|
186
|
+
},
|
|
187
|
+
navigateToLastItem: function navigateToLastItem(target) {
|
|
188
|
+
var lastItem = this.findLastItem(target);
|
|
189
|
+
lastItem && this.setFocusToMenuitem(target, lastItem);
|
|
198
190
|
},
|
|
199
|
-
|
|
200
|
-
var
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
191
|
+
findNextItem: function findNextItem(item) {
|
|
192
|
+
var nextItem = item.parentElement.nextElementSibling;
|
|
193
|
+
return nextItem ? utils.DomHandler.getAttribute(nextItem, 'data-p-disabled') === true ? this.findNextItem(nextItem.children[0]) : nextItem.children[0] : null;
|
|
194
|
+
},
|
|
195
|
+
findPrevItem: function findPrevItem(item) {
|
|
196
|
+
var prevItem = item.parentElement.previousElementSibling;
|
|
197
|
+
return prevItem ? utils.DomHandler.getAttribute(prevItem, 'data-p-disabled') === true ? this.findPrevItem(prevItem.children[0]) : prevItem.children[0] : null;
|
|
198
|
+
},
|
|
199
|
+
findFirstItem: function findFirstItem() {
|
|
200
|
+
var firstSibling = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
|
|
201
|
+
return firstSibling ? firstSibling.children[0] : null;
|
|
202
|
+
},
|
|
203
|
+
findLastItem: function findLastItem() {
|
|
204
|
+
var siblings = utils.DomHandler.find(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"]');
|
|
205
|
+
return siblings ? siblings[siblings.length - 1].children[0] : null;
|
|
206
|
+
},
|
|
207
|
+
findActiveItem: function findActiveItem() {
|
|
208
|
+
var activeItem = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
|
|
209
|
+
return activeItem ? activeItem.children[0] : null;
|
|
210
|
+
},
|
|
211
|
+
setFocusToMenuitem: function setFocusToMenuitem(target, focusableItem) {
|
|
212
|
+
target.tabIndex = '-1';
|
|
213
|
+
focusableItem.tabIndex = '0';
|
|
214
|
+
focusableItem.focus();
|
|
215
|
+
},
|
|
216
|
+
onTabKey: function onTabKey() {
|
|
217
|
+
var activeItem = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="menuitem"][data-p-disabled="false"][data-p-highlight="true"]');
|
|
218
|
+
var focusedItem = utils.DomHandler.findSingle(this.$refs.nav, '[data-pc-section="action"][tabindex="0"]');
|
|
219
|
+
if (focusedItem !== activeItem.children[0]) {
|
|
220
|
+
activeItem && (activeItem.children[0].tabIndex = '0');
|
|
221
|
+
focusedItem.tabIndex = '-1';
|
|
206
222
|
}
|
|
207
|
-
var prevItem = items[i];
|
|
208
|
-
if (prevItem) return utils.DomHandler.getAttribute(prevItem, 'data-p-disabled') ? this.findPrevItem(items, i) : {
|
|
209
|
-
prevItem: prevItem,
|
|
210
|
-
i: i
|
|
211
|
-
};else return null;
|
|
212
223
|
},
|
|
213
224
|
visible: function visible(item) {
|
|
214
225
|
return typeof item.visible === 'function' ? item.visible() : item.visible !== false;
|
|
215
226
|
},
|
|
216
227
|
disabled: function disabled(item) {
|
|
217
|
-
return typeof item.disabled === 'function' ? item.disabled() : item.disabled;
|
|
228
|
+
return typeof item.disabled === 'function' ? item.disabled() : item.disabled === true;
|
|
218
229
|
},
|
|
219
230
|
label: function label(item) {
|
|
220
231
|
return typeof item.label === 'function' ? item.label() : item.label;
|
|
221
232
|
},
|
|
222
|
-
setDefaultTabIndexes: function setDefaultTabIndexes(tabLinkRef) {
|
|
223
|
-
setTimeout(function () {
|
|
224
|
-
tabLinkRef.forEach(function (item) {
|
|
225
|
-
item.tabIndex = utils.DomHandler.getAttribute(item.parentElement, 'data-p-highlight') ? '0' : '-1';
|
|
226
|
-
});
|
|
227
|
-
}, 300);
|
|
228
|
-
},
|
|
229
|
-
setTabIndex: function setTabIndex(index) {
|
|
230
|
-
return this.d_activeIndex === index ? '0' : '-1';
|
|
231
|
-
},
|
|
232
233
|
updateInkBar: function updateInkBar() {
|
|
233
234
|
var tabs = this.$refs.nav.children;
|
|
234
235
|
var inkHighlighted = false;
|
|
@@ -246,15 +247,6 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
249
|
},
|
|
249
|
-
computed: {
|
|
250
|
-
focusableItems: function focusableItems() {
|
|
251
|
-
var _this2 = this;
|
|
252
|
-
return (this.model || []).reduce(function (result, item) {
|
|
253
|
-
_this2.visible(item) && !_this2.disabled(item) && result.push(item);
|
|
254
|
-
return result;
|
|
255
|
-
}, []);
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
250
|
directives: {
|
|
259
251
|
ripple: Ripple__default["default"]
|
|
260
252
|
}
|
|
@@ -262,9 +254,9 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
262
254
|
|
|
263
255
|
var _hoisted_1 = ["aria-labelledby", "aria-label"];
|
|
264
256
|
var _hoisted_2 = ["data-p-highlight", "data-p-disabled"];
|
|
265
|
-
var _hoisted_3 = ["href", "aria-label", "aria-disabled", "
|
|
257
|
+
var _hoisted_3 = ["href", "aria-label", "aria-disabled", "onClick", "onKeydown"];
|
|
266
258
|
var _hoisted_4 = ["onClick", "onKeydown", "data-p-highlight", "data-p-disabled"];
|
|
267
|
-
var _hoisted_5 = ["href", "target", "aria-label", "aria-disabled"
|
|
259
|
+
var _hoisted_5 = ["href", "target", "aria-label", "aria-disabled"];
|
|
268
260
|
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
269
261
|
var _component_router_link = vue.resolveComponent("router-link");
|
|
270
262
|
var _directive_ripple = vue.resolveDirective("ripple");
|
|
@@ -278,7 +270,7 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
278
270
|
role: "menubar",
|
|
279
271
|
"aria-labelledby": _ctx.ariaLabelledby,
|
|
280
272
|
"aria-label": _ctx.ariaLabel
|
|
281
|
-
}, _ctx.ptm('menu')), [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(
|
|
273
|
+
}, _ctx.ptm('menu')), [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.model, function (item, i) {
|
|
282
274
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
283
275
|
key: $options.label(item) + '_' + i.toString()
|
|
284
276
|
}, [item.to && !$options.disabled(item) ? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
@@ -314,12 +306,12 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
314
306
|
"class": _ctx.cx('action'),
|
|
315
307
|
"aria-label": $options.label(item),
|
|
316
308
|
"aria-disabled": $options.disabled(item),
|
|
317
|
-
tabindex:
|
|
309
|
+
tabindex: -1,
|
|
318
310
|
onClick: function onClick($event) {
|
|
319
311
|
return $options.onItemClick($event, item, i, navigate);
|
|
320
312
|
},
|
|
321
313
|
onKeydown: function onKeydown($event) {
|
|
322
|
-
return $options.onKeydownItem($event, i, navigate);
|
|
314
|
+
return $options.onKeydownItem($event, item, i, navigate);
|
|
323
315
|
}
|
|
324
316
|
}, $options.getPTOptions('action', i)), [_ctx.$slots.itemicon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.$slots.itemicon), {
|
|
325
317
|
key: 0,
|
|
@@ -350,7 +342,7 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
350
342
|
return $options.onItemClick($event, item, i);
|
|
351
343
|
},
|
|
352
344
|
onKeydown: function onKeydown($event) {
|
|
353
|
-
return $options.onKeydownItem($event, i);
|
|
345
|
+
return $options.onKeydownItem($event, item, i);
|
|
354
346
|
}
|
|
355
347
|
}, $options.getPTOptions('menuitem', i), {
|
|
356
348
|
"data-p-highlight": $data.d_activeIndex === i,
|
|
@@ -365,7 +357,7 @@ this.primevue.tabmenu = (function (Ripple, utils, BaseComponent, usestyle, vue)
|
|
|
365
357
|
target: item.target,
|
|
366
358
|
"aria-label": $options.label(item),
|
|
367
359
|
"aria-disabled": $options.disabled(item),
|
|
368
|
-
tabindex:
|
|
360
|
+
tabindex: -1
|
|
369
361
|
}, $options.getPTOptions('action', i)), [_ctx.$slots.itemicon ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.$slots.itemicon), {
|
|
370
362
|
key: 0,
|
|
371
363
|
item: item,
|
package/tabmenu/tabmenu.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
this.primevue=this.primevue||{},this.primevue.tabmenu=function(e,t,n,i,a){"use strict";function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var
|
|
1
|
+
this.primevue=this.primevue||{},this.primevue.tabmenu=function(e,t,n,i,a){"use strict";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"];return 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)},c}(primevue.ripple,primevue.utils,primevue.basecomponent,primevue.usestyle,Vue);
|
package/tabview/TabView.vue
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
:aria-label="prevButtonAriaLabel"
|
|
12
12
|
@click="onPrevButtonClick"
|
|
13
13
|
v-bind="{ ...previousButtonProps, ...ptm('previousButton') }"
|
|
14
|
+
data-pc-group-section="navbutton"
|
|
14
15
|
>
|
|
15
16
|
<slot name="previcon">
|
|
16
17
|
<component :is="prevIcon ? 'span' : 'ChevronLeftIcon'" aria-hidden="true" :class="prevIcon" v-bind="ptm('previousIcon')" />
|
|
@@ -61,6 +62,7 @@
|
|
|
61
62
|
:aria-label="nextButtonAriaLabel"
|
|
62
63
|
@click="onNextButtonClick"
|
|
63
64
|
v-bind="{ ...nextButtonProps, ...ptm('nextButton') }"
|
|
65
|
+
data-pc-group-section="navbutton"
|
|
64
66
|
>
|
|
65
67
|
<slot name="nexticon">
|
|
66
68
|
<component :is="nextIcon ? 'span' : 'ChevronRightIcon'" aria-hidden="true" :class="nextIcon" v-bind="ptm('nextIcon')" />
|
package/tabview/tabview.cjs.js
CHANGED
|
@@ -400,7 +400,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
400
400
|
onClick: _cache[0] || (_cache[0] = function () {
|
|
401
401
|
return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);
|
|
402
402
|
})
|
|
403
|
-
}, _objectSpread(_objectSpread({}, _ctx.previousButtonProps), _ctx.ptm('previousButton'))
|
|
403
|
+
}, _objectSpread(_objectSpread({}, _ctx.previousButtonProps), _ctx.ptm('previousButton')), {
|
|
404
|
+
"data-pc-group-section": "navbutton"
|
|
405
|
+
}), [vue.renderSlot(_ctx.$slots, "previcon", {}, function () {
|
|
404
406
|
return [(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.prevIcon ? 'span' : 'ChevronLeftIcon'), vue.mergeProps({
|
|
405
407
|
"aria-hidden": "true",
|
|
406
408
|
"class": _ctx.prevIcon
|
|
@@ -465,7 +467,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
465
467
|
onClick: _cache[2] || (_cache[2] = function () {
|
|
466
468
|
return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);
|
|
467
469
|
})
|
|
468
|
-
}, _objectSpread(_objectSpread({}, _ctx.nextButtonProps), _ctx.ptm('nextButton'))
|
|
470
|
+
}, _objectSpread(_objectSpread({}, _ctx.nextButtonProps), _ctx.ptm('nextButton')), {
|
|
471
|
+
"data-pc-group-section": "navbutton"
|
|
472
|
+
}), [vue.renderSlot(_ctx.$slots, "nexticon", {}, function () {
|
|
469
473
|
return [(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.nextIcon ? 'span' : 'ChevronRightIcon'), vue.mergeProps({
|
|
470
474
|
"aria-hidden": "true",
|
|
471
475
|
"class": _ctx.nextIcon
|