primeng 19.0.0-rc.1 → 19.0.1

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 (240) hide show
  1. package/accordion/accordion.d.ts +7 -7
  2. package/autocomplete/autocomplete.d.ts +21 -8
  3. package/badge/badge.d.ts +1 -3
  4. package/basecomponent/basecomponent.d.ts +2 -5
  5. package/blockui/blockui.d.ts +10 -5
  6. package/breadcrumb/breadcrumb.d.ts +9 -6
  7. package/button/button.d.ts +10 -4
  8. package/calendar/calendar.d.ts +29 -15
  9. package/card/card.d.ts +12 -5
  10. package/carousel/carousel.d.ts +10 -4
  11. package/cascadeselect/cascadeselect.d.ts +18 -8
  12. package/checkbox/checkbox.d.ts +8 -4
  13. package/chip/chip.d.ts +9 -7
  14. package/config/themeprovider.d.ts +6 -0
  15. package/confirmdialog/confirmdialog.d.ts +15 -5
  16. package/confirmpopup/confirmpopup.d.ts +11 -5
  17. package/contextmenu/contextmenu.d.ts +10 -6
  18. package/datepicker/datepicker.d.ts +25 -11
  19. package/dialog/dialog.d.ts +15 -4
  20. package/divider/divider.d.ts +1 -1
  21. package/dock/dock.d.ts +7 -4
  22. package/drawer/drawer.d.ts +18 -10
  23. package/dropdown/dropdown.d.ts +4 -3
  24. package/dynamicdialog/dynamicdialog.d.ts +3 -2
  25. package/editor/editor.d.ts +7 -3
  26. package/fesm2022/primeng-accordion.mjs +56 -41
  27. package/fesm2022/primeng-accordion.mjs.map +1 -1
  28. package/fesm2022/primeng-autocomplete.mjs +153 -92
  29. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  30. package/fesm2022/primeng-badge.mjs +39 -32
  31. package/fesm2022/primeng-badge.mjs.map +1 -1
  32. package/fesm2022/primeng-basecomponent.mjs +2 -25
  33. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  34. package/fesm2022/primeng-blockui.mjs +38 -18
  35. package/fesm2022/primeng-blockui.mjs.map +1 -1
  36. package/fesm2022/primeng-breadcrumb.mjs +49 -31
  37. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  38. package/fesm2022/primeng-button.mjs +55 -28
  39. package/fesm2022/primeng-button.mjs.map +1 -1
  40. package/fesm2022/primeng-calendar.mjs +202 -137
  41. package/fesm2022/primeng-calendar.mjs.map +1 -1
  42. package/fesm2022/primeng-card.mjs +95 -45
  43. package/fesm2022/primeng-card.mjs.map +1 -1
  44. package/fesm2022/primeng-carousel.mjs +74 -42
  45. package/fesm2022/primeng-carousel.mjs.map +1 -1
  46. package/fesm2022/primeng-cascadeselect.mjs +99 -61
  47. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  48. package/fesm2022/primeng-checkbox.mjs +31 -12
  49. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  50. package/fesm2022/primeng-chip.mjs +117 -96
  51. package/fesm2022/primeng-chip.mjs.map +1 -1
  52. package/fesm2022/primeng-config.mjs +13 -11
  53. package/fesm2022/primeng-config.mjs.map +1 -1
  54. package/fesm2022/primeng-confirmdialog.mjs +104 -60
  55. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  56. package/fesm2022/primeng-confirmpopup.mjs +57 -29
  57. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  58. package/fesm2022/primeng-contextmenu.mjs +52 -21
  59. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  60. package/fesm2022/primeng-datepicker.mjs +198 -156
  61. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  62. package/fesm2022/primeng-dialog.mjs +97 -50
  63. package/fesm2022/primeng-dialog.mjs.map +1 -1
  64. package/fesm2022/primeng-divider.mjs +2 -4
  65. package/fesm2022/primeng-divider.mjs.map +1 -1
  66. package/fesm2022/primeng-dock.mjs +29 -10
  67. package/fesm2022/primeng-dock.mjs.map +1 -1
  68. package/fesm2022/primeng-drawer.mjs +112 -70
  69. package/fesm2022/primeng-drawer.mjs.map +1 -1
  70. package/fesm2022/primeng-dropdown.mjs +14 -6
  71. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  72. package/fesm2022/primeng-dynamicdialog.mjs +25 -21
  73. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  74. package/fesm2022/primeng-editor.mjs +26 -10
  75. package/fesm2022/primeng-editor.mjs.map +1 -1
  76. package/fesm2022/primeng-fieldset.mjs +61 -33
  77. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  78. package/fesm2022/primeng-fileupload.mjs +138 -87
  79. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  80. package/fesm2022/primeng-galleria.mjs +22 -13
  81. package/fesm2022/primeng-galleria.mjs.map +1 -1
  82. package/fesm2022/primeng-image.mjs +113 -66
  83. package/fesm2022/primeng-image.mjs.map +1 -1
  84. package/fesm2022/primeng-imagecompare.mjs +30 -10
  85. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  86. package/fesm2022/primeng-inplace.mjs +51 -26
  87. package/fesm2022/primeng-inplace.mjs.map +1 -1
  88. package/fesm2022/primeng-inputmask.mjs +31 -15
  89. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  90. package/fesm2022/primeng-inputnumber.mjs +54 -45
  91. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  92. package/fesm2022/primeng-inputotp.mjs +30 -11
  93. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  94. package/fesm2022/primeng-listbox.mjs +137 -78
  95. package/fesm2022/primeng-listbox.mjs.map +1 -1
  96. package/fesm2022/primeng-megamenu.mjs +105 -59
  97. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  98. package/fesm2022/primeng-menu.mjs +26 -26
  99. package/fesm2022/primeng-menu.mjs.map +1 -1
  100. package/fesm2022/primeng-menubar.mjs +69 -34
  101. package/fesm2022/primeng-menubar.mjs.map +1 -1
  102. package/fesm2022/primeng-message.mjs +49 -25
  103. package/fesm2022/primeng-message.mjs.map +1 -1
  104. package/fesm2022/primeng-messages.mjs +12 -3
  105. package/fesm2022/primeng-messages.mjs.map +1 -1
  106. package/fesm2022/primeng-metergroup.mjs +62 -30
  107. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  108. package/fesm2022/primeng-multiselect.mjs +246 -155
  109. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  110. package/fesm2022/primeng-orderlist.mjs +123 -68
  111. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  112. package/fesm2022/primeng-organizationchart.mjs +31 -15
  113. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  114. package/fesm2022/primeng-overlay.mjs +26 -6
  115. package/fesm2022/primeng-overlay.mjs.map +1 -1
  116. package/fesm2022/primeng-overlaypanel.mjs +29 -9
  117. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  118. package/fesm2022/primeng-paginator.mjs +92 -60
  119. package/fesm2022/primeng-paginator.mjs.map +1 -1
  120. package/fesm2022/primeng-panel.mjs +159 -98
  121. package/fesm2022/primeng-panel.mjs.map +1 -1
  122. package/fesm2022/primeng-panelmenu.mjs +55 -32
  123. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  124. package/fesm2022/primeng-password.mjs +88 -49
  125. package/fesm2022/primeng-password.mjs.map +1 -1
  126. package/fesm2022/primeng-picklist.mjs +360 -228
  127. package/fesm2022/primeng-picklist.mjs.map +1 -1
  128. package/fesm2022/primeng-popover.mjs +23 -7
  129. package/fesm2022/primeng-popover.mjs.map +1 -1
  130. package/fesm2022/primeng-progressbar.mjs +26 -8
  131. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  132. package/fesm2022/primeng-rating.mjs +44 -20
  133. package/fesm2022/primeng-rating.mjs.map +1 -1
  134. package/fesm2022/primeng-scroller.mjs +47 -37
  135. package/fesm2022/primeng-scroller.mjs.map +1 -1
  136. package/fesm2022/primeng-scrollpanel.mjs +28 -9
  137. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  138. package/fesm2022/primeng-scrolltop.mjs +16 -9
  139. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  140. package/fesm2022/primeng-select.mjs +198 -119
  141. package/fesm2022/primeng-select.mjs.map +1 -1
  142. package/fesm2022/primeng-selectbutton.mjs +25 -9
  143. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  144. package/fesm2022/primeng-sidebar.mjs +81 -58
  145. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  146. package/fesm2022/primeng-speeddial.mjs +54 -29
  147. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  148. package/fesm2022/primeng-splitbutton.mjs +41 -18
  149. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  150. package/fesm2022/primeng-splitter.mjs +4 -4
  151. package/fesm2022/primeng-splitter.mjs.map +1 -1
  152. package/fesm2022/primeng-stepper.mjs +33 -19
  153. package/fesm2022/primeng-stepper.mjs.map +1 -1
  154. package/fesm2022/primeng-table.mjs +115 -103
  155. package/fesm2022/primeng-table.mjs.map +1 -1
  156. package/fesm2022/primeng-tabmenu.mjs +54 -27
  157. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  158. package/fesm2022/primeng-tabs.mjs +27 -19
  159. package/fesm2022/primeng-tabs.mjs.map +1 -1
  160. package/fesm2022/primeng-tabview.mjs +106 -54
  161. package/fesm2022/primeng-tabview.mjs.map +1 -1
  162. package/fesm2022/primeng-tag.mjs +68 -44
  163. package/fesm2022/primeng-tag.mjs.map +1 -1
  164. package/fesm2022/primeng-tieredmenu.mjs +44 -21
  165. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  166. package/fesm2022/primeng-timeline.mjs +40 -16
  167. package/fesm2022/primeng-timeline.mjs.map +1 -1
  168. package/fesm2022/primeng-toast.mjs +30 -7
  169. package/fesm2022/primeng-toast.mjs.map +1 -1
  170. package/fesm2022/primeng-togglebutton.mjs +44 -28
  171. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  172. package/fesm2022/primeng-toggleswitch.mjs +28 -9
  173. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  174. package/fesm2022/primeng-toolbar.mjs +46 -20
  175. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  176. package/fesm2022/primeng-tooltip.mjs +32 -69
  177. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  178. package/fesm2022/primeng-tree.mjs +117 -98
  179. package/fesm2022/primeng-tree.mjs.map +1 -1
  180. package/fesm2022/primeng-treeselect.mjs +154 -85
  181. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  182. package/fesm2022/primeng-treetable.mjs +31 -14
  183. package/fesm2022/primeng-treetable.mjs.map +1 -1
  184. package/fesm2022/primeng-usestyle.mjs +1 -1
  185. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  186. package/fieldset/fieldset.d.ts +12 -6
  187. package/fileupload/fileupload.d.ts +19 -8
  188. package/galleria/galleria.d.ts +3 -2
  189. package/image/image.d.ts +18 -7
  190. package/imagecompare/imagecompare.d.ts +7 -2
  191. package/inplace/inplace.d.ts +12 -6
  192. package/inputmask/inputmask.d.ts +8 -4
  193. package/inputnumber/inputnumber.d.ts +11 -6
  194. package/inputotp/inputotp.d.ts +7 -2
  195. package/listbox/listbox.d.ts +17 -4
  196. package/megamenu/megamenu.d.ts +16 -7
  197. package/menu/menu.d.ts +6 -6
  198. package/menubar/menubar.d.ts +13 -6
  199. package/message/message.d.ts +10 -4
  200. package/messages/messages.d.ts +4 -3
  201. package/metergroup/metergroup.d.ts +11 -3
  202. package/multiselect/multiselect.d.ts +36 -17
  203. package/orderlist/orderlist.d.ts +23 -11
  204. package/organizationchart/organizationchart.d.ts +6 -4
  205. package/overlay/overlay.d.ts +6 -3
  206. package/overlaypanel/overlaypanel.d.ts +6 -3
  207. package/package.json +157 -157
  208. package/paginator/paginator.d.ts +15 -8
  209. package/panel/panel.d.ts +14 -5
  210. package/panelmenu/panelmenu.d.ts +8 -4
  211. package/password/password.d.ts +15 -7
  212. package/picklist/picklist.d.ts +23 -3
  213. package/popover/popover.d.ts +7 -4
  214. package/progressbar/progressbar.d.ts +7 -3
  215. package/rating/rating.d.ts +11 -5
  216. package/scroller/scroller.d.ts +9 -4
  217. package/scrollpanel/scrollpanel.d.ts +7 -3
  218. package/scrolltop/scrolltop.d.ts +7 -4
  219. package/select/select.d.ts +31 -13
  220. package/selectbutton/selectbutton.d.ts +7 -3
  221. package/sidebar/sidebar.d.ts +9 -2
  222. package/speeddial/speeddial.d.ts +9 -4
  223. package/splitbutton/splitbutton.d.ts +9 -5
  224. package/splitter/splitter.d.ts +4 -4
  225. package/stepper/stepper.d.ts +8 -3
  226. package/table/table.d.ts +2 -2
  227. package/tabmenu/tabmenu.d.ts +12 -7
  228. package/tabs/tablist.d.ts +6 -2
  229. package/tabview/tabview.d.ts +16 -7
  230. package/tag/tag.d.ts +8 -9
  231. package/tieredmenu/tieredmenu.d.ts +10 -6
  232. package/timeline/timeline.d.ts +7 -2
  233. package/toast/toast.d.ts +7 -3
  234. package/togglebutton/togglebutton.d.ts +8 -3
  235. package/toggleswitch/toggleswitch.d.ts +6 -2
  236. package/toolbar/toolbar.d.ts +9 -4
  237. package/tooltip/tooltip.d.ts +2 -1
  238. package/tree/tree.d.ts +23 -10
  239. package/treeselect/treeselect.d.ts +26 -12
  240. package/treetable/treetable.d.ts +6 -4
@@ -1,9 +1,9 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, inject, forwardRef, Component, Input, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, ViewChild, NgModule } from '@angular/core';
4
+ import { Injectable, inject, forwardRef, Component, Input, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, ContentChildren, ViewChild, NgModule } from '@angular/core';
5
5
  import { getOuterHeight } from '@primeuix/utils';
6
- import { SharedModule } from 'primeng/api';
6
+ import { SharedModule, PrimeTemplate } from 'primeng/api';
7
7
  import { BaseComponent } from 'primeng/basecomponent';
8
8
  import { BaseStyle } from 'primeng/base';
9
9
 
@@ -232,7 +232,7 @@ function MeterGroup_Conditional_2_p_meterGroupLabel_0_Template(rf, ctx) { if (rf
232
232
  i0.ɵɵelement(0, "p-meterGroupLabel", 6);
233
233
  } if (rf & 2) {
234
234
  const ctx_r0 = i0.ɵɵnextContext(2);
235
- i0.ɵɵproperty("value", ctx_r0.value)("labelPosition", ctx_r0.labelPosition)("labelOrientation", ctx_r0.labelOrientation)("min", ctx_r0.min)("max", ctx_r0.max)("iconTemplate", ctx_r0.iconTemplate);
235
+ i0.ɵɵproperty("value", ctx_r0.value)("labelPosition", ctx_r0.labelPosition)("labelOrientation", ctx_r0.labelOrientation)("min", ctx_r0.min)("max", ctx_r0.max)("iconTemplate", ctx_r0.iconTemplate || ctx_r0._iconTemplate);
236
236
  } }
237
237
  function MeterGroup_Conditional_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
238
238
  i0.ɵɵelementContainer(0);
@@ -241,9 +241,9 @@ function MeterGroup_Conditional_2_Template(rf, ctx) { if (rf & 1) {
241
241
  i0.ɵɵtemplate(0, MeterGroup_Conditional_2_p_meterGroupLabel_0_Template, 1, 6, "p-meterGroupLabel", 5)(1, MeterGroup_Conditional_2_ng_container_1_Template, 1, 0, "ng-container", 2);
242
242
  } if (rf & 2) {
243
243
  const ctx_r0 = i0.ɵɵnextContext();
244
- i0.ɵɵproperty("ngIf", !ctx_r0.labelTemplate);
244
+ i0.ɵɵproperty("ngIf", !ctx_r0.labelTemplate && !ctx_r0._labelTemplate);
245
245
  i0.ɵɵadvance();
246
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.labelTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c10, ctx_r0.value, ctx_r0.totalPercent(), ctx_r0.percentages()));
246
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.labelTemplate || ctx_r0.labelTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c10, ctx_r0.value, ctx_r0.totalPercent(), ctx_r0.percentages()));
247
247
  } }
248
248
  function MeterGroup_ng_container_3_Template(rf, ctx) { if (rf & 1) {
249
249
  i0.ɵɵelementContainer(0);
@@ -270,9 +270,9 @@ function MeterGroup_ng_container_5_Template(rf, ctx) { if (rf & 1) {
270
270
  const index_r3 = ctx.index;
271
271
  const ctx_r0 = i0.ɵɵnextContext();
272
272
  i0.ɵɵadvance();
273
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.meterTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction5(3, _c11, meterItem_r2, index_r3, ctx_r0.orientation, ctx_r0.percentValue(meterItem_r2.value), ctx_r0.totalPercent()));
273
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.meterTemplate || ctx_r0._meterTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction5(3, _c11, meterItem_r2, index_r3, ctx_r0.orientation, ctx_r0.percentValue(meterItem_r2.value), ctx_r0.totalPercent()));
274
274
  i0.ɵɵadvance();
275
- i0.ɵɵproperty("ngIf", !ctx_r0.meterTemplate && meterItem_r2.value > 0);
275
+ i0.ɵɵproperty("ngIf", !ctx_r0.meterTemplate && !ctx_r0._meterTemplate && meterItem_r2.value > 0);
276
276
  } }
277
277
  function MeterGroup_ng_container_6_Template(rf, ctx) { if (rf & 1) {
278
278
  i0.ɵɵelementContainer(0);
@@ -281,7 +281,7 @@ function MeterGroup_Conditional_7_p_meterGroupLabel_0_Template(rf, ctx) { if (rf
281
281
  i0.ɵɵelement(0, "p-meterGroupLabel", 6);
282
282
  } if (rf & 2) {
283
283
  const ctx_r0 = i0.ɵɵnextContext(2);
284
- i0.ɵɵproperty("value", ctx_r0.value)("labelPosition", ctx_r0.labelPosition)("labelOrientation", ctx_r0.labelOrientation)("min", ctx_r0.min)("max", ctx_r0.max)("iconTemplate", ctx_r0.iconTemplate);
284
+ i0.ɵɵproperty("value", ctx_r0.value)("labelPosition", ctx_r0.labelPosition)("labelOrientation", ctx_r0.labelOrientation)("min", ctx_r0.min)("max", ctx_r0.max)("iconTemplate", ctx_r0.iconTemplate || ctx_r0._iconTemplate);
285
285
  } }
286
286
  function MeterGroup_Conditional_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
287
287
  i0.ɵɵelementContainer(0);
@@ -290,9 +290,9 @@ function MeterGroup_Conditional_7_Template(rf, ctx) { if (rf & 1) {
290
290
  i0.ɵɵtemplate(0, MeterGroup_Conditional_7_p_meterGroupLabel_0_Template, 1, 6, "p-meterGroupLabel", 5)(1, MeterGroup_Conditional_7_ng_container_1_Template, 1, 0, "ng-container", 2);
291
291
  } if (rf & 2) {
292
292
  const ctx_r0 = i0.ɵɵnextContext();
293
- i0.ɵɵproperty("ngIf", !ctx_r0.labelTemplate);
293
+ i0.ɵɵproperty("ngIf", !ctx_r0.labelTemplate && !ctx_r0._labelTemplate);
294
294
  i0.ɵɵadvance();
295
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.labelTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c10, ctx_r0.value, ctx_r0.totalPercent(), ctx_r0.percentages()));
295
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.labelTemplate || ctx_r0._labelTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(3, _c10, ctx_r0.value, ctx_r0.totalPercent(), ctx_r0.percentages()));
296
296
  } }
297
297
  class MeterGroupLabel {
298
298
  value = null;
@@ -413,6 +413,12 @@ class MeterGroup extends BaseComponent {
413
413
  endTemplate;
414
414
  startTemplate;
415
415
  iconTemplate;
416
+ templates;
417
+ _labelTemplate;
418
+ _meterTemplate;
419
+ _endTemplate;
420
+ _startTemplate;
421
+ _iconTemplate;
416
422
  _componentStyle = inject(MeterGroupStyle);
417
423
  container;
418
424
  ngAfterViewInit() {
@@ -421,6 +427,27 @@ class MeterGroup extends BaseComponent {
421
427
  const height = getOuterHeight(_container);
422
428
  this.vertical && (_container.style.height = height + 'px');
423
429
  }
430
+ ngAfterContentInit() {
431
+ this.templates?.forEach((item) => {
432
+ switch (item.getType()) {
433
+ case 'label':
434
+ this._labelTemplate = item.template;
435
+ break;
436
+ case 'meter':
437
+ this._meterTemplate = item.template;
438
+ break;
439
+ case 'icon':
440
+ this._iconTemplate = item.template;
441
+ break;
442
+ case 'start':
443
+ this._startTemplate = item.template;
444
+ break;
445
+ case 'end':
446
+ this._endTemplate = item.template;
447
+ break;
448
+ }
449
+ });
450
+ }
424
451
  percent(meter = 0) {
425
452
  const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;
426
453
  return Math.round(Math.max(0, Math.min(100, percentOfItem)));
@@ -452,11 +479,12 @@ class MeterGroup extends BaseComponent {
452
479
  }
453
480
  static ɵfac = /*@__PURE__*/ (() => { let ɵMeterGroup_BaseFactory; return function MeterGroup_Factory(__ngFactoryType__) { return (ɵMeterGroup_BaseFactory || (ɵMeterGroup_BaseFactory = i0.ɵɵgetInheritedFactory(MeterGroup)))(__ngFactoryType__ || MeterGroup); }; })();
454
481
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MeterGroup, selectors: [["p-meterGroup"], ["p-metergroup"], ["p-meter-group"]], contentQueries: function MeterGroup_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
455
- i0.ɵɵcontentQuery(dirIndex, _c4, 5);
456
- i0.ɵɵcontentQuery(dirIndex, _c5, 5);
457
- i0.ɵɵcontentQuery(dirIndex, _c6, 5);
458
- i0.ɵɵcontentQuery(dirIndex, _c7, 5);
459
- i0.ɵɵcontentQuery(dirIndex, _c8, 5);
482
+ i0.ɵɵcontentQuery(dirIndex, _c4, 4);
483
+ i0.ɵɵcontentQuery(dirIndex, _c5, 4);
484
+ i0.ɵɵcontentQuery(dirIndex, _c6, 4);
485
+ i0.ɵɵcontentQuery(dirIndex, _c7, 4);
486
+ i0.ɵɵcontentQuery(dirIndex, _c8, 4);
487
+ i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
460
488
  } if (rf & 2) {
461
489
  let _t;
462
490
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.labelTemplate = _t.first);
@@ -464,6 +492,7 @@ class MeterGroup extends BaseComponent {
464
492
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.endTemplate = _t.first);
465
493
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.startTemplate = _t.first);
466
494
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconTemplate = _t.first);
495
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
467
496
  } }, viewQuery: function MeterGroup_Query(rf, ctx) { if (rf & 1) {
468
497
  i0.ɵɵviewQuery(_c9, 5, ElementRef);
469
498
  } if (rf & 2) {
@@ -484,11 +513,11 @@ class MeterGroup extends BaseComponent {
484
513
  i0.ɵɵadvance(2);
485
514
  i0.ɵɵconditional(ctx.labelPosition === "start" ? 2 : -1);
486
515
  i0.ɵɵadvance();
487
- i0.ɵɵproperty("ngTemplateOutlet", ctx.startTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(16, _c10, ctx.value, ctx.totalPercent(), ctx.percentages()));
516
+ i0.ɵɵproperty("ngTemplateOutlet", ctx.startTemplate || ctx._startTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(16, _c10, ctx.value, ctx.totalPercent(), ctx.percentages()));
488
517
  i0.ɵɵadvance(2);
489
518
  i0.ɵɵproperty("ngForOf", ctx.value)("ngForTrackBy", ctx.trackByFn);
490
519
  i0.ɵɵadvance();
491
- i0.ɵɵproperty("ngTemplateOutlet", ctx.endTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(20, _c10, ctx.value, ctx.totalPercent(), ctx.percentages()));
520
+ i0.ɵɵproperty("ngTemplateOutlet", ctx.endTemplate || ctx._endTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction3(20, _c10, ctx.value, ctx.totalPercent(), ctx.percentages()));
492
521
  i0.ɵɵadvance();
493
522
  i0.ɵɵconditional(ctx.labelPosition === "end" ? 7 : -1);
494
523
  } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, MeterGroupLabel, SharedModule], encapsulation: 2, changeDetection: 0 });
@@ -502,15 +531,15 @@ class MeterGroup extends BaseComponent {
502
531
  template: `
503
532
  <div #container [ngClass]="containerClass" [attr.role]="'meter'" [attr.aria-valuemin]="min" [attr.aria-valuemax]="max" [attr.aria-valuenow]="totalPercent()" [ngStyle]="style" [class]="styleClass">
504
533
  @if (labelPosition === 'start') {
505
- <p-meterGroupLabel *ngIf="!labelTemplate" [value]="value" [labelPosition]="labelPosition" [labelOrientation]="labelOrientation" [min]="min" [max]="max" [iconTemplate]="iconTemplate" />
506
- <ng-container *ngTemplateOutlet="labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
534
+ <p-meterGroupLabel *ngIf="!labelTemplate && !_labelTemplate" [value]="value" [labelPosition]="labelPosition" [labelOrientation]="labelOrientation" [min]="min" [max]="max" [iconTemplate]="iconTemplate || _iconTemplate" />
535
+ <ng-container *ngTemplateOutlet="labelTemplate || labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
507
536
  }
508
- <ng-container *ngTemplateOutlet="startTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
537
+ <ng-container *ngTemplateOutlet="startTemplate || _startTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
509
538
  <div class="p-metergroup-meters">
510
539
  <ng-container *ngFor="let meterItem of value; let index = index; trackBy: trackByFn">
511
540
  <ng-container
512
541
  *ngTemplateOutlet="
513
- meterTemplate;
542
+ meterTemplate || _meterTemplate;
514
543
  context: {
515
544
  $implicit: meterItem,
516
545
  index: index,
@@ -522,15 +551,15 @@ class MeterGroup extends BaseComponent {
522
551
  "
523
552
  >
524
553
  </ng-container>
525
- <ng-container *ngIf="!meterTemplate && meterItem.value > 0">
554
+ <ng-container *ngIf="!meterTemplate && !_meterTemplate && meterItem.value > 0">
526
555
  <span class="p-metergroup-meter" [ngStyle]="meterStyle(meterItem)"></span>
527
556
  </ng-container>
528
557
  </ng-container>
529
558
  </div>
530
- <ng-container *ngTemplateOutlet="endTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
559
+ <ng-container *ngTemplateOutlet="endTemplate || _endTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
531
560
  @if (labelPosition === 'end') {
532
- <p-meterGroupLabel *ngIf="!labelTemplate" [value]="value" [labelPosition]="labelPosition" [labelOrientation]="labelOrientation" [min]="min" [max]="max" [iconTemplate]="iconTemplate" />
533
- <ng-container *ngTemplateOutlet="labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
561
+ <p-meterGroupLabel *ngIf="!labelTemplate && !_labelTemplate" [value]="value" [labelPosition]="labelPosition" [labelOrientation]="labelOrientation" [min]="min" [max]="max" [iconTemplate]="iconTemplate || _iconTemplate" />
562
+ <ng-container *ngTemplateOutlet="labelTemplate || _labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }"></ng-container>
534
563
  }
535
564
  </div>
536
565
  `,
@@ -556,19 +585,22 @@ class MeterGroup extends BaseComponent {
556
585
  type: Input
557
586
  }], labelTemplate: [{
558
587
  type: ContentChild,
559
- args: ['label']
588
+ args: ['label', { descendants: false }]
560
589
  }], meterTemplate: [{
561
590
  type: ContentChild,
562
- args: ['meter']
591
+ args: ['meter', { descendants: false }]
563
592
  }], endTemplate: [{
564
593
  type: ContentChild,
565
- args: ['end']
594
+ args: ['end', { descendants: false }]
566
595
  }], startTemplate: [{
567
596
  type: ContentChild,
568
- args: ['start']
597
+ args: ['start', { descendants: false }]
569
598
  }], iconTemplate: [{
570
599
  type: ContentChild,
571
- args: ['icon']
600
+ args: ['icon', { descendants: false }]
601
+ }], templates: [{
602
+ type: ContentChildren,
603
+ args: [PrimeTemplate]
572
604
  }], container: [{
573
605
  type: ViewChild,
574
606
  args: ['container', { read: ElementRef }]
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-metergroup.mjs","sources":["../../src/metergroup/style/metergroupstyle.ts","../../src/metergroup/metergroup.ts","../../src/metergroup/primeng-metergroup.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-metergroup {\n display: flex;\n gap: ${dt('metergroup.gap')};\n}\n\n.p-metergroup-meters {\n display: flex;\n background: ${dt('metergroup.meters.background')};\n border-radius: ${dt('metergroup.border.radius')};\n}\n\n.p-metergroup-label-list {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.p-metergroup-label {\n display: inline-flex;\n align-items: center;\n gap: ${dt('metergroup.label.gap')};\n}\n\n.p-metergroup-label-marker {\n display: inline-flex;\n width: ${dt('metergroup.label.marker.size')};\n height: ${dt('metergroup.label.marker.size')};\n border-radius: 100%;\n}\n\n.p-metergroup-label-icon {\n font-size: ${dt('metergroup.label.icon.size')};\n width: ${dt('metergroup.label.icon.size')};\n height: ${dt('metergroup.label.icon.size')};\n}\n\n.p-metergroup-horizontal {\n flex-direction: column;\n}\n\n.p-metergroup-label-list-horizontal {\n gap: ${dt('metergroup.label.list.horizontal.gap')};\n}\n\n.p-metergroup-horizontal .p-metergroup-meters {\n height: ${dt('metergroup.meters.size')};\n}\n\n.p-metergroup-horizontal .p-metergroup-meter:first-of-type {\n border-start-start-radius: ${dt('metergroup.border.radius')};\n border-end-start-radius: ${dt('metergroup.border.radius')};\n}\n\n.p-metergroup-horizontal .p-metergroup-meter:last-of-type {\n border-start-end-radius: ${dt('metergroup.border.radius')};\n border-end-end-radius: ${dt('metergroup.border.radius')};\n}\n\n.p-metergroup-vertical {\n flex-direction: row;\n}\n\n.p-metergroup-label-list-vertical {\n flex-direction: column;\n gap: ${dt('metergroup.label.list.vertical.gap')};\n}\n\n.p-metergroup-vertical .p-metergroup-meters {\n flex-direction: column;\n width: ${dt('metergroup.meters.size')};\n height: 100%;\n}\n\n.p-metergroup-vertical .p-metergroup-label-list {\n align-items: start;\n}\n\n.p-metergroup-vertical .p-metergroup-meter:first-of-type {\n border-start-start-radius: ${dt('metergroup.border.radius')};\n border-start-end-radius: ${dt('metergroup.border.radius')};\n}\n.p-metergroup-vertical .p-metergroup-meter:last-of-type {\n border-end-start-radius: ${dt('metergroup.border.radius')};\n border-end-end-radius: ${dt('metergroup.border.radius')};\n}\n`;\n\nconst classes = {\n root: ({ props }) => [\n 'p-metergroup p-component',\n {\n 'p-metergroup-horizontal': props.orientation === 'horizontal',\n 'p-metergroup-vertical': props.orientation === 'vertical'\n }\n ],\n meters: 'p-metergroup-meters',\n meter: 'p-metergroup-meter',\n labelList: ({ props }) => [\n 'p-metergroup-label-list',\n {\n 'p-metergroup-label-list-vertical': props.labelOrientation === 'vertical',\n 'p-metergroup-label-list-horizontal': props.labelOrientation === 'horizontal'\n }\n ],\n label: 'p-metergroup-label',\n labelIcon: 'p-metergroup-label-icon',\n labelMarker: 'p-metergroup-label-marker',\n labelText: 'p-metergroup-label-text'\n};\n\n@Injectable()\nexport class MeterGroupStyle extends BaseStyle {\n name = 'metergroup';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * MeterGroup is a group of process status indicators.\n *\n * [Live Demo](https://www.primeng.org/metergroup)\n *\n * @module metergroupstyle\n *\n */\nexport enum MeterGroupClasses {\n /**\n * Class name of the root element\n */\n root = 'p-metergroup',\n /**\n * Class name of the meters element\n */\n meters = 'p-metergroup-meters',\n /**\n * Class name of the meter element\n */\n meter = 'p-metergroup-meter',\n /**\n * Class name of the label list element\n */\n labelList = 'p-metergroup-label-list',\n /**\n * Class name of the label element\n */\n label = 'p-metergroup-label',\n /**\n * Class name of the label icon element\n */\n labelIcon = 'p-metergroup-label-icon',\n /**\n * Class name of the label marker element\n */\n labelMarker = 'p-metergroup-label-marker',\n /**\n * Class name of the label text element\n */\n labelText = 'p-metergroup-label-text'\n}\n\nexport interface MeterGroupStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ElementRef, forwardRef, inject, Input, NgModule, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { getOuterHeight } from '@primeuix/utils';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { MeterItem } from './metergroup.interface';\nimport { MeterGroupStyle } from './style/metergroupstyle';\n\n@Component({\n selector: 'p-meterGroupLabel, p-metergrouplabel',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `\n <ol [ngClass]=\"labelClass\">\n <li *ngFor=\"let labelItem of value; let index = index; trackBy: parentInstance.trackByFn\" class=\"p-metergroup-label\">\n <ng-container *ngIf=\"!iconTemplate\">\n <i *ngIf=\"labelItem.icon\" [class]=\"labelItem.icon\" [ngClass]=\"{ 'p-metergroup-label-icon': true }\" [ngStyle]=\"{ color: labelItem.color }\"></i>\n <span *ngIf=\"!labelItem.icon\" class=\"p-metergroup-label-marker\" [ngStyle]=\"{ backgroundColor: labelItem.color }\"></span>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: labelItem, icon: labelItem.icon }\"></ng-container>\n <span class=\"p-metergroup-label-text\">{{ labelItem.label }} ({{ parentInstance.percentValue(labelItem.value) }})</span>\n </li>\n </ol>\n `\n})\nexport class MeterGroupLabel {\n @Input() value: any[] = null;\n\n @Input() labelPosition: 'start' | 'end' = 'end';\n\n @Input() labelOrientation: 'horizontal' | 'vertical' = 'horizontal';\n\n @Input() min: number;\n\n @Input() max: number;\n\n @Input() iconTemplate: TemplateRef<any> | undefined;\n\n get labelClass(): { [key: string]: boolean } {\n return {\n 'p-metergroup-label-list p-component': true,\n 'p-metergroup-label-list-vertical': this.labelOrientation === 'vertical',\n 'p-metergroup-label-list-horizontal': this.labelOrientation === 'horizontal'\n };\n }\n\n parentInstance: MeterGroup = inject(forwardRef(() => MeterGroup));\n}\n/**\n * MeterGroup displays scalar measurements within a known range.\n * @group Components\n */\n@Component({\n selector: 'p-meterGroup, p-metergroup, p-meter-group',\n standalone: true,\n imports: [CommonModule, MeterGroupLabel, SharedModule],\n template: `\n <div #container [ngClass]=\"containerClass\" [attr.role]=\"'meter'\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\" [attr.aria-valuenow]=\"totalPercent()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n @if (labelPosition === 'start') {\n <p-meterGroupLabel *ngIf=\"!labelTemplate\" [value]=\"value\" [labelPosition]=\"labelPosition\" [labelOrientation]=\"labelOrientation\" [min]=\"min\" [max]=\"max\" [iconTemplate]=\"iconTemplate\" />\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"startTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n <div class=\"p-metergroup-meters\">\n <ng-container *ngFor=\"let meterItem of value; let index = index; trackBy: trackByFn\">\n <ng-container\n *ngTemplateOutlet=\"\n meterTemplate;\n context: {\n $implicit: meterItem,\n index: index,\n orientation: this.orientation,\n class: 'p-metergroup-meter',\n size: percentValue(meterItem.value),\n totalPercent: totalPercent()\n }\n \"\n >\n </ng-container>\n <ng-container *ngIf=\"!meterTemplate && meterItem.value > 0\">\n <span class=\"p-metergroup-meter\" [ngStyle]=\"meterStyle(meterItem)\"></span>\n </ng-container>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"endTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n @if (labelPosition === 'end') {\n <p-meterGroupLabel *ngIf=\"!labelTemplate\" [value]=\"value\" [labelPosition]=\"labelPosition\" [labelOrientation]=\"labelOrientation\" [min]=\"min\" [max]=\"max\" [iconTemplate]=\"iconTemplate\" />\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MeterGroupStyle]\n})\nexport class MeterGroup extends BaseComponent {\n /**\n * Current value of the metergroup.\n * @group Props\n */\n @Input() value: MeterItem[] | undefined;\n /**\n * Mininum boundary value.\n * @group Props\n */\n @Input() min: number = 0;\n /**\n * Maximum boundary value.\n * @group Props\n */\n @Input() max: number = 100;\n /**\n * Specifies the layout of the component, valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n /**\n * Specifies the label position of the component, valid values are 'start' and 'end'.\n * @group Props\n */\n @Input() labelPosition: 'start' | 'end' = 'end';\n /**\n * Specifies the label orientation of the component, valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n @Input() labelOrientation: 'horizontal' | 'vertical' | undefined = 'horizontal';\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n\n get vertical(): boolean {\n return this.orientation === 'vertical';\n }\n\n get containerClass() {\n return {\n 'p-metergroup p-component': true,\n 'p-metergroup-horizontal': this.orientation === 'horizontal',\n 'p-metergroup-vertical': this.orientation === 'vertical'\n };\n }\n\n @ContentChild('label') labelTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('meter') meterTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('end') endTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('start') startTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('icon') iconTemplate: TemplateRef<any> | undefined;\n\n _componentStyle = inject(MeterGroupStyle);\n\n @ViewChild('container', { read: ElementRef }) container: ElementRef;\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n const _container = this.container.nativeElement;\n const height = getOuterHeight(_container);\n this.vertical && (_container.style.height = height + 'px');\n }\n\n percent(meter = 0) {\n const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n }\n\n percentValue(meter) {\n return this.percent(meter) + '%';\n }\n\n meterStyle(val) {\n return {\n backgroundColor: val.color,\n width: this.orientation === 'horizontal' && this.percentValue(val.value),\n height: this.orientation === 'vertical' && this.percentValue(val.value)\n };\n }\n\n totalPercent() {\n return this.percent(this.value.reduce((total, val) => total + val.value, 0));\n }\n\n percentages() {\n let sum = 0;\n const sumsArray = [];\n\n this.value.forEach((item) => {\n sum += item.value;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n }\n\n trackByFn(index: number): number {\n return index;\n }\n}\n\n@NgModule({\n imports: [MeterGroup, SharedModule],\n exports: [MeterGroup, SharedModule]\n})\nexport class MeterGroupModule {}\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-metergroup.mjs","sources":["../../src/metergroup/style/metergroupstyle.ts","../../src/metergroup/metergroup.ts","../../src/metergroup/primeng-metergroup.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-metergroup {\n display: flex;\n gap: ${dt('metergroup.gap')};\n}\n\n.p-metergroup-meters {\n display: flex;\n background: ${dt('metergroup.meters.background')};\n border-radius: ${dt('metergroup.border.radius')};\n}\n\n.p-metergroup-label-list {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.p-metergroup-label {\n display: inline-flex;\n align-items: center;\n gap: ${dt('metergroup.label.gap')};\n}\n\n.p-metergroup-label-marker {\n display: inline-flex;\n width: ${dt('metergroup.label.marker.size')};\n height: ${dt('metergroup.label.marker.size')};\n border-radius: 100%;\n}\n\n.p-metergroup-label-icon {\n font-size: ${dt('metergroup.label.icon.size')};\n width: ${dt('metergroup.label.icon.size')};\n height: ${dt('metergroup.label.icon.size')};\n}\n\n.p-metergroup-horizontal {\n flex-direction: column;\n}\n\n.p-metergroup-label-list-horizontal {\n gap: ${dt('metergroup.label.list.horizontal.gap')};\n}\n\n.p-metergroup-horizontal .p-metergroup-meters {\n height: ${dt('metergroup.meters.size')};\n}\n\n.p-metergroup-horizontal .p-metergroup-meter:first-of-type {\n border-start-start-radius: ${dt('metergroup.border.radius')};\n border-end-start-radius: ${dt('metergroup.border.radius')};\n}\n\n.p-metergroup-horizontal .p-metergroup-meter:last-of-type {\n border-start-end-radius: ${dt('metergroup.border.radius')};\n border-end-end-radius: ${dt('metergroup.border.radius')};\n}\n\n.p-metergroup-vertical {\n flex-direction: row;\n}\n\n.p-metergroup-label-list-vertical {\n flex-direction: column;\n gap: ${dt('metergroup.label.list.vertical.gap')};\n}\n\n.p-metergroup-vertical .p-metergroup-meters {\n flex-direction: column;\n width: ${dt('metergroup.meters.size')};\n height: 100%;\n}\n\n.p-metergroup-vertical .p-metergroup-label-list {\n align-items: start;\n}\n\n.p-metergroup-vertical .p-metergroup-meter:first-of-type {\n border-start-start-radius: ${dt('metergroup.border.radius')};\n border-start-end-radius: ${dt('metergroup.border.radius')};\n}\n.p-metergroup-vertical .p-metergroup-meter:last-of-type {\n border-end-start-radius: ${dt('metergroup.border.radius')};\n border-end-end-radius: ${dt('metergroup.border.radius')};\n}\n`;\n\nconst classes = {\n root: ({ props }) => [\n 'p-metergroup p-component',\n {\n 'p-metergroup-horizontal': props.orientation === 'horizontal',\n 'p-metergroup-vertical': props.orientation === 'vertical'\n }\n ],\n meters: 'p-metergroup-meters',\n meter: 'p-metergroup-meter',\n labelList: ({ props }) => [\n 'p-metergroup-label-list',\n {\n 'p-metergroup-label-list-vertical': props.labelOrientation === 'vertical',\n 'p-metergroup-label-list-horizontal': props.labelOrientation === 'horizontal'\n }\n ],\n label: 'p-metergroup-label',\n labelIcon: 'p-metergroup-label-icon',\n labelMarker: 'p-metergroup-label-marker',\n labelText: 'p-metergroup-label-text'\n};\n\n@Injectable()\nexport class MeterGroupStyle extends BaseStyle {\n name = 'metergroup';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * MeterGroup is a group of process status indicators.\n *\n * [Live Demo](https://www.primeng.org/metergroup)\n *\n * @module metergroupstyle\n *\n */\nexport enum MeterGroupClasses {\n /**\n * Class name of the root element\n */\n root = 'p-metergroup',\n /**\n * Class name of the meters element\n */\n meters = 'p-metergroup-meters',\n /**\n * Class name of the meter element\n */\n meter = 'p-metergroup-meter',\n /**\n * Class name of the label list element\n */\n labelList = 'p-metergroup-label-list',\n /**\n * Class name of the label element\n */\n label = 'p-metergroup-label',\n /**\n * Class name of the label icon element\n */\n labelIcon = 'p-metergroup-label-icon',\n /**\n * Class name of the label marker element\n */\n labelMarker = 'p-metergroup-label-marker',\n /**\n * Class name of the label text element\n */\n labelText = 'p-metergroup-label-text'\n}\n\nexport interface MeterGroupStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, forwardRef, inject, Input, NgModule, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { getOuterHeight } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { MeterItem } from './metergroup.interface';\nimport { MeterGroupStyle } from './style/metergroupstyle';\n\n@Component({\n selector: 'p-meterGroupLabel, p-metergrouplabel',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `\n <ol [ngClass]=\"labelClass\">\n <li *ngFor=\"let labelItem of value; let index = index; trackBy: parentInstance.trackByFn\" class=\"p-metergroup-label\">\n <ng-container *ngIf=\"!iconTemplate\">\n <i *ngIf=\"labelItem.icon\" [class]=\"labelItem.icon\" [ngClass]=\"{ 'p-metergroup-label-icon': true }\" [ngStyle]=\"{ color: labelItem.color }\"></i>\n <span *ngIf=\"!labelItem.icon\" class=\"p-metergroup-label-marker\" [ngStyle]=\"{ backgroundColor: labelItem.color }\"></span>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: labelItem, icon: labelItem.icon }\"></ng-container>\n <span class=\"p-metergroup-label-text\">{{ labelItem.label }} ({{ parentInstance.percentValue(labelItem.value) }})</span>\n </li>\n </ol>\n `\n})\nexport class MeterGroupLabel {\n @Input() value: any[] = null;\n\n @Input() labelPosition: 'start' | 'end' = 'end';\n\n @Input() labelOrientation: 'horizontal' | 'vertical' = 'horizontal';\n\n @Input() min: number;\n\n @Input() max: number;\n\n @Input() iconTemplate: TemplateRef<any> | undefined;\n\n get labelClass(): { [key: string]: boolean } {\n return {\n 'p-metergroup-label-list p-component': true,\n 'p-metergroup-label-list-vertical': this.labelOrientation === 'vertical',\n 'p-metergroup-label-list-horizontal': this.labelOrientation === 'horizontal'\n };\n }\n\n parentInstance: MeterGroup = inject(forwardRef(() => MeterGroup));\n}\n/**\n * MeterGroup displays scalar measurements within a known range.\n * @group Components\n */\n@Component({\n selector: 'p-meterGroup, p-metergroup, p-meter-group',\n standalone: true,\n imports: [CommonModule, MeterGroupLabel, SharedModule],\n template: `\n <div #container [ngClass]=\"containerClass\" [attr.role]=\"'meter'\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\" [attr.aria-valuenow]=\"totalPercent()\" [ngStyle]=\"style\" [class]=\"styleClass\">\n @if (labelPosition === 'start') {\n <p-meterGroupLabel *ngIf=\"!labelTemplate && !_labelTemplate\" [value]=\"value\" [labelPosition]=\"labelPosition\" [labelOrientation]=\"labelOrientation\" [min]=\"min\" [max]=\"max\" [iconTemplate]=\"iconTemplate || _iconTemplate\" />\n <ng-container *ngTemplateOutlet=\"labelTemplate || labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"startTemplate || _startTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n <div class=\"p-metergroup-meters\">\n <ng-container *ngFor=\"let meterItem of value; let index = index; trackBy: trackByFn\">\n <ng-container\n *ngTemplateOutlet=\"\n meterTemplate || _meterTemplate;\n context: {\n $implicit: meterItem,\n index: index,\n orientation: this.orientation,\n class: 'p-metergroup-meter',\n size: percentValue(meterItem.value),\n totalPercent: totalPercent()\n }\n \"\n >\n </ng-container>\n <ng-container *ngIf=\"!meterTemplate && !_meterTemplate && meterItem.value > 0\">\n <span class=\"p-metergroup-meter\" [ngStyle]=\"meterStyle(meterItem)\"></span>\n </ng-container>\n </ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"endTemplate || _endTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n @if (labelPosition === 'end') {\n <p-meterGroupLabel *ngIf=\"!labelTemplate && !_labelTemplate\" [value]=\"value\" [labelPosition]=\"labelPosition\" [labelOrientation]=\"labelOrientation\" [min]=\"min\" [max]=\"max\" [iconTemplate]=\"iconTemplate || _iconTemplate\" />\n <ng-container *ngTemplateOutlet=\"labelTemplate || _labelTemplate; context: { $implicit: value, totalPercent: totalPercent(), percentages: percentages() }\"></ng-container>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MeterGroupStyle]\n})\nexport class MeterGroup extends BaseComponent implements AfterContentInit {\n /**\n * Current value of the metergroup.\n * @group Props\n */\n @Input() value: MeterItem[] | undefined;\n /**\n * Mininum boundary value.\n * @group Props\n */\n @Input() min: number = 0;\n /**\n * Maximum boundary value.\n * @group Props\n */\n @Input() max: number = 100;\n /**\n * Specifies the layout of the component, valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n /**\n * Specifies the label position of the component, valid values are 'start' and 'end'.\n * @group Props\n */\n @Input() labelPosition: 'start' | 'end' = 'end';\n /**\n * Specifies the label orientation of the component, valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n @Input() labelOrientation: 'horizontal' | 'vertical' | undefined = 'horizontal';\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n\n get vertical(): boolean {\n return this.orientation === 'vertical';\n }\n\n get containerClass() {\n return {\n 'p-metergroup p-component': true,\n 'p-metergroup-horizontal': this.orientation === 'horizontal',\n 'p-metergroup-vertical': this.orientation === 'vertical'\n };\n }\n\n @ContentChild('label', { descendants: false }) labelTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('meter', { descendants: false }) meterTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('end', { descendants: false }) endTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('start', { descendants: false }) startTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('icon', { descendants: false }) iconTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n _labelTemplate: TemplateRef<any> | undefined;\n\n _meterTemplate: TemplateRef<any> | undefined;\n\n _endTemplate: TemplateRef<any> | undefined;\n\n _startTemplate: TemplateRef<any> | undefined;\n\n _iconTemplate: TemplateRef<any> | undefined;\n\n _componentStyle = inject(MeterGroupStyle);\n\n @ViewChild('container', { read: ElementRef }) container: ElementRef;\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n const _container = this.container.nativeElement;\n const height = getOuterHeight(_container);\n this.vertical && (_container.style.height = height + 'px');\n }\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'label':\n this._labelTemplate = item.template;\n break;\n\n case 'meter':\n this._meterTemplate = item.template;\n break;\n\n case 'icon':\n this._iconTemplate = item.template;\n break;\n\n case 'start':\n this._startTemplate = item.template;\n break;\n\n case 'end':\n this._endTemplate = item.template;\n break;\n }\n });\n }\n\n percent(meter = 0) {\n const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n }\n\n percentValue(meter) {\n return this.percent(meter) + '%';\n }\n\n meterStyle(val) {\n return {\n backgroundColor: val.color,\n width: this.orientation === 'horizontal' && this.percentValue(val.value),\n height: this.orientation === 'vertical' && this.percentValue(val.value)\n };\n }\n\n totalPercent() {\n return this.percent(this.value.reduce((total, val) => total + val.value, 0));\n }\n\n percentages() {\n let sum = 0;\n const sumsArray = [];\n\n this.value.forEach((item) => {\n sum += item.value;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n }\n\n trackByFn(index: number): number {\n return index;\n }\n}\n\n@NgModule({\n imports: [MeterGroup, SharedModule],\n exports: [MeterGroup, SharedModule]\n})\nexport class MeterGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}