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
@@ -13,6 +13,8 @@ import { SearchPlusIcon } from 'primeng/icons/searchplus';
|
|
13
13
|
import { TimesIcon } from 'primeng/icons/times';
|
14
14
|
import { UndoIcon } from 'primeng/icons/undo';
|
15
15
|
import { ZIndexUtils } from 'primeng/utils';
|
16
|
+
import * as i3 from 'primeng/focustrap';
|
17
|
+
import { FocusTrapModule } from 'primeng/focustrap';
|
16
18
|
|
17
19
|
/**
|
18
20
|
* Displays an image with preview and tranformation options. For multiple image, see Galleria.
|
@@ -51,6 +53,11 @@ class Image {
|
|
51
53
|
* Attribute of the image element.
|
52
54
|
* @group Props
|
53
55
|
*/
|
56
|
+
previewImageSrc;
|
57
|
+
/**
|
58
|
+
* Attribute of the preview image element.
|
59
|
+
* @group Props
|
60
|
+
*/
|
54
61
|
alt;
|
55
62
|
/**
|
56
63
|
* Attribute of the image element.
|
@@ -99,6 +106,8 @@ class Image {
|
|
99
106
|
*/
|
100
107
|
onImageError = new EventEmitter();
|
101
108
|
mask;
|
109
|
+
previewButton;
|
110
|
+
closeButton;
|
102
111
|
templates;
|
103
112
|
indicatorTemplate;
|
104
113
|
rotateRightIconTemplate;
|
@@ -169,6 +178,19 @@ class Image {
|
|
169
178
|
}
|
170
179
|
this.previewClick = false;
|
171
180
|
}
|
181
|
+
onMaskKeydown(event) {
|
182
|
+
switch (event.code) {
|
183
|
+
case 'Escape':
|
184
|
+
this.onMaskClick();
|
185
|
+
setTimeout(() => {
|
186
|
+
DomHandler.focus(this.previewButton.nativeElement);
|
187
|
+
}, 25);
|
188
|
+
event.preventDefault();
|
189
|
+
break;
|
190
|
+
default:
|
191
|
+
break;
|
192
|
+
}
|
193
|
+
}
|
172
194
|
onPreviewImageClick() {
|
173
195
|
this.previewClick = true;
|
174
196
|
}
|
@@ -195,6 +217,9 @@ class Image {
|
|
195
217
|
this.wrapper = this.container?.parentElement;
|
196
218
|
this.appendContainer();
|
197
219
|
this.moveOnTop();
|
220
|
+
setTimeout(() => {
|
221
|
+
DomHandler.focus(this.closeButton.nativeElement);
|
222
|
+
}, 25);
|
198
223
|
break;
|
199
224
|
case 'void':
|
200
225
|
DomHandler.addClass(this.wrapper, 'p-component-overlay-leave');
|
@@ -247,42 +272,57 @@ class Image {
|
|
247
272
|
imageError(event) {
|
248
273
|
this.onImageError.emit(event);
|
249
274
|
}
|
275
|
+
rightAriaLabel() {
|
276
|
+
return this.config.translation.aria ? this.config.translation.aria.rotateRight : undefined;
|
277
|
+
}
|
278
|
+
leftAriaLabel() {
|
279
|
+
return this.config.translation.aria ? this.config.translation.aria.rotateLeft : undefined;
|
280
|
+
}
|
281
|
+
zoomInAriaLabel() {
|
282
|
+
return this.config.translation.aria ? this.config.translation.aria.zoomIn : undefined;
|
283
|
+
}
|
284
|
+
zoomOutAriaLabel() {
|
285
|
+
return this.config.translation.aria ? this.config.translation.aria.zoomOut : undefined;
|
286
|
+
}
|
287
|
+
closeAriaLabel() {
|
288
|
+
return this.config.translation.aria ? this.config.translation.aria.close : undefined;
|
289
|
+
}
|
250
290
|
onKeydownHandler(event) {
|
251
291
|
if (this.previewVisible) {
|
252
292
|
this.closePreview();
|
253
293
|
}
|
254
294
|
}
|
255
295
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: Image, deps: [{ token: DOCUMENT }, { token: i1.PrimeNGConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
256
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Image, selector: "p-image", inputs: { imageClass: "imageClass", imageStyle: "imageStyle", styleClass: "styleClass", style: "style", src: "src", alt: "alt", width: "width", height: "height", appendTo: "appendTo", preview: "preview", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onShow: "onShow", onHide: "onHide", onImageError: "onImageError" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" }, classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }], ngImport: i0, template: `
|
296
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: Image, selector: "p-image", inputs: { imageClass: "imageClass", imageStyle: "imageStyle", styleClass: "styleClass", style: "style", src: "src", previewImageSrc: "previewImageSrc", alt: "alt", width: "width", height: "height", appendTo: "appendTo", preview: "preview", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onShow: "onShow", onHide: "onHide", onImageError: "onImageError" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" }, classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }, { propertyName: "previewButton", first: true, predicate: ["previewButton"], descendants: true }, { propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true }], ngImport: i0, template: `
|
257
297
|
<span [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style">
|
258
298
|
<img [attr.src]="src" [attr.alt]="alt" [attr.width]="width" [attr.height]="height" [ngStyle]="imageStyle" [class]="imageClass" (error)="imageError($event)" />
|
259
|
-
<
|
299
|
+
<button class="p-image-preview-indicator" *ngIf="preview" (click)="onImageClick()" #previewButton>
|
260
300
|
<ng-container *ngIf="indicatorTemplate; else defaultTemplate">
|
261
301
|
<ng-container *ngTemplateOutlet="indicatorTemplate"></ng-container>
|
262
302
|
</ng-container>
|
263
303
|
<ng-template #defaultTemplate>
|
264
304
|
<EyeIcon [styleClass]="'p-image-preview-icon'" />
|
265
305
|
</ng-template>
|
266
|
-
</
|
267
|
-
<div #mask class="p-image-mask p-component-overlay p-component-overlay-enter" *ngIf="maskVisible" (click)="onMaskClick()">
|
306
|
+
</button>
|
307
|
+
<div #mask class="p-image-mask p-component-overlay p-component-overlay-enter" *ngIf="maskVisible" [attr.aria-modal]="maskVisible" role="dialog" (click)="onMaskClick()" (keydown)="onMaskKeydown($event)" pFocusTrap>
|
268
308
|
<div class="p-image-toolbar" (click)="handleToolbarClick($event)">
|
269
|
-
<button class="p-image-action p-link" (click)="rotateRight()" type="button">
|
309
|
+
<button class="p-image-action p-link" (click)="rotateRight()" type="button" [attr.aria-label]="rightAriaLabel()">
|
270
310
|
<RefreshIcon *ngIf="!rotateRightIconTemplate" />
|
271
311
|
<ng-template *ngTemplateOutlet="rotateRightIconTemplate"></ng-template>
|
272
312
|
</button>
|
273
|
-
<button class="p-image-action p-link" (click)="rotateLeft()" type="button">
|
313
|
+
<button class="p-image-action p-link" (click)="rotateLeft()" type="button" [attr.aria-label]="leftAriaLabel()">
|
274
314
|
<UndoIcon *ngIf="!rotateLeftIconTemplate" />
|
275
315
|
<ng-template *ngTemplateOutlet="rotateLeftIconTemplate"></ng-template>
|
276
316
|
</button>
|
277
|
-
<button class="p-image-action p-link" (click)="zoomOut()" type="button" [disabled]="isZoomOutDisabled">
|
317
|
+
<button class="p-image-action p-link" (click)="zoomOut()" type="button" [disabled]="isZoomOutDisabled" [attr.aria-label]="zoomOutAriaLabel()">
|
278
318
|
<SearchMinusIcon *ngIf="!zoomOutIconTemplate" />
|
279
319
|
<ng-template *ngTemplateOutlet="zoomOutIconTemplate"></ng-template>
|
280
320
|
</button>
|
281
|
-
<button class="p-image-action p-link" (click)="zoomIn()" type="button" [disabled]="isZoomInDisabled">
|
321
|
+
<button class="p-image-action p-link" (click)="zoomIn()" type="button" [disabled]="isZoomInDisabled" [attr.aria-label]="zoomInAriaLabel()">
|
282
322
|
<SearchPlusIcon *ngIf="!zoomInIconTemplate" />
|
283
323
|
<ng-template *ngTemplateOutlet="zoomInIconTemplate"></ng-template>
|
284
324
|
</button>
|
285
|
-
<button class="p-image-action p-link" type="button" (click)="closePreview()">
|
325
|
+
<button class="p-image-action p-link" type="button" (click)="closePreview()" [attr.aria-label]="closeAriaLabel()" #closeButton>
|
286
326
|
<TimesIcon *ngIf="!closeIconTemplate" />
|
287
327
|
<ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
|
288
328
|
</button>
|
@@ -293,11 +333,11 @@ class Image {
|
|
293
333
|
(@animation.start)="onAnimationStart($event)"
|
294
334
|
(@animation.done)="onAnimationEnd($event)"
|
295
335
|
>
|
296
|
-
<img [attr.src]="src" class="p-image-preview" [ngStyle]="imagePreviewStyle()" (click)="onPreviewImageClick()" />
|
336
|
+
<img [attr.src]="previewImageSrc ? previewImageSrc : src" class="p-image-preview" [ngStyle]="imagePreviewStyle()" (click)="onPreviewImageClick()" />
|
297
337
|
</div>
|
298
338
|
</div>
|
299
339
|
</span>
|
300
|
-
`, isInline: true, styles: [".p-image-mask{display:flex;align-items:center;justify-content:center}.p-image-preview-container{position:relative;display:inline-block}.p-image-preview-indicator{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.p-image-preview-icon.pi{font-size:1.5rem}.p-image-preview-icon.p-icon{scale:1.5}.p-image-preview-container:hover>.p-image-preview-indicator{opacity:1;cursor:pointer}.p-image-preview-container>img{cursor:pointer}.p-image-toolbar{position:absolute;top:0;right:0;display:flex;z-index:1}.p-image-action.p-link{display:flex;justify-content:center;align-items:center}.p-image-action.p-link[disabled]{opacity:.5}.p-image-preview{transition:transform .15s;max-width:100vw;max-height:100vh}\n"], 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: "component", type: i0.forwardRef(function () { return RefreshIcon; }), selector: "RefreshIcon" }, { kind: "component", type: i0.forwardRef(function () { return EyeIcon; }), selector: "EyeIcon" }, { kind: "component", type: i0.forwardRef(function () { return UndoIcon; }), selector: "UndoIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchMinusIcon; }), selector: "SearchMinusIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchPlusIcon; }), selector: "SearchPlusIcon" }, { kind: "component", type: i0.forwardRef(function () { return TimesIcon; }), selector: "TimesIcon" }], animations: [
|
340
|
+
`, isInline: true, styles: [".p-image-mask{display:flex;align-items:center;justify-content:center}.p-image-preview-container{position:relative;display:inline-block}.p-image-preview-indicator{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.p-image-preview-icon.pi{font-size:1.5rem}.p-image-preview-icon.p-icon{scale:1.5}.p-image-preview-container:hover>.p-image-preview-indicator{opacity:1;cursor:pointer}.p-image-preview-container>img{cursor:pointer}.p-image-toolbar{position:absolute;top:0;right:0;display:flex;z-index:1}.p-image-action.p-link{display:flex;justify-content:center;align-items:center}.p-image-action.p-link[disabled]{opacity:.5}.p-image-preview{transition:transform .15s;max-width:100vw;max-height:100vh}\n"], 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: "component", type: i0.forwardRef(function () { return RefreshIcon; }), selector: "RefreshIcon" }, { kind: "component", type: i0.forwardRef(function () { return EyeIcon; }), selector: "EyeIcon" }, { kind: "component", type: i0.forwardRef(function () { return UndoIcon; }), selector: "UndoIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchMinusIcon; }), selector: "SearchMinusIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchPlusIcon; }), selector: "SearchPlusIcon" }, { kind: "component", type: i0.forwardRef(function () { return TimesIcon; }), selector: "TimesIcon" }, { kind: "directive", type: i0.forwardRef(function () { return i3.FocusTrap; }), selector: "[pFocusTrap]", inputs: ["pFocusTrapDisabled"] }], animations: [
|
301
341
|
trigger('animation', [
|
302
342
|
transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),
|
303
343
|
transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])
|
@@ -309,33 +349,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
309
349
|
args: [{ selector: 'p-image', template: `
|
310
350
|
<span [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style">
|
311
351
|
<img [attr.src]="src" [attr.alt]="alt" [attr.width]="width" [attr.height]="height" [ngStyle]="imageStyle" [class]="imageClass" (error)="imageError($event)" />
|
312
|
-
<
|
352
|
+
<button class="p-image-preview-indicator" *ngIf="preview" (click)="onImageClick()" #previewButton>
|
313
353
|
<ng-container *ngIf="indicatorTemplate; else defaultTemplate">
|
314
354
|
<ng-container *ngTemplateOutlet="indicatorTemplate"></ng-container>
|
315
355
|
</ng-container>
|
316
356
|
<ng-template #defaultTemplate>
|
317
357
|
<EyeIcon [styleClass]="'p-image-preview-icon'" />
|
318
358
|
</ng-template>
|
319
|
-
</
|
320
|
-
<div #mask class="p-image-mask p-component-overlay p-component-overlay-enter" *ngIf="maskVisible" (click)="onMaskClick()">
|
359
|
+
</button>
|
360
|
+
<div #mask class="p-image-mask p-component-overlay p-component-overlay-enter" *ngIf="maskVisible" [attr.aria-modal]="maskVisible" role="dialog" (click)="onMaskClick()" (keydown)="onMaskKeydown($event)" pFocusTrap>
|
321
361
|
<div class="p-image-toolbar" (click)="handleToolbarClick($event)">
|
322
|
-
<button class="p-image-action p-link" (click)="rotateRight()" type="button">
|
362
|
+
<button class="p-image-action p-link" (click)="rotateRight()" type="button" [attr.aria-label]="rightAriaLabel()">
|
323
363
|
<RefreshIcon *ngIf="!rotateRightIconTemplate" />
|
324
364
|
<ng-template *ngTemplateOutlet="rotateRightIconTemplate"></ng-template>
|
325
365
|
</button>
|
326
|
-
<button class="p-image-action p-link" (click)="rotateLeft()" type="button">
|
366
|
+
<button class="p-image-action p-link" (click)="rotateLeft()" type="button" [attr.aria-label]="leftAriaLabel()">
|
327
367
|
<UndoIcon *ngIf="!rotateLeftIconTemplate" />
|
328
368
|
<ng-template *ngTemplateOutlet="rotateLeftIconTemplate"></ng-template>
|
329
369
|
</button>
|
330
|
-
<button class="p-image-action p-link" (click)="zoomOut()" type="button" [disabled]="isZoomOutDisabled">
|
370
|
+
<button class="p-image-action p-link" (click)="zoomOut()" type="button" [disabled]="isZoomOutDisabled" [attr.aria-label]="zoomOutAriaLabel()">
|
331
371
|
<SearchMinusIcon *ngIf="!zoomOutIconTemplate" />
|
332
372
|
<ng-template *ngTemplateOutlet="zoomOutIconTemplate"></ng-template>
|
333
373
|
</button>
|
334
|
-
<button class="p-image-action p-link" (click)="zoomIn()" type="button" [disabled]="isZoomInDisabled">
|
374
|
+
<button class="p-image-action p-link" (click)="zoomIn()" type="button" [disabled]="isZoomInDisabled" [attr.aria-label]="zoomInAriaLabel()">
|
335
375
|
<SearchPlusIcon *ngIf="!zoomInIconTemplate" />
|
336
376
|
<ng-template *ngTemplateOutlet="zoomInIconTemplate"></ng-template>
|
337
377
|
</button>
|
338
|
-
<button class="p-image-action p-link" type="button" (click)="closePreview()">
|
378
|
+
<button class="p-image-action p-link" type="button" (click)="closePreview()" [attr.aria-label]="closeAriaLabel()" #closeButton>
|
339
379
|
<TimesIcon *ngIf="!closeIconTemplate" />
|
340
380
|
<ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
|
341
381
|
</button>
|
@@ -346,7 +386,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
346
386
|
(@animation.start)="onAnimationStart($event)"
|
347
387
|
(@animation.done)="onAnimationEnd($event)"
|
348
388
|
>
|
349
|
-
<img [attr.src]="src" class="p-image-preview" [ngStyle]="imagePreviewStyle()" (click)="onPreviewImageClick()" />
|
389
|
+
<img [attr.src]="previewImageSrc ? previewImageSrc : src" class="p-image-preview" [ngStyle]="imagePreviewStyle()" (click)="onPreviewImageClick()" />
|
350
390
|
</div>
|
351
391
|
</div>
|
352
392
|
</span>
|
@@ -371,6 +411,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
371
411
|
type: Input
|
372
412
|
}], src: [{
|
373
413
|
type: Input
|
414
|
+
}], previewImageSrc: [{
|
415
|
+
type: Input
|
374
416
|
}], alt: [{
|
375
417
|
type: Input
|
376
418
|
}], width: [{
|
@@ -394,6 +436,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
394
436
|
}], mask: [{
|
395
437
|
type: ViewChild,
|
396
438
|
args: ['mask']
|
439
|
+
}], previewButton: [{
|
440
|
+
type: ViewChild,
|
441
|
+
args: ['previewButton']
|
442
|
+
}], closeButton: [{
|
443
|
+
type: ViewChild,
|
444
|
+
args: ['closeButton']
|
397
445
|
}], templates: [{
|
398
446
|
type: ContentChildren,
|
399
447
|
args: [PrimeTemplate]
|
@@ -403,13 +451,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
403
451
|
}] } });
|
404
452
|
class ImageModule {
|
405
453
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
406
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: ImageModule, declarations: [Image], imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon], exports: [Image, SharedModule] });
|
407
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ImageModule, imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, SharedModule] });
|
454
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: ImageModule, declarations: [Image], imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule], exports: [Image, SharedModule] });
|
455
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ImageModule, imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule, SharedModule] });
|
408
456
|
}
|
409
457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ImageModule, decorators: [{
|
410
458
|
type: NgModule,
|
411
459
|
args: [{
|
412
|
-
imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon],
|
460
|
+
imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule],
|
413
461
|
exports: [Image, SharedModule],
|
414
462
|
declarations: [Image]
|
415
463
|
}]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-image.mjs","sources":["../../src/app/components/image/image.ts","../../src/app/components/image/primeng-image.ts"],"sourcesContent":["import { AnimationEvent, animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, HostListener, Inject, Input, NgModule, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { EyeIcon } from 'primeng/icons/eye';\nimport { RefreshIcon } from 'primeng/icons/refresh';\nimport { SearchMinusIcon } from 'primeng/icons/searchminus';\nimport { SearchPlusIcon } from 'primeng/icons/searchplus';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { UndoIcon } from 'primeng/icons/undo';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { Nullable } from 'primeng/ts-helpers';\n/**\n * Displays an image with preview and tranformation options. For multiple image, see Galleria.\n * @group Components\n */\n@Component({\n selector: 'p-image',\n template: `\n <span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\n <img [attr.src]=\"src\" [attr.alt]=\"alt\" [attr.width]=\"width\" [attr.height]=\"height\" [ngStyle]=\"imageStyle\" [class]=\"imageClass\" (error)=\"imageError($event)\" />\n <div class=\"p-image-preview-indicator\" *ngIf=\"preview\" (click)=\"onImageClick()\">\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <EyeIcon [styleClass]=\"'p-image-preview-icon'\" />\n </ng-template>\n </div>\n <div #mask class=\"p-image-mask p-component-overlay p-component-overlay-enter\" *ngIf=\"maskVisible\" (click)=\"onMaskClick()\">\n <div class=\"p-image-toolbar\" (click)=\"handleToolbarClick($event)\">\n <button class=\"p-image-action p-link\" (click)=\"rotateRight()\" type=\"button\">\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" (click)=\"rotateLeft()\" type=\"button\">\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\">\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\">\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" type=\"button\" (click)=\"closePreview()\">\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\n </button>\n </div>\n <div\n *ngIf=\"previewVisible\"\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\"\n >\n <img [attr.src]=\"src\" class=\"p-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\n </div>\n </div>\n </span>\n `,\n animations: [\n trigger('animation', [\n transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./image.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class Image implements AfterContentInit {\n /**\n * Style class of the image element.\n * @group Props\n */\n @Input() imageClass: string | undefined;\n /**\n * Inline style of the image element.\n * @group Props\n */\n @Input() imageStyle: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() src: string | SafeUrl | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() alt: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() width: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() height: string | undefined;\n /**\n * Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Controls the preview functionality.\n * @group Props\n */\n @Input() preview: boolean = false;\n /**\n * Transition options of the show animation\n * @group Props\n */\n @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation\n * @group Props\n */\n @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Triggered when the preview overlay is shown.\n * @group Emits\n */\n @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Triggered when the preview overlay is hidden.\n * @group Emits\n */\n @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('mask') mask: ElementRef | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n indicatorTemplate: TemplateRef<any> | undefined;\n\n rotateRightIconTemplate: TemplateRef<any> | undefined;\n\n rotateLeftIconTemplate: TemplateRef<any> | undefined;\n\n zoomOutIconTemplate: TemplateRef<any> | undefined;\n\n zoomInIconTemplate: TemplateRef<any> | undefined;\n\n closeIconTemplate: TemplateRef<any> | undefined;\n\n maskVisible: boolean = false;\n\n previewVisible: boolean = false;\n\n rotate: number = 0;\n\n scale: number = 1;\n\n previewClick: boolean = false;\n\n container: Nullable<HTMLElement>;\n\n wrapper: Nullable<HTMLElement>;\n\n public get isZoomOutDisabled(): boolean {\n return this.scale - this.zoomSettings.step <= this.zoomSettings.min;\n }\n\n public get isZoomInDisabled(): boolean {\n return this.scale + this.zoomSettings.step >= this.zoomSettings.max;\n }\n\n private zoomSettings = {\n default: 1,\n step: 0.1,\n max: 1.5,\n min: 0.5\n };\n\n constructor(@Inject(DOCUMENT) private document: Document, private config: PrimeNGConfig, private cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'indicator':\n this.indicatorTemplate = item.template;\n break;\n\n case 'rotaterighticon':\n this.rotateRightIconTemplate = item.template;\n break;\n\n case 'rotatelefticon':\n this.rotateLeftIconTemplate = item.template;\n break;\n\n case 'zoomouticon':\n this.zoomOutIconTemplate = item.template;\n break;\n\n case 'zoominicon':\n this.zoomInIconTemplate = item.template;\n break;\n\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n\n default:\n this.indicatorTemplate = item.template;\n break;\n }\n });\n }\n\n onImageClick() {\n if (this.preview) {\n this.maskVisible = true;\n this.previewVisible = true;\n }\n }\n\n onMaskClick() {\n if (!this.previewClick) {\n this.closePreview();\n }\n\n this.previewClick = false;\n }\n\n onPreviewImageClick() {\n this.previewClick = true;\n }\n\n rotateRight() {\n this.rotate += 90;\n this.previewClick = true;\n }\n\n rotateLeft() {\n this.rotate -= 90;\n this.previewClick = true;\n }\n\n zoomIn() {\n this.scale = this.scale + this.zoomSettings.step;\n this.previewClick = true;\n }\n\n zoomOut() {\n this.scale = this.scale - this.zoomSettings.step;\n this.previewClick = true;\n }\n\n onAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.container = event.element;\n this.wrapper = this.container?.parentElement;\n this.appendContainer();\n this.moveOnTop();\n break;\n\n case 'void':\n DomHandler.addClass(this.wrapper, 'p-component-overlay-leave');\n break;\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(this.wrapper);\n this.maskVisible = false;\n this.container = null;\n this.wrapper = null;\n this.cd.markForCheck();\n this.onHide.emit({});\n break;\n case 'visible':\n this.onShow.emit({});\n break;\n }\n }\n\n moveOnTop() {\n ZIndexUtils.set('modal', this.wrapper, this.config.zIndex.modal);\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.document.body.appendChild(this.wrapper as HTMLElement);\n else DomHandler.appendChild(this.wrapper, this.appendTo);\n }\n }\n\n imagePreviewStyle() {\n return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };\n }\n\n containerClass() {\n return {\n 'p-image p-component': true,\n 'p-image-preview-container': this.preview\n };\n }\n\n handleToolbarClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n closePreview(): void {\n this.previewVisible = false;\n this.rotate = 0;\n this.scale = this.zoomSettings.default;\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (this.previewVisible) {\n this.closePreview();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon],\n exports: [Image, SharedModule],\n declarations: [Image]\n})\nexport class ImageModule {}\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-image.mjs","sources":["../../src/app/components/image/image.ts","../../src/app/components/image/primeng-image.ts"],"sourcesContent":["import { AnimationEvent, animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, HostListener, Inject, Input, NgModule, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { EyeIcon } from 'primeng/icons/eye';\nimport { RefreshIcon } from 'primeng/icons/refresh';\nimport { SearchMinusIcon } from 'primeng/icons/searchminus';\nimport { SearchPlusIcon } from 'primeng/icons/searchplus';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { UndoIcon } from 'primeng/icons/undo';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { FocusTrapModule } from 'primeng/focustrap';\n\n/**\n * Displays an image with preview and tranformation options. For multiple image, see Galleria.\n * @group Components\n */\n@Component({\n selector: 'p-image',\n template: `\n <span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\n <img [attr.src]=\"src\" [attr.alt]=\"alt\" [attr.width]=\"width\" [attr.height]=\"height\" [ngStyle]=\"imageStyle\" [class]=\"imageClass\" (error)=\"imageError($event)\" />\n <button class=\"p-image-preview-indicator\" *ngIf=\"preview\" (click)=\"onImageClick()\" #previewButton>\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <EyeIcon [styleClass]=\"'p-image-preview-icon'\" />\n </ng-template>\n </button>\n <div #mask class=\"p-image-mask p-component-overlay p-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\n <div class=\"p-image-toolbar\" (click)=\"handleToolbarClick($event)\">\n <button class=\"p-image-action p-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\n </button>\n <button class=\"p-image-action p-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\n </button>\n </div>\n <div\n *ngIf=\"previewVisible\"\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\"\n >\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" class=\"p-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\n </div>\n </div>\n </span>\n `,\n animations: [\n trigger('animation', [\n transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./image.css'],\n host: {\n class: 'p-element'\n }\n})\nexport class Image implements AfterContentInit {\n /**\n * Style class of the image element.\n * @group Props\n */\n @Input() imageClass: string | undefined;\n /**\n * Inline style of the image element.\n * @group Props\n */\n @Input() imageStyle: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() src: string | SafeUrl | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() previewImageSrc: string | SafeUrl | undefined;\n /**\n * Attribute of the preview image element.\n * @group Props\n */\n @Input() alt: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() width: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() height: string | undefined;\n /**\n * Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Controls the preview functionality.\n * @group Props\n */\n @Input() preview: boolean = false;\n /**\n * Transition options of the show animation\n * @group Props\n */\n @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation\n * @group Props\n */\n @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Triggered when the preview overlay is shown.\n * @group Emits\n */\n @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Triggered when the preview overlay is hidden.\n * @group Emits\n */\n @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('mask') mask: ElementRef | undefined;\n\n @ViewChild('previewButton') previewButton: ElementRef | undefined;\n\n @ViewChild('closeButton') closeButton: ElementRef | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n indicatorTemplate: TemplateRef<any> | undefined;\n\n rotateRightIconTemplate: TemplateRef<any> | undefined;\n\n rotateLeftIconTemplate: TemplateRef<any> | undefined;\n\n zoomOutIconTemplate: TemplateRef<any> | undefined;\n\n zoomInIconTemplate: TemplateRef<any> | undefined;\n\n closeIconTemplate: TemplateRef<any> | undefined;\n\n maskVisible: boolean = false;\n\n previewVisible: boolean = false;\n\n rotate: number = 0;\n\n scale: number = 1;\n\n previewClick: boolean = false;\n\n container: Nullable<HTMLElement>;\n\n wrapper: Nullable<HTMLElement>;\n\n public get isZoomOutDisabled(): boolean {\n return this.scale - this.zoomSettings.step <= this.zoomSettings.min;\n }\n\n public get isZoomInDisabled(): boolean {\n return this.scale + this.zoomSettings.step >= this.zoomSettings.max;\n }\n\n private zoomSettings = {\n default: 1,\n step: 0.1,\n max: 1.5,\n min: 0.5\n };\n\n constructor(@Inject(DOCUMENT) private document: Document, private config: PrimeNGConfig, private cd: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'indicator':\n this.indicatorTemplate = item.template;\n break;\n\n case 'rotaterighticon':\n this.rotateRightIconTemplate = item.template;\n break;\n\n case 'rotatelefticon':\n this.rotateLeftIconTemplate = item.template;\n break;\n\n case 'zoomouticon':\n this.zoomOutIconTemplate = item.template;\n break;\n\n case 'zoominicon':\n this.zoomInIconTemplate = item.template;\n break;\n\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n\n default:\n this.indicatorTemplate = item.template;\n break;\n }\n });\n }\n\n onImageClick() {\n if (this.preview) {\n this.maskVisible = true;\n this.previewVisible = true;\n }\n }\n\n onMaskClick() {\n if (!this.previewClick) {\n this.closePreview();\n }\n\n this.previewClick = false;\n }\n\n onMaskKeydown(event) {\n switch (event.code) {\n case 'Escape':\n this.onMaskClick();\n setTimeout(() => {\n DomHandler.focus(this.previewButton.nativeElement);\n }, 25);\n event.preventDefault();\n\n break;\n\n default:\n break;\n }\n }\n\n onPreviewImageClick() {\n this.previewClick = true;\n }\n\n rotateRight() {\n this.rotate += 90;\n this.previewClick = true;\n }\n\n rotateLeft() {\n this.rotate -= 90;\n this.previewClick = true;\n }\n\n zoomIn() {\n this.scale = this.scale + this.zoomSettings.step;\n this.previewClick = true;\n }\n\n zoomOut() {\n this.scale = this.scale - this.zoomSettings.step;\n this.previewClick = true;\n }\n\n onAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.container = event.element;\n this.wrapper = this.container?.parentElement;\n this.appendContainer();\n this.moveOnTop();\n\n setTimeout(() => {\n DomHandler.focus(this.closeButton.nativeElement);\n }, 25);\n break;\n\n case 'void':\n DomHandler.addClass(this.wrapper, 'p-component-overlay-leave');\n break;\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(this.wrapper);\n this.maskVisible = false;\n this.container = null;\n this.wrapper = null;\n this.cd.markForCheck();\n this.onHide.emit({});\n break;\n case 'visible':\n this.onShow.emit({});\n break;\n }\n }\n\n moveOnTop() {\n ZIndexUtils.set('modal', this.wrapper, this.config.zIndex.modal);\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.document.body.appendChild(this.wrapper as HTMLElement);\n else DomHandler.appendChild(this.wrapper, this.appendTo);\n }\n }\n\n imagePreviewStyle() {\n return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };\n }\n\n containerClass() {\n return {\n 'p-image p-component': true,\n 'p-image-preview-container': this.preview\n };\n }\n\n handleToolbarClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n closePreview(): void {\n this.previewVisible = false;\n this.rotate = 0;\n this.scale = this.zoomSettings.default;\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n rightAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.rotateRight : undefined;\n }\n\n leftAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.rotateLeft : undefined;\n }\n\n zoomInAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomIn : undefined;\n }\n\n zoomOutAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomOut : undefined;\n }\n\n closeAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (this.previewVisible) {\n this.closePreview();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule],\n exports: [Image, SharedModule],\n declarations: [Image]\n})\nexport class ImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -665,6 +665,11 @@ class InputNumber {
|
|
665
665
|
if (code != 13) {
|
666
666
|
event.preventDefault();
|
667
667
|
}
|
668
|
+
const newValue = this.parseValue(this.input.nativeElement.value + char);
|
669
|
+
const newValueStr = newValue != null ? newValue.toString() : '';
|
670
|
+
if (this.maxlength && newValueStr.length > this.maxlength) {
|
671
|
+
return;
|
672
|
+
}
|
668
673
|
if ((48 <= code && code <= 57) || isMinusSign || isDecimalSign) {
|
669
674
|
this.insert(event, char, { isDecimalSign, isMinusSign });
|
670
675
|
}
|
@@ -928,6 +933,11 @@ class InputNumber {
|
|
928
933
|
else {
|
929
934
|
let selectionStart = this.input.nativeElement.selectionStart;
|
930
935
|
let selectionEnd = this.input.nativeElement.selectionEnd;
|
936
|
+
if (this.maxlength && newValue.length > this.maxlength) {
|
937
|
+
newValue = newValue.slice(0, this.maxlength);
|
938
|
+
selectionStart = Math.min(selectionStart, this.maxlength);
|
939
|
+
selectionEnd = Math.min(selectionEnd, this.maxlength);
|
940
|
+
}
|
931
941
|
if (this.maxlength && this.maxlength < newValue.length) {
|
932
942
|
return;
|
933
943
|
}
|
@@ -1103,7 +1113,7 @@ class InputNumber {
|
|
1103
1113
|
(focus)="onInputFocus($event)"
|
1104
1114
|
(blur)="onInputBlur($event)"
|
1105
1115
|
/>
|
1106
|
-
<ng-container *ngIf="buttonLayout != 'vertical' && showClear && value">
|
1116
|
+
<ng-container *ngIf="buttonLayout != 'vertical' && showClear && (value || value === 0)">
|
1107
1117
|
<TimesIcon *ngIf="!clearIconTemplate" [ngClass]="'p-inputnumber-clear-icon'" (click)="clear()" />
|
1108
1118
|
<span *ngIf="clearIconTemplate" (click)="clear()" class="p-inputnumber-clear-icon">
|
1109
1119
|
<ng-template *ngTemplateOutlet="clearIconTemplate"></ng-template>
|
@@ -1241,7 +1251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
1241
1251
|
(focus)="onInputFocus($event)"
|
1242
1252
|
(blur)="onInputBlur($event)"
|
1243
1253
|
/>
|
1244
|
-
<ng-container *ngIf="buttonLayout != 'vertical' && showClear && value">
|
1254
|
+
<ng-container *ngIf="buttonLayout != 'vertical' && showClear && (value || value === 0)">
|
1245
1255
|
<TimesIcon *ngIf="!clearIconTemplate" [ngClass]="'p-inputnumber-clear-icon'" (click)="clear()" />
|
1246
1256
|
<span *ngIf="clearIconTemplate" (click)="clear()" class="p-inputnumber-clear-icon">
|
1247
1257
|
<ng-template *ngTemplateOutlet="clearIconTemplate"></ng-template>
|