primeng 16.1.0 → 16.3.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 +14 -2
- package/api/primengconfig.d.ts +1 -1
- package/api/translation.d.ts +78 -23
- package/api/treetablenode.d.ts +1 -1
- package/autocomplete/autocomplete.d.ts +7 -10
- package/button/button.d.ts +1 -1
- package/calendar/calendar.d.ts +1 -0
- package/carousel/carousel.d.ts +19 -2
- package/chips/chips.d.ts +2 -1
- package/confirmdialog/confirmdialog.d.ts +7 -1
- package/contextmenu/contextmenu.d.ts +3 -1
- package/dataview/dataview.d.ts +11 -1
- package/dialog/dialog.d.ts +1 -0
- package/dynamicdialog/dynamicdialog-config.d.ts +8 -0
- package/dynamicdialog/dynamicdialog.d.ts +3 -0
- package/esm2022/accordion/accordion.mjs +37 -9
- package/esm2022/api/primengconfig.mjs +1 -1
- package/esm2022/api/translation.mjs +1 -1
- package/esm2022/api/treetablenode.mjs +1 -1
- package/esm2022/autocomplete/autocomplete.mjs +53 -31
- package/esm2022/button/button.mjs +37 -23
- package/esm2022/calendar/calendar.mjs +26 -6
- package/esm2022/carousel/carousel.mjs +158 -28
- package/esm2022/chips/chips.mjs +8 -4
- package/esm2022/confirmdialog/confirmdialog.mjs +22 -6
- package/esm2022/confirmpopup/confirmpopup.mjs +3 -1
- package/esm2022/contextmenu/contextmenu.mjs +19 -12
- package/esm2022/dataview/dataview.mjs +22 -4
- package/esm2022/dialog/dialog.mjs +32 -24
- package/esm2022/dropdown/dropdown.mjs +8 -5
- package/esm2022/dynamicdialog/dialogservice.mjs +8 -2
- package/esm2022/dynamicdialog/dynamicdialog-config.mjs +9 -1
- package/esm2022/dynamicdialog/dynamicdialog.mjs +28 -9
- package/esm2022/fileupload/fileupload.mjs +50 -41
- package/esm2022/galleria/galleria.mjs +254 -35
- package/esm2022/image/image.mjs +72 -24
- package/esm2022/inputnumber/inputnumber.mjs +13 -3
- package/esm2022/inputtextarea/inputtextarea.mjs +2 -18
- package/esm2022/keyfilter/keyfilter.interface.mjs +2 -0
- package/esm2022/keyfilter/keyfilter.mjs +15 -3
- package/esm2022/keyfilter/public_api.mjs +2 -1
- package/esm2022/megamenu/megamenu.mjs +15 -6
- package/esm2022/menu/menu.mjs +13 -7
- package/esm2022/menubar/menubar.mjs +17 -8
- package/esm2022/messages/messages.mjs +27 -27
- package/esm2022/multiselect/multiselect.mjs +17 -9
- package/esm2022/organizationchart/organizationchart.mjs +5 -5
- package/esm2022/overlaypanel/overlaypanel.mjs +12 -13
- package/esm2022/paginator/paginator.mjs +23 -5
- package/esm2022/panel/panel.mjs +2 -2
- package/esm2022/panelmenu/panelmenu.mjs +48 -26
- package/esm2022/password/password.mjs +13 -4
- package/esm2022/picklist/picklist.mjs +8 -4
- package/esm2022/selectbutton/selectbutton.mjs +14 -16
- package/esm2022/sidebar/sidebar.mjs +44 -13
- package/esm2022/slidemenu/slidemenu.mjs +27 -17
- package/esm2022/speeddial/speeddial.mjs +291 -15
- package/esm2022/splitbutton/splitbutton.mjs +63 -8
- package/esm2022/splitter/splitter.mjs +2 -2
- package/esm2022/table/table.interface.mjs +1 -1
- package/esm2022/table/table.mjs +35 -16
- package/esm2022/tabmenu/tabmenu.mjs +13 -3
- package/esm2022/tabview/tabview.mjs +64 -15
- package/esm2022/tieredmenu/tieredmenu.mjs +21 -13
- package/esm2022/toast/toast.mjs +69 -29
- package/esm2022/togglebutton/togglebutton.mjs +2 -2
- package/esm2022/tooltip/tooltip.mjs +29 -18
- package/esm2022/treeselect/treeselect.mjs +5 -5
- package/esm2022/treetable/treetable.interface.mjs +1 -1
- package/esm2022/treetable/treetable.mjs +26 -4
- package/fesm2022/primeng-accordion.mjs +36 -8
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +52 -30
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +36 -22
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +25 -5
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +157 -27
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-chips.mjs +7 -3
- package/fesm2022/primeng-chips.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +21 -5
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +2 -0
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +18 -11
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +21 -3
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +31 -23
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +7 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +42 -10
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +49 -40
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +253 -34
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +71 -23
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +12 -2
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -17
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +14 -2
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +14 -5
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +12 -6
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +16 -7
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +26 -26
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +16 -8
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +4 -4
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +11 -12
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +22 -4
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +2 -2
- package/fesm2022/primeng-panelmenu.mjs +47 -25
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +12 -3
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +7 -3
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +13 -15
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +43 -12
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-slidemenu.mjs +26 -16
- package/fesm2022/primeng-slidemenu.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +290 -14
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +62 -7
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +2 -2
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +34 -15
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +12 -2
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +63 -14
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +20 -12
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +68 -28
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +2 -2
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +28 -17
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +4 -4
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +25 -3
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/galleria/galleria.d.ts +30 -5
- package/image/image.d.ts +16 -2
- package/inputtextarea/inputtextarea.d.ts +0 -2
- package/keyfilter/keyfilter.d.ts +6 -5
- package/keyfilter/keyfilter.interface.d.ts +5 -0
- package/keyfilter/public_api.d.ts +1 -0
- package/megamenu/megamenu.d.ts +3 -1
- package/menu/menu.d.ts +1 -0
- package/menubar/menubar.d.ts +3 -1
- package/multiselect/multiselect.d.ts +8 -6
- package/package.json +134 -134
- package/paginator/paginator.d.ts +7 -1
- package/panelmenu/panelmenu.d.ts +3 -1
- package/password/password.d.ts +6 -1
- package/resources/components/button/button.css +4 -0
- package/resources/components/menubar/menubar.css +4 -0
- package/resources/components/panel/panel.css +1 -1
- package/resources/components/splitter/splitter.css +2 -1
- package/resources/components/tabview/tabview.css +3 -2
- package/resources/primeng.css +3 -0
- package/resources/primeng.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +16 -6
- package/resources/themes/arya-green/theme.css +16 -6
- package/resources/themes/arya-orange/theme.css +16 -6
- package/resources/themes/arya-purple/theme.css +16 -6
- package/resources/themes/bootstrap4-dark-blue/theme.css +16 -6
- package/resources/themes/bootstrap4-dark-purple/theme.css +16 -6
- package/resources/themes/bootstrap4-light-blue/theme.css +16 -6
- package/resources/themes/bootstrap4-light-purple/theme.css +16 -6
- package/resources/themes/fluent-light/theme.css +16 -6
- package/resources/themes/lara-dark-blue/theme.css +16 -6
- package/resources/themes/lara-dark-indigo/theme.css +16 -6
- package/resources/themes/lara-dark-purple/theme.css +16 -6
- package/resources/themes/lara-dark-teal/theme.css +16 -6
- package/resources/themes/lara-light-blue/theme.css +16 -6
- package/resources/themes/lara-light-indigo/theme.css +16 -6
- package/resources/themes/lara-light-purple/theme.css +16 -6
- package/resources/themes/lara-light-teal/theme.css +16 -6
- package/resources/themes/luna-amber/theme.css +16 -6
- package/resources/themes/luna-blue/theme.css +16 -6
- package/resources/themes/luna-green/theme.css +16 -6
- package/resources/themes/luna-pink/theme.css +16 -6
- package/resources/themes/md-dark-deeppurple/theme.css +16 -6
- package/resources/themes/md-dark-indigo/theme.css +16 -6
- package/resources/themes/md-light-deeppurple/theme.css +16 -6
- package/resources/themes/md-light-indigo/theme.css +16 -6
- package/resources/themes/mdc-dark-deeppurple/theme.css +16 -6
- package/resources/themes/mdc-dark-indigo/theme.css +16 -6
- package/resources/themes/mdc-light-deeppurple/theme.css +16 -6
- package/resources/themes/mdc-light-indigo/theme.css +16 -6
- package/resources/themes/mira/theme.css +16 -6
- package/resources/themes/nano/theme.css +16 -6
- package/resources/themes/nova/theme.css +16 -6
- package/resources/themes/nova-accent/theme.css +16 -6
- package/resources/themes/nova-alt/theme.css +16 -6
- package/resources/themes/rhea/theme.css +16 -6
- package/resources/themes/saga-blue/theme.css +16 -6
- package/resources/themes/saga-green/theme.css +16 -6
- package/resources/themes/saga-orange/theme.css +16 -6
- package/resources/themes/saga-purple/theme.css +16 -6
- package/resources/themes/soho-dark/theme.css +16 -6
- package/resources/themes/soho-light/theme.css +16 -6
- package/resources/themes/tailwind-light/theme.css +16 -6
- package/resources/themes/vela-blue/theme.css +16 -6
- package/resources/themes/vela-green/theme.css +16 -6
- package/resources/themes/vela-orange/theme.css +16 -6
- package/resources/themes/vela-purple/theme.css +16 -6
- package/resources/themes/viva-dark/theme.css +16 -6
- package/resources/themes/viva-light/theme.css +16 -6
- package/sidebar/sidebar.d.ts +1 -0
- package/slidemenu/slidemenu.d.ts +8 -6
- package/speeddial/speeddial.d.ts +34 -1
- package/splitbutton/splitbutton.d.ts +5 -1
- package/table/table.d.ts +12 -3
- package/table/table.interface.d.ts +1 -1
- package/tabmenu/tabmenu.d.ts +3 -1
- package/tabview/tabview.d.ts +10 -2
- package/tieredmenu/tieredmenu.d.ts +3 -1
- package/toast/toast.d.ts +8 -2
- package/tooltip/tooltip.d.ts +6 -6
- package/treeselect/treeselect.d.ts +5 -5
- package/treetable/treetable.d.ts +14 -4
- package/treetable/treetable.interface.d.ts +9 -2
@@ -14,6 +14,8 @@ import { WindowMinimizeIcon } from 'primeng/icons/windowminimize';
|
|
14
14
|
import * as i3 from 'primeng/ripple';
|
15
15
|
import { RippleModule } from 'primeng/ripple';
|
16
16
|
import { ZIndexUtils, UniqueComponentId } from 'primeng/utils';
|
17
|
+
import * as i4 from 'primeng/focustrap';
|
18
|
+
import { FocusTrapModule } from 'primeng/focustrap';
|
17
19
|
|
18
20
|
/**
|
19
21
|
* Galleria is an advanced content gallery component.
|
@@ -90,6 +92,11 @@ class Galleria {
|
|
90
92
|
* @group Props
|
91
93
|
*/
|
92
94
|
autoPlay = false;
|
95
|
+
/**
|
96
|
+
* When enabled, autorun should stop by click.
|
97
|
+
* @group Props
|
98
|
+
*/
|
99
|
+
shouldStopAutoplayByClick = true;
|
93
100
|
/**
|
94
101
|
* Time in milliseconds to scroll items.
|
95
102
|
* @group Props
|
@@ -181,6 +188,7 @@ class Galleria {
|
|
181
188
|
*/
|
182
189
|
visibleChange = new EventEmitter();
|
183
190
|
mask;
|
191
|
+
container;
|
184
192
|
templates;
|
185
193
|
_visible = false;
|
186
194
|
_activeIndex = 0;
|
@@ -252,6 +260,9 @@ class Galleria {
|
|
252
260
|
switch (event.toState) {
|
253
261
|
case 'visible':
|
254
262
|
this.enableModality();
|
263
|
+
setTimeout(() => {
|
264
|
+
DomHandler.focus(DomHandler.findSingle(this.container.nativeElement, '[data-pc-section="closebutton"]'));
|
265
|
+
}, 25);
|
255
266
|
break;
|
256
267
|
case 'void':
|
257
268
|
DomHandler.addClass(this.mask?.nativeElement, 'p-component-overlay-leave');
|
@@ -289,9 +300,16 @@ class Galleria {
|
|
289
300
|
}
|
290
301
|
}
|
291
302
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Galleria, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
|
292
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Galleria, selector: "p-galleria", inputs: { activeIndex: "activeIndex", fullScreen: "fullScreen", id: "id", value: "value", numVisible: "numVisible", responsiveOptions: "responsiveOptions", showItemNavigators: "showItemNavigators", showThumbnailNavigators: "showThumbnailNavigators", showItemNavigatorsOnHover: "showItemNavigatorsOnHover", changeItemOnIndicatorHover: "changeItemOnIndicatorHover", circular: "circular", autoPlay: "autoPlay", transitionInterval: "transitionInterval", showThumbnails: "showThumbnails", thumbnailsPosition: "thumbnailsPosition", verticalThumbnailViewPortHeight: "verticalThumbnailViewPortHeight", showIndicators: "showIndicators", showIndicatorsOnItem: "showIndicatorsOnItem", indicatorsPosition: "indicatorsPosition", baseZIndex: "baseZIndex", maskClass: "maskClass", containerClass: "containerClass", containerStyle: "containerStyle", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", visible: "visible" }, outputs: { activeIndexChange: "activeIndexChange", visibleChange: "visibleChange" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
293
|
-
<div *ngIf="fullScreen; else windowed">
|
294
|
-
<div
|
303
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Galleria, selector: "p-galleria", inputs: { activeIndex: "activeIndex", fullScreen: "fullScreen", id: "id", value: "value", numVisible: "numVisible", responsiveOptions: "responsiveOptions", showItemNavigators: "showItemNavigators", showThumbnailNavigators: "showThumbnailNavigators", showItemNavigatorsOnHover: "showItemNavigatorsOnHover", changeItemOnIndicatorHover: "changeItemOnIndicatorHover", circular: "circular", autoPlay: "autoPlay", shouldStopAutoplayByClick: "shouldStopAutoplayByClick", transitionInterval: "transitionInterval", showThumbnails: "showThumbnails", thumbnailsPosition: "thumbnailsPosition", verticalThumbnailViewPortHeight: "verticalThumbnailViewPortHeight", showIndicators: "showIndicators", showIndicatorsOnItem: "showIndicatorsOnItem", indicatorsPosition: "indicatorsPosition", baseZIndex: "baseZIndex", maskClass: "maskClass", containerClass: "containerClass", containerStyle: "containerStyle", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", visible: "visible" }, outputs: { activeIndexChange: "activeIndexChange", visibleChange: "visibleChange" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
304
|
+
<div *ngIf="fullScreen; else windowed" #container>
|
305
|
+
<div
|
306
|
+
*ngIf="maskVisible"
|
307
|
+
#mask
|
308
|
+
[ngClass]="{ 'p-galleria-mask p-component-overlay p-component-overlay-enter': true, 'p-galleria-visible': this.visible }"
|
309
|
+
[class]="maskClass"
|
310
|
+
[attr.role]="fullScreen ? 'dialog' : 'region'"
|
311
|
+
[attr.aria-modal]="fullScreen ? 'true' : undefined"
|
312
|
+
>
|
295
313
|
<p-galleriaContent
|
296
314
|
*ngIf="visible"
|
297
315
|
[@animation]="{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }"
|
@@ -320,8 +338,15 @@ class Galleria {
|
|
320
338
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Galleria, decorators: [{
|
321
339
|
type: Component,
|
322
340
|
args: [{ selector: 'p-galleria', template: `
|
323
|
-
<div *ngIf="fullScreen; else windowed">
|
324
|
-
<div
|
341
|
+
<div *ngIf="fullScreen; else windowed" #container>
|
342
|
+
<div
|
343
|
+
*ngIf="maskVisible"
|
344
|
+
#mask
|
345
|
+
[ngClass]="{ 'p-galleria-mask p-component-overlay p-component-overlay-enter': true, 'p-galleria-visible': this.visible }"
|
346
|
+
[class]="maskClass"
|
347
|
+
[attr.role]="fullScreen ? 'dialog' : 'region'"
|
348
|
+
[attr.aria-modal]="fullScreen ? 'true' : undefined"
|
349
|
+
>
|
325
350
|
<p-galleriaContent
|
326
351
|
*ngIf="visible"
|
327
352
|
[@animation]="{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }"
|
@@ -375,6 +400,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
375
400
|
type: Input
|
376
401
|
}], autoPlay: [{
|
377
402
|
type: Input
|
403
|
+
}], shouldStopAutoplayByClick: [{
|
404
|
+
type: Input
|
378
405
|
}], transitionInterval: [{
|
379
406
|
type: Input
|
380
407
|
}], showThumbnails: [{
|
@@ -410,6 +437,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
410
437
|
}], mask: [{
|
411
438
|
type: ViewChild,
|
412
439
|
args: ['mask']
|
440
|
+
}], container: [{
|
441
|
+
type: ViewChild,
|
442
|
+
args: ['container']
|
413
443
|
}], templates: [{
|
414
444
|
type: ContentChildren,
|
415
445
|
args: [PrimeTemplate]
|
@@ -418,6 +448,7 @@ class GalleriaContent {
|
|
418
448
|
galleria;
|
419
449
|
cd;
|
420
450
|
differs;
|
451
|
+
config;
|
421
452
|
get activeIndex() {
|
422
453
|
return this._activeIndex;
|
423
454
|
}
|
@@ -428,16 +459,18 @@ class GalleriaContent {
|
|
428
459
|
numVisible;
|
429
460
|
maskHide = new EventEmitter();
|
430
461
|
activeItemChange = new EventEmitter();
|
462
|
+
closeButton;
|
431
463
|
id;
|
432
464
|
_activeIndex = 0;
|
433
465
|
slideShowActive = true;
|
434
466
|
interval;
|
435
467
|
styleClass;
|
436
468
|
differ;
|
437
|
-
constructor(galleria, cd, differs) {
|
469
|
+
constructor(galleria, cd, differs, config) {
|
438
470
|
this.galleria = galleria;
|
439
471
|
this.cd = cd;
|
440
472
|
this.differs = differs;
|
473
|
+
this.config = config;
|
441
474
|
this.id = this.galleria.id || UniqueComponentId();
|
442
475
|
this.differ = this.differs.find(this.galleria).create();
|
443
476
|
}
|
@@ -465,6 +498,9 @@ class GalleriaContent {
|
|
465
498
|
this.slideShowActive = true;
|
466
499
|
}
|
467
500
|
stopSlideShow() {
|
501
|
+
if (this.galleria.autoPlay && !this.galleria.shouldStopAutoplayByClick) {
|
502
|
+
return;
|
503
|
+
}
|
468
504
|
if (this.interval) {
|
469
505
|
clearInterval(this.interval);
|
470
506
|
}
|
@@ -484,8 +520,11 @@ class GalleriaContent {
|
|
484
520
|
this.activeItemChange.emit(this.activeIndex);
|
485
521
|
}
|
486
522
|
}
|
487
|
-
|
488
|
-
|
523
|
+
closeAriaLabel() {
|
524
|
+
return this.config.translation.aria ? this.config.translation.aria.close : undefined;
|
525
|
+
}
|
526
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaContent, deps: [{ token: Galleria }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
|
527
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: GalleriaContent, selector: "p-galleriaContent", inputs: { activeIndex: "activeIndex", value: "value", numVisible: "numVisible" }, outputs: { maskHide: "maskHide", activeItemChange: "activeItemChange" }, viewQueries: [{ propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true }], ngImport: i0, template: `
|
489
528
|
<div
|
490
529
|
[attr.id]="id"
|
491
530
|
*ngIf="value && value.length > 0"
|
@@ -497,16 +536,18 @@ class GalleriaContent {
|
|
497
536
|
}"
|
498
537
|
[ngStyle]="!galleria.fullScreen ? galleria.containerStyle : {}"
|
499
538
|
[class]="galleriaClass()"
|
539
|
+
pFocusTrap
|
500
540
|
>
|
501
|
-
<button *ngIf="galleria.fullScreen" type="button" class="p-galleria-close p-link" (click)="maskHide.emit()" pRipple>
|
541
|
+
<button *ngIf="galleria.fullScreen" type="button" class="p-galleria-close p-link" (click)="maskHide.emit()" pRipple [attr.aria-label]="closeAriaLabel()" [attr.data-pc-section]="'closebutton'">
|
502
542
|
<TimesIcon *ngIf="!galleria.closeIconTemplate" [styleClass]="'p-galleria-close-icon'" />
|
503
543
|
<ng-template *ngTemplateOutlet="galleria.closeIconTemplate"></ng-template>
|
504
544
|
</button>
|
505
545
|
<div *ngIf="galleria.templates && galleria.headerFacet" class="p-galleria-header">
|
506
546
|
<p-galleriaItemSlot type="header" [templates]="galleria.templates"></p-galleriaItemSlot>
|
507
547
|
</div>
|
508
|
-
<div class="p-galleria-content">
|
548
|
+
<div class="p-galleria-content" [attr.aria-live]="galleria.autoPlay ? 'polite' : 'off'">
|
509
549
|
<p-galleriaItem
|
550
|
+
[id]="id"
|
510
551
|
[value]="value"
|
511
552
|
[activeIndex]="activeIndex"
|
512
553
|
[circular]="galleria.circular"
|
@@ -544,7 +585,7 @@ class GalleriaContent {
|
|
544
585
|
<p-galleriaItemSlot type="footer" [templates]="galleria.templates"></p-galleriaItemSlot>
|
545
586
|
</div>
|
546
587
|
</div>
|
547
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.Ripple; }), selector: "[pRipple]" }, { kind: "component", type: i0.forwardRef(function () { return TimesIcon; }), selector: "TimesIcon" }, { kind: "component", type: i0.forwardRef(function () { return GalleriaItemSlot; }), selector: "p-galleriaItemSlot", inputs: ["templates", "index", "item", "type"] }, { kind: "component", type: i0.forwardRef(function () { return GalleriaItem; }), selector: "p-galleriaItem", inputs: ["circular", "value", "showItemNavigators", "showIndicators", "slideShowActive", "changeItemOnIndicatorHover", "autoPlay", "templates", "indicatorFacet", "captionFacet", "activeIndex"], outputs: ["startSlideShow", "stopSlideShow", "onActiveIndexChange"] }, { kind: "component", type: i0.forwardRef(function () { return GalleriaThumbnails; }), selector: "p-galleriaThumbnails", inputs: ["containerId", "value", "isVertical", "slideShowActive", "circular", "responsiveOptions", "contentHeight", "showThumbnailNavigators", "templates", "numVisible", "activeIndex"], outputs: ["onActiveIndexChange", "stopSlideShow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
588
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.Ripple; }), selector: "[pRipple]" }, { kind: "component", type: i0.forwardRef(function () { return TimesIcon; }), selector: "TimesIcon" }, { kind: "directive", type: i0.forwardRef(function () { return i4.FocusTrap; }), selector: "[pFocusTrap]", inputs: ["pFocusTrapDisabled"] }, { kind: "component", type: i0.forwardRef(function () { return GalleriaItemSlot; }), selector: "p-galleriaItemSlot", inputs: ["templates", "index", "item", "type"] }, { kind: "component", type: i0.forwardRef(function () { return GalleriaItem; }), selector: "p-galleriaItem", inputs: ["id", "circular", "value", "showItemNavigators", "showIndicators", "slideShowActive", "changeItemOnIndicatorHover", "autoPlay", "templates", "indicatorFacet", "captionFacet", "activeIndex"], outputs: ["startSlideShow", "stopSlideShow", "onActiveIndexChange"] }, { kind: "component", type: i0.forwardRef(function () { return GalleriaThumbnails; }), selector: "p-galleriaThumbnails", inputs: ["containerId", "value", "isVertical", "slideShowActive", "circular", "responsiveOptions", "contentHeight", "showThumbnailNavigators", "templates", "numVisible", "activeIndex"], outputs: ["onActiveIndexChange", "stopSlideShow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
548
589
|
}
|
549
590
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaContent, decorators: [{
|
550
591
|
type: Component,
|
@@ -562,16 +603,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
562
603
|
}"
|
563
604
|
[ngStyle]="!galleria.fullScreen ? galleria.containerStyle : {}"
|
564
605
|
[class]="galleriaClass()"
|
606
|
+
pFocusTrap
|
565
607
|
>
|
566
|
-
<button *ngIf="galleria.fullScreen" type="button" class="p-galleria-close p-link" (click)="maskHide.emit()" pRipple>
|
608
|
+
<button *ngIf="galleria.fullScreen" type="button" class="p-galleria-close p-link" (click)="maskHide.emit()" pRipple [attr.aria-label]="closeAriaLabel()" [attr.data-pc-section]="'closebutton'">
|
567
609
|
<TimesIcon *ngIf="!galleria.closeIconTemplate" [styleClass]="'p-galleria-close-icon'" />
|
568
610
|
<ng-template *ngTemplateOutlet="galleria.closeIconTemplate"></ng-template>
|
569
611
|
</button>
|
570
612
|
<div *ngIf="galleria.templates && galleria.headerFacet" class="p-galleria-header">
|
571
613
|
<p-galleriaItemSlot type="header" [templates]="galleria.templates"></p-galleriaItemSlot>
|
572
614
|
</div>
|
573
|
-
<div class="p-galleria-content">
|
615
|
+
<div class="p-galleria-content" [attr.aria-live]="galleria.autoPlay ? 'polite' : 'off'">
|
574
616
|
<p-galleriaItem
|
617
|
+
[id]="id"
|
575
618
|
[value]="value"
|
576
619
|
[activeIndex]="activeIndex"
|
577
620
|
[circular]="galleria.circular"
|
@@ -612,7 +655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
612
655
|
`,
|
613
656
|
changeDetection: ChangeDetectionStrategy.OnPush
|
614
657
|
}]
|
615
|
-
}], ctorParameters: function () { return [{ type: Galleria }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }]; }, propDecorators: { activeIndex: [{
|
658
|
+
}], ctorParameters: function () { return [{ type: Galleria }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i1.PrimeNGConfig }]; }, propDecorators: { activeIndex: [{
|
616
659
|
type: Input
|
617
660
|
}], value: [{
|
618
661
|
type: Input
|
@@ -622,6 +665,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
622
665
|
type: Output
|
623
666
|
}], activeItemChange: [{
|
624
667
|
type: Output
|
668
|
+
}], closeButton: [{
|
669
|
+
type: ViewChild,
|
670
|
+
args: ['closeButton']
|
625
671
|
}] } });
|
626
672
|
class GalleriaItemSlot {
|
627
673
|
templates;
|
@@ -701,6 +747,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
701
747
|
}] } });
|
702
748
|
class GalleriaItem {
|
703
749
|
galleria;
|
750
|
+
id;
|
704
751
|
circular = false;
|
705
752
|
value;
|
706
753
|
showItemNavigators = false;
|
@@ -774,9 +821,21 @@ class GalleriaItem {
|
|
774
821
|
this.onActiveIndexChange.emit(index);
|
775
822
|
}
|
776
823
|
}
|
777
|
-
onIndicatorKeyDown(index) {
|
778
|
-
|
779
|
-
|
824
|
+
onIndicatorKeyDown(event, index) {
|
825
|
+
switch (event.code) {
|
826
|
+
case 'Enter':
|
827
|
+
case 'Space':
|
828
|
+
this.stopTheSlideShow();
|
829
|
+
this.onActiveIndexChange.emit(index);
|
830
|
+
event.preventDefault();
|
831
|
+
break;
|
832
|
+
case 'ArrowDown':
|
833
|
+
case 'ArrowUp':
|
834
|
+
event.preventDefault();
|
835
|
+
break;
|
836
|
+
default:
|
837
|
+
break;
|
838
|
+
}
|
780
839
|
}
|
781
840
|
isNavForwardDisabled() {
|
782
841
|
return !this.circular && this.activeIndex === this.value.length - 1;
|
@@ -787,13 +846,23 @@ class GalleriaItem {
|
|
787
846
|
isIndicatorItemActive(index) {
|
788
847
|
return this.activeIndex === index;
|
789
848
|
}
|
849
|
+
ariaSlideLabel() {
|
850
|
+
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.slide : undefined;
|
851
|
+
}
|
852
|
+
ariaSlideNumber(value) {
|
853
|
+
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;
|
854
|
+
}
|
855
|
+
ariaPageLabel(value) {
|
856
|
+
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;
|
857
|
+
}
|
790
858
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaItem, deps: [{ token: Galleria }], target: i0.ɵɵFactoryTarget.Component });
|
791
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: GalleriaItem, selector: "p-galleriaItem", inputs: { circular: "circular", value: "value", showItemNavigators: "showItemNavigators", showIndicators: "showIndicators", slideShowActive: "slideShowActive", changeItemOnIndicatorHover: "changeItemOnIndicatorHover", autoPlay: "autoPlay", templates: "templates", indicatorFacet: "indicatorFacet", captionFacet: "captionFacet", activeIndex: "activeIndex" }, outputs: { startSlideShow: "startSlideShow", stopSlideShow: "stopSlideShow", onActiveIndexChange: "onActiveIndexChange" }, usesOnChanges: true, ngImport: i0, template: `
|
859
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: GalleriaItem, selector: "p-galleriaItem", inputs: { id: "id", circular: "circular", value: "value", showItemNavigators: "showItemNavigators", showIndicators: "showIndicators", slideShowActive: "slideShowActive", changeItemOnIndicatorHover: "changeItemOnIndicatorHover", autoPlay: "autoPlay", templates: "templates", indicatorFacet: "indicatorFacet", captionFacet: "captionFacet", activeIndex: "activeIndex" }, outputs: { startSlideShow: "startSlideShow", stopSlideShow: "stopSlideShow", onActiveIndexChange: "onActiveIndexChange" }, usesOnChanges: true, ngImport: i0, template: `
|
792
860
|
<div class="p-galleria-item-wrapper">
|
793
861
|
<div class="p-galleria-item-container">
|
794
862
|
<button
|
795
863
|
*ngIf="showItemNavigators"
|
796
864
|
type="button"
|
865
|
+
role="navigation"
|
797
866
|
[ngClass]="{ 'p-galleria-item-prev p-galleria-item-nav p-link': true, 'p-disabled': this.isNavBackwardDisabled() }"
|
798
867
|
(click)="navBackward($event)"
|
799
868
|
[disabled]="isNavBackwardDisabled()"
|
@@ -802,7 +871,9 @@ class GalleriaItem {
|
|
802
871
|
<ChevronLeftIcon *ngIf="!galleria.itemPreviousIconTemplate" [styleClass]="'p-galleria-item-prev-icon'" />
|
803
872
|
<ng-template *ngTemplateOutlet="galleria.itemPreviousIconTemplate"></ng-template>
|
804
873
|
</button>
|
805
|
-
<
|
874
|
+
<div [id]="id + '_item_' + activeIndex" role="group" [attr.aria-label]="ariaSlideNumber(activeIndex + 1)" [attr.aria-roledescription]="ariaSlideLabel()" [style.width]="'100%'">
|
875
|
+
<p-galleriaItemSlot type="item" [item]="activeItem" [templates]="templates" class="p-galleria-item"></p-galleriaItemSlot>
|
876
|
+
</div>
|
806
877
|
<button
|
807
878
|
*ngIf="showItemNavigators"
|
808
879
|
type="button"
|
@@ -810,6 +881,7 @@ class GalleriaItem {
|
|
810
881
|
(click)="navForward($event)"
|
811
882
|
[disabled]="isNavForwardDisabled()"
|
812
883
|
pRipple
|
884
|
+
role="navigation"
|
813
885
|
>
|
814
886
|
<ChevronRightIcon *ngIf="!galleria.itemNextIconTemplate" [styleClass]="'p-galleria-item-next-icon'" />
|
815
887
|
<ng-template *ngTemplateOutlet="galleria.itemNextIconTemplate"></ng-template>
|
@@ -824,8 +896,11 @@ class GalleriaItem {
|
|
824
896
|
tabindex="0"
|
825
897
|
(click)="onIndicatorClick(index)"
|
826
898
|
(mouseenter)="onIndicatorMouseEnter(index)"
|
827
|
-
(keydown
|
899
|
+
(keydown)="onIndicatorKeyDown(event, index)"
|
828
900
|
[ngClass]="{ 'p-galleria-indicator': true, 'p-highlight': isIndicatorItemActive(index) }"
|
901
|
+
[attr.aria-label]="ariaPageLabel(index + 1)"
|
902
|
+
[attr.aria-selected]="activeIndex === index"
|
903
|
+
[attr.aria-controls]="id + '_item_' + index"
|
829
904
|
>
|
830
905
|
<button type="button" tabIndex="-1" class="p-link" *ngIf="!indicatorFacet"></button>
|
831
906
|
<p-galleriaItemSlot type="indicator" [index]="index" [templates]="templates"></p-galleriaItemSlot>
|
@@ -844,6 +919,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
844
919
|
<button
|
845
920
|
*ngIf="showItemNavigators"
|
846
921
|
type="button"
|
922
|
+
role="navigation"
|
847
923
|
[ngClass]="{ 'p-galleria-item-prev p-galleria-item-nav p-link': true, 'p-disabled': this.isNavBackwardDisabled() }"
|
848
924
|
(click)="navBackward($event)"
|
849
925
|
[disabled]="isNavBackwardDisabled()"
|
@@ -852,7 +928,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
852
928
|
<ChevronLeftIcon *ngIf="!galleria.itemPreviousIconTemplate" [styleClass]="'p-galleria-item-prev-icon'" />
|
853
929
|
<ng-template *ngTemplateOutlet="galleria.itemPreviousIconTemplate"></ng-template>
|
854
930
|
</button>
|
855
|
-
<
|
931
|
+
<div [id]="id + '_item_' + activeIndex" role="group" [attr.aria-label]="ariaSlideNumber(activeIndex + 1)" [attr.aria-roledescription]="ariaSlideLabel()" [style.width]="'100%'">
|
932
|
+
<p-galleriaItemSlot type="item" [item]="activeItem" [templates]="templates" class="p-galleria-item"></p-galleriaItemSlot>
|
933
|
+
</div>
|
856
934
|
<button
|
857
935
|
*ngIf="showItemNavigators"
|
858
936
|
type="button"
|
@@ -860,6 +938,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
860
938
|
(click)="navForward($event)"
|
861
939
|
[disabled]="isNavForwardDisabled()"
|
862
940
|
pRipple
|
941
|
+
role="navigation"
|
863
942
|
>
|
864
943
|
<ChevronRightIcon *ngIf="!galleria.itemNextIconTemplate" [styleClass]="'p-galleria-item-next-icon'" />
|
865
944
|
<ng-template *ngTemplateOutlet="galleria.itemNextIconTemplate"></ng-template>
|
@@ -874,8 +953,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
874
953
|
tabindex="0"
|
875
954
|
(click)="onIndicatorClick(index)"
|
876
955
|
(mouseenter)="onIndicatorMouseEnter(index)"
|
877
|
-
(keydown
|
956
|
+
(keydown)="onIndicatorKeyDown(event, index)"
|
878
957
|
[ngClass]="{ 'p-galleria-indicator': true, 'p-highlight': isIndicatorItemActive(index) }"
|
958
|
+
[attr.aria-label]="ariaPageLabel(index + 1)"
|
959
|
+
[attr.aria-selected]="activeIndex === index"
|
960
|
+
[attr.aria-controls]="id + '_item_' + index"
|
879
961
|
>
|
880
962
|
<button type="button" tabIndex="-1" class="p-link" *ngIf="!indicatorFacet"></button>
|
881
963
|
<p-galleriaItemSlot type="indicator" [index]="index" [templates]="templates"></p-galleriaItemSlot>
|
@@ -885,7 +967,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
885
967
|
`,
|
886
968
|
changeDetection: ChangeDetectionStrategy.OnPush
|
887
969
|
}]
|
888
|
-
}], ctorParameters: function () { return [{ type: Galleria }]; }, propDecorators: {
|
970
|
+
}], ctorParameters: function () { return [{ type: Galleria }]; }, propDecorators: { id: [{
|
971
|
+
type: Input
|
972
|
+
}], circular: [{
|
889
973
|
type: Input
|
890
974
|
}], value: [{
|
891
975
|
type: Input
|
@@ -1113,6 +1197,74 @@ class GalleriaThumbnails {
|
|
1113
1197
|
this.onActiveIndexChange.emit(this.activeIndex);
|
1114
1198
|
}
|
1115
1199
|
}
|
1200
|
+
onThumbnailKeydown(event, index) {
|
1201
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
1202
|
+
this.onItemClick(index);
|
1203
|
+
event.preventDefault();
|
1204
|
+
}
|
1205
|
+
switch (event.code) {
|
1206
|
+
case 'ArrowRight':
|
1207
|
+
this.onRightKey();
|
1208
|
+
break;
|
1209
|
+
case 'ArrowLeft':
|
1210
|
+
this.onLeftKey();
|
1211
|
+
break;
|
1212
|
+
case 'Home':
|
1213
|
+
this.onHomeKey();
|
1214
|
+
event.preventDefault();
|
1215
|
+
break;
|
1216
|
+
case 'End':
|
1217
|
+
this.onEndKey();
|
1218
|
+
event.preventDefault();
|
1219
|
+
break;
|
1220
|
+
case 'ArrowUp':
|
1221
|
+
case 'ArrowDown':
|
1222
|
+
event.preventDefault();
|
1223
|
+
break;
|
1224
|
+
case 'Tab':
|
1225
|
+
this.onTabKey();
|
1226
|
+
break;
|
1227
|
+
default:
|
1228
|
+
break;
|
1229
|
+
}
|
1230
|
+
}
|
1231
|
+
onRightKey() {
|
1232
|
+
const indicators = DomHandler.find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]');
|
1233
|
+
const activeIndex = this.findFocusedIndicatorIndex();
|
1234
|
+
this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);
|
1235
|
+
}
|
1236
|
+
onLeftKey() {
|
1237
|
+
const activeIndex = this.findFocusedIndicatorIndex();
|
1238
|
+
this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);
|
1239
|
+
}
|
1240
|
+
onHomeKey() {
|
1241
|
+
const activeIndex = this.findFocusedIndicatorIndex();
|
1242
|
+
this.changedFocusedIndicator(activeIndex, 0);
|
1243
|
+
}
|
1244
|
+
onEndKey() {
|
1245
|
+
const indicators = DomHandler.find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]');
|
1246
|
+
const activeIndex = this.findFocusedIndicatorIndex();
|
1247
|
+
this.changedFocusedIndicator(activeIndex, indicators.length - 1);
|
1248
|
+
}
|
1249
|
+
onTabKey() {
|
1250
|
+
const indicators = [...DomHandler.find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]')];
|
1251
|
+
const highlightedIndex = indicators.findIndex((ind) => DomHandler.getAttribute(ind, 'data-p-active') === true);
|
1252
|
+
const activeIndicator = DomHandler.findSingle(this.itemsContainer.nativeElement, '[tabindex="0"]');
|
1253
|
+
const activeIndex = indicators.findIndex((ind) => ind === activeIndicator.parentElement);
|
1254
|
+
indicators[activeIndex].children[0].tabIndex = '-1';
|
1255
|
+
indicators[highlightedIndex].children[0].tabIndex = '0';
|
1256
|
+
}
|
1257
|
+
findFocusedIndicatorIndex() {
|
1258
|
+
const indicators = [...DomHandler.find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]')];
|
1259
|
+
const activeIndicator = DomHandler.findSingle(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"] > [tabindex="0"]');
|
1260
|
+
return indicators.findIndex((ind) => ind === activeIndicator.parentElement);
|
1261
|
+
}
|
1262
|
+
changedFocusedIndicator(prevInd, nextInd) {
|
1263
|
+
const indicators = DomHandler.find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]');
|
1264
|
+
indicators[prevInd].children[0].tabIndex = '-1';
|
1265
|
+
indicators[nextInd].children[0].tabIndex = '0';
|
1266
|
+
indicators[nextInd].children[0].focus();
|
1267
|
+
}
|
1116
1268
|
step(dir) {
|
1117
1269
|
let totalShiftedItems = this.totalShiftedItems + dir;
|
1118
1270
|
if (dir < 0 && -1 * totalShiftedItems + this.d_numVisible > this.value.length - 1) {
|
@@ -1222,11 +1374,28 @@ class GalleriaThumbnails {
|
|
1222
1374
|
this.thumbnailsStyle.parentNode?.removeChild(this.thumbnailsStyle);
|
1223
1375
|
}
|
1224
1376
|
}
|
1377
|
+
ariaPrevButtonLabel() {
|
1378
|
+
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.prevPageLabel : undefined;
|
1379
|
+
}
|
1380
|
+
ariaNextButtonLabel() {
|
1381
|
+
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.nextPageLabel : undefined;
|
1382
|
+
}
|
1383
|
+
ariaPageLabel(value) {
|
1384
|
+
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;
|
1385
|
+
}
|
1225
1386
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaThumbnails, deps: [{ token: Galleria }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
1226
1387
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: GalleriaThumbnails, selector: "p-galleriaThumbnails", inputs: { containerId: "containerId", value: "value", isVertical: "isVertical", slideShowActive: "slideShowActive", circular: "circular", responsiveOptions: "responsiveOptions", contentHeight: "contentHeight", showThumbnailNavigators: "showThumbnailNavigators", templates: "templates", numVisible: "numVisible", activeIndex: "activeIndex" }, outputs: { onActiveIndexChange: "onActiveIndexChange", stopSlideShow: "stopSlideShow" }, viewQueries: [{ propertyName: "itemsContainer", first: true, predicate: ["itemsContainer"], descendants: true }], ngImport: i0, template: `
|
1227
1388
|
<div class="p-galleria-thumbnail-wrapper">
|
1228
1389
|
<div class="p-galleria-thumbnail-container">
|
1229
|
-
<button
|
1390
|
+
<button
|
1391
|
+
*ngIf="showThumbnailNavigators"
|
1392
|
+
type="button"
|
1393
|
+
[ngClass]="{ 'p-galleria-thumbnail-prev p-link': true, 'p-disabled': this.isNavBackwardDisabled() }"
|
1394
|
+
(click)="navBackward($event)"
|
1395
|
+
[disabled]="isNavBackwardDisabled()"
|
1396
|
+
pRipple
|
1397
|
+
[attr.aria-label]="ariaPrevButtonLabel()"
|
1398
|
+
>
|
1230
1399
|
<ng-container *ngIf="!galleria.previousThumbnailIconTemplate">
|
1231
1400
|
<ChevronLeftIcon *ngIf="!isVertical" [styleClass]="'p-galleria-thumbnail-prev-icon'" />
|
1232
1401
|
<ChevronUpIcon *ngIf="isVertical" [styleClass]="'p-galleria-thumbnail-prev-icon'" />
|
@@ -1234,7 +1403,7 @@ class GalleriaThumbnails {
|
|
1234
1403
|
<ng-template *ngTemplateOutlet="galleria.previousThumbnailIconTemplate"></ng-template>
|
1235
1404
|
</button>
|
1236
1405
|
<div class="p-galleria-thumbnail-items-container" [ngStyle]="{ height: isVertical ? contentHeight : '' }">
|
1237
|
-
<div #itemsContainer class="p-galleria-thumbnail-items" (transitionend)="onTransitionEnd()" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)">
|
1406
|
+
<div #itemsContainer class="p-galleria-thumbnail-items" (transitionend)="onTransitionEnd()" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)" role="tablist">
|
1238
1407
|
<div
|
1239
1408
|
*ngFor="let item of value; let index = index"
|
1240
1409
|
[ngClass]="{
|
@@ -1244,14 +1413,35 @@ class GalleriaThumbnails {
|
|
1244
1413
|
'p-galleria-thumbnail-item-start': firstItemAciveIndex() === index,
|
1245
1414
|
'p-galleria-thumbnail-item-end': lastItemActiveIndex() === index
|
1246
1415
|
}"
|
1416
|
+
[attr.aria-selected]="activeIndex === index"
|
1417
|
+
[attr.aria-controls]="containerId + '_item_' + index"
|
1418
|
+
[attr.data-pc-section]="'thumbnailitem'"
|
1419
|
+
[attr.data-p-active]="activeIndex === index"
|
1420
|
+
(keydown)="onThumbnailKeydown($event, index)"
|
1247
1421
|
>
|
1248
|
-
<div
|
1422
|
+
<div
|
1423
|
+
class="p-galleria-thumbnail-item-content"
|
1424
|
+
[attr.tabindex]="activeIndex === index ? 0 : -1"
|
1425
|
+
[attr.aria-current]="activeIndex === index ? 'page' : undefined"
|
1426
|
+
[attr.aria-label]="ariaPageLabel(index + 1)"
|
1427
|
+
(click)="onItemClick(index)"
|
1428
|
+
(touchend)="onItemClick(index)"
|
1429
|
+
(keydown.enter)="onItemClick(index)"
|
1430
|
+
>
|
1249
1431
|
<p-galleriaItemSlot type="thumbnail" [item]="item" [templates]="templates"></p-galleriaItemSlot>
|
1250
1432
|
</div>
|
1251
1433
|
</div>
|
1252
1434
|
</div>
|
1253
1435
|
</div>
|
1254
|
-
<button
|
1436
|
+
<button
|
1437
|
+
*ngIf="showThumbnailNavigators"
|
1438
|
+
type="button"
|
1439
|
+
[ngClass]="{ 'p-galleria-thumbnail-next p-link': true, 'p-disabled': this.isNavForwardDisabled() }"
|
1440
|
+
(click)="navForward($event)"
|
1441
|
+
[disabled]="isNavForwardDisabled()"
|
1442
|
+
pRipple
|
1443
|
+
[attr.aria-label]="ariaNextButtonLabel()"
|
1444
|
+
>
|
1255
1445
|
<ng-container *ngIf="!galleria.nextThumbnailIconTemplate">
|
1256
1446
|
<ChevronRightIcon *ngIf="!isVertical" [ngClass]="'p-galleria-thumbnail-next-icon'" />
|
1257
1447
|
<ChevronDownIcon *ngIf="isVertical" [ngClass]="'p-galleria-thumbnail-next-icon'" />
|
@@ -1269,7 +1459,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
1269
1459
|
template: `
|
1270
1460
|
<div class="p-galleria-thumbnail-wrapper">
|
1271
1461
|
<div class="p-galleria-thumbnail-container">
|
1272
|
-
<button
|
1462
|
+
<button
|
1463
|
+
*ngIf="showThumbnailNavigators"
|
1464
|
+
type="button"
|
1465
|
+
[ngClass]="{ 'p-galleria-thumbnail-prev p-link': true, 'p-disabled': this.isNavBackwardDisabled() }"
|
1466
|
+
(click)="navBackward($event)"
|
1467
|
+
[disabled]="isNavBackwardDisabled()"
|
1468
|
+
pRipple
|
1469
|
+
[attr.aria-label]="ariaPrevButtonLabel()"
|
1470
|
+
>
|
1273
1471
|
<ng-container *ngIf="!galleria.previousThumbnailIconTemplate">
|
1274
1472
|
<ChevronLeftIcon *ngIf="!isVertical" [styleClass]="'p-galleria-thumbnail-prev-icon'" />
|
1275
1473
|
<ChevronUpIcon *ngIf="isVertical" [styleClass]="'p-galleria-thumbnail-prev-icon'" />
|
@@ -1277,7 +1475,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
1277
1475
|
<ng-template *ngTemplateOutlet="galleria.previousThumbnailIconTemplate"></ng-template>
|
1278
1476
|
</button>
|
1279
1477
|
<div class="p-galleria-thumbnail-items-container" [ngStyle]="{ height: isVertical ? contentHeight : '' }">
|
1280
|
-
<div #itemsContainer class="p-galleria-thumbnail-items" (transitionend)="onTransitionEnd()" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)">
|
1478
|
+
<div #itemsContainer class="p-galleria-thumbnail-items" (transitionend)="onTransitionEnd()" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)" role="tablist">
|
1281
1479
|
<div
|
1282
1480
|
*ngFor="let item of value; let index = index"
|
1283
1481
|
[ngClass]="{
|
@@ -1287,14 +1485,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
1287
1485
|
'p-galleria-thumbnail-item-start': firstItemAciveIndex() === index,
|
1288
1486
|
'p-galleria-thumbnail-item-end': lastItemActiveIndex() === index
|
1289
1487
|
}"
|
1488
|
+
[attr.aria-selected]="activeIndex === index"
|
1489
|
+
[attr.aria-controls]="containerId + '_item_' + index"
|
1490
|
+
[attr.data-pc-section]="'thumbnailitem'"
|
1491
|
+
[attr.data-p-active]="activeIndex === index"
|
1492
|
+
(keydown)="onThumbnailKeydown($event, index)"
|
1290
1493
|
>
|
1291
|
-
<div
|
1494
|
+
<div
|
1495
|
+
class="p-galleria-thumbnail-item-content"
|
1496
|
+
[attr.tabindex]="activeIndex === index ? 0 : -1"
|
1497
|
+
[attr.aria-current]="activeIndex === index ? 'page' : undefined"
|
1498
|
+
[attr.aria-label]="ariaPageLabel(index + 1)"
|
1499
|
+
(click)="onItemClick(index)"
|
1500
|
+
(touchend)="onItemClick(index)"
|
1501
|
+
(keydown.enter)="onItemClick(index)"
|
1502
|
+
>
|
1292
1503
|
<p-galleriaItemSlot type="thumbnail" [item]="item" [templates]="templates"></p-galleriaItemSlot>
|
1293
1504
|
</div>
|
1294
1505
|
</div>
|
1295
1506
|
</div>
|
1296
1507
|
</div>
|
1297
|
-
<button
|
1508
|
+
<button
|
1509
|
+
*ngIf="showThumbnailNavigators"
|
1510
|
+
type="button"
|
1511
|
+
[ngClass]="{ 'p-galleria-thumbnail-next p-link': true, 'p-disabled': this.isNavForwardDisabled() }"
|
1512
|
+
(click)="navForward($event)"
|
1513
|
+
[disabled]="isNavForwardDisabled()"
|
1514
|
+
pRipple
|
1515
|
+
[attr.aria-label]="ariaNextButtonLabel()"
|
1516
|
+
>
|
1298
1517
|
<ng-container *ngIf="!galleria.nextThumbnailIconTemplate">
|
1299
1518
|
<ChevronRightIcon *ngIf="!isVertical" [ngClass]="'p-galleria-thumbnail-next-icon'" />
|
1300
1519
|
<ChevronDownIcon *ngIf="isVertical" [ngClass]="'p-galleria-thumbnail-next-icon'" />
|
@@ -1344,13 +1563,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
1344
1563
|
}] } });
|
1345
1564
|
class GalleriaModule {
|
1346
1565
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1347
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: GalleriaModule, declarations: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails], imports: [CommonModule, SharedModule, RippleModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon], exports: [CommonModule, Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails, SharedModule] });
|
1348
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaModule, imports: [CommonModule, SharedModule, RippleModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, CommonModule, SharedModule] });
|
1566
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: GalleriaModule, declarations: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails], imports: [CommonModule, SharedModule, RippleModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, FocusTrapModule], exports: [CommonModule, Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails, SharedModule] });
|
1567
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaModule, imports: [CommonModule, SharedModule, RippleModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, FocusTrapModule, CommonModule, SharedModule] });
|
1349
1568
|
}
|
1350
1569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: GalleriaModule, decorators: [{
|
1351
1570
|
type: NgModule,
|
1352
1571
|
args: [{
|
1353
|
-
imports: [CommonModule, SharedModule, RippleModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon],
|
1572
|
+
imports: [CommonModule, SharedModule, RippleModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, FocusTrapModule],
|
1354
1573
|
exports: [CommonModule, Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails, SharedModule],
|
1355
1574
|
declarations: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails]
|
1356
1575
|
}]
|