primeng 16.0.2 → 16.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +35 -11
- package/api/translation.d.ts +23 -0
- package/api/treenode.d.ts +1 -1
- package/avatar/avatar.d.ts +11 -1
- package/breadcrumb/breadcrumb.d.ts +5 -1
- package/button/button.d.ts +3 -0
- package/chip/chip.d.ts +1 -0
- package/contextmenu/contextmenu.d.ts +157 -67
- package/dock/dock.d.ts +47 -2
- package/dom/domhandler.d.ts +1 -0
- package/esm2022/accordion/accordion.mjs +177 -43
- package/esm2022/api/primengconfig.mjs +75 -2
- package/esm2022/api/translation.mjs +1 -1
- package/esm2022/api/treenode.mjs +1 -1
- package/esm2022/autocomplete/autocomplete.mjs +3 -3
- package/esm2022/avatar/avatar.mjs +18 -4
- package/esm2022/blockui/blockui.mjs +19 -3
- package/esm2022/breadcrumb/breadcrumb.mjs +50 -33
- package/esm2022/button/button.mjs +4 -1
- package/esm2022/card/card.mjs +3 -3
- package/esm2022/chip/chip.mjs +18 -13
- package/esm2022/contextmenu/contextmenu.mjs +993 -547
- package/esm2022/divider/divider.mjs +3 -3
- package/esm2022/dock/dock.mjs +284 -86
- package/esm2022/dom/domhandler.mjs +19 -7
- package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +4 -1
- package/esm2022/fieldset/fieldset.mjs +59 -32
- package/esm2022/image/image.mjs +11 -3
- package/esm2022/inplace/inplace.mjs +18 -11
- package/esm2022/megamenu/megamenu.mjs +997 -348
- package/esm2022/menu/menu.mjs +397 -166
- package/esm2022/menubar/menubar.mjs +895 -282
- package/esm2022/orderlist/orderlist.mjs +9 -15
- package/esm2022/panel/panel.mjs +44 -33
- package/esm2022/panelmenu/panelmenu.mjs +982 -344
- package/esm2022/progressbar/progressbar.mjs +19 -15
- package/esm2022/progressspinner/progressspinner.mjs +5 -5
- package/esm2022/ripple/ripple.mjs +3 -1
- package/esm2022/scrollpanel/scrollpanel.mjs +195 -23
- package/esm2022/scrolltop/scrolltop.mjs +11 -2
- package/esm2022/skeleton/skeleton.mjs +3 -3
- package/esm2022/slidemenu/slidemenu.mjs +1059 -372
- package/esm2022/splitbutton/splitbutton.mjs +2 -2
- package/esm2022/splitter/splitter.mjs +160 -29
- package/esm2022/steps/steps.mjs +112 -22
- package/esm2022/table/table.mjs +13 -7
- package/esm2022/tabmenu/tabmenu.mjs +191 -63
- package/esm2022/tabview/tabview.mjs +173 -39
- package/esm2022/terminal/terminal.mjs +3 -3
- package/esm2022/tieredmenu/tieredmenu.mjs +868 -392
- package/esm2022/toolbar/toolbar.mjs +17 -10
- package/esm2022/tooltip/tooltip.mjs +1 -1
- package/esm2022/tree/tree.mjs +3 -3
- package/esm2022/treetable/treetable.mjs +17 -17
- package/esm2022/utils/objectutils.mjs +31 -1
- package/esm2022/utils/uniquecomponentid.mjs +2 -3
- package/fesm2022/primeng-accordion.mjs +176 -42
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +74 -1
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +2 -2
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +17 -3
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +18 -2
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +49 -32
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +3 -0
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +2 -2
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +17 -12
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +992 -546
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -2
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +283 -85
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +18 -6
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +3 -0
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +57 -30
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +10 -2
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +17 -10
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +996 -348
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +396 -165
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +894 -281
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +8 -14
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +44 -33
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +981 -344
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +18 -14
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +4 -4
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +2 -0
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +194 -22
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +10 -1
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +2 -2
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slidemenu.mjs +1058 -371
- package/fesm2022/primeng-slidemenu.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +1 -1
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +160 -29
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +111 -21
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +12 -6
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +190 -62
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +172 -38
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +2 -2
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +867 -391
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +16 -9
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +2 -2
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +16 -16
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-utils.mjs +31 -2
- package/fesm2022/primeng-utils.mjs.map +1 -1
- package/fieldset/fieldset.d.ts +6 -5
- package/image/image.d.ts +1 -0
- package/inplace/inplace.d.ts +6 -1
- package/megamenu/megamenu.d.ts +137 -15
- package/menu/menu.d.ts +64 -7
- package/menubar/menubar.d.ts +116 -22
- package/orderlist/orderlist.d.ts +2 -1
- package/package.json +124 -124
- package/panel/panel.d.ts +6 -5
- package/panelmenu/panelmenu.d.ts +134 -22
- package/resources/components/autocomplete/autocomplete.css +9 -8
- package/resources/components/breadcrumb/breadcrumb.css +9 -3
- package/resources/components/common/common.css +1 -1
- package/resources/components/contextmenu/contextmenu.css +1 -7
- package/resources/components/dock/dock.css +1 -1
- package/resources/components/megamenu/megamenu.css +9 -10
- package/resources/components/panelmenu/panelmenu.css +4 -2
- package/resources/components/slidemenu/slidemenu.css +40 -41
- package/resources/primeng.css +1 -1
- package/resources/primeng.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +342 -390
- package/resources/themes/arya-green/theme.css +342 -390
- package/resources/themes/arya-orange/theme.css +342 -390
- package/resources/themes/arya-purple/theme.css +342 -390
- package/resources/themes/bootstrap4-dark-blue/theme.css +357 -416
- package/resources/themes/bootstrap4-dark-purple/theme.css +357 -416
- package/resources/themes/bootstrap4-light-blue/theme.css +369 -428
- package/resources/themes/bootstrap4-light-purple/theme.css +369 -428
- package/resources/themes/fluent-light/theme.css +352 -400
- package/resources/themes/lara-dark-blue/theme.css +344 -392
- package/resources/themes/lara-dark-indigo/theme.css +344 -392
- package/resources/themes/lara-dark-purple/theme.css +344 -392
- package/resources/themes/lara-dark-teal/theme.css +344 -392
- package/resources/themes/lara-light-blue/theme.css +370 -418
- package/resources/themes/lara-light-indigo/theme.css +370 -418
- package/resources/themes/lara-light-purple/theme.css +370 -418
- package/resources/themes/lara-light-teal/theme.css +370 -418
- package/resources/themes/luna-amber/theme.css +360 -408
- package/resources/themes/luna-blue/theme.css +360 -408
- package/resources/themes/luna-green/theme.css +360 -408
- package/resources/themes/luna-pink/theme.css +360 -408
- package/resources/themes/md-dark-deeppurple/theme.css +373 -403
- package/resources/themes/md-dark-indigo/theme.css +373 -403
- package/resources/themes/md-light-deeppurple/theme.css +373 -403
- package/resources/themes/md-light-indigo/theme.css +373 -403
- package/resources/themes/mdc-dark-deeppurple/theme.css +373 -403
- package/resources/themes/mdc-dark-indigo/theme.css +373 -403
- package/resources/themes/mdc-light-deeppurple/theme.css +373 -403
- package/resources/themes/mdc-light-indigo/theme.css +373 -403
- package/resources/themes/mira/theme.css +347 -395
- package/resources/themes/nano/theme.css +348 -396
- package/resources/themes/nova/theme.css +336 -384
- package/resources/themes/nova-accent/theme.css +336 -384
- package/resources/themes/nova-alt/theme.css +336 -384
- package/resources/themes/rhea/theme.css +336 -384
- package/resources/themes/saga-blue/theme.css +348 -396
- package/resources/themes/saga-green/theme.css +348 -396
- package/resources/themes/saga-orange/theme.css +348 -396
- package/resources/themes/saga-purple/theme.css +348 -396
- package/resources/themes/soho-dark/theme.css +362 -410
- package/resources/themes/soho-light/theme.css +370 -418
- package/resources/themes/tailwind-light/theme.css +361 -409
- package/resources/themes/vela-blue/theme.css +348 -396
- package/resources/themes/vela-green/theme.css +348 -396
- package/resources/themes/vela-orange/theme.css +348 -396
- package/resources/themes/vela-purple/theme.css +348 -396
- package/resources/themes/viva-dark/theme.css +342 -390
- package/resources/themes/viva-light/theme.css +348 -396
- package/scrollpanel/scrollpanel.d.ts +22 -4
- package/scrolltop/scrolltop.d.ts +6 -1
- package/slidemenu/slidemenu.d.ts +192 -88
- package/splitter/splitter.d.ts +18 -5
- package/steps/steps.d.ts +20 -3
- package/table/table.d.ts +3 -1
- package/tabmenu/tabmenu.d.ts +24 -1
- package/tabview/tabview.d.ts +26 -3
- package/tieredmenu/tieredmenu.d.ts +134 -50
- package/toolbar/toolbar.d.ts +6 -1
- package/tooltip/tooltip.d.ts +1 -1
- package/utils/objectutils.d.ts +4 -0
- package/utils/uniquecomponentid.d.ts +1 -1
@@ -11,13 +11,14 @@ import * as i3 from 'primeng/ripple';
|
|
11
11
|
import { RippleModule } from 'primeng/ripple';
|
12
12
|
import * as i2 from 'primeng/tooltip';
|
13
13
|
import { TooltipModule } from 'primeng/tooltip';
|
14
|
+
import { UniqueComponentId } from 'primeng/utils';
|
14
15
|
|
15
|
-
let idx = 0;
|
16
16
|
/**
|
17
17
|
* TabPanel is a helper component for TabView component.
|
18
18
|
* @group Components
|
19
19
|
*/
|
20
20
|
class TabPanel {
|
21
|
+
el;
|
21
22
|
viewContainer;
|
22
23
|
cd;
|
23
24
|
/**
|
@@ -137,17 +138,19 @@ class TabPanel {
|
|
137
138
|
_leftIcon;
|
138
139
|
_rightIcon = undefined;
|
139
140
|
loaded = false;
|
140
|
-
id
|
141
|
+
id;
|
141
142
|
contentTemplate;
|
142
143
|
headerTemplate;
|
143
144
|
leftIconTemplate;
|
144
145
|
rightIconTemplate;
|
145
146
|
closeIconTemplate;
|
146
147
|
tabView;
|
147
|
-
constructor(tabView, viewContainer, cd) {
|
148
|
+
constructor(tabView, el, viewContainer, cd) {
|
149
|
+
this.el = el;
|
148
150
|
this.viewContainer = viewContainer;
|
149
151
|
this.cd = cd;
|
150
152
|
this.tabView = tabView;
|
153
|
+
this.id = UniqueComponentId();
|
151
154
|
}
|
152
155
|
ngAfterContentInit() {
|
153
156
|
this.templates.forEach((item) => {
|
@@ -176,9 +179,18 @@ class TabPanel {
|
|
176
179
|
ngOnDestroy() {
|
177
180
|
this.view = null;
|
178
181
|
}
|
179
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TabPanel, deps: [{ token: forwardRef(() => TabView) }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
182
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TabPanel, deps: [{ token: forwardRef(() => TabView) }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
180
183
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TabPanel, selector: "p-tabPanel", inputs: { closable: "closable", headerStyle: "headerStyle", headerStyleClass: "headerStyleClass", cache: "cache", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", selected: "selected", disabled: "disabled", header: "header", leftIcon: "leftIcon", rightIcon: "rightIcon" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: `
|
181
|
-
<div
|
184
|
+
<div
|
185
|
+
*ngIf="!closed"
|
186
|
+
class="p-tabview-panel"
|
187
|
+
role="tabpanel"
|
188
|
+
[hidden]="!selected"
|
189
|
+
[attr.id]="tabView.getTabContentId(id)"
|
190
|
+
[attr.aria-hidden]="!selected"
|
191
|
+
[attr.aria-labelledby]="tabView.getTabHeaderActionId(id)"
|
192
|
+
[attr.data-pc-name]="'tabpanel'"
|
193
|
+
>
|
182
194
|
<ng-content></ng-content>
|
183
195
|
<ng-container *ngIf="contentTemplate && (cache ? loaded : selected)">
|
184
196
|
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
@@ -191,7 +203,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
191
203
|
args: [{
|
192
204
|
selector: 'p-tabPanel',
|
193
205
|
template: `
|
194
|
-
<div
|
206
|
+
<div
|
207
|
+
*ngIf="!closed"
|
208
|
+
class="p-tabview-panel"
|
209
|
+
role="tabpanel"
|
210
|
+
[hidden]="!selected"
|
211
|
+
[attr.id]="tabView.getTabContentId(id)"
|
212
|
+
[attr.aria-hidden]="!selected"
|
213
|
+
[attr.aria-labelledby]="tabView.getTabHeaderActionId(id)"
|
214
|
+
[attr.data-pc-name]="'tabpanel'"
|
215
|
+
>
|
195
216
|
<ng-content></ng-content>
|
196
217
|
<ng-container *ngIf="contentTemplate && (cache ? loaded : selected)">
|
197
218
|
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
@@ -205,7 +226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
205
226
|
}], ctorParameters: function () { return [{ type: TabView, decorators: [{
|
206
227
|
type: Inject,
|
207
228
|
args: [forwardRef(() => TabView)]
|
208
|
-
}] }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { closable: [{
|
229
|
+
}] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { closable: [{
|
209
230
|
type: Input
|
210
231
|
}], headerStyle: [{
|
211
232
|
type: Input
|
@@ -285,6 +306,16 @@ class TabView {
|
|
285
306
|
this.updateScrollBar(val);
|
286
307
|
}
|
287
308
|
}
|
309
|
+
/**
|
310
|
+
* When enabled, the focused tab is activated.
|
311
|
+
* @group Props
|
312
|
+
*/
|
313
|
+
selectOnFocus = false;
|
314
|
+
/**
|
315
|
+
* Index of the element in tabbing order.
|
316
|
+
* @group Props
|
317
|
+
*/
|
318
|
+
tabindex = 0;
|
288
319
|
/**
|
289
320
|
* Callback to invoke on tab change.
|
290
321
|
* @param {TabViewChangeEvent} event - Custom tab change event
|
@@ -354,6 +385,12 @@ class TabView {
|
|
354
385
|
this.tabChangesSubscription.unsubscribe();
|
355
386
|
}
|
356
387
|
}
|
388
|
+
getTabHeaderActionId(tabId) {
|
389
|
+
return `${tabId}_header_action`;
|
390
|
+
}
|
391
|
+
getTabContentId(tabId) {
|
392
|
+
return `${tabId}_content`;
|
393
|
+
}
|
357
394
|
initTabs() {
|
358
395
|
this.tabs = this.tabPanels.toArray();
|
359
396
|
let selectedTab = this.findSelectedTab();
|
@@ -366,6 +403,93 @@ class TabView {
|
|
366
403
|
}
|
367
404
|
this.cd.markForCheck();
|
368
405
|
}
|
406
|
+
onTabKeyDown(event, tab) {
|
407
|
+
switch (event.code) {
|
408
|
+
case 'ArrowLeft':
|
409
|
+
this.onTabArrowLeftKey(event);
|
410
|
+
break;
|
411
|
+
case 'ArrowRight':
|
412
|
+
this.onTabArrowRightKey(event);
|
413
|
+
break;
|
414
|
+
case 'Home':
|
415
|
+
this.onTabHomeKey(event);
|
416
|
+
break;
|
417
|
+
case 'End':
|
418
|
+
this.onTabEndKey(event);
|
419
|
+
break;
|
420
|
+
case 'PageDown':
|
421
|
+
this.onTabEndKey(event);
|
422
|
+
break;
|
423
|
+
case 'PageUp':
|
424
|
+
this.onTabHomeKey(event);
|
425
|
+
break;
|
426
|
+
case 'Enter':
|
427
|
+
case 'Space':
|
428
|
+
this.open(event, tab);
|
429
|
+
break;
|
430
|
+
default:
|
431
|
+
break;
|
432
|
+
}
|
433
|
+
}
|
434
|
+
onTabArrowLeftKey(event) {
|
435
|
+
const prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);
|
436
|
+
const index = DomHandler.getAttribute(prevHeaderAction, 'data-pc-index');
|
437
|
+
prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction, index) : this.onTabEndKey(event);
|
438
|
+
event.preventDefault();
|
439
|
+
}
|
440
|
+
onTabArrowRightKey(event) {
|
441
|
+
const nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);
|
442
|
+
const index = DomHandler.getAttribute(nextHeaderAction, 'data-pc-index');
|
443
|
+
nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction, index) : this.onTabHomeKey(event);
|
444
|
+
event.preventDefault();
|
445
|
+
}
|
446
|
+
onTabHomeKey(event) {
|
447
|
+
const firstHeaderAction = this.findFirstHeaderAction();
|
448
|
+
const index = DomHandler.getAttribute(firstHeaderAction, 'data-pc-index');
|
449
|
+
this.changeFocusedTab(event, firstHeaderAction, index);
|
450
|
+
event.preventDefault();
|
451
|
+
}
|
452
|
+
onTabEndKey(event) {
|
453
|
+
const lastHeaderAction = this.findLastHeaderAction();
|
454
|
+
const index = DomHandler.getAttribute(lastHeaderAction, 'data-pc-index');
|
455
|
+
this.changeFocusedTab(event, lastHeaderAction, index);
|
456
|
+
event.preventDefault();
|
457
|
+
}
|
458
|
+
changeFocusedTab(event, element, index) {
|
459
|
+
if (element) {
|
460
|
+
DomHandler.focus(element);
|
461
|
+
element.scrollIntoView({ block: 'nearest' });
|
462
|
+
if (this.selectOnFocus) {
|
463
|
+
const tab = this.tabs[index];
|
464
|
+
this.open(event, tab);
|
465
|
+
}
|
466
|
+
}
|
467
|
+
}
|
468
|
+
findNextHeaderAction(tabElement, selfCheck = false) {
|
469
|
+
const headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;
|
470
|
+
return headerElement
|
471
|
+
? DomHandler.getAttribute(headerElement, 'data-p-disabled') || DomHandler.getAttribute(headerElement, 'data-pc-section') === 'inkbar'
|
472
|
+
? this.findNextHeaderAction(headerElement)
|
473
|
+
: DomHandler.findSingle(headerElement, '[data-pc-section="headeraction"]')
|
474
|
+
: null;
|
475
|
+
}
|
476
|
+
findPrevHeaderAction(tabElement, selfCheck = false) {
|
477
|
+
const headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;
|
478
|
+
return headerElement
|
479
|
+
? DomHandler.getAttribute(headerElement, 'data-p-disabled') || DomHandler.getAttribute(headerElement, 'data-pc-section') === 'inkbar'
|
480
|
+
? this.findPrevHeaderAction(headerElement)
|
481
|
+
: DomHandler.findSingle(headerElement, '[data-pc-section="headeraction"]')
|
482
|
+
: null;
|
483
|
+
}
|
484
|
+
findFirstHeaderAction() {
|
485
|
+
const firstEl = this.navbar.nativeElement.firstElementChild;
|
486
|
+
return this.findNextHeaderAction(firstEl, true);
|
487
|
+
}
|
488
|
+
findLastHeaderAction() {
|
489
|
+
const lastEl = this.navbar.nativeElement.lastElementChild;
|
490
|
+
const lastHeaderAction = DomHandler.getAttribute(lastEl, 'data-pc-section') === 'inkbar' ? lastEl.previousElementSibling : lastEl;
|
491
|
+
return this.findPrevHeaderAction(lastHeaderAction, true);
|
492
|
+
}
|
369
493
|
open(event, tab) {
|
370
494
|
if (tab.disabled) {
|
371
495
|
if (event) {
|
@@ -488,32 +612,35 @@ class TabView {
|
|
488
612
|
content.scrollLeft = pos >= lastPos ? lastPos : pos;
|
489
613
|
}
|
490
614
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TabView, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
491
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TabView, selector: "p-tabView", inputs: { style: "style", styleClass: "styleClass", controlClose: "controlClose", scrollable: "scrollable", activeIndex: "activeIndex" }, outputs: { onChange: "onChange", onClose: "onClose", activeIndexChange: "activeIndexChange" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "tabPanels", predicate: TabPanel }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }, { propertyName: "prevBtn", first: true, predicate: ["prevBtn"], descendants: true }, { propertyName: "nextBtn", first: true, predicate: ["nextBtn"], descendants: true }, { propertyName: "inkbar", first: true, predicate: ["inkbar"], descendants: true }], ngImport: i0, template: `
|
492
|
-
<div [ngClass]="{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }" [ngStyle]="style" [class]="styleClass">
|
615
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TabView, selector: "p-tabView", inputs: { style: "style", styleClass: "styleClass", controlClose: "controlClose", scrollable: "scrollable", activeIndex: "activeIndex", selectOnFocus: "selectOnFocus", tabindex: "tabindex" }, outputs: { onChange: "onChange", onClose: "onClose", activeIndexChange: "activeIndexChange" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "tabPanels", predicate: TabPanel }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }, { propertyName: "prevBtn", first: true, predicate: ["prevBtn"], descendants: true }, { propertyName: "nextBtn", first: true, predicate: ["nextBtn"], descendants: true }, { propertyName: "inkbar", first: true, predicate: ["inkbar"], descendants: true }], ngImport: i0, template: `
|
616
|
+
<div [ngClass]="{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'tabview'">
|
493
617
|
<div class="p-tabview-nav-container">
|
494
|
-
<button *ngIf="scrollable && !backwardIsDisabled" #prevBtn class="p-tabview-nav-prev p-tabview-nav-btn p-link" (click)="navBackward()" type="button" pRipple>
|
495
|
-
<ChevronLeftIcon *ngIf="!previousIconTemplate" />
|
618
|
+
<button *ngIf="scrollable && !backwardIsDisabled" #prevBtn class="p-tabview-nav-prev p-tabview-nav-btn p-link" (click)="navBackward()" [attr.tabindex]="tabindex" [attr.aria-label]="prevButtonAriaLabel" type="button" pRipple>
|
619
|
+
<ChevronLeftIcon *ngIf="!previousIconTemplate" [attr.aria-hidden]="true" />
|
496
620
|
<ng-template *ngTemplateOutlet="previousIconTemplate"></ng-template>
|
497
621
|
</button>
|
498
622
|
<div #content class="p-tabview-nav-content" (scroll)="onScroll($event)">
|
499
623
|
<ul #navbar class="p-tabview-nav" role="tablist">
|
500
|
-
<ng-template ngFor let-tab [ngForOf]="tabs">
|
501
|
-
<li role="presentation" [ngClass]="{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }" [ngStyle]="tab.headerStyle" [class]="tab.headerStyleClass" *ngIf="!tab.closed">
|
624
|
+
<ng-template ngFor let-tab [ngForOf]="tabs" let-i="index">
|
625
|
+
<li role="presentation" [ngClass]="{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }" [attr.data-p-disabled]="tab.disabled" [ngStyle]="tab.headerStyle" [class]="tab.headerStyleClass" *ngIf="!tab.closed">
|
502
626
|
<a
|
503
627
|
role="tab"
|
504
628
|
class="p-tabview-nav-link"
|
505
|
-
[attr.id]="tab.id + '-label'"
|
506
|
-
[attr.aria-selected]="tab.selected"
|
507
|
-
[attr.aria-controls]="tab.id"
|
508
629
|
[pTooltip]="tab.tooltip"
|
509
630
|
[tooltipPosition]="tab.tooltipPosition"
|
510
|
-
[attr.aria-selected]="tab.selected"
|
511
631
|
[positionStyle]="tab.tooltipPositionStyle"
|
512
632
|
[tooltipStyleClass]="tab.tooltipStyleClass"
|
633
|
+
[attr.id]="getTabHeaderActionId(tab.id)"
|
634
|
+
[attr.aria-selected]="tab.selected"
|
635
|
+
[attr.aria-controls]="getTabContentId(tab.id)"
|
636
|
+
[attr.aria-selected]="tab.selected"
|
637
|
+
[attr.tabindex]="tab.disabled ? null : tabindex"
|
638
|
+
[attr.aria-disabled]="tab.disabled"
|
639
|
+
[attr.data-pc-index]="i"
|
640
|
+
[attr.data-pc-section]="'headeraction'"
|
513
641
|
(click)="open($event, tab)"
|
514
|
-
(keydown
|
642
|
+
(keydown)="onTabKeyDown($event, tab)"
|
515
643
|
pRipple
|
516
|
-
[attr.tabindex]="tab.disabled ? null : '0'"
|
517
644
|
>
|
518
645
|
<ng-container *ngIf="!tab.headerTemplate">
|
519
646
|
<span class="p-tabview-left-icon" [ngClass]="tab.leftIcon" *ngIf="tab.leftIcon && !tab.leftIconTemplate"></span>
|
@@ -529,17 +656,17 @@ class TabView {
|
|
529
656
|
<ng-container *ngTemplateOutlet="tab.headerTemplate"></ng-container>
|
530
657
|
<ng-container *ngIf="tab.closable">
|
531
658
|
<TimesIcon *ngIf="!tab.closeIconTemplate" [styleClass]="'p-tabview-close'" (click)="close($event, tab)" />
|
532
|
-
<span class="tab.closeIconTemplate" *ngIf="
|
659
|
+
<span class="tab.closeIconTemplate" *ngIf="tab.closeIconTemplate"></span>
|
533
660
|
<ng-template *ngTemplateOutlet="tab.closeIconTemplate"></ng-template>
|
534
661
|
</ng-container>
|
535
662
|
</a>
|
536
663
|
</li>
|
537
664
|
</ng-template>
|
538
|
-
<li #inkbar class="p-tabview-ink-bar"></li>
|
665
|
+
<li #inkbar class="p-tabview-ink-bar" [attr.data-pc-section]="'inkbar'"></li>
|
539
666
|
</ul>
|
540
667
|
</div>
|
541
|
-
<button *ngIf="scrollable && !forwardIsDisabled" #nextBtn class="p-tabview-nav-next p-tabview-nav-btn p-link" (click)="navForward()" type="button" pRipple>
|
542
|
-
<ChevronRightIcon *ngIf="!nextIconTemplate" />
|
668
|
+
<button *ngIf="scrollable && !forwardIsDisabled" #nextBtn [attr.tabindex]="tabindex" [attr.aria-label]="nextButtonAriaLabel" class="p-tabview-nav-next p-tabview-nav-btn p-link" (click)="navForward()" type="button" pRipple>
|
669
|
+
<ChevronRightIcon *ngIf="!nextIconTemplate" [attr.aria-hidden]="true" />
|
543
670
|
<ng-template *ngTemplateOutlet="nextIconTemplate"></ng-template>
|
544
671
|
</button>
|
545
672
|
</div>
|
@@ -552,31 +679,34 @@ class TabView {
|
|
552
679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TabView, decorators: [{
|
553
680
|
type: Component,
|
554
681
|
args: [{ selector: 'p-tabView', template: `
|
555
|
-
<div [ngClass]="{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }" [ngStyle]="style" [class]="styleClass">
|
682
|
+
<div [ngClass]="{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'tabview'">
|
556
683
|
<div class="p-tabview-nav-container">
|
557
|
-
<button *ngIf="scrollable && !backwardIsDisabled" #prevBtn class="p-tabview-nav-prev p-tabview-nav-btn p-link" (click)="navBackward()" type="button" pRipple>
|
558
|
-
<ChevronLeftIcon *ngIf="!previousIconTemplate" />
|
684
|
+
<button *ngIf="scrollable && !backwardIsDisabled" #prevBtn class="p-tabview-nav-prev p-tabview-nav-btn p-link" (click)="navBackward()" [attr.tabindex]="tabindex" [attr.aria-label]="prevButtonAriaLabel" type="button" pRipple>
|
685
|
+
<ChevronLeftIcon *ngIf="!previousIconTemplate" [attr.aria-hidden]="true" />
|
559
686
|
<ng-template *ngTemplateOutlet="previousIconTemplate"></ng-template>
|
560
687
|
</button>
|
561
688
|
<div #content class="p-tabview-nav-content" (scroll)="onScroll($event)">
|
562
689
|
<ul #navbar class="p-tabview-nav" role="tablist">
|
563
|
-
<ng-template ngFor let-tab [ngForOf]="tabs">
|
564
|
-
<li role="presentation" [ngClass]="{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }" [ngStyle]="tab.headerStyle" [class]="tab.headerStyleClass" *ngIf="!tab.closed">
|
690
|
+
<ng-template ngFor let-tab [ngForOf]="tabs" let-i="index">
|
691
|
+
<li role="presentation" [ngClass]="{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }" [attr.data-p-disabled]="tab.disabled" [ngStyle]="tab.headerStyle" [class]="tab.headerStyleClass" *ngIf="!tab.closed">
|
565
692
|
<a
|
566
693
|
role="tab"
|
567
694
|
class="p-tabview-nav-link"
|
568
|
-
[attr.id]="tab.id + '-label'"
|
569
|
-
[attr.aria-selected]="tab.selected"
|
570
|
-
[attr.aria-controls]="tab.id"
|
571
695
|
[pTooltip]="tab.tooltip"
|
572
696
|
[tooltipPosition]="tab.tooltipPosition"
|
573
|
-
[attr.aria-selected]="tab.selected"
|
574
697
|
[positionStyle]="tab.tooltipPositionStyle"
|
575
698
|
[tooltipStyleClass]="tab.tooltipStyleClass"
|
699
|
+
[attr.id]="getTabHeaderActionId(tab.id)"
|
700
|
+
[attr.aria-selected]="tab.selected"
|
701
|
+
[attr.aria-controls]="getTabContentId(tab.id)"
|
702
|
+
[attr.aria-selected]="tab.selected"
|
703
|
+
[attr.tabindex]="tab.disabled ? null : tabindex"
|
704
|
+
[attr.aria-disabled]="tab.disabled"
|
705
|
+
[attr.data-pc-index]="i"
|
706
|
+
[attr.data-pc-section]="'headeraction'"
|
576
707
|
(click)="open($event, tab)"
|
577
|
-
(keydown
|
708
|
+
(keydown)="onTabKeyDown($event, tab)"
|
578
709
|
pRipple
|
579
|
-
[attr.tabindex]="tab.disabled ? null : '0'"
|
580
710
|
>
|
581
711
|
<ng-container *ngIf="!tab.headerTemplate">
|
582
712
|
<span class="p-tabview-left-icon" [ngClass]="tab.leftIcon" *ngIf="tab.leftIcon && !tab.leftIconTemplate"></span>
|
@@ -592,17 +722,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
592
722
|
<ng-container *ngTemplateOutlet="tab.headerTemplate"></ng-container>
|
593
723
|
<ng-container *ngIf="tab.closable">
|
594
724
|
<TimesIcon *ngIf="!tab.closeIconTemplate" [styleClass]="'p-tabview-close'" (click)="close($event, tab)" />
|
595
|
-
<span class="tab.closeIconTemplate" *ngIf="
|
725
|
+
<span class="tab.closeIconTemplate" *ngIf="tab.closeIconTemplate"></span>
|
596
726
|
<ng-template *ngTemplateOutlet="tab.closeIconTemplate"></ng-template>
|
597
727
|
</ng-container>
|
598
728
|
</a>
|
599
729
|
</li>
|
600
730
|
</ng-template>
|
601
|
-
<li #inkbar class="p-tabview-ink-bar"></li>
|
731
|
+
<li #inkbar class="p-tabview-ink-bar" [attr.data-pc-section]="'inkbar'"></li>
|
602
732
|
</ul>
|
603
733
|
</div>
|
604
|
-
<button *ngIf="scrollable && !forwardIsDisabled" #nextBtn class="p-tabview-nav-next p-tabview-nav-btn p-link" (click)="navForward()" type="button" pRipple>
|
605
|
-
<ChevronRightIcon *ngIf="!nextIconTemplate" />
|
734
|
+
<button *ngIf="scrollable && !forwardIsDisabled" #nextBtn [attr.tabindex]="tabindex" [attr.aria-label]="nextButtonAriaLabel" class="p-tabview-nav-next p-tabview-nav-btn p-link" (click)="navForward()" type="button" pRipple>
|
735
|
+
<ChevronRightIcon *ngIf="!nextIconTemplate" [attr.aria-hidden]="true" />
|
606
736
|
<ng-template *ngTemplateOutlet="nextIconTemplate"></ng-template>
|
607
737
|
</button>
|
608
738
|
</div>
|
@@ -626,6 +756,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
626
756
|
type: Input
|
627
757
|
}], activeIndex: [{
|
628
758
|
type: Input
|
759
|
+
}], selectOnFocus: [{
|
760
|
+
type: Input
|
761
|
+
}], tabindex: [{
|
762
|
+
type: Input
|
629
763
|
}], onChange: [{
|
630
764
|
type: Output
|
631
765
|
}], onClose: [{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-tabview.mjs","sources":["../../src/app/components/tabview/tabview.ts","../../src/app/components/tabview/primeng-tabview.ts"],"sourcesContent":["import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n Input,\n NgModule,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { BlockableUI, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { ChevronLeftIcon } from 'primeng/icons/chevronleft';\nimport { ChevronRightIcon } from 'primeng/icons/chevronright';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { RippleModule } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Subscription } from 'rxjs';\nimport { TabViewChangeEvent, TabViewCloseEvent } from './tabview.interface';\n\nlet idx: number = 0;\n/**\n * TabPanel is a helper component for TabView component.\n * @group Components\n */\n@Component({\n selector: 'p-tabPanel',\n template: `\n <div [attr.id]=\"id\" class=\"p-tabview-panel\" [hidden]=\"!selected\" role=\"tabpanel\" [attr.aria-hidden]=\"!selected\" [attr.aria-labelledby]=\"id + '-label'\" *ngIf=\"!closed\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n `,\n host: {\n class: 'p-element'\n }\n})\nexport class TabPanel implements AfterContentInit, OnDestroy {\n /**\n * Defines if tab can be removed.\n * @group Props\n */\n @Input() closable: boolean | undefined = false;\n /**\n * Inline style of the tab header.\n * @group Props\n */\n @Input() headerStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the tab header.\n * @group Props\n */\n @Input() headerStyleClass: string | undefined;\n /**\n * Whether a lazy loaded panel should avoid getting loaded again on reselection.\n * @group Props\n */\n @Input() cache: boolean | undefined = true;\n /**\n * Advisory information to display in a tooltip on hover.\n * @group Props\n */\n @Input() tooltip: string | undefined;\n /**\n * Position of the tooltip.\n * @group Props\n */\n @Input() tooltipPosition: 'top' | 'bottom' | 'left' | 'right' | undefined = 'top';\n /**\n * Type of CSS position.\n * @group Props\n */\n @Input() tooltipPositionStyle: string | undefined = 'absolute';\n /**\n * Style class of the tooltip.\n * @group Props\n */\n @Input() tooltipStyleClass: string | undefined;\n /**\n * Defines if tab is active.\n * @defaultValue false\n * @group Props\n */\n @Input() get selected(): boolean {\n return !!this._selected;\n }\n set selected(val: boolean) {\n this._selected = val;\n\n if (!this.loaded) {\n this.cd.detectChanges();\n }\n\n if (val) this.loaded = true;\n }\n /**\n * When true, tab cannot be activated.\n * @defaultValue false\n * @group Props\n */\n @Input() get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.tabView.cd.markForCheck();\n }\n /**\n * Title of the tabPanel.\n * @group Props\n */\n @Input() get header(): string {\n return this._header;\n }\n set header(header: string) {\n this._header = header;\n\n // We have to wait for the rendering and then retrieve the actual size element from the DOM.\n // in future `Promise.resolve` can be changed to `queueMicrotask` (if ie11 support will be dropped)\n Promise.resolve().then(() => {\n this.tabView.updateInkBar();\n this.tabView.cd.markForCheck();\n });\n }\n /**\n * Left icon of the tabPanel.\n * @group Props\n * @deprecated since v15.4.2, use `lefticon` template instead.\n */\n @Input() get leftIcon(): string {\n return this._leftIcon;\n }\n set leftIcon(leftIcon: string) {\n this._leftIcon = leftIcon;\n this.tabView.cd.markForCheck();\n }\n /**\n * Left icon of the tabPanel.\n * @group Props\n * @deprecated since v15.4.2, use `righticon` template instead.\n */\n @Input() get rightIcon(): string | undefined {\n return this._rightIcon;\n }\n set rightIcon(rightIcon: string | undefined) {\n this._rightIcon = rightIcon;\n this.tabView.cd.markForCheck();\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n closed: boolean = false;\n\n view: EmbeddedViewRef<any> | null = null;\n\n _selected: boolean | undefined;\n\n _disabled: boolean | undefined;\n\n _header!: string;\n\n _leftIcon!: string;\n\n _rightIcon: string | undefined = undefined;\n\n loaded: boolean = false;\n\n id: string = `p-tabpanel-${idx++}`;\n\n contentTemplate: TemplateRef<any> | undefined;\n\n headerTemplate: TemplateRef<any> | undefined;\n\n leftIconTemplate: TemplateRef<any> | undefined;\n\n rightIconTemplate: TemplateRef<any> | undefined;\n\n closeIconTemplate: TemplateRef<any> | undefined;\n\n tabView: TabView;\n\n constructor(@Inject(forwardRef(() => TabView)) tabView: TabView, public viewContainer: ViewContainerRef, public cd: ChangeDetectorRef) {\n this.tabView = tabView as TabView;\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'righticon':\n this.rightIconTemplate = item.template;\n break;\n\n case 'lefticon':\n this.leftIconTemplate = item.template;\n break;\n\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnDestroy() {\n this.view = null;\n }\n}\n/**\n * TabView is a container component to group content with tabs.\n * @group Components\n */\n@Component({\n selector: 'p-tabView',\n template: `\n <div [ngClass]=\"{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div class=\"p-tabview-nav-container\">\n <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabview-nav-prev p-tabview-nav-btn p-link\" (click)=\"navBackward()\" type=\"button\" pRipple>\n <ChevronLeftIcon *ngIf=\"!previousIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\n </button>\n <div #content class=\"p-tabview-nav-content\" (scroll)=\"onScroll($event)\">\n <ul #navbar class=\"p-tabview-nav\" role=\"tablist\">\n <ng-template ngFor let-tab [ngForOf]=\"tabs\">\n <li role=\"presentation\" [ngClass]=\"{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }\" [ngStyle]=\"tab.headerStyle\" [class]=\"tab.headerStyleClass\" *ngIf=\"!tab.closed\">\n <a\n role=\"tab\"\n class=\"p-tabview-nav-link\"\n [attr.id]=\"tab.id + '-label'\"\n [attr.aria-selected]=\"tab.selected\"\n [attr.aria-controls]=\"tab.id\"\n [pTooltip]=\"tab.tooltip\"\n [tooltipPosition]=\"tab.tooltipPosition\"\n [attr.aria-selected]=\"tab.selected\"\n [positionStyle]=\"tab.tooltipPositionStyle\"\n [tooltipStyleClass]=\"tab.tooltipStyleClass\"\n (click)=\"open($event, tab)\"\n (keydown.enter)=\"open($event, tab)\"\n pRipple\n [attr.tabindex]=\"tab.disabled ? null : '0'\"\n >\n <ng-container *ngIf=\"!tab.headerTemplate\">\n <span class=\"p-tabview-left-icon\" [ngClass]=\"tab.leftIcon\" *ngIf=\"tab.leftIcon && !tab.leftIconTemplate\"></span>\n <span *ngIf=\"tab.leftIconTemplate\" class=\"p-tabview-left-icon\">\n <ng-template *ngTemplateOutlet=\"tab.leftIconTemplate\"></ng-template>\n </span>\n <span class=\"p-tabview-title\">{{ tab.header }}</span>\n <span class=\"p-tabview-right-icon\" [ngClass]=\"tab.rightIcon\" *ngIf=\"tab.rightIcon && !tab.rightIconTemplate\"></span>\n <span *ngIf=\"tab.rightIconTemplate\" class=\"p-tabview-right-icon\">\n <ng-template *ngTemplateOutlet=\"tab.rightIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n <ng-container *ngIf=\"tab.closable\">\n <TimesIcon *ngIf=\"!tab.closeIconTemplate\" [styleClass]=\"'p-tabview-close'\" (click)=\"close($event, tab)\" />\n <span class=\"tab.closeIconTemplate\" *ngIf=\"p - tabview - close\"></span>\n <ng-template *ngTemplateOutlet=\"tab.closeIconTemplate\"></ng-template>\n </ng-container>\n </a>\n </li>\n </ng-template>\n <li #inkbar class=\"p-tabview-ink-bar\"></li>\n </ul>\n </div>\n <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn class=\"p-tabview-nav-next p-tabview-nav-btn p-link\" (click)=\"navForward()\" type=\"button\" pRipple>\n <ChevronRightIcon *ngIf=\"!nextIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"p-tabview-panels\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tabview.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class TabView implements AfterContentInit, AfterViewChecked, OnDestroy, BlockableUI {\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Whether tab close is controlled at onClose event or not.\n * @defaultValue false\n * @group Props\n */\n @Input() controlClose: boolean | undefined;\n /**\n * When enabled displays buttons at each side of the tab headers to scroll the tab list.\n * @defaultValue false\n * @group Props\n */\n @Input() scrollable: boolean | undefined;\n /**\n * Index of the active tab to change selected tab programmatically.\n * @group Props\n */\n @Input() get activeIndex(): number {\n return this._activeIndex;\n }\n set activeIndex(val: number) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n\n if (this.tabs && this.tabs.length && this._activeIndex != null && this.tabs.length > this._activeIndex) {\n (this.findSelectedTab() as TabPanel).selected = false;\n this.tabs[this._activeIndex].selected = true;\n this.tabChanged = true;\n\n this.updateScrollBar(val);\n }\n }\n /**\n * Callback to invoke on tab change.\n * @param {TabViewChangeEvent} event - Custom tab change event\n * @group Emits\n */\n @Output() onChange: EventEmitter<TabViewChangeEvent> = new EventEmitter<TabViewChangeEvent>();\n /**\n * Callback to invoke on tab close.\n * @param {TabViewCloseEvent} event - Custom tab close event\n * @group Emits\n */\n @Output() onClose: EventEmitter<TabViewCloseEvent> = new EventEmitter<TabViewCloseEvent>();\n /**\n * Callback to invoke on the active tab change.\n * @param {number} index - New active index\n * @group Emits\n */\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild('content') content?: ElementRef<HTMLDivElement>;\n\n @ViewChild('navbar') navbar?: ElementRef<HTMLUListElement>;\n\n @ViewChild('prevBtn') prevBtn?: ElementRef;\n\n @ViewChild('nextBtn') nextBtn?: ElementRef;\n\n @ViewChild('inkbar') inkbar?: ElementRef;\n\n @ContentChildren(TabPanel) tabPanels: QueryList<TabPanel> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n initialized: boolean | undefined;\n\n tabs!: TabPanel[];\n\n _activeIndex!: number;\n\n preventActiveIndexPropagation!: boolean;\n\n tabChanged: boolean | undefined;\n\n backwardIsDisabled: boolean = true;\n\n forwardIsDisabled: boolean = false;\n\n private tabChangesSubscription!: Subscription;\n\n nextIconTemplate: TemplateRef<any> | undefined;\n\n previousIconTemplate: TemplateRef<any> | undefined;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any, public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.initTabs();\n\n this.tabChangesSubscription = (this.tabPanels as QueryList<TabPanel>).changes.subscribe((_) => {\n this.initTabs();\n });\n\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'previousicon':\n this.previousIconTemplate = item.template;\n break;\n\n case 'nexticon':\n this.nextIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n }\n\n ngOnDestroy(): void {\n if (this.tabChangesSubscription) {\n this.tabChangesSubscription.unsubscribe();\n }\n }\n\n initTabs(): void {\n this.tabs = (this.tabPanels as QueryList<TabPanel>).toArray();\n let selectedTab: TabPanel = this.findSelectedTab() as TabPanel;\n if (!selectedTab && this.tabs.length) {\n if (this.activeIndex != null && this.tabs.length > this.activeIndex) this.tabs[this.activeIndex].selected = true;\n else this.tabs[0].selected = true;\n\n this.tabChanged = true;\n }\n\n this.cd.markForCheck();\n }\n\n open(event: Event, tab: TabPanel) {\n if (tab.disabled) {\n if (event) {\n event.preventDefault();\n }\n return;\n }\n\n if (!tab.selected) {\n let selectedTab: TabPanel = this.findSelectedTab() as TabPanel;\n if (selectedTab) {\n selectedTab.selected = false;\n }\n\n this.tabChanged = true;\n tab.selected = true;\n let selectedTabIndex = this.findTabIndex(tab);\n this.preventActiveIndexPropagation = true;\n this.activeIndexChange.emit(selectedTabIndex);\n this.onChange.emit({ originalEvent: event, index: selectedTabIndex });\n\n this.updateScrollBar(selectedTabIndex);\n }\n\n if (event) {\n event.preventDefault();\n }\n }\n\n close(event: Event, tab: TabPanel) {\n if (this.controlClose) {\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab),\n close: () => {\n this.closeTab(tab);\n }\n });\n } else {\n this.closeTab(tab);\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab)\n });\n }\n }\n\n closeTab(tab: TabPanel) {\n if (tab.disabled) {\n return;\n }\n if (tab.selected) {\n this.tabChanged = true;\n tab.selected = false;\n for (let i = 0; i < this.tabs.length; i++) {\n let tabPanel = this.tabs[i];\n if (!tabPanel.closed && !tab.disabled) {\n tabPanel.selected = true;\n break;\n }\n }\n }\n\n tab.closed = true;\n }\n\n findSelectedTab(): TabPanel | null {\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].selected) {\n return this.tabs[i];\n }\n }\n return null;\n }\n\n findTabIndex(tab: TabPanel) {\n let index = -1;\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i] == tab) {\n index = i;\n break;\n }\n }\n return index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n updateInkBar() {\n if (this.navbar) {\n const tabHeader: HTMLElement | null = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n\n if (!tabHeader) {\n return;\n }\n\n (this.inkbar as ElementRef).nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n (this.inkbar as ElementRef).nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n\n updateScrollBar(index: number) {\n let tabHeader = (this.navbar as ElementRef).nativeElement.children[index];\n tabHeader.scrollIntoView({ block: 'nearest' });\n }\n\n updateButtonState() {\n const content = (this.content as ElementRef).nativeElement;\n const { scrollLeft, scrollWidth } = content;\n const width = DomHandler.getWidth(content);\n\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = scrollLeft === scrollWidth - width;\n }\n\n onScroll(event: Event) {\n this.scrollable && this.updateButtonState();\n\n event.preventDefault();\n }\n\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => (el ? acc + DomHandler.getWidth(el) : acc), 0);\n }\n\n navBackward() {\n const content = (this.content as ElementRef).nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n\n navForward() {\n const content = (this.content as ElementRef).nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, TooltipModule, RippleModule, TimesIcon, ChevronLeftIcon, ChevronRightIcon],\n exports: [TabView, TabPanel, SharedModule],\n declarations: [TabView, TabPanel]\n})\nexport class TabViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"primeng-tabview.mjs","sources":["../../src/app/components/tabview/tabview.ts","../../src/app/components/tabview/primeng-tabview.ts"],"sourcesContent":["import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n Input,\n NgModule,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { BlockableUI, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { ChevronLeftIcon } from 'primeng/icons/chevronleft';\nimport { ChevronRightIcon } from 'primeng/icons/chevronright';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { RippleModule } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Subscription } from 'rxjs';\nimport { TabViewChangeEvent, TabViewCloseEvent } from './tabview.interface';\nimport { UniqueComponentId } from 'primeng/utils';\n\n/**\n * TabPanel is a helper component for TabView component.\n * @group Components\n */\n@Component({\n selector: 'p-tabPanel',\n template: `\n <div\n *ngIf=\"!closed\"\n class=\"p-tabview-panel\"\n role=\"tabpanel\"\n [hidden]=\"!selected\"\n [attr.id]=\"tabView.getTabContentId(id)\"\n [attr.aria-hidden]=\"!selected\"\n [attr.aria-labelledby]=\"tabView.getTabHeaderActionId(id)\"\n [attr.data-pc-name]=\"'tabpanel'\"\n >\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n `,\n host: {\n class: 'p-element'\n }\n})\nexport class TabPanel implements AfterContentInit, OnDestroy {\n /**\n * Defines if tab can be removed.\n * @group Props\n */\n @Input() closable: boolean | undefined = false;\n /**\n * Inline style of the tab header.\n * @group Props\n */\n @Input() headerStyle: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the tab header.\n * @group Props\n */\n @Input() headerStyleClass: string | undefined;\n /**\n * Whether a lazy loaded panel should avoid getting loaded again on reselection.\n * @group Props\n */\n @Input() cache: boolean | undefined = true;\n /**\n * Advisory information to display in a tooltip on hover.\n * @group Props\n */\n @Input() tooltip: string | undefined;\n /**\n * Position of the tooltip.\n * @group Props\n */\n @Input() tooltipPosition: 'top' | 'bottom' | 'left' | 'right' | undefined = 'top';\n /**\n * Type of CSS position.\n * @group Props\n */\n @Input() tooltipPositionStyle: string | undefined = 'absolute';\n /**\n * Style class of the tooltip.\n * @group Props\n */\n @Input() tooltipStyleClass: string | undefined;\n /**\n * Defines if tab is active.\n * @defaultValue false\n * @group Props\n */\n @Input() get selected(): boolean {\n return !!this._selected;\n }\n set selected(val: boolean) {\n this._selected = val;\n\n if (!this.loaded) {\n this.cd.detectChanges();\n }\n\n if (val) this.loaded = true;\n }\n /**\n * When true, tab cannot be activated.\n * @defaultValue false\n * @group Props\n */\n @Input() get disabled(): boolean {\n return !!this._disabled;\n }\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.tabView.cd.markForCheck();\n }\n /**\n * Title of the tabPanel.\n * @group Props\n */\n @Input() get header(): string {\n return this._header;\n }\n set header(header: string) {\n this._header = header;\n\n // We have to wait for the rendering and then retrieve the actual size element from the DOM.\n // in future `Promise.resolve` can be changed to `queueMicrotask` (if ie11 support will be dropped)\n Promise.resolve().then(() => {\n this.tabView.updateInkBar();\n this.tabView.cd.markForCheck();\n });\n }\n /**\n * Left icon of the tabPanel.\n * @group Props\n * @deprecated since v15.4.2, use `lefticon` template instead.\n */\n @Input() get leftIcon(): string {\n return this._leftIcon;\n }\n set leftIcon(leftIcon: string) {\n this._leftIcon = leftIcon;\n this.tabView.cd.markForCheck();\n }\n /**\n * Left icon of the tabPanel.\n * @group Props\n * @deprecated since v15.4.2, use `righticon` template instead.\n */\n @Input() get rightIcon(): string | undefined {\n return this._rightIcon;\n }\n set rightIcon(rightIcon: string | undefined) {\n this._rightIcon = rightIcon;\n this.tabView.cd.markForCheck();\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n closed: boolean = false;\n\n view: EmbeddedViewRef<any> | null = null;\n\n _selected: boolean | undefined;\n\n _disabled: boolean | undefined;\n\n _header!: string;\n\n _leftIcon!: string;\n\n _rightIcon: string | undefined = undefined;\n\n loaded: boolean = false;\n\n public id: string | undefined;\n\n contentTemplate: TemplateRef<any> | undefined;\n\n headerTemplate: TemplateRef<any> | undefined;\n\n leftIconTemplate: TemplateRef<any> | undefined;\n\n rightIconTemplate: TemplateRef<any> | undefined;\n\n closeIconTemplate: TemplateRef<any> | undefined;\n\n tabView: TabView;\n\n constructor(@Inject(forwardRef(() => TabView)) tabView: TabView, public el: ElementRef, public viewContainer: ViewContainerRef, public cd: ChangeDetectorRef) {\n this.tabView = tabView as TabView;\n this.id = UniqueComponentId();\n }\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'righticon':\n this.rightIconTemplate = item.template;\n break;\n\n case 'lefticon':\n this.leftIconTemplate = item.template;\n break;\n\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n ngOnDestroy() {\n this.view = null;\n }\n}\n/**\n * TabView is a container component to group content with tabs.\n * @group Components\n */\n@Component({\n selector: 'p-tabView',\n template: `\n <div [ngClass]=\"{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }\" [ngStyle]=\"style\" [class]=\"styleClass\" [attr.data-pc-name]=\"'tabview'\">\n <div class=\"p-tabview-nav-container\">\n <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabview-nav-prev p-tabview-nav-btn p-link\" (click)=\"navBackward()\" [attr.tabindex]=\"tabindex\" [attr.aria-label]=\"prevButtonAriaLabel\" type=\"button\" pRipple>\n <ChevronLeftIcon *ngIf=\"!previousIconTemplate\" [attr.aria-hidden]=\"true\" />\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\n </button>\n <div #content class=\"p-tabview-nav-content\" (scroll)=\"onScroll($event)\">\n <ul #navbar class=\"p-tabview-nav\" role=\"tablist\">\n <ng-template ngFor let-tab [ngForOf]=\"tabs\" let-i=\"index\">\n <li role=\"presentation\" [ngClass]=\"{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }\" [attr.data-p-disabled]=\"tab.disabled\" [ngStyle]=\"tab.headerStyle\" [class]=\"tab.headerStyleClass\" *ngIf=\"!tab.closed\">\n <a\n role=\"tab\"\n class=\"p-tabview-nav-link\"\n [pTooltip]=\"tab.tooltip\"\n [tooltipPosition]=\"tab.tooltipPosition\"\n [positionStyle]=\"tab.tooltipPositionStyle\"\n [tooltipStyleClass]=\"tab.tooltipStyleClass\"\n [attr.id]=\"getTabHeaderActionId(tab.id)\"\n [attr.aria-selected]=\"tab.selected\"\n [attr.aria-controls]=\"getTabContentId(tab.id)\"\n [attr.aria-selected]=\"tab.selected\"\n [attr.tabindex]=\"tab.disabled ? null : tabindex\"\n [attr.aria-disabled]=\"tab.disabled\"\n [attr.data-pc-index]=\"i\"\n [attr.data-pc-section]=\"'headeraction'\"\n (click)=\"open($event, tab)\"\n (keydown)=\"onTabKeyDown($event, tab)\"\n pRipple\n >\n <ng-container *ngIf=\"!tab.headerTemplate\">\n <span class=\"p-tabview-left-icon\" [ngClass]=\"tab.leftIcon\" *ngIf=\"tab.leftIcon && !tab.leftIconTemplate\"></span>\n <span *ngIf=\"tab.leftIconTemplate\" class=\"p-tabview-left-icon\">\n <ng-template *ngTemplateOutlet=\"tab.leftIconTemplate\"></ng-template>\n </span>\n <span class=\"p-tabview-title\">{{ tab.header }}</span>\n <span class=\"p-tabview-right-icon\" [ngClass]=\"tab.rightIcon\" *ngIf=\"tab.rightIcon && !tab.rightIconTemplate\"></span>\n <span *ngIf=\"tab.rightIconTemplate\" class=\"p-tabview-right-icon\">\n <ng-template *ngTemplateOutlet=\"tab.rightIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n <ng-container *ngIf=\"tab.closable\">\n <TimesIcon *ngIf=\"!tab.closeIconTemplate\" [styleClass]=\"'p-tabview-close'\" (click)=\"close($event, tab)\" />\n <span class=\"tab.closeIconTemplate\" *ngIf=\"tab.closeIconTemplate\"></span>\n <ng-template *ngTemplateOutlet=\"tab.closeIconTemplate\"></ng-template>\n </ng-container>\n </a>\n </li>\n </ng-template>\n <li #inkbar class=\"p-tabview-ink-bar\" [attr.data-pc-section]=\"'inkbar'\"></li>\n </ul>\n </div>\n <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn [attr.tabindex]=\"tabindex\" [attr.aria-label]=\"nextButtonAriaLabel\" class=\"p-tabview-nav-next p-tabview-nav-btn p-link\" (click)=\"navForward()\" type=\"button\" pRipple>\n <ChevronRightIcon *ngIf=\"!nextIconTemplate\" [attr.aria-hidden]=\"true\" />\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"p-tabview-panels\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tabview.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class TabView implements AfterContentInit, AfterViewChecked, OnDestroy, BlockableUI {\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Whether tab close is controlled at onClose event or not.\n * @defaultValue false\n * @group Props\n */\n @Input() controlClose: boolean | undefined;\n /**\n * When enabled displays buttons at each side of the tab headers to scroll the tab list.\n * @defaultValue false\n * @group Props\n */\n @Input() scrollable: boolean | undefined;\n /**\n * Index of the active tab to change selected tab programmatically.\n * @group Props\n */\n @Input() get activeIndex(): number {\n return this._activeIndex;\n }\n set activeIndex(val: number) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n\n if (this.tabs && this.tabs.length && this._activeIndex != null && this.tabs.length > this._activeIndex) {\n (this.findSelectedTab() as TabPanel).selected = false;\n this.tabs[this._activeIndex].selected = true;\n this.tabChanged = true;\n\n this.updateScrollBar(val);\n }\n }\n /**\n * When enabled, the focused tab is activated.\n * @group Props\n */\n @Input() selectOnFocus: boolean = false;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input() tabindex: number = 0;\n /**\n * Callback to invoke on tab change.\n * @param {TabViewChangeEvent} event - Custom tab change event\n * @group Emits\n */\n @Output() onChange: EventEmitter<TabViewChangeEvent> = new EventEmitter<TabViewChangeEvent>();\n /**\n * Callback to invoke on tab close.\n * @param {TabViewCloseEvent} event - Custom tab close event\n * @group Emits\n */\n @Output() onClose: EventEmitter<TabViewCloseEvent> = new EventEmitter<TabViewCloseEvent>();\n /**\n * Callback to invoke on the active tab change.\n * @param {number} index - New active index\n * @group Emits\n */\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild('content') content?: ElementRef<HTMLDivElement>;\n\n @ViewChild('navbar') navbar?: ElementRef<HTMLUListElement>;\n\n @ViewChild('prevBtn') prevBtn?: ElementRef;\n\n @ViewChild('nextBtn') nextBtn?: ElementRef;\n\n @ViewChild('inkbar') inkbar?: ElementRef;\n\n @ContentChildren(TabPanel) tabPanels: QueryList<TabPanel> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n initialized: boolean | undefined;\n\n tabs!: TabPanel[];\n\n _activeIndex!: number;\n\n preventActiveIndexPropagation!: boolean;\n\n tabChanged: boolean | undefined;\n\n backwardIsDisabled: boolean = true;\n\n forwardIsDisabled: boolean = false;\n\n private tabChangesSubscription!: Subscription;\n\n nextIconTemplate: TemplateRef<any> | undefined;\n\n previousIconTemplate: TemplateRef<any> | undefined;\n\n constructor(@Inject(PLATFORM_ID) private platformId: any, public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.initTabs();\n\n this.tabChangesSubscription = (this.tabPanels as QueryList<TabPanel>).changes.subscribe((_) => {\n this.initTabs();\n });\n\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'previousicon':\n this.previousIconTemplate = item.template;\n break;\n\n case 'nexticon':\n this.nextIconTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewChecked() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.tabChanged) {\n this.updateInkBar();\n this.tabChanged = false;\n }\n }\n }\n\n ngOnDestroy(): void {\n if (this.tabChangesSubscription) {\n this.tabChangesSubscription.unsubscribe();\n }\n }\n\n getTabHeaderActionId(tabId) {\n return `${tabId}_header_action`;\n }\n\n getTabContentId(tabId) {\n return `${tabId}_content`;\n }\n\n initTabs(): void {\n this.tabs = (this.tabPanels as QueryList<TabPanel>).toArray();\n let selectedTab: TabPanel = this.findSelectedTab() as TabPanel;\n if (!selectedTab && this.tabs.length) {\n if (this.activeIndex != null && this.tabs.length > this.activeIndex) this.tabs[this.activeIndex].selected = true;\n else this.tabs[0].selected = true;\n\n this.tabChanged = true;\n }\n\n this.cd.markForCheck();\n }\n\n onTabKeyDown(event: KeyboardEvent, tab: TabPanel): void {\n switch (event.code) {\n case 'ArrowLeft':\n this.onTabArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onTabArrowRightKey(event);\n break;\n\n case 'Home':\n this.onTabHomeKey(event);\n break;\n\n case 'End':\n this.onTabEndKey(event);\n break;\n\n case 'PageDown':\n this.onTabEndKey(event);\n break;\n\n case 'PageUp':\n this.onTabHomeKey(event);\n break;\n\n case 'Enter':\n case 'Space':\n this.open(event, tab);\n break;\n\n default:\n break;\n }\n }\n\n onTabArrowLeftKey(event: KeyboardEvent) {\n const prevHeaderAction = this.findPrevHeaderAction((<HTMLElement>event.target).parentElement);\n const index = DomHandler.getAttribute(prevHeaderAction, 'data-pc-index');\n\n prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction, index) : this.onTabEndKey(event);\n event.preventDefault();\n }\n\n onTabArrowRightKey(event: KeyboardEvent) {\n const nextHeaderAction = this.findNextHeaderAction((<HTMLElement>event.target).parentElement);\n const index = DomHandler.getAttribute(nextHeaderAction, 'data-pc-index');\n\n nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction, index) : this.onTabHomeKey(event);\n event.preventDefault();\n }\n\n onTabHomeKey(event: KeyboardEvent) {\n const firstHeaderAction = this.findFirstHeaderAction();\n const index = DomHandler.getAttribute(firstHeaderAction, 'data-pc-index');\n\n this.changeFocusedTab(event, firstHeaderAction, index);\n event.preventDefault();\n }\n\n onTabEndKey(event: KeyboardEvent) {\n const lastHeaderAction = this.findLastHeaderAction();\n const index = DomHandler.getAttribute(lastHeaderAction, 'data-pc-index');\n\n this.changeFocusedTab(event, lastHeaderAction, index);\n event.preventDefault();\n }\n\n changeFocusedTab(event: KeyboardEvent, element: any, index: number) {\n if (element) {\n DomHandler.focus(element);\n element.scrollIntoView({ block: 'nearest' });\n\n if (this.selectOnFocus) {\n const tab = this.tabs[index];\n this.open(event, tab);\n }\n }\n }\n\n findNextHeaderAction(tabElement: any, selfCheck = false) {\n const headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n return headerElement\n ? DomHandler.getAttribute(headerElement, 'data-p-disabled') || DomHandler.getAttribute(headerElement, 'data-pc-section') === 'inkbar'\n ? this.findNextHeaderAction(headerElement)\n : DomHandler.findSingle(headerElement, '[data-pc-section=\"headeraction\"]')\n : null;\n }\n\n findPrevHeaderAction(tabElement: any, selfCheck = false) {\n const headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n return headerElement\n ? DomHandler.getAttribute(headerElement, 'data-p-disabled') || DomHandler.getAttribute(headerElement, 'data-pc-section') === 'inkbar'\n ? this.findPrevHeaderAction(headerElement)\n : DomHandler.findSingle(headerElement, '[data-pc-section=\"headeraction\"]')\n : null;\n }\n\n findFirstHeaderAction() {\n const firstEl = this.navbar.nativeElement.firstElementChild;\n return this.findNextHeaderAction(firstEl, true);\n }\n\n findLastHeaderAction() {\n const lastEl = this.navbar.nativeElement.lastElementChild;\n const lastHeaderAction = DomHandler.getAttribute(lastEl, 'data-pc-section') === 'inkbar' ? lastEl.previousElementSibling : lastEl;\n return this.findPrevHeaderAction(lastHeaderAction, true);\n }\n\n open(event: Event, tab: TabPanel) {\n if (tab.disabled) {\n if (event) {\n event.preventDefault();\n }\n return;\n }\n\n if (!tab.selected) {\n let selectedTab: TabPanel = this.findSelectedTab() as TabPanel;\n if (selectedTab) {\n selectedTab.selected = false;\n }\n\n this.tabChanged = true;\n tab.selected = true;\n let selectedTabIndex = this.findTabIndex(tab);\n this.preventActiveIndexPropagation = true;\n this.activeIndexChange.emit(selectedTabIndex);\n this.onChange.emit({ originalEvent: event, index: selectedTabIndex });\n\n this.updateScrollBar(selectedTabIndex);\n }\n\n if (event) {\n event.preventDefault();\n }\n }\n\n close(event: Event, tab: TabPanel) {\n if (this.controlClose) {\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab),\n close: () => {\n this.closeTab(tab);\n }\n });\n } else {\n this.closeTab(tab);\n this.onClose.emit({\n originalEvent: event,\n index: this.findTabIndex(tab)\n });\n }\n }\n\n closeTab(tab: TabPanel) {\n if (tab.disabled) {\n return;\n }\n if (tab.selected) {\n this.tabChanged = true;\n tab.selected = false;\n for (let i = 0; i < this.tabs.length; i++) {\n let tabPanel = this.tabs[i];\n if (!tabPanel.closed && !tab.disabled) {\n tabPanel.selected = true;\n break;\n }\n }\n }\n\n tab.closed = true;\n }\n\n findSelectedTab(): TabPanel | null {\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].selected) {\n return this.tabs[i];\n }\n }\n return null;\n }\n\n findTabIndex(tab: TabPanel) {\n let index = -1;\n for (let i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i] == tab) {\n index = i;\n break;\n }\n }\n return index;\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n updateInkBar() {\n if (this.navbar) {\n const tabHeader: HTMLElement | null = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n\n if (!tabHeader) {\n return;\n }\n\n (this.inkbar as ElementRef).nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n (this.inkbar as ElementRef).nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n }\n }\n\n updateScrollBar(index: number) {\n let tabHeader = (this.navbar as ElementRef).nativeElement.children[index];\n tabHeader.scrollIntoView({ block: 'nearest' });\n }\n\n updateButtonState() {\n const content = (this.content as ElementRef).nativeElement;\n const { scrollLeft, scrollWidth } = content;\n const width = DomHandler.getWidth(content);\n\n this.backwardIsDisabled = scrollLeft === 0;\n this.forwardIsDisabled = scrollLeft === scrollWidth - width;\n }\n\n onScroll(event: Event) {\n this.scrollable && this.updateButtonState();\n\n event.preventDefault();\n }\n\n getVisibleButtonWidths() {\n return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => (el ? acc + DomHandler.getWidth(el) : acc), 0);\n }\n\n navBackward() {\n const content = (this.content as ElementRef).nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n }\n\n navForward() {\n const content = (this.content as ElementRef).nativeElement;\n const width = DomHandler.getWidth(content) - this.getVisibleButtonWidths();\n const pos = content.scrollLeft + width;\n const lastPos = content.scrollWidth - width;\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, TooltipModule, RippleModule, TimesIcon, ChevronLeftIcon, ChevronRightIcon],\n exports: [TabView, TabPanel, SharedModule],\n declarations: [TabView, TabPanel]\n})\nexport class TabViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -109,7 +109,7 @@ class Terminal {
|
|
109
109
|
<div *ngFor="let command of commands">
|
110
110
|
<span class="p-terminal-prompt">{{ prompt }}</span>
|
111
111
|
<span class="p-terminal-command">{{ command.text }}</span>
|
112
|
-
<div class="p-terminal-response">{{ command.response }}</div>
|
112
|
+
<div class="p-terminal-response" [attr.aria-live]="'polite'">{{ command.response }}</div>
|
113
113
|
</div>
|
114
114
|
</div>
|
115
115
|
<div class="p-terminal-prompt-container">
|
@@ -128,7 +128,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
128
128
|
<div *ngFor="let command of commands">
|
129
129
|
<span class="p-terminal-prompt">{{ prompt }}</span>
|
130
130
|
<span class="p-terminal-command">{{ command.text }}</span>
|
131
|
-
<div class="p-terminal-response">{{ command.response }}</div>
|
131
|
+
<div class="p-terminal-response" [attr.aria-live]="'polite'">{{ command.response }}</div>
|
132
132
|
</div>
|
133
133
|
</div>
|
134
134
|
<div class="p-terminal-prompt-container">
|