primeng 18.0.0 → 18.0.2-patch.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 (361) 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/chips/chips.d.ts +237 -0
  15. package/chips/chips.interface.d.ts +66 -0
  16. package/chips/index.d.ts +5 -0
  17. package/chips/public_api.d.ts +2 -0
  18. package/chips/style/chipsstyle.d.ts +69 -0
  19. package/confirmdialog/confirmdialog.d.ts +14 -5
  20. package/confirmpopup/confirmpopup.d.ts +11 -5
  21. package/contextmenu/contextmenu.d.ts +10 -6
  22. package/datepicker/datepicker.d.ts +113 -33
  23. package/dialog/dialog.d.ts +15 -4
  24. package/divider/divider.d.ts +1 -1
  25. package/dock/dock.d.ts +7 -4
  26. package/drawer/drawer.d.ts +18 -10
  27. package/dropdown/dropdown.d.ts +4 -3
  28. package/dynamicdialog/dynamicdialog.d.ts +1 -0
  29. package/editor/editor.d.ts +7 -3
  30. package/esm2022/accordion/accordion.mjs +58 -43
  31. package/esm2022/autocomplete/autocomplete.mjs +153 -92
  32. package/esm2022/badge/badge.mjs +39 -32
  33. package/esm2022/basecomponent/basecomponent.mjs +3 -26
  34. package/esm2022/blockui/blockui.mjs +38 -18
  35. package/esm2022/breadcrumb/breadcrumb.mjs +50 -32
  36. package/esm2022/button/button.mjs +55 -28
  37. package/esm2022/calendar/calendar.mjs +207 -143
  38. package/esm2022/card/card.mjs +96 -46
  39. package/esm2022/carousel/carousel.mjs +74 -42
  40. package/esm2022/cascadeselect/cascadeselect.mjs +100 -62
  41. package/esm2022/checkbox/checkbox.mjs +32 -14
  42. package/esm2022/chip/chip.mjs +117 -96
  43. package/esm2022/chips/chips.interface.mjs +2 -0
  44. package/esm2022/chips/chips.mjs +827 -0
  45. package/esm2022/chips/primeng-chips.mjs +5 -0
  46. package/esm2022/chips/public_api.mjs +3 -0
  47. package/esm2022/chips/style/chipsstyle.mjs +175 -0
  48. package/esm2022/confirmdialog/confirmdialog.mjs +96 -57
  49. package/esm2022/confirmpopup/confirmpopup.mjs +57 -29
  50. package/esm2022/contextmenu/contextmenu.mjs +51 -20
  51. package/esm2022/datepicker/datepicker.mjs +198 -156
  52. package/esm2022/dialog/dialog.mjs +98 -52
  53. package/esm2022/divider/divider.mjs +2 -4
  54. package/esm2022/dock/dock.mjs +31 -13
  55. package/esm2022/drawer/drawer.mjs +112 -70
  56. package/esm2022/dropdown/dropdown.mjs +13 -5
  57. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +13 -13
  58. package/esm2022/dynamicdialog/dynamicdialog.mjs +9 -5
  59. package/esm2022/editor/editor.mjs +27 -11
  60. package/esm2022/fieldset/fieldset.mjs +61 -33
  61. package/esm2022/fileupload/fileupload.mjs +139 -89
  62. package/esm2022/galleria/galleria.mjs +18 -9
  63. package/esm2022/image/image.mjs +113 -66
  64. package/esm2022/imagecompare/imagecompare.mjs +31 -11
  65. package/esm2022/inplace/inplace.mjs +49 -24
  66. package/esm2022/inputmask/inputmask.mjs +30 -14
  67. package/esm2022/inputmask/style/inputmaskstyle.mjs +2 -2
  68. package/esm2022/inputnumber/inputnumber.mjs +55 -47
  69. package/esm2022/inputotp/inputotp.mjs +30 -11
  70. package/esm2022/listbox/listbox.mjs +137 -78
  71. package/esm2022/megamenu/megamenu.mjs +105 -59
  72. package/esm2022/menu/menu.mjs +26 -26
  73. package/esm2022/menubar/menubar.mjs +70 -35
  74. package/esm2022/message/message.mjs +50 -26
  75. package/esm2022/messages/messages.mjs +13 -4
  76. package/esm2022/metergroup/metergroup.mjs +63 -31
  77. package/esm2022/multiselect/multiselect.mjs +247 -156
  78. package/esm2022/orderlist/orderlist.mjs +125 -70
  79. package/esm2022/organizationchart/organizationchart.mjs +30 -14
  80. package/esm2022/overlay/overlay.mjs +27 -7
  81. package/esm2022/overlaypanel/overlaypanel.mjs +33 -10
  82. package/esm2022/paginator/paginator.mjs +92 -60
  83. package/esm2022/panel/panel.mjs +160 -100
  84. package/esm2022/panelmenu/panelmenu.mjs +55 -32
  85. package/esm2022/password/password.mjs +88 -49
  86. package/esm2022/picklist/picklist.mjs +363 -259
  87. package/esm2022/popover/popover.mjs +29 -12
  88. package/esm2022/progressbar/progressbar.mjs +27 -9
  89. package/esm2022/rating/rating.mjs +46 -22
  90. package/esm2022/scroller/scroller.mjs +47 -37
  91. package/esm2022/scrollpanel/scrollpanel.mjs +28 -9
  92. package/esm2022/scrolltop/scrolltop.mjs +17 -10
  93. package/esm2022/select/select.mjs +198 -119
  94. package/esm2022/selectbutton/selectbutton.mjs +26 -11
  95. package/esm2022/sidebar/sidebar.mjs +82 -60
  96. package/esm2022/speeddial/speeddial.mjs +54 -29
  97. package/esm2022/splitbutton/splitbutton.mjs +41 -18
  98. package/esm2022/splitter/splitter.mjs +5 -5
  99. package/esm2022/stepper/stepper.mjs +27 -13
  100. package/esm2022/table/table.mjs +107 -96
  101. package/esm2022/tabmenu/tabmenu.mjs +54 -27
  102. package/esm2022/tabs/tablist.mjs +28 -20
  103. package/esm2022/tabview/tabview.mjs +106 -54
  104. package/esm2022/tag/tag.mjs +68 -44
  105. package/esm2022/tieredmenu/tieredmenu.mjs +44 -21
  106. package/esm2022/timeline/timeline.mjs +41 -17
  107. package/esm2022/toast/toast.mjs +31 -9
  108. package/esm2022/togglebutton/togglebutton.mjs +45 -30
  109. package/esm2022/toggleswitch/toggleswitch.mjs +28 -9
  110. package/esm2022/toolbar/toolbar.mjs +47 -21
  111. package/esm2022/tooltip/tooltip.mjs +35 -70
  112. package/esm2022/tree/tree.mjs +114 -97
  113. package/esm2022/treeselect/treeselect.mjs +156 -89
  114. package/esm2022/treetable/treetable.mjs +31 -12
  115. package/esm2022/usestyle/usestyle.mjs +2 -2
  116. package/fesm2022/primeng-accordion.mjs +59 -44
  117. package/fesm2022/primeng-accordion.mjs.map +1 -1
  118. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  119. package/fesm2022/primeng-api.mjs +1 -1
  120. package/fesm2022/primeng-autocomplete.mjs +152 -91
  121. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  122. package/fesm2022/primeng-avatar.mjs +1 -1
  123. package/fesm2022/primeng-avatargroup.mjs +1 -1
  124. package/fesm2022/primeng-badge.mjs +40 -33
  125. package/fesm2022/primeng-badge.mjs.map +1 -1
  126. package/fesm2022/primeng-basecomponent.mjs +2 -25
  127. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  128. package/fesm2022/primeng-blockui.mjs +37 -17
  129. package/fesm2022/primeng-blockui.mjs.map +1 -1
  130. package/fesm2022/primeng-breadcrumb.mjs +49 -31
  131. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  132. package/fesm2022/primeng-button.mjs +54 -27
  133. package/fesm2022/primeng-button.mjs.map +1 -1
  134. package/fesm2022/primeng-buttongroup.mjs +1 -1
  135. package/fesm2022/primeng-calendar.mjs +207 -143
  136. package/fesm2022/primeng-calendar.mjs.map +1 -1
  137. package/fesm2022/primeng-card.mjs +95 -45
  138. package/fesm2022/primeng-card.mjs.map +1 -1
  139. package/fesm2022/primeng-carousel.mjs +73 -41
  140. package/fesm2022/primeng-carousel.mjs.map +1 -1
  141. package/fesm2022/primeng-cascadeselect.mjs +99 -61
  142. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  143. package/fesm2022/primeng-chart.mjs +1 -1
  144. package/fesm2022/primeng-checkbox.mjs +31 -13
  145. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  146. package/fesm2022/primeng-chip.mjs +116 -95
  147. package/fesm2022/primeng-chip.mjs.map +1 -1
  148. package/fesm2022/primeng-chips.mjs +1006 -0
  149. package/fesm2022/primeng-chips.mjs.map +1 -0
  150. package/fesm2022/primeng-colorpicker.mjs +1 -1
  151. package/fesm2022/primeng-confirmdialog.mjs +95 -56
  152. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  153. package/fesm2022/primeng-confirmpopup.mjs +57 -29
  154. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  155. package/fesm2022/primeng-contextmenu.mjs +50 -19
  156. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  157. package/fesm2022/primeng-dataview.mjs +2 -2
  158. package/fesm2022/primeng-datepicker.mjs +198 -156
  159. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  160. package/fesm2022/primeng-defer.mjs +1 -1
  161. package/fesm2022/primeng-dialog.mjs +97 -51
  162. package/fesm2022/primeng-dialog.mjs.map +1 -1
  163. package/fesm2022/primeng-divider.mjs +2 -4
  164. package/fesm2022/primeng-divider.mjs.map +1 -1
  165. package/fesm2022/primeng-dock.mjs +30 -12
  166. package/fesm2022/primeng-dock.mjs.map +1 -1
  167. package/fesm2022/primeng-dragdrop.mjs +1 -1
  168. package/fesm2022/primeng-drawer.mjs +111 -69
  169. package/fesm2022/primeng-drawer.mjs.map +1 -1
  170. package/fesm2022/primeng-dropdown.mjs +12 -4
  171. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  172. package/fesm2022/primeng-dynamicdialog.mjs +21 -17
  173. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  174. package/fesm2022/primeng-editor.mjs +26 -10
  175. package/fesm2022/primeng-editor.mjs.map +1 -1
  176. package/fesm2022/primeng-fieldset.mjs +61 -33
  177. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  178. package/fesm2022/primeng-fileupload.mjs +138 -88
  179. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  180. package/fesm2022/primeng-floatlabel.mjs +1 -1
  181. package/fesm2022/primeng-fluid.mjs +1 -1
  182. package/fesm2022/primeng-galleria.mjs +17 -8
  183. package/fesm2022/primeng-galleria.mjs.map +1 -1
  184. package/fesm2022/primeng-iconfield.mjs +1 -1
  185. package/fesm2022/primeng-icons-baseicon.mjs +1 -1
  186. package/fesm2022/primeng-iftalabel.mjs +1 -1
  187. package/fesm2022/primeng-image.mjs +112 -65
  188. package/fesm2022/primeng-image.mjs.map +1 -1
  189. package/fesm2022/primeng-imagecompare.mjs +30 -10
  190. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  191. package/fesm2022/primeng-inplace.mjs +48 -23
  192. package/fesm2022/primeng-inplace.mjs.map +1 -1
  193. package/fesm2022/primeng-inputgroupaddon.mjs +1 -1
  194. package/fesm2022/primeng-inputicon.mjs +1 -1
  195. package/fesm2022/primeng-inputmask.mjs +30 -14
  196. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  197. package/fesm2022/primeng-inputnumber.mjs +54 -46
  198. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  199. package/fesm2022/primeng-inputotp.mjs +29 -10
  200. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  201. package/fesm2022/primeng-inputswitch.mjs +1 -1
  202. package/fesm2022/primeng-inputtext.mjs +1 -1
  203. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  204. package/fesm2022/primeng-keyfilter.mjs +1 -1
  205. package/fesm2022/primeng-knob.mjs +1 -1
  206. package/fesm2022/primeng-listbox.mjs +136 -77
  207. package/fesm2022/primeng-listbox.mjs.map +1 -1
  208. package/fesm2022/primeng-megamenu.mjs +104 -58
  209. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  210. package/fesm2022/primeng-menu.mjs +26 -26
  211. package/fesm2022/primeng-menu.mjs.map +1 -1
  212. package/fesm2022/primeng-menubar.mjs +69 -34
  213. package/fesm2022/primeng-menubar.mjs.map +1 -1
  214. package/fesm2022/primeng-message.mjs +49 -25
  215. package/fesm2022/primeng-message.mjs.map +1 -1
  216. package/fesm2022/primeng-messages.mjs +12 -3
  217. package/fesm2022/primeng-messages.mjs.map +1 -1
  218. package/fesm2022/primeng-metergroup.mjs +62 -30
  219. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  220. package/fesm2022/primeng-multiselect.mjs +246 -155
  221. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  222. package/fesm2022/primeng-orderlist.mjs +124 -69
  223. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  224. package/fesm2022/primeng-organizationchart.mjs +30 -14
  225. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  226. package/fesm2022/primeng-overlay.mjs +26 -6
  227. package/fesm2022/primeng-overlay.mjs.map +1 -1
  228. package/fesm2022/primeng-overlaybadge.mjs +1 -1
  229. package/fesm2022/primeng-overlaypanel.mjs +33 -10
  230. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  231. package/fesm2022/primeng-paginator.mjs +91 -59
  232. package/fesm2022/primeng-paginator.mjs.map +1 -1
  233. package/fesm2022/primeng-panel.mjs +160 -100
  234. package/fesm2022/primeng-panel.mjs.map +1 -1
  235. package/fesm2022/primeng-panelmenu.mjs +55 -32
  236. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  237. package/fesm2022/primeng-password.mjs +87 -48
  238. package/fesm2022/primeng-password.mjs.map +1 -1
  239. package/fesm2022/primeng-picklist.mjs +362 -258
  240. package/fesm2022/primeng-picklist.mjs.map +1 -1
  241. package/fesm2022/primeng-popover.mjs +29 -12
  242. package/fesm2022/primeng-popover.mjs.map +1 -1
  243. package/fesm2022/primeng-progressbar.mjs +26 -8
  244. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  245. package/fesm2022/primeng-progressspinner.mjs +1 -1
  246. package/fesm2022/primeng-radiobutton.mjs +1 -1
  247. package/fesm2022/primeng-rating.mjs +45 -21
  248. package/fesm2022/primeng-rating.mjs.map +1 -1
  249. package/fesm2022/primeng-scroller.mjs +46 -36
  250. package/fesm2022/primeng-scroller.mjs.map +1 -1
  251. package/fesm2022/primeng-scrollpanel.mjs +27 -8
  252. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  253. package/fesm2022/primeng-scrolltop.mjs +17 -10
  254. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  255. package/fesm2022/primeng-select.mjs +197 -118
  256. package/fesm2022/primeng-select.mjs.map +1 -1
  257. package/fesm2022/primeng-selectbutton.mjs +25 -10
  258. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  259. package/fesm2022/primeng-sidebar.mjs +81 -59
  260. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  261. package/fesm2022/primeng-skeleton.mjs +1 -1
  262. package/fesm2022/primeng-slider.mjs +1 -1
  263. package/fesm2022/primeng-speeddial.mjs +53 -28
  264. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  265. package/fesm2022/primeng-splitbutton.mjs +40 -17
  266. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  267. package/fesm2022/primeng-splitter.mjs +6 -6
  268. package/fesm2022/primeng-splitter.mjs.map +1 -1
  269. package/fesm2022/primeng-stepper.mjs +27 -13
  270. package/fesm2022/primeng-stepper.mjs.map +1 -1
  271. package/fesm2022/primeng-steps.mjs +1 -1
  272. package/fesm2022/primeng-styleclass.mjs +1 -1
  273. package/fesm2022/primeng-table.mjs +107 -96
  274. package/fesm2022/primeng-table.mjs.map +1 -1
  275. package/fesm2022/primeng-tabmenu.mjs +53 -26
  276. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  277. package/fesm2022/primeng-tabs.mjs +27 -19
  278. package/fesm2022/primeng-tabs.mjs.map +1 -1
  279. package/fesm2022/primeng-tabview.mjs +106 -54
  280. package/fesm2022/primeng-tabview.mjs.map +1 -1
  281. package/fesm2022/primeng-tag.mjs +67 -43
  282. package/fesm2022/primeng-tag.mjs.map +1 -1
  283. package/fesm2022/primeng-terminal.mjs +1 -1
  284. package/fesm2022/primeng-textarea.mjs +1 -1
  285. package/fesm2022/primeng-tieredmenu.mjs +43 -20
  286. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  287. package/fesm2022/primeng-timeline.mjs +40 -16
  288. package/fesm2022/primeng-timeline.mjs.map +1 -1
  289. package/fesm2022/primeng-toast.mjs +31 -9
  290. package/fesm2022/primeng-toast.mjs.map +1 -1
  291. package/fesm2022/primeng-togglebutton.mjs +44 -29
  292. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  293. package/fesm2022/primeng-toggleswitch.mjs +27 -8
  294. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  295. package/fesm2022/primeng-toolbar.mjs +46 -20
  296. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  297. package/fesm2022/primeng-tooltip.mjs +35 -70
  298. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  299. package/fesm2022/primeng-tree.mjs +114 -97
  300. package/fesm2022/primeng-tree.mjs.map +1 -1
  301. package/fesm2022/primeng-treeselect.mjs +155 -88
  302. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  303. package/fesm2022/primeng-treetable.mjs +30 -11
  304. package/fesm2022/primeng-treetable.mjs.map +1 -1
  305. package/fesm2022/primeng-usestyle.mjs +1 -1
  306. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  307. package/fieldset/fieldset.d.ts +12 -6
  308. package/fileupload/fileupload.d.ts +19 -8
  309. package/galleria/galleria.d.ts +3 -2
  310. package/image/image.d.ts +18 -7
  311. package/imagecompare/imagecompare.d.ts +7 -2
  312. package/inplace/inplace.d.ts +12 -6
  313. package/inputmask/inputmask.d.ts +8 -4
  314. package/inputnumber/inputnumber.d.ts +11 -6
  315. package/inputotp/inputotp.d.ts +7 -2
  316. package/listbox/listbox.d.ts +17 -4
  317. package/megamenu/megamenu.d.ts +16 -7
  318. package/menu/menu.d.ts +6 -6
  319. package/menubar/menubar.d.ts +13 -6
  320. package/message/message.d.ts +10 -4
  321. package/messages/messages.d.ts +4 -3
  322. package/metergroup/metergroup.d.ts +11 -3
  323. package/multiselect/multiselect.d.ts +36 -17
  324. package/orderlist/orderlist.d.ts +23 -11
  325. package/organizationchart/organizationchart.d.ts +6 -4
  326. package/overlay/overlay.d.ts +6 -3
  327. package/overlaypanel/overlaypanel.d.ts +6 -3
  328. package/package.json +171 -165
  329. package/paginator/paginator.d.ts +15 -8
  330. package/panel/panel.d.ts +14 -5
  331. package/panelmenu/panelmenu.d.ts +8 -4
  332. package/password/password.d.ts +15 -7
  333. package/picklist/picklist.d.ts +23 -3
  334. package/popover/popover.d.ts +8 -5
  335. package/progressbar/progressbar.d.ts +7 -3
  336. package/rating/rating.d.ts +11 -5
  337. package/scroller/scroller.d.ts +9 -4
  338. package/scrollpanel/scrollpanel.d.ts +7 -3
  339. package/scrolltop/scrolltop.d.ts +7 -4
  340. package/select/select.d.ts +31 -13
  341. package/selectbutton/selectbutton.d.ts +7 -3
  342. package/sidebar/sidebar.d.ts +9 -2
  343. package/speeddial/speeddial.d.ts +9 -4
  344. package/splitbutton/splitbutton.d.ts +9 -5
  345. package/splitter/splitter.d.ts +4 -4
  346. package/stepper/stepper.d.ts +8 -3
  347. package/table/table.d.ts +2 -2
  348. package/tabmenu/tabmenu.d.ts +12 -7
  349. package/tabs/tablist.d.ts +6 -2
  350. package/tabview/tabview.d.ts +16 -7
  351. package/tag/tag.d.ts +8 -9
  352. package/tieredmenu/tieredmenu.d.ts +10 -6
  353. package/timeline/timeline.d.ts +7 -2
  354. package/toast/toast.d.ts +7 -3
  355. package/togglebutton/togglebutton.d.ts +8 -3
  356. package/toggleswitch/toggleswitch.d.ts +6 -2
  357. package/toolbar/toolbar.d.ts +9 -4
  358. package/tooltip/tooltip.d.ts +2 -1
  359. package/tree/tree.d.ts +23 -10
  360. package/treeselect/treeselect.d.ts +26 -12
  361. package/treetable/treetable.d.ts +7 -5
@@ -5,18 +5,6 @@ import { SharedModule } from 'primeng/api';
5
5
  import { BaseComponent } from 'primeng/basecomponent';
6
6
  import { BadgeStyle } from './style/badgestyle';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- function Badge_Conditional_0_Template(rf, ctx) { if (rf & 1) {
10
- i0.ɵɵelementStart(0, "span", 1);
11
- i0.ɵɵtext(1);
12
- i0.ɵɵelementEnd();
13
- } if (rf & 2) {
14
- const ctx_r0 = i0.ɵɵnextContext();
15
- i0.ɵɵclassMap(ctx_r0.styleClass());
16
- i0.ɵɵproperty("ngClass", ctx_r0.containerClass())("ngStyle", ctx_r0.style());
17
- i0.ɵɵadvance();
18
- i0.ɵɵtextInterpolate(ctx_r0.value());
19
- } }
20
8
  /**
21
9
  * Badge Directive is directive usage of badge component.
22
10
  * @group Components
@@ -282,37 +270,56 @@ export class Badge extends BaseComponent {
282
270
  * @returns An object representing the CSS classes to be applied to the badge container.
283
271
  */
284
272
  containerClass = computed(() => {
285
- return {
286
- 'p-badge p-component': true,
287
- 'p-badge-circle': isNotEmpty(this.value()) && String(this.value()).length === 1,
288
- 'p-badge-lg': this.badgeSize() === 'large',
289
- 'p-badge-xl': this.badgeSize() === 'xlarge',
290
- 'p-badge-sm': this.badgeSize() === 'small',
291
- 'p-badge-dot': isEmpty(this.value()),
292
- [`p-badge-${this.severity()}`]: this.severity()
293
- };
273
+ let classes = 'p-badge p-component';
274
+ if (isNotEmpty(this.value()) && String(this.value()).length === 1) {
275
+ classes += ' p-badge-circle';
276
+ }
277
+ if (this.badgeSize() === 'large') {
278
+ classes += ' p-badge-lg';
279
+ }
280
+ else if (this.badgeSize() === 'xlarge') {
281
+ classes += ' p-badge-xl';
282
+ }
283
+ else if (this.badgeSize() === 'small') {
284
+ classes += ' p-badge-sm';
285
+ }
286
+ if (isEmpty(this.value())) {
287
+ classes += ' p-badge-dot';
288
+ }
289
+ if (this.styleClass()) {
290
+ classes += ` ${this.styleClass()}`;
291
+ }
292
+ if (this.severity()) {
293
+ classes += ` p-badge-${this.severity()}`;
294
+ }
295
+ return classes;
294
296
  });
295
297
  static ɵfac = /*@__PURE__*/ (() => { let ɵBadge_BaseFactory; return function Badge_Factory(__ngFactoryType__) { return (ɵBadge_BaseFactory || (ɵBadge_BaseFactory = i0.ɵɵgetInheritedFactory(Badge)))(__ngFactoryType__ || Badge); }; })();
296
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Badge, selectors: [["p-badge"]], inputs: { styleClass: [1, "styleClass"], style: [1, "style"], badgeSize: [1, "badgeSize"], size: [1, "size"], severity: [1, "severity"], value: [1, "value"], badgeDisabled: [1, "badgeDisabled"] }, standalone: true, features: [i0.ɵɵProvidersFeature([BadgeStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [[3, "ngClass", "class", "ngStyle"], [3, "ngClass", "ngStyle"]], template: function Badge_Template(rf, ctx) { if (rf & 1) {
297
- i0.ɵɵtemplate(0, Badge_Conditional_0_Template, 2, 5, "span", 0);
298
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Badge, selectors: [["p-badge"]], hostVars: 6, hostBindings: function Badge_HostBindings(rf, ctx) { if (rf & 2) {
299
+ i0.ɵɵstyleMap(ctx.style());
300
+ i0.ɵɵclassMap(ctx.containerClass());
301
+ i0.ɵɵstyleProp("display", ctx.badgeDisabled() && "none");
302
+ } }, inputs: { styleClass: [1, "styleClass"], style: [1, "style"], badgeSize: [1, "badgeSize"], size: [1, "size"], severity: [1, "severity"], value: [1, "value"], badgeDisabled: [1, "badgeDisabled"] }, standalone: true, features: [i0.ɵɵProvidersFeature([BadgeStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, template: function Badge_Template(rf, ctx) { if (rf & 1) {
303
+ i0.ɵɵtext(0);
298
304
  } if (rf & 2) {
299
- i0.ɵɵconditional(!ctx.badgeDisabled() ? 0 : -1);
300
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgStyle, SharedModule], encapsulation: 2, changeDetection: 0 });
305
+ i0.ɵɵtextInterpolate(ctx.value());
306
+ } }, dependencies: [CommonModule, SharedModule], encapsulation: 2, changeDetection: 0 });
301
307
  }
302
308
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Badge, [{
303
309
  type: Component,
304
310
  args: [{
305
311
  selector: 'p-badge',
306
- template: `
307
- @if (!badgeDisabled()) {
308
- <span [ngClass]="containerClass()" [class]="styleClass()" [ngStyle]="style()">{{ value() }}</span>
309
- }
310
- `,
312
+ template: `{{ value() }}`,
311
313
  standalone: true,
312
314
  imports: [CommonModule, SharedModule],
313
315
  changeDetection: ChangeDetectionStrategy.OnPush,
314
316
  encapsulation: ViewEncapsulation.None,
315
- providers: [BadgeStyle]
317
+ providers: [BadgeStyle],
318
+ host: {
319
+ '[class]': 'containerClass()',
320
+ '[style.display]': 'badgeDisabled() && "none"',
321
+ '[style]': 'style()'
322
+ }
316
323
  }]
317
324
  }], null, null); })();
318
325
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Badge, { className: "Badge" }); })();
@@ -329,4 +336,4 @@ export class BadgeModule {
329
336
  }]
330
337
  }], null, null); })();
331
338
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(BadgeModule, { imports: [Badge, BadgeDirective, SharedModule], exports: [Badge, BadgeDirective, SharedModule] }); })();
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFkZ2UvYmFkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUE0QixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0TSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7SUErT3BDLCtCQUE4RTtJQUFBLFlBQWE7SUFBQSxpQkFBTzs7O0lBQS9ELGtDQUFzQjtJQUFDLEFBQXBELGlEQUE0QiwyQkFBMkM7SUFBQyxjQUFhO0lBQWIsb0NBQWE7O0FBN092Rzs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFDN0M7OztPQUdHO0lBQzRCLFFBQVEsQ0FBVTtJQUNqRDs7O09BR0c7SUFDYSxTQUFTLENBQWtEO0lBQzNFOzs7O09BSUc7SUFDSCxJQUFvQixJQUFJLENBQUMsS0FBc0Q7UUFDM0UsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FB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QUszQixLQUFLO2NBYmpCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsU0FBUztnQkFDbkIsUUFBUSxFQUFFOzs7O0tBSVQ7Z0JBQ0QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQzFCOztrRkFDWSxLQUFLO0FBNERsQixNQUFNLE9BQU8sV0FBVztxR0FBWCxXQUFXOzREQUFYLFdBQVc7Z0VBSFYsS0FBSyxFQUFrQixZQUFZLEVBQ1osWUFBWTs7aUZBRXBDLFdBQVc7Y0FKdkIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDO2dCQUM5QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQzthQUNqRDs7d0ZBQ1ksV0FBVyxjQTVEWCxLQUFLLEVBN09MLGNBQWMsRUFzU1UsWUFBWSxhQXpEcEMsS0FBSyxFQTdPTCxjQUFjLEVBdVNVLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgaW5wdXQsIE5nTW9kdWxlLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRDbGFzcywgaGFzQ2xhc3MsIGlzRW1wdHksIGlzTm90RW1wdHksIHJlbW92ZUNsYXNzLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgQmFkZ2VTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFkZ2VzdHlsZSc7XG5cbi8qKlxuICogQmFkZ2UgRGlyZWN0aXZlIGlzIGRpcmVjdGl2ZSB1c2FnZSBvZiBiYWRnZSBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twQmFkZ2VdJyxcbiAgICBwcm92aWRlcnM6IFtCYWRnZVN0eWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJhZGdlRGlyZWN0aXZlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogV2hlbiBzcGVjaWZpZWQsIGRpc2FibGVzIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCdiYWRnZURpc2FibGVkJykgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGJhZGdlLCB2YWxpZCBvcHRpb25zIGFyZSBcImxhcmdlXCIgYW5kIFwieGxhcmdlXCIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGJhZGdlU2l6ZTogJ2xhcmdlJyB8ICd4bGFyZ2UnIHwgJ3NtYWxsJyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgYmFkZ2UsIHZhbGlkIG9wdGlvbnMgYXJlIFwibGFyZ2VcIiBhbmQgXCJ4bGFyZ2VcIi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYmFkZ2VTaXplIGluc3RlYWQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNldCBzaXplKHZhbHVlOiAnbGFyZ2UnIHwgJ3hsYXJnZScgfCAnc21hbGwnIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzaXplIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgcmVtb3ZlZCBpbiB2MTgsIHVzZSBiYWRnZVNpemUgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cbiAgICBfc2l6ZTogJ2xhcmdlJyB8ICd4bGFyZ2UnIHwgJ3NtYWxsJyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU2V2ZXJpdHkgdHlwZSBvZiB0aGUgYmFkZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V2ZXJpdHk6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdkYW5nZXInIHwgJ2hlbHAnIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnY29udHJhc3QnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBWYWx1ZSB0byBkaXNwbGF5IGluc2lkZSB0aGUgYmFkZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGJhZGdlU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2xhc3Mgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYmFkZ2VTdHlsZUNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGlkITogc3RyaW5nO1xuXG4gICAgYmFkZ2VFbDogSFRNTEVsZW1lbnQ7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFkZ2VTdHlsZSk7XG5cbiAgICBwcml2YXRlIGdldCBhY3RpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5ub2RlTmFtZS5pbmRleE9mKCctJykgIT0gLTEgPyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCA6IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYW5VcGRhdGVCYWRnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKHsgdmFsdWUsIHNpemUsIHNldmVyaXR5LCBkaXNhYmxlZCwgYmFkZ2VTdHlsZSwgYmFkZ2VTdHlsZUNsYXNzIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoeyB2YWx1ZSwgc2l6ZSwgc2V2ZXJpdHksIGRpc2FibGVkIH0pO1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlRGlzYWJsZVN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY2FuVXBkYXRlQmFkZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXZlcml0eSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTZXZlcml0eShzZXZlcml0eS5wcmV2aW91c1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaXplKSB7XG4gICAgICAgICAgICB0aGlzLnNldFNpemVDbGFzc2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChiYWRnZVN0eWxlIHx8IGJhZGdlU3R5bGVDbGFzcykge1xuICAgICAgICAgICAgdGhpcy5hcHBseVN0eWxlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pZCA9IHV1aWQoJ3BuX2lkXycpICsgJ19iYWRnZSc7XG4gICAgICAgIHRoaXMucmVuZGVyQmFkZ2VDb250ZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZShlbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFkZ2UgPSBlbGVtZW50ID8/IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7XG5cbiAgICAgICAgaWYgKCFiYWRnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGhhc0NsYXNzKGJhZGdlLCAncC1iYWRnZS1kb3QnKSkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKGJhZGdlLCAncC1iYWRnZS1kb3QnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgU3RyaW5nKHRoaXMudmFsdWUpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGJhZGdlLCAncC1iYWRnZS1jaXJjbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWNpcmNsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtZG90JykpIHtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtZG90Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKGJhZGdlLCAncC1iYWRnZS1jaXJjbGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJhZGdlLmlubmVySFRNTCA9ICcnO1xuICAgICAgICBjb25zdCBiYWRnZVZhbHVlID0gdGhpcy52YWx1ZSAhPSBudWxsID8gU3RyaW5nKHRoaXMudmFsdWUpIDogJyc7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoYmFkZ2UsIHRoaXMuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYmFkZ2VWYWx1ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2l6ZUNsYXNzZXMoZWxlbWVudD86IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJhZGdlID0gZWxlbWVudCA/PyB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpO1xuXG4gICAgICAgIGlmICghYmFkZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmJhZGdlU2l6ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYmFkZ2VTaXplID09PSAnbGFyZ2UnKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWxnJyk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLXhsJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJhZGdlU2l6ZSA9PT0gJ3hsYXJnZScpIHtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UteGwnKTtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtbGcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNpemUgJiYgIXRoaXMuYmFkZ2VTaXplKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaXplID09PSAnbGFyZ2UnKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWxnJyk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLXhsJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNpemUgPT09ICd4bGFyZ2UnKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLXhsJyk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWxnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZW1vdmVDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtbGcnKTtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKGJhZGdlLCAncC1iYWRnZS14bCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJCYWRnZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5hY3RpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBiYWRnZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBiYWRnZS5pZCA9IHRoaXMuaWQ7XG4gICAgICAgIGJhZGdlLmNsYXNzTmFtZSA9ICdwLWJhZGdlIHAtY29tcG9uZW50JztcblxuICAgICAgICB0aGlzLnNldFNldmVyaXR5KG51bGwsIGJhZGdlKTtcbiAgICAgICAgdGhpcy5zZXRTaXplQ2xhc3NlcyhiYWRnZSk7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoYmFkZ2UpO1xuICAgICAgICBhZGRDbGFzcyhlbCwgJ3Atb3ZlcmxheS1iYWRnZScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGVsLCBiYWRnZSk7XG4gICAgICAgIHRoaXMuYmFkZ2VFbCA9IGJhZGdlO1xuICAgICAgICB0aGlzLmFwcGx5U3R5bGVzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseVN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmFkZ2VFbCAmJiB0aGlzLmJhZGdlU3R5bGUgJiYgdHlwZW9mIHRoaXMuYmFkZ2VTdHlsZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuYmFkZ2VTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFkZ2VFbCwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYmFkZ2VFbCAmJiB0aGlzLmJhZGdlU3R5bGVDbGFzcykge1xuICAgICAgICAgICAgdGhpcy5iYWRnZUVsLmNsYXNzTGlzdC5hZGQoLi4udGhpcy5iYWRnZVN0eWxlQ2xhc3Muc3BsaXQoJyAnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNldmVyaXR5KG9sZFNldmVyaXR5PzogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCBudWxsLCBlbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFkZ2UgPSBlbGVtZW50ID8/IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7XG5cbiAgICAgICAgaWYgKCFiYWRnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIGFkZENsYXNzKGJhZGdlLCBgcC1iYWRnZS0ke3RoaXMuc2V2ZXJpdHl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2xkU2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKGJhZGdlLCBgcC1iYWRnZS0ke29sZFNldmVyaXR5fWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVEaXNhYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gdGhpcy5hY3RpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLmlkfWApO1xuXG4gICAgICAgICAgICBpZiAoYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuYWN0aXZlRWxlbWVudCwgYmFkZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJCYWRnZUNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8qKlxuICogQmFkZ2UgaXMgYSBzbWFsbCBzdGF0dXMgaW5kaWNhdG9yIGZvciBhbm90aGVyIGVsZW1lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYmFkZ2UnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoIWJhZGdlRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3MoKVwiIFtjbGFzc109XCJzdHlsZUNsYXNzKClcIiBbbmdTdHlsZV09XCJzdHlsZSgpXCI+e3sgdmFsdWUoKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbQmFkZ2VTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2UgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBzdHlsZUNsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBzdHlsZSA9IGlucHV0PHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGw+KCk7XG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgYmFkZ2UsIHZhbGlkIG9wdGlvbnMgYXJlIFwibGFyZ2VcIiBhbmQgXCJ4bGFyZ2VcIi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBiYWRnZVNpemUgPSBpbnB1dDwnc21hbGwnIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnIHwgbnVsbD4oKTtcbiAgICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSBiYWRnZSwgdmFsaWQgb3B0aW9ucyBhcmUgXCJsYXJnZVwiIGFuZCBcInhsYXJnZVwiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHNpemUgPSBpbnB1dDwnc21hbGwnIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnIHwgbnVsbD4oKTtcbiAgICAvKipcbiAgICAgKiBTZXZlcml0eSB0eXBlIG9mIHRoZSBiYWRnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBzZXZlcml0eSA9IGlucHV0PCdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdkYW5nZXInIHwgJ2hlbHAnIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnY29udHJhc3QnIHwgbnVsbD4oKTtcbiAgICAvKipcbiAgICAgKiBWYWx1ZSB0byBkaXNwbGF5IGluc2lkZSB0aGUgYmFkZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWUgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPigpO1xuICAgIC8qKlxuICAgICAqIFdoZW4gc3BlY2lmaWVkLCBkaXNhYmxlcyB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIGJhZGdlRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBib29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFkZ2VTdHlsZSk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgY29udGFpbmVyIGNsYXNzIGZvciB0aGUgYmFkZ2UgZWxlbWVudCBiYXNlZCBvbiBpdHMgcHJvcGVydGllcy5cbiAgICAgKiBAcmV0dXJucyBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBDU1MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBiYWRnZSBjb250YWluZXIuXG4gICAgICovXG4gICAgY29udGFpbmVyQ2xhc3MgPSBjb21wdXRlZDx7IFtrbGFzczogc3RyaW5nXTogYW55IH0+KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLWJhZGdlIHAtY29tcG9uZW50JzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJhZGdlLWNpcmNsZSc6IGlzTm90RW1wdHkodGhpcy52YWx1ZSgpKSAmJiBTdHJpbmcodGhpcy52YWx1ZSgpKS5sZW5ndGggPT09IDEsXG4gICAgICAgICAgICAncC1iYWRnZS1sZyc6IHRoaXMuYmFkZ2VTaXplKCkgPT09ICdsYXJnZScsXG4gICAgICAgICAgICAncC1iYWRnZS14bCc6IHRoaXMuYmFkZ2VTaXplKCkgPT09ICd4bGFyZ2UnLFxuICAgICAgICAgICAgJ3AtYmFkZ2Utc20nOiB0aGlzLmJhZGdlU2l6ZSgpID09PSAnc21hbGwnLFxuICAgICAgICAgICAgJ3AtYmFkZ2UtZG90JzogaXNFbXB0eSh0aGlzLnZhbHVlKCkpLFxuICAgICAgICAgICAgW2BwLWJhZGdlLSR7dGhpcy5zZXZlcml0eSgpfWBdOiB0aGlzLnNldmVyaXR5KClcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQmFkZ2UsIEJhZGdlRGlyZWN0aXZlLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtCYWRnZSwgQmFkZ2VEaXJlY3RpdmUsIFNoYXJlZE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VNb2R1bGUge31cbiJdfQ==
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFkZ2UvYmFkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUE0QixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0TSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRWhEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQUM3Qzs7O09BR0c7SUFDNEIsUUFBUSxDQUFVO0lBQ2pEOzs7T0FHRztJQUNhLFNBQVMsQ0FBa0Q7SUFDM0U7Ozs7T0FJRztJQUNILElBQW9CLElBQUksQ0FBQyxLQUFzRDtRQUMzRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsS0FBSyxDQUFrRDtJQUN2RDs7O09BR0c7SUFDTSxRQUFRLENBQTRHO0lBQzdIOzs7T0FHRztJQUNhLEtBQUssQ0FBa0I7SUFDdkM7OztPQUdHO0lBQ00sVUFBVSxD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RUE5T0wsY0FBYyxFQXlUVSxZQUFZLGFBM0VwQyxLQUFLLEVBOU9MLGNBQWMsRUEwVFUsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBpbnB1dCwgTmdNb2R1bGUsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZENsYXNzLCBoYXNDbGFzcywgaXNFbXB0eSwgaXNOb3RFbXB0eSwgcmVtb3ZlQ2xhc3MsIHV1aWQgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZVN0eWxlIH0gZnJvbSAnLi9zdHlsZS9iYWRnZXN0eWxlJztcblxuLyoqXG4gKiBCYWRnZSBEaXJlY3RpdmUgaXMgZGlyZWN0aXZlIHVzYWdlIG9mIGJhZGdlIGNvbXBvbmVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3BCYWRnZV0nLFxuICAgIHByb3ZpZGVyczogW0JhZGdlU3R5bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBXaGVuIHNwZWNpZmllZCwgZGlzYWJsZXMgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoJ2JhZGdlRGlzYWJsZWQnKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgYmFkZ2UsIHZhbGlkIG9wdGlvbnMgYXJlIFwibGFyZ2VcIiBhbmQgXCJ4bGFyZ2VcIi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYmFkZ2VTaXplOiAnbGFyZ2UnIHwgJ3hsYXJnZScgfCAnc21hbGwnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSBiYWRnZSwgdmFsaWQgb3B0aW9ucyBhcmUgXCJsYXJnZVwiIGFuZCBcInhsYXJnZVwiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqIEBkZXByZWNhdGVkIHVzZSBiYWRnZVNpemUgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IHNpemUodmFsdWU6ICdsYXJnZScgfCAneGxhcmdlJyB8ICdzbWFsbCcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICAgICAgY29uc29sZS5sb2coJ3NpemUgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCByZW1vdmVkIGluIHYxOCwgdXNlIGJhZGdlU2l6ZSBpbnN0ZWFkLicpO1xuICAgIH1cbiAgICBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuICAgIF9zaXplOiAnbGFyZ2UnIHwgJ3hsYXJnZScgfCAnc21hbGwnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTZXZlcml0eSB0eXBlIG9mIHRoZSBiYWRnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnaGVscCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdjb250cmFzdCcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIHRoZSBiYWRnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYmFkZ2VTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBiYWRnZVN0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIHByaXZhdGUgaWQhOiBzdHJpbmc7XG5cbiAgICBiYWRnZUVsOiBIVE1MRWxlbWVudDtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCYWRnZVN0eWxlKTtcblxuICAgIHByaXZhdGUgZ2V0IGFjdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLmluZGV4T2YoJy0nKSAhPSAtMSA/IHRoaXMuZWwubmF0aXZlRWxlbWVudC5maXJzdENoaWxkIDogdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNhblVwZGF0ZUJhZGdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoeyB2YWx1ZSwgc2l6ZSwgc2V2ZXJpdHksIGRpc2FibGVkLCBiYWRnZVN0eWxlLCBiYWRnZVN0eWxlQ2xhc3MgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyh7IHZhbHVlLCBzaXplLCBzZXZlcml0eSwgZGlzYWJsZWQgfSk7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlU3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jYW5VcGRhdGVCYWRnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNldmVyaXR5KSB7XG4gICAgICAgICAgICB0aGlzLnNldFNldmVyaXR5KHNldmVyaXR5LnByZXZpb3VzVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2l6ZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJhZGdlU3R5bGUgfHwgYmFkZ2VTdHlsZUNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U3R5bGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gdXVpZCgncG5faWRfJykgKyAnX2JhZGdlJztcbiAgICAgICAgdGhpcy5yZW5kZXJCYWRnZUNvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlKGVsZW1lbnQ/OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYWRnZSA9IGVsZW1lbnQgPz8gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKTtcblxuICAgICAgICBpZiAoIWJhZGdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaGFzQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWRvdCcpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWRvdCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiBTdHJpbmcodGhpcy52YWx1ZSkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWNpcmNsZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtY2lyY2xlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc0NsYXNzKGJhZGdlLCAncC1iYWRnZS1kb3QnKSkge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGJhZGdlLCAncC1iYWRnZS1kb3QnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLWNpcmNsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgYmFkZ2UuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIGNvbnN0IGJhZGdlVmFsdWUgPSB0aGlzLnZhbHVlICE9IG51bGwgPyBTdHJpbmcodGhpcy52YWx1ZSkgOiAnJztcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChiYWRnZSwgdGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiYWRnZVZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTaXplQ2xhc3NlcyhlbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFkZ2UgPSBlbGVtZW50ID8/IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7XG5cbiAgICAgICAgaWYgKCFiYWRnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYmFkZ2VTaXplKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5iYWRnZVNpemUgPT09ICdsYXJnZScpIHtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtbGcnKTtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UteGwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuYmFkZ2VTaXplID09PSAneGxhcmdlJykge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGJhZGdlLCAncC1iYWRnZS14bCcpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKGJhZGdlLCAncC1iYWRnZS1sZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2l6ZSAmJiAhdGhpcy5iYWRnZVNpemUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpemUgPT09ICdsYXJnZScpIHtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtbGcnKTtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UteGwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ3hsYXJnZScpIHtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UteGwnKTtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhiYWRnZSwgJ3AtYmFkZ2UtbGcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKGJhZGdlLCAncC1iYWRnZS1sZycpO1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsICdwLWJhZGdlLXhsJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckJhZGdlQ29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGJhZGdlID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIGJhZGdlLmlkID0gdGhpcy5pZDtcbiAgICAgICAgYmFkZ2UuY2xhc3NOYW1lID0gJ3AtYmFkZ2UgcC1jb21wb25lbnQnO1xuXG4gICAgICAgIHRoaXMuc2V0U2V2ZXJpdHkobnVsbCwgYmFkZ2UpO1xuICAgICAgICB0aGlzLnNldFNpemVDbGFzc2VzKGJhZGdlKTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShiYWRnZSk7XG4gICAgICAgIGFkZENsYXNzKGVsLCAncC1vdmVybGF5LWJhZGdlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZWwsIGJhZGdlKTtcbiAgICAgICAgdGhpcy5iYWRnZUVsID0gYmFkZ2U7XG4gICAgICAgIHRoaXMuYXBwbHlTdHlsZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5U3R5bGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5iYWRnZUVsICYmIHRoaXMuYmFkZ2VTdHlsZSAmJiB0eXBlb2YgdGhpcy5iYWRnZVN0eWxlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5iYWRnZVN0eWxlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWRnZUVsLCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5iYWRnZUVsICYmIHRoaXMuYmFkZ2VTdHlsZUNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmJhZGdlRWwuY2xhc3NMaXN0LmFkZCguLi50aGlzLmJhZGdlU3R5bGVDbGFzcy5zcGxpdCgnICcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2V2ZXJpdHkob2xkU2V2ZXJpdHk/OiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJyB8IG51bGwsIGVsZW1lbnQ/OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYWRnZSA9IGVsZW1lbnQgPz8gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKTtcblxuICAgICAgICBpZiAoIWJhZGdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZXZlcml0eSkge1xuICAgICAgICAgICAgYWRkQ2xhc3MoYmFkZ2UsIGBwLWJhZGdlLSR7dGhpcy5zZXZlcml0eX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbGRTZXZlcml0eSkge1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoYmFkZ2UsIGBwLWJhZGdlLSR7b2xkU2V2ZXJpdHl9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZURpc2FibGVTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgYmFkZ2UgPSB0aGlzLmFjdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuaWR9YCk7XG5cbiAgICAgICAgICAgIGlmIChiYWRnZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5hY3RpdmVFbGVtZW50LCBiYWRnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckJhZGdlQ29udGVudCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBCYWRnZSBpcyBhIHNtYWxsIHN0YXR1cyBpbmRpY2F0b3IgZm9yIGFub3RoZXIgZWxlbWVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1iYWRnZScsXG4gICAgdGVtcGxhdGU6IGB7eyB2YWx1ZSgpIH19YCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtCYWRnZVN0eWxlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3NdJzogJ2NvbnRhaW5lckNsYXNzKCknLFxuICAgICAgICAnW3N0eWxlLmRpc3BsYXldJzogJ2JhZGdlRGlzYWJsZWQoKSAmJiBcIm5vbmVcIicsXG4gICAgICAgICdbc3R5bGVdJzogJ3N0eWxlKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYWRnZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHN0eWxlQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHN0eWxlID0gaW5wdXQ8eyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbD4oKTtcbiAgICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSBiYWRnZSwgdmFsaWQgb3B0aW9ucyBhcmUgXCJsYXJnZVwiIGFuZCBcInhsYXJnZVwiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIGJhZGdlU2l6ZSA9IGlucHV0PCdzbWFsbCcgfCAnbGFyZ2UnIHwgJ3hsYXJnZScgfCBudWxsPigpO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGJhZGdlLCB2YWxpZCBvcHRpb25zIGFyZSBcImxhcmdlXCIgYW5kIFwieGxhcmdlXCIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgc2l6ZSA9IGlucHV0PCdzbWFsbCcgfCAnbGFyZ2UnIHwgJ3hsYXJnZScgfCBudWxsPigpO1xuICAgIC8qKlxuICAgICAqIFNldmVyaXR5IHR5cGUgb2YgdGhlIGJhZGdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHNldmVyaXR5ID0gaW5wdXQ8J3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnaGVscCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdjb250cmFzdCcgfCBudWxsPigpO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIHRoZSBiYWRnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICB2YWx1ZSA9IGlucHV0PHN0cmluZyB8IG51bWJlciB8IG51bGw+KCk7XG4gICAgLyoqXG4gICAgICogV2hlbiBzcGVjaWZpZWQsIGRpc2FibGVzIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgYmFkZ2VEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCYWRnZVN0eWxlKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBjb250YWluZXIgY2xhc3MgZm9yIHRoZSBiYWRnZSBlbGVtZW50IGJhc2VkIG9uIGl0cyBwcm9wZXJ0aWVzLlxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIENTUyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGJhZGdlIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBjb250YWluZXJDbGFzcyA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgICAgICBsZXQgY2xhc3NlcyA9ICdwLWJhZGdlIHAtY29tcG9uZW50JztcblxuICAgICAgICBpZiAoaXNOb3RFbXB0eSh0aGlzLnZhbHVlKCkpICYmIFN0cmluZyh0aGlzLnZhbHVlKCkpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY2xhc3NlcyArPSAnIHAtYmFkZ2UtY2lyY2xlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmJhZGdlU2l6ZSgpID09PSAnbGFyZ2UnKSB7XG4gICAgICAgICAgICBjbGFzc2VzICs9ICcgcC1iYWRnZS1sZyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5iYWRnZVNpemUoKSA9PT0gJ3hsYXJnZScpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gJyBwLWJhZGdlLXhsJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmJhZGdlU2l6ZSgpID09PSAnc21hbGwnKSB7XG4gICAgICAgICAgICBjbGFzc2VzICs9ICcgcC1iYWRnZS1zbSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eSh0aGlzLnZhbHVlKCkpKSB7XG4gICAgICAgICAgICBjbGFzc2VzICs9ICcgcC1iYWRnZS1kb3QnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3R5bGVDbGFzcygpKSB7XG4gICAgICAgICAgICBjbGFzc2VzICs9IGAgJHt0aGlzLnN0eWxlQ2xhc3MoKX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2V2ZXJpdHkoKSkge1xuICAgICAgICAgICAgY2xhc3NlcyArPSBgIHAtYmFkZ2UtJHt0aGlzLnNldmVyaXR5KCl9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH0pO1xufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtCYWRnZSwgQmFkZ2VEaXJlY3RpdmUsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW0JhZGdlLCBCYWRnZURpcmVjdGl2ZSwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBCYWRnZU1vZHVsZSB7fVxuIl19
@@ -1,8 +1,7 @@
1
1
  import { DOCUMENT, isPlatformServer } from '@angular/common';
2
- import { ChangeDetectorRef, ContentChildren, Directive, ElementRef, inject, Injector, Input, PLATFORM_ID, Renderer2 } from '@angular/core';
2
+ import { ChangeDetectorRef, Directive, ElementRef, inject, Injector, Input, PLATFORM_ID, Renderer2 } from '@angular/core';
3
3
  import { Theme, ThemeService } from '@primeuix/styled';
4
4
  import { getKeyValue, uuid } from '@primeuix/utils';
5
- import { PrimeTemplate } from 'primeng/api';
6
5
  import { Base, BaseStyle } from 'primeng/base';
7
6
  import { PrimeNG } from 'primeng/config';
8
7
  import { BaseComponentStyle } from './style/basecomponentstyle';
@@ -49,20 +48,6 @@ export class BaseComponent {
49
48
  this.rootEl?.setAttribute(this.attrSelector, '');
50
49
  }
51
50
  }
52
- templates;
53
- ngAfterContentInit() {
54
- this.templates?.forEach((item) => {
55
- const type = item.getType();
56
- const template = `${type}Template`;
57
- if (this.hasOwnProperty(template)) {
58
- this[template] = item.template;
59
- }
60
- if (this.hasOwnProperty(`_${template}`)) {
61
- this[`_${template}`] = item.template;
62
- }
63
- this[type] = item.template;
64
- });
65
- }
66
51
  ngOnChanges(changes) {
67
52
  if (this.document && !isPlatformServer(this.platformId)) {
68
53
  const { dt } = changes;
@@ -164,20 +149,12 @@ export class BaseComponent {
164
149
  return this['parentInstance'];
165
150
  }
166
151
  static ɵfac = function BaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseComponent)(); };
167
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseComponent, contentQueries: function BaseComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
168
- i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
169
- } if (rf & 2) {
170
- let _t;
171
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
172
- } }, inputs: { dt: "dt" }, standalone: true, features: [i0.ɵɵProvidersFeature([BaseComponentStyle, BaseStyle]), i0.ɵɵNgOnChangesFeature] });
152
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseComponent, inputs: { dt: "dt" }, standalone: true, features: [i0.ɵɵProvidersFeature([BaseComponentStyle, BaseStyle]), i0.ɵɵNgOnChangesFeature] });
173
153
  }
174
154
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseComponent, [{
175
155
  type: Directive,
176
156
  args: [{ standalone: true, providers: [BaseComponentStyle, BaseStyle] }]
177
157
  }], null, { dt: [{
178
158
  type: Input
179
- }], templates: [{
180
- type: ContentChildren,
181
- args: [PrimeTemplate]
182
159
  }] }); })();
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlY29tcG9uZW50L2Jhc2Vjb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxhQUFhO0lBQ2YsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxVQUFVLEdBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXRDLEVBQUUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0IsUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxFQUFFLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELFFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsTUFBTSxHQUFZLE1BQU0sQ0FBQyxPQUFP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b20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBQTEFURk9STV9JRCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAcHJpbWV1aXgvc3R5bGVkJztcbmltcG9ydCB7IGdldEtleVZhbHVlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlLCBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gJ3ByaW1lbmcvY29uZmlnJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFzZWNvbXBvbmVudHN0eWxlJztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHByb3ZpZGVyczogW0Jhc2VDb21wb25lbnRTdHlsZSwgQmFzZVN0eWxlXSB9KVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgcHVibGljIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkcgPSBpbmplY3QoUHJpbWVORyk7XG5cbiAgICBwdWJsaWMgYmFzZUNvbXBvbmVudFN0eWxlOiBCYXNlQ29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFzZUNvbXBvbmVudFN0eWxlKTtcblxuICAgIHB1YmxpYyBiYXNlU3R5bGU6IEJhc2VTdHlsZSA9IGluamVjdChCYXNlU3R5bGUpO1xuXG4gICAgcHVibGljIHNjb3BlZFN0eWxlRWw6IGFueTtcblxuICAgIHB1YmxpYyByb290RWw6IGFueTtcblxuICAgIEBJbnB1dCgpIGR0OiBPYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgc3R5bGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4geyBub25jZTogdGhpcy5jb25maWc/LmNzcCgpLm5vbmNlIH07XG4gICAgfVxuXG4gICAgZ2V0IF9uYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoL15fLywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1snX2NvbXBvbmVudFN0eWxlJ107XG4gICAgfVxuXG4gICAgYXR0clNlbGVjdG9yID0gdXVpZCgncGMnKTtcblxuICAgIF9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UgPyAodGhpc1snaG9zdE5hbWUnXSA/IChpbnN0YW5jZVsnbmFtZSddID09PSB0aGlzWydob3N0TmFtZSddID8gaW5zdGFuY2UgOiB0aGlzLl9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UucGFyZW50SW5zdGFuY2UpKSA6IGluc3RhbmNlLnBhcmVudEluc3RhbmNlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nZXRPcHRpb25WYWx1ZShvcHRpb25zLCBrZXkgPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGdldEtleVZhbHVlKG9wdGlvbnMsIGtleSwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb290RWwgPSB0aGlzLmVsPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5yb290RWwpIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEVsPy5zZXRBdHRyaWJ1dGUodGhpcy5hdHRyU2VsZWN0b3IsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gaXRlbS5nZXRUeXBlKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IGAke3R5cGV9VGVtcGxhdGVgO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNPd25Qcm9wZXJ0eSh0ZW1wbGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzW3RlbXBsYXRlXSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KGBfJHt0ZW1wbGF0ZX1gKSkge1xuICAgICAgICAgICAgICAgIHRoaXNbYF8ke3RlbXBsYXRlfWBdID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpc1t0eXBlXSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQgJiYgIWlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgeyBkdCB9ID0gY2hhbmdlcztcbiAgICAgICAgICAgIGlmIChkdCAmJiBkdC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXMoZHQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyhkdC5jdXJyZW50VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl91bmxvYWRTY29wZWRUaGVtZVN0eWxlcygpO1xuICAgIH1cblxuICAgIF9sb2FkU3R5bGVzKCkge1xuICAgICAgICBjb25zdCBfbG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghQmFzZS5pc1N0eWxlTmFtZUxvYWRlZCgnYmFzZScpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZENTUyh0aGlzLnN0eWxlT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgQmFzZS5zZXRMb2FkZWRTdHlsZU5hbWUoJ2Jhc2UnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fbG9hZFRoZW1lU3R5bGVzKCk7XG4gICAgICAgICAgICAvLyBAdG9kbyB1cGRhdGUgY29uZmlnLnRoZW1lKClcbiAgICAgICAgfTtcblxuICAgICAgICBfbG9hZCgpO1xuICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IF9sb2FkKCkpO1xuICAgIH1cblxuICAgIF9sb2FkQ29yZVN0eWxlcygpIHtcbiAgICAgICAgaWYgKCFCYXNlLmlzU3R5bGVOYW1lTG9hZGVkKCdiYXNlJykgJiYgdGhpcy5fbmFtZSkge1xuICAgICAgICAgICAgdGhpcy5iYXNlQ29tcG9uZW50U3R5bGUubG9hZENTUyh0aGlzLnN0eWxlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlICYmIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgQmFzZS5zZXRMb2FkZWRTdHlsZU5hbWUodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZFRoZW1lU3R5bGVzKCkge1xuICAgICAgICAvLyBjb21tb25cbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCgnY29tbW9uJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJpbWl0aXZlLCBzZW1hbnRpYywgZ2xvYmFsLCBzdHlsZSB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0Q29tbW9uVGhlbWU/LigpIHx8IHt9O1xuXG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKHByaW1pdGl2ZT8uY3NzLCB7IG5hbWU6ICdwcmltaXRpdmUtdmFyaWFibGVzJywgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKHNlbWFudGljPy5jc3MsIHsgbmFtZTogJ3NlbWFudGljLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChnbG9iYWw/LmNzcywgeyBuYW1lOiAnZ2xvYmFsLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZFRoZW1lKHsgbmFtZTogJ2dsb2JhbC1zdHlsZScsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0sIHN0eWxlKTtcblxuICAgICAgICAgICAgVGhlbWUuc2V0TG9hZGVkU3R5bGVOYW1lKCdjb21tb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICBpZiAoIVRoZW1lLmlzU3R5bGVOYW1lTG9hZGVkKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpICYmIHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3NzLCBzdHlsZSB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0Q29tcG9uZW50VGhlbWU/LigpIHx8IHt9O1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkKGNzcywgeyBuYW1lOiBgJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfS12YXJpYWJsZXNgLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWRUaGVtZSh7IG5hbWU6IGAke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9LXN0eWxlYCwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSwgc3R5bGUpO1xuXG4gICAgICAgICAgICBUaGVtZS5zZXRMb2FkZWRTdHlsZU5hbWUodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsYXllciBvcmRlclxuICAgICAgICBpZiAoIVRoZW1lLmlzU3R5bGVOYW1lTG9hZGVkKCdsYXllci1vcmRlcicpKSB7XG4gICAgICAgICAgICBjb25zdCBsYXllck9yZGVyID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0TGF5ZXJPcmRlclRoZW1lQ1NTPy4oKTtcblxuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChsYXllck9yZGVyLCB7IG5hbWU6ICdsYXllci1vcmRlcicsIGZpcnN0OiB0cnVlLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIFRoZW1lLnNldExvYWRlZFN0eWxlTmFtZSgnbGF5ZXItb3JkZXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmR0KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXModGhpcy5kdCk7XG4gICAgICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyh0aGlzLmR0KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZFNjb3BlZFRoZW1lU3R5bGVzKHByZXNldCkge1xuICAgICAgICBjb25zdCB7IGNzcyB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0UHJlc2V0VGhlbWU/LihwcmVzZXQsIGBbJHt0aGlzLmF0dHJTZWxlY3Rvcn1dYCkgfHwge307XG4gICAgICAgIGNvbnN0IHNjb3BlZFN0eWxlID0gdGhpcy5jb21wb25lbnRTdHlsZT8ubG9hZChjc3MsIHtcbiAgICAgICAgICAgIG5hbWU6IGAke3RoaXMuYXR0clNlbGVjdG9yfS0ke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9YCxcbiAgICAgICAgICAgIC4uLnRoaXMuc3R5bGVPcHRpb25zXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2NvcGVkU3R5bGVFbCA9IHNjb3BlZFN0eWxlPy5lbDtcbiAgICB9XG5cbiAgICBfdW5sb2FkU2NvcGVkVGhlbWVTdHlsZXMoKSB7XG4gICAgICAgIHRoaXMuc2NvcGVkU3R5bGVFbD8ucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgX3RoZW1lQ2hhbmdlTGlzdGVuZXIoY2FsbGJhY2sgPSAoKSA9PiB7fSkge1xuICAgICAgICBCYXNlLmNsZWFyTG9hZGVkU3R5bGVOYW1lcygpO1xuICAgICAgICBUaGVtZVNlcnZpY2Uub24oJ3RoZW1lOmNoYW5nZScsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBjeChhcmc6IHN0cmluZywgcmVzdD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzPy5bYXJnXSA6IHRoaXMuY29tcG9uZW50U3R5bGU/LmNsYXNzZXM/LlthcmddO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGNsYXNzZXMoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlb2YgY2xhc3NlcyA9PT0gJ3N0cmluZycgPyBjbGFzc2VzIDogYXJnO1xuICAgIH1cblxuICAgIHN4KGFyZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gdGhpcy5jb21wb25lbnRTdHlsZT8uaW5saW5lU3R5bGVzPy5bYXJnXTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHlsZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXMoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc3R5bGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0eWxlcyB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3goa2V5ID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgLy8gICAgIGNvbnN0IGNsYXNzZXMgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzIDogdGhpcy5jb21wb25lbnRTdHlsZT8uY2xhc3NlcztcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvblZhbHVlKGNsYXNzZXMoeyBpbnN0YW5jZTogdGhpcy5fZ2V0SG9zdEluc3RhbmNlKHRoaXMpIH0pLCBrZXksIHsgLi4ucGFyYW1zIH0pO1xuICAgIC8vIH1cblxuICAgIGdldCBwYXJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzWydwYXJlbnRJbnN0YW5jZSddO1xuICAgIH1cbn1cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNlY29tcG9uZW50L2Jhc2Vjb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQWEsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUdoRSxNQUFNLE9BQU8sYUFBYTtJQUNmLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsVUFBVSxHQUFRLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV0QyxFQUFFLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsRUFBRSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUzRCxRQUFRLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEMsa0JBQWtCLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FB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SUFFSixJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7dUdBekxRLGFBQWE7NkRBQWIsYUFBYSwyRUFEZ0IsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUM7O2lGQUM1RCxhQUFhO2NBRHpCLFNBQVM7ZUFBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBd0I5RCxFQUFFO2tCQUFWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBQTEFURk9STV9JRCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAcHJpbWV1aXgvc3R5bGVkJztcbmltcG9ydCB7IGdldEtleVZhbHVlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlLCBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gJ3ByaW1lbmcvY29uZmlnJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRTdHlsZSB9IGZyb20gJy4vc3R5bGUvYmFzZWNvbXBvbmVudHN0eWxlJztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHByb3ZpZGVyczogW0Jhc2VDb21wb25lbnRTdHlsZSwgQmFzZVN0eWxlXSB9KVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgcHVibGljIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkcgPSBpbmplY3QoUHJpbWVORyk7XG5cbiAgICBwdWJsaWMgYmFzZUNvbXBvbmVudFN0eWxlOiBCYXNlQ29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmFzZUNvbXBvbmVudFN0eWxlKTtcblxuICAgIHB1YmxpYyBiYXNlU3R5bGU6IEJhc2VTdHlsZSA9IGluamVjdChCYXNlU3R5bGUpO1xuXG4gICAgcHVibGljIHNjb3BlZFN0eWxlRWw6IGFueTtcblxuICAgIHB1YmxpYyByb290RWw6IGFueTtcblxuICAgIEBJbnB1dCgpIGR0OiBPYmplY3QgfCB1bmRlZmluZWQ7XG5cbiAgICBnZXQgc3R5bGVPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4geyBub25jZTogdGhpcy5jb25maWc/LmNzcCgpLm5vbmNlIH07XG4gICAgfVxuXG4gICAgZ2V0IF9uYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoL15fLywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBvbmVudFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1snX2NvbXBvbmVudFN0eWxlJ107XG4gICAgfVxuXG4gICAgYXR0clNlbGVjdG9yID0gdXVpZCgncGMnKTtcblxuICAgIF9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UgPyAodGhpc1snaG9zdE5hbWUnXSA/IChpbnN0YW5jZVsnbmFtZSddID09PSB0aGlzWydob3N0TmFtZSddID8gaW5zdGFuY2UgOiB0aGlzLl9nZXRIb3N0SW5zdGFuY2UoaW5zdGFuY2UucGFyZW50SW5zdGFuY2UpKSA6IGluc3RhbmNlLnBhcmVudEluc3RhbmNlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nZXRPcHRpb25WYWx1ZShvcHRpb25zLCBrZXkgPSAnJywgcGFyYW1zID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGdldEtleVZhbHVlKG9wdGlvbnMsIGtleSwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdHlsZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb290RWwgPSB0aGlzLmVsPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5yb290RWwpIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEVsPy5zZXRBdHRyaWJ1dGUodGhpcy5hdHRyU2VsZWN0b3IsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQgJiYgIWlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgeyBkdCB9ID0gY2hhbmdlcztcbiAgICAgICAgICAgIGlmIChkdCAmJiBkdC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXMoZHQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyhkdC5jdXJyZW50VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl91bmxvYWRTY29wZWRUaGVtZVN0eWxlcygpO1xuICAgIH1cblxuICAgIF9sb2FkU3R5bGVzKCkge1xuICAgICAgICBjb25zdCBfbG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghQmFzZS5pc1N0eWxlTmFtZUxvYWRlZCgnYmFzZScpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZENTUyh0aGlzLnN0eWxlT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgQmFzZS5zZXRMb2FkZWRTdHlsZU5hbWUoJ2Jhc2UnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fbG9hZFRoZW1lU3R5bGVzKCk7XG4gICAgICAgICAgICAvLyBAdG9kbyB1cGRhdGUgY29uZmlnLnRoZW1lKClcbiAgICAgICAgfTtcblxuICAgICAgICBfbG9hZCgpO1xuICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IF9sb2FkKCkpO1xuICAgIH1cblxuICAgIF9sb2FkQ29yZVN0eWxlcygpIHtcbiAgICAgICAgaWYgKCFCYXNlLmlzU3R5bGVOYW1lTG9hZGVkKCdiYXNlJykgJiYgdGhpcy5fbmFtZSkge1xuICAgICAgICAgICAgdGhpcy5iYXNlQ29tcG9uZW50U3R5bGUubG9hZENTUyh0aGlzLnN0eWxlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlICYmIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWRDU1ModGhpcy5zdHlsZU9wdGlvbnMpO1xuICAgICAgICAgICAgQmFzZS5zZXRMb2FkZWRTdHlsZU5hbWUodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZFRoZW1lU3R5bGVzKCkge1xuICAgICAgICAvLyBjb21tb25cbiAgICAgICAgaWYgKCFUaGVtZS5pc1N0eWxlTmFtZUxvYWRlZCgnY29tbW9uJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJpbWl0aXZlLCBzZW1hbnRpYywgZ2xvYmFsLCBzdHlsZSB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0Q29tbW9uVGhlbWU/LigpIHx8IHt9O1xuXG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKHByaW1pdGl2ZT8uY3NzLCB7IG5hbWU6ICdwcmltaXRpdmUtdmFyaWFibGVzJywgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSk7XG4gICAgICAgICAgICB0aGlzLmJhc2VTdHlsZS5sb2FkKHNlbWFudGljPy5jc3MsIHsgbmFtZTogJ3NlbWFudGljLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChnbG9iYWw/LmNzcywgeyBuYW1lOiAnZ2xvYmFsLXZhcmlhYmxlcycsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0pO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZFRoZW1lKHsgbmFtZTogJ2dsb2JhbC1zdHlsZScsIC4uLnRoaXMuc3R5bGVPcHRpb25zIH0sIHN0eWxlKTtcblxuICAgICAgICAgICAgVGhlbWUuc2V0TG9hZGVkU3R5bGVOYW1lKCdjb21tb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICBpZiAoIVRoZW1lLmlzU3R5bGVOYW1lTG9hZGVkKHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpICYmIHRoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY3NzLCBzdHlsZSB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0Q29tcG9uZW50VGhlbWU/LigpIHx8IHt9O1xuXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFN0eWxlPy5sb2FkKGNzcywgeyBuYW1lOiBgJHt0aGlzLmNvbXBvbmVudFN0eWxlPy5uYW1lfS12YXJpYWJsZXNgLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50U3R5bGU/LmxvYWRUaGVtZSh7IG5hbWU6IGAke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9LXN0eWxlYCwgLi4udGhpcy5zdHlsZU9wdGlvbnMgfSwgc3R5bGUpO1xuXG4gICAgICAgICAgICBUaGVtZS5zZXRMb2FkZWRTdHlsZU5hbWUodGhpcy5jb21wb25lbnRTdHlsZT8ubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsYXllciBvcmRlclxuICAgICAgICBpZiAoIVRoZW1lLmlzU3R5bGVOYW1lTG9hZGVkKCdsYXllci1vcmRlcicpKSB7XG4gICAgICAgICAgICBjb25zdCBsYXllck9yZGVyID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0TGF5ZXJPcmRlclRoZW1lQ1NTPy4oKTtcblxuICAgICAgICAgICAgdGhpcy5iYXNlU3R5bGUubG9hZChsYXllck9yZGVyLCB7IG5hbWU6ICdsYXllci1vcmRlcicsIGZpcnN0OiB0cnVlLCAuLi50aGlzLnN0eWxlT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIFRoZW1lLnNldExvYWRlZFN0eWxlTmFtZSgnbGF5ZXItb3JkZXInKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmR0KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkU2NvcGVkVGhlbWVTdHlsZXModGhpcy5kdCk7XG4gICAgICAgICAgICB0aGlzLl90aGVtZUNoYW5nZUxpc3RlbmVyKCgpID0+IHRoaXMuX2xvYWRTY29wZWRUaGVtZVN0eWxlcyh0aGlzLmR0KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZFNjb3BlZFRoZW1lU3R5bGVzKHByZXNldCkge1xuICAgICAgICBjb25zdCB7IGNzcyB9ID0gdGhpcy5jb21wb25lbnRTdHlsZT8uZ2V0UHJlc2V0VGhlbWU/LihwcmVzZXQsIGBbJHt0aGlzLmF0dHJTZWxlY3Rvcn1dYCkgfHwge307XG4gICAgICAgIGNvbnN0IHNjb3BlZFN0eWxlID0gdGhpcy5jb21wb25lbnRTdHlsZT8ubG9hZChjc3MsIHtcbiAgICAgICAgICAgIG5hbWU6IGAke3RoaXMuYXR0clNlbGVjdG9yfS0ke3RoaXMuY29tcG9uZW50U3R5bGU/Lm5hbWV9YCxcbiAgICAgICAgICAgIC4uLnRoaXMuc3R5bGVPcHRpb25zXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2NvcGVkU3R5bGVFbCA9IHNjb3BlZFN0eWxlPy5lbDtcbiAgICB9XG5cbiAgICBfdW5sb2FkU2NvcGVkVGhlbWVTdHlsZXMoKSB7XG4gICAgICAgIHRoaXMuc2NvcGVkU3R5bGVFbD8ucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgX3RoZW1lQ2hhbmdlTGlzdGVuZXIoY2FsbGJhY2sgPSAoKSA9PiB7fSkge1xuICAgICAgICBCYXNlLmNsZWFyTG9hZGVkU3R5bGVOYW1lcygpO1xuICAgICAgICBUaGVtZVNlcnZpY2Uub24oJ3RoZW1lOmNoYW5nZScsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBjeChhcmc6IHN0cmluZywgcmVzdD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzPy5bYXJnXSA6IHRoaXMuY29tcG9uZW50U3R5bGU/LmNsYXNzZXM/LlthcmddO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGNsYXNzZXMoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlb2YgY2xhc3NlcyA9PT0gJ3N0cmluZycgPyBjbGFzc2VzIDogYXJnO1xuICAgIH1cblxuICAgIHN4KGFyZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gdGhpcy5jb21wb25lbnRTdHlsZT8uaW5saW5lU3R5bGVzPy5bYXJnXTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHlsZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXMoeyBpbnN0YW5jZTogdGhpcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc3R5bGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnN0eWxlcyB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3goa2V5ID0gJycsIHBhcmFtcyA9IHt9KSB7XG4gICAgLy8gICAgIGNvbnN0IGNsYXNzZXMgPSB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmNvbXBvbmVudFN0eWxlPy5jbGFzc2VzIDogdGhpcy5jb21wb25lbnRTdHlsZT8uY2xhc3NlcztcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvblZhbHVlKGNsYXNzZXMoeyBpbnN0YW5jZTogdGhpcy5fZ2V0SG9zdEluc3RhbmNlKHRoaXMpIH0pLCBrZXksIHsgLi4ucGFyYW1zIH0pO1xuICAgIC8vIH1cblxuICAgIGdldCBwYXJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzWydwYXJlbnRJbnN0YW5jZSddO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { CommonModule, isPlatformBrowser } from '@angular/common';
2
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, inject, Input, NgModule, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { addClass, blockBodyScroll, removeClass, unblockBodyScroll } from '@primeuix/utils';
4
- import { SharedModule } from 'primeng/api';
2
+ import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, inject, Input, NgModule, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { blockBodyScroll, unblockBodyScroll } from '@primeuix/utils';
4
+ import { PrimeTemplate, SharedModule } from 'primeng/api';
5
5
  import { BaseComponent } from 'primeng/basecomponent';
6
6
  import { ZIndexUtils } from 'primeng/utils';
7
7
  import { BlockUiStyle } from './style/blockuistyle';
@@ -62,7 +62,7 @@ export class BlockUI extends BaseComponent {
62
62
  * template of the content
63
63
  * @group Templates
64
64
  */
65
- content;
65
+ contentTemplate;
66
66
  mask;
67
67
  _blocked = false;
68
68
  animationEndListener;
@@ -78,6 +78,20 @@ export class BlockUI extends BaseComponent {
78
78
  throw 'Target of BlockUI must implement BlockableUI interface';
79
79
  }
80
80
  }
81
+ _contentTemplate;
82
+ templates;
83
+ ngAfterContentInit() {
84
+ this.templates.forEach((item) => {
85
+ switch (item.getType()) {
86
+ case 'content':
87
+ this.contentTemplate = item.template;
88
+ break;
89
+ default:
90
+ this.contentTemplate = item.template;
91
+ break;
92
+ }
93
+ });
94
+ }
81
95
  block() {
82
96
  if (isPlatformBrowser(this.platformId)) {
83
97
  this._blocked = true;
@@ -100,14 +114,14 @@ export class BlockUI extends BaseComponent {
100
114
  // this.animationEndListener = this.renderer.listen(this.mask.nativeElement, 'animationend', this.destroyModal.bind(this));
101
115
  // TODO Add animation
102
116
  this.destroyModal();
103
- addClass(this.mask.nativeElement, 'p-overlay-mask-leave');
117
+ // addClass(this.mask.nativeElement, 'p-overlay-mask-leave');
104
118
  }
105
119
  }
106
120
  destroyModal() {
107
121
  this._blocked = false;
108
122
  if (this.mask && isPlatformBrowser(this.platformId)) {
109
123
  ZIndexUtils.clear(this.mask.nativeElement);
110
- removeClass(this.mask.nativeElement, 'p-overlay-mask-leave');
124
+ // removeClass(this.mask.nativeElement, 'p-overlay-mask-leave');
111
125
  this.renderer.removeChild(this.el.nativeElement, this.mask.nativeElement);
112
126
  unblockBodyScroll();
113
127
  }
@@ -127,16 +141,18 @@ export class BlockUI extends BaseComponent {
127
141
  }
128
142
  static ɵfac = function BlockUI_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BlockUI)(); };
129
143
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BlockUI, selectors: [["p-blockUI"], ["p-blockui"], ["p-block-ui"]], contentQueries: function BlockUI_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
130
- i0.ɵɵcontentQuery(dirIndex, _c0, 5);
144
+ i0.ɵɵcontentQuery(dirIndex, _c0, 4);
145
+ i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
131
146
  } if (rf & 2) {
132
147
  let _t;
133
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);
148
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
149
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
134
150
  } }, viewQuery: function BlockUI_Query(rf, ctx) { if (rf & 1) {
135
151
  i0.ɵɵviewQuery(_c1, 5);
136
152
  } if (rf & 2) {
137
153
  let _t;
138
154
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.mask = _t.first);
139
- } }, inputs: { target: "target", autoZIndex: [2, "autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: [2, "baseZIndex", "baseZIndex", numberAttribute], styleClass: "styleClass", blocked: "blocked" }, standalone: true, features: [i0.ɵɵProvidersFeature([BlockUiStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c2, decls: 4, vars: 11, consts: [["mask", ""], [3, "ngClass", "ngStyle"], [4, "ngTemplateOutlet"]], template: function BlockUI_Template(rf, ctx) { if (rf & 1) {
155
+ } }, inputs: { target: "target", autoZIndex: [2, "autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: [2, "baseZIndex", "baseZIndex", numberAttribute], styleClass: "styleClass", blocked: [2, "blocked", "blocked", booleanAttribute] }, standalone: true, features: [i0.ɵɵProvidersFeature([BlockUiStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c2, decls: 4, vars: 11, consts: [["mask", ""], [3, "ngClass", "ngStyle"], [4, "ngTemplateOutlet"]], template: function BlockUI_Template(rf, ctx) { if (rf & 1) {
140
156
  i0.ɵɵprojectionDef();
141
157
  i0.ɵɵelementStart(0, "div", 1, 0);
142
158
  i0.ɵɵprojection(2);
@@ -147,7 +163,7 @@ export class BlockUI extends BaseComponent {
147
163
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c3, !ctx.target))("ngStyle", i0.ɵɵpureFunction0(10, _c4));
148
164
  i0.ɵɵattribute("aria-busy", ctx.blocked)("data-pc-name", "blockui")("data-pc-section", "root");
149
165
  i0.ɵɵadvance(3);
150
- i0.ɵɵproperty("ngTemplateOutlet", ctx.content);
166
+ i0.ɵɵproperty("ngTemplateOutlet", ctx.contentTemplate || ctx._contentTemplate);
151
167
  } }, dependencies: [CommonModule, i1.NgClass, i1.NgTemplateOutlet, i1.NgStyle, SharedModule], encapsulation: 2, changeDetection: 0 });
152
168
  }
153
169
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BlockUI, [{
@@ -167,7 +183,7 @@ export class BlockUI extends BaseComponent {
167
183
  [attr.data-pc-section]="'root'"
168
184
  >
169
185
  <ng-content></ng-content>
170
- <ng-container *ngTemplateOutlet="content"></ng-container>
186
+ <ng-container *ngTemplateOutlet="contentTemplate || _contentTemplate"></ng-container>
171
187
  </div>
172
188
  `,
173
189
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -185,26 +201,30 @@ export class BlockUI extends BaseComponent {
185
201
  }], styleClass: [{
186
202
  type: Input
187
203
  }], blocked: [{
188
- type: Input
189
- }], content: [{
204
+ type: Input,
205
+ args: [{ transform: booleanAttribute }]
206
+ }], contentTemplate: [{
190
207
  type: ContentChild,
191
- args: ['content']
208
+ args: ['content', { descendants: false }]
192
209
  }], mask: [{
193
210
  type: ViewChild,
194
211
  args: ['mask']
212
+ }], templates: [{
213
+ type: ContentChildren,
214
+ args: [PrimeTemplate]
195
215
  }] }); })();
196
216
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BlockUI, { className: "BlockUI" }); })();
197
217
  export class BlockUIModule {
198
218
  static ɵfac = function BlockUIModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BlockUIModule)(); };
199
219
  static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: BlockUIModule });
200
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [BlockUI, SharedModule] });
220
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [BlockUI, SharedModule, SharedModule] });
201
221
  }
202
222
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BlockUIModule, [{
203
223
  type: NgModule,
204
224
  args: [{
205
- imports: [BlockUI],
225
+ imports: [BlockUI, SharedModule],
206
226
  exports: [BlockUI, SharedModule]
207
227
  }]
208
228
  }], null, null); })();
209
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(BlockUIModule, { imports: [BlockUI], exports: [BlockUI, SharedModule] }); })();
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2t1aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3VpL2Jsb2NrdWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQTBCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5TixPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0lBcUJ4Qyx3QkFBeUQ7O0FBbkJyRTs7O0dBR0c7QUF1QkgsTUFBTSxPQUFPLE9BQVEsU0FBUSxhQUFhO0lBQ3RDOzs7T0FHRztJQUNNLE1BQU0sQ0FBTTtJQUNyQjs7O09BR0c7SUFDcUMsVUFBVSxHQUFZLElBQUksQ0FBQztJQUNuRTs7O09BR0c7SUFDb0MsVUFBVSxHQUFXLENBQUMsQ0FBQztJQUM5RDs7O09BR0c7SUFDTSxVQUFVLENBQXFCO0lBQ3hDOzs7T0FHRztJQUNILElBQWEsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEdBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENB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Q3JDLFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUM1QjtvQkFNWSxNQUFNO2tCQUFkLEtBQUs7WUFLa0MsVUFBVTtrQkFBakQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUtDLFVBQVU7a0JBQWhELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBSzVCLFVBQVU7a0JBQWxCLEtBQUs7WUFLTyxPQUFPO2tCQUFuQixLQUFLO1lBZW1CLE9BQU87a0JBQS9CLFlBQVk7bUJBQUMsU0FBUztZQUVKLElBQUk7a0JBQXRCLFNBQVM7bUJBQUMsTUFBTTs7a0ZBMUNSLE9BQU87QUF5SHBCLE1BQU0sT0FBTyxhQUFhO3VHQUFiLGFBQWE7NERBQWIsYUFBYTtnRUFIWixPQUFPLEVBQ0UsWUFBWTs7aUZBRXRCLGFBQWE7Y0FKekIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDbEIsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQzthQUNuQzs7d0ZBQ1ksYUFBYSxjQXpIYixPQUFPLGFBQVAsT0FBTyxFQXVIRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBudW1iZXJBdHRyaWJ1dGUsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZENsYXNzLCBibG9ja0JvZHlTY3JvbGwsIHJlbW92ZUNsYXNzLCB1bmJsb2NrQm9keVNjcm9sbCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IFpJbmRleFV0aWxzIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBCbG9ja1VpU3R5bGUgfSBmcm9tICcuL3N0eWxlL2Jsb2NrdWlzdHlsZSc7XG5cbi8qKlxuICogQmxvY2tVSSBjYW4gZWl0aGVyIGJsb2NrIG90aGVyIGNvbXBvbmVudHMgb3IgdGhlIHdob2xlIHBhZ2UuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYmxvY2tVSSwgcC1ibG9ja3VpLCBwLWJsb2NrLXVpJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI21hc2tcbiAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtYnVzeV09XCJibG9ja2VkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtYmxvY2t1aS1tYXNrLWRvY3VtZW50JzogIXRhcmdldCwgJ3AtYmxvY2t1aSBwLWJsb2NrdWktbWFzayBwLW92ZXJsYXktbWFzayc6IHRydWUgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6ICdub25lJyB9XCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtbmFtZV09XCInYmxvY2t1aSdcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtCbG9ja1VpU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrVUkgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSByZWZlcnJpbmcgdG8gYW5vdGhlciBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdGFyZ2V0OiBhbnk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IG1hbmFnZSBsYXllcmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b1pJbmRleDogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogQmFzZSB6SW5kZXggdmFsdWUgdG8gdXNlIGluIGxheWVyaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGJhc2VaSW5kZXg6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogQ2xhc3Mgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgYmxvY2tlZCBzdGF0ZSBhcyBhIGJvb2xlYW4uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IGJsb2NrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibG9ja2VkO1xuICAgIH1cbiAgICBzZXQgYmxvY2tlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMubWFzayAmJiB0aGlzLm1hc2submF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHZhbCkgdGhpcy5ibG9jaygpO1xuICAgICAgICAgICAgZWxzZSB0aGlzLnVuYmxvY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Jsb2NrZWQgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogdGVtcGxhdGUgb2YgdGhlIGNvbnRlbnRcbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnY29udGVudCcpIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdtYXNrJykgbWFzazogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIF9ibG9ja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBhbmltYXRpb25FbmRMaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChCbG9ja1VpU3R5bGUpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Jsb2NrZWQpIHRoaXMuYmxvY2soKTtcblxuICAgICAgICBpZiAodGhpcy50YXJnZXQgJiYgIXRoaXMudGFyZ2V0LmdldEJsb2NrYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRocm93ICdUYXJnZXQgb2YgQmxvY2tVSSBtdXN0IGltcGxlbWVudCBCbG9ja2FibGVVSSBpbnRlcmZhY2UnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmxvY2soKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLl9ibG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICh0aGlzLm1hc2sgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldC5nZXRCbG9ja2FibGVFbGVtZW50KCkuYXBwZW5kQ2hpbGQoKHRoaXMubWFzayBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldC5nZXRCbG9ja2FibGVFbGVtZW50KCkuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgKHRoaXMubWFzayBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b1pJbmRleCkge1xuICAgICAgICAgICAgICAgIFpJbmRleFV0aWxzLnNldCgnbW9kYWwnLCAodGhpcy5tYXNrIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsIHRoaXMuYmFzZVpJbmRleCArIHRoaXMuY29uZmlnLnpJbmRleC5tb2RhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJsb2NrKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLm1hc2sgJiYgIXRoaXMuYW5pbWF0aW9uRW5kTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuYW5pbWF0aW9uRW5kTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLm1hc2submF0aXZlRWxlbWVudCwgJ2FuaW1hdGlvbmVuZCcsIHRoaXMuZGVzdHJveU1vZGFsLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgLy8gVE9ETyBBZGQgYW5pbWF0aW9uXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lNb2RhbCgpO1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5tYXNrLm5hdGl2ZUVsZW1lbnQsICdwLW92ZXJsYXktbWFzay1sZWF2ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveU1vZGFsKCkge1xuICAgICAgICB0aGlzLl9ibG9ja2VkID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLm1hc2sgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgWkluZGV4VXRpbHMuY2xlYXIodGhpcy5tYXNrLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5tYXNrLm5hdGl2ZUVsZW1lbnQsICdwLW92ZXJsYXktbWFzay1sZWF2ZScpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMubWFzay5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHVuYmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51bmJpbmRBbmltYXRpb25FbmRMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHVuYmluZEFuaW1hdGlvbkVuZExpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb25FbmRMaXN0ZW5lciAmJiB0aGlzLm1hc2spIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRW5kTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRW5kTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5ibG9jaygpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lNb2RhbCgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQmxvY2tVSV0sXG4gICAgZXhwb3J0czogW0Jsb2NrVUksIFNoYXJlZE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tVSU1vZHVsZSB7fVxuIl19
229
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(BlockUIModule, { imports: [BlockUI, SharedModule], exports: [BlockUI, SharedModule] }); })();
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2t1aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3VpL2Jsb2NrdWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFHSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLGVBQWUsRUFJZixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBWSxlQUFlLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7OztJQXFCeEMsd0JBQXFGOztBQW5Cakc7OztHQUdHO0FBdUJILE1BQU0sT0FBTyxPQUFRLFNBQVEsYUFBYTtJQUN0Qzs7O09BR0c7SUFDTSxNQUFNLENBQU07SUFDckI7OztPQUdHO0lBQ3FDLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFDbkU7OztPQUdHO0lBQ29DLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDOUQ7OztPQUdHO0lBQ00sVUFBVSxDQUFxQjtJQUN4Qzs7O09BR0c7SUFDSCxJQUE0QyxPQUFPO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsR0FBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUks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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZENsYXNzLCBibG9ja0JvZHlTY3JvbGwsIHJlbW92ZUNsYXNzLCB1bmJsb2NrQm9keVNjcm9sbCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IFpJbmRleFV0aWxzIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBCbG9ja1VpU3R5bGUgfSBmcm9tICcuL3N0eWxlL2Jsb2NrdWlzdHlsZSc7XG5cbi8qKlxuICogQmxvY2tVSSBjYW4gZWl0aGVyIGJsb2NrIG90aGVyIGNvbXBvbmVudHMgb3IgdGhlIHdob2xlIHBhZ2UuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYmxvY2tVSSwgcC1ibG9ja3VpLCBwLWJsb2NrLXVpJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI21hc2tcbiAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtYnVzeV09XCJibG9ja2VkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtYmxvY2t1aS1tYXNrLWRvY3VtZW50JzogIXRhcmdldCwgJ3AtYmxvY2t1aSBwLWJsb2NrdWktbWFzayBwLW92ZXJsYXktbWFzayc6IHRydWUgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6ICdub25lJyB9XCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtbmFtZV09XCInYmxvY2t1aSdcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGUgfHwgX2NvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbQmxvY2tVaVN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja1VJIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgbG9jYWwgbmctdGVtcGxhdGUgdmFyaWFibGUgcmVmZXJyaW5nIHRvIGFub3RoZXIgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRhcmdldDogYW55O1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBtYW5hZ2UgbGF5ZXJpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9aSW5kZXg6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIEJhc2UgekluZGV4IHZhbHVlIHRvIHVzZSBpbiBsYXllcmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBiYXNlWkluZGV4OiBudW1iZXIgPSAwO1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGJsb2NrZWQgc3RhdGUgYXMgYSBib29sZWFuLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBnZXQgYmxvY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jsb2NrZWQ7XG4gICAgfVxuICAgIHNldCBibG9ja2VkKHZhbDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5tYXNrICYmIHRoaXMubWFzay5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAodmFsKSB0aGlzLmJsb2NrKCk7XG4gICAgICAgICAgICBlbHNlIHRoaXMudW5ibG9jaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fYmxvY2tlZCA9IHZhbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiB0ZW1wbGF0ZSBvZiB0aGUgY29udGVudFxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjb250ZW50JywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnbWFzaycpIG1hc2s6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgICBfYmxvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgYW5pbWF0aW9uRW5kTGlzdGVuZXI6IFZvaWRGdW5jdGlvbiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQmxvY2tVaVN0eWxlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmICh0aGlzLl9ibG9ja2VkKSB0aGlzLmJsb2NrKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0ICYmICF0aGlzLnRhcmdldC5nZXRCbG9ja2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aHJvdyAnVGFyZ2V0IG9mIEJsb2NrVUkgbXVzdCBpbXBsZW1lbnQgQmxvY2thYmxlVUkgaW50ZXJmYWNlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9jb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICAodGhpcy50ZW1wbGF0ZXMgYXMgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29udGVudCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBibG9jaygpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Jsb2NrZWQgPSB0cnVlO1xuICAgICAgICAgICAgKHRoaXMubWFzayBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0LmdldEJsb2NrYWJsZUVsZW1lbnQoKS5hcHBlbmRDaGlsZCgodGhpcy5tYXNrIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0LmdldEJsb2NrYWJsZUVsZW1lbnQoKS5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCAodGhpcy5tYXNrIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGJsb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvWkluZGV4KSB7XG4gICAgICAgICAgICAgICAgWkluZGV4VXRpbHMuc2V0KCdtb2RhbCcsICh0aGlzLm1hc2sgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCwgdGhpcy5iYXNlWkluZGV4ICsgdGhpcy5jb25maWcuekluZGV4Lm1vZGFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmxvY2soKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMubWFzayAmJiAhdGhpcy5hbmltYXRpb25FbmRMaXN0ZW5lcikge1xuICAgICAgICAgICAgLy8gdGhpcy5hbmltYXRpb25FbmRMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMubWFzay5uYXRpdmVFbGVtZW50LCAnYW5pbWF0aW9uZW5kJywgdGhpcy5kZXN0cm95TW9kYWwuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAvLyBUT0RPIEFkZCBhbmltYXRpb25cbiAgICAgICAgICAgIHRoaXMuZGVzdHJveU1vZGFsKCk7XG4gICAgICAgICAgICAvLyBhZGRDbGFzcyh0aGlzLm1hc2submF0aXZlRWxlbWVudCwgJ3Atb3ZlcmxheS1tYXNrLWxlYXZlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95TW9kYWwoKSB7XG4gICAgICAgIHRoaXMuX2Jsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMubWFzayAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBaSW5kZXhVdGlscy5jbGVhcih0aGlzLm1hc2submF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAvLyByZW1vdmVDbGFzcyh0aGlzLm1hc2submF0aXZlRWxlbWVudCwgJ3Atb3ZlcmxheS1tYXNrLWxlYXZlJyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5tYXNrLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgdW5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVuYmluZEFuaW1hdGlvbkVuZExpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdW5iaW5kQW5pbWF0aW9uRW5kTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbkVuZExpc3RlbmVyICYmIHRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25FbmRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25FbmRMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJsb2NrKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveU1vZGFsKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtCbG9ja1VJLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtCbG9ja1VJLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEJsb2NrVUlNb2R1bGUge31cbiJdfQ==