primeng 18.0.0-rc.2 → 19.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1091) hide show
  1. package/LICENSE.md +1 -1
  2. package/autocomplete/autocomplete.d.ts +11 -11
  3. package/base/style/basestyle.d.ts +11 -11
  4. package/config/primeng.d.ts +12 -6
  5. package/config/provideprimeng.d.ts +1 -12
  6. package/config/themeprovider.d.ts +10 -4
  7. package/confirmdialog/confirmdialog.d.ts +1 -0
  8. package/fesm2022/primeng-accordion.mjs +12 -12
  9. package/fesm2022/primeng-accordion.mjs.map +1 -1
  10. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  11. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  12. package/fesm2022/primeng-api.mjs +5 -5
  13. package/fesm2022/primeng-api.mjs.map +1 -1
  14. package/fesm2022/primeng-autocomplete.mjs +135 -136
  15. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  16. package/fesm2022/primeng-autofocus.mjs +1 -1
  17. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  18. package/fesm2022/primeng-avatar.mjs +2 -2
  19. package/fesm2022/primeng-avatar.mjs.map +1 -1
  20. package/fesm2022/primeng-avatargroup.mjs +2 -2
  21. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  22. package/fesm2022/primeng-badge.mjs +3 -3
  23. package/fesm2022/primeng-badge.mjs.map +1 -1
  24. package/fesm2022/primeng-basecomponent.mjs +1 -1
  25. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  26. package/fesm2022/primeng-blockui.mjs +2 -2
  27. package/fesm2022/primeng-blockui.mjs.map +1 -1
  28. package/fesm2022/primeng-breadcrumb.mjs +2 -2
  29. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  30. package/fesm2022/primeng-button.mjs +5 -5
  31. package/fesm2022/primeng-button.mjs.map +1 -1
  32. package/fesm2022/primeng-buttongroup.mjs +2 -2
  33. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  34. package/fesm2022/primeng-calendar.mjs +3 -3
  35. package/fesm2022/primeng-calendar.mjs.map +1 -1
  36. package/fesm2022/primeng-card.mjs +2 -2
  37. package/fesm2022/primeng-card.mjs.map +1 -1
  38. package/fesm2022/primeng-carousel.mjs +2 -2
  39. package/fesm2022/primeng-carousel.mjs.map +1 -1
  40. package/fesm2022/primeng-cascadeselect.mjs +6 -6
  41. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  42. package/fesm2022/primeng-chart.mjs +2 -2
  43. package/fesm2022/primeng-chart.mjs.map +1 -1
  44. package/fesm2022/primeng-checkbox.mjs +3 -4
  45. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  46. package/fesm2022/primeng-chip.mjs +2 -2
  47. package/fesm2022/primeng-chip.mjs.map +1 -1
  48. package/fesm2022/primeng-colorpicker.mjs +3 -3
  49. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  50. package/fesm2022/primeng-config.mjs +39 -40
  51. package/fesm2022/primeng-config.mjs.map +1 -1
  52. package/fesm2022/primeng-confirmdialog.mjs +13 -10
  53. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  54. package/fesm2022/primeng-confirmpopup.mjs +2 -2
  55. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  56. package/fesm2022/primeng-contextmenu.mjs +6 -6
  57. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  58. package/fesm2022/primeng-dataview.mjs +2 -2
  59. package/fesm2022/primeng-dataview.mjs.map +1 -1
  60. package/fesm2022/primeng-datepicker.mjs +5 -5
  61. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  62. package/fesm2022/primeng-defer.mjs +1 -1
  63. package/fesm2022/primeng-dialog.mjs +18 -19
  64. package/fesm2022/primeng-dialog.mjs.map +1 -1
  65. package/fesm2022/primeng-divider.mjs +2 -2
  66. package/fesm2022/primeng-divider.mjs.map +1 -1
  67. package/fesm2022/primeng-dock.mjs +3 -4
  68. package/fesm2022/primeng-dock.mjs.map +1 -1
  69. package/fesm2022/primeng-dragdrop.mjs +2 -2
  70. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  71. package/fesm2022/primeng-drawer.mjs +5 -5
  72. package/fesm2022/primeng-drawer.mjs.map +1 -1
  73. package/fesm2022/primeng-dropdown.mjs +4 -4
  74. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  75. package/fesm2022/primeng-dynamicdialog.mjs +4 -4
  76. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  77. package/fesm2022/primeng-editor.mjs +2 -2
  78. package/fesm2022/primeng-editor.mjs.map +1 -1
  79. package/fesm2022/primeng-fieldset.mjs +2 -2
  80. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  81. package/fesm2022/primeng-fileupload.mjs +3 -4
  82. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  83. package/fesm2022/primeng-floatlabel.mjs +2 -2
  84. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  85. package/fesm2022/primeng-fluid.mjs +2 -2
  86. package/fesm2022/primeng-fluid.mjs.map +1 -1
  87. package/fesm2022/primeng-focustrap.mjs +1 -1
  88. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  89. package/fesm2022/primeng-galleria.mjs +10 -10
  90. package/fesm2022/primeng-galleria.mjs.map +1 -1
  91. package/fesm2022/primeng-iconfield.mjs +2 -2
  92. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  93. package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
  94. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  95. package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
  96. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
  98. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
  100. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angledown.mjs +2 -2
  102. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-angleleft.mjs +2 -2
  104. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-angleright.mjs +2 -2
  106. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-angleup.mjs +2 -2
  108. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
  110. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
  112. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
  114. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
  116. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-arrowright.mjs +2 -2
  118. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-arrowup.mjs +2 -2
  120. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-ban.mjs +2 -2
  122. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-bars.mjs +2 -2
  124. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-baseicon.mjs +2 -2
  126. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-blank.mjs +2 -2
  128. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-calendar.mjs +2 -2
  130. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-caretleft.mjs +2 -2
  132. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-caretright.mjs +2 -2
  134. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-check.mjs +2 -2
  136. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
  138. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
  140. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-chevronright.mjs +2 -2
  142. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-chevronup.mjs +2 -2
  144. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
  146. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-eye.mjs +2 -2
  148. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
  150. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-filter.mjs +2 -2
  152. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-filterslash.mjs +2 -2
  154. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-home.mjs +2 -2
  156. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-infocircle.mjs +2 -2
  158. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-minus.mjs +2 -2
  160. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-pencil.mjs +2 -2
  162. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-plus.mjs +2 -2
  164. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-refresh.mjs +2 -2
  166. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-search.mjs +2 -2
  168. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-searchminus.mjs +2 -2
  170. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-searchplus.mjs +2 -2
  172. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-sortalt.mjs +2 -2
  174. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
  176. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
  178. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-spinner.mjs +2 -2
  180. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-star.mjs +2 -2
  182. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-starfill.mjs +2 -2
  184. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-thlarge.mjs +2 -2
  186. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-times.mjs +2 -2
  188. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-timescircle.mjs +2 -2
  190. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-trash.mjs +2 -2
  192. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-undo.mjs +2 -2
  194. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  195. package/fesm2022/primeng-icons-upload.mjs +2 -2
  196. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  197. package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
  198. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  199. package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
  200. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  201. package/fesm2022/primeng-iftalabel.mjs +2 -2
  202. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  203. package/fesm2022/primeng-image.mjs +3 -3
  204. package/fesm2022/primeng-image.mjs.map +1 -1
  205. package/fesm2022/primeng-imagecompare.mjs +2 -2
  206. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  207. package/fesm2022/primeng-inplace.mjs +6 -6
  208. package/fesm2022/primeng-inplace.mjs.map +1 -1
  209. package/fesm2022/primeng-inputgroup.mjs +2 -2
  210. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  211. package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
  212. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  213. package/fesm2022/primeng-inputicon.mjs +2 -2
  214. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  215. package/fesm2022/primeng-inputmask.mjs +4 -4
  216. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  217. package/fesm2022/primeng-inputnumber.mjs +5 -6
  218. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  219. package/fesm2022/primeng-inputotp.mjs +4 -4
  220. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  221. package/fesm2022/primeng-inputswitch.mjs +2 -2
  222. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  223. package/fesm2022/primeng-inputtext.mjs +10 -9
  224. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  225. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  226. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  227. package/fesm2022/primeng-keyfilter.mjs +1 -1
  228. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  229. package/fesm2022/primeng-knob.mjs +2 -2
  230. package/fesm2022/primeng-knob.mjs.map +1 -1
  231. package/fesm2022/primeng-listbox.mjs +2 -2
  232. package/fesm2022/primeng-listbox.mjs.map +1 -1
  233. package/fesm2022/primeng-megamenu.mjs +5 -5
  234. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  235. package/fesm2022/primeng-menu.mjs +7 -7
  236. package/fesm2022/primeng-menu.mjs.map +1 -1
  237. package/fesm2022/primeng-menubar.mjs +6 -6
  238. package/fesm2022/primeng-menubar.mjs.map +1 -1
  239. package/fesm2022/primeng-message.mjs +2 -2
  240. package/fesm2022/primeng-message.mjs.map +1 -1
  241. package/fesm2022/primeng-messages.mjs +2 -2
  242. package/fesm2022/primeng-messages.mjs.map +1 -1
  243. package/fesm2022/primeng-metergroup.mjs +4 -4
  244. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  245. package/fesm2022/primeng-multiselect.mjs +6 -9
  246. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  247. package/fesm2022/primeng-orderlist.mjs +4 -4
  248. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  249. package/fesm2022/primeng-organizationchart.mjs +5 -5
  250. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  251. package/fesm2022/primeng-overlay.mjs +3 -3
  252. package/fesm2022/primeng-overlay.mjs.map +1 -1
  253. package/fesm2022/primeng-overlaybadge.mjs +2 -2
  254. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  255. package/fesm2022/primeng-overlaypanel.mjs +7 -4
  256. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  257. package/fesm2022/primeng-paginator.mjs +2 -2
  258. package/fesm2022/primeng-paginator.mjs.map +1 -1
  259. package/fesm2022/primeng-panel.mjs +3 -4
  260. package/fesm2022/primeng-panel.mjs.map +1 -1
  261. package/fesm2022/primeng-panelmenu.mjs +9 -9
  262. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  263. package/fesm2022/primeng-password.mjs +30 -7
  264. package/fesm2022/primeng-password.mjs.map +1 -1
  265. package/fesm2022/primeng-picklist.mjs +135 -139
  266. package/fesm2022/primeng-picklist.mjs.map +1 -1
  267. package/fesm2022/primeng-popover.mjs +9 -8
  268. package/fesm2022/primeng-popover.mjs.map +1 -1
  269. package/fesm2022/primeng-progressbar.mjs +2 -2
  270. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  271. package/fesm2022/primeng-progressspinner.mjs +2 -2
  272. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  273. package/fesm2022/primeng-radiobutton.mjs +2 -2
  274. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  275. package/fesm2022/primeng-rating.mjs +4 -4
  276. package/fesm2022/primeng-rating.mjs.map +1 -1
  277. package/fesm2022/primeng-ripple.mjs +5 -2
  278. package/fesm2022/primeng-ripple.mjs.map +1 -1
  279. package/fesm2022/primeng-scroller.mjs +2 -2
  280. package/fesm2022/primeng-scroller.mjs.map +1 -1
  281. package/fesm2022/primeng-scrollpanel.mjs +2 -2
  282. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  283. package/fesm2022/primeng-scrolltop.mjs +2 -2
  284. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  285. package/fesm2022/primeng-select.mjs +9 -11
  286. package/fesm2022/primeng-select.mjs.map +1 -1
  287. package/fesm2022/primeng-selectbutton.mjs +3 -4
  288. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  289. package/fesm2022/primeng-sidebar.mjs +4 -5
  290. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  291. package/fesm2022/primeng-skeleton.mjs +2 -2
  292. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  293. package/fesm2022/primeng-slider.mjs +2 -2
  294. package/fesm2022/primeng-slider.mjs.map +1 -1
  295. package/fesm2022/primeng-speeddial.mjs +2 -2
  296. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  297. package/fesm2022/primeng-splitbutton.mjs +2 -2
  298. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  299. package/fesm2022/primeng-splitter.mjs +30 -19
  300. package/fesm2022/primeng-splitter.mjs.map +1 -1
  301. package/fesm2022/primeng-stepper.mjs +16 -16
  302. package/fesm2022/primeng-stepper.mjs.map +1 -1
  303. package/fesm2022/primeng-steps.mjs +2 -2
  304. package/fesm2022/primeng-steps.mjs.map +1 -1
  305. package/fesm2022/primeng-styleclass.mjs +1 -1
  306. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  307. package/fesm2022/primeng-table.mjs +6392 -6520
  308. package/fesm2022/primeng-table.mjs.map +1 -1
  309. package/fesm2022/primeng-tabmenu.mjs +2 -2
  310. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  311. package/fesm2022/primeng-tabs.mjs +11 -11
  312. package/fesm2022/primeng-tabs.mjs.map +1 -1
  313. package/fesm2022/primeng-tabview.mjs +5 -5
  314. package/fesm2022/primeng-tabview.mjs.map +1 -1
  315. package/fesm2022/primeng-tag.mjs +2 -2
  316. package/fesm2022/primeng-tag.mjs.map +1 -1
  317. package/fesm2022/primeng-terminal.mjs +2 -2
  318. package/fesm2022/primeng-terminal.mjs.map +1 -1
  319. package/fesm2022/primeng-textarea.mjs +8 -8
  320. package/fesm2022/primeng-textarea.mjs.map +1 -1
  321. package/fesm2022/primeng-tieredmenu.mjs +6 -6
  322. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  323. package/fesm2022/primeng-timeline.mjs +2 -2
  324. package/fesm2022/primeng-timeline.mjs.map +1 -1
  325. package/fesm2022/primeng-toast.mjs +6 -7
  326. package/fesm2022/primeng-toast.mjs.map +1 -1
  327. package/fesm2022/primeng-togglebutton.mjs +3 -4
  328. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  329. package/fesm2022/primeng-toggleswitch.mjs +2 -2
  330. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  331. package/fesm2022/primeng-toolbar.mjs +2 -2
  332. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  333. package/fesm2022/primeng-tooltip.mjs +5 -3
  334. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  335. package/fesm2022/primeng-tree.mjs +112 -63
  336. package/fesm2022/primeng-tree.mjs.map +1 -1
  337. package/fesm2022/primeng-treeselect.mjs +5 -10
  338. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  339. package/fesm2022/primeng-treetable.mjs +31 -29
  340. package/fesm2022/primeng-treetable.mjs.map +1 -1
  341. package/inputtext/inputtext.d.ts +2 -2
  342. package/package.json +176 -524
  343. package/password/password.d.ts +5 -1
  344. package/popover/popover.d.ts +1 -1
  345. package/speeddial/speeddial.d.ts +2 -2
  346. package/splitter/splitter.d.ts +2 -3
  347. package/splitter/style/splitterstyle.d.ts +0 -13
  348. package/table/table.d.ts +928 -1030
  349. package/textarea/textarea.d.ts +2 -2
  350. package/tree/style/treestyle.d.ts +1 -1
  351. package/tree/tree.d.ts +4 -2
  352. package/treetable/treetable.d.ts +1 -1
  353. package/esm2022/accordion/accordion.mjs +0 -1266
  354. package/esm2022/accordion/primeng-accordion.mjs +0 -5
  355. package/esm2022/accordion/public_api.mjs +0 -3
  356. package/esm2022/accordion/style/accordionstyle.mjs +0 -163
  357. package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
  358. package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
  359. package/esm2022/animateonscroll/public_api.mjs +0 -2
  360. package/esm2022/api/blockableui.mjs +0 -2
  361. package/esm2022/api/confirmaeventtype.mjs +0 -10
  362. package/esm2022/api/confirmation.mjs +0 -2
  363. package/esm2022/api/confirmationservice.mjs +0 -43
  364. package/esm2022/api/contextmenuservice.mjs +0 -22
  365. package/esm2022/api/filtermatchmode.mjs +0 -23
  366. package/esm2022/api/filtermetadata.mjs +0 -2
  367. package/esm2022/api/filteroperator.mjs +0 -5
  368. package/esm2022/api/filterservice.mjs +0 -224
  369. package/esm2022/api/lazyloadevent.mjs +0 -2
  370. package/esm2022/api/lazyloadmeta.mjs +0 -2
  371. package/esm2022/api/megamenuitem.mjs +0 -2
  372. package/esm2022/api/menuitem.mjs +0 -2
  373. package/esm2022/api/messageservice.mjs +0 -47
  374. package/esm2022/api/overlayoptions.mjs +0 -2
  375. package/esm2022/api/overlayservice.mjs +0 -19
  376. package/esm2022/api/primeicons.mjs +0 -314
  377. package/esm2022/api/primeng-api.mjs +0 -5
  378. package/esm2022/api/public_api.mjs +0 -33
  379. package/esm2022/api/scrolleroptions.mjs +0 -2
  380. package/esm2022/api/selectitem.mjs +0 -2
  381. package/esm2022/api/selectitemgroup.mjs +0 -2
  382. package/esm2022/api/shared.mjs +0 -76
  383. package/esm2022/api/sortevent.mjs +0 -2
  384. package/esm2022/api/sortmeta.mjs +0 -2
  385. package/esm2022/api/tablestate.mjs +0 -2
  386. package/esm2022/api/toastmessage.mjs +0 -2
  387. package/esm2022/api/tooltipoptions.mjs +0 -2
  388. package/esm2022/api/translation.mjs +0 -2
  389. package/esm2022/api/translationkeys.mjs +0 -51
  390. package/esm2022/api/treedragdropservice.mjs +0 -21
  391. package/esm2022/api/treenode.mjs +0 -2
  392. package/esm2022/api/treenodedragevent.mjs +0 -2
  393. package/esm2022/api/treetablenode.mjs +0 -2
  394. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  395. package/esm2022/autocomplete/autocomplete.mjs +0 -2225
  396. package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
  397. package/esm2022/autocomplete/public_api.mjs +0 -4
  398. package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -408
  399. package/esm2022/autofocus/autofocus.mjs +0 -86
  400. package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
  401. package/esm2022/autofocus/public_api.mjs +0 -2
  402. package/esm2022/avatar/avatar.mjs +0 -193
  403. package/esm2022/avatar/primeng-avatar.mjs +0 -5
  404. package/esm2022/avatar/public_api.mjs +0 -3
  405. package/esm2022/avatar/style/avatarstyle.mjs +0 -130
  406. package/esm2022/avatargroup/avatargroup.mjs +0 -80
  407. package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
  408. package/esm2022/avatargroup/public_api.mjs +0 -3
  409. package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
  410. package/esm2022/badge/badge.mjs +0 -332
  411. package/esm2022/badge/primeng-badge.mjs +0 -5
  412. package/esm2022/badge/public_api.mjs +0 -3
  413. package/esm2022/badge/style/badgestyle.mjs +0 -143
  414. package/esm2022/base/base.mjs +0 -19
  415. package/esm2022/base/primeng-base.mjs +0 -5
  416. package/esm2022/base/public_api.mjs +0 -3
  417. package/esm2022/base/style/basestyle.mjs +0 -256
  418. package/esm2022/basecomponent/basecomponent.mjs +0 -183
  419. package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
  420. package/esm2022/basecomponent/public_api.mjs +0 -3
  421. package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
  422. package/esm2022/blockui/blockui.interface.mjs +0 -2
  423. package/esm2022/blockui/blockui.mjs +0 -210
  424. package/esm2022/blockui/primeng-blockui.mjs +0 -5
  425. package/esm2022/blockui/public_api.mjs +0 -4
  426. package/esm2022/blockui/style/blockuistyle.mjs +0 -50
  427. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  428. package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
  429. package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
  430. package/esm2022/breadcrumb/public_api.mjs +0 -4
  431. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
  432. package/esm2022/button/button.interface.mjs +0 -2
  433. package/esm2022/button/button.mjs +0 -896
  434. package/esm2022/button/primeng-button.mjs +0 -5
  435. package/esm2022/button/public_api.mjs +0 -4
  436. package/esm2022/button/style/buttonstyle.mjs +0 -707
  437. package/esm2022/buttongroup/buttongroup.mjs +0 -47
  438. package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
  439. package/esm2022/buttongroup/public_api.mjs +0 -3
  440. package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
  441. package/esm2022/calendar/calendar.interface.mjs +0 -2
  442. package/esm2022/calendar/calendar.mjs +0 -4504
  443. package/esm2022/calendar/primeng-calendar.mjs +0 -5
  444. package/esm2022/calendar/public_api.mjs +0 -4
  445. package/esm2022/calendar/style/calendarstyle.mjs +0 -472
  446. package/esm2022/card/card.interface.mjs +0 -2
  447. package/esm2022/card/card.mjs +0 -243
  448. package/esm2022/card/primeng-card.mjs +0 -5
  449. package/esm2022/card/public_api.mjs +0 -4
  450. package/esm2022/card/style/cardstyle.mjs +0 -100
  451. package/esm2022/carousel/carousel.interface.mjs +0 -2
  452. package/esm2022/carousel/carousel.mjs +0 -1181
  453. package/esm2022/carousel/primeng-carousel.mjs +0 -5
  454. package/esm2022/carousel/public_api.mjs +0 -4
  455. package/esm2022/carousel/style/carouselstyle.mjs +0 -234
  456. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  457. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
  458. package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
  459. package/esm2022/cascadeselect/public_api.mjs +0 -4
  460. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
  461. package/esm2022/chart/chart.mjs +0 -210
  462. package/esm2022/chart/primeng-chart.mjs +0 -5
  463. package/esm2022/chart/public_api.mjs +0 -3
  464. package/esm2022/chart/style/chartstyle.mjs +0 -36
  465. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  466. package/esm2022/checkbox/checkbox.mjs +0 -450
  467. package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
  468. package/esm2022/checkbox/public_api.mjs +0 -4
  469. package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
  470. package/esm2022/chip/chip.interface.mjs +0 -2
  471. package/esm2022/chip/chip.mjs +0 -337
  472. package/esm2022/chip/primeng-chip.mjs +0 -5
  473. package/esm2022/chip/public_api.mjs +0 -4
  474. package/esm2022/chip/style/chipstyle.mjs +0 -104
  475. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  476. package/esm2022/colorpicker/colorpicker.mjs +0 -856
  477. package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
  478. package/esm2022/colorpicker/public_api.mjs +0 -4
  479. package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
  480. package/esm2022/config/primeng-config.mjs +0 -5
  481. package/esm2022/config/primeng.mjs +0 -189
  482. package/esm2022/config/provideprimeng.mjs +0 -11
  483. package/esm2022/config/public_api.mjs +0 -4
  484. package/esm2022/config/themeprovider.mjs +0 -74
  485. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  486. package/esm2022/confirmdialog/confirmdialog.mjs +0 -810
  487. package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
  488. package/esm2022/confirmdialog/public_api.mjs +0 -4
  489. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
  490. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  491. package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
  492. package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
  493. package/esm2022/confirmpopup/public_api.mjs +0 -4
  494. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
  495. package/esm2022/contextmenu/contextmenu.mjs +0 -1436
  496. package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
  497. package/esm2022/contextmenu/public_api.mjs +0 -3
  498. package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
  499. package/esm2022/dataview/dataview.interface.mjs +0 -2
  500. package/esm2022/dataview/dataview.mjs +0 -819
  501. package/esm2022/dataview/primeng-dataview.mjs +0 -5
  502. package/esm2022/dataview/public_api.mjs +0 -4
  503. package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
  504. package/esm2022/datepicker/datepicker.interface.mjs +0 -2
  505. package/esm2022/datepicker/datepicker.mjs +0 -4539
  506. package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
  507. package/esm2022/datepicker/public_api.mjs +0 -4
  508. package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
  509. package/esm2022/defer/defer.mjs +0 -100
  510. package/esm2022/defer/primeng-defer.mjs +0 -5
  511. package/esm2022/defer/public_api.mjs +0 -2
  512. package/esm2022/dialog/dialog.interface.mjs +0 -2
  513. package/esm2022/dialog/dialog.mjs +0 -1384
  514. package/esm2022/dialog/primeng-dialog.mjs +0 -5
  515. package/esm2022/dialog/public_api.mjs +0 -4
  516. package/esm2022/dialog/style/dialogstyle.mjs +0 -283
  517. package/esm2022/divider/divider.mjs +0 -119
  518. package/esm2022/divider/primeng-divider.mjs +0 -5
  519. package/esm2022/divider/public_api.mjs +0 -3
  520. package/esm2022/divider/style/dividerstyle.mjs +0 -138
  521. package/esm2022/dock/dock.interface.mjs +0 -2
  522. package/esm2022/dock/dock.mjs +0 -447
  523. package/esm2022/dock/primeng-dock.mjs +0 -5
  524. package/esm2022/dock/public_api.mjs +0 -4
  525. package/esm2022/dock/style/dockstyle.mjs +0 -210
  526. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  527. package/esm2022/dom/domhandler.mjs +0 -725
  528. package/esm2022/dom/primeng-dom.mjs +0 -5
  529. package/esm2022/dom/public_api.mjs +0 -3
  530. package/esm2022/dragdrop/dragdrop.mjs +0 -323
  531. package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
  532. package/esm2022/dragdrop/public_api.mjs +0 -2
  533. package/esm2022/drawer/drawer.interface.mjs +0 -2
  534. package/esm2022/drawer/drawer.mjs +0 -663
  535. package/esm2022/drawer/primeng-drawer.mjs +0 -5
  536. package/esm2022/drawer/public_api.mjs +0 -4
  537. package/esm2022/drawer/style/drawerstyle.mjs +0 -283
  538. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  539. package/esm2022/dropdown/dropdown.mjs +0 -2498
  540. package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
  541. package/esm2022/dropdown/public_api.mjs +0 -4
  542. package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
  543. package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
  544. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
  545. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  546. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  547. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
  548. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
  549. package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
  550. package/esm2022/dynamicdialog/public_api.mjs +0 -8
  551. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
  552. package/esm2022/editor/editor.interface.mjs +0 -2
  553. package/esm2022/editor/editor.mjs +0 -427
  554. package/esm2022/editor/primeng-editor.mjs +0 -5
  555. package/esm2022/editor/public_api.mjs +0 -4
  556. package/esm2022/editor/style/editorstyle.mjs +0 -1008
  557. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  558. package/esm2022/fieldset/fieldset.mjs +0 -427
  559. package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
  560. package/esm2022/fieldset/public_api.mjs +0 -4
  561. package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
  562. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  563. package/esm2022/fileupload/fileupload.mjs +0 -1597
  564. package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
  565. package/esm2022/fileupload/public_api.mjs +0 -4
  566. package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
  567. package/esm2022/floatlabel/floatlabel.mjs +0 -61
  568. package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
  569. package/esm2022/floatlabel/public_api.mjs +0 -3
  570. package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
  571. package/esm2022/fluid/fluid.mjs +0 -50
  572. package/esm2022/fluid/primeng-fluid.mjs +0 -5
  573. package/esm2022/fluid/public_api.mjs +0 -3
  574. package/esm2022/fluid/style/fluidstyle.mjs +0 -38
  575. package/esm2022/focustrap/focustrap.mjs +0 -104
  576. package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
  577. package/esm2022/focustrap/public_api.mjs +0 -2
  578. package/esm2022/galleria/galleria.interface.mjs +0 -2
  579. package/esm2022/galleria/galleria.mjs +0 -1858
  580. package/esm2022/galleria/primeng-galleria.mjs +0 -5
  581. package/esm2022/galleria/public_api.mjs +0 -4
  582. package/esm2022/galleria/style/galleriastyle.mjs +0 -644
  583. package/esm2022/iconfield/iconfield.mjs +0 -73
  584. package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
  585. package/esm2022/iconfield/public_api.mjs +0 -3
  586. package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
  587. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
  588. package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
  589. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  590. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
  591. package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
  592. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  593. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
  594. package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
  595. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  596. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
  597. package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
  598. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  599. package/esm2022/icons/angledown/angledown.mjs +0 -32
  600. package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
  601. package/esm2022/icons/angledown/public_api.mjs +0 -2
  602. package/esm2022/icons/angleleft/angleleft.mjs +0 -32
  603. package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
  604. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  605. package/esm2022/icons/angleright/angleright.mjs +0 -32
  606. package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
  607. package/esm2022/icons/angleright/public_api.mjs +0 -2
  608. package/esm2022/icons/angleup/angleup.mjs +0 -32
  609. package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
  610. package/esm2022/icons/angleup/public_api.mjs +0 -2
  611. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
  612. package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
  613. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  614. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
  615. package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
  616. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  617. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
  618. package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
  619. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  620. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
  621. package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
  622. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  623. package/esm2022/icons/arrowright/arrowright.mjs +0 -34
  624. package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
  625. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  626. package/esm2022/icons/arrowup/arrowup.mjs +0 -53
  627. package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
  628. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  629. package/esm2022/icons/ban/ban.mjs +0 -51
  630. package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
  631. package/esm2022/icons/ban/public_api.mjs +0 -2
  632. package/esm2022/icons/bars/bars.mjs +0 -34
  633. package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
  634. package/esm2022/icons/bars/public_api.mjs +0 -2
  635. package/esm2022/icons/baseicon/baseicon.mjs +0 -54
  636. package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
  637. package/esm2022/icons/baseicon/public_api.mjs +0 -3
  638. package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
  639. package/esm2022/icons/blank/blank.mjs +0 -26
  640. package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
  641. package/esm2022/icons/blank/public_api.mjs +0 -2
  642. package/esm2022/icons/calendar/calendar.mjs +0 -32
  643. package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
  644. package/esm2022/icons/calendar/public_api.mjs +0 -2
  645. package/esm2022/icons/caretleft/caretleft.mjs +0 -32
  646. package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
  647. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  648. package/esm2022/icons/caretright/caretright.mjs +0 -32
  649. package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
  650. package/esm2022/icons/caretright/public_api.mjs +0 -2
  651. package/esm2022/icons/check/check.mjs +0 -32
  652. package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
  653. package/esm2022/icons/check/public_api.mjs +0 -2
  654. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
  655. package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
  656. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  657. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
  658. package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
  659. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  660. package/esm2022/icons/chevronright/chevronright.mjs +0 -32
  661. package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
  662. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  663. package/esm2022/icons/chevronup/chevronup.mjs +0 -32
  664. package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
  665. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  666. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
  667. package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
  668. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  669. package/esm2022/icons/eye/eye.mjs +0 -34
  670. package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
  671. package/esm2022/icons/eye/public_api.mjs +0 -2
  672. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
  673. package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
  674. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  675. package/esm2022/icons/filter/filter.mjs +0 -51
  676. package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
  677. package/esm2022/icons/filter/public_api.mjs +0 -2
  678. package/esm2022/icons/filterslash/filterslash.mjs +0 -53
  679. package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
  680. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  681. package/esm2022/icons/home/home.mjs +0 -53
  682. package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
  683. package/esm2022/icons/home/public_api.mjs +0 -2
  684. package/esm2022/icons/infocircle/infocircle.mjs +0 -53
  685. package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
  686. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  687. package/esm2022/icons/minus/minus.mjs +0 -32
  688. package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
  689. package/esm2022/icons/minus/public_api.mjs +0 -2
  690. package/esm2022/icons/pencil/pencil.mjs +0 -51
  691. package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
  692. package/esm2022/icons/pencil/public_api.mjs +0 -2
  693. package/esm2022/icons/plus/plus.mjs +0 -51
  694. package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
  695. package/esm2022/icons/plus/public_api.mjs +0 -2
  696. package/esm2022/icons/primeng-icons.mjs +0 -5
  697. package/esm2022/icons/public_api.mjs +0 -58
  698. package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
  699. package/esm2022/icons/refresh/public_api.mjs +0 -2
  700. package/esm2022/icons/refresh/refresh.mjs +0 -53
  701. package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
  702. package/esm2022/icons/search/public_api.mjs +0 -2
  703. package/esm2022/icons/search/search.mjs +0 -53
  704. package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
  705. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  706. package/esm2022/icons/searchminus/searchminus.mjs +0 -53
  707. package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
  708. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  709. package/esm2022/icons/searchplus/searchplus.mjs +0 -53
  710. package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
  711. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  712. package/esm2022/icons/sortalt/sortalt.mjs +0 -57
  713. package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
  714. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  715. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
  716. package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
  717. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  718. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
  719. package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
  720. package/esm2022/icons/spinner/public_api.mjs +0 -2
  721. package/esm2022/icons/spinner/spinner.mjs +0 -51
  722. package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
  723. package/esm2022/icons/star/public_api.mjs +0 -2
  724. package/esm2022/icons/star/star.mjs +0 -51
  725. package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
  726. package/esm2022/icons/starfill/public_api.mjs +0 -2
  727. package/esm2022/icons/starfill/starfill.mjs +0 -51
  728. package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
  729. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  730. package/esm2022/icons/thlarge/thlarge.mjs +0 -53
  731. package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
  732. package/esm2022/icons/times/public_api.mjs +0 -2
  733. package/esm2022/icons/times/times.mjs +0 -32
  734. package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
  735. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  736. package/esm2022/icons/timescircle/timescircle.mjs +0 -53
  737. package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
  738. package/esm2022/icons/trash/public_api.mjs +0 -2
  739. package/esm2022/icons/trash/trash.mjs +0 -53
  740. package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
  741. package/esm2022/icons/undo/public_api.mjs +0 -2
  742. package/esm2022/icons/undo/undo.mjs +0 -53
  743. package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
  744. package/esm2022/icons/upload/public_api.mjs +0 -2
  745. package/esm2022/icons/upload/upload.mjs +0 -53
  746. package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
  747. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  748. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
  749. package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
  750. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  751. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
  752. package/esm2022/iftalabel/iftalabel.mjs +0 -49
  753. package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
  754. package/esm2022/iftalabel/public_api.mjs +0 -3
  755. package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
  756. package/esm2022/image/image.interface.mjs +0 -2
  757. package/esm2022/image/image.mjs +0 -747
  758. package/esm2022/image/primeng-image.mjs +0 -5
  759. package/esm2022/image/public_api.mjs +0 -4
  760. package/esm2022/image/style/imagestyle.mjs +0 -219
  761. package/esm2022/imagecompare/imagecompare.mjs +0 -158
  762. package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
  763. package/esm2022/imagecompare/public_api.mjs +0 -3
  764. package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
  765. package/esm2022/inplace/inplace.interface.mjs +0 -2
  766. package/esm2022/inplace/inplace.mjs +0 -344
  767. package/esm2022/inplace/primeng-inplace.mjs +0 -5
  768. package/esm2022/inplace/public_api.mjs +0 -4
  769. package/esm2022/inplace/style/inplacestyle.mjs +0 -69
  770. package/esm2022/inputgroup/inputgroup.mjs +0 -68
  771. package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
  772. package/esm2022/inputgroup/public_api.mjs +0 -3
  773. package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
  774. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
  775. package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
  776. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  777. package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
  778. package/esm2022/inputicon/inputicon.mjs +0 -66
  779. package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
  780. package/esm2022/inputicon/public_api.mjs +0 -3
  781. package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
  782. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  783. package/esm2022/inputmask/inputmask.mjs +0 -911
  784. package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
  785. package/esm2022/inputmask/public_api.mjs +0 -4
  786. package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
  787. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  788. package/esm2022/inputnumber/inputnumber.mjs +0 -1745
  789. package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
  790. package/esm2022/inputnumber/public_api.mjs +0 -4
  791. package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
  792. package/esm2022/inputotp/inputotp.mjs +0 -406
  793. package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
  794. package/esm2022/inputotp/public_api.mjs +0 -3
  795. package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
  796. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  797. package/esm2022/inputswitch/inputswitch.mjs +0 -241
  798. package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
  799. package/esm2022/inputswitch/public_api.mjs +0 -4
  800. package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
  801. package/esm2022/inputtext/inputtext.mjs +0 -103
  802. package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
  803. package/esm2022/inputtext/public_api.mjs +0 -3
  804. package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
  805. package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
  806. package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
  807. package/esm2022/inputtextarea/public_api.mjs +0 -3
  808. package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
  809. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  810. package/esm2022/keyfilter/keyfilter.mjs +0 -263
  811. package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
  812. package/esm2022/keyfilter/public_api.mjs +0 -3
  813. package/esm2022/knob/knob.mjs +0 -471
  814. package/esm2022/knob/primeng-knob.mjs +0 -5
  815. package/esm2022/knob/public_api.mjs +0 -3
  816. package/esm2022/knob/style/knobstyle.mjs +0 -83
  817. package/esm2022/listbox/listbox.interface.mjs +0 -2
  818. package/esm2022/listbox/listbox.mjs +0 -2044
  819. package/esm2022/listbox/primeng-listbox.mjs +0 -5
  820. package/esm2022/listbox/public_api.mjs +0 -4
  821. package/esm2022/listbox/style/listboxstyle.mjs +0 -206
  822. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  823. package/esm2022/megamenu/megamenu.mjs +0 -1607
  824. package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
  825. package/esm2022/megamenu/public_api.mjs +0 -4
  826. package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
  827. package/esm2022/menu/menu.mjs +0 -1193
  828. package/esm2022/menu/primeng-menu.mjs +0 -5
  829. package/esm2022/menu/public_api.mjs +0 -3
  830. package/esm2022/menu/style/menustyle.mjs +0 -179
  831. package/esm2022/menubar/menubar.interface.mjs +0 -2
  832. package/esm2022/menubar/menubar.mjs +0 -1484
  833. package/esm2022/menubar/primeng-menubar.mjs +0 -5
  834. package/esm2022/menubar/public_api.mjs +0 -4
  835. package/esm2022/menubar/style/menubarstyle.mjs +0 -375
  836. package/esm2022/message/message.mjs +0 -421
  837. package/esm2022/message/primeng-message.mjs +0 -5
  838. package/esm2022/message/public_api.mjs +0 -3
  839. package/esm2022/message/style/messagestyle.mjs +0 -357
  840. package/esm2022/messages/messages.interface.mjs +0 -2
  841. package/esm2022/messages/messages.mjs +0 -529
  842. package/esm2022/messages/primeng-messages.mjs +0 -5
  843. package/esm2022/messages/public_api.mjs +0 -4
  844. package/esm2022/messages/style/messagesstyle.mjs +0 -229
  845. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  846. package/esm2022/metergroup/metergroup.mjs +0 -423
  847. package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
  848. package/esm2022/metergroup/public_api.mjs +0 -4
  849. package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
  850. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  851. package/esm2022/multiselect/multiselect.mjs +0 -2924
  852. package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
  853. package/esm2022/multiselect/public_api.mjs +0 -4
  854. package/esm2022/multiselect/style/multiselectstyle.mjs +0 -376
  855. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  856. package/esm2022/orderlist/orderlist.mjs +0 -1121
  857. package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
  858. package/esm2022/orderlist/public_api.mjs +0 -4
  859. package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
  860. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  861. package/esm2022/organizationchart/organizationchart.mjs +0 -591
  862. package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
  863. package/esm2022/organizationchart/public_api.mjs +0 -4
  864. package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
  865. package/esm2022/overlay/overlay.mjs +0 -668
  866. package/esm2022/overlay/primeng-overlay.mjs +0 -5
  867. package/esm2022/overlay/public_api.mjs +0 -3
  868. package/esm2022/overlay/style/overlaystyle.mjs +0 -93
  869. package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
  870. package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
  871. package/esm2022/overlaybadge/public_api.mjs +0 -3
  872. package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
  873. package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
  874. package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
  875. package/esm2022/overlaypanel/public_api.mjs +0 -3
  876. package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
  877. package/esm2022/paginator/paginator.interface.mjs +0 -2
  878. package/esm2022/paginator/paginator.mjs +0 -893
  879. package/esm2022/paginator/primeng-paginator.mjs +0 -5
  880. package/esm2022/paginator/public_api.mjs +0 -4
  881. package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
  882. package/esm2022/panel/panel.mjs +0 -585
  883. package/esm2022/panel/primeng-panel.mjs +0 -5
  884. package/esm2022/panel/public_api.mjs +0 -3
  885. package/esm2022/panel/style/panelstyle.mjs +0 -120
  886. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  887. package/esm2022/panelmenu/panelmenu.mjs +0 -1628
  888. package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
  889. package/esm2022/panelmenu/public_api.mjs +0 -4
  890. package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
  891. package/esm2022/password/password.mjs +0 -1178
  892. package/esm2022/password/primeng-password.mjs +0 -5
  893. package/esm2022/password/public_api.mjs +0 -3
  894. package/esm2022/password/style/passwordstyle.mjs +0 -182
  895. package/esm2022/picklist/picklist.interface.mjs +0 -2
  896. package/esm2022/picklist/picklist.mjs +0 -2298
  897. package/esm2022/picklist/primeng-picklist.mjs +0 -5
  898. package/esm2022/picklist/public_api.mjs +0 -4
  899. package/esm2022/picklist/style/pickliststyle.mjs +0 -79
  900. package/esm2022/popover/popover.mjs +0 -518
  901. package/esm2022/popover/primeng-popover.mjs +0 -5
  902. package/esm2022/popover/public_api.mjs +0 -3
  903. package/esm2022/popover/style/popoverstyle.mjs +0 -99
  904. package/esm2022/primeng.mjs +0 -5
  905. package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
  906. package/esm2022/progressbar/progressbar.mjs +0 -197
  907. package/esm2022/progressbar/public_api.mjs +0 -3
  908. package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
  909. package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
  910. package/esm2022/progressspinner/progressspinner.mjs +0 -105
  911. package/esm2022/progressspinner/public_api.mjs +0 -3
  912. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
  913. package/esm2022/public_api.mjs +0 -2
  914. package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
  915. package/esm2022/radiobutton/public_api.mjs +0 -4
  916. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  917. package/esm2022/radiobutton/radiobutton.mjs +0 -356
  918. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
  919. package/esm2022/rating/primeng-rating.mjs +0 -5
  920. package/esm2022/rating/public_api.mjs +0 -4
  921. package/esm2022/rating/rating.interface.mjs +0 -2
  922. package/esm2022/rating/rating.mjs +0 -425
  923. package/esm2022/rating/style/ratingstyle.mjs +0 -103
  924. package/esm2022/ripple/primeng-ripple.mjs +0 -5
  925. package/esm2022/ripple/public_api.mjs +0 -3
  926. package/esm2022/ripple/ripple.mjs +0 -131
  927. package/esm2022/ripple/style/ripplestyle.mjs +0 -63
  928. package/esm2022/scroller/primeng-scroller.mjs +0 -5
  929. package/esm2022/scroller/public_api.mjs +0 -4
  930. package/esm2022/scroller/scroller.interface.mjs +0 -2
  931. package/esm2022/scroller/scroller.mjs +0 -1290
  932. package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
  933. package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
  934. package/esm2022/scrollpanel/public_api.mjs +0 -4
  935. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  936. package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
  937. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
  938. package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
  939. package/esm2022/scrolltop/public_api.mjs +0 -4
  940. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  941. package/esm2022/scrolltop/scrolltop.mjs +0 -336
  942. package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
  943. package/esm2022/select/primeng-select.mjs +0 -5
  944. package/esm2022/select/public_api.mjs +0 -4
  945. package/esm2022/select/select.interface.mjs +0 -2
  946. package/esm2022/select/select.mjs +0 -2617
  947. package/esm2022/select/style/selectstyle.mjs +0 -368
  948. package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
  949. package/esm2022/selectbutton/public_api.mjs +0 -4
  950. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  951. package/esm2022/selectbutton/selectbutton.mjs +0 -373
  952. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
  953. package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
  954. package/esm2022/sidebar/public_api.mjs +0 -4
  955. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  956. package/esm2022/sidebar/sidebar.mjs +0 -578
  957. package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
  958. package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
  959. package/esm2022/skeleton/public_api.mjs +0 -3
  960. package/esm2022/skeleton/skeleton.mjs +0 -121
  961. package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
  962. package/esm2022/slider/primeng-slider.mjs +0 -5
  963. package/esm2022/slider/public_api.mjs +0 -4
  964. package/esm2022/slider/slider.interface.mjs +0 -2
  965. package/esm2022/slider/slider.mjs +0 -820
  966. package/esm2022/slider/style/sliderstyle.mjs +0 -141
  967. package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
  968. package/esm2022/speeddial/public_api.mjs +0 -4
  969. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  970. package/esm2022/speeddial/speeddial.mjs +0 -866
  971. package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
  972. package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
  973. package/esm2022/splitbutton/public_api.mjs +0 -4
  974. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  975. package/esm2022/splitbutton/splitbutton.mjs +0 -579
  976. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
  977. package/esm2022/splitter/primeng-splitter.mjs +0 -5
  978. package/esm2022/splitter/public_api.mjs +0 -4
  979. package/esm2022/splitter/splitter.interface.mjs +0 -2
  980. package/esm2022/splitter/splitter.mjs +0 -616
  981. package/esm2022/splitter/style/splitterstyle.mjs +0 -126
  982. package/esm2022/stepper/primeng-stepper.mjs +0 -5
  983. package/esm2022/stepper/public_api.mjs +0 -3
  984. package/esm2022/stepper/stepper.mjs +0 -521
  985. package/esm2022/stepper/style/stepperstyle.mjs +0 -228
  986. package/esm2022/steps/primeng-steps.mjs +0 -5
  987. package/esm2022/steps/public_api.mjs +0 -3
  988. package/esm2022/steps/steps.mjs +0 -405
  989. package/esm2022/steps/style/stepsstyle.mjs +0 -180
  990. package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
  991. package/esm2022/styleclass/public_api.mjs +0 -2
  992. package/esm2022/styleclass/styleclass.mjs +0 -315
  993. package/esm2022/table/columnfilter.interface.mjs +0 -2
  994. package/esm2022/table/primeng-table.mjs +0 -5
  995. package/esm2022/table/public_api.mjs +0 -5
  996. package/esm2022/table/style/tablestyle.mjs +0 -906
  997. package/esm2022/table/table.interface.mjs +0 -2
  998. package/esm2022/table/table.mjs +0 -7982
  999. package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
  1000. package/esm2022/tabmenu/public_api.mjs +0 -4
  1001. package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
  1002. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  1003. package/esm2022/tabmenu/tabmenu.mjs +0 -730
  1004. package/esm2022/tabs/primeng-tabs.mjs +0 -5
  1005. package/esm2022/tabs/public_api.mjs +0 -7
  1006. package/esm2022/tabs/style/tabsstyle.mjs +0 -211
  1007. package/esm2022/tabs/tab.mjs +0 -175
  1008. package/esm2022/tabs/tablist.mjs +0 -297
  1009. package/esm2022/tabs/tabpanel.mjs +0 -60
  1010. package/esm2022/tabs/tabpanels.mjs +0 -38
  1011. package/esm2022/tabs/tabs.mjs +0 -105
  1012. package/esm2022/tabview/primeng-tabview.mjs +0 -5
  1013. package/esm2022/tabview/public_api.mjs +0 -4
  1014. package/esm2022/tabview/style/tabsstyle.mjs +0 -211
  1015. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1016. package/esm2022/tabview/tabview.mjs +0 -1089
  1017. package/esm2022/tag/primeng-tag.mjs +0 -5
  1018. package/esm2022/tag/public_api.mjs +0 -4
  1019. package/esm2022/tag/style/tagstyle.mjs +0 -108
  1020. package/esm2022/tag/tag.interface.mjs +0 -2
  1021. package/esm2022/tag/tag.mjs +0 -168
  1022. package/esm2022/terminal/primeng-terminal.mjs +0 -5
  1023. package/esm2022/terminal/public_api.mjs +0 -4
  1024. package/esm2022/terminal/style/terminalstyle.mjs +0 -113
  1025. package/esm2022/terminal/terminal.mjs +0 -195
  1026. package/esm2022/terminal/terminalservice.mjs +0 -25
  1027. package/esm2022/textarea/primeng-textarea.mjs +0 -5
  1028. package/esm2022/textarea/public_api.mjs +0 -3
  1029. package/esm2022/textarea/style/textareastyle.mjs +0 -120
  1030. package/esm2022/textarea/textarea.mjs +0 -165
  1031. package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
  1032. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1033. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
  1034. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1035. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
  1036. package/esm2022/timeline/primeng-timeline.mjs +0 -5
  1037. package/esm2022/timeline/public_api.mjs +0 -4
  1038. package/esm2022/timeline/style/timelinestyle.mjs +0 -217
  1039. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1040. package/esm2022/timeline/timeline.mjs +0 -223
  1041. package/esm2022/toast/primeng-toast.mjs +0 -5
  1042. package/esm2022/toast/public_api.mjs +0 -4
  1043. package/esm2022/toast/style/toaststyle.mjs +0 -351
  1044. package/esm2022/toast/toast.interface.mjs +0 -2
  1045. package/esm2022/toast/toast.mjs +0 -738
  1046. package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
  1047. package/esm2022/togglebutton/public_api.mjs +0 -3
  1048. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
  1049. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1050. package/esm2022/togglebutton/togglebutton.mjs +0 -353
  1051. package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
  1052. package/esm2022/toggleswitch/public_api.mjs +0 -4
  1053. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
  1054. package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
  1055. package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
  1056. package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
  1057. package/esm2022/toolbar/public_api.mjs +0 -4
  1058. package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
  1059. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1060. package/esm2022/toolbar/toolbar.mjs +0 -172
  1061. package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
  1062. package/esm2022/tooltip/public_api.mjs +0 -3
  1063. package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
  1064. package/esm2022/tooltip/tooltip.mjs +0 -715
  1065. package/esm2022/tree/primeng-tree.mjs +0 -5
  1066. package/esm2022/tree/public_api.mjs +0 -4
  1067. package/esm2022/tree/style/treestyle.mjs +0 -323
  1068. package/esm2022/tree/tree.interface.mjs +0 -2
  1069. package/esm2022/tree/tree.mjs +0 -2248
  1070. package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
  1071. package/esm2022/treeselect/public_api.mjs +0 -4
  1072. package/esm2022/treeselect/style/treeselectstyle.mjs +0 -274
  1073. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1074. package/esm2022/treeselect/treeselect.mjs +0 -1372
  1075. package/esm2022/treetable/primeng-treetable.mjs +0 -5
  1076. package/esm2022/treetable/public_api.mjs +0 -4
  1077. package/esm2022/treetable/style/treetablestyle.mjs +0 -621
  1078. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1079. package/esm2022/treetable/treetable.mjs +0 -4642
  1080. package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
  1081. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1082. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1083. package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
  1084. package/esm2022/usestyle/public_api.mjs +0 -2
  1085. package/esm2022/usestyle/usestyle.mjs +0 -44
  1086. package/esm2022/utils/inpututils.mjs +0 -7
  1087. package/esm2022/utils/objectutils.mjs +0 -276
  1088. package/esm2022/utils/primeng-utils.mjs +0 -5
  1089. package/esm2022/utils/public_api.mjs +0 -6
  1090. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1091. package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,1628 +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, EventEmitter, forwardRef, inject, Input, NgModule, numberAttribute, Output, signal, ViewChild, ViewEncapsulation } from '@angular/core';
4
- import { RouterModule } from '@angular/router';
5
- import { equals, findLast, findSingle, focus, getAttribute, isEmpty, isNotEmpty, isPrintableCharacter, resolve, uuid } from '@primeuix/utils';
6
- import { SharedModule } from 'primeng/api';
7
- import { BaseComponent } from 'primeng/basecomponent';
8
- import { AngleDownIcon, AngleRightIcon, ChevronDownIcon, ChevronRightIcon } from 'primeng/icons';
9
- import { TooltipModule } from 'primeng/tooltip';
10
- import { PanelMenuStyle } from './style/panelmenustyle';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/common";
13
- import * as i2 from "@angular/router";
14
- import * as i3 from "primeng/tooltip";
15
- const _c0 = ["list"];
16
- const _c1 = () => ({ "p-panelmenu-submenu": true });
17
- const _c2 = a0 => ({ "p-disabled": a0 });
18
- const _c3 = () => ({ exact: false });
19
- const _c4 = a0 => ({ $implicit: a0 });
20
- function PanelMenuSub_ng_template_2_li_0_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelement(0, "li", 7);
22
- } }
23
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelement(0, "AngleDownIcon", 21);
25
- } if (rf & 2) {
26
- const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
27
- const ctx_r3 = i0.ɵɵnextContext();
28
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
29
- } }
30
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleRightIcon_2_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelement(0, "AngleRightIcon", 21);
32
- } if (rf & 2) {
33
- const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
34
- const ctx_r3 = i0.ɵɵnextContext();
35
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
36
- } }
37
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵelementContainerStart(0);
39
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleDownIcon_1_Template, 1, 2, "AngleDownIcon", 20)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleRightIcon_2_Template, 1, 2, "AngleRightIcon", 20);
40
- i0.ɵɵelementContainerEnd();
41
- } if (rf & 2) {
42
- const processedItem_r3 = i0.ɵɵnextContext(5).$implicit;
43
- const ctx_r3 = i0.ɵɵnextContext();
44
- i0.ɵɵadvance();
45
- i0.ɵɵproperty("ngIf", ctx_r3.isItemActive(processedItem_r3));
46
- i0.ɵɵadvance();
47
- i0.ɵɵproperty("ngIf", !ctx_r3.isItemActive(processedItem_r3));
48
- } }
49
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
50
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
52
- } }
53
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
54
- i0.ɵɵelementContainerStart(0);
55
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_Template, 1, 0, null, 19);
56
- i0.ɵɵelementContainerEnd();
57
- } if (rf & 2) {
58
- const ctx_r3 = i0.ɵɵnextContext(5);
59
- i0.ɵɵadvance();
60
- i0.ɵɵproperty("ngIf", !ctx_r3.panelMenu.submenuiconTemplate);
61
- i0.ɵɵadvance();
62
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.panelMenu.submenuiconTemplate);
63
- } }
64
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_2_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelement(0, "span", 22);
66
- } if (rf & 2) {
67
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
68
- const ctx_r3 = i0.ɵɵnextContext();
69
- i0.ɵɵproperty("ngClass", processedItem_r3.icon)("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
70
- } }
71
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_3_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "span", 23);
73
- i0.ɵɵtext(1);
74
- i0.ɵɵelementEnd();
75
- } if (rf & 2) {
76
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
77
- const ctx_r3 = i0.ɵɵnextContext();
78
- i0.ɵɵadvance();
79
- i0.ɵɵtextInterpolate(ctx_r3.getItemProp(processedItem_r3, "label"));
80
- } }
81
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵelement(0, "span", 24);
83
- } if (rf & 2) {
84
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
85
- const ctx_r3 = i0.ɵɵnextContext();
86
- i0.ɵɵproperty("innerHTML", ctx_r3.getItemProp(processedItem_r3, "label"), i0.ɵɵsanitizeHtml);
87
- } }
88
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_6_Template(rf, ctx) { if (rf & 1) {
89
- i0.ɵɵelementStart(0, "span", 25);
90
- i0.ɵɵtext(1);
91
- i0.ɵɵelementEnd();
92
- } if (rf & 2) {
93
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
94
- i0.ɵɵproperty("ngClass", processedItem_r3.badgeStyleClass);
95
- i0.ɵɵadvance();
96
- i0.ɵɵtextInterpolate(processedItem_r3.badge);
97
- } }
98
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_Template(rf, ctx) { if (rf & 1) {
99
- i0.ɵɵelementStart(0, "a", 15);
100
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_2_Template, 1, 2, "span", 16)(3, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_3_Template, 2, 1, "span", 17)(4, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_6_Template, 2, 2, "span", 18);
101
- i0.ɵɵelementEnd();
102
- } if (rf & 2) {
103
- const htmlLabel_r5 = i0.ɵɵreference(5);
104
- const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
105
- const ctx_r3 = i0.ɵɵnextContext();
106
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2, ctx_r3.getItemProp(processedItem_r3, "disabled")))("target", ctx_r3.getItemProp(processedItem_r3, "target"));
107
- i0.ɵɵattribute("href", ctx_r3.getItemProp(processedItem_r3, "url"), i0.ɵɵsanitizeUrl)("data-pc-section", "action")("tabindex", !!ctx_r3.parentExpanded ? "0" : "-1");
108
- i0.ɵɵadvance();
109
- i0.ɵɵproperty("ngIf", ctx_r3.isItemGroup(processedItem_r3));
110
- i0.ɵɵadvance();
111
- i0.ɵɵproperty("ngIf", processedItem_r3.icon);
112
- i0.ɵɵadvance();
113
- i0.ɵɵproperty("ngIf", (processedItem_r3.item == null ? null : processedItem_r3.item.escape) !== false)("ngIfElse", htmlLabel_r5);
114
- i0.ɵɵadvance(3);
115
- i0.ɵɵproperty("ngIf", processedItem_r3.badge);
116
- } }
117
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {
118
- i0.ɵɵelement(0, "AngleDownIcon", 21);
119
- } if (rf & 2) {
120
- const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
121
- const ctx_r3 = i0.ɵɵnextContext();
122
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
123
- } }
124
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleRightIcon_2_Template(rf, ctx) { if (rf & 1) {
125
- i0.ɵɵelement(0, "AngleRightIcon", 21);
126
- } if (rf & 2) {
127
- const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
128
- const ctx_r3 = i0.ɵɵnextContext();
129
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
130
- } }
131
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
132
- i0.ɵɵelementContainerStart(0);
133
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleDownIcon_1_Template, 1, 2, "AngleDownIcon", 20)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleRightIcon_2_Template, 1, 2, "AngleRightIcon", 20);
134
- i0.ɵɵelementContainerEnd();
135
- } if (rf & 2) {
136
- const processedItem_r3 = i0.ɵɵnextContext(5).$implicit;
137
- const ctx_r3 = i0.ɵɵnextContext();
138
- i0.ɵɵadvance();
139
- i0.ɵɵproperty("ngIf", ctx_r3.isItemActive(processedItem_r3));
140
- i0.ɵɵadvance();
141
- i0.ɵɵproperty("ngIf", !ctx_r3.isItemActive(processedItem_r3));
142
- } }
143
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
144
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
145
- i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
146
- } }
147
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
148
- i0.ɵɵelementContainerStart(0);
149
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_Template, 1, 0, null, 19);
150
- i0.ɵɵelementContainerEnd();
151
- } if (rf & 2) {
152
- const ctx_r3 = i0.ɵɵnextContext(5);
153
- i0.ɵɵadvance();
154
- i0.ɵɵproperty("ngIf", !ctx_r3.panelMenu.submenuiconTemplate);
155
- i0.ɵɵadvance();
156
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.panelMenu.submenuiconTemplate);
157
- } }
158
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_2_Template(rf, ctx) { if (rf & 1) {
159
- i0.ɵɵelement(0, "span", 22);
160
- } if (rf & 2) {
161
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
162
- const ctx_r3 = i0.ɵɵnextContext();
163
- i0.ɵɵproperty("ngClass", processedItem_r3.icon)("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
164
- } }
165
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_3_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵelementStart(0, "span", 23);
167
- i0.ɵɵtext(1);
168
- i0.ɵɵelementEnd();
169
- } if (rf & 2) {
170
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
171
- const ctx_r3 = i0.ɵɵnextContext();
172
- i0.ɵɵadvance();
173
- i0.ɵɵtextInterpolate(ctx_r3.getItemProp(processedItem_r3, "label"));
174
- } }
175
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_template_4_Template(rf, ctx) { if (rf & 1) {
176
- i0.ɵɵelement(0, "span", 24);
177
- } if (rf & 2) {
178
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
179
- const ctx_r3 = i0.ɵɵnextContext();
180
- i0.ɵɵproperty("innerHTML", ctx_r3.getItemProp(processedItem_r3, "label"), i0.ɵɵsanitizeHtml);
181
- } }
182
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_6_Template(rf, ctx) { if (rf & 1) {
183
- i0.ɵɵelementStart(0, "span", 25);
184
- i0.ɵɵtext(1);
185
- i0.ɵɵelementEnd();
186
- } if (rf & 2) {
187
- const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
188
- const ctx_r3 = i0.ɵɵnextContext();
189
- i0.ɵɵproperty("ngClass", ctx_r3.getItemProp(processedItem_r3, "badgeStyleClass"));
190
- i0.ɵɵadvance();
191
- i0.ɵɵtextInterpolate(ctx_r3.getItemProp(processedItem_r3, "badge"));
192
- } }
193
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_Template(rf, ctx) { if (rf & 1) {
194
- i0.ɵɵelementStart(0, "a", 26);
195
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_2_Template, 1, 2, "span", 16)(3, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_3_Template, 2, 1, "span", 17)(4, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_template_4_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(6, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_6_Template, 2, 2, "span", 18);
196
- i0.ɵɵelementEnd();
197
- } if (rf & 2) {
198
- const htmlRouteLabel_r6 = i0.ɵɵreference(5);
199
- const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
200
- const ctx_r3 = i0.ɵɵnextContext();
201
- i0.ɵɵproperty("routerLink", ctx_r3.getItemProp(processedItem_r3, "routerLink"))("queryParams", ctx_r3.getItemProp(processedItem_r3, "queryParams"))("routerLinkActive", "p-panelmenu-item-link-active")("routerLinkActiveOptions", ctx_r3.getItemProp(processedItem_r3, "routerLinkActiveOptions") || i0.ɵɵpureFunction0(20, _c3))("ngClass", i0.ɵɵpureFunction1(21, _c2, ctx_r3.getItemProp(processedItem_r3, "disabled")))("target", ctx_r3.getItemProp(processedItem_r3, "target"))("fragment", ctx_r3.getItemProp(processedItem_r3, "fragment"))("queryParamsHandling", ctx_r3.getItemProp(processedItem_r3, "queryParamsHandling"))("preserveFragment", ctx_r3.getItemProp(processedItem_r3, "preserveFragment"))("skipLocationChange", ctx_r3.getItemProp(processedItem_r3, "skipLocationChange"))("replaceUrl", ctx_r3.getItemProp(processedItem_r3, "replaceUrl"))("state", ctx_r3.getItemProp(processedItem_r3, "state"));
202
- i0.ɵɵattribute("title", ctx_r3.getItemProp(processedItem_r3, "title"))("data-pc-section", "action")("tabindex", !!ctx_r3.parentExpanded ? "0" : "-1");
203
- i0.ɵɵadvance();
204
- i0.ɵɵproperty("ngIf", ctx_r3.isItemGroup(processedItem_r3));
205
- i0.ɵɵadvance();
206
- i0.ɵɵproperty("ngIf", processedItem_r3.icon);
207
- i0.ɵɵadvance();
208
- i0.ɵɵproperty("ngIf", ctx_r3.getItemProp(processedItem_r3, "escape") !== false)("ngIfElse", htmlRouteLabel_r6);
209
- i0.ɵɵadvance(3);
210
- i0.ɵɵproperty("ngIf", processedItem_r3.badge);
211
- } }
212
- function PanelMenuSub_ng_template_2_li_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
213
- i0.ɵɵelementContainerStart(0);
214
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_Template, 7, 12, "a", 13)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_Template, 7, 23, "a", 14);
215
- i0.ɵɵelementContainerEnd();
216
- } if (rf & 2) {
217
- const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
218
- const ctx_r3 = i0.ɵɵnextContext();
219
- i0.ɵɵadvance();
220
- i0.ɵɵproperty("ngIf", !ctx_r3.getItemProp(processedItem_r3, "routerLink"));
221
- i0.ɵɵadvance();
222
- i0.ɵɵproperty("ngIf", ctx_r3.getItemProp(processedItem_r3, "routerLink"));
223
- } }
224
- function PanelMenuSub_ng_template_2_li_1_ng_container_3_1_ng_template_0_Template(rf, ctx) { }
225
- function PanelMenuSub_ng_template_2_li_1_ng_container_3_1_Template(rf, ctx) { if (rf & 1) {
226
- i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_1_ng_container_3_1_ng_template_0_Template, 0, 0, "ng-template");
227
- } }
228
- function PanelMenuSub_ng_template_2_li_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
229
- i0.ɵɵelementContainerStart(0);
230
- i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_3_1_Template, 1, 0, null, 27);
231
- i0.ɵɵelementContainerEnd();
232
- } if (rf & 2) {
233
- const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
234
- const ctx_r3 = i0.ɵɵnextContext();
235
- i0.ɵɵadvance();
236
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c4, processedItem_r3.item));
237
- } }
238
- function PanelMenuSub_ng_template_2_li_1_p_panelmenu_sub_5_Template(rf, ctx) { if (rf & 1) {
239
- const _r7 = i0.ɵɵgetCurrentView();
240
- i0.ɵɵelementStart(0, "p-panelmenu-sub", 28);
241
- i0.ɵɵlistener("itemToggle", function PanelMenuSub_ng_template_2_li_1_p_panelmenu_sub_5_Template_p_panelmenu_sub_itemToggle_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.onItemToggle($event)); });
242
- i0.ɵɵelementEnd();
243
- } if (rf & 2) {
244
- const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
245
- const ctx_r3 = i0.ɵɵnextContext();
246
- i0.ɵɵproperty("id", ctx_r3.getItemId(processedItem_r3) + "_list")("panelId", ctx_r3.panelId)("items", processedItem_r3 == null ? null : processedItem_r3.items)("itemTemplate", ctx_r3.itemTemplate)("transitionOptions", ctx_r3.transitionOptions)("focusedItemId", ctx_r3.focusedItemId)("activeItemPath", ctx_r3.activeItemPath)("level", ctx_r3.level + 1)("parentExpanded", !!ctx_r3.parentExpanded && ctx_r3.isItemExpanded(processedItem_r3));
247
- } }
248
- function PanelMenuSub_ng_template_2_li_1_Template(rf, ctx) { if (rf & 1) {
249
- const _r2 = i0.ɵɵgetCurrentView();
250
- i0.ɵɵelementStart(0, "li", 8)(1, "div", 9);
251
- i0.ɵɵlistener("click", function PanelMenuSub_ng_template_2_li_1_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r2); const processedItem_r3 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onItemClick($event, processedItem_r3)); });
252
- i0.ɵɵtemplate(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_Template, 3, 2, "ng-container", 10)(3, PanelMenuSub_ng_template_2_li_1_ng_container_3_Template, 2, 4, "ng-container", 10);
253
- i0.ɵɵelementEnd();
254
- i0.ɵɵelementStart(4, "div", 11);
255
- i0.ɵɵtemplate(5, PanelMenuSub_ng_template_2_li_1_p_panelmenu_sub_5_Template, 1, 9, "p-panelmenu-sub", 12);
256
- i0.ɵɵelementEnd()();
257
- } if (rf & 2) {
258
- const ctx_r7 = i0.ɵɵnextContext();
259
- const processedItem_r3 = ctx_r7.$implicit;
260
- const index_r9 = ctx_r7.index;
261
- const ctx_r3 = i0.ɵɵnextContext();
262
- i0.ɵɵclassMap(ctx_r3.getItemProp(processedItem_r3, "styleClass"));
263
- i0.ɵɵclassProp("p-hidden", processedItem_r3.visible === false)("p-focus", ctx_r3.isItemFocused(processedItem_r3) && !ctx_r3.isItemDisabled(processedItem_r3));
264
- i0.ɵɵproperty("ngClass", ctx_r3.getItemClass(processedItem_r3))("ngStyle", ctx_r3.getItemProp(processedItem_r3, "style"))("pTooltip", ctx_r3.getItemProp(processedItem_r3, "tooltip"))("tooltipOptions", ctx_r3.getItemProp(processedItem_r3, "tooltipOptions"));
265
- i0.ɵɵattribute("id", ctx_r3.getItemId(processedItem_r3))("aria-label", ctx_r3.getItemProp(processedItem_r3, "label"))("aria-expanded", ctx_r3.isItemGroup(processedItem_r3) ? ctx_r3.isItemActive(processedItem_r3) : undefined)("aria-level", ctx_r3.level + 1)("aria-setsize", ctx_r3.getAriaSetSize())("aria-posinset", ctx_r3.getAriaPosInset(index_r9))("data-p-disabled", ctx_r3.isItemDisabled(processedItem_r3));
266
- i0.ɵɵadvance(2);
267
- i0.ɵɵproperty("ngIf", !ctx_r3.itemTemplate);
268
- i0.ɵɵadvance();
269
- i0.ɵɵproperty("ngIf", ctx_r3.itemTemplate);
270
- i0.ɵɵadvance();
271
- i0.ɵɵproperty("@submenu", ctx_r3.getAnimation(processedItem_r3));
272
- i0.ɵɵadvance();
273
- i0.ɵɵproperty("ngIf", ctx_r3.isItemVisible(processedItem_r3) && ctx_r3.isItemGroup(processedItem_r3) && ctx_r3.isItemExpanded(processedItem_r3));
274
- } }
275
- function PanelMenuSub_ng_template_2_Template(rf, ctx) { if (rf & 1) {
276
- i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_0_Template, 1, 0, "li", 5)(1, PanelMenuSub_ng_template_2_li_1_Template, 6, 21, "li", 6);
277
- } if (rf & 2) {
278
- const processedItem_r3 = ctx.$implicit;
279
- const ctx_r3 = i0.ɵɵnextContext();
280
- i0.ɵɵproperty("ngIf", processedItem_r3.separator);
281
- i0.ɵɵadvance();
282
- i0.ɵɵproperty("ngIf", !processedItem_r3.separator && ctx_r3.isItemVisible(processedItem_r3));
283
- } }
284
- const _c5 = ["submenu"];
285
- const _c6 = ["submenuicon"];
286
- const _c7 = ["item"];
287
- const _c8 = ["container"];
288
- const _c9 = (a0, a1) => ({ "p-component p-panelmenu-header": true, "p-panelmenu-header-active": a0, "p-disabled": a1 });
289
- const _c10 = a0 => ({ "p-panelmenu-expanded": a0 });
290
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronDownIcon_1_Template(rf, ctx) { if (rf & 1) {
291
- i0.ɵɵelement(0, "ChevronDownIcon", 20);
292
- } if (rf & 2) {
293
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
294
- } }
295
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronRightIcon_2_Template(rf, ctx) { if (rf & 1) {
296
- i0.ɵɵelement(0, "ChevronRightIcon", 20);
297
- } if (rf & 2) {
298
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
299
- } }
300
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
301
- i0.ɵɵelementContainerStart(0);
302
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronDownIcon_1_Template, 1, 1, "ChevronDownIcon", 19)(2, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronRightIcon_2_Template, 1, 1, "ChevronRightIcon", 19);
303
- i0.ɵɵelementContainerEnd();
304
- } if (rf & 2) {
305
- const item_r3 = i0.ɵɵnextContext(5).$implicit;
306
- const ctx_r4 = i0.ɵɵnextContext();
307
- i0.ɵɵadvance();
308
- i0.ɵɵproperty("ngIf", ctx_r4.isItemActive(item_r3));
309
- i0.ɵɵadvance();
310
- i0.ɵɵproperty("ngIf", !ctx_r4.isItemActive(item_r3));
311
- } }
312
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
313
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
314
- i0.ɵɵtemplate(0, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
315
- } }
316
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
317
- i0.ɵɵelementContainerStart(0);
318
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_Template, 1, 0, null, 18);
319
- i0.ɵɵelementContainerEnd();
320
- } if (rf & 2) {
321
- const ctx_r4 = i0.ɵɵnextContext(5);
322
- i0.ɵɵadvance();
323
- i0.ɵɵproperty("ngIf", !ctx_r4.submenuiconTemplate);
324
- i0.ɵɵadvance();
325
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r4.submenuiconTemplate);
326
- } }
327
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_2_Template(rf, ctx) { if (rf & 1) {
328
- i0.ɵɵelement(0, "span", 21);
329
- } if (rf & 2) {
330
- const item_r3 = i0.ɵɵnextContext(4).$implicit;
331
- const ctx_r4 = i0.ɵɵnextContext();
332
- i0.ɵɵproperty("ngClass", item_r3.icon)("ngStyle", ctx_r4.getItemProp(item_r3, "iconStyle"));
333
- } }
334
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_3_Template(rf, ctx) { if (rf & 1) {
335
- i0.ɵɵelementStart(0, "span", 22);
336
- i0.ɵɵtext(1);
337
- i0.ɵɵelementEnd();
338
- } if (rf & 2) {
339
- const item_r3 = i0.ɵɵnextContext(4).$implicit;
340
- const ctx_r4 = i0.ɵɵnextContext();
341
- i0.ɵɵadvance();
342
- i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "label"));
343
- } }
344
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
345
- i0.ɵɵelement(0, "span", 23);
346
- } if (rf & 2) {
347
- const item_r3 = i0.ɵɵnextContext(4).$implicit;
348
- const ctx_r4 = i0.ɵɵnextContext();
349
- i0.ɵɵproperty("innerHTML", ctx_r4.getItemProp(item_r3, "label"), i0.ɵɵsanitizeHtml);
350
- } }
351
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_6_Template(rf, ctx) { if (rf & 1) {
352
- i0.ɵɵelementStart(0, "span", 24);
353
- i0.ɵɵtext(1);
354
- i0.ɵɵelementEnd();
355
- } if (rf & 2) {
356
- const item_r3 = i0.ɵɵnextContext(4).$implicit;
357
- const ctx_r4 = i0.ɵɵnextContext();
358
- i0.ɵɵproperty("ngClass", ctx_r4.getItemProp(item_r3, "badgeStyleClass"));
359
- i0.ɵɵadvance();
360
- i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "badge"));
361
- } }
362
- function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_Template(rf, ctx) { if (rf & 1) {
363
- i0.ɵɵelementStart(0, "a", 14);
364
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_2_Template, 1, 2, "span", 15)(3, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_3_Template, 2, 1, "span", 16)(4, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_6_Template, 2, 2, "span", 17);
365
- i0.ɵɵelementEnd();
366
- } if (rf & 2) {
367
- const htmlLabel_r6 = i0.ɵɵreference(5);
368
- const item_r3 = i0.ɵɵnextContext(3).$implicit;
369
- const ctx_r4 = i0.ɵɵnextContext();
370
- i0.ɵɵproperty("target", ctx_r4.getItemProp(item_r3, "target"));
371
- i0.ɵɵattribute("href", ctx_r4.getItemProp(item_r3, "url"), i0.ɵɵsanitizeUrl)("tabindex", -1)("title", ctx_r4.getItemProp(item_r3, "title"))("data-pc-section", "headeraction");
372
- i0.ɵɵadvance();
373
- i0.ɵɵproperty("ngIf", ctx_r4.isItemGroup(item_r3));
374
- i0.ɵɵadvance();
375
- i0.ɵɵproperty("ngIf", item_r3.icon);
376
- i0.ɵɵadvance();
377
- i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "escape") !== false)("ngIfElse", htmlLabel_r6);
378
- i0.ɵɵadvance(3);
379
- i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "badge"));
380
- } }
381
- function PanelMenu_ng_container_2_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
382
- i0.ɵɵelementContainerStart(0);
383
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_Template, 7, 10, "a", 13);
384
- i0.ɵɵelementContainerEnd();
385
- } if (rf & 2) {
386
- const item_r3 = i0.ɵɵnextContext(2).$implicit;
387
- const ctx_r4 = i0.ɵɵnextContext();
388
- i0.ɵɵadvance();
389
- i0.ɵɵproperty("ngIf", !ctx_r4.getItemProp(item_r3, "routerLink"));
390
- } }
391
- function PanelMenu_ng_container_2_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
392
- i0.ɵɵelementContainer(0);
393
- } }
394
- function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronDownIcon_1_Template(rf, ctx) { if (rf & 1) {
395
- i0.ɵɵelement(0, "ChevronDownIcon", 20);
396
- } if (rf & 2) {
397
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
398
- } }
399
- function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronRightIcon_2_Template(rf, ctx) { if (rf & 1) {
400
- i0.ɵɵelement(0, "ChevronRightIcon", 20);
401
- } if (rf & 2) {
402
- i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
403
- } }
404
- function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
405
- i0.ɵɵelementContainerStart(0);
406
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronDownIcon_1_Template, 1, 1, "ChevronDownIcon", 19)(2, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronRightIcon_2_Template, 1, 1, "ChevronRightIcon", 19);
407
- i0.ɵɵelementContainerEnd();
408
- } if (rf & 2) {
409
- const item_r3 = i0.ɵɵnextContext(4).$implicit;
410
- const ctx_r4 = i0.ɵɵnextContext();
411
- i0.ɵɵadvance();
412
- i0.ɵɵproperty("ngIf", ctx_r4.isItemActive(item_r3));
413
- i0.ɵɵadvance();
414
- i0.ɵɵproperty("ngIf", !ctx_r4.isItemActive(item_r3));
415
- } }
416
- function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
417
- function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
418
- i0.ɵɵtemplate(0, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
419
- } }
420
- function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
421
- i0.ɵɵelementContainerStart(0);
422
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_Template, 1, 0, null, 18);
423
- i0.ɵɵelementContainerEnd();
424
- } if (rf & 2) {
425
- const ctx_r4 = i0.ɵɵnextContext(4);
426
- i0.ɵɵadvance();
427
- i0.ɵɵproperty("ngIf", !ctx_r4.submenuiconTemplate);
428
- i0.ɵɵadvance();
429
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r4.submenuiconTemplate);
430
- } }
431
- function PanelMenu_ng_container_2_div_1_a_5_span_2_Template(rf, ctx) { if (rf & 1) {
432
- i0.ɵɵelement(0, "span", 21);
433
- } if (rf & 2) {
434
- const item_r3 = i0.ɵɵnextContext(3).$implicit;
435
- const ctx_r4 = i0.ɵɵnextContext();
436
- i0.ɵɵproperty("ngClass", item_r3.icon)("ngStyle", ctx_r4.getItemProp(item_r3, "iconStyle"));
437
- } }
438
- function PanelMenu_ng_container_2_div_1_a_5_span_3_Template(rf, ctx) { if (rf & 1) {
439
- i0.ɵɵelementStart(0, "span", 22);
440
- i0.ɵɵtext(1);
441
- i0.ɵɵelementEnd();
442
- } if (rf & 2) {
443
- const item_r3 = i0.ɵɵnextContext(3).$implicit;
444
- const ctx_r4 = i0.ɵɵnextContext();
445
- i0.ɵɵadvance();
446
- i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "label"));
447
- } }
448
- function PanelMenu_ng_container_2_div_1_a_5_ng_template_4_Template(rf, ctx) { if (rf & 1) {
449
- i0.ɵɵelement(0, "span", 23);
450
- } if (rf & 2) {
451
- const item_r3 = i0.ɵɵnextContext(3).$implicit;
452
- const ctx_r4 = i0.ɵɵnextContext();
453
- i0.ɵɵproperty("innerHTML", ctx_r4.getItemProp(item_r3, "label"), i0.ɵɵsanitizeHtml);
454
- } }
455
- function PanelMenu_ng_container_2_div_1_a_5_span_6_Template(rf, ctx) { if (rf & 1) {
456
- i0.ɵɵelementStart(0, "span", 24);
457
- i0.ɵɵtext(1);
458
- i0.ɵɵelementEnd();
459
- } if (rf & 2) {
460
- const item_r3 = i0.ɵɵnextContext(3).$implicit;
461
- const ctx_r4 = i0.ɵɵnextContext();
462
- i0.ɵɵproperty("ngClass", ctx_r4.getItemProp(item_r3, "badgeStyleClass"));
463
- i0.ɵɵadvance();
464
- i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "badge"));
465
- } }
466
- function PanelMenu_ng_container_2_div_1_a_5_Template(rf, ctx) { if (rf & 1) {
467
- i0.ɵɵelementStart(0, "a", 25);
468
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_a_5_span_2_Template, 1, 2, "span", 15)(3, PanelMenu_ng_container_2_div_1_a_5_span_3_Template, 2, 1, "span", 16)(4, PanelMenu_ng_container_2_div_1_a_5_ng_template_4_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(6, PanelMenu_ng_container_2_div_1_a_5_span_6_Template, 2, 2, "span", 17);
469
- i0.ɵɵelementEnd();
470
- } if (rf & 2) {
471
- const htmlRouteLabel_r7 = i0.ɵɵreference(5);
472
- const item_r3 = i0.ɵɵnextContext(2).$implicit;
473
- const ctx_r4 = i0.ɵɵnextContext();
474
- i0.ɵɵproperty("routerLink", ctx_r4.getItemProp(item_r3, "routerLink"))("queryParams", ctx_r4.getItemProp(item_r3, "queryParams"))("routerLinkActive", "p-panelmenu-item-link-active")("routerLinkActiveOptions", ctx_r4.getItemProp(item_r3, "routerLinkActiveOptions") || i0.ɵɵpureFunction0(18, _c3))("target", ctx_r4.getItemProp(item_r3, "target"))("fragment", ctx_r4.getItemProp(item_r3, "fragment"))("queryParamsHandling", ctx_r4.getItemProp(item_r3, "queryParamsHandling"))("preserveFragment", ctx_r4.getItemProp(item_r3, "preserveFragment"))("skipLocationChange", ctx_r4.getItemProp(item_r3, "skipLocationChange"))("replaceUrl", ctx_r4.getItemProp(item_r3, "replaceUrl"))("state", ctx_r4.getItemProp(item_r3, "state"));
475
- i0.ɵɵattribute("tabindex", -1)("data-pc-section", "headeraction");
476
- i0.ɵɵadvance();
477
- i0.ɵɵproperty("ngIf", ctx_r4.isItemGroup(item_r3));
478
- i0.ɵɵadvance();
479
- i0.ɵɵproperty("ngIf", item_r3.icon);
480
- i0.ɵɵadvance();
481
- i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "escape") !== false)("ngIfElse", htmlRouteLabel_r7);
482
- i0.ɵɵadvance(3);
483
- i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "badge"));
484
- } }
485
- function PanelMenu_ng_container_2_div_1_div_6_Template(rf, ctx) { if (rf & 1) {
486
- const _r8 = i0.ɵɵgetCurrentView();
487
- i0.ɵɵelementStart(0, "div", 26);
488
- i0.ɵɵlistener("@rootItem.done", function PanelMenu_ng_container_2_div_1_div_6_Template_div_animation_rootItem_done_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.onToggleDone()); });
489
- i0.ɵɵelementStart(1, "div", 27)(2, "p-panelMenuList", 28);
490
- i0.ɵɵlistener("headerFocus", function PanelMenu_ng_container_2_div_1_div_6_Template_p_panelMenuList_headerFocus_2_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.updateFocusedHeader($event)); });
491
- i0.ɵɵelementEnd()()();
492
- } if (rf & 2) {
493
- const ctx_r1 = i0.ɵɵnextContext(2);
494
- const item_r3 = ctx_r1.$implicit;
495
- const i_r4 = ctx_r1.index;
496
- const ctx_r4 = i0.ɵɵnextContext();
497
- i0.ɵɵproperty("@rootItem", ctx_r4.getAnimation(item_r3))("ngClass", i0.ɵɵpureFunction1(14, _c10, ctx_r4.isItemActive(item_r3)));
498
- i0.ɵɵattribute("id", ctx_r4.getContentId(item_r3, i_r4))("aria-labelledby", ctx_r4.getHeaderId(item_r3, i_r4))("data-pc-section", "toggleablecontent");
499
- i0.ɵɵadvance();
500
- i0.ɵɵattribute("data-pc-section", "menucontent");
501
- i0.ɵɵadvance();
502
- i0.ɵɵproperty("panelId", ctx_r4.getPanelId(i_r4, item_r3))("items", ctx_r4.getItemProp(item_r3, "items"))("itemTemplate", ctx_r4.itemTemplate)("transitionOptions", ctx_r4.transitionOptions)("root", true)("activeItem", ctx_r4.activeItem())("tabindex", ctx_r4.tabindex)("parentExpanded", ctx_r4.isItemActive(item_r3));
503
- } }
504
- function PanelMenu_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {
505
- const _r1 = i0.ɵɵgetCurrentView();
506
- i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
507
- i0.ɵɵlistener("click", function PanelMenu_ng_container_2_div_1_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const item_r3 = ctx_r1.$implicit; const i_r4 = ctx_r1.index; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onHeaderClick($event, item_r3, i_r4)); })("keydown", function PanelMenu_ng_container_2_div_1_Template_div_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const item_r3 = ctx_r1.$implicit; const i_r4 = ctx_r1.index; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onHeaderKeyDown($event, item_r3, i_r4)); });
508
- i0.ɵɵelementStart(2, "div", 8);
509
- i0.ɵɵtemplate(3, PanelMenu_ng_container_2_div_1_ng_container_3_Template, 2, 1, "ng-container", 9)(4, PanelMenu_ng_container_2_div_1_ng_container_4_Template, 1, 0, "ng-container", 10)(5, PanelMenu_ng_container_2_div_1_a_5_Template, 7, 19, "a", 11);
510
- i0.ɵɵelementEnd()();
511
- i0.ɵɵtemplate(6, PanelMenu_ng_container_2_div_1_div_6_Template, 3, 16, "div", 12);
512
- i0.ɵɵelementEnd();
513
- } if (rf & 2) {
514
- const ctx_r1 = i0.ɵɵnextContext();
515
- const item_r3 = ctx_r1.$implicit;
516
- const i_r4 = ctx_r1.index;
517
- const ctx_r4 = i0.ɵɵnextContext();
518
- i0.ɵɵproperty("ngClass", ctx_r4.getItemProp(item_r3, "headerClass"))("ngStyle", ctx_r4.getItemProp(item_r3, "style"));
519
- i0.ɵɵattribute("data-pc-section", "panel");
520
- i0.ɵɵadvance();
521
- i0.ɵɵclassMap(ctx_r4.getItemProp(item_r3, "styleClass"));
522
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(23, _c9, ctx_r4.isItemActive(item_r3) && !!item_r3.items, ctx_r4.isItemDisabled(item_r3)))("ngStyle", ctx_r4.getItemProp(item_r3, "style"))("pTooltip", ctx_r4.getItemProp(item_r3, "tooltip"))("tabindex", 0)("tooltipOptions", ctx_r4.getItemProp(item_r3, "tooltipOptions"));
523
- i0.ɵɵattribute("id", ctx_r4.getHeaderId(item_r3, i_r4))("aria-expanded", ctx_r4.isItemActive(item_r3))("aria-label", ctx_r4.getItemProp(item_r3, "label"))("aria-controls", ctx_r4.getContentId(item_r3, i_r4))("aria-disabled", ctx_r4.isItemDisabled(item_r3))("data-p-highlight", ctx_r4.isItemActive(item_r3))("data-p-disabled", ctx_r4.isItemDisabled(item_r3))("data-pc-section", "header");
524
- i0.ɵɵadvance(2);
525
- i0.ɵɵproperty("ngIf", !ctx_r4.itemTemplate);
526
- i0.ɵɵadvance();
527
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r4.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(26, _c4, item_r3));
528
- i0.ɵɵadvance();
529
- i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "routerLink"));
530
- i0.ɵɵadvance();
531
- i0.ɵɵproperty("ngIf", ctx_r4.isItemGroup(item_r3));
532
- } }
533
- function PanelMenu_ng_container_2_Template(rf, ctx) { if (rf & 1) {
534
- i0.ɵɵelementContainerStart(0);
535
- i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_Template, 7, 28, "div", 5);
536
- i0.ɵɵelementContainerEnd();
537
- } if (rf & 2) {
538
- const item_r3 = ctx.$implicit;
539
- const ctx_r4 = i0.ɵɵnextContext();
540
- i0.ɵɵadvance();
541
- i0.ɵɵproperty("ngIf", ctx_r4.isItemVisible(item_r3));
542
- } }
543
- export class PanelMenuSub extends BaseComponent {
544
- panelId;
545
- focusedItemId;
546
- items;
547
- itemTemplate;
548
- level = 0;
549
- activeItemPath;
550
- root;
551
- tabindex;
552
- transitionOptions;
553
- parentExpanded;
554
- itemToggle = new EventEmitter();
555
- menuFocus = new EventEmitter();
556
- menuBlur = new EventEmitter();
557
- menuKeyDown = new EventEmitter();
558
- listViewChild;
559
- panelMenu = inject(forwardRef(() => PanelMenu));
560
- getItemId(processedItem) {
561
- return processedItem.item?.id ?? `${this.panelId}_${processedItem.key}`;
562
- }
563
- getItemKey(processedItem) {
564
- return this.getItemId(processedItem);
565
- }
566
- getItemClass(processedItem) {
567
- return {
568
- 'p-panelmenu-item': true,
569
- 'p-disabled': this.isItemDisabled(processedItem),
570
- 'p-focus': this.isItemFocused(processedItem)
571
- };
572
- }
573
- getItemProp(processedItem, name, params) {
574
- return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;
575
- }
576
- getItemLabel(processedItem) {
577
- return this.getItemProp(processedItem, 'label');
578
- }
579
- isItemExpanded(processedItem) {
580
- return processedItem.expanded;
581
- }
582
- isItemActive(processedItem) {
583
- return this.isItemExpanded(processedItem) || this.activeItemPath.some((path) => path && path.key === processedItem.key);
584
- }
585
- isItemVisible(processedItem) {
586
- return this.getItemProp(processedItem, 'visible') !== false;
587
- }
588
- isItemDisabled(processedItem) {
589
- return this.getItemProp(processedItem, 'disabled');
590
- }
591
- isItemFocused(processedItem) {
592
- return this.focusedItemId === this.getItemId(processedItem);
593
- }
594
- isItemGroup(processedItem) {
595
- return isNotEmpty(processedItem.items);
596
- }
597
- getAnimation(processedItem) {
598
- return this.isItemActive(processedItem) ? { value: 'visible', params: { transitionParams: this.transitionOptions, height: '*' } } : { value: 'hidden', params: { transitionParams: this.transitionOptions, height: '0' } };
599
- }
600
- getAriaSetSize() {
601
- return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
602
- }
603
- getAriaPosInset(index) {
604
- return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
605
- }
606
- onItemClick(event, processedItem) {
607
- if (!this.isItemDisabled(processedItem)) {
608
- this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
609
- this.itemToggle.emit({ processedItem, expanded: !this.isItemActive(processedItem) });
610
- }
611
- }
612
- onItemToggle(event) {
613
- this.itemToggle.emit(event);
614
- }
615
- static ɵfac = /*@__PURE__*/ (() => { let ɵPanelMenuSub_BaseFactory; return function PanelMenuSub_Factory(__ngFactoryType__) { return (ɵPanelMenuSub_BaseFactory || (ɵPanelMenuSub_BaseFactory = i0.ɵɵgetInheritedFactory(PanelMenuSub)))(__ngFactoryType__ || PanelMenuSub); }; })();
616
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelMenuSub, selectors: [["p-panelMenuSub"], ["p-panelmenu-sub"]], viewQuery: function PanelMenuSub_Query(rf, ctx) { if (rf & 1) {
617
- i0.ɵɵviewQuery(_c0, 5);
618
- } if (rf & 2) {
619
- let _t;
620
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listViewChild = _t.first);
621
- } }, inputs: { panelId: "panelId", focusedItemId: "focusedItemId", items: "items", itemTemplate: "itemTemplate", level: [2, "level", "level", numberAttribute], activeItemPath: "activeItemPath", root: [2, "root", "root", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], transitionOptions: "transitionOptions", parentExpanded: [2, "parentExpanded", "parentExpanded", booleanAttribute] }, outputs: { itemToggle: "itemToggle", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeyDown: "menuKeyDown" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 7, consts: [["list", ""], ["htmlLabel", ""], ["htmlRouteLabel", ""], ["role", "tree", 3, "focusin", "focusout", "keydown", "ngClass", "tabindex"], ["ngFor", "", 3, "ngForOf"], ["class", "p-menuitem-separator", "role", "separator", 4, "ngIf"], ["role", "treeitem", 3, "ngClass", "class", "p-hidden", "p-focus", "ngStyle", "pTooltip", "tooltipOptions", 4, "ngIf"], ["role", "separator", 1, "p-menuitem-separator"], ["role", "treeitem", 3, "ngClass", "ngStyle", "pTooltip", "tooltipOptions"], [1, "p-panelmenu-item-content", 3, "click"], [4, "ngIf"], [1, "p-toggleable-content"], [3, "id", "panelId", "items", "itemTemplate", "transitionOptions", "focusedItemId", "activeItemPath", "level", "parentExpanded", "itemToggle", 4, "ngIf"], ["class", "p-panelmenu-item-link", 3, "ngClass", "target", 4, "ngIf"], ["class", "p-panelmenu-item-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "ngClass", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", 4, "ngIf"], [1, "p-panelmenu-item-link", 3, "ngClass", "target"], ["class", "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle", 4, "ngIf"], ["class", "p-panelmenu-item-label", 4, "ngIf", "ngIfElse"], ["class", "p-menuitem-badge", 3, "ngClass", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass", "ngStyle", 4, "ngIf"], [3, "styleClass", "ngStyle"], [1, "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle"], [1, "p-panelmenu-item-label"], [1, "p-panelmenu-item-label", 3, "innerHTML"], [1, "p-menuitem-badge", 3, "ngClass"], [1, "p-panelmenu-item-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "ngClass", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "itemToggle", "id", "panelId", "items", "itemTemplate", "transitionOptions", "focusedItemId", "activeItemPath", "level", "parentExpanded"]], template: function PanelMenuSub_Template(rf, ctx) { if (rf & 1) {
622
- const _r1 = i0.ɵɵgetCurrentView();
623
- i0.ɵɵelementStart(0, "ul", 3, 0);
624
- i0.ɵɵlistener("focusin", function PanelMenuSub_Template_ul_focusin_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.menuFocus.emit($event)); })("focusout", function PanelMenuSub_Template_ul_focusout_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.menuBlur.emit($event)); })("keydown", function PanelMenuSub_Template_ul_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.menuKeyDown.emit($event)); });
625
- i0.ɵɵtemplate(2, PanelMenuSub_ng_template_2_Template, 2, 2, "ng-template", 4);
626
- i0.ɵɵelementEnd();
627
- } if (rf & 2) {
628
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction0(6, _c1))("tabindex", -1);
629
- i0.ɵɵattribute("aria-activedescendant", ctx.focusedItemId)("data-pc-section", "menu")("aria-hidden", !ctx.parentExpanded);
630
- i0.ɵɵadvance(2);
631
- i0.ɵɵproperty("ngForOf", ctx.items);
632
- } }, dependencies: [PanelMenuSub, CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, RouterModule, i2.RouterLink, i2.RouterLinkActive, TooltipModule, i3.Tooltip, AngleDownIcon, AngleRightIcon, SharedModule], encapsulation: 2, data: { animation: [
633
- trigger('submenu', [
634
- state('hidden', style({
635
- height: '0'
636
- })),
637
- state('visible', style({
638
- height: '*'
639
- })),
640
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
641
- transition('void => *', animate(0))
642
- ])
643
- ] } });
644
- }
645
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenuSub, [{
646
- type: Component,
647
- args: [{
648
- selector: 'p-panelMenuSub, p-panelmenu-sub',
649
- imports: [CommonModule, RouterModule, TooltipModule, AngleDownIcon, AngleRightIcon, ChevronDownIcon, ChevronRightIcon, SharedModule],
650
- standalone: true,
651
- template: `
652
- <ul
653
- #list
654
- [ngClass]="{ 'p-panelmenu-submenu': true }"
655
- role="tree"
656
- [tabindex]="-1"
657
- [attr.aria-activedescendant]="focusedItemId"
658
- [attr.data-pc-section]="'menu'"
659
- [attr.aria-hidden]="!parentExpanded"
660
- (focusin)="menuFocus.emit($event)"
661
- (focusout)="menuBlur.emit($event)"
662
- (keydown)="menuKeyDown.emit($event)"
663
- >
664
- <ng-template ngFor let-processedItem let-index="index" [ngForOf]="items">
665
- <li *ngIf="processedItem.separator" class="p-menuitem-separator" role="separator"></li>
666
- <li
667
- *ngIf="!processedItem.separator && isItemVisible(processedItem)"
668
- [ngClass]="getItemClass(processedItem)"
669
- role="treeitem"
670
- [attr.id]="getItemId(processedItem)"
671
- [attr.aria-label]="getItemProp(processedItem, 'label')"
672
- [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
673
- [attr.aria-level]="level + 1"
674
- [attr.aria-setsize]="getAriaSetSize()"
675
- [attr.aria-posinset]="getAriaPosInset(index)"
676
- [class]="getItemProp(processedItem, 'styleClass')"
677
- [class.p-hidden]="processedItem.visible === false"
678
- [class.p-focus]="isItemFocused(processedItem) && !isItemDisabled(processedItem)"
679
- [ngStyle]="getItemProp(processedItem, 'style')"
680
- [pTooltip]="getItemProp(processedItem, 'tooltip')"
681
- [attr.data-p-disabled]="isItemDisabled(processedItem)"
682
- [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
683
- >
684
- <div class="p-panelmenu-item-content" (click)="onItemClick($event, processedItem)">
685
- <ng-container *ngIf="!itemTemplate">
686
- <a
687
- *ngIf="!getItemProp(processedItem, 'routerLink')"
688
- [attr.href]="getItemProp(processedItem, 'url')"
689
- class="p-panelmenu-item-link"
690
- [ngClass]="{ 'p-disabled': getItemProp(processedItem, 'disabled') }"
691
- [target]="getItemProp(processedItem, 'target')"
692
- [attr.data-pc-section]="'action'"
693
- [attr.tabindex]="!!parentExpanded ? '0' : '-1'"
694
- >
695
- <ng-container *ngIf="isItemGroup(processedItem)">
696
- <ng-container *ngIf="!panelMenu.submenuiconTemplate">
697
- <AngleDownIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
698
- <AngleRightIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="!isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
699
- </ng-container>
700
- <ng-template *ngTemplateOutlet="panelMenu.submenuiconTemplate"></ng-template>
701
- </ng-container>
702
- <span class="p-panelmenu-submenu-icon" [ngClass]="processedItem.icon" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
703
- <span class="p-panelmenu-item-label" *ngIf="processedItem.item?.escape !== false; else htmlLabel">{{ getItemProp(processedItem, 'label') }}</span>
704
- <ng-template #htmlLabel><span class="p-panelmenu-item-label" [innerHTML]="getItemProp(processedItem, 'label')"></span></ng-template>
705
- <span class="p-menuitem-badge" *ngIf="processedItem.badge" [ngClass]="processedItem.badgeStyleClass">{{ processedItem.badge }}</span>
706
- </a>
707
- <a
708
- *ngIf="getItemProp(processedItem, 'routerLink')"
709
- [routerLink]="getItemProp(processedItem, 'routerLink')"
710
- [queryParams]="getItemProp(processedItem, 'queryParams')"
711
- [routerLinkActive]="'p-panelmenu-item-link-active'"
712
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
713
- class="p-panelmenu-item-link"
714
- [ngClass]="{ 'p-disabled': getItemProp(processedItem, 'disabled') }"
715
- [target]="getItemProp(processedItem, 'target')"
716
- [attr.title]="getItemProp(processedItem, 'title')"
717
- [fragment]="getItemProp(processedItem, 'fragment')"
718
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
719
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
720
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
721
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
722
- [state]="getItemProp(processedItem, 'state')"
723
- [attr.data-pc-section]="'action'"
724
- [attr.tabindex]="!!parentExpanded ? '0' : '-1'"
725
- >
726
- <ng-container *ngIf="isItemGroup(processedItem)">
727
- <ng-container *ngIf="!panelMenu.submenuiconTemplate">
728
- <AngleDownIcon *ngIf="isItemActive(processedItem)" [styleClass]="'p-panelmenu-submenu-icon'" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
729
- <AngleRightIcon *ngIf="!isItemActive(processedItem)" [styleClass]="'p-panelmenu-submenu-icon'" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
730
- </ng-container>
731
- <ng-template *ngTemplateOutlet="panelMenu.submenuiconTemplate"></ng-template>
732
- </ng-container>
733
- <span class="p-panelmenu-submenu-icon" [ngClass]="processedItem.icon" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
734
- <span class="p-panelmenu-item-label" *ngIf="getItemProp(processedItem, 'escape') !== false; else htmlRouteLabel">{{ getItemProp(processedItem, 'label') }}</span>
735
- <ng-template #htmlRouteLabel><span class="p-panelmenu-item-label" [innerHTML]="getItemProp(processedItem, 'label')"></span></ng-template>
736
- <span class="p-menuitem-badge" *ngIf="processedItem.badge" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
737
- </a>
738
- </ng-container>
739
- <ng-container *ngIf="itemTemplate">
740
- <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
741
- </ng-container>
742
- </div>
743
- <div class="p-toggleable-content" [@submenu]="getAnimation(processedItem)">
744
- <p-panelmenu-sub
745
- *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem) && isItemExpanded(processedItem)"
746
- [id]="getItemId(processedItem) + '_list'"
747
- [panelId]="panelId"
748
- [items]="processedItem?.items"
749
- [itemTemplate]="itemTemplate"
750
- [transitionOptions]="transitionOptions"
751
- [focusedItemId]="focusedItemId"
752
- [activeItemPath]="activeItemPath"
753
- [level]="level + 1"
754
- [parentExpanded]="!!parentExpanded && isItemExpanded(processedItem)"
755
- (itemToggle)="onItemToggle($event)"
756
- ></p-panelmenu-sub>
757
- </div>
758
- </li>
759
- </ng-template>
760
- </ul>
761
- `,
762
- animations: [
763
- trigger('submenu', [
764
- state('hidden', style({
765
- height: '0'
766
- })),
767
- state('visible', style({
768
- height: '*'
769
- })),
770
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
771
- transition('void => *', animate(0))
772
- ])
773
- ],
774
- encapsulation: ViewEncapsulation.None
775
- }]
776
- }], null, { panelId: [{
777
- type: Input
778
- }], focusedItemId: [{
779
- type: Input
780
- }], items: [{
781
- type: Input
782
- }], itemTemplate: [{
783
- type: Input
784
- }], level: [{
785
- type: Input,
786
- args: [{ transform: numberAttribute }]
787
- }], activeItemPath: [{
788
- type: Input
789
- }], root: [{
790
- type: Input,
791
- args: [{ transform: booleanAttribute }]
792
- }], tabindex: [{
793
- type: Input,
794
- args: [{ transform: numberAttribute }]
795
- }], transitionOptions: [{
796
- type: Input
797
- }], parentExpanded: [{
798
- type: Input,
799
- args: [{ transform: booleanAttribute }]
800
- }], itemToggle: [{
801
- type: Output
802
- }], menuFocus: [{
803
- type: Output
804
- }], menuBlur: [{
805
- type: Output
806
- }], menuKeyDown: [{
807
- type: Output
808
- }], listViewChild: [{
809
- type: ViewChild,
810
- args: ['list']
811
- }] }); })();
812
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelMenuSub, { className: "PanelMenuSub" }); })();
813
- export class PanelMenuList extends BaseComponent {
814
- panelId;
815
- id;
816
- items;
817
- itemTemplate;
818
- parentExpanded;
819
- expanded;
820
- transitionOptions;
821
- root;
822
- tabindex;
823
- activeItem;
824
- itemToggle = new EventEmitter();
825
- headerFocus = new EventEmitter();
826
- subMenuViewChild;
827
- searchTimeout;
828
- searchValue;
829
- focused;
830
- focusedItem = signal(null);
831
- activeItemPath = signal([]);
832
- processedItems = signal([]);
833
- visibleItems = computed(() => {
834
- const processedItems = this.processedItems();
835
- return this.flatItems(processedItems);
836
- });
837
- get focusedItemId() {
838
- const focusedItem = this.focusedItem();
839
- return focusedItem && focusedItem.item?.id ? focusedItem.item.id : isNotEmpty(this.focusedItem()) ? `${this.panelId}_${this.focusedItem().key}` : undefined;
840
- }
841
- ngOnChanges(changes) {
842
- this.processedItems.set(this.createProcessedItems(changes?.items?.currentValue || this.items || []));
843
- }
844
- getItemProp(processedItem, name) {
845
- return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;
846
- }
847
- getItemLabel(processedItem) {
848
- return this.getItemProp(processedItem, 'label');
849
- }
850
- isItemVisible(processedItem) {
851
- return this.getItemProp(processedItem, 'visible') !== false;
852
- }
853
- isItemDisabled(processedItem) {
854
- return this.getItemProp(processedItem, 'disabled');
855
- }
856
- isItemActive(processedItem) {
857
- return this.activeItemPath().some((path) => path.key === processedItem.parentKey);
858
- }
859
- isItemGroup(processedItem) {
860
- return isNotEmpty(processedItem.items);
861
- }
862
- isElementInPanel(event, element) {
863
- const panel = event.currentTarget.closest('[data-pc-section="panel"]');
864
- return panel && panel.contains(element);
865
- }
866
- isItemMatched(processedItem) {
867
- return this.isValidItem(processedItem) && this.getItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());
868
- }
869
- isVisibleItem(processedItem) {
870
- return !!processedItem && (processedItem.level === 0 || this.isItemActive(processedItem)) && this.isItemVisible(processedItem);
871
- }
872
- isValidItem(processedItem) {
873
- return !!processedItem && !this.isItemDisabled(processedItem) && !processedItem.separator;
874
- }
875
- findFirstItem() {
876
- return this.visibleItems().find((processedItem) => this.isValidItem(processedItem));
877
- }
878
- findLastItem() {
879
- return findLast(this.visibleItems(), (processedItem) => this.isValidItem(processedItem));
880
- }
881
- findItemByEventTarget(target) {
882
- let parentNode = target;
883
- while (parentNode && parentNode.tagName?.toLowerCase() !== 'li') {
884
- parentNode = parentNode?.parentNode;
885
- }
886
- return parentNode?.id && this.visibleItems().find((processedItem) => this.isValidItem(processedItem) && `${this.panelId}_${processedItem.key}` === parentNode.id);
887
- }
888
- createProcessedItems(items, level = 0, parent = {}, parentKey = '') {
889
- const processedItems = [];
890
- items &&
891
- items.forEach((item, index) => {
892
- const key = (parentKey !== '' ? parentKey + '_' : '') + index;
893
- const newItem = {
894
- icon: item.icon,
895
- expanded: item.expanded,
896
- separator: item.separator,
897
- item,
898
- index,
899
- level,
900
- key,
901
- parent,
902
- parentKey
903
- };
904
- newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);
905
- processedItems.push(newItem);
906
- });
907
- return processedItems;
908
- }
909
- findProcessedItemByItemKey(key, processedItems, level = 0) {
910
- processedItems = processedItems || this.processedItems();
911
- if (processedItems && processedItems.length) {
912
- for (let i = 0; i < processedItems.length; i++) {
913
- const processedItem = processedItems[i];
914
- if (this.getItemProp(processedItem, 'key') === key)
915
- return processedItem;
916
- const matchedItem = this.findProcessedItemByItemKey(key, processedItem.items, level + 1);
917
- if (matchedItem)
918
- return matchedItem;
919
- }
920
- }
921
- }
922
- flatItems(processedItems, processedFlattenItems = []) {
923
- processedItems &&
924
- processedItems.forEach((processedItem) => {
925
- if (this.isVisibleItem(processedItem)) {
926
- processedFlattenItems.push(processedItem);
927
- this.flatItems(processedItem.items, processedFlattenItems);
928
- }
929
- });
930
- return processedFlattenItems;
931
- }
932
- changeFocusedItem(event) {
933
- const { originalEvent, processedItem, focusOnNext, selfCheck, allowHeaderFocus = true } = event;
934
- if (isNotEmpty(this.focusedItem()) && this.focusedItem().key !== processedItem.key) {
935
- this.focusedItem.set(processedItem);
936
- this.scrollInView();
937
- }
938
- else if (allowHeaderFocus) {
939
- this.headerFocus.emit({ originalEvent, focusOnNext, selfCheck });
940
- }
941
- }
942
- scrollInView() {
943
- const element = findSingle(this.subMenuViewChild.listViewChild.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
944
- if (element) {
945
- element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
946
- }
947
- }
948
- onFocus(event) {
949
- if (!this.focused) {
950
- this.focused = true;
951
- const focusedItem = this.focusedItem() || (this.isElementInPanel(event, event.relatedTarget) ? this.findItemByEventTarget(event.target) || this.findFirstItem() : this.findLastItem());
952
- if (event.relatedTarget !== null)
953
- this.focusedItem.set(focusedItem);
954
- }
955
- }
956
- onBlur(event) {
957
- const target = event.relatedTarget;
958
- if (this.focused && !this.el.nativeElement.contains(target)) {
959
- this.focused = false;
960
- this.focusedItem.set(null);
961
- this.searchValue = '';
962
- }
963
- }
964
- onItemToggle(event) {
965
- const { processedItem, expanded } = event;
966
- // Update the original item object's 'expanded' property
967
- if (processedItem.item) {
968
- processedItem.item.expanded = !processedItem.item.expanded;
969
- }
970
- // Recreate processedItems with updated 'expanded' states
971
- this.processedItems.set(this.createProcessedItems(this.items || [], 0, {}, ''));
972
- // Update activeItemPath
973
- const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== processedItem.parentKey);
974
- if (expanded) {
975
- activeItemPath.push(processedItem);
976
- }
977
- this.activeItemPath.set(activeItemPath);
978
- // Update focusedItem
979
- this.focusedItem.set(processedItem);
980
- }
981
- onKeyDown(event) {
982
- const metaKey = event.metaKey || event.ctrlKey;
983
- switch (event.code) {
984
- case 'ArrowDown':
985
- this.onArrowDownKey(event);
986
- break;
987
- case 'ArrowUp':
988
- this.onArrowUpKey(event);
989
- break;
990
- case 'ArrowLeft':
991
- this.onArrowLeftKey(event);
992
- break;
993
- case 'ArrowRight':
994
- this.onArrowRightKey(event);
995
- break;
996
- case 'Home':
997
- this.onHomeKey(event);
998
- break;
999
- case 'End':
1000
- this.onEndKey(event);
1001
- break;
1002
- case 'Space':
1003
- this.onSpaceKey(event);
1004
- break;
1005
- case 'Enter':
1006
- this.onEnterKey(event);
1007
- break;
1008
- case 'Escape':
1009
- case 'Tab':
1010
- case 'PageDown':
1011
- case 'PageUp':
1012
- case 'Backspace':
1013
- case 'ShiftLeft':
1014
- case 'ShiftRight':
1015
- //NOOP
1016
- break;
1017
- default:
1018
- if (!metaKey && isPrintableCharacter(event.key)) {
1019
- this.searchItems(event, event.key);
1020
- }
1021
- break;
1022
- }
1023
- }
1024
- onArrowDownKey(event) {
1025
- const processedItem = isNotEmpty(this.focusedItem()) ? this.findNextItem(this.focusedItem()) : this.findFirstItem();
1026
- this.changeFocusedItem({ originalEvent: event, processedItem, focusOnNext: true });
1027
- event.preventDefault();
1028
- }
1029
- onArrowUpKey(event) {
1030
- const processedItem = isNotEmpty(this.focusedItem()) ? this.findPrevItem(this.focusedItem()) : this.findLastItem();
1031
- this.changeFocusedItem({ originalEvent: event, processedItem, selfCheck: true });
1032
- event.preventDefault();
1033
- }
1034
- onArrowLeftKey(event) {
1035
- if (isNotEmpty(this.focusedItem())) {
1036
- const matched = this.activeItemPath().some((p) => p.key === this.focusedItem().key);
1037
- if (matched) {
1038
- const activeItemPath = this.activeItemPath().filter((p) => p.key !== this.focusedItem().key);
1039
- this.activeItemPath.set(activeItemPath);
1040
- }
1041
- else {
1042
- const focusedItem = isNotEmpty(this.focusedItem().parent) ? this.focusedItem().parent : this.focusedItem();
1043
- this.focusedItem.set(focusedItem);
1044
- }
1045
- event.preventDefault();
1046
- }
1047
- }
1048
- onArrowRightKey(event) {
1049
- if (isNotEmpty(this.focusedItem())) {
1050
- const grouped = this.isItemGroup(this.focusedItem());
1051
- if (grouped) {
1052
- const matched = this.activeItemPath().some((p) => p.key === this.focusedItem().key);
1053
- if (matched) {
1054
- this.onArrowDownKey(event);
1055
- }
1056
- else {
1057
- const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== this.focusedItem().parentKey);
1058
- activeItemPath.push(this.focusedItem());
1059
- this.activeItemPath.set(activeItemPath);
1060
- }
1061
- }
1062
- event.preventDefault();
1063
- }
1064
- }
1065
- onHomeKey(event) {
1066
- this.changeFocusedItem({ originalEvent: event, processedItem: this.findFirstItem(), allowHeaderFocus: false });
1067
- event.preventDefault();
1068
- }
1069
- onEndKey(event) {
1070
- this.changeFocusedItem({ originalEvent: event, processedItem: this.findLastItem(), focusOnNext: true, allowHeaderFocus: false });
1071
- event.preventDefault();
1072
- }
1073
- onEnterKey(event) {
1074
- if (isNotEmpty(this.focusedItem())) {
1075
- const element = findSingle(this.subMenuViewChild.listViewChild.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
1076
- const anchorElement = element && (findSingle(element, '[data-pc-section="action"]') || findSingle(element, 'a,button'));
1077
- anchorElement ? anchorElement.click() : element && element.click();
1078
- }
1079
- event.preventDefault();
1080
- }
1081
- onSpaceKey(event) {
1082
- this.onEnterKey(event);
1083
- }
1084
- findNextItem(processedItem) {
1085
- const index = this.visibleItems().findIndex((item) => item.key === processedItem.key);
1086
- const matchedItem = index < this.visibleItems().length - 1
1087
- ? this.visibleItems()
1088
- .slice(index + 1)
1089
- .find((pItem) => this.isValidItem(pItem))
1090
- : undefined;
1091
- return matchedItem || processedItem;
1092
- }
1093
- findPrevItem(processedItem) {
1094
- const index = this.visibleItems().findIndex((item) => item.key === processedItem.key);
1095
- const matchedItem = index > 0 ? findLast(this.visibleItems().slice(0, index), (pItem) => this.isValidItem(pItem)) : undefined;
1096
- return matchedItem || processedItem;
1097
- }
1098
- searchItems(event, char) {
1099
- this.searchValue = (this.searchValue || '') + char;
1100
- let matchedItem = null;
1101
- let matched = false;
1102
- if (isNotEmpty(this.focusedItem())) {
1103
- const focusedItemIndex = this.visibleItems().findIndex((processedItem) => processedItem.key === this.focusedItem().key);
1104
- matchedItem = this.visibleItems()
1105
- .slice(focusedItemIndex)
1106
- .find((processedItem) => this.isItemMatched(processedItem));
1107
- matchedItem = isEmpty(matchedItem)
1108
- ? this.visibleItems()
1109
- .slice(0, focusedItemIndex)
1110
- .find((processedItem) => this.isItemMatched(processedItem))
1111
- : matchedItem;
1112
- }
1113
- else {
1114
- matchedItem = this.visibleItems().find((processedItem) => this.isItemMatched(processedItem));
1115
- }
1116
- if (isNotEmpty(matchedItem)) {
1117
- matched = true;
1118
- }
1119
- if (isEmpty(matchedItem) && isEmpty(this.focusedItem())) {
1120
- matchedItem = this.findFirstItem();
1121
- }
1122
- if (isNotEmpty(matchedItem)) {
1123
- this.changeFocusedItem({
1124
- originalEvent: event,
1125
- processedItem: matchedItem,
1126
- allowHeaderFocus: false
1127
- });
1128
- }
1129
- if (this.searchTimeout) {
1130
- clearTimeout(this.searchTimeout);
1131
- }
1132
- this.searchTimeout = setTimeout(() => {
1133
- this.searchValue = '';
1134
- this.searchTimeout = null;
1135
- }, 500);
1136
- return matched;
1137
- }
1138
- static ɵfac = /*@__PURE__*/ (() => { let ɵPanelMenuList_BaseFactory; return function PanelMenuList_Factory(__ngFactoryType__) { return (ɵPanelMenuList_BaseFactory || (ɵPanelMenuList_BaseFactory = i0.ɵɵgetInheritedFactory(PanelMenuList)))(__ngFactoryType__ || PanelMenuList); }; })();
1139
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelMenuList, selectors: [["p-panelMenuList"], ["p-panel-menu-list"]], viewQuery: function PanelMenuList_Query(rf, ctx) { if (rf & 1) {
1140
- i0.ɵɵviewQuery(_c5, 5);
1141
- } if (rf & 2) {
1142
- let _t;
1143
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.subMenuViewChild = _t.first);
1144
- } }, inputs: { panelId: "panelId", id: "id", items: "items", itemTemplate: "itemTemplate", parentExpanded: [2, "parentExpanded", "parentExpanded", booleanAttribute], expanded: [2, "expanded", "expanded", booleanAttribute], transitionOptions: "transitionOptions", root: [2, "root", "root", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], activeItem: "activeItem" }, outputs: { itemToggle: "itemToggle", headerFocus: "headerFocus" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 10, consts: [["submenu", ""], [3, "itemToggle", "keydown", "menuFocus", "menuBlur", "root", "id", "panelId", "tabindex", "itemTemplate", "focusedItemId", "activeItemPath", "transitionOptions", "items", "parentExpanded"]], template: function PanelMenuList_Template(rf, ctx) { if (rf & 1) {
1145
- const _r1 = i0.ɵɵgetCurrentView();
1146
- i0.ɵɵelementStart(0, "p-panelmenu-sub", 1, 0);
1147
- i0.ɵɵlistener("itemToggle", function PanelMenuList_Template_p_panelmenu_sub_itemToggle_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onItemToggle($event)); })("keydown", function PanelMenuList_Template_p_panelmenu_sub_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); })("menuFocus", function PanelMenuList_Template_p_panelmenu_sub_menuFocus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onFocus($event)); })("menuBlur", function PanelMenuList_Template_p_panelmenu_sub_menuBlur_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBlur($event)); });
1148
- i0.ɵɵelementEnd();
1149
- } if (rf & 2) {
1150
- i0.ɵɵproperty("root", true)("id", ctx.panelId + "_list")("panelId", ctx.panelId)("tabindex", ctx.tabindex)("itemTemplate", ctx.itemTemplate)("focusedItemId", ctx.focused ? ctx.focusedItemId : undefined)("activeItemPath", ctx.activeItemPath())("transitionOptions", ctx.transitionOptions)("items", ctx.processedItems())("parentExpanded", ctx.parentExpanded);
1151
- } }, dependencies: [CommonModule, PanelMenuSub, RouterModule, TooltipModule, SharedModule], encapsulation: 2, changeDetection: 0 });
1152
- }
1153
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenuList, [{
1154
- type: Component,
1155
- args: [{
1156
- selector: 'p-panelMenuList, p-panel-menu-list',
1157
- imports: [CommonModule, PanelMenuSub, RouterModule, TooltipModule, AngleDownIcon, AngleRightIcon, ChevronDownIcon, ChevronRightIcon, SharedModule],
1158
- standalone: true,
1159
- template: `
1160
- <p-panelmenu-sub
1161
- #submenu
1162
- [root]="true"
1163
- [id]="panelId + '_list'"
1164
- [panelId]="panelId"
1165
- [tabindex]="tabindex"
1166
- [itemTemplate]="itemTemplate"
1167
- [focusedItemId]="focused ? focusedItemId : undefined"
1168
- [activeItemPath]="activeItemPath()"
1169
- [transitionOptions]="transitionOptions"
1170
- [items]="processedItems()"
1171
- [parentExpanded]="parentExpanded"
1172
- (itemToggle)="onItemToggle($event)"
1173
- (keydown)="onKeyDown($event)"
1174
- (menuFocus)="onFocus($event)"
1175
- (menuBlur)="onBlur($event)"
1176
- ></p-panelmenu-sub>
1177
- `,
1178
- changeDetection: ChangeDetectionStrategy.OnPush,
1179
- encapsulation: ViewEncapsulation.None
1180
- }]
1181
- }], null, { panelId: [{
1182
- type: Input
1183
- }], id: [{
1184
- type: Input
1185
- }], items: [{
1186
- type: Input
1187
- }], itemTemplate: [{
1188
- type: Input
1189
- }], parentExpanded: [{
1190
- type: Input,
1191
- args: [{ transform: booleanAttribute }]
1192
- }], expanded: [{
1193
- type: Input,
1194
- args: [{ transform: booleanAttribute }]
1195
- }], transitionOptions: [{
1196
- type: Input
1197
- }], root: [{
1198
- type: Input,
1199
- args: [{ transform: booleanAttribute }]
1200
- }], tabindex: [{
1201
- type: Input,
1202
- args: [{ transform: numberAttribute }]
1203
- }], activeItem: [{
1204
- type: Input
1205
- }], itemToggle: [{
1206
- type: Output
1207
- }], headerFocus: [{
1208
- type: Output
1209
- }], subMenuViewChild: [{
1210
- type: ViewChild,
1211
- args: ['submenu']
1212
- }] }); })();
1213
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelMenuList, { className: "PanelMenuList" }); })();
1214
- /**
1215
- * PanelMenu is a hybrid of Accordion and Tree components.
1216
- * @group Components
1217
- */
1218
- export class PanelMenu extends BaseComponent {
1219
- /**
1220
- * An array of menuitems.
1221
- * @group Props
1222
- */
1223
- model;
1224
- /**
1225
- * Inline style of the component.
1226
- * @group Props
1227
- */
1228
- style;
1229
- /**
1230
- * Style class of the component.
1231
- * @group Props
1232
- */
1233
- styleClass;
1234
- /**
1235
- * Whether multiple tabs can be activated at the same time or not.
1236
- * @group Props
1237
- */
1238
- multiple = false;
1239
- /**
1240
- * Transition options of the animation.
1241
- * @group Props
1242
- */
1243
- transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
1244
- /**
1245
- * Current id state as a string.
1246
- * @group Props
1247
- */
1248
- id;
1249
- /**
1250
- * Index of the element in tabbing order.
1251
- * @group Props
1252
- */
1253
- tabindex = 0;
1254
- containerViewChild;
1255
- /**
1256
- * Template option of submenuicon.
1257
- * @group Templates
1258
- */
1259
- submenuiconTemplate;
1260
- /**
1261
- * Template option of item.
1262
- * @group Templates
1263
- */
1264
- itemTemplate;
1265
- animating;
1266
- activeItem = signal(null);
1267
- _componentStyle = inject(PanelMenuStyle);
1268
- ngOnInit() {
1269
- super.ngOnInit();
1270
- this.id = this.id || uuid('pn_id_');
1271
- }
1272
- /**
1273
- * Collapses open panels.
1274
- * @group Method
1275
- */
1276
- collapseAll() {
1277
- for (let item of this.model) {
1278
- if (item.expanded) {
1279
- item.expanded = false;
1280
- }
1281
- }
1282
- this.cd.detectChanges();
1283
- }
1284
- onToggleDone() {
1285
- this.animating = false;
1286
- this.cd.markForCheck();
1287
- }
1288
- changeActiveItem(event, item, index, selfActive = false) {
1289
- if (!this.isItemDisabled(item)) {
1290
- const activeItem = selfActive ? item : this.activeItem && equals(item, this.activeItem) ? null : item;
1291
- this.activeItem.set(activeItem);
1292
- }
1293
- }
1294
- getAnimation(item) {
1295
- return item.expanded ? { value: 'visible', params: { transitionParams: this.animating ? this.transitionOptions : '0ms', height: '*' } } : { value: 'hidden', params: { transitionParams: this.transitionOptions, height: '0' } };
1296
- }
1297
- getItemProp(item, name) {
1298
- return item ? resolve(item[name]) : undefined;
1299
- }
1300
- getItemLabel(item) {
1301
- return this.getItemProp(item, 'label');
1302
- }
1303
- isItemActive(item) {
1304
- return item.expanded;
1305
- }
1306
- isItemVisible(item) {
1307
- return this.getItemProp(item, 'visible') !== false;
1308
- }
1309
- isItemDisabled(item) {
1310
- return this.getItemProp(item, 'disabled');
1311
- }
1312
- isItemGroup(item) {
1313
- return isNotEmpty(item.items);
1314
- }
1315
- getPanelId(index, item) {
1316
- return item && item.id ? item.id : `${this.id}_${index}`;
1317
- }
1318
- getHeaderId(item, index) {
1319
- return item.id ? item.id + '_header' : `${this.getPanelId(index)}_header`;
1320
- }
1321
- getContentId(item, index) {
1322
- return item.id ? item.id + '_content' : `${this.getPanelId(index)}_content`;
1323
- }
1324
- updateFocusedHeader(event) {
1325
- const { originalEvent, focusOnNext, selfCheck } = event;
1326
- const panelElement = originalEvent.currentTarget.closest('[data-pc-section="panel"]');
1327
- const header = selfCheck ? findSingle(panelElement, '[data-pc-section="header"]') : focusOnNext ? this.findNextHeader(panelElement) : this.findPrevHeader(panelElement);
1328
- header ? this.changeFocusedHeader(originalEvent, header) : focusOnNext ? this.onHeaderHomeKey(originalEvent) : this.onHeaderEndKey(originalEvent);
1329
- }
1330
- changeFocusedHeader(event, element) {
1331
- element && focus(element);
1332
- }
1333
- findNextHeader(panelElement, selfCheck = false) {
1334
- const nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;
1335
- const headerElement = findSingle(nextPanelElement, '[data-pc-section="header"]');
1336
- return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeader(headerElement.parentElement) : headerElement) : null;
1337
- }
1338
- findPrevHeader(panelElement, selfCheck = false) {
1339
- const prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;
1340
- const headerElement = findSingle(prevPanelElement, '[data-pc-section="header"]');
1341
- return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeader(headerElement.parentElement) : headerElement) : null;
1342
- }
1343
- findFirstHeader() {
1344
- return this.findNextHeader(this.containerViewChild.nativeElement.firstElementChild, true);
1345
- }
1346
- findLastHeader() {
1347
- return this.findPrevHeader(this.containerViewChild.nativeElement.lastElementChild, true);
1348
- }
1349
- onHeaderClick(event, item, index) {
1350
- if (this.isItemDisabled(item)) {
1351
- event.preventDefault();
1352
- return;
1353
- }
1354
- if (item.command) {
1355
- item.command({ originalEvent: event, item });
1356
- }
1357
- if (!this.multiple) {
1358
- for (let modelItem of this.model) {
1359
- if (item !== modelItem && modelItem.expanded) {
1360
- modelItem.expanded = false;
1361
- }
1362
- }
1363
- }
1364
- item.expanded = !item.expanded;
1365
- this.changeActiveItem(event, item, index);
1366
- this.animating = true;
1367
- focus(event.currentTarget);
1368
- }
1369
- onHeaderKeyDown(event, item, index) {
1370
- switch (event.code) {
1371
- case 'ArrowDown':
1372
- this.onHeaderArrowDownKey(event);
1373
- break;
1374
- case 'ArrowUp':
1375
- this.onHeaderArrowUpKey(event);
1376
- break;
1377
- case 'Home':
1378
- this.onHeaderHomeKey(event);
1379
- break;
1380
- case 'End':
1381
- this.onHeaderEndKey(event);
1382
- break;
1383
- case 'Enter':
1384
- case 'Space':
1385
- this.onHeaderEnterKey(event, item, index);
1386
- break;
1387
- default:
1388
- break;
1389
- }
1390
- }
1391
- onHeaderArrowDownKey(event) {
1392
- const rootList = getAttribute(event.currentTarget, 'data-p-highlight') === true ? findSingle(event.currentTarget.nextElementSibling, '[data-pc-section="menu"]') : null;
1393
- rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: true });
1394
- event.preventDefault();
1395
- }
1396
- onHeaderArrowUpKey(event) {
1397
- const prevHeader = this.findPrevHeader(event.currentTarget.parentElement) || this.findLastHeader();
1398
- const rootList = getAttribute(prevHeader, 'data-p-highlight') === true ? findSingle(prevHeader.nextElementSibling, '[data-pc-section="menu"]') : null;
1399
- rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: false });
1400
- event.preventDefault();
1401
- }
1402
- onHeaderHomeKey(event) {
1403
- this.changeFocusedHeader(event, this.findFirstHeader());
1404
- event.preventDefault();
1405
- }
1406
- onHeaderEndKey(event) {
1407
- this.changeFocusedHeader(event, this.findLastHeader());
1408
- event.preventDefault();
1409
- }
1410
- onHeaderEnterKey(event, item, index) {
1411
- const headerAction = findSingle(event.currentTarget, '[data-pc-section="headeraction"]');
1412
- headerAction ? headerAction.click() : this.onHeaderClick(event, item, index);
1413
- event.preventDefault();
1414
- }
1415
- static ɵfac = /*@__PURE__*/ (() => { let ɵPanelMenu_BaseFactory; return function PanelMenu_Factory(__ngFactoryType__) { return (ɵPanelMenu_BaseFactory || (ɵPanelMenu_BaseFactory = i0.ɵɵgetInheritedFactory(PanelMenu)))(__ngFactoryType__ || PanelMenu); }; })();
1416
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelMenu, selectors: [["p-panelMenu"], ["p-panelmenu"], ["p-panel-menu"]], contentQueries: function PanelMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
1417
- i0.ɵɵcontentQuery(dirIndex, _c6, 5);
1418
- i0.ɵɵcontentQuery(dirIndex, _c7, 5);
1419
- } if (rf & 2) {
1420
- let _t;
1421
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.submenuiconTemplate = _t.first);
1422
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);
1423
- } }, viewQuery: function PanelMenu_Query(rf, ctx) { if (rf & 1) {
1424
- i0.ɵɵviewQuery(_c8, 5);
1425
- } if (rf & 2) {
1426
- let _t;
1427
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);
1428
- } }, inputs: { model: "model", style: "style", styleClass: "styleClass", multiple: [2, "multiple", "multiple", booleanAttribute], transitionOptions: "transitionOptions", id: "id", tabindex: [2, "tabindex", "tabindex", numberAttribute] }, standalone: true, features: [i0.ɵɵProvidersFeature([PanelMenuStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 5, consts: [["container", ""], ["htmlLabel", ""], ["htmlRouteLabel", ""], [3, "ngStyle", "ngClass"], [4, "ngFor", "ngForOf"], ["class", "p-panelmenu-panel", 3, "ngClass", "ngStyle", 4, "ngIf"], [1, "p-panelmenu-panel", 3, "ngClass", "ngStyle"], ["role", "button", 3, "click", "keydown", "ngClass", "ngStyle", "pTooltip", "tabindex", "tooltipOptions"], [1, "p-panelmenu-header-content"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "p-panelmenu-header-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", 4, "ngIf"], ["class", "p-panelmenu-content-container", "role", "region", 3, "ngClass", 4, "ngIf"], ["class", "p-panelmenu-header-link", 3, "target", 4, "ngIf"], [1, "p-panelmenu-header-link", 3, "target"], ["class", "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle", 4, "ngIf"], ["class", "p-panelmenu-header-label", 4, "ngIf", "ngIfElse"], ["class", "p-menuitem-badge", 3, "ngClass", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass", 4, "ngIf"], [3, "styleClass"], [1, "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle"], [1, "p-panelmenu-header-label"], [1, "p-panelmenu-header-label", 3, "innerHTML"], [1, "p-menuitem-badge", 3, "ngClass"], [1, "p-panelmenu-header-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state"], ["role", "region", 1, "p-panelmenu-content-container", 3, "ngClass"], [1, "p-panelmenu-content"], [3, "headerFocus", "panelId", "items", "itemTemplate", "transitionOptions", "root", "activeItem", "tabindex", "parentExpanded"]], template: function PanelMenu_Template(rf, ctx) { if (rf & 1) {
1429
- i0.ɵɵelementStart(0, "div", 3, 0);
1430
- i0.ɵɵtemplate(2, PanelMenu_ng_container_2_Template, 2, 1, "ng-container", 4);
1431
- i0.ɵɵelementEnd();
1432
- } if (rf & 2) {
1433
- i0.ɵɵclassMap(ctx.styleClass);
1434
- i0.ɵɵproperty("ngStyle", ctx.style)("ngClass", "p-panelmenu p-component");
1435
- i0.ɵɵadvance(2);
1436
- i0.ɵɵproperty("ngForOf", ctx.model);
1437
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, PanelMenuList, RouterModule, i2.RouterLink, i2.RouterLinkActive, TooltipModule, i3.Tooltip, ChevronDownIcon, ChevronRightIcon, SharedModule], encapsulation: 2, data: { animation: [
1438
- trigger('rootItem', [
1439
- state('hidden', style({
1440
- height: '0',
1441
- visibility: 'hidden'
1442
- })),
1443
- state('visible', style({
1444
- height: '*',
1445
- visibility: '*'
1446
- })),
1447
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
1448
- transition('void => *', animate(0))
1449
- ])
1450
- ] }, changeDetection: 0 });
1451
- }
1452
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenu, [{
1453
- type: Component,
1454
- args: [{
1455
- selector: 'p-panelMenu, p-panelmenu, p-panel-menu',
1456
- imports: [CommonModule, PanelMenuList, RouterModule, TooltipModule, AngleDownIcon, AngleRightIcon, ChevronDownIcon, ChevronRightIcon, SharedModule],
1457
- standalone: true,
1458
- template: `
1459
- <div [class]="styleClass" [ngStyle]="style" [ngClass]="'p-panelmenu p-component'" #container>
1460
- <ng-container *ngFor="let item of model; let f = first; let l = last; let i = index">
1461
- <div *ngIf="isItemVisible(item)" class="p-panelmenu-panel" [ngClass]="getItemProp(item, 'headerClass')" [ngStyle]="getItemProp(item, 'style')" [attr.data-pc-section]="'panel'">
1462
- <div
1463
- [ngClass]="{
1464
- 'p-component p-panelmenu-header': true,
1465
- 'p-panelmenu-header-active': isItemActive(item) && !!item.items,
1466
- 'p-disabled': isItemDisabled(item)
1467
- }"
1468
- [class]="getItemProp(item, 'styleClass')"
1469
- [ngStyle]="getItemProp(item, 'style')"
1470
- [pTooltip]="getItemProp(item, 'tooltip')"
1471
- [attr.id]="getHeaderId(item, i)"
1472
- [tabindex]="0"
1473
- role="button"
1474
- [tooltipOptions]="getItemProp(item, 'tooltipOptions')"
1475
- [attr.aria-expanded]="isItemActive(item)"
1476
- [attr.aria-label]="getItemProp(item, 'label')"
1477
- [attr.aria-controls]="getContentId(item, i)"
1478
- [attr.aria-disabled]="isItemDisabled(item)"
1479
- [attr.data-p-highlight]="isItemActive(item)"
1480
- [attr.data-p-disabled]="isItemDisabled(item)"
1481
- [attr.data-pc-section]="'header'"
1482
- (click)="onHeaderClick($event, item, i)"
1483
- (keydown)="onHeaderKeyDown($event, item, i)"
1484
- >
1485
- <div class="p-panelmenu-header-content">
1486
- <ng-container *ngIf="!itemTemplate">
1487
- <a
1488
- *ngIf="!getItemProp(item, 'routerLink')"
1489
- [attr.href]="getItemProp(item, 'url')"
1490
- [attr.tabindex]="-1"
1491
- [target]="getItemProp(item, 'target')"
1492
- [attr.title]="getItemProp(item, 'title')"
1493
- class="p-panelmenu-header-link"
1494
- [attr.data-pc-section]="'headeraction'"
1495
- >
1496
- <ng-container *ngIf="isItemGroup(item)">
1497
- <ng-container *ngIf="!submenuiconTemplate">
1498
- <ChevronDownIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="isItemActive(item)" />
1499
- <ChevronRightIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="!isItemActive(item)" />
1500
- </ng-container>
1501
- <ng-template *ngTemplateOutlet="submenuiconTemplate"></ng-template>
1502
- </ng-container>
1503
- <span class="p-panelmenu-submenu-icon" [ngClass]="item.icon" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
1504
- <span class="p-panelmenu-header-label" *ngIf="getItemProp(item, 'escape') !== false; else htmlLabel">{{ getItemProp(item, 'label') }}</span>
1505
- <ng-template #htmlLabel><span class="p-panelmenu-header-label" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
1506
- <span class="p-menuitem-badge" *ngIf="getItemProp(item, 'badge')" [ngClass]="getItemProp(item, 'badgeStyleClass')">{{ getItemProp(item, 'badge') }}</span>
1507
- </a>
1508
- </ng-container>
1509
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
1510
- <a
1511
- *ngIf="getItemProp(item, 'routerLink')"
1512
- [routerLink]="getItemProp(item, 'routerLink')"
1513
- [queryParams]="getItemProp(item, 'queryParams')"
1514
- [routerLinkActive]="'p-panelmenu-item-link-active'"
1515
- [routerLinkActiveOptions]="getItemProp(item, 'routerLinkActiveOptions') || { exact: false }"
1516
- [target]="getItemProp(item, 'target')"
1517
- class="p-panelmenu-header-link"
1518
- [attr.tabindex]="-1"
1519
- [fragment]="getItemProp(item, 'fragment')"
1520
- [queryParamsHandling]="getItemProp(item, 'queryParamsHandling')"
1521
- [preserveFragment]="getItemProp(item, 'preserveFragment')"
1522
- [skipLocationChange]="getItemProp(item, 'skipLocationChange')"
1523
- [replaceUrl]="getItemProp(item, 'replaceUrl')"
1524
- [state]="getItemProp(item, 'state')"
1525
- [attr.data-pc-section]="'headeraction'"
1526
- >
1527
- <ng-container *ngIf="isItemGroup(item)">
1528
- <ng-container *ngIf="!submenuiconTemplate">
1529
- <ChevronDownIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="isItemActive(item)" />
1530
- <ChevronRightIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="!isItemActive(item)" />
1531
- </ng-container>
1532
- <ng-template *ngTemplateOutlet="submenuiconTemplate"></ng-template>
1533
- </ng-container>
1534
- <span class="p-panelmenu-submenu-icon" [ngClass]="item.icon" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
1535
- <span class="p-panelmenu-header-label" *ngIf="getItemProp(item, 'escape') !== false; else htmlRouteLabel">{{ getItemProp(item, 'label') }}</span>
1536
- <ng-template #htmlRouteLabel><span class="p-panelmenu-header-label" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
1537
- <span class="p-menuitem-badge" *ngIf="getItemProp(item, 'badge')" [ngClass]="getItemProp(item, 'badgeStyleClass')">{{ getItemProp(item, 'badge') }}</span>
1538
- </a>
1539
- </div>
1540
- </div>
1541
- <div
1542
- *ngIf="isItemGroup(item)"
1543
- class="p-panelmenu-content-container"
1544
- [@rootItem]="getAnimation(item)"
1545
- (@rootItem.done)="onToggleDone()"
1546
- role="region"
1547
- [attr.id]="getContentId(item, i)"
1548
- [attr.aria-labelledby]="getHeaderId(item, i)"
1549
- [attr.data-pc-section]="'toggleablecontent'"
1550
- [ngClass]="{ 'p-panelmenu-expanded': isItemActive(item) }"
1551
- >
1552
- <div class="p-panelmenu-content" [attr.data-pc-section]="'menucontent'">
1553
- <p-panelMenuList
1554
- [panelId]="getPanelId(i, item)"
1555
- [items]="getItemProp(item, 'items')"
1556
- [itemTemplate]="itemTemplate"
1557
- [transitionOptions]="transitionOptions"
1558
- [root]="true"
1559
- [activeItem]="activeItem()"
1560
- [tabindex]="tabindex"
1561
- [parentExpanded]="isItemActive(item)"
1562
- (headerFocus)="updateFocusedHeader($event)"
1563
- ></p-panelMenuList>
1564
- </div>
1565
- </div>
1566
- </div>
1567
- </ng-container>
1568
- </div>
1569
- `,
1570
- animations: [
1571
- trigger('rootItem', [
1572
- state('hidden', style({
1573
- height: '0',
1574
- visibility: 'hidden'
1575
- })),
1576
- state('visible', style({
1577
- height: '*',
1578
- visibility: '*'
1579
- })),
1580
- transition('visible <=> hidden', [animate('{{transitionParams}}')]),
1581
- transition('void => *', animate(0))
1582
- ])
1583
- ],
1584
- changeDetection: ChangeDetectionStrategy.OnPush,
1585
- encapsulation: ViewEncapsulation.None,
1586
- providers: [PanelMenuStyle]
1587
- }]
1588
- }], null, { model: [{
1589
- type: Input
1590
- }], style: [{
1591
- type: Input
1592
- }], styleClass: [{
1593
- type: Input
1594
- }], multiple: [{
1595
- type: Input,
1596
- args: [{ transform: booleanAttribute }]
1597
- }], transitionOptions: [{
1598
- type: Input
1599
- }], id: [{
1600
- type: Input
1601
- }], tabindex: [{
1602
- type: Input,
1603
- args: [{ transform: numberAttribute }]
1604
- }], containerViewChild: [{
1605
- type: ViewChild,
1606
- args: ['container']
1607
- }], submenuiconTemplate: [{
1608
- type: ContentChild,
1609
- args: ['submenuicon']
1610
- }], itemTemplate: [{
1611
- type: ContentChild,
1612
- args: ['item']
1613
- }] }); })();
1614
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelMenu, { className: "PanelMenu" }); })();
1615
- export class PanelMenuModule {
1616
- static ɵfac = function PanelMenuModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PanelMenuModule)(); };
1617
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PanelMenuModule });
1618
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [PanelMenu, SharedModule, SharedModule] });
1619
- }
1620
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenuModule, [{
1621
- type: NgModule,
1622
- args: [{
1623
- imports: [PanelMenu, SharedModule],
1624
- exports: [PanelMenu, SharedModule]
1625
- }]
1626
- }], null, null); })();
1627
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PanelMenuModule, { imports: [PanelMenu, SharedModule], exports: [PanelMenu, SharedModule] }); })();
1628
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxtZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhbmVsbWVudS9wYW5lbG1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBRVosWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixlQUFlLEVBRWYsTUFBTSxFQUNOLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5SSxPQUFPLEVBQVksWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7SUFvQnhDLHdCQUF1Rjs7O0lBZ0MvRCxvQ0FBbUo7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LGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDOUI7Z0JBTVksS0FBSztrQkFBYixLQUFLO1lBS0csS0FBSztrQkFBYixLQUFLO1lBS0csVUFBVTtrQkFBbEIsS0FBSztZQUtrQyxRQUFRO2tCQUEvQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBSzdCLGlCQUFpQjtrQkFBekIsS0FBSztZQUtHLEVBQUU7a0JBQVYsS0FBSztZQUtpQyxRQUFRO2tCQUE5QyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUViLGtCQUFrQjtrQkFBekMsU0FBUzttQkFBQyxXQUFXO1lBS08sbUJBQW1CO2tCQUEvQyxZQUFZO21CQUFDLGFBQWE7WUFLTCxZQUFZO2tCQUFqQyxZQUFZO21CQUFDLE1BQU07O2tGQS9DWCxTQUFTO0FBeVB0QixNQUFNLE9BQU8sZUFBZTt5R0FBZixlQUFlOzREQUFmLGVBQWU7Z0VBSGQsU0FBUyxFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFeEIsZUFBZTtjQUozQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQztnQkFDbEMsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQzthQUNyQzs7d0ZBQ1ksZUFBZSxjQXpQZixTQUFTLEVBc1BHLFlBQVksYUF0UHhCLFNBQVMsRUF1UEcsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGVxdWFscywgZmluZExhc3QsIGZpbmRTaW5nbGUsIGZvY3VzLCBnZXRBdHRyaWJ1dGUsIGlzRW1wdHksIGlzTm90RW1wdHksIGlzUHJpbnRhYmxlQ2hhcmFjdGVyLCByZXNvbHZlLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IE1lbnVJdGVtLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IEFuZ2xlRG93bkljb24sIEFuZ2xlUmlnaHRJY29uLCBDaGV2cm9uRG93bkljb24sIENoZXZyb25SaWdodEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgUGFuZWxNZW51U3R5bGUgfSBmcm9tICcuL3N0eWxlL3BhbmVsbWVudXN0eWxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXBhbmVsTWVudVN1YiwgcC1wYW5lbG1lbnUtc3ViJyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIEFuZ2xlRG93bkljb24sIEFuZ2xlUmlnaHRJY29uLCBDaGV2cm9uRG93bkljb24sIENoZXZyb25SaWdodEljb24sIFNoYXJlZE1vZHVsZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8dWxcbiAgICAgICAgICAgICNsaXN0XG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLXBhbmVsbWVudS1zdWJtZW51JzogdHJ1ZSB9XCJcbiAgICAgICAgICAgIHJvbGU9XCJ0cmVlXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiZm9jdXNlZEl0ZW1JZFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21lbnUnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIiFwYXJlbnRFeHBhbmRlZFwiXG4gICAgICAgICAgICAoZm9jdXNpbik9XCJtZW51Rm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJtZW51Qmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwibWVudUtleURvd24uZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1wcm9jZXNzZWRJdGVtIGxldC1pbmRleD1cImluZGV4XCIgW25nRm9yT2ZdPVwiaXRlbXNcIj5cbiAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJwcm9jZXNzZWRJdGVtLnNlcGFyYXRvclwiIGNsYXNzPVwicC1tZW51aXRlbS1zZXBhcmF0b3JcIiByb2xlPVwic2VwYXJhdG9yXCI+PC9saT5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvY2Vzc2VkSXRlbS5zZXBhcmF0b3IgJiYgaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldEl0ZW1DbGFzcyhwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImdldEl0ZW1JZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJylcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pID8gaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJsZXZlbCArIDFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNldHNpemVdPVwiZ2V0QXJpYVNldFNpemUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiZ2V0QXJpYVBvc0luc2V0KGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc3R5bGVDbGFzcycpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnAtaGlkZGVuXT1cInByb2Nlc3NlZEl0ZW0udmlzaWJsZSA9PT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MucC1mb2N1c109XCJpc0l0ZW1Gb2N1c2VkKHByb2Nlc3NlZEl0ZW0pICYmICFpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzdHlsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd0b29sdGlwJylcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE9wdGlvbnNdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3Rvb2x0aXBPcHRpb25zJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFuZWxtZW51LWl0ZW0tY29udGVudFwiIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQsIHByb2Nlc3NlZEl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd1cmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1wYW5lbG1lbnUtaXRlbS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1kaXNhYmxlZCc6IGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdkaXNhYmxlZCcpIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd0YXJnZXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIiEhcGFyZW50RXhwYW5kZWQgPyAnMCcgOiAnLTEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0l0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwYW5lbE1lbnUuc3VibWVudWljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCJpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSlcIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvblN0eWxlJylcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZVJpZ2h0SWNvbiBbc3R5bGVDbGFzc109XCIncC1wYW5lbG1lbnUtc3VibWVudS1pY29uJ1wiICpuZ0lmPVwiIWlzSXRlbUFjdGl2ZShwcm9jZXNzZWRJdGVtKVwiIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInBhbmVsTWVudS5zdWJtZW51aWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtc3VibWVudS1pY29uXCIgW25nQ2xhc3NdPVwicHJvY2Vzc2VkSXRlbS5pY29uXCIgKm5nSWY9XCJwcm9jZXNzZWRJdGVtLmljb25cIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvblN0eWxlJylcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaXRlbS1sYWJlbFwiICpuZ0lmPVwicHJvY2Vzc2VkSXRlbS5pdGVtPy5lc2NhcGUgIT09IGZhbHNlOyBlbHNlIGh0bWxMYWJlbFwiPnt7IGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdsYWJlbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2h0bWxMYWJlbD48c3BhbiBjbGFzcz1cInAtcGFuZWxtZW51LWl0ZW0tbGFiZWxcIiBbaW5uZXJIVE1MXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdsYWJlbCcpXCI+PC9zcGFuPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1tZW51aXRlbS1iYWRnZVwiICpuZ0lmPVwicHJvY2Vzc2VkSXRlbS5iYWRnZVwiIFtuZ0NsYXNzXT1cInByb2Nlc3NlZEl0ZW0uYmFkZ2VTdHlsZUNsYXNzXCI+e3sgcHJvY2Vzc2VkSXRlbS5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncm91dGVyTGluaycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3JvdXRlckxpbmsnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncXVlcnlQYXJhbXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIidwLXBhbmVsbWVudS1pdGVtLWxpbmstYWN0aXZlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncm91dGVyTGlua0FjdGl2ZU9wdGlvbnMnKSB8fCB7IGV4YWN0OiBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXBhbmVsbWVudS1pdGVtLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWRpc2FibGVkJzogZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2Rpc2FibGVkJykgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3RhcmdldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3RpdGxlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZnJhZ21lbnRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ZyYWdtZW50JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncXVlcnlQYXJhbXNIYW5kbGluZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3ByZXNlcnZlRnJhZ21lbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwTG9jYXRpb25DaGFuZ2VdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3NraXBMb2NhdGlvbkNoYW5nZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcGxhY2VVcmxdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3JlcGxhY2VVcmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc3RhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIiEhcGFyZW50RXhwYW5kZWQgPyAnMCcgOiAnLTEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0l0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwYW5lbE1lbnUuc3VibWVudWljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uICpuZ0lmPVwiaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbidcIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvblN0eWxlJylcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZVJpZ2h0SWNvbiAqbmdJZj1cIiFpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSlcIiBbc3R5bGVDbGFzc109XCIncC1wYW5lbG1lbnUtc3VibWVudS1pY29uJ1wiIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInBhbmVsTWVudS5zdWJtZW51aWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtc3VibWVudS1pY29uXCIgW25nQ2xhc3NdPVwicHJvY2Vzc2VkSXRlbS5pY29uXCIgKm5nSWY9XCJwcm9jZXNzZWRJdGVtLmljb25cIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvblN0eWxlJylcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaXRlbS1sYWJlbFwiICpuZ0lmPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2VzY2FwZScpICE9PSBmYWxzZTsgZWxzZSBodG1sUm91dGVMYWJlbFwiPnt7IGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdsYWJlbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2h0bWxSb3V0ZUxhYmVsPjxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaXRlbS1sYWJlbFwiIFtpbm5lckhUTUxdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJylcIj48L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLW1lbnVpdGVtLWJhZGdlXCIgKm5nSWY9XCJwcm9jZXNzZWRJdGVtLmJhZGdlXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2JhZGdlU3R5bGVDbGFzcycpXCI+e3sgZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2JhZGdlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcHJvY2Vzc2VkSXRlbS5pdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10b2dnbGVhYmxlLWNvbnRlbnRcIiBbQHN1Ym1lbnVdPVwiZ2V0QW5pbWF0aW9uKHByb2Nlc3NlZEl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1wYW5lbG1lbnUtc3ViXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmIGlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pICYmIGlzSXRlbUV4cGFuZGVkKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0SXRlbUlkKHByb2Nlc3NlZEl0ZW0pICsgJ19saXN0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhbmVsSWRdPVwicGFuZWxJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInByb2Nlc3NlZEl0ZW0/Lml0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zaXRpb25PcHRpb25zXT1cInRyYW5zaXRpb25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9jdXNlZEl0ZW1JZF09XCJmb2N1c2VkSXRlbUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlSXRlbVBhdGhdPVwiYWN0aXZlSXRlbVBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbF09XCJsZXZlbCArIDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCIhIXBhcmVudEV4cGFuZGVkICYmIGlzSXRlbUV4cGFuZGVkKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVRvZ2dsZSk9XCJvbkl0ZW1Ub2dnbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXBhbmVsbWVudS1zdWI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3VsPlxuICAgIGAsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdzdWJtZW51JywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcwJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKidcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPD0+IGhpZGRlbicsIFthbmltYXRlKCd7e3RyYW5zaXRpb25QYXJhbXN9fScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKDApKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbE1lbnVTdWIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwYW5lbElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBmb2N1c2VkSXRlbUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBpdGVtczogYW55W107XG5cbiAgICBASW5wdXQoKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBsZXZlbDogbnVtYmVyID0gMDtcblxuICAgIEBJbnB1dCgpIGFjdGl2ZUl0ZW1QYXRoOiBhbnlbXTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByb290OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGFiaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHRyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcGFyZW50RXhwYW5kZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBAT3V0cHV0KCkgaXRlbVRvZ2dsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKSBtZW51Rm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgbWVudUJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgbWVudUtleURvd246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdsaXN0JykgbGlzdFZpZXdDaGlsZDogRWxlbWVudFJlZjtcblxuICAgIHBhbmVsTWVudTogUGFuZWxNZW51ID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gUGFuZWxNZW51KSk7XG5cbiAgICBnZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbS5pdGVtPy5pZCA/PyBgJHt0aGlzLnBhbmVsSWR9XyR7cHJvY2Vzc2VkSXRlbS5rZXl9YDtcbiAgICB9XG5cbiAgICBnZXRJdGVtS2V5KHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUlkKHByb2Nlc3NlZEl0ZW0pO1xuICAgIH1cblxuICAgIGdldEl0ZW1DbGFzcyhwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAncC1wYW5lbG1lbnUtaXRlbSc6IHRydWUsXG4gICAgICAgICAgICAncC1kaXNhYmxlZCc6IHRoaXMuaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSksXG4gICAgICAgICAgICAncC1mb2N1cyc6IHRoaXMuaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sIG5hbWU/LCBwYXJhbXM/KSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtICYmIHByb2Nlc3NlZEl0ZW0uaXRlbSA/IHJlc29sdmUocHJvY2Vzc2VkSXRlbS5pdGVtW25hbWVdLCBwYXJhbXMpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdsYWJlbCcpO1xuICAgIH1cblxuICAgIGlzSXRlbUV4cGFuZGVkKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW0uZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNJdGVtRXhwYW5kZWQocHJvY2Vzc2VkSXRlbSkgfHwgdGhpcy5hY3RpdmVJdGVtUGF0aC5zb21lKChwYXRoKSA9PiBwYXRoICYmIHBhdGgua2V5ID09PSBwcm9jZXNzZWRJdGVtLmtleSk7XG4gICAgfVxuXG4gICAgaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd2aXNpYmxlJykgIT09IGZhbHNlO1xuICAgIH1cblxuICAgIGlzSXRlbURpc2FibGVkKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzZWRJdGVtSWQgPT09IHRoaXMuZ2V0SXRlbUlkKHByb2Nlc3NlZEl0ZW0pO1xuICAgIH1cblxuICAgIGlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGlzTm90RW1wdHkocHJvY2Vzc2VkSXRlbS5pdGVtcyk7XG4gICAgfVxuXG4gICAgZ2V0QW5pbWF0aW9uKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pID8geyB2YWx1ZTogJ3Zpc2libGUnLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdGhpcy50cmFuc2l0aW9uT3B0aW9ucywgaGVpZ2h0OiAnKicgfSB9IDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0aGlzLnRyYW5zaXRpb25PcHRpb25zLCBoZWlnaHQ6ICcwJyB9IH07XG4gICAgfVxuXG4gICAgZ2V0QXJpYVNldFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmICF0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzZXBhcmF0b3InKSkubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldEFyaWFQb3NJbnNldChpbmRleCkge1xuICAgICAgICByZXR1cm4gaW5kZXggLSB0aGlzLml0ZW1zLnNsaWNlKDAsIGluZGV4KS5maWx0ZXIoKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSAmJiB0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzZXBhcmF0b3InKSkubGVuZ3RoICsgMTtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldmVudCwgcHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSkpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2NvbW1hbmQnLCB7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBpdGVtOiBwcm9jZXNzZWRJdGVtLml0ZW0gfSk7XG4gICAgICAgICAgICB0aGlzLml0ZW1Ub2dnbGUuZW1pdCh7IHByb2Nlc3NlZEl0ZW0sIGV4cGFuZGVkOiAhdGhpcy5pc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1Ub2dnbGUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5pdGVtVG9nZ2xlLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXBhbmVsTWVudUxpc3QsIHAtcGFuZWwtbWVudS1saXN0JyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQYW5lbE1lbnVTdWIsIFJvdXRlck1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgQW5nbGVEb3duSWNvbiwgQW5nbGVSaWdodEljb24sIENoZXZyb25Eb3duSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgU2hhcmVkTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxwLXBhbmVsbWVudS1zdWJcbiAgICAgICAgICAgICNzdWJtZW51XG4gICAgICAgICAgICBbcm9vdF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpZF09XCJwYW5lbElkICsgJ19saXN0J1wiXG4gICAgICAgICAgICBbcGFuZWxJZF09XCJwYW5lbElkXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbZm9jdXNlZEl0ZW1JZF09XCJmb2N1c2VkID8gZm9jdXNlZEl0ZW1JZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbVBhdGhdPVwiYWN0aXZlSXRlbVBhdGgoKVwiXG4gICAgICAgICAgICBbdHJhbnNpdGlvbk9wdGlvbnNdPVwidHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInByb2Nlc3NlZEl0ZW1zKClcIlxuICAgICAgICAgICAgW3BhcmVudEV4cGFuZGVkXT1cInBhcmVudEV4cGFuZGVkXCJcbiAgICAgICAgICAgIChpdGVtVG9nZ2xlKT1cIm9uSXRlbVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgIChtZW51Rm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtZW51Qmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgID48L3AtcGFuZWxtZW51LXN1Yj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUGFuZWxNZW51TGlzdCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHBhbmVsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBpdGVtczogYW55W107XG5cbiAgICBASW5wdXQoKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcGFyZW50RXhwYW5kZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXhwYW5kZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uT3B0aW9uczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJvb3Q6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbTogYW55O1xuXG4gICAgQE91dHB1dCgpIGl0ZW1Ub2dnbGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KCkgaGVhZGVyRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdzdWJtZW51Jykgc3ViTWVudVZpZXdDaGlsZDogUGFuZWxNZW51U3ViO1xuXG4gICAgc2VhcmNoVGltZW91dDogYW55O1xuXG4gICAgc2VhcmNoVmFsdWU6IGFueTtcblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBmb2N1c2VkSXRlbSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuXG4gICAgYWN0aXZlSXRlbVBhdGggPSBzaWduYWw8YW55W10+KFtdKTtcblxuICAgIHByb2Nlc3NlZEl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgICB2aXNpYmxlSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW1zID0gdGhpcy5wcm9jZXNzZWRJdGVtcygpO1xuICAgICAgICByZXR1cm4gdGhpcy5mbGF0SXRlbXMocHJvY2Vzc2VkSXRlbXMpO1xuICAgIH0pO1xuXG4gICAgZ2V0IGZvY3VzZWRJdGVtSWQoKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gdGhpcy5mb2N1c2VkSXRlbSgpO1xuICAgICAgICByZXR1cm4gZm9jdXNlZEl0ZW0gJiYgZm9jdXNlZEl0ZW0uaXRlbT8uaWQgPyBmb2N1c2VkSXRlbS5pdGVtLmlkIDogaXNOb3RFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkpID8gYCR7dGhpcy5wYW5lbElkfV8ke3RoaXMuZm9jdXNlZEl0ZW0oKS5rZXl9YCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc2VkSXRlbXMuc2V0KHRoaXMuY3JlYXRlUHJvY2Vzc2VkSXRlbXMoY2hhbmdlcz8uaXRlbXM/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLml0ZW1zIHx8IFtdKSk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgbmFtZSkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbSAmJiBwcm9jZXNzZWRJdGVtLml0ZW0gPyByZXNvbHZlKHByb2Nlc3NlZEl0ZW0uaXRlbVtuYW1lXSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd2aXNpYmxlJykgIT09IGZhbHNlO1xuICAgIH1cblxuICAgIGlzSXRlbURpc2FibGVkKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbVBhdGgoKS5zb21lKChwYXRoKSA9PiBwYXRoLmtleSA9PT0gcHJvY2Vzc2VkSXRlbS5wYXJlbnRLZXkpO1xuICAgIH1cblxuICAgIGlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGlzTm90RW1wdHkocHJvY2Vzc2VkSXRlbS5pdGVtcyk7XG4gICAgfVxuXG4gICAgaXNFbGVtZW50SW5QYW5lbChldmVudCwgZWxlbWVudCkge1xuICAgICAgICBjb25zdCBwYW5lbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgnW2RhdGEtcGMtc2VjdGlvbj1cInBhbmVsXCJdJyk7XG5cbiAgICAgICAgcmV0dXJuIHBhbmVsICYmIHBhbmVsLmNvbnRhaW5zKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSAmJiB0aGlzLmdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtKS50b0xvY2FsZUxvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICBpc1Zpc2libGVJdGVtKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICEhcHJvY2Vzc2VkSXRlbSAmJiAocHJvY2Vzc2VkSXRlbS5sZXZlbCA9PT0gMCB8fCB0aGlzLmlzSXRlbUFjdGl2ZShwcm9jZXNzZWRJdGVtKSkgJiYgdGhpcy5pc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pO1xuICAgIH1cblxuICAgIGlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICEhcHJvY2Vzc2VkSXRlbSAmJiAhdGhpcy5pc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKSAmJiAhcHJvY2Vzc2VkSXRlbS5zZXBhcmF0b3I7XG4gICAgfVxuXG4gICAgZmluZEZpcnN0SXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUl0ZW1zKCkuZmluZCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSk7XG4gICAgfVxuXG4gICAgZmluZExhc3RJdGVtKCkge1xuICAgICAgICByZXR1cm4gZmluZExhc3QodGhpcy52aXNpYmxlSXRlbXMoKSwgKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkpO1xuICAgIH1cblxuICAgIGZpbmRJdGVtQnlFdmVudFRhcmdldCh0YXJnZXQ6IEV2ZW50VGFyZ2V0KTogdW5kZWZpbmVkIHwgYW55IHtcbiAgICAgICAgbGV0IHBhcmVudE5vZGUgPSB0YXJnZXQgYXMgUGFyZW50Tm9kZSAmIEVsZW1lbnQ7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudE5vZGUgJiYgcGFyZW50Tm9kZS50YWdOYW1lPy50b0xvd2VyQ2FzZSgpICE9PSAnbGknKSB7XG4gICAgICAgICAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZT8ucGFyZW50Tm9kZSBhcyBFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU/LmlkICYmIHRoaXMudmlzaWJsZUl0ZW1zKCkuZmluZCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSAmJiBgJHt0aGlzLnBhbmVsSWR9XyR7cHJvY2Vzc2VkSXRlbS5rZXl9YCA9PT0gcGFyZW50Tm9kZS5pZCk7XG4gICAgfVxuXG4gICAgY3JlYXRlUHJvY2Vzc2VkSXRlbXMoaXRlbXMsIGxldmVsID0gMCwgcGFyZW50ID0ge30sIHBhcmVudEtleSA9ICcnKSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW1zID0gW107XG4gICAgICAgIGl0ZW1zICYmXG4gICAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IChwYXJlbnRLZXkgIT09ICcnID8gcGFyZW50S2V5ICsgJ18nIDogJycpICsgaW5kZXg7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogaXRlbS5pY29uLFxuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogaXRlbS5leHBhbmRlZCxcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiBpdGVtLnNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50S2V5XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIG5ld0l0ZW1bJ2l0ZW1zJ10gPSB0aGlzLmNyZWF0ZVByb2Nlc3NlZEl0ZW1zKGl0ZW0uaXRlbXMsIGxldmVsICsgMSwgbmV3SXRlbSwga2V5KTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRJdGVtcy5wdXNoKG5ld0l0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtcztcbiAgICB9XG5cbiAgICBmaW5kUHJvY2Vzc2VkSXRlbUJ5SXRlbUtleShrZXksIHByb2Nlc3NlZEl0ZW1zPywgbGV2ZWwgPSAwKSB7XG4gICAgICAgIHByb2Nlc3NlZEl0ZW1zID0gcHJvY2Vzc2VkSXRlbXMgfHwgdGhpcy5wcm9jZXNzZWRJdGVtcygpO1xuICAgICAgICBpZiAocHJvY2Vzc2VkSXRlbXMgJiYgcHJvY2Vzc2VkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb2Nlc3NlZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHByb2Nlc3NlZEl0ZW1zW2ldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2tleScpID09PSBrZXkpIHJldHVybiBwcm9jZXNzZWRJdGVtO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRJdGVtID0gdGhpcy5maW5kUHJvY2Vzc2VkSXRlbUJ5SXRlbUtleShrZXksIHByb2Nlc3NlZEl0ZW0uaXRlbXMsIGxldmVsICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRJdGVtKSByZXR1cm4gbWF0Y2hlZEl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmbGF0SXRlbXMocHJvY2Vzc2VkSXRlbXMsIHByb2Nlc3NlZEZsYXR0ZW5JdGVtcyA9IFtdKSB7XG4gICAgICAgIHByb2Nlc3NlZEl0ZW1zICYmXG4gICAgICAgICAgICBwcm9jZXNzZWRJdGVtcy5mb3JFYWNoKChwcm9jZXNzZWRJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlSXRlbShwcm9jZXNzZWRJdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRGbGF0dGVuSXRlbXMucHVzaChwcm9jZXNzZWRJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbGF0SXRlbXMocHJvY2Vzc2VkSXRlbS5pdGVtcywgcHJvY2Vzc2VkRmxhdHRlbkl0ZW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkRmxhdHRlbkl0ZW1zO1xuICAgIH1cblxuICAgIGNoYW5nZUZvY3VzZWRJdGVtKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luYWxFdmVudCwgcHJvY2Vzc2VkSXRlbSwgZm9jdXNPbk5leHQsIHNlbGZDaGVjaywgYWxsb3dIZWFkZXJGb2N1cyA9IHRydWUgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmIChpc05vdEVtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkgJiYgdGhpcy5mb2N1c2VkSXRlbSgpLmtleSAhPT0gcHJvY2Vzc2VkSXRlbS5rZXkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW0uc2V0KHByb2Nlc3NlZEl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxJblZpZXcoKTtcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd0hlYWRlckZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlckZvY3VzLmVtaXQoeyBvcmlnaW5hbEV2ZW50LCBmb2N1c09uTmV4dCwgc2VsZkNoZWNrIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Nyb2xsSW5WaWV3KCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZmluZFNpbmdsZSh0aGlzLnN1Yk1lbnVWaWV3Q2hpbGQubGlzdFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LCBgbGlbaWQ9XCIke2Ake3RoaXMuZm9jdXNlZEl0ZW1JZH1gfVwiXWApO1xuXG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3ICYmIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnLCBpbmxpbmU6ICduZWFyZXN0JyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoZXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMuZm9jdXNlZEl0ZW0oKSB8fCAodGhpcy5pc0VsZW1lbnRJblBhbmVsKGV2ZW50LCBldmVudC5yZWxhdGVkVGFyZ2V0KSA/IHRoaXMuZmluZEl0ZW1CeUV2ZW50VGFyZ2V0KGV2ZW50LnRhcmdldCkgfHwgdGhpcy5maW5kRmlyc3RJdGVtKCkgOiB0aGlzLmZpbmRMYXN0SXRlbSgpKTtcbiAgICAgICAgICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsKSB0aGlzLmZvY3VzZWRJdGVtLnNldChmb2N1c2VkSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldDtcblxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtLnNldChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbVRvZ2dsZShldmVudCkge1xuICAgICAgICBjb25zdCB7IHByb2Nlc3NlZEl0ZW0sIGV4cGFuZGVkIH0gPSBldmVudDtcblxuICAgICAgICAvLyBVcGRhdGUgdGhlIG9yaWdpbmFsIGl0ZW0gb2JqZWN0J3MgJ2V4cGFuZGVkJyBwcm9wZXJ0eVxuICAgICAgICBpZiAocHJvY2Vzc2VkSXRlbS5pdGVtKSB7XG4gICAgICAgICAgICBwcm9jZXNzZWRJdGVtLml0ZW0uZXhwYW5kZWQgPSAhcHJvY2Vzc2VkSXRlbS5pdGVtLmV4cGFuZGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVjcmVhdGUgcHJvY2Vzc2VkSXRlbXMgd2l0aCB1cGRhdGVkICdleHBhbmRlZCcgc3RhdGVzXG4gICAgICAgIHRoaXMucHJvY2Vzc2VkSXRlbXMuc2V0KHRoaXMuY3JlYXRlUHJvY2Vzc2VkSXRlbXModGhpcy5pdGVtcyB8fCBbXSwgMCwge30sICcnKSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGFjdGl2ZUl0ZW1QYXRoXG4gICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1QYXRoID0gdGhpcy5hY3RpdmVJdGVtUGF0aCgpLmZpbHRlcigocCkgPT4gcC5wYXJlbnRLZXkgIT09IHByb2Nlc3NlZEl0ZW0ucGFyZW50S2V5KTtcbiAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgICBhY3RpdmVJdGVtUGF0aC5wdXNoKHByb2Nlc3NlZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbVBhdGguc2V0KGFjdGl2ZUl0ZW1QYXRoKTtcblxuICAgICAgICAvLyBVcGRhdGUgZm9jdXNlZEl0ZW1cbiAgICAgICAgdGhpcy5mb2N1c2VkSXRlbS5zZXQocHJvY2Vzc2VkSXRlbSk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG1ldGFLZXkgPSBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXk7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd0Rvd25LZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dVcEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93TGVmdEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd1JpZ2h0S2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhvbWVLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25FbmRLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblNwYWNlS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgICAgIHRoaXMub25FbnRlcktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgICAgICBjYXNlICdUYWInOlxuICAgICAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTaGlmdExlZnQnOlxuICAgICAgICAgICAgY2FzZSAnU2hpZnRSaWdodCc6XG4gICAgICAgICAgICAgICAgLy9OT09QXG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKCFtZXRhS2V5ICYmIGlzUHJpbnRhYmxlQ2hhcmFjdGVyKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJdGVtcyhldmVudCwgZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dEb3duS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSBpc05vdEVtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkgPyB0aGlzLmZpbmROZXh0SXRlbSh0aGlzLmZvY3VzZWRJdGVtKCkpIDogdGhpcy5maW5kRmlyc3RJdGVtKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW0oeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgcHJvY2Vzc2VkSXRlbSwgZm9jdXNPbk5leHQ6IHRydWUgfSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIG9uQXJyb3dVcEtleShldmVudCkge1xuICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gaXNOb3RFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkpID8gdGhpcy5maW5kUHJldkl0ZW0odGhpcy5mb2N1c2VkSXRlbSgpKSA6IHRoaXMuZmluZExhc3RJdGVtKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtLCBzZWxmQ2hlY2s6IHRydWUgfSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25BcnJvd0xlZnRLZXkoZXZlbnQpIHtcbiAgICAgICAgaWYgKGlzTm90RW1wdHkodGhpcy5mb2N1c2VkSXRlbSgpKSkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuYWN0aXZlSXRlbVBhdGgoKS5zb21lKChwKSA9PiBwLmtleSA9PT0gdGhpcy5mb2N1c2VkSXRlbSgpLmtleSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbVBhdGggPSB0aGlzLmFjdGl2ZUl0ZW1QYXRoKCkuZmlsdGVyKChwKSA9PiBwLmtleSAhPT0gdGhpcy5mb2N1c2VkSXRlbSgpLmtleSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtUGF0aC5zZXQoYWN0aXZlSXRlbVBhdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IGlzTm90RW1wdHkodGhpcy5mb2N1c2VkSXRlbSgpLnBhcmVudCkgPyB0aGlzLmZvY3VzZWRJdGVtKCkucGFyZW50IDogdGhpcy5mb2N1c2VkSXRlbSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW0uc2V0KGZvY3VzZWRJdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dSaWdodEtleShldmVudCkge1xuICAgICAgICBpZiAoaXNOb3RFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkpKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5pc0l0ZW1Hcm91cCh0aGlzLmZvY3VzZWRJdGVtKCkpO1xuXG4gICAgICAgICAgICBpZiAoZ3JvdXBlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWQgPSB0aGlzLmFjdGl2ZUl0ZW1QYXRoKCkuc29tZSgocCkgPT4gcC5rZXkgPT09IHRoaXMuZm9jdXNlZEl0ZW0oKS5rZXkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFycm93RG93bktleShldmVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbVBhdGggPSB0aGlzLmFjdGl2ZUl0ZW1QYXRoKCkuZmlsdGVyKChwKSA9PiBwLnBhcmVudEtleSAhPT0gdGhpcy5mb2N1c2VkSXRlbSgpLnBhcmVudEtleSk7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUl0ZW1QYXRoLnB1c2godGhpcy5mb2N1c2VkSXRlbSgpKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1QYXRoLnNldChhY3RpdmVJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib21lS2V5KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW0oeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgcHJvY2Vzc2VkSXRlbTogdGhpcy5maW5kRmlyc3RJdGVtKCksIGFsbG93SGVhZGVyRm9jdXM6IGZhbHNlIH0pO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uRW5kS2V5KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW0oeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgcHJvY2Vzc2VkSXRlbTogdGhpcy5maW5kTGFzdEl0ZW0oKSwgZm9jdXNPbk5leHQ6IHRydWUsIGFsbG93SGVhZGVyRm9jdXM6IGZhbHNlIH0pO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uRW50ZXJLZXkoZXZlbnQpIHtcbiAgICAgICAgaWYgKGlzTm90RW1wdHkodGhpcy5mb2N1c2VkSXRlbSgpKSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IDxhbnk+ZmluZFNpbmdsZSh0aGlzLnN1Yk1lbnVWaWV3Q2hpbGQubGlzdFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LCBgbGlbaWQ9XCIke2Ake3RoaXMuZm9jdXNlZEl0ZW1JZH1gfVwiXWApO1xuICAgICAgICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGVsZW1lbnQgJiYgKDxhbnk+ZmluZFNpbmdsZShlbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImFjdGlvblwiXScpIHx8IGZpbmRTaW5nbGUoZWxlbWVudCwgJ2EsYnV0dG9uJykpO1xuXG4gICAgICAgICAgICBhbmNob3JFbGVtZW50ID8gYW5jaG9yRWxlbWVudC5jbGljaygpIDogZWxlbWVudCAmJiBlbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uU3BhY2VLZXkoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICB9XG5cbiAgICBmaW5kTmV4dEl0ZW0ocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudmlzaWJsZUl0ZW1zKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmtleSA9PT0gcHJvY2Vzc2VkSXRlbS5rZXkpO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoZWRJdGVtID1cbiAgICAgICAgICAgIGluZGV4IDwgdGhpcy52aXNpYmxlSXRlbXMoKS5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgPyB0aGlzLnZpc2libGVJdGVtcygpXG4gICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAuZmluZCgocEl0ZW0pID0+IHRoaXMuaXNWYWxpZEl0ZW0ocEl0ZW0pKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEl0ZW0gfHwgcHJvY2Vzc2VkSXRlbTtcbiAgICB9XG5cbiAgICBmaW5kUHJldkl0ZW0ocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudmlzaWJsZUl0ZW1zKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmtleSA9PT0gcHJvY2Vzc2VkSXRlbS5rZXkpO1xuICAgICAgICBjb25zdCBtYXRjaGVkSXRlbSA9IGluZGV4ID4gMCA/IGZpbmRMYXN0KHRoaXMudmlzaWJsZUl0ZW1zKCkuc2xpY2UoMCwgaW5kZXgpLCAocEl0ZW0pID0+IHRoaXMuaXNWYWxpZEl0ZW0ocEl0ZW0pKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZEl0ZW0gfHwgcHJvY2Vzc2VkSXRlbTtcbiAgICB9XG5cbiAgICBzZWFyY2hJdGVtcyhldmVudCwgY2hhcikge1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gKHRoaXMuc2VhcmNoVmFsdWUgfHwgJycpICsgY2hhcjtcblxuICAgICAgICBsZXQgbWF0Y2hlZEl0ZW0gPSBudWxsO1xuICAgICAgICBsZXQgbWF0Y2hlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChpc05vdEVtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtSW5kZXggPSB0aGlzLnZpc2libGVJdGVtcygpLmZpbmRJbmRleCgocHJvY2Vzc2VkSXRlbSkgPT4gcHJvY2Vzc2VkSXRlbS5rZXkgPT09IHRoaXMuZm9jdXNlZEl0ZW0oKS5rZXkpO1xuXG4gICAgICAgICAgICBtYXRjaGVkSXRlbSA9IHRoaXMudmlzaWJsZUl0ZW1zKClcbiAgICAgICAgICAgICAgICAuc2xpY2UoZm9jdXNlZEl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAuZmluZCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1NYXRjaGVkKHByb2Nlc3NlZEl0ZW0pKTtcbiAgICAgICAgICAgIG1hdGNoZWRJdGVtID0gaXNFbXB0eShtYXRjaGVkSXRlbSlcbiAgICAgICAgICAgICAgICA/IHRoaXMudmlzaWJsZUl0ZW1zKClcbiAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgZm9jdXNlZEl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAuZmluZCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1NYXRjaGVkKHByb2Nlc3NlZEl0ZW0pKVxuICAgICAgICAgICAgICAgIDogbWF0Y2hlZEl0ZW07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXRjaGVkSXRlbSA9IHRoaXMudmlzaWJsZUl0ZW1zKCkuZmluZCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1NYXRjaGVkKHByb2Nlc3NlZEl0ZW0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05vdEVtcHR5KG1hdGNoZWRJdGVtKSkge1xuICAgICAgICAgICAgbWF0Y2hlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNFbXB0eShtYXRjaGVkSXRlbSkgJiYgaXNFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkpKSB7XG4gICAgICAgICAgICBtYXRjaGVkSXRlbSA9IHRoaXMuZmluZEZpcnN0SXRlbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTm90RW1wdHkobWF0Y2hlZEl0ZW0pKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtKHtcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRJdGVtOiBtYXRjaGVkSXRlbSxcbiAgICAgICAgICAgICAgICBhbGxvd0hlYWRlckZvY3VzOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hUaW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfSwgNTAwKTtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG59XG5cbi8qKlxuICogUGFuZWxNZW51IGlzIGEgaHlicmlkIG9mIEFjY29yZGlvbiBhbmQgVHJlZSBjb21wb25lbnRzLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXBhbmVsTWVudSwgcC1wYW5lbG1lbnUsIHAtcGFuZWwtbWVudScsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUGFuZWxNZW51TGlzdCwgUm91dGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBBbmdsZURvd25JY29uLCBBbmdsZVJpZ2h0SWNvbiwgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uUmlnaHRJY29uLCBTaGFyZWRNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBbY2xhc3NdPVwic3R5bGVDbGFzc1wiIFtuZ1N0eWxlXT1cInN0eWxlXCIgW25nQ2xhc3NdPVwiJ3AtcGFuZWxtZW51IHAtY29tcG9uZW50J1wiICNjb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vZGVsOyBsZXQgZiA9IGZpcnN0OyBsZXQgbCA9IGxhc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJdGVtVmlzaWJsZShpdGVtKVwiIGNsYXNzPVwicC1wYW5lbG1lbnUtcGFuZWxcIiBbbmdDbGFzc109XCJnZXRJdGVtUHJvcChpdGVtLCAnaGVhZGVyQ2xhc3MnKVwiIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdzdHlsZScpXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidwYW5lbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLWNvbXBvbmVudCBwLXBhbmVsbWVudS1oZWFkZXInOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLXBhbmVsbWVudS1oZWFkZXItYWN0aXZlJzogaXNJdGVtQWN0aXZlKGl0ZW0pICYmICEhaXRlbS5pdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1kaXNhYmxlZCc6IGlzSXRlbURpc2FibGVkKGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJdGVtUHJvcChpdGVtLCAnc3R5bGVDbGFzcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdzdHlsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJnZXRJdGVtUHJvcChpdGVtLCAndG9vbHRpcCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImdldEhlYWRlcklkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBPcHRpb25zXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICd0b29sdGlwT3B0aW9ucycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNJdGVtQWN0aXZlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2xhYmVsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRDb250ZW50SWQoaXRlbSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtaGlnaGxpZ2h0XT1cImlzSXRlbUFjdGl2ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidoZWFkZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkhlYWRlckNsaWNrKCRldmVudCwgaXRlbSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25IZWFkZXJLZXlEb3duKCRldmVudCwgaXRlbSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1wYW5lbG1lbnUtaGVhZGVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZ2V0SXRlbVByb3AoaXRlbSwgJ3JvdXRlckxpbmsnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICd1cmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImdldEl0ZW1Qcm9wKGl0ZW0sICd0YXJnZXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJnZXRJdGVtUHJvcChpdGVtLCAndGl0bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtcGFuZWxtZW51LWhlYWRlci1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaGVhZGVyYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0l0ZW1Hcm91cChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3VibWVudWljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd25JY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiBbc3R5bGVDbGFzc109XCIncC1wYW5lbG1lbnUtc3VibWVudS1pY29uJ1wiICpuZ0lmPVwiIWlzSXRlbUFjdGl2ZShpdGVtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VibWVudWljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtc3VibWVudS1pY29uXCIgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChpdGVtLCAnaWNvblN0eWxlJylcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFuZWxtZW51LWhlYWRlci1sYWJlbFwiICpuZ0lmPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2VzY2FwZScpICE9PSBmYWxzZTsgZWxzZSBodG1sTGFiZWxcIj57eyBnZXRJdGVtUHJvcChpdGVtLCAnbGFiZWwnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaHRtbExhYmVsPjxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaGVhZGVyLWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRJdGVtUHJvcChpdGVtLCAnbGFiZWwnKVwiPjwvc3Bhbj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLW1lbnVpdGVtLWJhZGdlXCIgKm5nSWY9XCJnZXRJdGVtUHJvcChpdGVtLCAnYmFkZ2UnKVwiIFtuZ0NsYXNzXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdiYWRnZVN0eWxlQ2xhc3MnKVwiPnt7IGdldEl0ZW1Qcm9wKGl0ZW0sICdiYWRnZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3JvdXRlckxpbmsnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3F1ZXJ5UGFyYW1zJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCIncC1wYW5lbG1lbnUtaXRlbS1saW5rLWFjdGl2ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3JvdXRlckxpbmtBY3RpdmVPcHRpb25zJykgfHwgeyBleGFjdDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3RhcmdldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXBhbmVsbWVudS1oZWFkZXItbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdmcmFnbWVudCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3F1ZXJ5UGFyYW1zSGFuZGxpbmcnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVzZXJ2ZUZyYWdtZW50XT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdwcmVzZXJ2ZUZyYWdtZW50JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdza2lwTG9jYXRpb25DaGFuZ2UnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXBsYWNlVXJsXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdyZXBsYWNlVXJsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3N0YXRlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2hlYWRlcmFjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbUdyb3VwKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN1Ym1lbnVpY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd25JY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHRJY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCIhaXNJdGVtQWN0aXZlKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VibWVudWljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCIgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2ljb25TdHlsZScpXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFuZWxtZW51LWhlYWRlci1sYWJlbFwiICpuZ0lmPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2VzY2FwZScpICE9PSBmYWxzZTsgZWxzZSBodG1sUm91dGVMYWJlbFwiPnt7IGdldEl0ZW1Qcm9wKGl0ZW0sICdsYWJlbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2h0bWxSb3V0ZUxhYmVsPjxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaGVhZGVyLWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRJdGVtUHJvcChpdGVtLCAnbGFiZWwnKVwiPjwvc3Bhbj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtbWVudWl0ZW0tYmFkZ2VcIiAqbmdJZj1cImdldEl0ZW1Qcm9wKGl0ZW0sICdiYWRnZScpXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2JhZGdlU3R5bGVDbGFzcycpXCI+e3sgZ2V0SXRlbVByb3AoaXRlbSwgJ2JhZGdlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzSXRlbUdyb3VwKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1wYW5lbG1lbnUtY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW0Byb290SXRlbV09XCJnZXRBbmltYXRpb24oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKEByb290SXRlbS5kb25lKT1cIm9uVG9nZ2xlRG9uZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0Q29udGVudElkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRIZWFkZXJJZChpdGVtLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3RvZ2dsZWFibGVjb250ZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLXBhbmVsbWVudS1leHBhbmRlZCc6IGlzSXRlbUFjdGl2ZShpdGVtKSB9XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFuZWxtZW51LWNvbnRlbnRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21lbnVjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhbmVsTWVudUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhbmVsSWRdPVwiZ2V0UGFuZWxJZChpLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJnZXRJdGVtUHJvcChpdGVtLCAnaXRlbXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zaXRpb25PcHRpb25zXT1cInRyYW5zaXRpb25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cImFjdGl2ZUl0ZW0oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRFeHBhbmRlZF09XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGVhZGVyRm9jdXMpPVwidXBkYXRlRm9jdXNlZEhlYWRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXBhbmVsTWVudUxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3Jvb3RJdGVtJywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnKidcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPD0+IGhpZGRlbicsIFthbmltYXRlKCd7e3RyYW5zaXRpb25QYXJhbXN9fScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKDApKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtQYW5lbE1lbnVTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFuZWxNZW51IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIG1lbnVpdGVtcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtb2RlbDogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG11bHRpcGxlIHRhYnMgY2FuIGJlIGFjdGl2YXRlZCBhdCB0aGUgc2FtZSB0aW1lIG9yIG5vdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcmFuc2l0aW9uIG9wdGlvbnMgb2YgdGhlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uT3B0aW9uczogc3RyaW5nID0gJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKSc7XG4gICAgLyoqXG4gICAgICogQ3VycmVudCBpZCBzdGF0ZSBhcyBhIHN0cmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBlbGVtZW50IGluIHRhYmJpbmcgb3JkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGFiaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IDA7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXJWaWV3Q2hpbGQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgb3B0aW9uIG9mIHN1Ym1lbnVpY29uLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdzdWJtZW51aWNvbicpIHN1Ym1lbnVpY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgb3B0aW9uIG9mIGl0ZW0uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2l0ZW0nKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgYW5pbWF0aW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgYWN0aXZlSXRlbSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFBhbmVsTWVudVN0eWxlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCB1dWlkKCdwbl9pZF8nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsYXBzZXMgb3BlbiBwYW5lbHMuXG4gICAgICogQGdyb3VwIE1ldGhvZFxuICAgICAqL1xuICAgIGNvbGxhcHNlQWxsKCkge1xuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubW9kZWwhKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlRG9uZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VBY3RpdmVJdGVtKGV2ZW50LCBpdGVtLCBpbmRleD86IG51bWJlciwgc2VsZkFjdGl2ZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IHNlbGZBY3RpdmUgPyBpdGVtIDogdGhpcy5hY3RpdmVJdGVtICYmIGVxdWFscyhpdGVtLCB0aGlzLmFjdGl2ZUl0ZW0pID8gbnVsbCA6IGl0ZW07XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KGFjdGl2ZUl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QW5pbWF0aW9uKGl0ZW06IE1lbnVJdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLmV4cGFuZGVkID8geyB2YWx1ZTogJ3Zpc2libGUnLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdGhpcy5hbmltYXRpbmcgPyB0aGlzLnRyYW5zaXRpb25PcHRpb25zIDogJzBtcycsIGhlaWdodDogJyonIH0gfSA6IHsgdmFsdWU6ICdoaWRkZW4nLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdGhpcy50cmFuc2l0aW9uT3B0aW9ucywgaGVpZ2h0OiAnMCcgfSB9O1xuICAgIH1cblxuICAgIGdldEl0ZW1Qcm9wKGl0ZW0sIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0gPyByZXNvbHZlKGl0ZW1bbmFtZV0pIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldEl0ZW1MYWJlbChpdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKGl0ZW0sICdsYWJlbCcpO1xuICAgIH1cblxuICAgIGlzSXRlbUFjdGl2ZShpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLmV4cGFuZGVkO1xuICAgIH1cblxuICAgIGlzSXRlbVZpc2libGUoaXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChpdGVtLCAndmlzaWJsZScpICE9PSBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0l0ZW1EaXNhYmxlZChpdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKGl0ZW0sICdkaXNhYmxlZCcpO1xuICAgIH1cblxuICAgIGlzSXRlbUdyb3VwKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGlzTm90RW1wdHkoaXRlbS5pdGVtcyk7XG4gICAgfVxuXG4gICAgZ2V0UGFuZWxJZChpbmRleCwgaXRlbT8pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0gJiYgaXRlbS5pZCA/IGl0ZW0uaWQgOiBgJHt0aGlzLmlkfV8ke2luZGV4fWA7XG4gICAgfVxuXG4gICAgZ2V0SGVhZGVySWQoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPyBpdGVtLmlkICsgJ19oZWFkZXInIDogYCR7dGhpcy5nZXRQYW5lbElkKGluZGV4KX1faGVhZGVyYDtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50SWQoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPyBpdGVtLmlkICsgJ19jb250ZW50JyA6IGAke3RoaXMuZ2V0UGFuZWxJZChpbmRleCl9X2NvbnRlbnRgO1xuICAgIH1cblxuICAgIHVwZGF0ZUZvY3VzZWRIZWFkZXIoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBvcmlnaW5hbEV2ZW50LCBmb2N1c09uTmV4dCwgc2VsZkNoZWNrIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgcGFuZWxFbGVtZW50ID0gb3JpZ2luYWxFdmVudC5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXBjLXNlY3Rpb249XCJwYW5lbFwiXScpO1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBzZWxmQ2hlY2sgPyBmaW5kU2luZ2xlKHBhbmVsRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJoZWFkZXJcIl0nKSA6IGZvY3VzT25OZXh0ID8gdGhpcy5maW5kTmV4dEhlYWRlcihwYW5lbEVsZW1lbnQpIDogdGhpcy5maW5kUHJldkhlYWRlcihwYW5lbEVsZW1lbnQpO1xuXG4gICAgICAgIGhlYWRlciA/IHRoaXMuY2hhbmdlRm9jdXNlZEhlYWRlcihvcmlnaW5hbEV2ZW50LCBoZWFkZXIpIDogZm9jdXNPbk5leHQgPyB0aGlzLm9uSGVhZGVySG9tZUtleShvcmlnaW5hbEV2ZW50KSA6IHRoaXMub25IZWFkZXJFbmRLZXkob3JpZ2luYWxFdmVudCk7XG4gICAgfVxuXG4gICAgY2hhbmdlRm9jdXNlZEhlYWRlcihldmVudCwgZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50ICYmIGZvY3VzKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGZpbmROZXh0SGVhZGVyKHBhbmVsRWxlbWVudCwgc2VsZkNoZWNrID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbmV4dFBhbmVsRWxlbWVudCA9IHNlbGZDaGVjayA/IHBhbmVsRWxlbWVudCA6IHBhbmVsRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBmaW5kU2luZ2xlKG5leHRQYW5lbEVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaGVhZGVyXCJdJyk7XG5cbiAgICAgICAgcmV0dXJuIGhlYWRlckVsZW1lbnQgPyAoZ2V0QXR0cmlidXRlKGhlYWRlckVsZW1lbnQsICdkYXRhLXAtZGlzYWJsZWQnKSA/IHRoaXMuZmluZE5leHRIZWFkZXIoaGVhZGVyRWxlbWVudC5wYXJlbnRFbGVtZW50KSA6IGhlYWRlckVsZW1lbnQpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmaW5kUHJldkhlYWRlcihwYW5lbEVsZW1lbnQsIHNlbGZDaGVjayA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHByZXZQYW5lbEVsZW1lbnQgPSBzZWxmQ2hlY2sgPyBwYW5lbEVsZW1lbnQgOiBwYW5lbEVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICAgICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IGZpbmRTaW5nbGUocHJldlBhbmVsRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJoZWFkZXJcIl0nKTtcblxuICAgICAgICByZXR1cm4gaGVhZGVyRWxlbWVudCA/IChnZXRBdHRyaWJ1dGUoaGVhZGVyRWxlbWVudCwgJ2RhdGEtcC1kaXNhYmxlZCcpID8gdGhpcy5maW5kUHJldkhlYWRlcihoZWFkZXJFbGVtZW50LnBhcmVudEVsZW1lbnQpIDogaGVhZGVyRWxlbWVudCkgOiBudWxsO1xuICAgIH1cblxuICAgIGZpbmRGaXJzdEhlYWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZE5leHRIZWFkZXIodGhpcy5jb250YWluZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZmluZExhc3RIZWFkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRQcmV2SGVhZGVyKHRoaXMuY29udGFpbmVyVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25IZWFkZXJDbGljayhldmVudCwgaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGl0ZW0uY29tbWFuZCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBpdGVtIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBtb2RlbEl0ZW0gb2YgdGhpcy5tb2RlbCEpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gbW9kZWxJdGVtICYmIG1vZGVsSXRlbS5leHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICBtb2RlbEl0ZW0uZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtLmV4cGFuZGVkID0gIWl0ZW0uZXhwYW5kZWQ7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlSXRlbShldmVudCwgaXRlbSwgaW5kZXgpO1xuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIGZvY3VzKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIH1cblxuICAgIG9uSGVhZGVyS2V5RG93bihldmVudCwgaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMub25IZWFkZXJBcnJvd0Rvd25LZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGVhZGVyQXJyb3dVcEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMub25IZWFkZXJIb21lS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGVhZGVyRW5kS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgICAgIHRoaXMub25IZWFkZXJFbnRlcktleShldmVudCwgaXRlbSwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25IZWFkZXJBcnJvd0Rvd25LZXkoZXZlbnQpIHtcbiAgICAgICAgY29uc3Qgcm9vdExpc3QgPSBnZXRBdHRyaWJ1dGUoZXZlbnQuY3VycmVudFRhcmdldCwgJ2RhdGEtcC1oaWdobGlnaHQnKSA9PT0gdHJ1ZSA/IDxhbnk+ZmluZFNpbmdsZShldmVudC5jdXJyZW50VGFyZ2V0Lm5leHRFbGVtZW50U2libGluZywgJ1tkYXRhLXBjLXNlY3Rpb249XCJtZW51XCJdJykgOiBudWxsO1xuXG4gICAgICAgIHJvb3RMaXN0ID8gZm9jdXMocm9vdExpc3QpIDogdGhpcy51cGRhdGVGb2N1c2VkSGVhZGVyKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGZvY3VzT25OZXh0OiB0cnVlIH0pO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uSGVhZGVyQXJyb3dVcEtleShldmVudCkge1xuICAgICAgICBjb25zdCBwcmV2SGVhZGVyID0gdGhpcy5maW5kUHJldkhlYWRlcihldmVudC5jdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQpIHx8IHRoaXMuZmluZExhc3RIZWFkZXIoKTtcbiAgICAgICAgY29uc3Qgcm9vdExpc3QgPSBnZXRBdHRyaWJ1dGUocHJldkhlYWRlciwgJ2RhdGEtcC1oaWdobGlnaHQnKSA9PT0gdHJ1ZSA/IDxhbnk+ZmluZFNpbmdsZShwcmV2SGVhZGVyLm5leHRFbGVtZW50U2libGluZywgJ1tkYXRhLXBjLXNlY3Rpb249XCJtZW51XCJdJykgOiBudWxsO1xuXG4gICAgICAgIHJvb3RMaXN0ID8gZm9jdXMocm9vdExpc3QpIDogdGhpcy51cGRhdGVGb2N1c2VkSGVhZGVyKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGZvY3VzT25OZXh0OiBmYWxzZSB9KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkhlYWRlckhvbWVLZXkoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSGVhZGVyKGV2ZW50LCB0aGlzLmZpbmRGaXJzdEhlYWRlcigpKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkhlYWRlckVuZEtleShldmVudCkge1xuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRIZWFkZXIoZXZlbnQsIHRoaXMuZmluZExhc3RIZWFkZXIoKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25IZWFkZXJFbnRlcktleShldmVudCwgaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgY29uc3QgaGVhZGVyQWN0aW9uID0gPGFueT5maW5kU2luZ2xlKGV2ZW50LmN1cnJlbnRUYXJnZXQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaGVhZGVyYWN0aW9uXCJdJyk7XG5cbiAgICAgICAgaGVhZGVyQWN0aW9uID8gaGVhZGVyQWN0aW9uLmNsaWNrKCkgOiB0aGlzLm9uSGVhZGVyQ2xpY2soZXZlbnQsIGl0ZW0sIGluZGV4KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtQYW5lbE1lbnUsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1BhbmVsTWVudSwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbE1lbnVNb2R1bGUge31cbiJdfQ==