primeng 18.0.1 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1078) hide show
  1. package/base/style/basestyle.d.ts +11 -11
  2. package/config/themeprovider.d.ts +6 -0
  3. package/confirmdialog/confirmdialog.d.ts +1 -0
  4. package/dynamicdialog/dynamicdialog.d.ts +2 -2
  5. package/fesm2022/primeng-accordion.mjs +10 -10
  6. package/fesm2022/primeng-accordion.mjs.map +1 -1
  7. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  8. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  9. package/fesm2022/primeng-api.mjs +5 -5
  10. package/fesm2022/primeng-api.mjs.map +1 -1
  11. package/fesm2022/primeng-autocomplete.mjs +2 -2
  12. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  13. package/fesm2022/primeng-autofocus.mjs +1 -1
  14. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  15. package/fesm2022/primeng-avatar.mjs +2 -2
  16. package/fesm2022/primeng-avatar.mjs.map +1 -1
  17. package/fesm2022/primeng-avatargroup.mjs +2 -2
  18. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  19. package/fesm2022/primeng-badge.mjs +3 -3
  20. package/fesm2022/primeng-badge.mjs.map +1 -1
  21. package/fesm2022/primeng-basecomponent.mjs +1 -1
  22. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  23. package/fesm2022/primeng-blockui.mjs +2 -2
  24. package/fesm2022/primeng-blockui.mjs.map +1 -1
  25. package/fesm2022/primeng-breadcrumb.mjs +2 -2
  26. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  27. package/fesm2022/primeng-button.mjs +5 -5
  28. package/fesm2022/primeng-button.mjs.map +1 -1
  29. package/fesm2022/primeng-buttongroup.mjs +2 -2
  30. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  31. package/fesm2022/primeng-calendar.mjs +4 -4
  32. package/fesm2022/primeng-calendar.mjs.map +1 -1
  33. package/fesm2022/primeng-card.mjs +2 -2
  34. package/fesm2022/primeng-card.mjs.map +1 -1
  35. package/fesm2022/primeng-carousel.mjs +2 -2
  36. package/fesm2022/primeng-carousel.mjs.map +1 -1
  37. package/fesm2022/primeng-cascadeselect.mjs +4 -4
  38. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  39. package/fesm2022/primeng-chart.mjs +2 -2
  40. package/fesm2022/primeng-chart.mjs.map +1 -1
  41. package/fesm2022/primeng-checkbox.mjs +2 -2
  42. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  43. package/fesm2022/primeng-chip.mjs +2 -2
  44. package/fesm2022/primeng-chip.mjs.map +1 -1
  45. package/fesm2022/primeng-colorpicker.mjs +2 -2
  46. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  47. package/fesm2022/primeng-config.mjs +14 -12
  48. package/fesm2022/primeng-config.mjs.map +1 -1
  49. package/fesm2022/primeng-confirmdialog.mjs +11 -8
  50. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  51. package/fesm2022/primeng-confirmpopup.mjs +2 -2
  52. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  53. package/fesm2022/primeng-contextmenu.mjs +5 -5
  54. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  55. package/fesm2022/primeng-dataview.mjs +2 -2
  56. package/fesm2022/primeng-dataview.mjs.map +1 -1
  57. package/fesm2022/primeng-datepicker.mjs +2 -2
  58. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  59. package/fesm2022/primeng-defer.mjs +1 -1
  60. package/fesm2022/primeng-dialog.mjs +2 -2
  61. package/fesm2022/primeng-dialog.mjs.map +1 -1
  62. package/fesm2022/primeng-divider.mjs +2 -2
  63. package/fesm2022/primeng-divider.mjs.map +1 -1
  64. package/fesm2022/primeng-dock.mjs +2 -2
  65. package/fesm2022/primeng-dock.mjs.map +1 -1
  66. package/fesm2022/primeng-dragdrop.mjs +2 -2
  67. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  68. package/fesm2022/primeng-drawer.mjs +2 -2
  69. package/fesm2022/primeng-drawer.mjs.map +1 -1
  70. package/fesm2022/primeng-dropdown.mjs +4 -4
  71. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  72. package/fesm2022/primeng-dynamicdialog.mjs +7 -7
  73. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  74. package/fesm2022/primeng-editor.mjs +2 -2
  75. package/fesm2022/primeng-editor.mjs.map +1 -1
  76. package/fesm2022/primeng-fieldset.mjs +2 -2
  77. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  78. package/fesm2022/primeng-fileupload.mjs +2 -2
  79. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  80. package/fesm2022/primeng-floatlabel.mjs +2 -2
  81. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  82. package/fesm2022/primeng-fluid.mjs +2 -2
  83. package/fesm2022/primeng-fluid.mjs.map +1 -1
  84. package/fesm2022/primeng-focustrap.mjs +1 -1
  85. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  86. package/fesm2022/primeng-galleria.mjs +10 -10
  87. package/fesm2022/primeng-galleria.mjs.map +1 -1
  88. package/fesm2022/primeng-iconfield.mjs +2 -2
  89. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  90. package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
  91. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  92. package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
  93. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  94. package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
  95. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  96. package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
  97. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  98. package/fesm2022/primeng-icons-angledown.mjs +2 -2
  99. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  100. package/fesm2022/primeng-icons-angleleft.mjs +2 -2
  101. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  102. package/fesm2022/primeng-icons-angleright.mjs +2 -2
  103. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  104. package/fesm2022/primeng-icons-angleup.mjs +2 -2
  105. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  106. package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
  107. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  108. package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
  109. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  110. package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
  111. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  112. package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
  113. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  114. package/fesm2022/primeng-icons-arrowright.mjs +2 -2
  115. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  116. package/fesm2022/primeng-icons-arrowup.mjs +2 -2
  117. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  118. package/fesm2022/primeng-icons-ban.mjs +2 -2
  119. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  120. package/fesm2022/primeng-icons-bars.mjs +2 -2
  121. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  122. package/fesm2022/primeng-icons-baseicon.mjs +2 -2
  123. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  124. package/fesm2022/primeng-icons-blank.mjs +2 -2
  125. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  126. package/fesm2022/primeng-icons-calendar.mjs +2 -2
  127. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  128. package/fesm2022/primeng-icons-caretleft.mjs +2 -2
  129. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  130. package/fesm2022/primeng-icons-caretright.mjs +2 -2
  131. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  132. package/fesm2022/primeng-icons-check.mjs +2 -2
  133. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  134. package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
  135. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  136. package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
  137. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  138. package/fesm2022/primeng-icons-chevronright.mjs +2 -2
  139. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  140. package/fesm2022/primeng-icons-chevronup.mjs +2 -2
  141. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  142. package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
  143. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  144. package/fesm2022/primeng-icons-eye.mjs +2 -2
  145. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  146. package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
  147. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  148. package/fesm2022/primeng-icons-filter.mjs +2 -2
  149. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  150. package/fesm2022/primeng-icons-filterslash.mjs +2 -2
  151. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  152. package/fesm2022/primeng-icons-home.mjs +2 -2
  153. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  154. package/fesm2022/primeng-icons-infocircle.mjs +2 -2
  155. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  156. package/fesm2022/primeng-icons-minus.mjs +2 -2
  157. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  158. package/fesm2022/primeng-icons-pencil.mjs +2 -2
  159. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  160. package/fesm2022/primeng-icons-plus.mjs +2 -2
  161. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  162. package/fesm2022/primeng-icons-refresh.mjs +2 -2
  163. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  164. package/fesm2022/primeng-icons-search.mjs +2 -2
  165. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  166. package/fesm2022/primeng-icons-searchminus.mjs +2 -2
  167. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  168. package/fesm2022/primeng-icons-searchplus.mjs +2 -2
  169. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  170. package/fesm2022/primeng-icons-sortalt.mjs +2 -2
  171. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  172. package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
  173. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  174. package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
  175. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  176. package/fesm2022/primeng-icons-spinner.mjs +2 -2
  177. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  178. package/fesm2022/primeng-icons-star.mjs +2 -2
  179. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  180. package/fesm2022/primeng-icons-starfill.mjs +2 -2
  181. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  182. package/fesm2022/primeng-icons-thlarge.mjs +2 -2
  183. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  184. package/fesm2022/primeng-icons-times.mjs +2 -2
  185. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  186. package/fesm2022/primeng-icons-timescircle.mjs +2 -2
  187. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  188. package/fesm2022/primeng-icons-trash.mjs +2 -2
  189. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  190. package/fesm2022/primeng-icons-undo.mjs +2 -2
  191. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  192. package/fesm2022/primeng-icons-upload.mjs +2 -2
  193. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  194. package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
  195. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  196. package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
  197. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  198. package/fesm2022/primeng-iftalabel.mjs +2 -2
  199. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  200. package/fesm2022/primeng-image.mjs +2 -2
  201. package/fesm2022/primeng-image.mjs.map +1 -1
  202. package/fesm2022/primeng-imagecompare.mjs +2 -2
  203. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  204. package/fesm2022/primeng-inplace.mjs +6 -6
  205. package/fesm2022/primeng-inplace.mjs.map +1 -1
  206. package/fesm2022/primeng-inputgroup.mjs +2 -2
  207. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  208. package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
  209. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  210. package/fesm2022/primeng-inputicon.mjs +2 -2
  211. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  212. package/fesm2022/primeng-inputmask.mjs +2 -2
  213. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  214. package/fesm2022/primeng-inputnumber.mjs +2 -2
  215. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  216. package/fesm2022/primeng-inputotp.mjs +2 -2
  217. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  218. package/fesm2022/primeng-inputswitch.mjs +2 -2
  219. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  220. package/fesm2022/primeng-inputtext.mjs +1 -1
  221. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  222. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  223. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  224. package/fesm2022/primeng-keyfilter.mjs +1 -1
  225. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  226. package/fesm2022/primeng-knob.mjs +2 -2
  227. package/fesm2022/primeng-knob.mjs.map +1 -1
  228. package/fesm2022/primeng-listbox.mjs +2 -2
  229. package/fesm2022/primeng-listbox.mjs.map +1 -1
  230. package/fesm2022/primeng-megamenu.mjs +4 -4
  231. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  232. package/fesm2022/primeng-menu.mjs +5 -5
  233. package/fesm2022/primeng-menu.mjs.map +1 -1
  234. package/fesm2022/primeng-menubar.mjs +4 -4
  235. package/fesm2022/primeng-menubar.mjs.map +1 -1
  236. package/fesm2022/primeng-message.mjs +2 -2
  237. package/fesm2022/primeng-message.mjs.map +1 -1
  238. package/fesm2022/primeng-messages.mjs +2 -2
  239. package/fesm2022/primeng-messages.mjs.map +1 -1
  240. package/fesm2022/primeng-metergroup.mjs +4 -4
  241. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  242. package/fesm2022/primeng-multiselect.mjs +4 -4
  243. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  244. package/fesm2022/primeng-orderlist.mjs +2 -2
  245. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  246. package/fesm2022/primeng-organizationchart.mjs +5 -5
  247. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  248. package/fesm2022/primeng-overlay.mjs +2 -2
  249. package/fesm2022/primeng-overlay.mjs.map +1 -1
  250. package/fesm2022/primeng-overlaybadge.mjs +2 -2
  251. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  252. package/fesm2022/primeng-overlaypanel.mjs +2 -2
  253. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  254. package/fesm2022/primeng-paginator.mjs +2 -2
  255. package/fesm2022/primeng-paginator.mjs.map +1 -1
  256. package/fesm2022/primeng-panel.mjs +2 -2
  257. package/fesm2022/primeng-panel.mjs.map +1 -1
  258. package/fesm2022/primeng-panelmenu.mjs +7 -7
  259. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  260. package/fesm2022/primeng-password.mjs +4 -4
  261. package/fesm2022/primeng-password.mjs.map +1 -1
  262. package/fesm2022/primeng-picklist.mjs +2 -2
  263. package/fesm2022/primeng-picklist.mjs.map +1 -1
  264. package/fesm2022/primeng-popover.mjs +2 -2
  265. package/fesm2022/primeng-popover.mjs.map +1 -1
  266. package/fesm2022/primeng-progressbar.mjs +2 -2
  267. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  268. package/fesm2022/primeng-progressspinner.mjs +2 -2
  269. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  270. package/fesm2022/primeng-radiobutton.mjs +2 -2
  271. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  272. package/fesm2022/primeng-rating.mjs +2 -2
  273. package/fesm2022/primeng-rating.mjs.map +1 -1
  274. package/fesm2022/primeng-ripple.mjs +1 -1
  275. package/fesm2022/primeng-ripple.mjs.map +1 -1
  276. package/fesm2022/primeng-scroller.mjs +2 -2
  277. package/fesm2022/primeng-scroller.mjs.map +1 -1
  278. package/fesm2022/primeng-scrollpanel.mjs +2 -2
  279. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  280. package/fesm2022/primeng-scrolltop.mjs +2 -2
  281. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  282. package/fesm2022/primeng-select.mjs +4 -4
  283. package/fesm2022/primeng-select.mjs.map +1 -1
  284. package/fesm2022/primeng-selectbutton.mjs +2 -2
  285. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  286. package/fesm2022/primeng-sidebar.mjs +2 -2
  287. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  288. package/fesm2022/primeng-skeleton.mjs +2 -2
  289. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  290. package/fesm2022/primeng-slider.mjs +2 -2
  291. package/fesm2022/primeng-slider.mjs.map +1 -1
  292. package/fesm2022/primeng-speeddial.mjs +2 -2
  293. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  294. package/fesm2022/primeng-splitbutton.mjs +2 -2
  295. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  296. package/fesm2022/primeng-splitter.mjs +4 -4
  297. package/fesm2022/primeng-splitter.mjs.map +1 -1
  298. package/fesm2022/primeng-stepper.mjs +16 -16
  299. package/fesm2022/primeng-stepper.mjs.map +1 -1
  300. package/fesm2022/primeng-steps.mjs +2 -2
  301. package/fesm2022/primeng-steps.mjs.map +1 -1
  302. package/fesm2022/primeng-styleclass.mjs +1 -1
  303. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  304. package/fesm2022/primeng-table.mjs +64 -38
  305. package/fesm2022/primeng-table.mjs.map +1 -1
  306. package/fesm2022/primeng-tabmenu.mjs +2 -2
  307. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  308. package/fesm2022/primeng-tabs.mjs +11 -11
  309. package/fesm2022/primeng-tabs.mjs.map +1 -1
  310. package/fesm2022/primeng-tabview.mjs +4 -4
  311. package/fesm2022/primeng-tabview.mjs.map +1 -1
  312. package/fesm2022/primeng-tag.mjs +2 -2
  313. package/fesm2022/primeng-tag.mjs.map +1 -1
  314. package/fesm2022/primeng-terminal.mjs +2 -2
  315. package/fesm2022/primeng-terminal.mjs.map +1 -1
  316. package/fesm2022/primeng-textarea.mjs +1 -1
  317. package/fesm2022/primeng-textarea.mjs.map +1 -1
  318. package/fesm2022/primeng-tieredmenu.mjs +4 -4
  319. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  320. package/fesm2022/primeng-timeline.mjs +2 -2
  321. package/fesm2022/primeng-timeline.mjs.map +1 -1
  322. package/fesm2022/primeng-toast.mjs +4 -4
  323. package/fesm2022/primeng-toast.mjs.map +1 -1
  324. package/fesm2022/primeng-togglebutton.mjs +3 -3
  325. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  326. package/fesm2022/primeng-toggleswitch.mjs +2 -2
  327. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  328. package/fesm2022/primeng-toolbar.mjs +2 -2
  329. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  330. package/fesm2022/primeng-tooltip.mjs +1 -1
  331. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  332. package/fesm2022/primeng-tree.mjs +4 -4
  333. package/fesm2022/primeng-tree.mjs.map +1 -1
  334. package/fesm2022/primeng-treeselect.mjs +2 -2
  335. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  336. package/fesm2022/primeng-treetable.mjs +24 -24
  337. package/fesm2022/primeng-treetable.mjs.map +1 -1
  338. package/package.json +163 -511
  339. package/speeddial/speeddial.d.ts +2 -2
  340. package/esm2022/accordion/accordion.mjs +0 -1281
  341. package/esm2022/accordion/primeng-accordion.mjs +0 -5
  342. package/esm2022/accordion/public_api.mjs +0 -3
  343. package/esm2022/accordion/style/accordionstyle.mjs +0 -163
  344. package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
  345. package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
  346. package/esm2022/animateonscroll/public_api.mjs +0 -2
  347. package/esm2022/api/blockableui.mjs +0 -2
  348. package/esm2022/api/confirmaeventtype.mjs +0 -10
  349. package/esm2022/api/confirmation.mjs +0 -2
  350. package/esm2022/api/confirmationservice.mjs +0 -43
  351. package/esm2022/api/contextmenuservice.mjs +0 -22
  352. package/esm2022/api/filtermatchmode.mjs +0 -23
  353. package/esm2022/api/filtermetadata.mjs +0 -2
  354. package/esm2022/api/filteroperator.mjs +0 -5
  355. package/esm2022/api/filterservice.mjs +0 -224
  356. package/esm2022/api/lazyloadevent.mjs +0 -2
  357. package/esm2022/api/lazyloadmeta.mjs +0 -2
  358. package/esm2022/api/megamenuitem.mjs +0 -2
  359. package/esm2022/api/menuitem.mjs +0 -2
  360. package/esm2022/api/messageservice.mjs +0 -47
  361. package/esm2022/api/overlayoptions.mjs +0 -2
  362. package/esm2022/api/overlayservice.mjs +0 -19
  363. package/esm2022/api/primeicons.mjs +0 -314
  364. package/esm2022/api/primeng-api.mjs +0 -5
  365. package/esm2022/api/public_api.mjs +0 -33
  366. package/esm2022/api/scrolleroptions.mjs +0 -2
  367. package/esm2022/api/selectitem.mjs +0 -2
  368. package/esm2022/api/selectitemgroup.mjs +0 -2
  369. package/esm2022/api/shared.mjs +0 -76
  370. package/esm2022/api/sortevent.mjs +0 -2
  371. package/esm2022/api/sortmeta.mjs +0 -2
  372. package/esm2022/api/tablestate.mjs +0 -2
  373. package/esm2022/api/toastmessage.mjs +0 -2
  374. package/esm2022/api/tooltipoptions.mjs +0 -2
  375. package/esm2022/api/translation.mjs +0 -2
  376. package/esm2022/api/translationkeys.mjs +0 -51
  377. package/esm2022/api/treedragdropservice.mjs +0 -21
  378. package/esm2022/api/treenode.mjs +0 -2
  379. package/esm2022/api/treenodedragevent.mjs +0 -2
  380. package/esm2022/api/treetablenode.mjs +0 -2
  381. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  382. package/esm2022/autocomplete/autocomplete.mjs +0 -2284
  383. package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
  384. package/esm2022/autocomplete/public_api.mjs +0 -4
  385. package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -409
  386. package/esm2022/autofocus/autofocus.mjs +0 -86
  387. package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
  388. package/esm2022/autofocus/public_api.mjs +0 -2
  389. package/esm2022/avatar/avatar.mjs +0 -193
  390. package/esm2022/avatar/primeng-avatar.mjs +0 -5
  391. package/esm2022/avatar/public_api.mjs +0 -3
  392. package/esm2022/avatar/style/avatarstyle.mjs +0 -130
  393. package/esm2022/avatargroup/avatargroup.mjs +0 -80
  394. package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
  395. package/esm2022/avatargroup/public_api.mjs +0 -3
  396. package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
  397. package/esm2022/badge/badge.mjs +0 -339
  398. package/esm2022/badge/primeng-badge.mjs +0 -5
  399. package/esm2022/badge/public_api.mjs +0 -3
  400. package/esm2022/badge/style/badgestyle.mjs +0 -143
  401. package/esm2022/base/base.mjs +0 -19
  402. package/esm2022/base/primeng-base.mjs +0 -5
  403. package/esm2022/base/public_api.mjs +0 -3
  404. package/esm2022/base/style/basestyle.mjs +0 -256
  405. package/esm2022/basecomponent/basecomponent.mjs +0 -160
  406. package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
  407. package/esm2022/basecomponent/public_api.mjs +0 -3
  408. package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
  409. package/esm2022/blockui/blockui.interface.mjs +0 -2
  410. package/esm2022/blockui/blockui.mjs +0 -230
  411. package/esm2022/blockui/primeng-blockui.mjs +0 -5
  412. package/esm2022/blockui/public_api.mjs +0 -4
  413. package/esm2022/blockui/style/blockuistyle.mjs +0 -50
  414. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  415. package/esm2022/breadcrumb/breadcrumb.mjs +0 -601
  416. package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
  417. package/esm2022/breadcrumb/public_api.mjs +0 -4
  418. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
  419. package/esm2022/button/button.interface.mjs +0 -2
  420. package/esm2022/button/button.mjs +0 -923
  421. package/esm2022/button/primeng-button.mjs +0 -5
  422. package/esm2022/button/public_api.mjs +0 -4
  423. package/esm2022/button/style/buttonstyle.mjs +0 -707
  424. package/esm2022/buttongroup/buttongroup.mjs +0 -47
  425. package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
  426. package/esm2022/buttongroup/public_api.mjs +0 -3
  427. package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
  428. package/esm2022/calendar/calendar.interface.mjs +0 -2
  429. package/esm2022/calendar/calendar.mjs +0 -4567
  430. package/esm2022/calendar/primeng-calendar.mjs +0 -5
  431. package/esm2022/calendar/public_api.mjs +0 -4
  432. package/esm2022/calendar/style/calendarstyle.mjs +0 -472
  433. package/esm2022/card/card.interface.mjs +0 -2
  434. package/esm2022/card/card.mjs +0 -293
  435. package/esm2022/card/primeng-card.mjs +0 -5
  436. package/esm2022/card/public_api.mjs +0 -4
  437. package/esm2022/card/style/cardstyle.mjs +0 -100
  438. package/esm2022/carousel/carousel.interface.mjs +0 -2
  439. package/esm2022/carousel/carousel.mjs +0 -1213
  440. package/esm2022/carousel/primeng-carousel.mjs +0 -5
  441. package/esm2022/carousel/public_api.mjs +0 -4
  442. package/esm2022/carousel/style/carouselstyle.mjs +0 -234
  443. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  444. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1878
  445. package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
  446. package/esm2022/cascadeselect/public_api.mjs +0 -4
  447. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
  448. package/esm2022/chart/chart.mjs +0 -210
  449. package/esm2022/chart/primeng-chart.mjs +0 -5
  450. package/esm2022/chart/public_api.mjs +0 -3
  451. package/esm2022/chart/style/chartstyle.mjs +0 -36
  452. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  453. package/esm2022/checkbox/checkbox.mjs +0 -468
  454. package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
  455. package/esm2022/checkbox/public_api.mjs +0 -4
  456. package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
  457. package/esm2022/chip/chip.interface.mjs +0 -2
  458. package/esm2022/chip/chip.mjs +0 -358
  459. package/esm2022/chip/primeng-chip.mjs +0 -5
  460. package/esm2022/chip/public_api.mjs +0 -4
  461. package/esm2022/chip/style/chipstyle.mjs +0 -104
  462. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  463. package/esm2022/colorpicker/colorpicker.mjs +0 -856
  464. package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
  465. package/esm2022/colorpicker/public_api.mjs +0 -4
  466. package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
  467. package/esm2022/config/primeng-config.mjs +0 -5
  468. package/esm2022/config/primeng.mjs +0 -185
  469. package/esm2022/config/provideprimeng.mjs +0 -19
  470. package/esm2022/config/public_api.mjs +0 -4
  471. package/esm2022/config/themeprovider.mjs +0 -68
  472. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  473. package/esm2022/confirmdialog/confirmdialog.mjs +0 -854
  474. package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
  475. package/esm2022/confirmdialog/public_api.mjs +0 -4
  476. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
  477. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  478. package/esm2022/confirmpopup/confirmpopup.mjs +0 -647
  479. package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
  480. package/esm2022/confirmpopup/public_api.mjs +0 -4
  481. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
  482. package/esm2022/contextmenu/contextmenu.mjs +0 -1467
  483. package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
  484. package/esm2022/contextmenu/public_api.mjs +0 -3
  485. package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
  486. package/esm2022/dataview/dataview.interface.mjs +0 -2
  487. package/esm2022/dataview/dataview.mjs +0 -819
  488. package/esm2022/dataview/primeng-dataview.mjs +0 -5
  489. package/esm2022/dataview/public_api.mjs +0 -4
  490. package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
  491. package/esm2022/datepicker/datepicker.interface.mjs +0 -2
  492. package/esm2022/datepicker/datepicker.mjs +0 -4580
  493. package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
  494. package/esm2022/datepicker/public_api.mjs +0 -4
  495. package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
  496. package/esm2022/defer/defer.mjs +0 -100
  497. package/esm2022/defer/primeng-defer.mjs +0 -5
  498. package/esm2022/defer/public_api.mjs +0 -2
  499. package/esm2022/dialog/dialog.interface.mjs +0 -2
  500. package/esm2022/dialog/dialog.mjs +0 -1430
  501. package/esm2022/dialog/primeng-dialog.mjs +0 -5
  502. package/esm2022/dialog/public_api.mjs +0 -4
  503. package/esm2022/dialog/style/dialogstyle.mjs +0 -283
  504. package/esm2022/divider/divider.mjs +0 -117
  505. package/esm2022/divider/primeng-divider.mjs +0 -5
  506. package/esm2022/divider/public_api.mjs +0 -3
  507. package/esm2022/divider/style/dividerstyle.mjs +0 -138
  508. package/esm2022/dock/dock.interface.mjs +0 -2
  509. package/esm2022/dock/dock.mjs +0 -465
  510. package/esm2022/dock/primeng-dock.mjs +0 -5
  511. package/esm2022/dock/public_api.mjs +0 -4
  512. package/esm2022/dock/style/dockstyle.mjs +0 -210
  513. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  514. package/esm2022/dom/domhandler.mjs +0 -725
  515. package/esm2022/dom/primeng-dom.mjs +0 -5
  516. package/esm2022/dom/public_api.mjs +0 -3
  517. package/esm2022/dragdrop/dragdrop.mjs +0 -323
  518. package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
  519. package/esm2022/dragdrop/public_api.mjs +0 -2
  520. package/esm2022/drawer/drawer.interface.mjs +0 -2
  521. package/esm2022/drawer/drawer.mjs +0 -705
  522. package/esm2022/drawer/primeng-drawer.mjs +0 -5
  523. package/esm2022/drawer/public_api.mjs +0 -4
  524. package/esm2022/drawer/style/drawerstyle.mjs +0 -283
  525. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  526. package/esm2022/dropdown/dropdown.mjs +0 -2506
  527. package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
  528. package/esm2022/dropdown/public_api.mjs +0 -4
  529. package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
  530. package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
  531. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
  532. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  533. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  534. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -879
  535. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
  536. package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
  537. package/esm2022/dynamicdialog/public_api.mjs +0 -8
  538. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
  539. package/esm2022/editor/editor.interface.mjs +0 -2
  540. package/esm2022/editor/editor.mjs +0 -443
  541. package/esm2022/editor/primeng-editor.mjs +0 -5
  542. package/esm2022/editor/public_api.mjs +0 -4
  543. package/esm2022/editor/style/editorstyle.mjs +0 -1008
  544. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  545. package/esm2022/fieldset/fieldset.mjs +0 -455
  546. package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
  547. package/esm2022/fieldset/public_api.mjs +0 -4
  548. package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
  549. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  550. package/esm2022/fileupload/fileupload.mjs +0 -1647
  551. package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
  552. package/esm2022/fileupload/public_api.mjs +0 -4
  553. package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
  554. package/esm2022/floatlabel/floatlabel.mjs +0 -61
  555. package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
  556. package/esm2022/floatlabel/public_api.mjs +0 -3
  557. package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
  558. package/esm2022/fluid/fluid.mjs +0 -50
  559. package/esm2022/fluid/primeng-fluid.mjs +0 -5
  560. package/esm2022/fluid/public_api.mjs +0 -3
  561. package/esm2022/fluid/style/fluidstyle.mjs +0 -38
  562. package/esm2022/focustrap/focustrap.mjs +0 -104
  563. package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
  564. package/esm2022/focustrap/public_api.mjs +0 -2
  565. package/esm2022/galleria/galleria.interface.mjs +0 -2
  566. package/esm2022/galleria/galleria.mjs +0 -1867
  567. package/esm2022/galleria/primeng-galleria.mjs +0 -5
  568. package/esm2022/galleria/public_api.mjs +0 -4
  569. package/esm2022/galleria/style/galleriastyle.mjs +0 -644
  570. package/esm2022/iconfield/iconfield.mjs +0 -73
  571. package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
  572. package/esm2022/iconfield/public_api.mjs +0 -3
  573. package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
  574. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
  575. package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
  576. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  577. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
  578. package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
  579. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  580. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
  581. package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
  582. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  583. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
  584. package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
  585. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  586. package/esm2022/icons/angledown/angledown.mjs +0 -32
  587. package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
  588. package/esm2022/icons/angledown/public_api.mjs +0 -2
  589. package/esm2022/icons/angleleft/angleleft.mjs +0 -32
  590. package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
  591. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  592. package/esm2022/icons/angleright/angleright.mjs +0 -32
  593. package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
  594. package/esm2022/icons/angleright/public_api.mjs +0 -2
  595. package/esm2022/icons/angleup/angleup.mjs +0 -32
  596. package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
  597. package/esm2022/icons/angleup/public_api.mjs +0 -2
  598. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
  599. package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
  600. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  601. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
  602. package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
  603. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  604. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
  605. package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
  606. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  607. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
  608. package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
  609. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  610. package/esm2022/icons/arrowright/arrowright.mjs +0 -34
  611. package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
  612. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  613. package/esm2022/icons/arrowup/arrowup.mjs +0 -53
  614. package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
  615. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  616. package/esm2022/icons/ban/ban.mjs +0 -51
  617. package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
  618. package/esm2022/icons/ban/public_api.mjs +0 -2
  619. package/esm2022/icons/bars/bars.mjs +0 -34
  620. package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
  621. package/esm2022/icons/bars/public_api.mjs +0 -2
  622. package/esm2022/icons/baseicon/baseicon.mjs +0 -54
  623. package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
  624. package/esm2022/icons/baseicon/public_api.mjs +0 -3
  625. package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
  626. package/esm2022/icons/blank/blank.mjs +0 -26
  627. package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
  628. package/esm2022/icons/blank/public_api.mjs +0 -2
  629. package/esm2022/icons/calendar/calendar.mjs +0 -32
  630. package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
  631. package/esm2022/icons/calendar/public_api.mjs +0 -2
  632. package/esm2022/icons/caretleft/caretleft.mjs +0 -32
  633. package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
  634. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  635. package/esm2022/icons/caretright/caretright.mjs +0 -32
  636. package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
  637. package/esm2022/icons/caretright/public_api.mjs +0 -2
  638. package/esm2022/icons/check/check.mjs +0 -32
  639. package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
  640. package/esm2022/icons/check/public_api.mjs +0 -2
  641. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
  642. package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
  643. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  644. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
  645. package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
  646. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  647. package/esm2022/icons/chevronright/chevronright.mjs +0 -32
  648. package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
  649. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  650. package/esm2022/icons/chevronup/chevronup.mjs +0 -32
  651. package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
  652. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  653. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
  654. package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
  655. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  656. package/esm2022/icons/eye/eye.mjs +0 -34
  657. package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
  658. package/esm2022/icons/eye/public_api.mjs +0 -2
  659. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
  660. package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
  661. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  662. package/esm2022/icons/filter/filter.mjs +0 -51
  663. package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
  664. package/esm2022/icons/filter/public_api.mjs +0 -2
  665. package/esm2022/icons/filterslash/filterslash.mjs +0 -53
  666. package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
  667. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  668. package/esm2022/icons/home/home.mjs +0 -53
  669. package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
  670. package/esm2022/icons/home/public_api.mjs +0 -2
  671. package/esm2022/icons/infocircle/infocircle.mjs +0 -53
  672. package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
  673. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  674. package/esm2022/icons/minus/minus.mjs +0 -32
  675. package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
  676. package/esm2022/icons/minus/public_api.mjs +0 -2
  677. package/esm2022/icons/pencil/pencil.mjs +0 -51
  678. package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
  679. package/esm2022/icons/pencil/public_api.mjs +0 -2
  680. package/esm2022/icons/plus/plus.mjs +0 -51
  681. package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
  682. package/esm2022/icons/plus/public_api.mjs +0 -2
  683. package/esm2022/icons/primeng-icons.mjs +0 -5
  684. package/esm2022/icons/public_api.mjs +0 -58
  685. package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
  686. package/esm2022/icons/refresh/public_api.mjs +0 -2
  687. package/esm2022/icons/refresh/refresh.mjs +0 -53
  688. package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
  689. package/esm2022/icons/search/public_api.mjs +0 -2
  690. package/esm2022/icons/search/search.mjs +0 -53
  691. package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
  692. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  693. package/esm2022/icons/searchminus/searchminus.mjs +0 -53
  694. package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
  695. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  696. package/esm2022/icons/searchplus/searchplus.mjs +0 -53
  697. package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
  698. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  699. package/esm2022/icons/sortalt/sortalt.mjs +0 -57
  700. package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
  701. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  702. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
  703. package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
  704. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  705. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
  706. package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
  707. package/esm2022/icons/spinner/public_api.mjs +0 -2
  708. package/esm2022/icons/spinner/spinner.mjs +0 -51
  709. package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
  710. package/esm2022/icons/star/public_api.mjs +0 -2
  711. package/esm2022/icons/star/star.mjs +0 -51
  712. package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
  713. package/esm2022/icons/starfill/public_api.mjs +0 -2
  714. package/esm2022/icons/starfill/starfill.mjs +0 -51
  715. package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
  716. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  717. package/esm2022/icons/thlarge/thlarge.mjs +0 -53
  718. package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
  719. package/esm2022/icons/times/public_api.mjs +0 -2
  720. package/esm2022/icons/times/times.mjs +0 -32
  721. package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
  722. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  723. package/esm2022/icons/timescircle/timescircle.mjs +0 -53
  724. package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
  725. package/esm2022/icons/trash/public_api.mjs +0 -2
  726. package/esm2022/icons/trash/trash.mjs +0 -53
  727. package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
  728. package/esm2022/icons/undo/public_api.mjs +0 -2
  729. package/esm2022/icons/undo/undo.mjs +0 -53
  730. package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
  731. package/esm2022/icons/upload/public_api.mjs +0 -2
  732. package/esm2022/icons/upload/upload.mjs +0 -53
  733. package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
  734. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  735. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
  736. package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
  737. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  738. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
  739. package/esm2022/iftalabel/iftalabel.mjs +0 -49
  740. package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
  741. package/esm2022/iftalabel/public_api.mjs +0 -3
  742. package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
  743. package/esm2022/image/image.interface.mjs +0 -2
  744. package/esm2022/image/image.mjs +0 -794
  745. package/esm2022/image/primeng-image.mjs +0 -5
  746. package/esm2022/image/public_api.mjs +0 -4
  747. package/esm2022/image/style/imagestyle.mjs +0 -219
  748. package/esm2022/imagecompare/imagecompare.mjs +0 -178
  749. package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
  750. package/esm2022/imagecompare/public_api.mjs +0 -3
  751. package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
  752. package/esm2022/inplace/inplace.interface.mjs +0 -2
  753. package/esm2022/inplace/inplace.mjs +0 -369
  754. package/esm2022/inplace/primeng-inplace.mjs +0 -5
  755. package/esm2022/inplace/public_api.mjs +0 -4
  756. package/esm2022/inplace/style/inplacestyle.mjs +0 -69
  757. package/esm2022/inputgroup/inputgroup.mjs +0 -68
  758. package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
  759. package/esm2022/inputgroup/public_api.mjs +0 -3
  760. package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
  761. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
  762. package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
  763. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  764. package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
  765. package/esm2022/inputicon/inputicon.mjs +0 -66
  766. package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
  767. package/esm2022/inputicon/public_api.mjs +0 -3
  768. package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
  769. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  770. package/esm2022/inputmask/inputmask.mjs +0 -927
  771. package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
  772. package/esm2022/inputmask/public_api.mjs +0 -4
  773. package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
  774. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  775. package/esm2022/inputnumber/inputnumber.mjs +0 -1753
  776. package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
  777. package/esm2022/inputnumber/public_api.mjs +0 -4
  778. package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
  779. package/esm2022/inputotp/inputotp.mjs +0 -425
  780. package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
  781. package/esm2022/inputotp/public_api.mjs +0 -3
  782. package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
  783. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  784. package/esm2022/inputswitch/inputswitch.mjs +0 -241
  785. package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
  786. package/esm2022/inputswitch/public_api.mjs +0 -4
  787. package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
  788. package/esm2022/inputtext/inputtext.mjs +0 -104
  789. package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
  790. package/esm2022/inputtext/public_api.mjs +0 -3
  791. package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
  792. package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
  793. package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
  794. package/esm2022/inputtextarea/public_api.mjs +0 -3
  795. package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
  796. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  797. package/esm2022/keyfilter/keyfilter.mjs +0 -263
  798. package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
  799. package/esm2022/keyfilter/public_api.mjs +0 -3
  800. package/esm2022/knob/knob.mjs +0 -471
  801. package/esm2022/knob/primeng-knob.mjs +0 -5
  802. package/esm2022/knob/public_api.mjs +0 -3
  803. package/esm2022/knob/style/knobstyle.mjs +0 -83
  804. package/esm2022/listbox/listbox.interface.mjs +0 -2
  805. package/esm2022/listbox/listbox.mjs +0 -2103
  806. package/esm2022/listbox/primeng-listbox.mjs +0 -5
  807. package/esm2022/listbox/public_api.mjs +0 -4
  808. package/esm2022/listbox/style/listboxstyle.mjs +0 -206
  809. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  810. package/esm2022/megamenu/megamenu.mjs +0 -1653
  811. package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
  812. package/esm2022/megamenu/public_api.mjs +0 -4
  813. package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
  814. package/esm2022/menu/menu.mjs +0 -1193
  815. package/esm2022/menu/primeng-menu.mjs +0 -5
  816. package/esm2022/menu/public_api.mjs +0 -3
  817. package/esm2022/menu/style/menustyle.mjs +0 -179
  818. package/esm2022/menubar/menubar.interface.mjs +0 -2
  819. package/esm2022/menubar/menubar.mjs +0 -1519
  820. package/esm2022/menubar/primeng-menubar.mjs +0 -5
  821. package/esm2022/menubar/public_api.mjs +0 -4
  822. package/esm2022/menubar/style/menubarstyle.mjs +0 -375
  823. package/esm2022/message/message.mjs +0 -445
  824. package/esm2022/message/primeng-message.mjs +0 -5
  825. package/esm2022/message/public_api.mjs +0 -3
  826. package/esm2022/message/style/messagestyle.mjs +0 -357
  827. package/esm2022/messages/messages.interface.mjs +0 -2
  828. package/esm2022/messages/messages.mjs +0 -538
  829. package/esm2022/messages/primeng-messages.mjs +0 -5
  830. package/esm2022/messages/public_api.mjs +0 -4
  831. package/esm2022/messages/style/messagesstyle.mjs +0 -229
  832. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  833. package/esm2022/metergroup/metergroup.mjs +0 -455
  834. package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
  835. package/esm2022/metergroup/public_api.mjs +0 -4
  836. package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
  837. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  838. package/esm2022/multiselect/multiselect.mjs +0 -3015
  839. package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
  840. package/esm2022/multiselect/public_api.mjs +0 -4
  841. package/esm2022/multiselect/style/multiselectstyle.mjs +0 -373
  842. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  843. package/esm2022/orderlist/orderlist.mjs +0 -1176
  844. package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
  845. package/esm2022/orderlist/public_api.mjs +0 -4
  846. package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
  847. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  848. package/esm2022/organizationchart/organizationchart.mjs +0 -607
  849. package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
  850. package/esm2022/organizationchart/public_api.mjs +0 -4
  851. package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
  852. package/esm2022/overlay/overlay.mjs +0 -688
  853. package/esm2022/overlay/primeng-overlay.mjs +0 -5
  854. package/esm2022/overlay/public_api.mjs +0 -3
  855. package/esm2022/overlay/style/overlaystyle.mjs +0 -93
  856. package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
  857. package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
  858. package/esm2022/overlaybadge/public_api.mjs +0 -3
  859. package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
  860. package/esm2022/overlaypanel/overlaypanel.mjs +0 -552
  861. package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
  862. package/esm2022/overlaypanel/public_api.mjs +0 -3
  863. package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
  864. package/esm2022/paginator/paginator.interface.mjs +0 -2
  865. package/esm2022/paginator/paginator.mjs +0 -925
  866. package/esm2022/paginator/primeng-paginator.mjs +0 -5
  867. package/esm2022/paginator/public_api.mjs +0 -4
  868. package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
  869. package/esm2022/panel/panel.mjs +0 -645
  870. package/esm2022/panel/primeng-panel.mjs +0 -5
  871. package/esm2022/panel/public_api.mjs +0 -3
  872. package/esm2022/panel/style/panelstyle.mjs +0 -120
  873. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  874. package/esm2022/panelmenu/panelmenu.mjs +0 -1651
  875. package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
  876. package/esm2022/panelmenu/public_api.mjs +0 -4
  877. package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
  878. package/esm2022/password/password.mjs +0 -1240
  879. package/esm2022/password/primeng-password.mjs +0 -5
  880. package/esm2022/password/public_api.mjs +0 -3
  881. package/esm2022/password/style/passwordstyle.mjs +0 -182
  882. package/esm2022/picklist/picklist.interface.mjs +0 -2
  883. package/esm2022/picklist/picklist.mjs +0 -2426
  884. package/esm2022/picklist/primeng-picklist.mjs +0 -5
  885. package/esm2022/picklist/public_api.mjs +0 -4
  886. package/esm2022/picklist/style/pickliststyle.mjs +0 -79
  887. package/esm2022/popover/popover.mjs +0 -535
  888. package/esm2022/popover/primeng-popover.mjs +0 -5
  889. package/esm2022/popover/public_api.mjs +0 -3
  890. package/esm2022/popover/style/popoverstyle.mjs +0 -99
  891. package/esm2022/primeng.mjs +0 -5
  892. package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
  893. package/esm2022/progressbar/progressbar.mjs +0 -215
  894. package/esm2022/progressbar/public_api.mjs +0 -3
  895. package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
  896. package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
  897. package/esm2022/progressspinner/progressspinner.mjs +0 -105
  898. package/esm2022/progressspinner/public_api.mjs +0 -3
  899. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
  900. package/esm2022/public_api.mjs +0 -2
  901. package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
  902. package/esm2022/radiobutton/public_api.mjs +0 -4
  903. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  904. package/esm2022/radiobutton/radiobutton.mjs +0 -356
  905. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
  906. package/esm2022/rating/primeng-rating.mjs +0 -5
  907. package/esm2022/rating/public_api.mjs +0 -4
  908. package/esm2022/rating/rating.interface.mjs +0 -2
  909. package/esm2022/rating/rating.mjs +0 -449
  910. package/esm2022/rating/style/ratingstyle.mjs +0 -103
  911. package/esm2022/ripple/primeng-ripple.mjs +0 -5
  912. package/esm2022/ripple/public_api.mjs +0 -3
  913. package/esm2022/ripple/ripple.mjs +0 -134
  914. package/esm2022/ripple/style/ripplestyle.mjs +0 -63
  915. package/esm2022/scroller/primeng-scroller.mjs +0 -5
  916. package/esm2022/scroller/public_api.mjs +0 -4
  917. package/esm2022/scroller/scroller.interface.mjs +0 -2
  918. package/esm2022/scroller/scroller.mjs +0 -1300
  919. package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
  920. package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
  921. package/esm2022/scrollpanel/public_api.mjs +0 -4
  922. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  923. package/esm2022/scrollpanel/scrollpanel.mjs +0 -525
  924. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
  925. package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
  926. package/esm2022/scrolltop/public_api.mjs +0 -4
  927. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  928. package/esm2022/scrolltop/scrolltop.mjs +0 -343
  929. package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
  930. package/esm2022/select/primeng-select.mjs +0 -5
  931. package/esm2022/select/public_api.mjs +0 -4
  932. package/esm2022/select/select.interface.mjs +0 -2
  933. package/esm2022/select/select.mjs +0 -2697
  934. package/esm2022/select/style/selectstyle.mjs +0 -365
  935. package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
  936. package/esm2022/selectbutton/public_api.mjs +0 -4
  937. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  938. package/esm2022/selectbutton/selectbutton.mjs +0 -388
  939. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
  940. package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
  941. package/esm2022/sidebar/public_api.mjs +0 -4
  942. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  943. package/esm2022/sidebar/sidebar.mjs +0 -600
  944. package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
  945. package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
  946. package/esm2022/skeleton/public_api.mjs +0 -3
  947. package/esm2022/skeleton/skeleton.mjs +0 -121
  948. package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
  949. package/esm2022/slider/primeng-slider.mjs +0 -5
  950. package/esm2022/slider/public_api.mjs +0 -4
  951. package/esm2022/slider/slider.interface.mjs +0 -2
  952. package/esm2022/slider/slider.mjs +0 -820
  953. package/esm2022/slider/style/sliderstyle.mjs +0 -141
  954. package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
  955. package/esm2022/speeddial/public_api.mjs +0 -4
  956. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  957. package/esm2022/speeddial/speeddial.mjs +0 -891
  958. package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
  959. package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
  960. package/esm2022/splitbutton/public_api.mjs +0 -4
  961. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  962. package/esm2022/splitbutton/splitbutton.mjs +0 -602
  963. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
  964. package/esm2022/splitter/primeng-splitter.mjs +0 -5
  965. package/esm2022/splitter/public_api.mjs +0 -4
  966. package/esm2022/splitter/splitter.interface.mjs +0 -2
  967. package/esm2022/splitter/splitter.mjs +0 -626
  968. package/esm2022/splitter/style/splitterstyle.mjs +0 -127
  969. package/esm2022/stepper/primeng-stepper.mjs +0 -5
  970. package/esm2022/stepper/public_api.mjs +0 -3
  971. package/esm2022/stepper/stepper.mjs +0 -535
  972. package/esm2022/stepper/style/stepperstyle.mjs +0 -228
  973. package/esm2022/steps/primeng-steps.mjs +0 -5
  974. package/esm2022/steps/public_api.mjs +0 -3
  975. package/esm2022/steps/steps.mjs +0 -405
  976. package/esm2022/steps/style/stepsstyle.mjs +0 -180
  977. package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
  978. package/esm2022/styleclass/public_api.mjs +0 -2
  979. package/esm2022/styleclass/styleclass.mjs +0 -315
  980. package/esm2022/table/columnfilter.interface.mjs +0 -2
  981. package/esm2022/table/primeng-table.mjs +0 -5
  982. package/esm2022/table/public_api.mjs +0 -5
  983. package/esm2022/table/style/tablestyle.mjs +0 -906
  984. package/esm2022/table/table.interface.mjs +0 -2
  985. package/esm2022/table/table.mjs +0 -7840
  986. package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
  987. package/esm2022/tabmenu/public_api.mjs +0 -4
  988. package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
  989. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  990. package/esm2022/tabmenu/tabmenu.mjs +0 -757
  991. package/esm2022/tabs/primeng-tabs.mjs +0 -5
  992. package/esm2022/tabs/public_api.mjs +0 -7
  993. package/esm2022/tabs/style/tabsstyle.mjs +0 -211
  994. package/esm2022/tabs/tab.mjs +0 -175
  995. package/esm2022/tabs/tablist.mjs +0 -305
  996. package/esm2022/tabs/tabpanel.mjs +0 -60
  997. package/esm2022/tabs/tabpanels.mjs +0 -38
  998. package/esm2022/tabs/tabs.mjs +0 -105
  999. package/esm2022/tabview/primeng-tabview.mjs +0 -5
  1000. package/esm2022/tabview/public_api.mjs +0 -4
  1001. package/esm2022/tabview/style/tabsstyle.mjs +0 -211
  1002. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1003. package/esm2022/tabview/tabview.mjs +0 -1141
  1004. package/esm2022/tag/primeng-tag.mjs +0 -5
  1005. package/esm2022/tag/public_api.mjs +0 -4
  1006. package/esm2022/tag/style/tagstyle.mjs +0 -108
  1007. package/esm2022/tag/tag.interface.mjs +0 -2
  1008. package/esm2022/tag/tag.mjs +0 -192
  1009. package/esm2022/terminal/primeng-terminal.mjs +0 -5
  1010. package/esm2022/terminal/public_api.mjs +0 -4
  1011. package/esm2022/terminal/style/terminalstyle.mjs +0 -113
  1012. package/esm2022/terminal/terminal.mjs +0 -195
  1013. package/esm2022/terminal/terminalservice.mjs +0 -25
  1014. package/esm2022/textarea/primeng-textarea.mjs +0 -5
  1015. package/esm2022/textarea/public_api.mjs +0 -3
  1016. package/esm2022/textarea/style/textareastyle.mjs +0 -120
  1017. package/esm2022/textarea/textarea.mjs +0 -165
  1018. package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
  1019. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1020. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
  1021. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1022. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1467
  1023. package/esm2022/timeline/primeng-timeline.mjs +0 -5
  1024. package/esm2022/timeline/public_api.mjs +0 -4
  1025. package/esm2022/timeline/style/timelinestyle.mjs +0 -217
  1026. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1027. package/esm2022/timeline/timeline.mjs +0 -247
  1028. package/esm2022/toast/primeng-toast.mjs +0 -5
  1029. package/esm2022/toast/public_api.mjs +0 -4
  1030. package/esm2022/toast/style/toaststyle.mjs +0 -351
  1031. package/esm2022/toast/toast.interface.mjs +0 -2
  1032. package/esm2022/toast/toast.mjs +0 -760
  1033. package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
  1034. package/esm2022/togglebutton/public_api.mjs +0 -3
  1035. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
  1036. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1037. package/esm2022/togglebutton/togglebutton.mjs +0 -368
  1038. package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
  1039. package/esm2022/toggleswitch/public_api.mjs +0 -4
  1040. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
  1041. package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
  1042. package/esm2022/toggleswitch/toggleswitch.mjs +0 -297
  1043. package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
  1044. package/esm2022/toolbar/public_api.mjs +0 -4
  1045. package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
  1046. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1047. package/esm2022/toolbar/toolbar.mjs +0 -198
  1048. package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
  1049. package/esm2022/tooltip/public_api.mjs +0 -3
  1050. package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
  1051. package/esm2022/tooltip/tooltip.mjs +0 -680
  1052. package/esm2022/tree/primeng-tree.mjs +0 -5
  1053. package/esm2022/tree/public_api.mjs +0 -4
  1054. package/esm2022/tree/style/treestyle.mjs +0 -333
  1055. package/esm2022/tree/tree.interface.mjs +0 -2
  1056. package/esm2022/tree/tree.mjs +0 -2304
  1057. package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
  1058. package/esm2022/treeselect/public_api.mjs +0 -4
  1059. package/esm2022/treeselect/style/treeselectstyle.mjs +0 -271
  1060. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1061. package/esm2022/treeselect/treeselect.mjs +0 -1439
  1062. package/esm2022/treetable/primeng-treetable.mjs +0 -5
  1063. package/esm2022/treetable/public_api.mjs +0 -4
  1064. package/esm2022/treetable/style/treetablestyle.mjs +0 -621
  1065. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1066. package/esm2022/treetable/treetable.mjs +0 -4661
  1067. package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
  1068. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1069. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1070. package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
  1071. package/esm2022/usestyle/public_api.mjs +0 -2
  1072. package/esm2022/usestyle/usestyle.mjs +0 -44
  1073. package/esm2022/utils/inpututils.mjs +0 -7
  1074. package/esm2022/utils/objectutils.mjs +0 -276
  1075. package/esm2022/utils/primeng-utils.mjs +0 -5
  1076. package/esm2022/utils/public_api.mjs +0 -6
  1077. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1078. package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,1281 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import { CommonModule } from '@angular/common';
3
- import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ContentChild, ContentChildren, EventEmitter, forwardRef, HostBinding, HostListener, inject, Input, input, model, NgModule, numberAttribute, Output, signal, ViewEncapsulation } from '@angular/core';
4
- import { findSingle, focus, getAttribute, uuid } from '@primeuix/utils';
5
- import { Header, PrimeTemplate, SharedModule } from 'primeng/api';
6
- import { BaseComponent } from 'primeng/basecomponent';
7
- import { ChevronDownIcon, ChevronUpIcon } from 'primeng/icons';
8
- import { Ripple } from 'primeng/ripple';
9
- import { transformToBoolean } from 'primeng/utils';
10
- import { AccordionStyle } from './style/accordionstyle';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "primeng/ripple";
13
- import * as i2 from "@angular/common";
14
- const _c0 = ["*"];
15
- const _c1 = ["toggleicon"];
16
- const _c2 = a0 => ({ active: a0 });
17
- function AccordionHeader_Conditional_1_0_ng_template_0_Template(rf, ctx) { }
18
- function AccordionHeader_Conditional_1_0_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵtemplate(0, AccordionHeader_Conditional_1_0_ng_template_0_Template, 0, 0, "ng-template");
20
- } }
21
- function AccordionHeader_Conditional_1_Template(rf, ctx) { if (rf & 1) {
22
- i0.ɵɵtemplate(0, AccordionHeader_Conditional_1_0_Template, 1, 0, null, 0);
23
- } if (rf & 2) {
24
- const ctx_r0 = i0.ɵɵnextContext();
25
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.toggleicon)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c2, ctx_r0.active()));
26
- } }
27
- function AccordionHeader_Conditional_2_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {
28
- i0.ɵɵelement(0, "span", 4);
29
- } if (rf & 2) {
30
- const ctx_r0 = i0.ɵɵnextContext(3);
31
- i0.ɵɵclassMap(ctx_r0.pcAccordion.collapseIcon);
32
- i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
33
- i0.ɵɵattribute("aria-hidden", true);
34
- } }
35
- function AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {
36
- i0.ɵɵelement(0, "ChevronDownIcon", 4);
37
- } if (rf & 2) {
38
- const ctx_r0 = i0.ɵɵnextContext(3);
39
- i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
40
- i0.ɵɵattribute("aria-hidden", true);
41
- } }
42
- function AccordionHeader_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
43
- i0.ɵɵelementContainerStart(0);
44
- i0.ɵɵtemplate(1, AccordionHeader_Conditional_2_ng_container_0_span_1_Template, 1, 4, "span", 2)(2, AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template, 1, 2, "ChevronDownIcon", 3);
45
- i0.ɵɵelementContainerEnd();
46
- } if (rf & 2) {
47
- const ctx_r0 = i0.ɵɵnextContext(2);
48
- i0.ɵɵadvance();
49
- i0.ɵɵproperty("ngIf", ctx_r0.pcAccordion.collapseIcon);
50
- i0.ɵɵadvance();
51
- i0.ɵɵproperty("ngIf", !ctx_r0.pcAccordion.collapseIcon);
52
- } }
53
- function AccordionHeader_Conditional_2_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
54
- i0.ɵɵelement(0, "span", 4);
55
- } if (rf & 2) {
56
- const ctx_r0 = i0.ɵɵnextContext(3);
57
- i0.ɵɵclassMap(ctx_r0.pcAccordion.expandIcon);
58
- i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
59
- i0.ɵɵattribute("aria-hidden", true);
60
- } }
61
- function AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {
62
- i0.ɵɵelement(0, "ChevronUpIcon", 4);
63
- } if (rf & 2) {
64
- const ctx_r0 = i0.ɵɵnextContext(3);
65
- i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
66
- i0.ɵɵattribute("aria-hidden", true);
67
- } }
68
- function AccordionHeader_Conditional_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
69
- i0.ɵɵelementContainerStart(0);
70
- i0.ɵɵtemplate(1, AccordionHeader_Conditional_2_ng_container_1_span_1_Template, 1, 4, "span", 2)(2, AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template, 1, 2, "ChevronUpIcon", 3);
71
- i0.ɵɵelementContainerEnd();
72
- } if (rf & 2) {
73
- const ctx_r0 = i0.ɵɵnextContext(2);
74
- i0.ɵɵadvance();
75
- i0.ɵɵproperty("ngIf", ctx_r0.pcAccordion.expandIcon);
76
- i0.ɵɵadvance();
77
- i0.ɵɵproperty("ngIf", !ctx_r0.pcAccordion.expandIcon);
78
- } }
79
- function AccordionHeader_Conditional_2_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵtemplate(0, AccordionHeader_Conditional_2_ng_container_0_Template, 3, 2, "ng-container", 1)(1, AccordionHeader_Conditional_2_ng_container_1_Template, 3, 2, "ng-container", 1);
81
- } if (rf & 2) {
82
- const ctx_r0 = i0.ɵɵnextContext();
83
- i0.ɵɵproperty("ngIf", ctx_r0.active());
84
- i0.ɵɵadvance();
85
- i0.ɵɵproperty("ngIf", !ctx_r0.active());
86
- } }
87
- const _c3 = a0 => ({ transitionParams: a0 });
88
- const _c4 = a0 => ({ value: "visible", params: a0 });
89
- const _c5 = a0 => ({ value: "hidden", params: a0 });
90
- const _c6 = ["header"];
91
- const _c7 = ["icon"];
92
- const _c8 = ["content"];
93
- const _c9 = ["*", [["p-header"]]];
94
- const _c10 = ["*", "p-header"];
95
- const _c11 = a0 => ({ $implicit: a0 });
96
- function AccordionTab_Conditional_1_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵtext(0);
98
- } if (rf & 2) {
99
- const ctx_r0 = i0.ɵɵnextContext();
100
- i0.ɵɵtextInterpolate1(" ", ctx_r0.header, " ");
101
- } }
102
- function AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
103
- i0.ɵɵelementContainer(0);
104
- } }
105
- function AccordionTab_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
106
- i0.ɵɵtemplate(0, AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 4);
107
- } if (rf & 2) {
108
- const ctx_r0 = i0.ɵɵnextContext(2);
109
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.headerTemplate || ctx_r0._headerTemplate);
110
- } }
111
- function AccordionTab_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
112
- i0.ɵɵprojection(0, 1);
113
- } }
114
- function AccordionTab_Conditional_2_Template(rf, ctx) { if (rf & 1) {
115
- i0.ɵɵtemplate(0, AccordionTab_Conditional_2_Conditional_0_Template, 1, 1, "ng-container")(1, AccordionTab_Conditional_2_Conditional_1_Template, 1, 0);
116
- } if (rf & 2) {
117
- const ctx_r0 = i0.ɵɵnextContext();
118
- i0.ɵɵconditional(ctx_r0.headerTemplate || ctx_r0._headerTemplate ? 0 : -1);
119
- i0.ɵɵadvance();
120
- i0.ɵɵconditional(ctx_r0.headerFacet ? 1 : -1);
121
- } }
122
- function AccordionTab_Conditional_3_0_ng_template_0_Template(rf, ctx) { }
123
- function AccordionTab_Conditional_3_0_Template(rf, ctx) { if (rf & 1) {
124
- i0.ɵɵtemplate(0, AccordionTab_Conditional_3_0_ng_template_0_Template, 0, 0, "ng-template");
125
- } }
126
- function AccordionTab_Conditional_3_Template(rf, ctx) { if (rf & 1) {
127
- i0.ɵɵtemplate(0, AccordionTab_Conditional_3_0_Template, 1, 0, null, 5);
128
- } if (rf & 2) {
129
- const ctx_r0 = i0.ɵɵnextContext();
130
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.iconTemplate || ctx_r0._iconTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c11, ctx_r0.selected));
131
- } }
132
- function AccordionTab_Conditional_4_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {
133
- i0.ɵɵelement(0, "span", 8);
134
- } if (rf & 2) {
135
- const ctx_r0 = i0.ɵɵnextContext(3);
136
- i0.ɵɵclassMap(ctx_r0.accordion.collapseIcon);
137
- i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
138
- i0.ɵɵattribute("aria-hidden", true);
139
- } }
140
- function AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {
141
- i0.ɵɵelement(0, "ChevronDownIcon", 8);
142
- } if (rf & 2) {
143
- const ctx_r0 = i0.ɵɵnextContext(3);
144
- i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
145
- i0.ɵɵattribute("aria-hidden", true);
146
- } }
147
- function AccordionTab_Conditional_4_ng_container_0_Template(rf, ctx) { if (rf & 1) {
148
- i0.ɵɵelementContainerStart(0);
149
- i0.ɵɵtemplate(1, AccordionTab_Conditional_4_ng_container_0_span_1_Template, 1, 4, "span", 6)(2, AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template, 1, 2, "ChevronDownIcon", 7);
150
- i0.ɵɵelementContainerEnd();
151
- } if (rf & 2) {
152
- const ctx_r0 = i0.ɵɵnextContext(2);
153
- i0.ɵɵadvance();
154
- i0.ɵɵproperty("ngIf", ctx_r0.accordion.collapseIcon);
155
- i0.ɵɵadvance();
156
- i0.ɵɵproperty("ngIf", !ctx_r0.accordion.collapseIcon);
157
- } }
158
- function AccordionTab_Conditional_4_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
159
- i0.ɵɵelement(0, "span", 8);
160
- } if (rf & 2) {
161
- const ctx_r0 = i0.ɵɵnextContext(3);
162
- i0.ɵɵclassMap(ctx_r0.accordion.expandIcon);
163
- i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
164
- i0.ɵɵattribute("aria-hidden", true);
165
- } }
166
- function AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵelement(0, "ChevronUpIcon", 8);
168
- } if (rf & 2) {
169
- const ctx_r0 = i0.ɵɵnextContext(3);
170
- i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
171
- i0.ɵɵattribute("aria-hidden", true);
172
- } }
173
- function AccordionTab_Conditional_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
174
- i0.ɵɵelementContainerStart(0);
175
- i0.ɵɵtemplate(1, AccordionTab_Conditional_4_ng_container_1_span_1_Template, 1, 4, "span", 6)(2, AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template, 1, 2, "ChevronUpIcon", 7);
176
- i0.ɵɵelementContainerEnd();
177
- } if (rf & 2) {
178
- const ctx_r0 = i0.ɵɵnextContext(2);
179
- i0.ɵɵadvance();
180
- i0.ɵɵproperty("ngIf", ctx_r0.accordion.expandIcon);
181
- i0.ɵɵadvance();
182
- i0.ɵɵproperty("ngIf", !ctx_r0.accordion.expandIcon);
183
- } }
184
- function AccordionTab_Conditional_4_Template(rf, ctx) { if (rf & 1) {
185
- i0.ɵɵtemplate(0, AccordionTab_Conditional_4_ng_container_0_Template, 3, 2, "ng-container", 3)(1, AccordionTab_Conditional_4_ng_container_1_Template, 3, 2, "ng-container", 3);
186
- } if (rf & 2) {
187
- const ctx_r0 = i0.ɵɵnextContext();
188
- i0.ɵɵproperty("ngIf", ctx_r0.selected);
189
- i0.ɵɵadvance();
190
- i0.ɵɵproperty("ngIf", !ctx_r0.selected);
191
- } }
192
- function AccordionTab_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
193
- i0.ɵɵelementContainer(0);
194
- } }
195
- function AccordionTab_ng_container_8_Template(rf, ctx) { if (rf & 1) {
196
- i0.ɵɵelementContainerStart(0);
197
- i0.ɵɵtemplate(1, AccordionTab_ng_container_8_ng_container_1_Template, 1, 0, "ng-container", 4);
198
- i0.ɵɵelementContainerEnd();
199
- } if (rf & 2) {
200
- const ctx_r0 = i0.ɵɵnextContext();
201
- i0.ɵɵadvance();
202
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.contentTemplate || ctx_r0._contentTemplate);
203
- } }
204
- /**
205
- * AccordionPanel is a helper component for Accordion component.
206
- * @group Components
207
- */
208
- export class AccordionPanel extends BaseComponent {
209
- pcAccordion = inject(forwardRef(() => Accordion));
210
- /**
211
- * Value of the active tab.
212
- * @defaultValue undefined
213
- * @group Props
214
- */
215
- value = model(undefined);
216
- /**
217
- * Disables the tab when enabled.
218
- * @defaultValue false
219
- * @group Props
220
- */
221
- disabled = input(false, { transform: (v) => transformToBoolean(v) });
222
- active = computed(() => (this.pcAccordion.multiple() ? this.valueEquals(this.pcAccordion.value(), this.value()) : this.pcAccordion.value() === this.value()));
223
- valueEquals(currentValue, value) {
224
- if (Array.isArray(currentValue)) {
225
- return currentValue.includes(value);
226
- }
227
- return currentValue === value;
228
- }
229
- static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionPanel_BaseFactory; return function AccordionPanel_Factory(__ngFactoryType__) { return (ɵAccordionPanel_BaseFactory || (ɵAccordionPanel_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionPanel)))(__ngFactoryType__ || AccordionPanel); }; })();
230
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionPanel, selectors: [["p-accordion-panel"], ["p-accordionpanel"]], hostVars: 9, hostBindings: function AccordionPanel_HostBindings(rf, ctx) { if (rf & 2) {
231
- i0.ɵɵattribute("data-pc-name", "accordionpanel")("data-p-disabled", ctx.disabled())("data-p-active", ctx.active());
232
- i0.ɵɵclassProp("p-accordionpanel", true)("p-accordionpanel-active", ctx.active())("p-disabled", ctx.disabled());
233
- } }, inputs: { value: [1, "value"], disabled: [1, "disabled"] }, outputs: { value: "valueChange" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AccordionPanel_Template(rf, ctx) { if (rf & 1) {
234
- i0.ɵɵprojectionDef();
235
- i0.ɵɵprojection(0);
236
- } }, dependencies: [CommonModule], encapsulation: 2, changeDetection: 0 });
237
- }
238
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionPanel, [{
239
- type: Component,
240
- args: [{
241
- selector: 'p-accordion-panel, p-accordionpanel',
242
- imports: [CommonModule],
243
- standalone: true,
244
- template: `<ng-content />`,
245
- changeDetection: ChangeDetectionStrategy.OnPush,
246
- encapsulation: ViewEncapsulation.None,
247
- host: {
248
- '[class.p-accordionpanel]': 'true',
249
- '[class.p-accordionpanel-active]': 'active()',
250
- '[class.p-disabled]': 'disabled()',
251
- '[attr.data-pc-name]': '"accordionpanel"',
252
- '[attr.data-p-disabled]': 'disabled()',
253
- '[attr.data-p-active]': 'active()'
254
- }
255
- }]
256
- }], null, null); })();
257
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionPanel, { className: "AccordionPanel" }); })();
258
- /**
259
- * AccordionHeader is a helper component for Accordion component.
260
- * @group Components
261
- */
262
- export class AccordionHeader extends BaseComponent {
263
- pcAccordion = inject(forwardRef(() => Accordion));
264
- pcAccordionPanel = inject(forwardRef(() => AccordionPanel));
265
- id = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);
266
- active = computed(() => this.pcAccordionPanel.active());
267
- disabled = computed(() => this.pcAccordionPanel.disabled());
268
- ariaControls = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);
269
- /**
270
- * Toggle icon template.
271
- * @type {TemplateRef<AccordionToggleIconTemplateContext>} context - Context of the template
272
- * @example
273
- * ```html
274
- * <ng-template #toggleicon let-active="active"> </ng-template>
275
- * ```
276
- * @see {@link AccordionToggleIconTemplateContext}
277
- * @group Templates
278
- */
279
- toggleicon;
280
- onClick() {
281
- this.changeActiveValue();
282
- }
283
- onFocus() {
284
- this.pcAccordion.selectOnFocus() && this.changeActiveValue();
285
- }
286
- onKeydown(event) {
287
- switch (event.code) {
288
- case 'ArrowDown':
289
- this.arrowDownKey(event);
290
- break;
291
- case 'ArrowUp':
292
- this.arrowUpKey(event);
293
- break;
294
- case 'Home':
295
- this.onHomeKey(event);
296
- break;
297
- case 'End':
298
- this.onEndKey(event);
299
- break;
300
- case 'Enter':
301
- case 'Space':
302
- case 'NumpadEnter':
303
- this.onEnterKey(event);
304
- break;
305
- default:
306
- break;
307
- }
308
- }
309
- changeActiveValue() {
310
- this.pcAccordion.updateValue(this.pcAccordionPanel.value());
311
- }
312
- findPanel(headerElement) {
313
- return headerElement?.closest('[data-pc-name="accordionpanel"]');
314
- }
315
- findHeader(panelElement) {
316
- return findSingle(panelElement, '[data-pc-name="accordionheader"]');
317
- }
318
- findNextPanel(panelElement, selfCheck = false) {
319
- const element = selfCheck ? panelElement : panelElement.nextElementSibling;
320
- return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;
321
- }
322
- findPrevPanel(panelElement, selfCheck = false) {
323
- const element = selfCheck ? panelElement : panelElement.previousElementSibling;
324
- return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;
325
- }
326
- findFirstPanel() {
327
- return this.findNextPanel(this.pcAccordion.el.nativeElement.firstElementChild, true);
328
- }
329
- findLastPanel() {
330
- return this.findPrevPanel(this.pcAccordion.el.nativeElement.lastElementChild, true);
331
- }
332
- changeFocusedPanel(event, element) {
333
- focus(element);
334
- }
335
- arrowDownKey(event) {
336
- const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));
337
- nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);
338
- event.preventDefault();
339
- }
340
- arrowUpKey(event) {
341
- const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));
342
- prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);
343
- event.preventDefault();
344
- }
345
- onHomeKey(event) {
346
- const firstPanel = this.findFirstPanel();
347
- this.changeFocusedPanel(event, firstPanel);
348
- event.preventDefault();
349
- }
350
- onEndKey(event) {
351
- const lastPanel = this.findLastPanel();
352
- this.changeFocusedPanel(event, lastPanel);
353
- event.preventDefault();
354
- }
355
- onEnterKey(event) {
356
- this.changeActiveValue();
357
- event.preventDefault();
358
- }
359
- static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionHeader_BaseFactory; return function AccordionHeader_Factory(__ngFactoryType__) { return (ɵAccordionHeader_BaseFactory || (ɵAccordionHeader_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionHeader)))(__ngFactoryType__ || AccordionHeader); }; })();
360
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionHeader, selectors: [["p-accordion-header"], ["p-accordionheader"]], contentQueries: function AccordionHeader_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
361
- i0.ɵɵcontentQuery(dirIndex, _c1, 5);
362
- } if (rf & 2) {
363
- let _t;
364
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toggleicon = _t.first);
365
- } }, hostVars: 12, hostBindings: function AccordionHeader_HostBindings(rf, ctx) { if (rf & 1) {
366
- i0.ɵɵlistener("click", function AccordionHeader_click_HostBindingHandler($event) { return ctx.onClick($event); })("focus", function AccordionHeader_focus_HostBindingHandler($event) { return ctx.onFocus($event); })("keydown", function AccordionHeader_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });
367
- } if (rf & 2) {
368
- i0.ɵɵattribute("id", ctx.id())("aria-expanded", ctx.active())("aria-controls", ctx.ariaControls())("role", "button")("tabindex", "0")("data-p-active", ctx.active())("data-p-disabled", ctx.disabled())("data-pc-name", "accordionheader");
369
- i0.ɵɵstyleProp("user-select", "none");
370
- i0.ɵɵclassProp("p-accordionheader", true);
371
- } }, standalone: true, features: [i0.ɵɵHostDirectivesFeature([i1.Ripple]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 3, vars: 1, consts: [[4, "ngTemplateOutlet", "ngTemplateOutletContext"], [4, "ngIf"], [3, "class", "ngClass", 4, "ngIf"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"]], template: function AccordionHeader_Template(rf, ctx) { if (rf & 1) {
372
- i0.ɵɵprojectionDef();
373
- i0.ɵɵprojection(0);
374
- i0.ɵɵtemplate(1, AccordionHeader_Conditional_1_Template, 1, 4)(2, AccordionHeader_Conditional_2_Template, 2, 2);
375
- } if (rf & 2) {
376
- i0.ɵɵadvance();
377
- i0.ɵɵconditional(ctx.toggleicon ? 1 : 2);
378
- } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, ChevronDownIcon, ChevronUpIcon], encapsulation: 2, changeDetection: 0 });
379
- }
380
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionHeader, [{
381
- type: Component,
382
- args: [{
383
- selector: 'p-accordion-header, p-accordionheader',
384
- imports: [CommonModule, ChevronDownIcon, ChevronUpIcon],
385
- standalone: true,
386
- template: `
387
- <ng-content />
388
- @if (toggleicon) {
389
- <ng-template *ngTemplateOutlet="toggleicon; context: { active: active() }"></ng-template>
390
- } @else {
391
- <ng-container *ngIf="active()">
392
- <span *ngIf="pcAccordion.collapseIcon" [class]="pcAccordion.collapseIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true"></span>
393
- <ChevronDownIcon *ngIf="!pcAccordion.collapseIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true" />
394
- </ng-container>
395
- <ng-container *ngIf="!active()">
396
- <span *ngIf="pcAccordion.expandIcon" [class]="pcAccordion.expandIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true"></span>
397
- <ChevronUpIcon *ngIf="!pcAccordion.expandIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true" />
398
- </ng-container>
399
- }
400
- `,
401
- changeDetection: ChangeDetectionStrategy.OnPush,
402
- encapsulation: ViewEncapsulation.None,
403
- host: {
404
- '[class.p-accordionheader]': 'true',
405
- '[attr.id]': 'id()',
406
- '[attr.aria-expanded]': 'active()',
407
- '[attr.aria-controls]': 'ariaControls()',
408
- '[attr.role]': '"button"',
409
- '[attr.tabindex]': '"0"',
410
- '[attr.data-p-active]': 'active()',
411
- '[attr.data-p-disabled]': 'disabled()',
412
- '[attr.data-pc-name]': '"accordionheader"',
413
- '[style.user-select]': '"none"'
414
- },
415
- hostDirectives: [Ripple]
416
- }]
417
- }], null, { toggleicon: [{
418
- type: ContentChild,
419
- args: ['toggleicon']
420
- }], onClick: [{
421
- type: HostListener,
422
- args: ['click', ['$event']]
423
- }], onFocus: [{
424
- type: HostListener,
425
- args: ['focus', ['$event']]
426
- }], onKeydown: [{
427
- type: HostListener,
428
- args: ['keydown', ['$event']]
429
- }] }); })();
430
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionHeader, { className: "AccordionHeader" }); })();
431
- export class AccordionContent extends BaseComponent {
432
- pcAccordion = inject(forwardRef(() => Accordion));
433
- pcAccordionPanel = inject(forwardRef(() => AccordionPanel));
434
- active = computed(() => this.pcAccordionPanel.active());
435
- ariaLabelledby = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);
436
- id = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);
437
- static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionContent_BaseFactory; return function AccordionContent_Factory(__ngFactoryType__) { return (ɵAccordionContent_BaseFactory || (ɵAccordionContent_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionContent)))(__ngFactoryType__ || AccordionContent); }; })();
438
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionContent, selectors: [["p-accordion-content"], ["p-accordioncontent"]], hostVars: 16, hostBindings: function AccordionContent_HostBindings(rf, ctx) { if (rf & 2) {
439
- i0.ɵɵsyntheticHostProperty("@content", ctx.active() ? i0.ɵɵpureFunction1(10, _c4, i0.ɵɵpureFunction1(8, _c3, ctx.pcAccordion.transitionOptions)) : i0.ɵɵpureFunction1(14, _c5, i0.ɵɵpureFunction1(12, _c3, ctx.pcAccordion.transitionOptions)));
440
- i0.ɵɵattribute("id", ctx.id())("role", "region")("data-pc-name", "accordioncontent")("data-p-active", ctx.active())("aria-labelledby", ctx.ariaLabelledby());
441
- i0.ɵɵclassProp("p-accordioncontent", true);
442
- } }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, "p-accordioncontent-content"]], template: function AccordionContent_Template(rf, ctx) { if (rf & 1) {
443
- i0.ɵɵprojectionDef();
444
- i0.ɵɵelementStart(0, "div", 0);
445
- i0.ɵɵprojection(1);
446
- i0.ɵɵelementEnd();
447
- } }, dependencies: [CommonModule], encapsulation: 2, data: { animation: [
448
- trigger('content', [
449
- state('hidden', style({
450
- height: '0',
451
- visibility: 'hidden'
452
- })),
453
- state('visible', style({
454
- height: '*',
455
- visibility: 'visible'
456
- })),
457
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
458
- transition('void => *', animate(0))
459
- ])
460
- ] }, changeDetection: 0 });
461
- }
462
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionContent, [{
463
- type: Component,
464
- args: [{
465
- selector: 'p-accordion-content, p-accordioncontent',
466
- imports: [CommonModule],
467
- standalone: true,
468
- template: ` <div class="p-accordioncontent-content">
469
- <ng-content />
470
- </div>`,
471
- changeDetection: ChangeDetectionStrategy.OnPush,
472
- encapsulation: ViewEncapsulation.None,
473
- host: {
474
- '[class.p-accordioncontent]': 'true',
475
- '[attr.id]': 'id()',
476
- '[attr.role]': '"region"',
477
- '[attr.data-pc-name]': '"accordioncontent"',
478
- '[attr.data-p-active]': 'active()',
479
- '[attr.aria-labelledby]': 'ariaLabelledby()',
480
- '[@content]': `active()
481
- ? { value: 'visible', params: { transitionParams: pcAccordion.transitionOptions } }
482
- : { value: 'hidden', params: { transitionParams: pcAccordion.transitionOptions } }`
483
- },
484
- animations: [
485
- trigger('content', [
486
- state('hidden', style({
487
- height: '0',
488
- visibility: 'hidden'
489
- })),
490
- state('visible', style({
491
- height: '*',
492
- visibility: 'visible'
493
- })),
494
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
495
- transition('void => *', animate(0))
496
- ])
497
- ]
498
- }]
499
- }], null, null); })();
500
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionContent, { className: "AccordionContent" }); })();
501
- /**
502
- * AccordionTab is a helper component for Accordion.
503
- * @deprecated Use AccordionPanel, AccordionHeader, AccordionContent instead.
504
- * @group Components
505
- */
506
- export class AccordionTab extends BaseComponent {
507
- get hostClass() {
508
- return this.tabStyleClass;
509
- }
510
- get hostStyle() {
511
- return this.tabStyle;
512
- }
513
- /**
514
- * Current id state as a string.
515
- * @group Props
516
- */
517
- id = uuid('pn_id_');
518
- /**
519
- * Used to define the header of the tab.
520
- * @group Props
521
- */
522
- header;
523
- /**
524
- * Inline style of the tab header.
525
- * @group Props
526
- */
527
- headerStyle;
528
- /**
529
- * Inline style of the tab.
530
- * @group Props
531
- */
532
- tabStyle;
533
- /**
534
- * Inline style of the tab content.
535
- * @group Props
536
- */
537
- contentStyle;
538
- /**
539
- * Style class of the tab.
540
- * @group Props
541
- */
542
- tabStyleClass;
543
- /**
544
- * Style class of the tab header.
545
- * @group Props
546
- */
547
- headerStyleClass;
548
- /**
549
- * Style class of the tab content.
550
- * @group Props
551
- */
552
- contentStyleClass;
553
- /**
554
- * Whether the tab is disabled.
555
- * @group Props
556
- */
557
- disabled;
558
- /**
559
- * Whether a lazy loaded panel should avoid getting loaded again on reselection.
560
- * @group Props
561
- */
562
- cache = true;
563
- /**
564
- * Transition options of the animation.
565
- * @group Props
566
- */
567
- transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
568
- /**
569
- * Position of the icon.
570
- * @group Props
571
- */
572
- iconPos = 'start';
573
- /**
574
- * The value that returns the selection.
575
- * @group Props
576
- */
577
- get selected() {
578
- return this._selected;
579
- }
580
- set selected(val) {
581
- this._selected = val;
582
- if (!this.loaded) {
583
- if (this._selected && this.cache) {
584
- this.loaded = true;
585
- }
586
- this.cd.detectChanges();
587
- }
588
- }
589
- /**
590
- * The aria-level that each accordion header will have. The default value is 2 as per W3C specifications
591
- * @group Props
592
- */
593
- headerAriaLevel = 2;
594
- /**
595
- * Event triggered by changing the choice.
596
- * @param {boolean} value - Boolean value indicates that the option is changed.
597
- * @group Emits
598
- */
599
- selectedChange = new EventEmitter();
600
- headerFacet;
601
- _selected = false;
602
- get iconClass() {
603
- if (this.iconPos === 'end') {
604
- return 'p-accordionheader-toggle-icon icon-end';
605
- }
606
- else {
607
- return 'p-accordionheader-toggle-icon icon-start';
608
- }
609
- }
610
- /**
611
- * Content template for the content of the drawer.
612
- * @group Templates
613
- */
614
- headerTemplate;
615
- /**
616
- * Template for the header icon.
617
- * @group Templates
618
- */
619
- iconTemplate;
620
- /**
621
- * Content template for the footer of the drawer.
622
- * @group Templates
623
- */
624
- contentTemplate;
625
- templates;
626
- _headerTemplate;
627
- _iconTemplate;
628
- _contentTemplate;
629
- loaded = false;
630
- accordion = inject(forwardRef(() => Accordion));
631
- _componentStyle = inject(AccordionStyle);
632
- ngOnInit() {
633
- super.ngOnInit();
634
- console.log('AccordionTab is deprecated as of v18, please use the new structure instead.');
635
- }
636
- ngAfterContentInit() {
637
- this.templates.forEach((item) => {
638
- switch (item.getType()) {
639
- case 'content':
640
- this._contentTemplate = item.template;
641
- break;
642
- case 'header':
643
- this._headerTemplate = item.template;
644
- break;
645
- case 'icon':
646
- this._iconTemplate = item.template;
647
- break;
648
- default:
649
- this._contentTemplate = item.template;
650
- break;
651
- }
652
- });
653
- }
654
- toggle(event) {
655
- if (this.disabled) {
656
- return false;
657
- }
658
- let index = this.findTabIndex();
659
- if (this.selected) {
660
- this.selected = false;
661
- this.accordion.onClose.emit({ originalEvent: event, index: index });
662
- }
663
- else {
664
- if (!this.accordion.multiple()) {
665
- for (var i = 0; i < this.accordion.tabs.length; i++) {
666
- if (this.accordion.tabs[i].selected) {
667
- this.accordion.tabs[i].selected = false;
668
- this.accordion.tabs[i].selectedChange.emit(false);
669
- this.accordion.tabs[i].cd.markForCheck();
670
- }
671
- }
672
- }
673
- this.selected = true;
674
- this.loaded = true;
675
- this.accordion.onOpen.emit({ originalEvent: event, index: index });
676
- }
677
- this.selectedChange.emit(this.selected);
678
- this.accordion.updateActiveIndex();
679
- this.cd.markForCheck();
680
- event?.preventDefault();
681
- }
682
- findTabIndex() {
683
- let index = -1;
684
- for (var i = 0; i < this.accordion.tabs.length; i++) {
685
- if (this.accordion.tabs[i] == this) {
686
- index = i;
687
- break;
688
- }
689
- }
690
- return index;
691
- }
692
- onKeydown(event) {
693
- switch (event.code) {
694
- case 'Enter':
695
- case 'Space':
696
- this.toggle(event);
697
- event.preventDefault();
698
- break;
699
- default:
700
- break;
701
- }
702
- }
703
- getTabHeaderActionId(tabId) {
704
- return `${tabId}_header_action`;
705
- }
706
- getTabContentId(tabId) {
707
- return `${tabId}_content`;
708
- }
709
- ngOnDestroy() {
710
- this.accordion.tabs.splice(this.findTabIndex(), 1);
711
- super.ngOnDestroy();
712
- }
713
- static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionTab_BaseFactory; return function AccordionTab_Factory(__ngFactoryType__) { return (ɵAccordionTab_BaseFactory || (ɵAccordionTab_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionTab)))(__ngFactoryType__ || AccordionTab); }; })();
714
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionTab, selectors: [["p-accordionTab"], ["p-accordion-tab"], ["p-accordiontab"]], contentQueries: function AccordionTab_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
715
- i0.ɵɵcontentQuery(dirIndex, _c6, 4);
716
- i0.ɵɵcontentQuery(dirIndex, _c7, 4);
717
- i0.ɵɵcontentQuery(dirIndex, _c8, 4);
718
- i0.ɵɵcontentQuery(dirIndex, Header, 4);
719
- i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
720
- } if (rf & 2) {
721
- let _t;
722
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);
723
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconTemplate = _t.first);
724
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
725
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerFacet = _t);
726
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
727
- } }, hostVars: 9, hostBindings: function AccordionTab_HostBindings(rf, ctx) { if (rf & 2) {
728
- i0.ɵɵattribute("data-pc-name", "accordiontab");
729
- i0.ɵɵstyleMap(ctx.hostStyle);
730
- i0.ɵɵclassMap(ctx.hostClass);
731
- i0.ɵɵclassProp("p-accordionpanel", true)("p-accordionpanel-active", ctx.selected);
732
- } }, inputs: { id: "id", header: "header", headerStyle: "headerStyle", tabStyle: "tabStyle", contentStyle: "contentStyle", tabStyleClass: "tabStyleClass", headerStyleClass: "headerStyleClass", contentStyleClass: "contentStyleClass", disabled: [2, "disabled", "disabled", booleanAttribute], cache: [2, "cache", "cache", booleanAttribute], transitionOptions: "transitionOptions", iconPos: "iconPos", selected: "selected", headerAriaLevel: [2, "headerAriaLevel", "headerAriaLevel", numberAttribute] }, outputs: { selectedChange: "selectedChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([AccordionStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c10, decls: 9, vars: 30, consts: [["type", "button", 1, "p-accordionheader", 3, "click", "keydown", "disabled", "ngClass", "ngStyle"], ["role", "region", 1, "p-accordioncontent"], [1, "p-accordioncontent-content", 3, "ngClass", "ngStyle"], [4, "ngIf"], [4, "ngTemplateOutlet"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "class", "ngClass", 4, "ngIf"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"]], template: function AccordionTab_Template(rf, ctx) { if (rf & 1) {
733
- i0.ɵɵprojectionDef(_c9);
734
- i0.ɵɵelementStart(0, "button", 0);
735
- i0.ɵɵlistener("click", function AccordionTab_Template_button_click_0_listener($event) { return ctx.toggle($event); })("keydown", function AccordionTab_Template_button_keydown_0_listener($event) { return ctx.onKeydown($event); });
736
- i0.ɵɵtemplate(1, AccordionTab_Conditional_1_Template, 1, 1)(2, AccordionTab_Conditional_2_Template, 2, 2)(3, AccordionTab_Conditional_3_Template, 1, 4)(4, AccordionTab_Conditional_4_Template, 2, 2);
737
- i0.ɵɵelementEnd();
738
- i0.ɵɵelementStart(5, "div", 1)(6, "div", 2);
739
- i0.ɵɵprojection(7);
740
- i0.ɵɵtemplate(8, AccordionTab_ng_container_8_Template, 2, 1, "ng-container", 3);
741
- i0.ɵɵelementEnd()();
742
- } if (rf & 2) {
743
- i0.ɵɵclassProp("p-disabled", ctx.disabled);
744
- i0.ɵɵproperty("disabled", ctx.disabled)("ngClass", ctx.headerStyleClass)("ngStyle", ctx.headerStyle);
745
- i0.ɵɵattribute("aria-expanded", ctx.selected)("aria-level", ctx.headerAriaLevel)("data-p-disabled", ctx.disabled)("data-pc-section", "accordionheader")("tabindex", ctx.disabled ? null : 0)("id", ctx.getTabHeaderActionId(ctx.id))("aria-controls", ctx.getTabContentId(ctx.id));
746
- i0.ɵɵadvance();
747
- i0.ɵɵconditional(!ctx.headerTemplate && !ctx._headerTemplate ? 1 : 2);
748
- i0.ɵɵadvance(2);
749
- i0.ɵɵconditional(ctx.iconTemplate || ctx._iconTemplate ? 3 : 4);
750
- i0.ɵɵadvance(2);
751
- i0.ɵɵproperty("@tabContent", ctx.selected ? i0.ɵɵpureFunction1(24, _c4, i0.ɵɵpureFunction1(22, _c3, ctx.transitionOptions)) : i0.ɵɵpureFunction1(28, _c5, i0.ɵɵpureFunction1(26, _c3, ctx.transitionOptions)));
752
- i0.ɵɵattribute("id", ctx.getTabContentId(ctx.id))("aria-hidden", !ctx.selected)("aria-labelledby", ctx.getTabHeaderActionId(ctx.id))("data-pc-section", "toggleablecontent");
753
- i0.ɵɵadvance();
754
- i0.ɵɵproperty("ngClass", ctx.contentStyleClass)("ngStyle", ctx.contentStyle);
755
- i0.ɵɵadvance(2);
756
- i0.ɵɵproperty("ngIf", (ctx.contentTemplate || ctx._contentTemplate) && (ctx.cache ? ctx.loaded : ctx.selected));
757
- } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, ChevronDownIcon, ChevronUpIcon], encapsulation: 2, data: { animation: [
758
- trigger('tabContent', [
759
- state('hidden', style({
760
- height: '0',
761
- visibility: 'hidden'
762
- })),
763
- state('visible', style({
764
- height: '*',
765
- visibility: 'visible'
766
- })),
767
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
768
- transition('void => *', animate(0))
769
- ])
770
- ] }, changeDetection: 0 });
771
- }
772
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionTab, [{
773
- type: Component,
774
- args: [{
775
- selector: 'p-accordionTab, p-accordion-tab, p-accordiontab',
776
- standalone: true,
777
- imports: [CommonModule, ChevronDownIcon, ChevronUpIcon],
778
- template: `
779
- <button
780
- class="p-accordionheader"
781
- type="button"
782
- [disabled]="disabled"
783
- [attr.aria-expanded]="selected"
784
- [attr.aria-level]="headerAriaLevel"
785
- [class.p-disabled]="disabled"
786
- [attr.data-p-disabled]="disabled"
787
- [attr.data-pc-section]="'accordionheader'"
788
- (click)="toggle($event)"
789
- (keydown)="onKeydown($event)"
790
- [ngClass]="headerStyleClass"
791
- [ngStyle]="headerStyle"
792
- [attr.tabindex]="disabled ? null : 0"
793
- [attr.id]="getTabHeaderActionId(id)"
794
- [attr.aria-controls]="getTabContentId(id)"
795
- >
796
- @if (!headerTemplate && !_headerTemplate) {
797
- {{ header }}
798
- } @else {
799
- @if (headerTemplate || _headerTemplate) {
800
- <ng-container *ngTemplateOutlet="headerTemplate || _headerTemplate"></ng-container>
801
- }
802
- @if (headerFacet) {
803
- <ng-content select="p-header" />
804
- }
805
- }
806
- @if (iconTemplate || _iconTemplate) {
807
- <ng-template *ngTemplateOutlet="iconTemplate || _iconTemplate; context: { $implicit: selected }"></ng-template>
808
- } @else {
809
- <ng-container *ngIf="selected">
810
- <span *ngIf="accordion.collapseIcon" [class]="accordion.collapseIcon" [ngClass]="iconClass" [attr.aria-hidden]="true"></span>
811
- <ChevronDownIcon *ngIf="!accordion.collapseIcon" [ngClass]="iconClass" [attr.aria-hidden]="true" />
812
- </ng-container>
813
- <ng-container *ngIf="!selected">
814
- <span *ngIf="accordion.expandIcon" [class]="accordion.expandIcon" [ngClass]="iconClass" [attr.aria-hidden]="true"></span>
815
- <ChevronUpIcon *ngIf="!accordion.expandIcon" [ngClass]="iconClass" [attr.aria-hidden]="true" />
816
- </ng-container>
817
- }
818
- </button>
819
- <div
820
- [attr.id]="getTabContentId(id)"
821
- class="p-accordioncontent"
822
- [@tabContent]="selected ? { value: 'visible', params: { transitionParams: transitionOptions } } : { value: 'hidden', params: { transitionParams: transitionOptions } }"
823
- role="region"
824
- [attr.aria-hidden]="!selected"
825
- [attr.aria-labelledby]="getTabHeaderActionId(id)"
826
- [attr.data-pc-section]="'toggleablecontent'"
827
- >
828
- <div class="p-accordioncontent-content" [ngClass]="contentStyleClass" [ngStyle]="contentStyle">
829
- <ng-content />
830
- <ng-container *ngIf="(contentTemplate || _contentTemplate) && (cache ? loaded : selected)">
831
- <ng-container *ngTemplateOutlet="contentTemplate || _contentTemplate"></ng-container>
832
- </ng-container>
833
- </div>
834
- </div>
835
- `,
836
- animations: [
837
- trigger('tabContent', [
838
- state('hidden', style({
839
- height: '0',
840
- visibility: 'hidden'
841
- })),
842
- state('visible', style({
843
- height: '*',
844
- visibility: 'visible'
845
- })),
846
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
847
- transition('void => *', animate(0))
848
- ])
849
- ],
850
- host: {
851
- '[class.p-accordionpanel]': 'true',
852
- '[class.p-accordionpanel-active]': 'selected',
853
- '[attr.data-pc-name]': '"accordiontab"'
854
- },
855
- providers: [AccordionStyle],
856
- changeDetection: ChangeDetectionStrategy.OnPush,
857
- encapsulation: ViewEncapsulation.None
858
- }]
859
- }], null, { hostClass: [{
860
- type: HostBinding,
861
- args: ['class']
862
- }], hostStyle: [{
863
- type: HostBinding,
864
- args: ['style']
865
- }], id: [{
866
- type: Input
867
- }], header: [{
868
- type: Input
869
- }], headerStyle: [{
870
- type: Input
871
- }], tabStyle: [{
872
- type: Input
873
- }], contentStyle: [{
874
- type: Input
875
- }], tabStyleClass: [{
876
- type: Input
877
- }], headerStyleClass: [{
878
- type: Input
879
- }], contentStyleClass: [{
880
- type: Input
881
- }], disabled: [{
882
- type: Input,
883
- args: [{ transform: booleanAttribute }]
884
- }], cache: [{
885
- type: Input,
886
- args: [{ transform: booleanAttribute }]
887
- }], transitionOptions: [{
888
- type: Input
889
- }], iconPos: [{
890
- type: Input
891
- }], selected: [{
892
- type: Input
893
- }], headerAriaLevel: [{
894
- type: Input,
895
- args: [{ transform: numberAttribute }]
896
- }], selectedChange: [{
897
- type: Output
898
- }], headerFacet: [{
899
- type: ContentChildren,
900
- args: [Header]
901
- }], headerTemplate: [{
902
- type: ContentChild,
903
- args: ['header', { descendants: false }]
904
- }], iconTemplate: [{
905
- type: ContentChild,
906
- args: ['icon', { descendants: false }]
907
- }], contentTemplate: [{
908
- type: ContentChild,
909
- args: ['content', { descendants: false }]
910
- }], templates: [{
911
- type: ContentChildren,
912
- args: [PrimeTemplate]
913
- }] }); })();
914
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionTab, { className: "AccordionTab" }); })();
915
- /**
916
- * Accordion groups a collection of contents in tabs.
917
- * @group Components
918
- */
919
- export class Accordion extends BaseComponent {
920
- get hostClass() {
921
- return this.styleClass;
922
- }
923
- get hostStyle() {
924
- return this.style;
925
- }
926
- /**
927
- * Value of the active tab.
928
- * @defaultValue undefined
929
- * @group Props
930
- */
931
- value = model(undefined);
932
- /**
933
- * When enabled, multiple tabs can be activated at the same time.
934
- * @defaultValue false
935
- * @group Props
936
- */
937
- multiple = input(false, { transform: (v) => transformToBoolean(v) });
938
- /**
939
- * Inline style of the tab header and content.
940
- * @group Props
941
- */
942
- style;
943
- /**
944
- * Class of the element.
945
- * @group Props
946
- */
947
- styleClass;
948
- /**
949
- * Icon of a collapsed tab.
950
- * @group Props
951
- */
952
- expandIcon;
953
- /**
954
- * Icon of an expanded tab.
955
- * @group Props
956
- */
957
- collapseIcon;
958
- /**
959
- * When enabled, the focused tab is activated.
960
- * @defaultValue false
961
- * @group Props
962
- */
963
- selectOnFocus = input(false, { transform: (v) => transformToBoolean(v) });
964
- set activeIndex(val) {
965
- this._activeIndex = val;
966
- if (this.preventActiveIndexPropagation) {
967
- this.preventActiveIndexPropagation = false;
968
- return;
969
- }
970
- this.updateSelectionState();
971
- }
972
- /**
973
- * Transition options of the animation.
974
- * @group Props
975
- */
976
- transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
977
- /**
978
- * Returns the active index.
979
- * @param {number | number[]} value - New index.
980
- * @deprecated use native valueChange emitter of the value model.
981
- * @group Emits
982
- */
983
- activeIndexChange = new EventEmitter();
984
- set headerAriaLevel(val) {
985
- if (typeof val === 'number' && val > 0) {
986
- this._headerAriaLevel = val;
987
- }
988
- else if (this._headerAriaLevel !== 2) {
989
- this._headerAriaLevel = 2;
990
- }
991
- }
992
- /**
993
- * Callback to invoke when an active tab is collapsed by clicking on the header.
994
- * @param {AccordionTabCloseEvent} event - Custom tab close event.
995
- * @group Emits
996
- */
997
- onClose = new EventEmitter();
998
- /**
999
- * Callback to invoke when a tab gets expanded.
1000
- * @param {AccordionTabOpenEvent} event - Custom tab open event.
1001
- * @group Emits
1002
- */
1003
- onOpen = new EventEmitter();
1004
- id = signal(uuid('pn_id_'));
1005
- tabList;
1006
- tabListSubscription = null;
1007
- _activeIndex;
1008
- _headerAriaLevel = 2;
1009
- preventActiveIndexPropagation = false;
1010
- tabs = [];
1011
- _componentStyle = inject(AccordionStyle);
1012
- /**
1013
- * Index of the active tab or an array of indexes in multiple mode.
1014
- * @deprecated use value property with new architecture instead.
1015
- * @group Props
1016
- */
1017
- get activeIndex() {
1018
- return this._activeIndex;
1019
- }
1020
- /**
1021
- * The aria-level that each accordion header will have. The default value is 2 as per W3C specifications
1022
- * @deprecated use AccoridonHeader component and bind attribute to the host.
1023
- * @group Props
1024
- */
1025
- get headerAriaLevel() {
1026
- return this._headerAriaLevel;
1027
- }
1028
- onKeydown(event) {
1029
- switch (event.code) {
1030
- case 'ArrowDown':
1031
- this.onTabArrowDownKey(event);
1032
- break;
1033
- case 'ArrowUp':
1034
- this.onTabArrowUpKey(event);
1035
- break;
1036
- case 'Home':
1037
- if (!event.shiftKey) {
1038
- this.onTabHomeKey(event);
1039
- }
1040
- break;
1041
- case 'End':
1042
- if (!event.shiftKey) {
1043
- this.onTabEndKey(event);
1044
- }
1045
- break;
1046
- }
1047
- }
1048
- onTabArrowDownKey(event) {
1049
- const nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);
1050
- nextHeaderAction ? this.changeFocusedTab(nextHeaderAction) : this.onTabHomeKey(event);
1051
- event.preventDefault();
1052
- }
1053
- onTabArrowUpKey(event) {
1054
- const prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);
1055
- prevHeaderAction ? this.changeFocusedTab(prevHeaderAction) : this.onTabEndKey(event);
1056
- event.preventDefault();
1057
- }
1058
- onTabHomeKey(event) {
1059
- const firstHeaderAction = this.findFirstHeaderAction();
1060
- this.changeFocusedTab(firstHeaderAction);
1061
- event.preventDefault();
1062
- }
1063
- changeFocusedTab(element) {
1064
- if (element) {
1065
- focus(element);
1066
- if (this.selectOnFocus()) {
1067
- this.tabs.forEach((tab, i) => {
1068
- let selected = this.multiple() ? this._activeIndex.includes(i) : i === this._activeIndex;
1069
- if (this.multiple()) {
1070
- if (!this._activeIndex) {
1071
- this._activeIndex = [];
1072
- }
1073
- if (tab.id == element.id) {
1074
- tab.selected = !tab.selected;
1075
- if (!this._activeIndex.includes(i)) {
1076
- this._activeIndex.push(i);
1077
- }
1078
- else {
1079
- this._activeIndex = this._activeIndex.filter((ind) => ind !== i);
1080
- }
1081
- }
1082
- }
1083
- else {
1084
- if (tab.id == element.id) {
1085
- tab.selected = !tab.selected;
1086
- this._activeIndex = i;
1087
- }
1088
- else {
1089
- tab.selected = false;
1090
- }
1091
- }
1092
- tab.selectedChange.emit(selected);
1093
- this.activeIndexChange.emit(this._activeIndex);
1094
- tab.cd.markForCheck();
1095
- });
1096
- }
1097
- }
1098
- }
1099
- findNextHeaderAction(tabElement, selfCheck = false) {
1100
- const nextTabElement = selfCheck ? tabElement : tabElement.nextElementSibling;
1101
- const headerElement = findSingle(nextTabElement, '[data-pc-section="accordionheader"]');
1102
- return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section="accordionheader"]')) : null;
1103
- }
1104
- findPrevHeaderAction(tabElement, selfCheck = false) {
1105
- const prevTabElement = selfCheck ? tabElement : tabElement.previousElementSibling;
1106
- const headerElement = findSingle(prevTabElement, '[data-pc-section="accordionheader"]');
1107
- return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section="accordionheader"]')) : null;
1108
- }
1109
- findFirstHeaderAction() {
1110
- const firstEl = this.el.nativeElement.firstElementChild;
1111
- return this.findNextHeaderAction(firstEl, true);
1112
- }
1113
- findLastHeaderAction() {
1114
- const lastEl = this.el.nativeElement.lastElementChild;
1115
- return this.findPrevHeaderAction(lastEl, true);
1116
- }
1117
- onTabEndKey(event) {
1118
- const lastHeaderAction = this.findLastHeaderAction();
1119
- this.changeFocusedTab(lastHeaderAction);
1120
- event.preventDefault();
1121
- }
1122
- ngAfterContentInit() {
1123
- this.initTabs();
1124
- this.tabListSubscription = this.tabList.changes.subscribe((_) => {
1125
- this.initTabs();
1126
- });
1127
- }
1128
- initTabs() {
1129
- this.tabs = this.tabList.toArray();
1130
- this.tabs.forEach((tab) => {
1131
- tab.headerAriaLevel = this._headerAriaLevel;
1132
- });
1133
- this.updateSelectionState();
1134
- this.cd.markForCheck();
1135
- }
1136
- getBlockableElement() {
1137
- return this.el.nativeElement.children[0];
1138
- }
1139
- updateSelectionState() {
1140
- if (this.tabs && this.tabs.length && this._activeIndex != null) {
1141
- for (let i = 0; i < this.tabs.length; i++) {
1142
- let selected = this.multiple() ? this._activeIndex.includes(i) : i === this._activeIndex;
1143
- let changed = selected !== this.tabs[i].selected;
1144
- if (changed) {
1145
- this.tabs[i].selected = selected;
1146
- this.tabs[i].selectedChange.emit(selected);
1147
- this.tabs[i].cd.markForCheck();
1148
- }
1149
- }
1150
- }
1151
- }
1152
- isTabActive(index) {
1153
- return this.multiple() ? this._activeIndex && this._activeIndex.includes(index) : this._activeIndex === index;
1154
- }
1155
- getTabProp(tab, name) {
1156
- return tab.props ? tab.props[name] : undefined;
1157
- }
1158
- updateActiveIndex() {
1159
- let index = this.multiple() ? [] : null;
1160
- this.tabs.forEach((tab, i) => {
1161
- if (tab.selected) {
1162
- if (this.multiple()) {
1163
- index.push(i);
1164
- }
1165
- else {
1166
- index = i;
1167
- return;
1168
- }
1169
- }
1170
- });
1171
- this.preventActiveIndexPropagation = true;
1172
- this._activeIndex = index;
1173
- this.activeIndexChange.emit(index);
1174
- }
1175
- updateValue(value) {
1176
- const currentValue = this.value();
1177
- if (this.multiple()) {
1178
- const newValue = Array.isArray(currentValue) ? [...currentValue] : [];
1179
- const index = newValue.indexOf(value);
1180
- if (index !== -1) {
1181
- newValue.splice(index, 1);
1182
- }
1183
- else {
1184
- newValue.push(value);
1185
- }
1186
- this.value.set(newValue);
1187
- }
1188
- else {
1189
- if (currentValue === value) {
1190
- this.value.set(undefined);
1191
- }
1192
- else {
1193
- this.value.set(value);
1194
- }
1195
- }
1196
- }
1197
- ngOnDestroy() {
1198
- if (this.tabListSubscription) {
1199
- this.tabListSubscription.unsubscribe();
1200
- }
1201
- super.ngOnDestroy();
1202
- }
1203
- static ɵfac = /*@__PURE__*/ (() => { let ɵAccordion_BaseFactory; return function Accordion_Factory(__ngFactoryType__) { return (ɵAccordion_BaseFactory || (ɵAccordion_BaseFactory = i0.ɵɵgetInheritedFactory(Accordion)))(__ngFactoryType__ || Accordion); }; })();
1204
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Accordion, selectors: [["p-accordion"]], contentQueries: function Accordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
1205
- i0.ɵɵcontentQuery(dirIndex, AccordionTab, 5);
1206
- } if (rf & 2) {
1207
- let _t;
1208
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabList = _t);
1209
- } }, hostVars: 8, hostBindings: function Accordion_HostBindings(rf, ctx) { if (rf & 1) {
1210
- i0.ɵɵlistener("keydown", function Accordion_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });
1211
- } if (rf & 2) {
1212
- i0.ɵɵstyleMap(ctx.hostStyle);
1213
- i0.ɵɵclassMap(ctx.hostClass);
1214
- i0.ɵɵclassProp("p-accordion", true)("p-component", true);
1215
- } }, inputs: { value: [1, "value"], multiple: [1, "multiple"], style: "style", styleClass: "styleClass", expandIcon: "expandIcon", collapseIcon: "collapseIcon", selectOnFocus: [1, "selectOnFocus"], transitionOptions: "transitionOptions", activeIndex: "activeIndex", headerAriaLevel: "headerAriaLevel" }, outputs: { value: "valueChange", activeIndexChange: "activeIndexChange", onClose: "onClose", onOpen: "onOpen" }, standalone: true, features: [i0.ɵɵProvidersFeature([AccordionStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function Accordion_Template(rf, ctx) { if (rf & 1) {
1216
- i0.ɵɵprojectionDef();
1217
- i0.ɵɵprojection(0);
1218
- } }, dependencies: [CommonModule, SharedModule], encapsulation: 2, changeDetection: 0 });
1219
- }
1220
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Accordion, [{
1221
- type: Component,
1222
- args: [{
1223
- selector: 'p-accordion',
1224
- standalone: true,
1225
- imports: [CommonModule, SharedModule],
1226
- template: ` <ng-content /> `,
1227
- host: {
1228
- '[class.p-accordion]': 'true',
1229
- '[class.p-component]': 'true'
1230
- },
1231
- changeDetection: ChangeDetectionStrategy.OnPush,
1232
- providers: [AccordionStyle]
1233
- }]
1234
- }], null, { hostClass: [{
1235
- type: HostBinding,
1236
- args: ['class']
1237
- }], hostStyle: [{
1238
- type: HostBinding,
1239
- args: ['style']
1240
- }], style: [{
1241
- type: Input
1242
- }], styleClass: [{
1243
- type: Input
1244
- }], expandIcon: [{
1245
- type: Input
1246
- }], collapseIcon: [{
1247
- type: Input
1248
- }], transitionOptions: [{
1249
- type: Input
1250
- }], activeIndexChange: [{
1251
- type: Output
1252
- }], onClose: [{
1253
- type: Output
1254
- }], onOpen: [{
1255
- type: Output
1256
- }], tabList: [{
1257
- type: ContentChildren,
1258
- args: [AccordionTab, { descendants: true }]
1259
- }], activeIndex: [{
1260
- type: Input
1261
- }], headerAriaLevel: [{
1262
- type: Input
1263
- }], onKeydown: [{
1264
- type: HostListener,
1265
- args: ['keydown', ['$event']]
1266
- }] }); })();
1267
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Accordion, { className: "Accordion" }); })();
1268
- export class AccordionModule {
1269
- static ɵfac = function AccordionModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionModule)(); };
1270
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AccordionModule });
1271
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent, SharedModule] });
1272
- }
1273
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionModule, [{
1274
- type: NgModule,
1275
- args: [{
1276
- imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent],
1277
- exports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent]
1278
- }]
1279
- }], null, null); })();
1280
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AccordionModule, { imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent], exports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent] }); })();
1281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY29yZGlvbi9hY2NvcmRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFFTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLGVBQWUsRUFFZixNQUFNLEVBRU4sTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFlLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0lBNEY1Qyw2RkFBMkU7OztJQUEzRSx5RUFBMkU7OztJQUEvQixBQUE5QixvREFBOEIsd0VBQTZC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U0FBUztrQkFEUixZQUFZO21CQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBMUgxQixTQUFTO0FBNFV0QixNQUFNLE9BQU8sZUFBZTt5R0FBZixlQUFlOzREQUFmLGVBQWU7Z0VBSGQsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFDL0QsWUFBWTs7aUZBRXRDLGVBQWU7Y0FKM0IsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUM7Z0JBQ25HLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUM7YUFDdEc7O3dGQUNZLGVBQWUsY0E1VWYsU0FBUyxFQTVQVCxZQUFZLEVBcWtCYyxZQUFZLEVBdDVCdEMsY0FBYyxFQStEZCxlQUFlLEVBc0tmLGdCQUFnQixhQXdXaEIsU0FBUyxFQTVQVCxZQUFZLEVBc2tCYyxZQUFZLEVBdjVCdEMsY0FBYyxFQStEZCxlQUFlLEVBc0tmLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaW5wdXQsXG4gICAgSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtLFxuICAgIG1vZGVsLFxuICAgIE5nTW9kdWxlLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5kU2luZ2xlLCBmb2N1cywgZ2V0QXR0cmlidXRlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IEJsb2NrYWJsZVVJLCBIZWFkZXIsIFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uVXBJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Ub0Jvb2xlYW4gfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uU3R5bGUgfSBmcm9tICcuL3N0eWxlL2FjY29yZGlvbnN0eWxlJztcblxuLyoqXG4gKiBDdXN0b20gdGFiIG9wZW4gZXZlbnQuXG4gKiBAc2VlIHtAbGluayBvbk9wZW59XG4gKiBAZ3JvdXAgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uVGFiT3BlbkV2ZW50IHtcbiAgICAvKipcbiAgICAgKiBCcm93c2VyIGV2ZW50LlxuICAgICAqL1xuICAgIG9yaWdpbmFsRXZlbnQ6IEV2ZW50O1xuICAgIC8qKlxuICAgICAqIE9wZW5lZCB0YWIgaW5kZXguXG4gICAgICovXG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDdXN0b20gdGFiIGNsb3NlIGV2ZW50LlxuICogQHNlZSB7QGxpbmsgb25DbG9zZX1cbiAqIEBleHRlbmRzIHtBY2NvcmRpb25UYWJPcGVuRXZlbnR9XG4gKiBAZ3JvdXAgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uVGFiQ2xvc2VFdmVudCBleHRlbmRzIEFjY29yZGlvblRhYk9wZW5FdmVudCB7fVxuXG4vKipcbiAqIFRvZ2dsZSBpY29uIHRlbXBsYXRlIGNvbnRleHQuXG4gKiBAZ3JvdXAgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uVG9nZ2xlSWNvblRlbXBsYXRlQ29udGV4dCB7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgYWN0aXZlIHN0YXR1cyBvZiB0aGUgcGFuZWwuXG4gICAgICovXG4gICAgYWN0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFjY29yZGlvblBhbmVsIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgQWNjb3JkaW9uIGNvbXBvbmVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1hY2NvcmRpb24tcGFuZWwsIHAtYWNjb3JkaW9ucGFuZWwnLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCAvPmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25wYW5lbF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25wYW5lbC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1tjbGFzcy5wLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJhY2NvcmRpb25wYW5lbFwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtYWN0aXZlXSc6ICdhY3RpdmUoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvblBhbmVsIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgcGNBY2NvcmRpb24gPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBY2NvcmRpb24pKTtcbiAgICAvKipcbiAgICAgKiBWYWx1ZSBvZiB0aGUgYWN0aXZlIHRhYi5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHZhbHVlID0gbW9kZWw8dW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZyB8IG51bWJlciB8IHN0cmluZ1tdIHwgbnVtYmVyW10+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIHRhYiB3aGVuIGVuYWJsZWQuXG4gICAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIGRpc2FibGVkOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08YW55LCBib29sZWFuPiA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogKHY6IGFueSkgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpIH0pO1xuXG4gICAgYWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucGNBY2NvcmRpb24ubXVsdGlwbGUoKSA/IHRoaXMudmFsdWVFcXVhbHModGhpcy5wY0FjY29yZGlvbi52YWx1ZSgpLCB0aGlzLnZhbHVlKCkpIDogdGhpcy5wY0FjY29yZGlvbi52YWx1ZSgpID09PSB0aGlzLnZhbHVlKCkpKTtcblxuICAgIHZhbHVlRXF1YWxzKGN1cnJlbnRWYWx1ZTogYW55LCB2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWUuaW5jbHVkZXModmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50VmFsdWUgPT09IHZhbHVlO1xuICAgIH1cbn1cbi8qKlxuICogQWNjb3JkaW9uSGVhZGVyIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgQWNjb3JkaW9uIGNvbXBvbmVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1hY2NvcmRpb24taGVhZGVyLCBwLWFjY29yZGlvbmhlYWRlcicsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uVXBJY29uXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIEBpZiAodG9nZ2xlaWNvbikge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9nZ2xlaWNvbjsgY29udGV4dDogeyBhY3RpdmU6IGFjdGl2ZSgpIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmUoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicGNBY2NvcmRpb24uY29sbGFwc2VJY29uXCIgW2NsYXNzXT1cInBjQWNjb3JkaW9uLmNvbGxhcHNlSWNvblwiIFtuZ0NsYXNzXT1cInBjQWNjb3JkaW9uLmljb25DbGFzc1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPENoZXZyb25Eb3duSWNvbiAqbmdJZj1cIiFwY0FjY29yZGlvbi5jb2xsYXBzZUljb25cIiBbbmdDbGFzc109XCJwY0FjY29yZGlvbi5pY29uQ2xhc3NcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3RpdmUoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicGNBY2NvcmRpb24uZXhwYW5kSWNvblwiIFtjbGFzc109XCJwY0FjY29yZGlvbi5leHBhbmRJY29uXCIgW25nQ2xhc3NdPVwicGNBY2NvcmRpb24uaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblVwSWNvbiAqbmdJZj1cIiFwY0FjY29yZGlvbi5leHBhbmRJY29uXCIgW25nQ2xhc3NdPVwicGNBY2NvcmRpb24uaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25oZWFkZXJdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1leHBhbmRlZF0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnYXJpYUNvbnRyb2xzKCknLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJidXR0b25cIicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnXCIwXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWFjdGl2ZV0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJhY2NvcmRpb25oZWFkZXJcIicsXG4gICAgICAgICdbc3R5bGUudXNlci1zZWxlY3RdJzogJ1wibm9uZVwiJ1xuICAgIH0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtSaXBwbGVdXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkhlYWRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIHBjQWNjb3JkaW9uID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQWNjb3JkaW9uKSk7XG5cbiAgICBwY0FjY29yZGlvblBhbmVsID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQWNjb3JkaW9uUGFuZWwpKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY0FjY29yZGlvbi5pZCgpfV9hY2NvcmRpb25oZWFkZXJfJHt0aGlzLnBjQWNjb3JkaW9uUGFuZWwudmFsdWUoKX1gKTtcblxuICAgIGFjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNBY2NvcmRpb25QYW5lbC5hY3RpdmUoKSk7XG5cbiAgICBkaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNBY2NvcmRpb25QYW5lbC5kaXNhYmxlZCgpKTtcblxuICAgIGFyaWFDb250cm9scyA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMucGNBY2NvcmRpb24uaWQoKX1fYWNjb3JkaW9uY29udGVudF8ke3RoaXMucGNBY2NvcmRpb25QYW5lbC52YWx1ZSgpfWApO1xuICAgIC8qKlxuICAgICAqIFRvZ2dsZSBpY29uIHRlbXBsYXRlLlxuICAgICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxBY2NvcmRpb25Ub2dnbGVJY29uVGVtcGxhdGVDb250ZXh0Pn0gY29udGV4dCAtIENvbnRleHQgb2YgdGhlIHRlbXBsYXRlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPG5nLXRlbXBsYXRlICN0b2dnbGVpY29uIGxldC1hY3RpdmU9XCJhY3RpdmVcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiBgYGBcbiAgICAgKiBAc2VlIHtAbGluayBBY2NvcmRpb25Ub2dnbGVJY29uVGVtcGxhdGVDb250ZXh0fVxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0b2dnbGVpY29uJykgdG9nZ2xlaWNvbjogVGVtcGxhdGVSZWY8QWNjb3JkaW9uVG9nZ2xlSWNvblRlbXBsYXRlQ29udGV4dD4gfCB1bmRlZmluZWQ7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsnJGV2ZW50J10pIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMucGNBY2NvcmRpb24uc2VsZWN0T25Gb2N1cygpICYmIHRoaXMuY2hhbmdlQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFycm93RG93bktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFycm93VXBLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhvbWVLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW5kS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ051bXBhZEVudGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUFjdGl2ZVZhbHVlKCkge1xuICAgICAgICB0aGlzLnBjQWNjb3JkaW9uLnVwZGF0ZVZhbHVlKHRoaXMucGNBY2NvcmRpb25QYW5lbC52YWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRQYW5lbChoZWFkZXJFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBoZWFkZXJFbGVtZW50Py5jbG9zZXN0KCdbZGF0YS1wYy1uYW1lPVwiYWNjb3JkaW9ucGFuZWxcIl0nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRIZWFkZXIocGFuZWxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmaW5kU2luZ2xlKHBhbmVsRWxlbWVudCwgJ1tkYXRhLXBjLW5hbWU9XCJhY2NvcmRpb25oZWFkZXJcIl0nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmROZXh0UGFuZWwocGFuZWxFbGVtZW50LCBzZWxmQ2hlY2sgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gc2VsZkNoZWNrID8gcGFuZWxFbGVtZW50IDogcGFuZWxFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcblxuICAgICAgICByZXR1cm4gZWxlbWVudCA/IChnZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2RhdGEtcC1kaXNhYmxlZCcpID8gdGhpcy5maW5kTmV4dFBhbmVsKGVsZW1lbnQpIDogdGhpcy5maW5kSGVhZGVyKGVsZW1lbnQpKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kUHJldlBhbmVsKHBhbmVsRWxlbWVudCwgc2VsZkNoZWNrID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHNlbGZDaGVjayA/IHBhbmVsRWxlbWVudCA6IHBhbmVsRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXG4gICAgICAgIHJldHVybiBlbGVtZW50ID8gKGdldEF0dHJpYnV0ZShlbGVtZW50LCAnZGF0YS1wLWRpc2FibGVkJykgPyB0aGlzLmZpbmRQcmV2UGFuZWwoZWxlbWVudCkgOiB0aGlzLmZpbmRIZWFkZXIoZWxlbWVudCkpIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRGaXJzdFBhbmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kTmV4dFBhbmVsKHRoaXMucGNBY2NvcmRpb24uZWwubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTGFzdFBhbmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJldlBhbmVsKHRoaXMucGNBY2NvcmRpb24uZWwubmF0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZUZvY3VzZWRQYW5lbChldmVudCwgZWxlbWVudCkge1xuICAgICAgICBmb2N1cyhlbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFycm93RG93bktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBuZXh0UGFuZWwgPSB0aGlzLmZpbmROZXh0UGFuZWwodGhpcy5maW5kUGFuZWwoZXZlbnQuY3VycmVudFRhcmdldCkpO1xuICAgICAgICBuZXh0UGFuZWwgPyB0aGlzLmNoYW5nZUZvY3VzZWRQYW5lbChldmVudCwgbmV4dFBhbmVsKSA6IHRoaXMub25Ib21lS2V5KGV2ZW50KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFycm93VXBLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJldlBhbmVsID0gdGhpcy5maW5kUHJldlBhbmVsKHRoaXMuZmluZFBhbmVsKGV2ZW50LmN1cnJlbnRUYXJnZXQpKTtcblxuICAgICAgICBwcmV2UGFuZWwgPyB0aGlzLmNoYW5nZUZvY3VzZWRQYW5lbChldmVudCwgcHJldlBhbmVsKSA6IHRoaXMub25FbmRLZXkoZXZlbnQpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Ib21lS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZpcnN0UGFuZWwgPSB0aGlzLmZpbmRGaXJzdFBhbmVsKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkUGFuZWwoZXZlbnQsIGZpcnN0UGFuZWwpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25FbmRLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgbGFzdFBhbmVsID0gdGhpcy5maW5kTGFzdFBhbmVsKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkUGFuZWwoZXZlbnQsIGxhc3RQYW5lbCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVudGVyS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlVmFsdWUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1hY2NvcmRpb24tY29udGVudCwgcC1hY2NvcmRpb25jb250ZW50JyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJwLWFjY29yZGlvbmNvbnRlbnQtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25jb250ZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCgpJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ1wicmVnaW9uXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1wYy1uYW1lXSc6ICdcImFjY29yZGlvbmNvbnRlbnRcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtYWN0aXZlXSc6ICdhY3RpdmUoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2FyaWFMYWJlbGxlZGJ5KCknLFxuICAgICAgICAnW0Bjb250ZW50XSc6IGBhY3RpdmUoKVxuICAgICAgICAgICAgPyB7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiBwY0FjY29yZGlvbi50cmFuc2l0aW9uT3B0aW9ucyB9IH1cbiAgICAgICAgICAgIDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiBwY0FjY29yZGlvbi50cmFuc2l0aW9uT3B0aW9ucyB9IH1gXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2NvbnRlbnQnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA8PT4gaGlkZGVuJywgW2FuaW1hdGUoJ3t7dHJhbnNpdGlvblBhcmFtc319JyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db250ZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgcGNBY2NvcmRpb24gPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBY2NvcmRpb24pKTtcblxuICAgIHBjQWNjb3JkaW9uUGFuZWwgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBY2NvcmRpb25QYW5lbCkpO1xuXG4gICAgYWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY0FjY29yZGlvblBhbmVsLmFjdGl2ZSgpKTtcblxuICAgIGFyaWFMYWJlbGxlZGJ5ID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY0FjY29yZGlvbi5pZCgpfV9hY2NvcmRpb25oZWFkZXJfJHt0aGlzLnBjQWNjb3JkaW9uUGFuZWwudmFsdWUoKX1gKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY0FjY29yZGlvbi5pZCgpfV9hY2NvcmRpb25jb250ZW50XyR7dGhpcy5wY0FjY29yZGlvblBhbmVsLnZhbHVlKCl9YCk7XG59XG5cbi8qKlxuICogQWNjb3JkaW9uVGFiIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgQWNjb3JkaW9uLlxuICogQGRlcHJlY2F0ZWQgVXNlIEFjY29yZGlvblBhbmVsLCBBY2NvcmRpb25IZWFkZXIsIEFjY29yZGlvbkNvbnRlbnQgaW5zdGVhZC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1hY2NvcmRpb25UYWIsIHAtYWNjb3JkaW9uLXRhYiwgcC1hY2NvcmRpb250YWInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uVXBJY29uXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInAtYWNjb3JkaW9uaGVhZGVyXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJoZWFkZXJBcmlhTGV2ZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnAtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInYWNjb3JkaW9uaGVhZGVyJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaGVhZGVyU3R5bGVDbGFzc1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJoZWFkZXJTdHlsZVwiXG4gICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IG51bGwgOiAwXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImdldFRhYkhlYWRlckFjdGlvbklkKGlkKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImdldFRhYkNvbnRlbnRJZChpZClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCFoZWFkZXJUZW1wbGF0ZSAmJiAhX2hlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAge3sgaGVhZGVyIH19XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlIHx8IF9oZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGUgfHwgX2hlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaGVhZGVyRmFjZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicC1oZWFkZXJcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaWNvblRlbXBsYXRlIHx8IF9pY29uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGUgfHwgX2ljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGVkIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWNjb3JkaW9uLmNvbGxhcHNlSWNvblwiIFtjbGFzc109XCJhY2NvcmRpb24uY29sbGFwc2VJY29uXCIgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3duSWNvbiAqbmdJZj1cIiFhY2NvcmRpb24uY29sbGFwc2VJY29uXCIgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFjY29yZGlvbi5leHBhbmRJY29uXCIgW2NsYXNzXT1cImFjY29yZGlvbi5leHBhbmRJY29uXCIgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25VcEljb24gKm5nSWY9XCIhYWNjb3JkaW9uLmV4cGFuZEljb25cIiBbbmdDbGFzc109XCJpY29uQ2xhc3NcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImdldFRhYkNvbnRlbnRJZChpZClcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWFjY29yZGlvbmNvbnRlbnRcIlxuICAgICAgICAgICAgW0B0YWJDb250ZW50XT1cInNlbGVjdGVkID8geyB2YWx1ZTogJ3Zpc2libGUnLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdHJhbnNpdGlvbk9wdGlvbnMgfSB9IDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0cmFuc2l0aW9uT3B0aW9ucyB9IH1cIlxuICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhc2VsZWN0ZWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImdldFRhYkhlYWRlckFjdGlvbklkKGlkKVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3RvZ2dsZWFibGVjb250ZW50J1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWFjY29yZGlvbmNvbnRlbnQtY29udGVudFwiIFtuZ0NsYXNzXT1cImNvbnRlbnRTdHlsZUNsYXNzXCIgW25nU3R5bGVdPVwiY29udGVudFN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGNvbnRlbnRUZW1wbGF0ZSB8fCBfY29udGVudFRlbXBsYXRlKSAmJiAoY2FjaGUgPyBsb2FkZWQgOiBzZWxlY3RlZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZSB8fCBfY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3RhYkNvbnRlbnQnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA8PT4gaGlkZGVuJywgW2FuaW1hdGUoJ3t7dHJhbnNpdGlvblBhcmFtc319JyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25wYW5lbF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25wYW5lbC1hY3RpdmVdJzogJ3NlbGVjdGVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJhY2NvcmRpb250YWJcIidcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW0FjY29yZGlvblN0eWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvblRhYiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50YWJTdHlsZUNsYXNzO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IGhvc3RTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFiU3R5bGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgaWQgc3RhdGUgYXMgYSBzdHJpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHV1aWQoJ3BuX2lkXycpO1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gZGVmaW5lIHRoZSBoZWFkZXIgb2YgdGhlIHRhYi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIHRhYiBoZWFkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaGVhZGVyU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSB0YWIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdGFiU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSB0YWIgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250ZW50U3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIHRhYi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0YWJTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIHRhYiBoZWFkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaGVhZGVyU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSB0YWIgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250ZW50U3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRhYiBpcyBkaXNhYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciBhIGxhenkgbG9hZGVkIHBhbmVsIHNob3VsZCBhdm9pZCBnZXR0aW5nIGxvYWRlZCBhZ2FpbiBvbiByZXNlbGVjdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgY2FjaGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgPSAnNDAwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpJztcbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgaWNvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uUG9zOiAnZW5kJyB8ICdzdGFydCcgPSAnc3RhcnQnO1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSB0aGF0IHJldHVybnMgdGhlIHNlbGVjdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG4gICAgc2V0IHNlbGVjdGVkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbDtcblxuICAgICAgICBpZiAoIXRoaXMubG9hZGVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgdGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogVGhlIGFyaWEtbGV2ZWwgdGhhdCBlYWNoIGFjY29yZGlvbiBoZWFkZXIgd2lsbCBoYXZlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAyIGFzIHBlciBXM0Mgc3BlY2lmaWNhdGlvbnNcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBoZWFkZXJBcmlhTGV2ZWw6IG51bWJlciA9IDI7XG4gICAgLyoqXG4gICAgICogRXZlbnQgdHJpZ2dlcmVkIGJ5IGNoYW5naW5nIHRoZSBjaG9pY2UuXG4gICAgICogQHBhcmFtIHtib29sZWFufSB2YWx1ZSAtIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIG9wdGlvbiBpcyBjaGFuZ2VkLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihIZWFkZXIpIGhlYWRlckZhY2V0ITogUXVlcnlMaXN0PEhlYWRlcj47XG5cbiAgICBwcml2YXRlIF9zZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IGljb25DbGFzcygpIHtcbiAgICAgICAgaWYgKHRoaXMuaWNvblBvcyA9PT0gJ2VuZCcpIHtcbiAgICAgICAgICAgIHJldHVybiAncC1hY2NvcmRpb25oZWFkZXItdG9nZ2xlLWljb24gaWNvbi1lbmQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdwLWFjY29yZGlvbmhlYWRlci10b2dnbGUtaWNvbiBpY29uLXN0YXJ0JztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb250ZW50IHRlbXBsYXRlIGZvciB0aGUgY29udGVudCBvZiB0aGUgZHJhd2VyLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXInLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBpY29uLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENvbnRlbnQgdGVtcGxhdGUgZm9yIHRoZSBmb290ZXIgb2YgdGhlIGRyYXdlci5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnY29udGVudCcsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBfaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgX2NvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgYWNjb3JkaW9uID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQWNjb3JkaW9uKSkgYXMgQWNjb3JkaW9uO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KEFjY29yZGlvblN0eWxlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zb2xlLmxvZygnQWNjb3JkaW9uVGFiIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjE4LCBwbGVhc2UgdXNlIHRoZSBuZXcgc3RydWN0dXJlIGluc3RlYWQuJyk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29udGVudCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0b2dnbGUoZXZlbnQ/OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5maW5kVGFiSW5kZXgoKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24ub25DbG9zZS5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGluZGV4OiBpbmRleCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY2NvcmRpb24ubXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hY2NvcmRpb24udGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY2NvcmRpb24udGFic1tpXS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24udGFic1tpXS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24udGFic1tpXS5zZWxlY3RlZENoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3JkaW9uLnRhYnNbaV0uY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24ub25PcGVuLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgaW5kZXg6IGluZGV4IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmFjY29yZGlvbi51cGRhdGVBY3RpdmVJbmRleCgpO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGZpbmRUYWJJbmRleCgpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hY2NvcmRpb24udGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWNjb3JkaW9uLnRhYnNbaV0gPT0gdGhpcykge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRhYkhlYWRlckFjdGlvbklkKHRhYklkKSB7XG4gICAgICAgIHJldHVybiBgJHt0YWJJZH1faGVhZGVyX2FjdGlvbmA7XG4gICAgfVxuXG4gICAgZ2V0VGFiQ29udGVudElkKHRhYklkKSB7XG4gICAgICAgIHJldHVybiBgJHt0YWJJZH1fY29udGVudGA7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuYWNjb3JkaW9uLnRhYnMuc3BsaWNlKHRoaXMuZmluZFRhYkluZGV4KCksIDEpO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuXG4vKipcbiAqIEFjY29yZGlvbiBncm91cHMgYSBjb2xsZWN0aW9uIG9mIGNvbnRlbnRzIGluIHRhYnMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYWNjb3JkaW9uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQgLz4gYCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25dJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbQWNjb3JkaW9uU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBCbG9ja2FibGVVSSwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3R5bGVDbGFzcztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IGhvc3RTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3R5bGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHRoZSBhY3RpdmUgdGFiLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWUgPSBtb2RlbDx1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10gfCBudW1iZXJbXT4odW5kZWZpbmVkKTtcbiAgICAvKipcbiAgICAgKiBXaGVuIGVuYWJsZWQsIG11bHRpcGxlIHRhYnMgY2FuIGJlIGFjdGl2YXRlZCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBtdWx0aXBsZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogKHY6IGFueSkgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpIH0pO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgdGFiIGhlYWRlciBhbmQgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiBhIGNvbGxhcHNlZCB0YWIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZXhwYW5kSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEljb24gb2YgYW4gZXhwYW5kZWQgdGFiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgdGhlIGZvY3VzZWQgdGFiIGlzIGFjdGl2YXRlZC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgc2VsZWN0T25Gb2N1cyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogKHY6IGFueSkgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpIH0pO1xuICAgIHNldCBhY3RpdmVJbmRleCh2YWw6IG51bWJlciB8IG51bWJlcltdIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCA9IHZhbDtcbiAgICAgICAgaWYgKHRoaXMucHJldmVudEFjdGl2ZUluZGV4UHJvcGFnYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucHJldmVudEFjdGl2ZUluZGV4UHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uU3RhdGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBhbmltYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICc0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknO1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFjdGl2ZSBpbmRleC5cbiAgICAgKiBAcGFyYW0ge251bWJlciB8IG51bWJlcltdfSB2YWx1ZSAtIE5ldyBpbmRleC5cbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgbmF0aXZlIHZhbHVlQ2hhbmdlIGVtaXR0ZXIgb2YgdGhlIHZhbHVlIG1vZGVsLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBhY3RpdmVJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IG51bWJlcltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVtYmVyW10+KCk7XG5cbiAgICBzZXQgaGVhZGVyQXJpYUxldmVsKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJyAmJiB2YWwgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJBcmlhTGV2ZWwgPSB2YWw7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5faGVhZGVyQXJpYUxldmVsICE9PSAyKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJBcmlhTGV2ZWwgPSAyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGFuIGFjdGl2ZSB0YWIgaXMgY29sbGFwc2VkIGJ5IGNsaWNraW5nIG9uIHRoZSBoZWFkZXIuXG4gICAgICogQHBhcmFtIHtBY2NvcmRpb25UYWJDbG9zZUV2ZW50fSBldmVudCAtIEN1c3RvbSB0YWIgY2xvc2UgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxBY2NvcmRpb25UYWJDbG9zZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBhIHRhYiBnZXRzIGV4cGFuZGVkLlxuICAgICAqIEBwYXJhbSB7QWNjb3JkaW9uVGFiT3BlbkV2ZW50fSBldmVudCAtIEN1c3RvbSB0YWIgb3BlbiBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25PcGVuOiBFdmVudEVtaXR0ZXI8QWNjb3JkaW9uVGFiT3BlbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGlkID0gc2lnbmFsKHV1aWQoJ3BuX2lkXycpKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uVGFiLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHRhYkxpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25UYWI+IHwgdW5kZWZpbmVkO1xuXG4gICAgdGFiTGlzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIF9hY3RpdmVJbmRleDogYW55O1xuXG4gICAgcHJpdmF0ZSBfaGVhZGVyQXJpYUxldmVsOiBudW1iZXIgPSAyO1xuXG4gICAgcHJldmVudEFjdGl2ZUluZGV4UHJvcGFnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyB0YWJzOiBBY2NvcmRpb25UYWJbXSA9IFtdO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KEFjY29yZGlvblN0eWxlKTtcblxuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBhY3RpdmUgdGFiIG9yIGFuIGFycmF5IG9mIGluZGV4ZXMgaW4gbXVsdGlwbGUgbW9kZS5cbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgdmFsdWUgcHJvcGVydHkgd2l0aCBuZXcgYXJjaGl0ZWN0dXJlIGluc3RlYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IGFjdGl2ZUluZGV4KCk6IG51bWJlciB8IG51bWJlcltdIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVJbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXJpYS1sZXZlbCB0aGF0IGVhY2ggYWNjb3JkaW9uIGhlYWRlciB3aWxsIGhhdmUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDIgYXMgcGVyIFczQyBzcGVjaWZpY2F0aW9uc1xuICAgICAqIEBkZXByZWNhdGVkIHVzZSBBY2Nvcmlkb25IZWFkZXIgY29tcG9uZW50IGFuZCBiaW5kIGF0dHJpYnV0ZSB0byB0aGUgaG9zdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgaGVhZGVyQXJpYUxldmVsKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJBcmlhTGV2ZWw7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlkb3duKGV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uVGFiQXJyb3dEb3duS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblRhYkFycm93VXBLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25UYWJIb21lS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVGFiRW5kS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRhYkFycm93RG93bktleShldmVudCkge1xuICAgICAgICBjb25zdCBuZXh0SGVhZGVyQWN0aW9uID0gdGhpcy5maW5kTmV4dEhlYWRlckFjdGlvbihldmVudC50YXJnZXQucGFyZW50RWxlbWVudCk7XG4gICAgICAgIG5leHRIZWFkZXJBY3Rpb24gPyB0aGlzLmNoYW5nZUZvY3VzZWRUYWIobmV4dEhlYWRlckFjdGlvbikgOiB0aGlzLm9uVGFiSG9tZUtleShldmVudCk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblRhYkFycm93VXBLZXkoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJldkhlYWRlckFjdGlvbiA9IHRoaXMuZmluZFByZXZIZWFkZXJBY3Rpb24oZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQpO1xuICAgICAgICBwcmV2SGVhZGVyQWN0aW9uID8gdGhpcy5jaGFuZ2VGb2N1c2VkVGFiKHByZXZIZWFkZXJBY3Rpb24pIDogdGhpcy5vblRhYkVuZEtleShldmVudCk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblRhYkhvbWVLZXkoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RIZWFkZXJBY3Rpb24gPSB0aGlzLmZpbmRGaXJzdEhlYWRlckFjdGlvbigpO1xuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRUYWIoZmlyc3RIZWFkZXJBY3Rpb24pO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNoYW5nZUZvY3VzZWRUYWIoZWxlbWVudCkge1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXMoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdE9uRm9jdXMoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWIsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkID0gdGhpcy5tdWx0aXBsZSgpID8gdGhpcy5fYWN0aXZlSW5kZXguaW5jbHVkZXMoaSkgOiBpID09PSB0aGlzLl9hY3RpdmVJbmRleDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXggPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YWIuaWQgPT0gZWxlbWVudC5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5zZWxlY3RlZCA9ICF0YWIuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVJbmRleC5pbmNsdWRlcyhpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJbmRleC5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUluZGV4ID0gdGhpcy5fYWN0aXZlSW5kZXguZmlsdGVyKChpbmQpID0+IGluZCAhPT0gaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi5pZCA9PSBlbGVtZW50LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnNlbGVjdGVkID0gIXRhYi5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGFiLnNlbGVjdGVkQ2hhbmdlLmVtaXQoc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Q2hhbmdlLmVtaXQodGhpcy5fYWN0aXZlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB0YWIuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kTmV4dEhlYWRlckFjdGlvbih0YWJFbGVtZW50LCBzZWxmQ2hlY2sgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBuZXh0VGFiRWxlbWVudCA9IHNlbGZDaGVjayA/IHRhYkVsZW1lbnQgOiB0YWJFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IGZpbmRTaW5nbGUobmV4dFRhYkVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiYWNjb3JkaW9uaGVhZGVyXCJdJyk7XG5cbiAgICAgICAgcmV0dXJuIGhlYWRlckVsZW1lbnQgPyAoZ2V0QXR0cmlidXRlKGhlYWRlckVsZW1lbnQsICdkYXRhLXAtZGlzYWJsZWQnKSA/IHRoaXMuZmluZE5leHRIZWFkZXJBY3Rpb24oaGVhZGVyRWxlbWVudC5wYXJlbnRFbGVtZW50KSA6IGZpbmRTaW5nbGUoaGVhZGVyRWxlbWVudC5wYXJlbnRFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImFjY29yZGlvbmhlYWRlclwiXScpKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZmluZFByZXZIZWFkZXJBY3Rpb24odGFiRWxlbWVudCwgc2VsZkNoZWNrID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgcHJldlRhYkVsZW1lbnQgPSBzZWxmQ2hlY2sgPyB0YWJFbGVtZW50IDogdGFiRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZmluZFNpbmdsZShwcmV2VGFiRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJhY2NvcmRpb25oZWFkZXJcIl0nKTtcblxuICAgICAgICByZXR1cm4gaGVhZGVyRWxlbWVudCA/IChnZXRBdHRyaWJ1dGUoaGVhZGVyRWxlbWVudCwgJ2RhdGEtcC1kaXNhYmxlZCcpID8gdGhpcy5maW5kUHJldkhlYWRlckFjdGlvbihoZWFkZXJFbGVtZW50LnBhcmVudEVsZW1lbnQpIDogZmluZFNpbmdsZShoZWFkZXJFbGVtZW50LnBhcmVudEVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiYWNjb3JkaW9uaGVhZGVyXCJdJykpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmaW5kRmlyc3RIZWFkZXJBY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0RWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmROZXh0SGVhZGVyQWN0aW9uKGZpcnN0RWwsIHRydWUpO1xuICAgIH1cblxuICAgIGZpbmRMYXN0SGVhZGVyQWN0aW9uKCkge1xuICAgICAgICBjb25zdCBsYXN0RWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByZXZIZWFkZXJBY3Rpb24obGFzdEVsLCB0cnVlKTtcbiAgICB9XG5cbiAgICBvblRhYkVuZEtleShldmVudCkge1xuICAgICAgICBjb25zdCBsYXN0SGVhZGVyQWN0aW9uID0gdGhpcy5maW5kTGFzdEhlYWRlckFjdGlvbigpO1xuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRUYWIobGFzdEhlYWRlckFjdGlvbik7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmluaXRUYWJzKCk7XG5cbiAgICAgICAgdGhpcy50YWJMaXN0U3Vic2NyaXB0aW9uID0gKHRoaXMudGFiTGlzdCBhcyBRdWVyeUxpc3Q8QWNjb3JkaW9uVGFiPikuY2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFRhYnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdFRhYnMoKSB7XG4gICAgICAgIHRoaXMudGFicyA9ICh0aGlzLnRhYkxpc3QgYXMgUXVlcnlMaXN0PEFjY29yZGlvblRhYj4pLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgICB0YWIuaGVhZGVyQXJpYUxldmVsID0gdGhpcy5faGVhZGVyQXJpYUxldmVsO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvblN0YXRlKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0QmxvY2thYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0aW9uU3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRhYnMgJiYgdGhpcy50YWJzLmxlbmd0aCAmJiB0aGlzLl9hY3RpdmVJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUoKSA/IHRoaXMuX2FjdGl2ZUluZGV4LmluY2x1ZGVzKGkpIDogaSA9PT0gdGhpcy5fYWN0aXZlSW5kZXg7XG4gICAgICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBzZWxlY3RlZCAhPT0gdGhpcy50YWJzW2ldLnNlbGVjdGVkO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW2ldLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFic1tpXS5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW2ldLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzVGFiQWN0aXZlKGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlKCkgPyB0aGlzLl9hY3RpdmVJbmRleCAmJiAoPG51bWJlcltdPnRoaXMuX2FjdGl2ZUluZGV4KS5pbmNsdWRlcyhpbmRleCkgOiB0aGlzLl9hY3RpdmVJbmRleCA9PT0gaW5kZXg7XG4gICAgfVxuXG4gICAgZ2V0VGFiUHJvcCh0YWIsIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRhYi5wcm9wcyA/IHRhYi5wcm9wc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB1cGRhdGVBY3RpdmVJbmRleCgpIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgfCBudW1iZXJbXSB8IG51bGwgPSB0aGlzLm11bHRpcGxlKCkgPyBbXSA6IG51bGw7XG4gICAgICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWIsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICh0YWIuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIChpbmRleCBhcyBudW1iZXJbXSkucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByZXZlbnRBY3RpdmVJbmRleFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleENoYW5nZS5lbWl0KGluZGV4IGFzIG51bWJlcltdIHwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkgPyBbLi4uY3VycmVudFZhbHVlXSA6IFtdO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBuZXdWYWx1ZS5pbmRleE9mKHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnNldChuZXdWYWx1ZSBhcyB0eXBlb2YgdGhpcy52YWx1ZSBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGluZmVyIFIgPyBSIDogbmV2ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLnNldCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGFiTGlzdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy50YWJMaXN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQWNjb3JkaW9uLCBBY2NvcmRpb25UYWIsIFNoYXJlZE1vZHVsZSwgQWNjb3JkaW9uUGFuZWwsIEFjY29yZGlvbkhlYWRlciwgQWNjb3JkaW9uQ29udGVudF0sXG4gICAgZXhwb3J0czogW0FjY29yZGlvbiwgQWNjb3JkaW9uVGFiLCBTaGFyZWRNb2R1bGUsIEFjY29yZGlvblBhbmVsLCBBY2NvcmRpb25IZWFkZXIsIEFjY29yZGlvbkNvbnRlbnRdXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbk1vZHVsZSB7fVxuIl19