primeng 17.0.0 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/autocomplete/autocomplete.d.ts +3 -2
  2. package/calendar/calendar.d.ts +4 -2
  3. package/calendar/calendar.interface.d.ts +12 -0
  4. package/cascadeselect/cascadeselect.d.ts +1 -1
  5. package/confirmdialog/confirmdialog.d.ts +1 -0
  6. package/confirmdialog/confirmdialog.interface.d.ts +9 -1
  7. package/confirmpopup/confirmpopup.d.ts +2 -0
  8. package/confirmpopup/confirmpopup.interface.d.ts +12 -0
  9. package/dialog/dialog.d.ts +7 -1
  10. package/dynamicdialog/dialogservice.d.ts +6 -0
  11. package/dynamicdialog/dynamicdialog-config.d.ts +41 -0
  12. package/dynamicdialog/dynamicdialog.d.ts +13 -0
  13. package/esm2022/autocomplete/autocomplete.mjs +13 -6
  14. package/esm2022/avatar/avatar.mjs +3 -3
  15. package/esm2022/calendar/calendar.interface.mjs +1 -1
  16. package/esm2022/calendar/calendar.mjs +47 -8
  17. package/esm2022/cascadeselect/cascadeselect.mjs +2 -2
  18. package/esm2022/confirmdialog/confirmdialog.interface.mjs +1 -1
  19. package/esm2022/confirmdialog/confirmdialog.mjs +139 -125
  20. package/esm2022/confirmpopup/confirmpopup.interface.mjs +1 -1
  21. package/esm2022/confirmpopup/confirmpopup.mjs +93 -65
  22. package/esm2022/dialog/dialog.mjs +123 -98
  23. package/esm2022/dropdown/dropdown.mjs +3 -2
  24. package/esm2022/dynamicdialog/dialogservice.mjs +9 -1
  25. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +11 -1
  26. package/esm2022/dynamicdialog/dynamicdialog.mjs +109 -30
  27. package/esm2022/fileupload/fileupload.mjs +4 -4
  28. package/esm2022/inputswitch/inputswitch.mjs +2 -2
  29. package/esm2022/listbox/listbox.mjs +5 -5
  30. package/esm2022/menu/menu.mjs +11 -14
  31. package/esm2022/multiselect/multiselect.mjs +15 -22
  32. package/esm2022/overlaypanel/overlaypanel.mjs +28 -8
  33. package/esm2022/panelmenu/panelmenu.mjs +41 -17
  34. package/esm2022/picklist/picklist.mjs +7 -5
  35. package/esm2022/progressbar/progressbar.mjs +29 -6
  36. package/esm2022/scroller/scroller.mjs +3 -3
  37. package/esm2022/sidebar/sidebar.interface.mjs +1 -1
  38. package/esm2022/sidebar/sidebar.mjs +69 -55
  39. package/esm2022/table/table.mjs +6 -6
  40. package/esm2022/tieredmenu/tieredmenu.interface.mjs +1 -1
  41. package/esm2022/tieredmenu/tieredmenu.mjs +3 -3
  42. package/esm2022/toast/toast.interface.mjs +1 -1
  43. package/esm2022/toast/toast.mjs +84 -65
  44. package/esm2022/togglebutton/togglebutton.interface.mjs +1 -1
  45. package/esm2022/togglebutton/togglebutton.mjs +34 -8
  46. package/fesm2022/primeng-autocomplete.mjs +12 -5
  47. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  48. package/fesm2022/primeng-avatar.mjs +2 -2
  49. package/fesm2022/primeng-avatar.mjs.map +1 -1
  50. package/fesm2022/primeng-calendar.mjs +46 -7
  51. package/fesm2022/primeng-calendar.mjs.map +1 -1
  52. package/fesm2022/primeng-cascadeselect.mjs +1 -1
  53. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  54. package/fesm2022/primeng-confirmdialog.mjs +138 -124
  55. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  56. package/fesm2022/primeng-confirmpopup.mjs +92 -64
  57. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  58. package/fesm2022/primeng-dialog.mjs +122 -97
  59. package/fesm2022/primeng-dialog.mjs.map +1 -1
  60. package/fesm2022/primeng-dropdown.mjs +2 -1
  61. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  62. package/fesm2022/primeng-dynamicdialog.mjs +126 -29
  63. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  64. package/fesm2022/primeng-fileupload.mjs +3 -3
  65. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  66. package/fesm2022/primeng-inputswitch.mjs +2 -2
  67. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  68. package/fesm2022/primeng-listbox.mjs +4 -4
  69. package/fesm2022/primeng-listbox.mjs.map +1 -1
  70. package/fesm2022/primeng-menu.mjs +10 -13
  71. package/fesm2022/primeng-menu.mjs.map +1 -1
  72. package/fesm2022/primeng-multiselect.mjs +14 -21
  73. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  74. package/fesm2022/primeng-overlaypanel.mjs +27 -7
  75. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  76. package/fesm2022/primeng-panelmenu.mjs +40 -16
  77. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  78. package/fesm2022/primeng-picklist.mjs +6 -4
  79. package/fesm2022/primeng-picklist.mjs.map +1 -1
  80. package/fesm2022/primeng-progressbar.mjs +28 -5
  81. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  82. package/fesm2022/primeng-scroller.mjs +2 -2
  83. package/fesm2022/primeng-scroller.mjs.map +1 -1
  84. package/fesm2022/primeng-sidebar.mjs +68 -54
  85. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  86. package/fesm2022/primeng-table.mjs +5 -5
  87. package/fesm2022/primeng-table.mjs.map +1 -1
  88. package/fesm2022/primeng-tieredmenu.mjs +2 -2
  89. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  90. package/fesm2022/primeng-toast.mjs +83 -64
  91. package/fesm2022/primeng-toast.mjs.map +1 -1
  92. package/fesm2022/primeng-togglebutton.mjs +33 -7
  93. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  94. package/fileupload/fileupload.d.ts +3 -3
  95. package/menu/menu.d.ts +2 -3
  96. package/multiselect/multiselect.d.ts +1 -4
  97. package/overlaypanel/overlaypanel.d.ts +12 -2
  98. package/package.json +256 -256
  99. package/panelmenu/panelmenu.d.ts +11 -6
  100. package/progressbar/progressbar.d.ts +7 -1
  101. package/resources/components/inputswitch/inputswitch.css +1 -0
  102. package/resources/themes/arya-blue/theme.css +9 -1
  103. package/resources/themes/arya-green/theme.css +9 -1
  104. package/resources/themes/arya-orange/theme.css +9 -1
  105. package/resources/themes/arya-purple/theme.css +9 -1
  106. package/resources/themes/bootstrap4-dark-blue/theme.css +9 -1
  107. package/resources/themes/bootstrap4-dark-purple/theme.css +9 -1
  108. package/resources/themes/bootstrap4-light-blue/theme.css +9 -1
  109. package/resources/themes/bootstrap4-light-purple/theme.css +9 -1
  110. package/resources/themes/fluent-light/theme.css +9 -1
  111. package/resources/themes/lara-dark-blue/theme.css +9 -1
  112. package/resources/themes/lara-dark-indigo/theme.css +9 -1
  113. package/resources/themes/lara-dark-purple/theme.css +9 -1
  114. package/resources/themes/lara-dark-teal/theme.css +9 -1
  115. package/resources/themes/lara-light-blue/theme.css +9 -1
  116. package/resources/themes/lara-light-indigo/theme.css +9 -1
  117. package/resources/themes/lara-light-purple/theme.css +9 -1
  118. package/resources/themes/lara-light-teal/theme.css +9 -1
  119. package/resources/themes/luna-amber/theme.css +9 -1
  120. package/resources/themes/luna-blue/theme.css +9 -1
  121. package/resources/themes/luna-green/theme.css +9 -1
  122. package/resources/themes/luna-pink/theme.css +9 -1
  123. package/resources/themes/md-dark-deeppurple/theme.css +9 -1
  124. package/resources/themes/md-dark-indigo/theme.css +9 -1
  125. package/resources/themes/md-light-deeppurple/theme.css +9 -1
  126. package/resources/themes/md-light-indigo/theme.css +9 -1
  127. package/resources/themes/mdc-dark-deeppurple/theme.css +9 -1
  128. package/resources/themes/mdc-dark-indigo/theme.css +9 -1
  129. package/resources/themes/mdc-light-deeppurple/theme.css +9 -1
  130. package/resources/themes/mdc-light-indigo/theme.css +9 -1
  131. package/resources/themes/mira/theme.css +9 -1
  132. package/resources/themes/nano/theme.css +9 -1
  133. package/resources/themes/nova/theme.css +9 -1
  134. package/resources/themes/nova-accent/theme.css +9 -1
  135. package/resources/themes/nova-alt/theme.css +9 -1
  136. package/resources/themes/rhea/theme.css +9 -1
  137. package/resources/themes/saga-blue/theme.css +9 -1
  138. package/resources/themes/saga-green/theme.css +9 -1
  139. package/resources/themes/saga-orange/theme.css +9 -1
  140. package/resources/themes/saga-purple/theme.css +9 -1
  141. package/resources/themes/soho-dark/theme.css +9 -1
  142. package/resources/themes/soho-light/theme.css +9 -1
  143. package/resources/themes/tailwind-light/theme.css +9 -1
  144. package/resources/themes/vela-blue/theme.css +9 -1
  145. package/resources/themes/vela-green/theme.css +9 -1
  146. package/resources/themes/vela-orange/theme.css +9 -1
  147. package/resources/themes/vela-purple/theme.css +9 -1
  148. package/resources/themes/viva-dark/theme.css +9 -1
  149. package/resources/themes/viva-light/theme.css +9 -1
  150. package/sidebar/sidebar.d.ts +1 -0
  151. package/sidebar/sidebar.interface.d.ts +4 -0
  152. package/tieredmenu/tieredmenu.interface.d.ts +16 -0
  153. package/toast/toast.d.ts +3 -1
  154. package/toast/toast.interface.d.ts +11 -0
  155. package/togglebutton/togglebutton.d.ts +9 -3
  156. package/togglebutton/togglebutton.interface.d.ts +19 -0
  157. package/resources/components/tristatecheckbox/tristatecheckbox.css +0 -5
@@ -132,6 +132,11 @@ class Dialog {
132
132
  * @group Props
133
133
  */
134
134
  maskStyleClass;
135
+ /**
136
+ * Style of the mask.
137
+ * @group Props
138
+ */
139
+ maskStyle;
135
140
  /**
136
141
  * Whether to show the header or not.
137
142
  * @group Props
@@ -331,6 +336,7 @@ class Dialog {
331
336
  maximizeIconTemplate;
332
337
  closeIconTemplate;
333
338
  minimizeIconTemplate;
339
+ headlessTemplate;
334
340
  _visible = false;
335
341
  maskVisible;
336
342
  container;
@@ -391,6 +397,9 @@ class Dialog {
391
397
  case 'minimizeicon':
392
398
  this.minimizeIconTemplate = item.template;
393
399
  break;
400
+ case 'headless':
401
+ this.headlessTemplate = item.template;
402
+ break;
394
403
  default:
395
404
  this.contentTemplate = item.template;
396
405
  break;
@@ -788,10 +797,11 @@ class Dialog {
788
797
  this.destroyStyle();
789
798
  }
790
799
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: Dialog, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
791
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: Dialog, selector: "p-dialog", inputs: { header: "header", draggable: "draggable", resizable: "resizable", positionLeft: "positionLeft", positionTop: "positionTop", contentStyle: "contentStyle", contentStyleClass: "contentStyleClass", modal: "modal", closeOnEscape: "closeOnEscape", dismissableMask: "dismissableMask", rtl: "rtl", closable: "closable", responsive: "responsive", appendTo: "appendTo", breakpoints: "breakpoints", styleClass: "styleClass", maskStyleClass: "maskStyleClass", showHeader: "showHeader", breakpoint: "breakpoint", blockScroll: "blockScroll", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", minX: "minX", minY: "minY", focusOnShow: "focusOnShow", maximizable: "maximizable", keepInViewport: "keepInViewport", focusTrap: "focusTrap", transitionOptions: "transitionOptions", closeIcon: "closeIcon", closeAriaLabel: "closeAriaLabel", closeTabindex: "closeTabindex", minimizeIcon: "minimizeIcon", maximizeIcon: "maximizeIcon", visible: "visible", style: "style", position: "position" }, outputs: { onShow: "onShow", onHide: "onHide", visibleChange: "visibleChange", onResizeInit: "onResizeInit", onResizeEnd: "onResizeEnd", onDragEnd: "onDragEnd", onMaximize: "onMaximize" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "headerFacet", first: true, predicate: Header, descendants: true }, { propertyName: "footerFacet", first: true, predicate: Footer, descendants: true }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "headerViewChild", first: true, predicate: ["titlebar"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }, { propertyName: "footerViewChild", first: true, predicate: ["footer"], descendants: true }], ngImport: i0, template: `
800
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: Dialog, selector: "p-dialog", inputs: { header: "header", draggable: "draggable", resizable: "resizable", positionLeft: "positionLeft", positionTop: "positionTop", contentStyle: "contentStyle", contentStyleClass: "contentStyleClass", modal: "modal", closeOnEscape: "closeOnEscape", dismissableMask: "dismissableMask", rtl: "rtl", closable: "closable", responsive: "responsive", appendTo: "appendTo", breakpoints: "breakpoints", styleClass: "styleClass", maskStyleClass: "maskStyleClass", maskStyle: "maskStyle", showHeader: "showHeader", breakpoint: "breakpoint", blockScroll: "blockScroll", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", minX: "minX", minY: "minY", focusOnShow: "focusOnShow", maximizable: "maximizable", keepInViewport: "keepInViewport", focusTrap: "focusTrap", transitionOptions: "transitionOptions", closeIcon: "closeIcon", closeAriaLabel: "closeAriaLabel", closeTabindex: "closeTabindex", minimizeIcon: "minimizeIcon", maximizeIcon: "maximizeIcon", visible: "visible", style: "style", position: "position" }, outputs: { onShow: "onShow", onHide: "onHide", visibleChange: "visibleChange", onResizeInit: "onResizeInit", onResizeEnd: "onResizeEnd", onDragEnd: "onDragEnd", onMaximize: "onMaximize" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "headerFacet", first: true, predicate: Header, descendants: true }, { propertyName: "footerFacet", first: true, predicate: Footer, descendants: true }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "headerViewChild", first: true, predicate: ["titlebar"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }, { propertyName: "footerViewChild", first: true, predicate: ["footer"], descendants: true }], ngImport: i0, template: `
792
801
  <div
793
802
  *ngIf="maskVisible"
794
803
  [class]="maskStyleClass"
804
+ [style]="maskStyle"
795
805
  [ngClass]="{
796
806
  'p-dialog-mask': true,
797
807
  'p-component-overlay p-component-overlay-enter': this.modal,
@@ -821,55 +831,61 @@ class Dialog {
821
831
  [attr.aria-labelledby]="ariaLabelledBy"
822
832
  [attr.aria-modal]="true"
823
833
  >
824
- <div *ngIf="resizable" class="p-resizable-handle" style="z-index: 90;" (mousedown)="initResize($event)"></div>
825
- <div #titlebar class="p-dialog-header" (mousedown)="initDrag($event)" *ngIf="showHeader">
826
- <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="!headerFacet && !headerTemplate">{{ header }}</span>
827
- <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="headerFacet">
828
- <ng-content select="p-header"></ng-content>
829
- </span>
830
- <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
831
- <div class="p-dialog-header-icons">
832
- <button *ngIf="maximizable" role="button" type="button" [ngClass]="{ 'p-dialog-header-icon p-dialog-header-maximize p-link': true }" (click)="maximize()" (keydown.enter)="maximize()" tabindex="-1" pRipple>
833
- <span *ngIf="maximizeIcon && !maximizeIconTemplate && !minimizeIconTemplate" class="p-dialog-header-maximize-icon" [ngClass]="maximized ? minimizeIcon : maximizeIcon"></span>
834
- <ng-container *ngIf="!maximizeIcon">
835
- <WindowMaximizeIcon *ngIf="!maximized && !maximizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
836
- <WindowMinimizeIcon *ngIf="maximized && !minimizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
837
- </ng-container>
838
- <ng-container *ngIf="!maximized">
839
- <ng-template *ngTemplateOutlet="maximizeIconTemplate"></ng-template>
840
- </ng-container>
841
- <ng-container *ngIf="maximized">
842
- <ng-template *ngTemplateOutlet="minimizeIconTemplate"></ng-template>
843
- </ng-container>
844
- </button>
845
- <button
846
- *ngIf="closable"
847
- type="button"
848
- [ngClass]="{ 'p-dialog-header-icon p-dialog-header-close p-link': true }"
849
- [attr.aria-label]="closeAriaLabel"
850
- (click)="close($event)"
851
- (keydown.enter)="close($event)"
852
- [attr.tabindex]="closeTabindex"
853
- pRipple
854
- >
855
- <ng-container *ngIf="!closeIconTemplate">
856
- <span *ngIf="closeIcon" class="p-dialog-header-close-icon" [ngClass]="closeIcon"></span>
857
- <TimesIcon *ngIf="!closeIcon" [styleClass]="'p-dialog-header-close-icon'" />
858
- </ng-container>
859
- <span *ngIf="closeIconTemplate">
860
- <ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
861
- </span>
862
- </button>
834
+ <ng-container *ngIf="headlessTemplate; else notHeadless">
835
+ <ng-container *ngTemplateOutlet="headlessTemplate"></ng-container>
836
+ </ng-container>
837
+
838
+ <ng-template #notHeadless>
839
+ <div *ngIf="resizable" class="p-resizable-handle" style="z-index: 90;" (mousedown)="initResize($event)"></div>
840
+ <div #titlebar class="p-dialog-header" (mousedown)="initDrag($event)" *ngIf="showHeader">
841
+ <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="!headerFacet && !headerTemplate">{{ header }}</span>
842
+ <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="headerFacet">
843
+ <ng-content select="p-header"></ng-content>
844
+ </span>
845
+ <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
846
+ <div class="p-dialog-header-icons">
847
+ <button *ngIf="maximizable" role="button" type="button" [ngClass]="{ 'p-dialog-header-icon p-dialog-header-maximize p-link': true }" (click)="maximize()" (keydown.enter)="maximize()" tabindex="-1" pRipple>
848
+ <span *ngIf="maximizeIcon && !maximizeIconTemplate && !minimizeIconTemplate" class="p-dialog-header-maximize-icon" [ngClass]="maximized ? minimizeIcon : maximizeIcon"></span>
849
+ <ng-container *ngIf="!maximizeIcon">
850
+ <WindowMaximizeIcon *ngIf="!maximized && !maximizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
851
+ <WindowMinimizeIcon *ngIf="maximized && !minimizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
852
+ </ng-container>
853
+ <ng-container *ngIf="!maximized">
854
+ <ng-template *ngTemplateOutlet="maximizeIconTemplate"></ng-template>
855
+ </ng-container>
856
+ <ng-container *ngIf="maximized">
857
+ <ng-template *ngTemplateOutlet="minimizeIconTemplate"></ng-template>
858
+ </ng-container>
859
+ </button>
860
+ <button
861
+ *ngIf="closable"
862
+ type="button"
863
+ [ngClass]="{ 'p-dialog-header-icon p-dialog-header-close p-link': true }"
864
+ [attr.aria-label]="closeAriaLabel"
865
+ (click)="close($event)"
866
+ (keydown.enter)="close($event)"
867
+ [attr.tabindex]="closeTabindex"
868
+ pRipple
869
+ >
870
+ <ng-container *ngIf="!closeIconTemplate">
871
+ <span *ngIf="closeIcon" class="p-dialog-header-close-icon" [ngClass]="closeIcon"></span>
872
+ <TimesIcon *ngIf="!closeIcon" [styleClass]="'p-dialog-header-close-icon'" />
873
+ </ng-container>
874
+ <span *ngIf="closeIconTemplate">
875
+ <ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
876
+ </span>
877
+ </button>
878
+ </div>
879
+ </div>
880
+ <div #content [ngClass]="'p-dialog-content'" [ngStyle]="contentStyle" [class]="contentStyleClass">
881
+ <ng-content></ng-content>
882
+ <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
863
883
  </div>
864
- </div>
865
- <div #content [ngClass]="'p-dialog-content'" [ngStyle]="contentStyle" [class]="contentStyleClass">
866
- <ng-content></ng-content>
867
- <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
868
- </div>
869
- <div #footer class="p-dialog-footer" *ngIf="footerFacet || footerTemplate">
870
- <ng-content select="p-footer"></ng-content>
871
- <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
872
- </div>
884
+ <div #footer class="p-dialog-footer" *ngIf="footerFacet || footerTemplate">
885
+ <ng-content select="p-footer"></ng-content>
886
+ <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
887
+ </div>
888
+ </ng-template>
873
889
  </div>
874
890
  </div>
875
891
  `, isInline: true, styles: ["@layer primeng{.p-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.p-dialog-mask.p-component-overlay{pointer-events:auto}.p-dialog{display:flex;flex-direction:column;pointer-events:auto;max-height:90%;transform:scale(1);position:relative}.p-dialog-content{overflow-y:auto;flex-grow:1}.p-dialog-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.p-dialog-draggable .p-dialog-header{cursor:move}.p-dialog-footer{flex-shrink:0}.p-dialog .p-dialog-header-icons{display:flex;align-items:center}.p-dialog .p-dialog-header-icon{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-fluid .p-dialog-footer .p-button{width:auto}.p-dialog-top .p-dialog,.p-dialog-bottom .p-dialog,.p-dialog-left .p-dialog,.p-dialog-right .p-dialog,.p-dialog-top-left .p-dialog,.p-dialog-top-right .p-dialog,.p-dialog-bottom-left .p-dialog,.p-dialog-bottom-right .p-dialog{margin:.75rem;transform:translateZ(0)}.p-dialog-maximized{transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.p-dialog-maximized .p-dialog-content{flex-grow:1}.p-dialog-left{justify-content:flex-start}.p-dialog-right{justify-content:flex-end}.p-dialog-top{align-items:flex-start}.p-dialog-top-left{justify-content:flex-start;align-items:flex-start}.p-dialog-top-right{justify-content:flex-end;align-items:flex-start}.p-dialog-bottom{align-items:flex-end}.p-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.p-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.p-dialog .p-resizable-handle{position:absolute;font-size:.1px;display:block;cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.p-confirm-dialog .p-dialog-content{display:flex;align-items:center}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i3.FocusTrap), selector: "[pFocusTrap]", inputs: ["pFocusTrapDisabled"] }, { kind: "directive", type: i0.forwardRef(() => i4.Ripple), selector: "[pRipple]" }, { kind: "component", type: i0.forwardRef(() => TimesIcon), selector: "TimesIcon" }, { kind: "component", type: i0.forwardRef(() => WindowMaximizeIcon), selector: "WindowMaximizeIcon" }, { kind: "component", type: i0.forwardRef(() => WindowMinimizeIcon), selector: "WindowMinimizeIcon" }], animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
@@ -880,6 +896,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
880
896
  <div
881
897
  *ngIf="maskVisible"
882
898
  [class]="maskStyleClass"
899
+ [style]="maskStyle"
883
900
  [ngClass]="{
884
901
  'p-dialog-mask': true,
885
902
  'p-component-overlay p-component-overlay-enter': this.modal,
@@ -909,55 +926,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
909
926
  [attr.aria-labelledby]="ariaLabelledBy"
910
927
  [attr.aria-modal]="true"
911
928
  >
912
- <div *ngIf="resizable" class="p-resizable-handle" style="z-index: 90;" (mousedown)="initResize($event)"></div>
913
- <div #titlebar class="p-dialog-header" (mousedown)="initDrag($event)" *ngIf="showHeader">
914
- <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="!headerFacet && !headerTemplate">{{ header }}</span>
915
- <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="headerFacet">
916
- <ng-content select="p-header"></ng-content>
917
- </span>
918
- <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
919
- <div class="p-dialog-header-icons">
920
- <button *ngIf="maximizable" role="button" type="button" [ngClass]="{ 'p-dialog-header-icon p-dialog-header-maximize p-link': true }" (click)="maximize()" (keydown.enter)="maximize()" tabindex="-1" pRipple>
921
- <span *ngIf="maximizeIcon && !maximizeIconTemplate && !minimizeIconTemplate" class="p-dialog-header-maximize-icon" [ngClass]="maximized ? minimizeIcon : maximizeIcon"></span>
922
- <ng-container *ngIf="!maximizeIcon">
923
- <WindowMaximizeIcon *ngIf="!maximized && !maximizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
924
- <WindowMinimizeIcon *ngIf="maximized && !minimizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
925
- </ng-container>
926
- <ng-container *ngIf="!maximized">
927
- <ng-template *ngTemplateOutlet="maximizeIconTemplate"></ng-template>
928
- </ng-container>
929
- <ng-container *ngIf="maximized">
930
- <ng-template *ngTemplateOutlet="minimizeIconTemplate"></ng-template>
931
- </ng-container>
932
- </button>
933
- <button
934
- *ngIf="closable"
935
- type="button"
936
- [ngClass]="{ 'p-dialog-header-icon p-dialog-header-close p-link': true }"
937
- [attr.aria-label]="closeAriaLabel"
938
- (click)="close($event)"
939
- (keydown.enter)="close($event)"
940
- [attr.tabindex]="closeTabindex"
941
- pRipple
942
- >
943
- <ng-container *ngIf="!closeIconTemplate">
944
- <span *ngIf="closeIcon" class="p-dialog-header-close-icon" [ngClass]="closeIcon"></span>
945
- <TimesIcon *ngIf="!closeIcon" [styleClass]="'p-dialog-header-close-icon'" />
946
- </ng-container>
947
- <span *ngIf="closeIconTemplate">
948
- <ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
949
- </span>
950
- </button>
929
+ <ng-container *ngIf="headlessTemplate; else notHeadless">
930
+ <ng-container *ngTemplateOutlet="headlessTemplate"></ng-container>
931
+ </ng-container>
932
+
933
+ <ng-template #notHeadless>
934
+ <div *ngIf="resizable" class="p-resizable-handle" style="z-index: 90;" (mousedown)="initResize($event)"></div>
935
+ <div #titlebar class="p-dialog-header" (mousedown)="initDrag($event)" *ngIf="showHeader">
936
+ <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="!headerFacet && !headerTemplate">{{ header }}</span>
937
+ <span [id]="getAriaLabelledBy()" class="p-dialog-title" *ngIf="headerFacet">
938
+ <ng-content select="p-header"></ng-content>
939
+ </span>
940
+ <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
941
+ <div class="p-dialog-header-icons">
942
+ <button *ngIf="maximizable" role="button" type="button" [ngClass]="{ 'p-dialog-header-icon p-dialog-header-maximize p-link': true }" (click)="maximize()" (keydown.enter)="maximize()" tabindex="-1" pRipple>
943
+ <span *ngIf="maximizeIcon && !maximizeIconTemplate && !minimizeIconTemplate" class="p-dialog-header-maximize-icon" [ngClass]="maximized ? minimizeIcon : maximizeIcon"></span>
944
+ <ng-container *ngIf="!maximizeIcon">
945
+ <WindowMaximizeIcon *ngIf="!maximized && !maximizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
946
+ <WindowMinimizeIcon *ngIf="maximized && !minimizeIconTemplate" [styleClass]="'p-dialog-header-maximize-icon'" />
947
+ </ng-container>
948
+ <ng-container *ngIf="!maximized">
949
+ <ng-template *ngTemplateOutlet="maximizeIconTemplate"></ng-template>
950
+ </ng-container>
951
+ <ng-container *ngIf="maximized">
952
+ <ng-template *ngTemplateOutlet="minimizeIconTemplate"></ng-template>
953
+ </ng-container>
954
+ </button>
955
+ <button
956
+ *ngIf="closable"
957
+ type="button"
958
+ [ngClass]="{ 'p-dialog-header-icon p-dialog-header-close p-link': true }"
959
+ [attr.aria-label]="closeAriaLabel"
960
+ (click)="close($event)"
961
+ (keydown.enter)="close($event)"
962
+ [attr.tabindex]="closeTabindex"
963
+ pRipple
964
+ >
965
+ <ng-container *ngIf="!closeIconTemplate">
966
+ <span *ngIf="closeIcon" class="p-dialog-header-close-icon" [ngClass]="closeIcon"></span>
967
+ <TimesIcon *ngIf="!closeIcon" [styleClass]="'p-dialog-header-close-icon'" />
968
+ </ng-container>
969
+ <span *ngIf="closeIconTemplate">
970
+ <ng-template *ngTemplateOutlet="closeIconTemplate"></ng-template>
971
+ </span>
972
+ </button>
973
+ </div>
974
+ </div>
975
+ <div #content [ngClass]="'p-dialog-content'" [ngStyle]="contentStyle" [class]="contentStyleClass">
976
+ <ng-content></ng-content>
977
+ <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
951
978
  </div>
952
- </div>
953
- <div #content [ngClass]="'p-dialog-content'" [ngStyle]="contentStyle" [class]="contentStyleClass">
954
- <ng-content></ng-content>
955
- <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
956
- </div>
957
- <div #footer class="p-dialog-footer" *ngIf="footerFacet || footerTemplate">
958
- <ng-content select="p-footer"></ng-content>
959
- <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
960
- </div>
979
+ <div #footer class="p-dialog-footer" *ngIf="footerFacet || footerTemplate">
980
+ <ng-content select="p-footer"></ng-content>
981
+ <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
982
+ </div>
983
+ </ng-template>
961
984
  </div>
962
985
  </div>
963
986
  `, animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
@@ -1003,6 +1026,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
1003
1026
  type: Input
1004
1027
  }], maskStyleClass: [{
1005
1028
  type: Input
1029
+ }], maskStyle: [{
1030
+ type: Input
1006
1031
  }], showHeader: [{
1007
1032
  type: Input
1008
1033
  }], breakpoint: [{