primeng 18.0.0 → 18.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 (318) 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/confirmdialog/confirmdialog.d.ts +14 -5
  15. package/confirmpopup/confirmpopup.d.ts +11 -5
  16. package/contextmenu/contextmenu.d.ts +10 -6
  17. package/datepicker/datepicker.d.ts +25 -11
  18. package/dialog/dialog.d.ts +15 -4
  19. package/divider/divider.d.ts +1 -1
  20. package/dock/dock.d.ts +7 -4
  21. package/drawer/drawer.d.ts +18 -10
  22. package/dropdown/dropdown.d.ts +4 -3
  23. package/dynamicdialog/dynamicdialog.d.ts +1 -0
  24. package/editor/editor.d.ts +7 -3
  25. package/esm2022/accordion/accordion.mjs +58 -43
  26. package/esm2022/autocomplete/autocomplete.mjs +153 -92
  27. package/esm2022/badge/badge.mjs +39 -32
  28. package/esm2022/basecomponent/basecomponent.mjs +3 -26
  29. package/esm2022/blockui/blockui.mjs +38 -18
  30. package/esm2022/breadcrumb/breadcrumb.mjs +50 -32
  31. package/esm2022/button/button.mjs +55 -28
  32. package/esm2022/calendar/calendar.mjs +199 -136
  33. package/esm2022/card/card.mjs +96 -46
  34. package/esm2022/carousel/carousel.mjs +74 -42
  35. package/esm2022/cascadeselect/cascadeselect.mjs +100 -62
  36. package/esm2022/checkbox/checkbox.mjs +32 -14
  37. package/esm2022/chip/chip.mjs +117 -96
  38. package/esm2022/confirmdialog/confirmdialog.mjs +96 -57
  39. package/esm2022/confirmpopup/confirmpopup.mjs +57 -29
  40. package/esm2022/contextmenu/contextmenu.mjs +51 -20
  41. package/esm2022/datepicker/datepicker.mjs +199 -158
  42. package/esm2022/dialog/dialog.mjs +98 -52
  43. package/esm2022/divider/divider.mjs +2 -4
  44. package/esm2022/dock/dock.mjs +31 -13
  45. package/esm2022/drawer/drawer.mjs +112 -70
  46. package/esm2022/dropdown/dropdown.mjs +13 -5
  47. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +13 -13
  48. package/esm2022/dynamicdialog/dynamicdialog.mjs +9 -5
  49. package/esm2022/editor/editor.mjs +27 -11
  50. package/esm2022/fieldset/fieldset.mjs +61 -33
  51. package/esm2022/fileupload/fileupload.mjs +139 -89
  52. package/esm2022/galleria/galleria.mjs +18 -9
  53. package/esm2022/image/image.mjs +113 -66
  54. package/esm2022/imagecompare/imagecompare.mjs +31 -11
  55. package/esm2022/inplace/inplace.mjs +49 -24
  56. package/esm2022/inputmask/inputmask.mjs +30 -14
  57. package/esm2022/inputmask/style/inputmaskstyle.mjs +2 -2
  58. package/esm2022/inputnumber/inputnumber.mjs +55 -47
  59. package/esm2022/inputotp/inputotp.mjs +30 -11
  60. package/esm2022/listbox/listbox.mjs +137 -78
  61. package/esm2022/megamenu/megamenu.mjs +105 -59
  62. package/esm2022/menu/menu.mjs +26 -26
  63. package/esm2022/menubar/menubar.mjs +70 -35
  64. package/esm2022/message/message.mjs +50 -26
  65. package/esm2022/messages/messages.mjs +13 -4
  66. package/esm2022/metergroup/metergroup.mjs +63 -31
  67. package/esm2022/multiselect/multiselect.mjs +247 -156
  68. package/esm2022/orderlist/orderlist.mjs +125 -70
  69. package/esm2022/organizationchart/organizationchart.mjs +30 -14
  70. package/esm2022/overlay/overlay.mjs +27 -7
  71. package/esm2022/overlaypanel/overlaypanel.mjs +33 -10
  72. package/esm2022/paginator/paginator.mjs +92 -60
  73. package/esm2022/panel/panel.mjs +160 -100
  74. package/esm2022/panelmenu/panelmenu.mjs +55 -32
  75. package/esm2022/password/password.mjs +88 -49
  76. package/esm2022/picklist/picklist.mjs +363 -259
  77. package/esm2022/popover/popover.mjs +29 -12
  78. package/esm2022/progressbar/progressbar.mjs +27 -9
  79. package/esm2022/rating/rating.mjs +46 -22
  80. package/esm2022/scroller/scroller.mjs +47 -37
  81. package/esm2022/scrollpanel/scrollpanel.mjs +28 -9
  82. package/esm2022/scrolltop/scrolltop.mjs +17 -10
  83. package/esm2022/select/select.mjs +198 -119
  84. package/esm2022/selectbutton/selectbutton.mjs +26 -11
  85. package/esm2022/sidebar/sidebar.mjs +82 -60
  86. package/esm2022/speeddial/speeddial.mjs +54 -29
  87. package/esm2022/splitbutton/splitbutton.mjs +41 -18
  88. package/esm2022/splitter/splitter.mjs +5 -5
  89. package/esm2022/stepper/stepper.mjs +27 -13
  90. package/esm2022/table/table.mjs +107 -96
  91. package/esm2022/tabmenu/tabmenu.mjs +54 -27
  92. package/esm2022/tabs/tablist.mjs +28 -20
  93. package/esm2022/tabview/tabview.mjs +106 -54
  94. package/esm2022/tag/tag.mjs +68 -44
  95. package/esm2022/tieredmenu/tieredmenu.mjs +44 -21
  96. package/esm2022/timeline/timeline.mjs +41 -17
  97. package/esm2022/toast/toast.mjs +31 -9
  98. package/esm2022/togglebutton/togglebutton.mjs +45 -30
  99. package/esm2022/toggleswitch/toggleswitch.mjs +28 -9
  100. package/esm2022/toolbar/toolbar.mjs +47 -21
  101. package/esm2022/tooltip/tooltip.mjs +35 -70
  102. package/esm2022/tree/tree.mjs +114 -99
  103. package/esm2022/treeselect/treeselect.mjs +156 -89
  104. package/esm2022/treetable/treetable.mjs +31 -12
  105. package/esm2022/usestyle/usestyle.mjs +2 -2
  106. package/fesm2022/primeng-accordion.mjs +57 -42
  107. package/fesm2022/primeng-accordion.mjs.map +1 -1
  108. package/fesm2022/primeng-autocomplete.mjs +152 -91
  109. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  110. package/fesm2022/primeng-badge.mjs +38 -31
  111. package/fesm2022/primeng-badge.mjs.map +1 -1
  112. package/fesm2022/primeng-basecomponent.mjs +2 -25
  113. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  114. package/fesm2022/primeng-blockui.mjs +37 -17
  115. package/fesm2022/primeng-blockui.mjs.map +1 -1
  116. package/fesm2022/primeng-breadcrumb.mjs +49 -31
  117. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  118. package/fesm2022/primeng-button.mjs +54 -27
  119. package/fesm2022/primeng-button.mjs.map +1 -1
  120. package/fesm2022/primeng-calendar.mjs +198 -135
  121. package/fesm2022/primeng-calendar.mjs.map +1 -1
  122. package/fesm2022/primeng-card.mjs +95 -45
  123. package/fesm2022/primeng-card.mjs.map +1 -1
  124. package/fesm2022/primeng-carousel.mjs +73 -41
  125. package/fesm2022/primeng-carousel.mjs.map +1 -1
  126. package/fesm2022/primeng-cascadeselect.mjs +99 -61
  127. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  128. package/fesm2022/primeng-checkbox.mjs +31 -13
  129. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  130. package/fesm2022/primeng-chip.mjs +116 -95
  131. package/fesm2022/primeng-chip.mjs.map +1 -1
  132. package/fesm2022/primeng-confirmdialog.mjs +95 -56
  133. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  134. package/fesm2022/primeng-confirmpopup.mjs +56 -28
  135. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  136. package/fesm2022/primeng-contextmenu.mjs +50 -19
  137. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  138. package/fesm2022/primeng-datepicker.mjs +198 -157
  139. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  140. package/fesm2022/primeng-dialog.mjs +97 -51
  141. package/fesm2022/primeng-dialog.mjs.map +1 -1
  142. package/fesm2022/primeng-divider.mjs +1 -3
  143. package/fesm2022/primeng-divider.mjs.map +1 -1
  144. package/fesm2022/primeng-dock.mjs +30 -12
  145. package/fesm2022/primeng-dock.mjs.map +1 -1
  146. package/fesm2022/primeng-drawer.mjs +111 -69
  147. package/fesm2022/primeng-drawer.mjs.map +1 -1
  148. package/fesm2022/primeng-dropdown.mjs +12 -4
  149. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  150. package/fesm2022/primeng-dynamicdialog.mjs +20 -16
  151. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  152. package/fesm2022/primeng-editor.mjs +26 -10
  153. package/fesm2022/primeng-editor.mjs.map +1 -1
  154. package/fesm2022/primeng-fieldset.mjs +60 -32
  155. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  156. package/fesm2022/primeng-fileupload.mjs +138 -88
  157. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  158. package/fesm2022/primeng-galleria.mjs +17 -8
  159. package/fesm2022/primeng-galleria.mjs.map +1 -1
  160. package/fesm2022/primeng-image.mjs +112 -65
  161. package/fesm2022/primeng-image.mjs.map +1 -1
  162. package/fesm2022/primeng-imagecompare.mjs +30 -10
  163. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  164. package/fesm2022/primeng-inplace.mjs +48 -23
  165. package/fesm2022/primeng-inplace.mjs.map +1 -1
  166. package/fesm2022/primeng-inputmask.mjs +30 -14
  167. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  168. package/fesm2022/primeng-inputnumber.mjs +54 -46
  169. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  170. package/fesm2022/primeng-inputotp.mjs +29 -10
  171. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  172. package/fesm2022/primeng-listbox.mjs +136 -77
  173. package/fesm2022/primeng-listbox.mjs.map +1 -1
  174. package/fesm2022/primeng-megamenu.mjs +104 -58
  175. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  176. package/fesm2022/primeng-menu.mjs +25 -25
  177. package/fesm2022/primeng-menu.mjs.map +1 -1
  178. package/fesm2022/primeng-menubar.mjs +69 -34
  179. package/fesm2022/primeng-menubar.mjs.map +1 -1
  180. package/fesm2022/primeng-message.mjs +49 -25
  181. package/fesm2022/primeng-message.mjs.map +1 -1
  182. package/fesm2022/primeng-messages.mjs +12 -3
  183. package/fesm2022/primeng-messages.mjs.map +1 -1
  184. package/fesm2022/primeng-metergroup.mjs +62 -30
  185. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  186. package/fesm2022/primeng-multiselect.mjs +246 -155
  187. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  188. package/fesm2022/primeng-orderlist.mjs +124 -69
  189. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  190. package/fesm2022/primeng-organizationchart.mjs +29 -13
  191. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  192. package/fesm2022/primeng-overlay.mjs +26 -6
  193. package/fesm2022/primeng-overlay.mjs.map +1 -1
  194. package/fesm2022/primeng-overlaypanel.mjs +32 -9
  195. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  196. package/fesm2022/primeng-paginator.mjs +91 -59
  197. package/fesm2022/primeng-paginator.mjs.map +1 -1
  198. package/fesm2022/primeng-panel.mjs +159 -99
  199. package/fesm2022/primeng-panel.mjs.map +1 -1
  200. package/fesm2022/primeng-panelmenu.mjs +54 -31
  201. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  202. package/fesm2022/primeng-password.mjs +87 -48
  203. package/fesm2022/primeng-password.mjs.map +1 -1
  204. package/fesm2022/primeng-picklist.mjs +362 -258
  205. package/fesm2022/primeng-picklist.mjs.map +1 -1
  206. package/fesm2022/primeng-popover.mjs +28 -11
  207. package/fesm2022/primeng-popover.mjs.map +1 -1
  208. package/fesm2022/primeng-progressbar.mjs +26 -8
  209. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  210. package/fesm2022/primeng-rating.mjs +45 -21
  211. package/fesm2022/primeng-rating.mjs.map +1 -1
  212. package/fesm2022/primeng-scroller.mjs +46 -36
  213. package/fesm2022/primeng-scroller.mjs.map +1 -1
  214. package/fesm2022/primeng-scrollpanel.mjs +27 -8
  215. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  216. package/fesm2022/primeng-scrolltop.mjs +16 -9
  217. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  218. package/fesm2022/primeng-select.mjs +197 -118
  219. package/fesm2022/primeng-select.mjs.map +1 -1
  220. package/fesm2022/primeng-selectbutton.mjs +25 -10
  221. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  222. package/fesm2022/primeng-sidebar.mjs +81 -59
  223. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  224. package/fesm2022/primeng-speeddial.mjs +53 -28
  225. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  226. package/fesm2022/primeng-splitbutton.mjs +40 -17
  227. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  228. package/fesm2022/primeng-splitter.mjs +4 -4
  229. package/fesm2022/primeng-splitter.mjs.map +1 -1
  230. package/fesm2022/primeng-stepper.mjs +26 -12
  231. package/fesm2022/primeng-stepper.mjs.map +1 -1
  232. package/fesm2022/primeng-table.mjs +106 -95
  233. package/fesm2022/primeng-table.mjs.map +1 -1
  234. package/fesm2022/primeng-tabmenu.mjs +53 -26
  235. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  236. package/fesm2022/primeng-tabs.mjs +27 -19
  237. package/fesm2022/primeng-tabs.mjs.map +1 -1
  238. package/fesm2022/primeng-tabview.mjs +106 -54
  239. package/fesm2022/primeng-tabview.mjs.map +1 -1
  240. package/fesm2022/primeng-tag.mjs +67 -43
  241. package/fesm2022/primeng-tag.mjs.map +1 -1
  242. package/fesm2022/primeng-tieredmenu.mjs +43 -20
  243. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  244. package/fesm2022/primeng-timeline.mjs +40 -16
  245. package/fesm2022/primeng-timeline.mjs.map +1 -1
  246. package/fesm2022/primeng-toast.mjs +30 -8
  247. package/fesm2022/primeng-toast.mjs.map +1 -1
  248. package/fesm2022/primeng-togglebutton.mjs +44 -29
  249. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  250. package/fesm2022/primeng-toggleswitch.mjs +27 -8
  251. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  252. package/fesm2022/primeng-toolbar.mjs +46 -20
  253. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  254. package/fesm2022/primeng-tooltip.mjs +35 -70
  255. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  256. package/fesm2022/primeng-tree.mjs +114 -99
  257. package/fesm2022/primeng-tree.mjs.map +1 -1
  258. package/fesm2022/primeng-treeselect.mjs +155 -88
  259. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  260. package/fesm2022/primeng-treetable.mjs +30 -11
  261. package/fesm2022/primeng-treetable.mjs.map +1 -1
  262. package/fesm2022/primeng-usestyle.mjs +1 -1
  263. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  264. package/fieldset/fieldset.d.ts +12 -6
  265. package/fileupload/fileupload.d.ts +19 -8
  266. package/galleria/galleria.d.ts +3 -2
  267. package/image/image.d.ts +18 -7
  268. package/imagecompare/imagecompare.d.ts +7 -2
  269. package/inplace/inplace.d.ts +12 -6
  270. package/inputmask/inputmask.d.ts +8 -4
  271. package/inputnumber/inputnumber.d.ts +11 -6
  272. package/inputotp/inputotp.d.ts +7 -2
  273. package/listbox/listbox.d.ts +17 -4
  274. package/megamenu/megamenu.d.ts +16 -7
  275. package/menu/menu.d.ts +6 -6
  276. package/menubar/menubar.d.ts +13 -6
  277. package/message/message.d.ts +10 -4
  278. package/messages/messages.d.ts +4 -3
  279. package/metergroup/metergroup.d.ts +11 -3
  280. package/multiselect/multiselect.d.ts +36 -17
  281. package/orderlist/orderlist.d.ts +23 -11
  282. package/organizationchart/organizationchart.d.ts +6 -4
  283. package/overlay/overlay.d.ts +6 -3
  284. package/overlaypanel/overlaypanel.d.ts +6 -3
  285. package/package.json +215 -215
  286. package/paginator/paginator.d.ts +15 -8
  287. package/panel/panel.d.ts +14 -5
  288. package/panelmenu/panelmenu.d.ts +8 -4
  289. package/password/password.d.ts +15 -7
  290. package/picklist/picklist.d.ts +23 -3
  291. package/popover/popover.d.ts +8 -5
  292. package/progressbar/progressbar.d.ts +7 -3
  293. package/rating/rating.d.ts +11 -5
  294. package/scroller/scroller.d.ts +9 -4
  295. package/scrollpanel/scrollpanel.d.ts +7 -3
  296. package/scrolltop/scrolltop.d.ts +7 -4
  297. package/select/select.d.ts +31 -13
  298. package/selectbutton/selectbutton.d.ts +7 -3
  299. package/sidebar/sidebar.d.ts +9 -2
  300. package/speeddial/speeddial.d.ts +9 -4
  301. package/splitbutton/splitbutton.d.ts +9 -5
  302. package/splitter/splitter.d.ts +4 -4
  303. package/stepper/stepper.d.ts +8 -3
  304. package/table/table.d.ts +2 -2
  305. package/tabmenu/tabmenu.d.ts +12 -7
  306. package/tabs/tablist.d.ts +6 -2
  307. package/tabview/tabview.d.ts +16 -7
  308. package/tag/tag.d.ts +8 -9
  309. package/tieredmenu/tieredmenu.d.ts +10 -6
  310. package/timeline/timeline.d.ts +7 -2
  311. package/toast/toast.d.ts +7 -3
  312. package/togglebutton/togglebutton.d.ts +8 -3
  313. package/toggleswitch/toggleswitch.d.ts +6 -2
  314. package/toolbar/toolbar.d.ts +9 -4
  315. package/tooltip/tooltip.d.ts +2 -1
  316. package/tree/tree.d.ts +23 -10
  317. package/treeselect/treeselect.d.ts +26 -12
  318. package/treetable/treetable.d.ts +7 -5
@@ -1,6 +1,6 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, inject, Input, NgModule, Output, ViewEncapsulation } from '@angular/core';
3
- import { SharedModule, TranslationKeys } from 'primeng/api';
2
+ import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, NgModule, Output, ViewEncapsulation } from '@angular/core';
3
+ import { PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';
4
4
  import { BaseComponent } from 'primeng/basecomponent';
5
5
  import { TimesCircleIcon } from 'primeng/icons';
6
6
  import { ChipStyle } from './style/chipstyle';
@@ -8,115 +8,97 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
9
  const _c0 = ["removeicon"];
10
10
  const _c1 = ["*"];
11
- function Chip_div_0_img_2_Template(rf, ctx) { if (rf & 1) {
11
+ function Chip_img_1_Template(rf, ctx) { if (rf & 1) {
12
12
  const _r1 = i0.ɵɵgetCurrentView();
13
- i0.ɵɵelementStart(0, "img", 6);
14
- i0.ɵɵlistener("error", function Chip_div_0_img_2_Template_img_error_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.imageError($event)); });
13
+ i0.ɵɵelementStart(0, "img", 4);
14
+ i0.ɵɵlistener("error", function Chip_img_1_Template_img_error_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.imageError($event)); });
15
15
  i0.ɵɵelementEnd();
16
16
  } if (rf & 2) {
17
- const ctx_r1 = i0.ɵɵnextContext(2);
17
+ const ctx_r1 = i0.ɵɵnextContext();
18
18
  i0.ɵɵproperty("src", ctx_r1.image, i0.ɵɵsanitizeUrl)("alt", ctx_r1.alt);
19
19
  } }
20
- function Chip_div_0_ng_template_3_span_0_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelement(0, "span", 8);
20
+ function Chip_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelement(0, "span", 6);
22
22
  } if (rf & 2) {
23
- const ctx_r1 = i0.ɵɵnextContext(3);
23
+ const ctx_r1 = i0.ɵɵnextContext(2);
24
24
  i0.ɵɵclassMap(ctx_r1.icon);
25
25
  i0.ɵɵproperty("ngClass", "p-chip-icon");
26
26
  i0.ɵɵattribute("data-pc-section", "icon");
27
27
  } }
28
- function Chip_div_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵtemplate(0, Chip_div_0_ng_template_3_span_0_Template, 1, 4, "span", 7);
28
+ function Chip_ng_template_2_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵtemplate(0, Chip_ng_template_2_span_0_Template, 1, 4, "span", 5);
30
30
  } if (rf & 2) {
31
- const ctx_r1 = i0.ɵɵnextContext(2);
31
+ const ctx_r1 = i0.ɵɵnextContext();
32
32
  i0.ɵɵproperty("ngIf", ctx_r1.icon);
33
33
  } }
34
- function Chip_div_0_div_5_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "div", 9);
34
+ function Chip_div_4_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelementStart(0, "div", 7);
36
36
  i0.ɵɵtext(1);
37
37
  i0.ɵɵelementEnd();
38
38
  } if (rf & 2) {
39
- const ctx_r1 = i0.ɵɵnextContext(2);
39
+ const ctx_r1 = i0.ɵɵnextContext();
40
40
  i0.ɵɵattribute("data-pc-section", "label");
41
41
  i0.ɵɵadvance();
42
42
  i0.ɵɵtextInterpolate(ctx_r1.label);
43
43
  } }
44
- function Chip_div_0_ng_container_6_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
44
+ function Chip_ng_container_5_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
45
45
  const _r3 = i0.ɵɵgetCurrentView();
46
- i0.ɵɵelementStart(0, "span", 13);
47
- i0.ɵɵlistener("click", function Chip_div_0_ng_container_6_ng_container_1_span_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown", function Chip_div_0_ng_container_6_ng_container_1_span_1_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });
46
+ i0.ɵɵelementStart(0, "span", 11);
47
+ i0.ɵɵlistener("click", function Chip_ng_container_5_ng_container_1_span_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown", function Chip_ng_container_5_ng_container_1_span_1_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });
48
48
  i0.ɵɵelementEnd();
49
49
  } if (rf & 2) {
50
- const ctx_r1 = i0.ɵɵnextContext(4);
50
+ const ctx_r1 = i0.ɵɵnextContext(3);
51
51
  i0.ɵɵclassMap(ctx_r1.removeIcon);
52
52
  i0.ɵɵproperty("ngClass", "p-chip-remove-icon");
53
53
  i0.ɵɵattribute("data-pc-section", "removeicon")("aria-label", ctx_r1.removeAriaLabel);
54
54
  } }
55
- function Chip_div_0_ng_container_6_ng_container_1_TimesCircleIcon_2_Template(rf, ctx) { if (rf & 1) {
55
+ function Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template(rf, ctx) { if (rf & 1) {
56
56
  const _r4 = i0.ɵɵgetCurrentView();
57
- i0.ɵɵelementStart(0, "TimesCircleIcon", 14);
58
- i0.ɵɵlistener("click", function Chip_div_0_ng_container_6_ng_container_1_TimesCircleIcon_2_Template_TimesCircleIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown", function Chip_div_0_ng_container_6_ng_container_1_TimesCircleIcon_2_Template_TimesCircleIcon_keydown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });
57
+ i0.ɵɵelementStart(0, "TimesCircleIcon", 12);
58
+ i0.ɵɵlistener("click", function Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template_TimesCircleIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown", function Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template_TimesCircleIcon_keydown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });
59
59
  i0.ɵɵelementEnd();
60
60
  } if (rf & 2) {
61
- const ctx_r1 = i0.ɵɵnextContext(4);
61
+ const ctx_r1 = i0.ɵɵnextContext(3);
62
62
  i0.ɵɵclassMap("p-chip-remove-icon");
63
63
  i0.ɵɵattribute("data-pc-section", "removeicon")("aria-label", ctx_r1.removeAriaLabel);
64
64
  } }
65
- function Chip_div_0_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
65
+ function Chip_ng_container_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
66
66
  i0.ɵɵelementContainerStart(0);
67
- i0.ɵɵtemplate(1, Chip_div_0_ng_container_6_ng_container_1_span_1_Template, 1, 5, "span", 11)(2, Chip_div_0_ng_container_6_ng_container_1_TimesCircleIcon_2_Template, 1, 4, "TimesCircleIcon", 12);
67
+ i0.ɵɵtemplate(1, Chip_ng_container_5_ng_container_1_span_1_Template, 1, 5, "span", 9)(2, Chip_ng_container_5_ng_container_1_TimesCircleIcon_2_Template, 1, 4, "TimesCircleIcon", 10);
68
68
  i0.ɵɵelementContainerEnd();
69
69
  } if (rf & 2) {
70
- const ctx_r1 = i0.ɵɵnextContext(3);
70
+ const ctx_r1 = i0.ɵɵnextContext(2);
71
71
  i0.ɵɵadvance();
72
72
  i0.ɵɵproperty("ngIf", ctx_r1.removeIcon);
73
73
  i0.ɵɵadvance();
74
74
  i0.ɵɵproperty("ngIf", !ctx_r1.removeIcon);
75
75
  } }
76
- function Chip_div_0_ng_container_6_span_2_1_ng_template_0_Template(rf, ctx) { }
77
- function Chip_div_0_ng_container_6_span_2_1_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵtemplate(0, Chip_div_0_ng_container_6_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
76
+ function Chip_ng_container_5_span_2_1_ng_template_0_Template(rf, ctx) { }
77
+ function Chip_ng_container_5_span_2_1_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵtemplate(0, Chip_ng_container_5_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
79
79
  } }
80
- function Chip_div_0_ng_container_6_span_2_Template(rf, ctx) { if (rf & 1) {
80
+ function Chip_ng_container_5_span_2_Template(rf, ctx) { if (rf & 1) {
81
81
  const _r5 = i0.ɵɵgetCurrentView();
82
- i0.ɵɵelementStart(0, "span", 15);
83
- i0.ɵɵlistener("click", function Chip_div_0_ng_container_6_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown", function Chip_div_0_ng_container_6_span_2_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });
84
- i0.ɵɵtemplate(1, Chip_div_0_ng_container_6_span_2_1_Template, 1, 0, null, 16);
82
+ i0.ɵɵelementStart(0, "span", 13);
83
+ i0.ɵɵlistener("click", function Chip_ng_container_5_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown", function Chip_ng_container_5_span_2_Template_span_keydown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onKeydown($event)); });
84
+ i0.ɵɵtemplate(1, Chip_ng_container_5_span_2_1_Template, 1, 0, null, 14);
85
85
  i0.ɵɵelementEnd();
86
86
  } if (rf & 2) {
87
- const ctx_r1 = i0.ɵɵnextContext(3);
87
+ const ctx_r1 = i0.ɵɵnextContext(2);
88
88
  i0.ɵɵattribute("data-pc-section", "removeicon")("aria-label", ctx_r1.removeAriaLabel);
89
89
  i0.ɵɵadvance();
90
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.removeicon);
90
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.removeIconTemplate || ctx_r1._removeIconTemplate);
91
91
  } }
92
- function Chip_div_0_ng_container_6_Template(rf, ctx) { if (rf & 1) {
92
+ function Chip_ng_container_5_Template(rf, ctx) { if (rf & 1) {
93
93
  i0.ɵɵelementContainerStart(0);
94
- i0.ɵɵtemplate(1, Chip_div_0_ng_container_6_ng_container_1_Template, 3, 2, "ng-container", 5)(2, Chip_div_0_ng_container_6_span_2_Template, 2, 3, "span", 10);
94
+ i0.ɵɵtemplate(1, Chip_ng_container_5_ng_container_1_Template, 3, 2, "ng-container", 3)(2, Chip_ng_container_5_span_2_Template, 2, 3, "span", 8);
95
95
  i0.ɵɵelementContainerEnd();
96
96
  } if (rf & 2) {
97
- const ctx_r1 = i0.ɵɵnextContext(2);
98
- i0.ɵɵadvance();
99
- i0.ɵɵproperty("ngIf", !ctx_r1.removeicon);
100
- i0.ɵɵadvance();
101
- i0.ɵɵproperty("ngIf", ctx_r1.removeicon);
102
- } }
103
- function Chip_div_0_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵelementStart(0, "div", 2);
105
- i0.ɵɵprojection(1);
106
- i0.ɵɵtemplate(2, Chip_div_0_img_2_Template, 1, 2, "img", 3)(3, Chip_div_0_ng_template_3_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(5, Chip_div_0_div_5_Template, 2, 2, "div", 4)(6, Chip_div_0_ng_container_6_Template, 3, 2, "ng-container", 5);
107
- i0.ɵɵelementEnd();
108
- } if (rf & 2) {
109
- const iconTemplate_r6 = i0.ɵɵreference(4);
110
97
  const ctx_r1 = i0.ɵɵnextContext();
111
- i0.ɵɵclassMap(ctx_r1.styleClass);
112
- i0.ɵɵproperty("ngClass", ctx_r1.containerClass())("ngStyle", ctx_r1.style);
113
- i0.ɵɵattribute("data-pc-name", "chip")("aria-label", ctx_r1.label)("data-pc-section", "root");
114
- i0.ɵɵadvance(2);
115
- i0.ɵɵproperty("ngIf", ctx_r1.image)("ngIfElse", iconTemplate_r6);
116
- i0.ɵɵadvance(3);
117
- i0.ɵɵproperty("ngIf", ctx_r1.label);
118
98
  i0.ɵɵadvance();
119
- i0.ɵɵproperty("ngIf", ctx_r1.removable);
99
+ i0.ɵɵproperty("ngIf", !ctx_r1.removeIconTemplate && !ctx_r1._removeIconTemplate);
100
+ i0.ɵɵadvance();
101
+ i0.ɵɵproperty("ngIf", ctx_r1.removeIconTemplate || ctx_r1._removeIconTemplate);
120
102
  } }
121
103
  /**
122
104
  * Chip represents people using icons, labels and images.
@@ -195,7 +177,21 @@ export class Chip extends BaseComponent {
195
177
  }
196
178
  _chipProps;
197
179
  _componentStyle = inject(ChipStyle);
198
- removeicon;
180
+ removeIconTemplate;
181
+ templates;
182
+ _removeIconTemplate;
183
+ ngAfterContentInit() {
184
+ this.templates.forEach((item) => {
185
+ switch (item.getType()) {
186
+ case 'removeicon':
187
+ this._removeIconTemplate = item.template;
188
+ break;
189
+ default:
190
+ this._removeIconTemplate = item.template;
191
+ break;
192
+ }
193
+ });
194
+ }
199
195
  ngOnChanges(simpleChanges) {
200
196
  super.ngOnChanges(simpleChanges);
201
197
  if (simpleChanges.chipProps && simpleChanges.chipProps.currentValue) {
@@ -227,9 +223,11 @@ export class Chip extends BaseComponent {
227
223
  }
228
224
  }
229
225
  containerClass() {
230
- return {
231
- 'p-chip p-component': true
232
- };
226
+ let classes = 'p-chip p-component';
227
+ if (this.styleClass) {
228
+ classes += ` ${this.styleClass}`;
229
+ }
230
+ return classes;
233
231
  }
234
232
  close(event) {
235
233
  this.visible = false;
@@ -245,16 +243,30 @@ export class Chip extends BaseComponent {
245
243
  }
246
244
  static ɵfac = /*@__PURE__*/ (() => { let ɵChip_BaseFactory; return function Chip_Factory(__ngFactoryType__) { return (ɵChip_BaseFactory || (ɵChip_BaseFactory = i0.ɵɵgetInheritedFactory(Chip)))(__ngFactoryType__ || Chip); }; })();
247
245
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Chip, selectors: [["p-chip"]], contentQueries: function Chip_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
248
- i0.ɵɵcontentQuery(dirIndex, _c0, 5);
246
+ i0.ɵɵcontentQuery(dirIndex, _c0, 4);
247
+ i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
249
248
  } if (rf & 2) {
250
249
  let _t;
251
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeicon = _t.first);
252
- } }, inputs: { label: "label", icon: "icon", image: "image", alt: "alt", style: "style", styleClass: "styleClass", removable: [2, "removable", "removable", booleanAttribute], removeIcon: "removeIcon", chipProps: "chipProps" }, outputs: { onRemove: "onRemove", onImageError: "onImageError" }, standalone: true, features: [i0.ɵɵProvidersFeature([ChipStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 1, vars: 1, consts: [["iconTemplate", ""], [3, "ngClass", "class", "ngStyle", 4, "ngIf"], [3, "ngClass", "ngStyle"], ["class", "p-chip-image", 3, "src", "alt", "error", 4, "ngIf", "ngIfElse"], ["class", "p-chip-label", 4, "ngIf"], [4, "ngIf"], [1, "p-chip-image", 3, "error", "src", "alt"], [3, "class", "ngClass", 4, "ngIf"], [3, "ngClass"], [1, "p-chip-label"], ["tabindex", "0", "class", "p-chip-remove-icon", "role", "button", 3, "click", "keydown", 4, "ngIf"], ["tabindex", "0", "role", "button", 3, "class", "ngClass", "click", "keydown", 4, "ngIf"], ["tabindex", "0", "role", "button", 3, "class", "click", "keydown", 4, "ngIf"], ["tabindex", "0", "role", "button", 3, "click", "keydown", "ngClass"], ["tabindex", "0", "role", "button", 3, "click", "keydown"], ["tabindex", "0", "role", "button", 1, "p-chip-remove-icon", 3, "click", "keydown"], [4, "ngTemplateOutlet"]], template: function Chip_Template(rf, ctx) { if (rf & 1) {
250
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeIconTemplate = _t.first);
251
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
252
+ } }, hostVars: 9, hostBindings: function Chip_HostBindings(rf, ctx) { if (rf & 2) {
253
+ i0.ɵɵattribute("data-pc-name", "chip")("aria-label", ctx.label)("data-pc-section", "root");
254
+ i0.ɵɵstyleMap(ctx.style);
255
+ i0.ɵɵclassMap(ctx.containerClass());
256
+ i0.ɵɵstyleProp("display", !ctx.visible && "none");
257
+ } }, inputs: { label: "label", icon: "icon", image: "image", alt: "alt", style: "style", styleClass: "styleClass", removable: [2, "removable", "removable", booleanAttribute], removeIcon: "removeIcon", chipProps: "chipProps" }, outputs: { onRemove: "onRemove", onImageError: "onImageError" }, standalone: true, features: [i0.ɵɵProvidersFeature([ChipStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 6, vars: 4, consts: [["iconTemplate", ""], ["class", "p-chip-image", 3, "src", "alt", "error", 4, "ngIf", "ngIfElse"], ["class", "p-chip-label", 4, "ngIf"], [4, "ngIf"], [1, "p-chip-image", 3, "error", "src", "alt"], [3, "class", "ngClass", 4, "ngIf"], [3, "ngClass"], [1, "p-chip-label"], ["tabindex", "0", "class", "p-chip-remove-icon", "role", "button", 3, "click", "keydown", 4, "ngIf"], ["tabindex", "0", "role", "button", 3, "class", "ngClass", "click", "keydown", 4, "ngIf"], ["tabindex", "0", "role", "button", 3, "class", "click", "keydown", 4, "ngIf"], ["tabindex", "0", "role", "button", 3, "click", "keydown", "ngClass"], ["tabindex", "0", "role", "button", 3, "click", "keydown"], ["tabindex", "0", "role", "button", 1, "p-chip-remove-icon", 3, "click", "keydown"], [4, "ngTemplateOutlet"]], template: function Chip_Template(rf, ctx) { if (rf & 1) {
253
258
  i0.ɵɵprojectionDef();
254
- i0.ɵɵtemplate(0, Chip_div_0_Template, 7, 11, "div", 1);
259
+ i0.ɵɵprojection(0);
260
+ i0.ɵɵtemplate(1, Chip_img_1_Template, 1, 2, "img", 1)(2, Chip_ng_template_2_Template, 1, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, Chip_div_4_Template, 2, 2, "div", 2)(5, Chip_ng_container_5_Template, 3, 2, "ng-container", 3);
255
261
  } if (rf & 2) {
256
- i0.ɵɵproperty("ngIf", ctx.visible);
257
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, TimesCircleIcon, SharedModule], encapsulation: 2, changeDetection: 0 });
262
+ const iconTemplate_r6 = i0.ɵɵreference(3);
263
+ i0.ɵɵadvance();
264
+ i0.ɵɵproperty("ngIf", ctx.image)("ngIfElse", iconTemplate_r6);
265
+ i0.ɵɵadvance(3);
266
+ i0.ɵɵproperty("ngIf", ctx.label);
267
+ i0.ɵɵadvance();
268
+ i0.ɵɵproperty("ngIf", ctx.removable);
269
+ } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, TimesCircleIcon, SharedModule], encapsulation: 2, changeDetection: 0 });
258
270
  }
259
271
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Chip, [{
260
272
  type: Component,
@@ -263,35 +275,41 @@ export class Chip extends BaseComponent {
263
275
  standalone: true,
264
276
  imports: [CommonModule, TimesCircleIcon, SharedModule],
265
277
  template: `
266
- <div [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style" *ngIf="visible" [attr.data-pc-name]="'chip'" [attr.aria-label]="label" [attr.data-pc-section]="'root'">
267
- <ng-content></ng-content>
268
- <img class="p-chip-image" [src]="image" *ngIf="image; else iconTemplate" (error)="imageError($event)" [alt]="alt" />
269
- <ng-template #iconTemplate><span *ngIf="icon" [class]="icon" [ngClass]="'p-chip-icon'" [attr.data-pc-section]="'icon'"></span></ng-template>
270
- <div class="p-chip-label" *ngIf="label" [attr.data-pc-section]="'label'">{{ label }}</div>
271
- <ng-container *ngIf="removable">
272
- <ng-container *ngIf="!removeicon">
273
- <span
274
- tabindex="0"
275
- *ngIf="removeIcon"
276
- [class]="removeIcon"
277
- [ngClass]="'p-chip-remove-icon'"
278
- [attr.data-pc-section]="'removeicon'"
279
- (click)="close($event)"
280
- (keydown)="onKeydown($event)"
281
- [attr.aria-label]="removeAriaLabel"
282
- role="button"
283
- ></span>
284
- <TimesCircleIcon tabindex="0" *ngIf="!removeIcon" [class]="'p-chip-remove-icon'" [attr.data-pc-section]="'removeicon'" (click)="close($event)" (keydown)="onKeydown($event)" [attr.aria-label]="removeAriaLabel" role="button" />
285
- </ng-container>
286
- <span *ngIf="removeicon" tabindex="0" [attr.data-pc-section]="'removeicon'" class="p-chip-remove-icon" (click)="close($event)" (keydown)="onKeydown($event)" [attr.aria-label]="removeAriaLabel" role="button">
287
- <ng-template *ngTemplateOutlet="removeicon"></ng-template>
288
- </span>
278
+ <ng-content></ng-content>
279
+ <img class="p-chip-image" [src]="image" *ngIf="image; else iconTemplate" (error)="imageError($event)" [alt]="alt" />
280
+ <ng-template #iconTemplate><span *ngIf="icon" [class]="icon" [ngClass]="'p-chip-icon'" [attr.data-pc-section]="'icon'"></span></ng-template>
281
+ <div class="p-chip-label" *ngIf="label" [attr.data-pc-section]="'label'">{{ label }}</div>
282
+ <ng-container *ngIf="removable">
283
+ <ng-container *ngIf="!removeIconTemplate && !_removeIconTemplate">
284
+ <span
285
+ tabindex="0"
286
+ *ngIf="removeIcon"
287
+ [class]="removeIcon"
288
+ [ngClass]="'p-chip-remove-icon'"
289
+ [attr.data-pc-section]="'removeicon'"
290
+ (click)="close($event)"
291
+ (keydown)="onKeydown($event)"
292
+ [attr.aria-label]="removeAriaLabel"
293
+ role="button"
294
+ ></span>
295
+ <TimesCircleIcon tabindex="0" *ngIf="!removeIcon" [class]="'p-chip-remove-icon'" [attr.data-pc-section]="'removeicon'" (click)="close($event)" (keydown)="onKeydown($event)" [attr.aria-label]="removeAriaLabel" role="button" />
289
296
  </ng-container>
290
- </div>
297
+ <span *ngIf="removeIconTemplate || _removeIconTemplate" tabindex="0" [attr.data-pc-section]="'removeicon'" class="p-chip-remove-icon" (click)="close($event)" (keydown)="onKeydown($event)" [attr.aria-label]="removeAriaLabel" role="button">
298
+ <ng-template *ngTemplateOutlet="removeIconTemplate || _removeIconTemplate"></ng-template>
299
+ </span>
300
+ </ng-container>
291
301
  `,
292
302
  changeDetection: ChangeDetectionStrategy.OnPush,
293
303
  encapsulation: ViewEncapsulation.None,
294
- providers: [ChipStyle]
304
+ providers: [ChipStyle],
305
+ host: {
306
+ '[class]': 'containerClass()',
307
+ '[style]': 'style',
308
+ '[style.display]': '!visible && "none"',
309
+ '[attr.data-pc-name]': "'chip'",
310
+ '[attr.aria-label]': 'label',
311
+ '[attr.data-pc-section]': "'root'"
312
+ }
295
313
  }]
296
314
  }], null, { label: [{
297
315
  type: Input
@@ -316,9 +334,12 @@ export class Chip extends BaseComponent {
316
334
  type: Output
317
335
  }], chipProps: [{
318
336
  type: Input
319
- }], removeicon: [{
337
+ }], removeIconTemplate: [{
320
338
  type: ContentChild,
321
- args: ['removeicon']
339
+ args: ['removeicon', { descendants: false }]
340
+ }], templates: [{
341
+ type: ContentChildren,
342
+ args: [PrimeTemplate]
322
343
  }] }); })();
323
344
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Chip, { className: "Chip" }); })();
324
345
  export class ChipModule {
@@ -334,4 +355,4 @@ export class ChipModule {
334
355
  }]
335
356
  }], null, null); })();
336
357
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ChipModule, { imports: [Chip, SharedModule], exports: [Chip, SharedModule] }); })();
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaGlwL2NoaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQThCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pNLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztJQWFsQyw4QkFBb0g7SUFBM0MsMEtBQVMseUJBQWtCLEtBQUM7SUFBckcsaUJBQW9IOzs7SUFBZCxBQUE1RSxvREFBYSxtQkFBMEU7OztJQUN0RiwwQkFBbUc7OztJQUFoRiwwQkFBYztJQUFDLHVDQUF5Qjs7OztJQUEzRCwyRUFBNEY7OztJQUFyRixrQ0FBVTs7O0lBQzVDLDhCQUF5RTtJQUFBLFlBQVc7SUFBQSxpQkFBTTs7OztJQUFqQixjQUFXO0lBQVgsa0NBQVc7Ozs7SUFHNUUsZ0NBVUM7SUFIRyxBQURBLDBNQUFTLG9CQUFhLEtBQUMsaU1BQ1osd0JBQWlCLEtBQUM7SUFHaEMsaUJBQU87OztJQVBKLGdDQUFvQjtJQUNwQiw4Q0FBZ0M7Ozs7O0lBT3BDLDJDQUFpTztJQUFsRixBQUF4QixnT0FBUyxvQkFBYSxLQUFDLHVOQUFZLHdCQUFpQixLQUFDO0lBQTVLLGlCQUFpTzs7O0lBQS9LLG1DQUE4Qjs7OztJQVpwRiw2QkFBa0M7SUFZOUIsQUFYQSw0RkFVQyxxR0FDZ087Ozs7SUFUNU4sY0FBZ0I7SUFBaEIsd0NBQWdCO0lBU1UsY0FBaUI7SUFBakIseUNBQWlCOzs7O0lBR2hELGdHQUE0Qzs7OztJQURoRCxnQ0FBK007SUFBaEYsQUFBeEIsMkxBQVMsb0JBQWEsS0FBQyxrTEFBWSx3QkFBaUIsS0FBQztJQUN4Siw2RUFBNEM7SUFDaEQsaUJBQU87Ozs7SUFEVyxjQUE0QjtJQUE1QixvREFBNEI7OztJQWhCbEQsNkJBQWdDO0lBZTVCLEFBZEEsNEZBQWtDLGdFQWM2Szs7OztJQWRoTSxjQUFpQjtJQUFqQix5Q0FBaUI7SUFjekIsY0FBZ0I7SUFBaEIsd0NBQWdCOzs7SUFwQi9CLDhCQUFnTDtJQUM1SyxrQkFBeUI7SUFJekIsQUFEQSxBQURBLEFBREEsMkRBQW9ILCtGQUN6Riw4Q0FDOEMsZ0VBQ3pDO0lBbUJwQyxpQkFBTTs7OztJQXhCNEIsZ0NBQW9CO0lBQUMsQUFBbEQsaURBQTRCLHlCQUF1Qzs7SUFFM0IsZUFBYTtJQUFBLEFBQWIsbUNBQWEsNkJBQWlCO0lBRTVDLGVBQVc7SUFBWCxtQ0FBVztJQUN2QixjQUFlO0lBQWYsdUNBQWU7O0FBZDFDOzs7R0FHRztBQW9DSCxNQUFNLE9BQU8sSUFBSyxTQUFRLGFBQWE7SUFDbkM7OztPQUdHO0lBQ00sS0FBSyxDQUFxQjtJQUNuQzs7O09BR0c7SUFDTSxJQUFJLENBQXFCO0lBQ2xDOzs7T0FHRztJQUNNLEtBQUssQ0FBcUI7SUFDbkM7OztPQUdHO0lBQ00sR0FBRyxDQUFxQjtJQUNqQzs7O09BR0c7SUFDTSxLQUFLLENBQThDO0lBQzVEOzs7T0FHRztJQUNNLFVBQVUsQ0FBcUI7SUFDeEM7OztPQUdHO0lBQ3FDLFNBQVMsR0FBd0IsS0FBSyxDQUFDO0lBQy9FOzs7T0FHRztJQUNNLFVBQVUsQ0FBcUI7SUFDeEM7Ozs7T0FJRztJQUNPLFFBQVEsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUM5RTs7OztPQUlHO0lBQ08sWUFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO0lBRXhFLE9BQU8sR0FBWSxJQUFJLENBQUM7SUFFeEIsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNEOzs7T0FHRztJQUNILElBQWEsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEdBQTBCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBRXRCLElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLFlBQVk7WUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBWTtJQUV0QixlQUFlLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRVIsVUFBVSxDQUErQjtJQUVyRSxXQUFXLENBQUMsYUFBNEI7UUFDcEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqQyxJQUFJLGFBQWEsQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUVqRCxJQUFJLFlBQVksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNwQyxDQUFDO1lBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxJQUFJLFlBQVksQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDcEMsQ0FBQztZQUNELElBQUksWUFBWSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO1lBQzlDLENBQUM7WUFDRCxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztZQUM1QyxDQUFDO1lBQ0QsSUFBSSxZQUFZLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7WUFDOUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU87WUFDSCxvQkFBb0IsRUFBRSxJQUFJO1NBQzdCLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWlCO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSztRQUNYLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs2TEFwSVEsSUFBSSx5QkFBSixJQUFJOzZEQUFKLElBQUk7Ozs7O29LQW1DTyxnQkFBZ0IsMktBckN6QixDQUFDLFNBQVMsQ0FBQzs7WUE1QmxCLHNEQUFnTDs7WUFBdEcsa0NBQWE7NEJBRmpGLFlBQVksd0RBQUUsZUFBZSxFQUFFLFlBQVk7O2lGQWdDNUMsSUFBSTtjQW5DaEIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUM7Z0JBQ3RELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EwQlQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDekI7Z0JBTVksS0FBSztrQkFBYixLQUFLO1lBS0csSUFBSTtrQkFBWixLQUFLO1lBS0csS0FBSztrQkFBYixLQUFLO1lBS0csR0FBRztrQkFBWCxLQUFLO1lBS0csS0FBSztrQkFBYixLQUFLO1lBS0csVUFBVTtrQkFBbEIsS0FBSztZQUtrQyxTQUFTO2tCQUFoRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBSzdCLFVBQVU7a0JBQWxCLEtBQUs7WUFNSSxRQUFRO2tCQUFqQixNQUFNO1lBTUcsWUFBWTtrQkFBckIsTUFBTTtZQVdNLFNBQVM7a0JBQXJCLEtBQUs7WUFnQnNCLFVBQVU7a0JBQXJDLFlBQVk7bUJBQUMsWUFBWTs7a0ZBL0VqQixJQUFJO0FBMklqQixNQUFNLE9BQU8sVUFBVTtvR0FBVixVQUFVOzREQUFWLFVBQVU7Z0VBSFQsSUFBSSxFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFbkIsVUFBVTtjQUp0QixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQzthQUNoQzs7d0ZBQ1ksVUFBVSxjQTNJVixJQUFJLEVBd0lHLFlBQVksYUF4SW5CLElBQUksRUF5SUcsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgTmdNb2R1bGUsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUsIFRyYW5zbGF0aW9uS2V5cyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgVGltZXNDaXJjbGVJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBDaGlwUHJvcHMgfSBmcm9tICcuL2NoaXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoaXBTdHlsZSB9IGZyb20gJy4vc3R5bGUvY2hpcHN0eWxlJztcblxuLyoqXG4gKiBDaGlwIHJlcHJlc2VudHMgcGVvcGxlIHVzaW5nIGljb25zLCBsYWJlbHMgYW5kIGltYWdlcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1jaGlwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRpbWVzQ2lyY2xlSWNvbiwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzKClcIiBbY2xhc3NdPVwic3R5bGVDbGFzc1wiIFtuZ1N0eWxlXT1cInN0eWxlXCIgKm5nSWY9XCJ2aXNpYmxlXCIgW2F0dHIuZGF0YS1wYy1uYW1lXT1cIidjaGlwJ1wiIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwicC1jaGlwLWltYWdlXCIgW3NyY109XCJpbWFnZVwiICpuZ0lmPVwiaW1hZ2U7IGVsc2UgaWNvblRlbXBsYXRlXCIgKGVycm9yKT1cImltYWdlRXJyb3IoJGV2ZW50KVwiIFthbHRdPVwiYWx0XCIgLz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlPjxzcGFuICpuZ0lmPVwiaWNvblwiIFtjbGFzc109XCJpY29uXCIgW25nQ2xhc3NdPVwiJ3AtY2hpcC1pY29uJ1wiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaWNvbidcIj48L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNoaXAtbGFiZWxcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj57eyBsYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbW92YWJsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVtb3ZlaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmVtb3ZlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwicmVtb3ZlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIncC1jaGlwLXJlbW92ZS1pY29uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3JlbW92ZWljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8VGltZXNDaXJjbGVJY29uIHRhYmluZGV4PVwiMFwiICpuZ0lmPVwiIXJlbW92ZUljb25cIiBbY2xhc3NdPVwiJ3AtY2hpcC1yZW1vdmUtaWNvbidcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3JlbW92ZWljb24nXCIgKGNsaWNrKT1cImNsb3NlKCRldmVudClcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlQXJpYUxhYmVsXCIgcm9sZT1cImJ1dHRvblwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyZW1vdmVpY29uXCIgdGFiaW5kZXg9XCIwXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyZW1vdmVpY29uJ1wiIGNsYXNzPVwicC1jaGlwLXJlbW92ZS1pY29uXCIgKGNsaWNrKT1cImNsb3NlKCRldmVudClcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlQXJpYUxhYmVsXCIgcm9sZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW1vdmVpY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW0NoaXBTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgQ2hpcCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHRleHQgdG8gZGlzcGxheS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGljb24gdG8gZGlzcGxheS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgaW1hZ2UgdG8gZGlzcGxheS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbWFnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFsdCBhdHRyaWJ1dGUgb2YgdGhlIGltYWdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFsdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IGEgcmVtb3ZlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlbW92YWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEljb24gb2YgdGhlIHJlbW92ZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHJlbW92ZUljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBhIGNoaXAgaXMgcmVtb3ZlZC5cbiAgICAgKiBAcGFyYW0ge01vdXNlRXZlbnR9IGV2ZW50IC0gTW91c2UgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgaWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGxvYWRpbmcgYW4gaW1hZ2UgZmlsZS5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uSW1hZ2VFcnJvcjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGdldCByZW1vdmVBcmlhTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihUcmFuc2xhdGlvbktleXMuQVJJQSlbJ3JlbW92ZUxhYmVsJ107XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gcGFzcyBhbGwgcHJvcGVydGllcyBvZiB0aGUgY2hpcFByb3BzIHRvIHRoZSBDaGlwIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgY2hpcFByb3BzKCk6IENoaXBQcm9wcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGlwUHJvcHM7XG4gICAgfVxuICAgIHNldCBjaGlwUHJvcHModmFsOiBDaGlwUHJvcHMgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fY2hpcFByb3BzID0gdmFsO1xuXG4gICAgICAgIGlmICh2YWwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsKS5mb3JFYWNoKChbaywgdl0pID0+IHRoaXNbYF8ke2t9YF0gIT09IHYgJiYgKHRoaXNbYF8ke2t9YF0gPSB2KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfY2hpcFByb3BzOiBDaGlwUHJvcHM7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQ2hpcFN0eWxlKTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ3JlbW92ZWljb24nKSByZW1vdmVpY29uOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzKTtcbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMuY2hpcFByb3BzICYmIHNpbXBsZUNoYW5nZXMuY2hpcFByb3BzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgeyBjdXJyZW50VmFsdWUgfSA9IHNpbXBsZUNoYW5nZXMuY2hpcFByb3BzO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlLmxhYmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsID0gY3VycmVudFZhbHVlLmxhYmVsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5pY29uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmljb24gPSBjdXJyZW50VmFsdWUuaWNvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUuaW1hZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBjdXJyZW50VmFsdWUuaW1hZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlLmFsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbHQgPSBjdXJyZW50VmFsdWUuYWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5zdHlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZSA9IGN1cnJlbnRWYWx1ZS5zdHlsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUuc3R5bGVDbGFzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUNsYXNzID0gY3VycmVudFZhbHVlLnN0eWxlQ2xhc3M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlLnJlbW92YWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmFibGUgPSBjdXJyZW50VmFsdWUucmVtb3ZhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5yZW1vdmVJY29uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUljb24gPSBjdXJyZW50VmFsdWUucmVtb3ZlSWNvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3AtY2hpcCBwLWNvbXBvbmVudCc6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjbG9zZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltYWdlRXJyb3IoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMub25JbWFnZUVycm9yLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ2hpcCwgU2hhcmVkTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQ2hpcCwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBDaGlwTW9kdWxlIHt9XG4iXX0=
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jaGlwL2NoaXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBeUMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL08sT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztJQVl0Qyw4QkFBb0g7SUFBM0MsbUtBQVMseUJBQWtCLEtBQUM7SUFBckcsaUJBQW9IOzs7SUFBZCxBQUE1RSxvREFBYSxtQkFBMEU7OztJQUN0RiwwQkFBbUc7OztJQUFoRiwwQkFBYztJQUFDLHVDQUF5Qjs7OztJQUEzRCxxRUFBNEY7OztJQUFyRixrQ0FBVTs7O0lBQzVDLDhCQUF5RTtJQUFBLFlBQVc7SUFBQSxpQkFBTTs7OztJQUFqQixjQUFXO0lBQVgsa0NBQVc7Ozs7SUFHNUUsZ0NBVUM7SUFIRyxBQURBLG9NQUFTLG9CQUFhLEtBQUMsMkxBQ1osd0JBQWlCLEtBQUM7SUFHaEMsaUJBQU87OztJQVBKLGdDQUFvQjtJQUNwQiw4Q0FBZ0M7Ozs7O0lBT3BDLDJDQUFpTztJQUFsRixBQUF4QiwwTkFBUyxvQkFBYSxLQUFDLGlOQUFZLHdCQUFpQixLQUFDO0lBQTVLLGlCQUFpTzs7O0lBQS9LLG1DQUE4Qjs7OztJQVpw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SSxFQUFFLFlBQVksQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQzthQUNoQzs7d0ZBQ1ksVUFBVSxjQWpLVixJQUFJLEVBOEpHLFlBQVksYUE5Sm5CLElBQUksRUErSkcsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBOZ01vZHVsZSwgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlLCBUcmFuc2xhdGlvbktleXMgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVzQ2lyY2xlSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMnO1xuaW1wb3J0IHsgQ2hpcFByb3BzIH0gZnJvbSAnLi9jaGlwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGlwU3R5bGUgfSBmcm9tICcuL3N0eWxlL2NoaXBzdHlsZSc7XG5cbi8qKlxuICogQ2hpcCByZXByZXNlbnRzIHBlb3BsZSB1c2luZyBpY29ucywgbGFiZWxzIGFuZCBpbWFnZXMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtY2hpcCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUaW1lc0NpcmNsZUljb24sIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8aW1nIGNsYXNzPVwicC1jaGlwLWltYWdlXCIgW3NyY109XCJpbWFnZVwiICpuZ0lmPVwiaW1hZ2U7IGVsc2UgaWNvblRlbXBsYXRlXCIgKGVycm9yKT1cImltYWdlRXJyb3IoJGV2ZW50KVwiIFthbHRdPVwiYWx0XCIgLz5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGU+PHNwYW4gKm5nSWY9XCJpY29uXCIgW2NsYXNzXT1cImljb25cIiBbbmdDbGFzc109XCIncC1jaGlwLWljb24nXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidpY29uJ1wiPjwvc3Bhbj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1jaGlwLWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbGFiZWwnXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbW92YWJsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZW1vdmVJY29uVGVtcGxhdGUgJiYgIV9yZW1vdmVJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJlbW92ZUljb25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwicmVtb3ZlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidwLWNoaXAtcmVtb3ZlLWljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyZW1vdmVpY29uJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlbW92ZUFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgPFRpbWVzQ2lyY2xlSWNvbiB0YWJpbmRleD1cIjBcIiAqbmdJZj1cIiFyZW1vdmVJY29uXCIgW2NsYXNzXT1cIidwLWNoaXAtcmVtb3ZlLWljb24nXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyZW1vdmVpY29uJ1wiIChjbGljayk9XCJjbG9zZSgkZXZlbnQpXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInJlbW92ZUFyaWFMYWJlbFwiIHJvbGU9XCJidXR0b25cIiAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlbW92ZUljb25UZW1wbGF0ZSB8fCBfcmVtb3ZlSWNvblRlbXBsYXRlXCIgdGFiaW5kZXg9XCIwXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyZW1vdmVpY29uJ1wiIGNsYXNzPVwicC1jaGlwLXJlbW92ZS1pY29uXCIgKGNsaWNrKT1cImNsb3NlKCRldmVudClcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlQXJpYUxhYmVsXCIgcm9sZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInJlbW92ZUljb25UZW1wbGF0ZSB8fCBfcmVtb3ZlSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW0NoaXBTdHlsZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzXSc6ICdjb250YWluZXJDbGFzcygpJyxcbiAgICAgICAgJ1tzdHlsZV0nOiAnc3R5bGUnLFxuICAgICAgICAnW3N0eWxlLmRpc3BsYXldJzogJyF2aXNpYmxlICYmIFwibm9uZVwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiBcIidjaGlwJ1wiLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbGFiZWwnLFxuICAgICAgICAnW2F0dHIuZGF0YS1wYy1zZWN0aW9uXSc6IFwiJ3Jvb3QnXCJcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENoaXAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgdGV4dCB0byBkaXNwbGF5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgaWNvbiB0byBkaXNwbGF5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBpbWFnZSB0byBkaXNwbGF5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGltYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQWx0IGF0dHJpYnV0ZSBvZiB0aGUgaW1hZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYWx0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSByZW1vdmUgaWNvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVtb3ZhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgcmVtb3ZlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcmVtb3ZlSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgY2hpcCBpcyByZW1vdmVkLlxuICAgICAqIEBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnQgLSBNb3VzZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCBpZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgbG9hZGluZyBhbiBpbWFnZSBmaWxlLlxuICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gQnJvd3NlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25JbWFnZUVycm9yOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIHZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgZ2V0IHJlbW92ZUFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5BUklBKVsncmVtb3ZlTGFiZWwnXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBwYXNzIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBjaGlwUHJvcHMgdG8gdGhlIENoaXAgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBjaGlwUHJvcHMoKTogQ2hpcFByb3BzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoaXBQcm9wcztcbiAgICB9XG4gICAgc2V0IGNoaXBQcm9wcyh2YWw6IENoaXBQcm9wcyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jaGlwUHJvcHMgPSB2YWw7XG5cbiAgICAgICAgaWYgKHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh2YWwpLmZvckVhY2goKFtrLCB2XSkgPT4gdGhpc1tgXyR7a31gXSAhPT0gdiAmJiAodGhpc1tgXyR7a31gXSA9IHYpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9jaGlwUHJvcHM6IENoaXBQcm9wcztcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChDaGlwU3R5bGUpO1xuXG4gICAgQENvbnRlbnRDaGlsZCgncmVtb3ZlaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIHJlbW92ZUljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfcmVtb3ZlSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICAodGhpcy50ZW1wbGF0ZXMgYXMgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAncmVtb3ZlaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlcyk7XG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2VzLmNoaXBQcm9wcyAmJiBzaW1wbGVDaGFuZ2VzLmNoaXBQcm9wcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFZhbHVlIH0gPSBzaW1wbGVDaGFuZ2VzLmNoaXBQcm9wcztcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sYWJlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbCA9IGN1cnJlbnRWYWx1ZS5sYWJlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUuaWNvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uID0gY3VycmVudFZhbHVlLmljb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlLmltYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlID0gY3VycmVudFZhbHVlLmltYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5hbHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWx0ID0gY3VycmVudFZhbHVlLmFsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUuc3R5bGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUgPSBjdXJyZW50VmFsdWUuc3R5bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlLnN0eWxlQ2xhc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVDbGFzcyA9IGN1cnJlbnRWYWx1ZS5zdHlsZUNsYXNzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5yZW1vdmFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZhYmxlID0gY3VycmVudFZhbHVlLnJlbW92YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUucmVtb3ZlSWNvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVJY29uID0gY3VycmVudFZhbHVlLnJlbW92ZUljb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb250YWluZXJDbGFzcygpIHtcbiAgICAgICAgbGV0IGNsYXNzZXMgPSAncC1jaGlwIHAtY29tcG9uZW50JztcblxuICAgICAgICBpZiAodGhpcy5zdHlsZUNsYXNzKSB7XG4gICAgICAgICAgICBjbGFzc2VzICs9IGAgJHt0aGlzLnN0eWxlQ2xhc3N9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uUmVtb3ZlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bihldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkltYWdlRXJyb3IuZW1pdChldmVudCk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDaGlwLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtDaGlwLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIENoaXBNb2R1bGUge31cbiJdfQ==