cax-design-system 2.8.1 → 2.8.2

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 (1723) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.d.ts +286 -3
  3. package/animate/index.d.ts +41 -3
  4. package/animateonscroll/index.d.ts +75 -3
  5. package/api/index.d.ts +1856 -3
  6. package/autocomplete/index.d.ts +799 -3
  7. package/autofocus/index.d.ts +29 -3
  8. package/avatar/index.d.ts +80 -3
  9. package/avatargroup/index.d.ts +30 -3
  10. package/badge/index.d.ts +67 -5
  11. package/baseicon/index.d.ts +18 -5
  12. package/blockui/index.d.ts +77 -3
  13. package/breadcrumb/index.d.ts +105 -3
  14. package/button/index.d.ts +170 -3
  15. package/buttongroup/index.d.ts +14 -5
  16. package/calendar/index.d.ts +935 -3
  17. package/card/index.d.ts +92 -3
  18. package/carousel/index.d.ts +290 -3
  19. package/cascadeselect/index.d.ts +564 -3
  20. package/cax-design-system-2.8.2.tgz +0 -0
  21. package/chart/index.d.ts +88 -3
  22. package/checkbox/index.d.ts +204 -3
  23. package/chip/index.d.ts +63 -3
  24. package/chips/index.d.ts +305 -3
  25. package/colorpicker/index.d.ts +265 -3
  26. package/commentbox/index.d.ts +138 -5
  27. package/confirmdialog/index.d.ts +336 -3
  28. package/confirmpopup/index.d.ts +148 -3
  29. package/contextmenu/index.d.ts +261 -3
  30. package/dataview/index.d.ts +457 -3
  31. package/defer/index.d.ts +40 -3
  32. package/dialog/index.d.ts +411 -3
  33. package/divider/index.d.ts +56 -3
  34. package/dock/index.d.ts +136 -3
  35. package/dom/index.d.ts +105 -3
  36. package/dragdrop/index.d.ts +120 -3
  37. package/dropdown/index.d.ts +818 -3
  38. package/dynamicdialog/index.d.ts +490 -3
  39. package/editor/index.d.ts +177 -3
  40. package/fesm2022/cax-design-system-accordion.mjs +2 -2
  41. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  42. package/fesm2022/cax-design-system-animate.mjs +1 -1
  43. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  44. package/fesm2022/cax-design-system-animateonscroll.mjs +1 -1
  45. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  46. package/fesm2022/cax-design-system-api.mjs +1 -1
  47. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  48. package/fesm2022/cax-design-system-autocomplete.mjs +1 -1
  49. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  50. package/fesm2022/cax-design-system-autofocus.mjs +1 -1
  51. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  52. package/fesm2022/cax-design-system-avatar.mjs +1 -1
  53. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  54. package/fesm2022/cax-design-system-avatargroup.mjs +1 -1
  55. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  56. package/fesm2022/cax-design-system-badge.mjs +1 -1
  57. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  58. package/fesm2022/cax-design-system-baseicon.mjs +1 -1
  59. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  60. package/fesm2022/cax-design-system-blockui.mjs +1 -1
  61. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  62. package/fesm2022/cax-design-system-breadcrumb.mjs +1 -1
  63. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  64. package/fesm2022/cax-design-system-button.mjs +1 -1
  65. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  66. package/fesm2022/cax-design-system-buttongroup.mjs +1 -1
  67. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  68. package/fesm2022/cax-design-system-calendar.mjs +3 -3
  69. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  70. package/fesm2022/cax-design-system-card.mjs +1 -1
  71. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  72. package/fesm2022/cax-design-system-carousel.mjs +1 -1
  73. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  74. package/fesm2022/cax-design-system-cascadeselect.mjs +1 -1
  75. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  76. package/fesm2022/cax-design-system-chart.mjs +1 -1
  77. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  78. package/fesm2022/cax-design-system-checkbox.mjs +1 -1
  79. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  80. package/fesm2022/cax-design-system-chip.mjs +1 -1
  81. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  82. package/fesm2022/cax-design-system-chips.mjs +2 -2
  83. package/fesm2022/cax-design-system-chips.mjs.map +1 -1
  84. package/fesm2022/cax-design-system-colorpicker.mjs +1 -1
  85. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  86. package/fesm2022/cax-design-system-commentbox.mjs +3 -3
  87. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  88. package/fesm2022/cax-design-system-confirmdialog.mjs +1 -1
  89. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  90. package/fesm2022/cax-design-system-confirmpopup.mjs +2 -2
  91. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  92. package/fesm2022/cax-design-system-contextmenu.mjs +1 -1
  93. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  94. package/fesm2022/cax-design-system-dataview.mjs +1 -1
  95. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  96. package/fesm2022/cax-design-system-defer.mjs +1 -1
  97. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  98. package/fesm2022/cax-design-system-dialog.mjs +1 -1
  99. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  100. package/fesm2022/cax-design-system-divider.mjs +1 -1
  101. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  102. package/fesm2022/cax-design-system-dock.mjs +1 -1
  103. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  104. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  105. package/fesm2022/cax-design-system-dragdrop.mjs +1 -1
  106. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  107. package/fesm2022/cax-design-system-dropdown.mjs +4 -4
  108. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  109. package/fesm2022/cax-design-system-dynamicdialog.mjs +1 -1
  110. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  111. package/fesm2022/cax-design-system-editor.mjs +1 -1
  112. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  113. package/fesm2022/cax-design-system-fieldset.mjs +2 -2
  114. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  115. package/fesm2022/cax-design-system-fileupload.mjs +1 -1
  116. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  117. package/fesm2022/cax-design-system-floatlabel.mjs +1 -1
  118. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  119. package/fesm2022/cax-design-system-focustrap.mjs +1 -1
  120. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  121. package/fesm2022/cax-design-system-galleria.mjs +1 -1
  122. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  123. package/fesm2022/cax-design-system-iconfield.mjs +1 -1
  124. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  125. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  126. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  127. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  128. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  129. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  130. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  131. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  132. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  133. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  134. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  135. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  136. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  137. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  138. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  139. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  140. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  141. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  142. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  143. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  144. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  145. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  146. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  147. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  148. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  149. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  150. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  151. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  152. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  153. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  154. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  155. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  156. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  157. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  158. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  159. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  160. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  161. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  162. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  163. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  164. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  165. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  166. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  167. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  168. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  169. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  170. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  171. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  172. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  173. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  174. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  175. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  176. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  177. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  178. package/fesm2022/cax-design-system-image.mjs +2 -2
  179. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  180. package/fesm2022/cax-design-system-inplace.mjs +1 -1
  181. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  182. package/fesm2022/cax-design-system-inputgroup.mjs +1 -1
  183. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  184. package/fesm2022/cax-design-system-inputgroupaddon.mjs +1 -1
  185. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  186. package/fesm2022/cax-design-system-inputicon.mjs +1 -1
  187. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  188. package/fesm2022/cax-design-system-inputmask.mjs +1 -1
  189. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  190. package/fesm2022/cax-design-system-inputnumber.mjs +1 -1
  191. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  192. package/fesm2022/cax-design-system-inputotp.mjs +1 -1
  193. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  194. package/fesm2022/cax-design-system-inputswitch.mjs +1 -1
  195. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  196. package/fesm2022/cax-design-system-inputtext.mjs +1 -1
  197. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  198. package/fesm2022/cax-design-system-inputtextarea.mjs +1 -1
  199. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  200. package/fesm2022/cax-design-system-keyfilter.mjs +1 -1
  201. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  202. package/fesm2022/cax-design-system-knob.mjs +1 -1
  203. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  204. package/fesm2022/cax-design-system-listbox.mjs +1 -1
  205. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  206. package/fesm2022/cax-design-system-logo.mjs +1 -1
  207. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  208. package/fesm2022/cax-design-system-megamenu.mjs +1 -1
  209. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  210. package/fesm2022/cax-design-system-menu.mjs +3 -3
  211. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  212. package/fesm2022/cax-design-system-menubar.mjs +1 -1
  213. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  214. package/fesm2022/cax-design-system-message.mjs +1 -1
  215. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  216. package/fesm2022/cax-design-system-messages.mjs +2 -2
  217. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  218. package/fesm2022/cax-design-system-metergroup.mjs +1 -1
  219. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  220. package/fesm2022/cax-design-system-multiselect.mjs +1 -1
  221. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  222. package/fesm2022/cax-design-system-navigation.mjs +3 -3
  223. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  224. package/fesm2022/cax-design-system-orderlist.mjs +1 -1
  225. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  226. package/fesm2022/cax-design-system-organizationchart.mjs +2 -2
  227. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  228. package/fesm2022/cax-design-system-overlay.mjs +2 -2
  229. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  230. package/fesm2022/cax-design-system-overlaypanel.mjs +3 -3
  231. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  232. package/fesm2022/cax-design-system-paginator.mjs +1 -1
  233. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  234. package/fesm2022/cax-design-system-panel.mjs +2 -2
  235. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  236. package/fesm2022/cax-design-system-panelmenu.mjs +2 -2
  237. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  238. package/fesm2022/cax-design-system-password.mjs +1 -1
  239. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  240. package/fesm2022/cax-design-system-picklist.mjs +1 -1
  241. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  242. package/fesm2022/cax-design-system-progressbar.mjs +1 -1
  243. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  244. package/fesm2022/cax-design-system-progressspinner.mjs +1 -1
  245. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  246. package/fesm2022/cax-design-system-radiobutton.mjs +1 -1
  247. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  248. package/fesm2022/cax-design-system-rating.mjs +1 -1
  249. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  250. package/fesm2022/cax-design-system-ripple.mjs +1 -1
  251. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  252. package/fesm2022/cax-design-system-scroller.mjs +2 -2
  253. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  254. package/fesm2022/cax-design-system-scrollpanel.mjs +1 -1
  255. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  256. package/fesm2022/cax-design-system-scrolltop.mjs +2 -2
  257. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  258. package/fesm2022/cax-design-system-selectbutton.mjs +1 -1
  259. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  260. package/fesm2022/cax-design-system-sidebar.mjs +4 -4
  261. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  262. package/fesm2022/cax-design-system-skeleton.mjs +1 -1
  263. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  264. package/fesm2022/cax-design-system-slidemenu.mjs +1 -1
  265. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  266. package/fesm2022/cax-design-system-slider.mjs +1 -1
  267. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  268. package/fesm2022/cax-design-system-speeddial.mjs +1 -1
  269. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  270. package/fesm2022/cax-design-system-spinner.mjs +1 -1
  271. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  272. package/fesm2022/cax-design-system-splitbutton.mjs +1 -1
  273. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  274. package/fesm2022/cax-design-system-splitter.mjs +1 -1
  275. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  276. package/fesm2022/cax-design-system-stepper.mjs +2 -2
  277. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  278. package/fesm2022/cax-design-system-steps.mjs +1 -1
  279. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  280. package/fesm2022/cax-design-system-styleclass.mjs +1 -1
  281. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  282. package/fesm2022/cax-design-system-table.mjs +1 -1
  283. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  284. package/fesm2022/cax-design-system-tableconfiguration.mjs +19 -11
  285. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  286. package/fesm2022/cax-design-system-tabmenu.mjs +1 -1
  287. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  288. package/fesm2022/cax-design-system-tabview.mjs +1 -1
  289. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  290. package/fesm2022/cax-design-system-tag.mjs +1 -1
  291. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  292. package/fesm2022/cax-design-system-terminal.mjs +1 -1
  293. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  294. package/fesm2022/cax-design-system-tieredmenu.mjs +1 -1
  295. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  296. package/fesm2022/cax-design-system-timeline.mjs +1 -1
  297. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  298. package/fesm2022/cax-design-system-toast.mjs +2 -2
  299. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  300. package/fesm2022/cax-design-system-togglebutton.mjs +1 -1
  301. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  302. package/fesm2022/cax-design-system-toggleswitch.mjs +1 -1
  303. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  304. package/fesm2022/cax-design-system-toolbar.mjs +1 -1
  305. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  306. package/fesm2022/cax-design-system-tooltip.mjs +1 -1
  307. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  308. package/fesm2022/cax-design-system-tree.mjs +1 -1
  309. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  310. package/fesm2022/cax-design-system-treeselect.mjs +1 -1
  311. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  312. package/fesm2022/cax-design-system-treetable.mjs +1 -1
  313. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  314. package/fesm2022/cax-design-system-tristatecheckbox.mjs +2 -2
  315. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  316. package/fesm2022/cax-design-system-upload.mjs +1 -1
  317. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  318. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  319. package/fesm2022/cax-design-system-virtualscroller.mjs +1 -1
  320. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  321. package/fieldset/index.d.ts +140 -3
  322. package/fileupload/index.d.ts +606 -3
  323. package/floatlabel/index.d.ts +19 -3
  324. package/focustrap/index.d.ts +35 -3
  325. package/galleria/index.d.ts +502 -3
  326. package/iconfield/index.d.ts +26 -3
  327. package/icons/angledoubledown/index.d.ts +9 -5
  328. package/icons/angledoubleleft/index.d.ts +9 -5
  329. package/icons/angledoubleright/index.d.ts +9 -5
  330. package/icons/angledoubleup/index.d.ts +9 -5
  331. package/icons/angledown/index.d.ts +9 -5
  332. package/icons/angleleft/index.d.ts +9 -5
  333. package/icons/angleright/index.d.ts +9 -5
  334. package/icons/angleup/index.d.ts +9 -5
  335. package/icons/arrowdown/index.d.ts +12 -5
  336. package/icons/arrowdownleft/index.d.ts +9 -5
  337. package/icons/arrowdownright/index.d.ts +9 -5
  338. package/icons/arrowleft/index.d.ts +11 -5
  339. package/icons/arrowright/index.d.ts +9 -5
  340. package/icons/arrowup/index.d.ts +11 -5
  341. package/icons/ban/index.d.ts +11 -5
  342. package/icons/bars/index.d.ts +9 -5
  343. package/icons/blank/index.d.ts +9 -5
  344. package/icons/calendar/index.d.ts +9 -5
  345. package/icons/caretleft/index.d.ts +9 -5
  346. package/icons/caretright/index.d.ts +9 -5
  347. package/icons/check/index.d.ts +9 -5
  348. package/icons/chevrondown/index.d.ts +9 -5
  349. package/icons/chevronleft/index.d.ts +9 -5
  350. package/icons/chevronright/index.d.ts +9 -5
  351. package/icons/chevronup/index.d.ts +9 -5
  352. package/icons/exclamationtriangle/index.d.ts +12 -5
  353. package/icons/eye/index.d.ts +9 -5
  354. package/icons/eyeslash/index.d.ts +11 -5
  355. package/icons/filter/index.d.ts +11 -5
  356. package/icons/filterslash/index.d.ts +11 -5
  357. package/icons/home/index.d.ts +11 -5
  358. package/icons/infocircle/index.d.ts +11 -5
  359. package/icons/minus/index.d.ts +9 -5
  360. package/icons/pencil/index.d.ts +11 -5
  361. package/icons/plus/index.d.ts +11 -5
  362. package/icons/refresh/index.d.ts +11 -5
  363. package/icons/search/index.d.ts +11 -5
  364. package/icons/searchminus/index.d.ts +11 -5
  365. package/icons/searchplus/index.d.ts +11 -5
  366. package/icons/sortalt/index.d.ts +11 -5
  367. package/icons/sortamountdown/index.d.ts +11 -5
  368. package/icons/sortamountupalt/index.d.ts +11 -5
  369. package/icons/spinner/index.d.ts +11 -5
  370. package/icons/star/index.d.ts +11 -5
  371. package/icons/starfill/index.d.ts +11 -5
  372. package/icons/thlarge/index.d.ts +11 -5
  373. package/icons/times/index.d.ts +9 -5
  374. package/icons/timescircle/index.d.ts +11 -5
  375. package/icons/trash/index.d.ts +11 -5
  376. package/icons/undo/index.d.ts +11 -5
  377. package/icons/upload/index.d.ts +11 -5
  378. package/icons/windowmaximize/index.d.ts +11 -5
  379. package/icons/windowminimize/index.d.ts +11 -5
  380. package/image/index.d.ts +228 -3
  381. package/index.d.ts +2 -5
  382. package/inplace/index.d.ts +130 -3
  383. package/inputgroup/index.d.ts +48 -3
  384. package/inputgroupaddon/index.d.ts +35 -3
  385. package/inputicon/index.d.ts +22 -3
  386. package/inputmask/index.d.ts +304 -3
  387. package/inputnumber/index.d.ts +443 -3
  388. package/inputotp/index.d.ts +189 -3
  389. package/inputswitch/index.d.ts +123 -3
  390. package/inputtext/index.d.ts +76 -5
  391. package/inputtextarea/index.d.ts +112 -3
  392. package/keyfilter/index.d.ts +65 -3
  393. package/knob/index.d.ts +179 -3
  394. package/listbox/index.d.ts +620 -3
  395. package/logo/index.d.ts +20 -5
  396. package/megamenu/index.d.ts +230 -3
  397. package/menu/index.d.ts +222 -3
  398. package/menubar/index.d.ts +290 -3
  399. package/message/index.d.ts +53 -3
  400. package/messages/index.d.ts +140 -3
  401. package/metergroup/index.d.ts +224 -3
  402. package/multiselect/index.d.ts +974 -3
  403. package/navigation/index.d.ts +105 -5
  404. package/orderlist/index.d.ts +381 -3
  405. package/organizationchart/index.d.ts +192 -3
  406. package/overlay/index.d.ts +246 -3
  407. package/overlaypanel/index.d.ts +170 -3
  408. package/package.json +229 -569
  409. package/paginator/index.d.ts +249 -3
  410. package/panel/index.d.ts +185 -3
  411. package/panelmenu/index.d.ts +249 -3
  412. package/password/index.d.ts +342 -3
  413. package/picklist/index.d.ts +696 -3
  414. package/progressbar/index.d.ts +61 -3
  415. package/progressspinner/index.d.ts +58 -3
  416. package/radiobutton/index.d.ts +173 -3
  417. package/rating/index.d.ts +181 -3
  418. package/resources/cax.min.scss +1 -1
  419. package/resources/cax.scss +1 -0
  420. package/resources/components/menu/menu.scss +1 -0
  421. package/resources/components/navigation/navigation.scss +1 -0
  422. package/resources/components/tableconfiguration/tableconfiguration.scss +10 -0
  423. package/ripple/index.d.ts +37 -3
  424. package/scroller/index.d.ts +528 -3
  425. package/scrollpanel/index.d.ts +116 -3
  426. package/scrolltop/index.d.ts +117 -3
  427. package/selectbutton/index.d.ts +184 -3
  428. package/sidebar/index.d.ts +213 -3
  429. package/skeleton/index.d.ts +69 -3
  430. package/slidemenu/index.d.ts +339 -3
  431. package/slider/index.d.ts +214 -3
  432. package/speeddial/index.d.ts +319 -3
  433. package/spinner/index.d.ts +93 -5
  434. package/splitbutton/index.d.ts +264 -3
  435. package/splitter/index.d.ts +201 -3
  436. package/stepper/index.d.ts +145 -3
  437. package/steps/index.d.ts +87 -3
  438. package/styleclass/index.d.ts +109 -3
  439. package/table/index.d.ts +2556 -3
  440. package/tableconfiguration/index.d.ts +25 -5
  441. package/tabmenu/index.d.ts +160 -3
  442. package/tabview/index.d.ts +357 -3
  443. package/tag/index.d.ts +82 -3
  444. package/terminal/index.d.ts +68 -3
  445. package/tieredmenu/index.d.ts +307 -3
  446. package/timeline/index.d.ts +100 -3
  447. package/toast/index.d.ts +202 -3
  448. package/togglebutton/index.d.ts +150 -3
  449. package/toggleswitch/index.d.ts +25 -5
  450. package/toolbar/index.d.ts +64 -3
  451. package/tooltip/index.d.ts +218 -3
  452. package/tree/index.d.ts +673 -3
  453. package/treeselect/index.d.ts +517 -3
  454. package/treetable/index.d.ts +1461 -3
  455. package/tristatecheckbox/index.d.ts +155 -3
  456. package/ts-helpers/index.d.ts +6 -5
  457. package/upload/index.d.ts +81 -5
  458. package/utils/index.d.ts +35 -5
  459. package/virtualscroller/index.d.ts +161 -3
  460. package/accordion/accordion.d.ts +0 -224
  461. package/accordion/accordion.interface.d.ts +0 -49
  462. package/accordion/accordion.module.d.ts +0 -13
  463. package/accordion/public_api.d.ts +0 -3
  464. package/animate/animate.d.ts +0 -40
  465. package/animate/public_api.d.ts +0 -1
  466. package/animateonscroll/animateonscroll.d.ts +0 -75
  467. package/animateonscroll/public_api.d.ts +0 -1
  468. package/api/blockableui.d.ts +0 -10
  469. package/api/caxconfig.d.ts +0 -24
  470. package/api/confirmaeventtype.d.ts +0 -8
  471. package/api/confirmation.d.ts +0 -96
  472. package/api/confirmationservice.d.ts +0 -30
  473. package/api/contextmenuservice.d.ts +0 -11
  474. package/api/filtermatchmode.d.ts +0 -22
  475. package/api/filtermetadata.d.ts +0 -18
  476. package/api/filteroperator.d.ts +0 -4
  477. package/api/filterservice.d.ts +0 -10
  478. package/api/lazyloadevent.d.ts +0 -47
  479. package/api/lazyloadmeta.d.ts +0 -19
  480. package/api/megamenuitem.d.ts +0 -130
  481. package/api/menuitem.d.ts +0 -176
  482. package/api/message.d.ts +0 -30
  483. package/api/messageservice.d.ts +0 -32
  484. package/api/overlayoptions.d.ts +0 -188
  485. package/api/overlayservice.d.ts +0 -9
  486. package/api/primeicons.d.ts +0 -313
  487. package/api/public_api.d.ts +0 -34
  488. package/api/scrolleroptions.d.ts +0 -116
  489. package/api/selectitem.d.ts +0 -12
  490. package/api/selectitemgroup.d.ts +0 -10
  491. package/api/shared.d.ts +0 -24
  492. package/api/sortevent.d.ts +0 -12
  493. package/api/sortmeta.d.ts +0 -8
  494. package/api/tablestate.d.ts +0 -60
  495. package/api/themegeneratorservice.d.ts +0 -12
  496. package/api/tooltipoptions.d.ts +0 -69
  497. package/api/translation.d.ts +0 -135
  498. package/api/translationkeys.d.ts +0 -50
  499. package/api/treedragdropservice.d.ts +0 -12
  500. package/api/treenode.d.ts +0 -91
  501. package/api/treenodedragevent.d.ts +0 -27
  502. package/api/treetablenode.d.ts +0 -36
  503. package/autocomplete/autocomplete.d.ts +0 -616
  504. package/autocomplete/autocomplete.interface.d.ts +0 -164
  505. package/autocomplete/autocomplete.module.d.ts +0 -20
  506. package/autocomplete/public_api.d.ts +0 -3
  507. package/autofocus/autofocus.d.ts +0 -28
  508. package/autofocus/public_api.d.ts +0 -1
  509. package/avatar/avatar.d.ts +0 -73
  510. package/avatar/avatar.module.d.ts +0 -7
  511. package/avatar/public_api.d.ts +0 -2
  512. package/avatargroup/avatargroup.d.ts +0 -21
  513. package/avatargroup/avatargroup.module.d.ts +0 -9
  514. package/avatargroup/public_api.d.ts +0 -2
  515. package/badge/badge.d.ts +0 -21
  516. package/badge/badge.directive.d.ts +0 -35
  517. package/badge/badge.module.d.ts +0 -10
  518. package/badge/public_api.d.ts +0 -3
  519. package/baseicon/baseicon.d.ts +0 -15
  520. package/baseicon/public_api.d.ts +0 -1
  521. package/blockui/blockui.d.ts +0 -64
  522. package/blockui/blockui.interface.d.ts +0 -11
  523. package/blockui/public_api.d.ts +0 -2
  524. package/breadcrumb/breadcrumb.d.ts +0 -55
  525. package/breadcrumb/breadcrumb.interface.d.ts +0 -38
  526. package/breadcrumb/breadcrumb.module.d.ts +0 -13
  527. package/breadcrumb/public_api.d.ts +0 -3
  528. package/button/button.d.ts +0 -85
  529. package/button/button.directive.d.ts +0 -49
  530. package/button/button.interface.d.ts +0 -30
  531. package/button/button.module.d.ts +0 -9
  532. package/button/public_api.d.ts +0 -4
  533. package/buttongroup/buttongroup.d.ts +0 -11
  534. package/buttongroup/public_api.d.ts +0 -1
  535. package/calendar/calendar.d.ts +0 -722
  536. package/calendar/calendar.interface.d.ts +0 -204
  537. package/calendar/calendar.module.d.ts +0 -9
  538. package/calendar/public_api.d.ts +0 -3
  539. package/card/card.d.ts +0 -53
  540. package/card/card.interface.d.ts +0 -27
  541. package/card/card.module.d.ts +0 -11
  542. package/card/public_api.d.ts +0 -3
  543. package/carousel/carousel.d.ts +0 -227
  544. package/carousel/carousel.interface.d.ts +0 -63
  545. package/carousel/public_api.d.ts +0 -2
  546. package/cascadeselect/cascadeselect.d.ts +0 -435
  547. package/cascadeselect/cascadeselect.interface.d.ts +0 -115
  548. package/cascadeselect/cascadeselect.module.d.ts +0 -15
  549. package/cascadeselect/public_api.d.ts +0 -3
  550. package/chart/chart.d.ts +0 -87
  551. package/chart/public_api.d.ts +0 -1
  552. package/checkbox/checkbox.d.ts +0 -168
  553. package/checkbox/checkbox.interface.d.ts +0 -26
  554. package/checkbox/checkbox.module.d.ts +0 -10
  555. package/checkbox/public_api.d.ts +0 -3
  556. package/chip/chip.d.ts +0 -38
  557. package/chip/chip.interface.d.ts +0 -15
  558. package/chip/chip.module.d.ts +0 -10
  559. package/chip/public_api.d.ts +0 -3
  560. package/chips/chips.d.ts +0 -233
  561. package/chips/chips.interface.d.ts +0 -58
  562. package/chips/chips.module.d.ts +0 -14
  563. package/chips/public_api.d.ts +0 -3
  564. package/colorpicker/colorpicker.d.ts +0 -240
  565. package/colorpicker/colorpicker.interface.d.ts +0 -15
  566. package/colorpicker/colorpicker.module.d.ts +0 -9
  567. package/colorpicker/public_api.d.ts +0 -3
  568. package/commentbox/commentbox.d.ts +0 -120
  569. package/commentbox/commentbox.module.d.ts +0 -17
  570. package/commentbox/public_api.d.ts +0 -2
  571. package/confirmdialog/confirmdialog.d.ts +0 -281
  572. package/confirmdialog/confirmdialog.interface.d.ts +0 -39
  573. package/confirmdialog/confirmdialog.module.d.ts +0 -15
  574. package/confirmdialog/public_api.d.ts +0 -3
  575. package/confirmpopup/confirmpopup.d.ts +0 -119
  576. package/confirmpopup/confirmpopup.interface.d.ts +0 -27
  577. package/confirmpopup/public_api.d.ts +0 -2
  578. package/contextmenu/contextmenu.d.ts +0 -260
  579. package/contextmenu/public_api.d.ts +0 -1
  580. package/dataview/dataview.d.ts +0 -274
  581. package/dataview/dataview.interface.d.ts +0 -183
  582. package/dataview/public_api.d.ts +0 -2
  583. package/defer/defer.d.ts +0 -39
  584. package/defer/public_api.d.ts +0 -1
  585. package/dialog/dialog.d.ts +0 -364
  586. package/dialog/dialog.interface.d.ts +0 -31
  587. package/dialog/dialog.module.d.ts +0 -15
  588. package/dialog/public_api.d.ts +0 -3
  589. package/divider/divider.d.ts +0 -49
  590. package/divider/divider.module.d.ts +0 -7
  591. package/divider/public_api.d.ts +0 -2
  592. package/dock/dock.d.ts +0 -115
  593. package/dock/dock.interface.d.ts +0 -19
  594. package/dock/public_api.d.ts +0 -2
  595. package/dom/connectedoverlayscrollhandler.d.ts +0 -9
  596. package/dom/domhandler.d.ts +0 -95
  597. package/dom/public_api.d.ts +0 -2
  598. package/dragdrop/dragdrop.d.ts +0 -112
  599. package/dragdrop/dragdrop.module.d.ts +0 -8
  600. package/dragdrop/public_api.d.ts +0 -2
  601. package/dropdown/dropdown-item.d.ts +0 -30
  602. package/dropdown/dropdown.d.ts +0 -628
  603. package/dropdown/dropdown.interface.d.ts +0 -154
  604. package/dropdown/dropdown.module.d.ts +0 -11
  605. package/dropdown/public_api.d.ts +0 -4
  606. package/dynamicdialog/dialogservice.d.ts +0 -35
  607. package/dynamicdialog/dynamicdialog-config.d.ts +0 -221
  608. package/dynamicdialog/dynamicdialog-injector.d.ts +0 -7
  609. package/dynamicdialog/dynamicdialog-ref.d.ts +0 -101
  610. package/dynamicdialog/dynamicdialog.d.ts +0 -124
  611. package/dynamicdialog/dynamicdialogcontent.d.ts +0 -8
  612. package/dynamicdialog/public_api.d.ts +0 -6
  613. package/editor/editor.d.ts +0 -104
  614. package/editor/editor.interface.d.ts +0 -64
  615. package/editor/editor.module.d.ts +0 -9
  616. package/editor/public_api.d.ts +0 -3
  617. package/esm2022/accordion/accordion.interface.mjs +0 -2
  618. package/esm2022/accordion/accordion.mjs +0 -598
  619. package/esm2022/accordion/accordion.module.mjs +0 -23
  620. package/esm2022/accordion/cax-design-system-accordion.mjs +0 -5
  621. package/esm2022/accordion/public_api.mjs +0 -4
  622. package/esm2022/animate/animate.mjs +0 -101
  623. package/esm2022/animate/cax-design-system-animate.mjs +0 -5
  624. package/esm2022/animate/public_api.mjs +0 -2
  625. package/esm2022/animateonscroll/animateonscroll.mjs +0 -185
  626. package/esm2022/animateonscroll/cax-design-system-animateonscroll.mjs +0 -5
  627. package/esm2022/animateonscroll/public_api.mjs +0 -2
  628. package/esm2022/api/blockableui.mjs +0 -2
  629. package/esm2022/api/cax-design-system-api.mjs +0 -5
  630. package/esm2022/api/caxconfig.mjs +0 -163
  631. package/esm2022/api/confirmaeventtype.mjs +0 -10
  632. package/esm2022/api/confirmation.mjs +0 -2
  633. package/esm2022/api/confirmationservice.mjs +0 -43
  634. package/esm2022/api/contextmenuservice.mjs +0 -22
  635. package/esm2022/api/filtermatchmode.mjs +0 -23
  636. package/esm2022/api/filtermetadata.mjs +0 -2
  637. package/esm2022/api/filteroperator.mjs +0 -5
  638. package/esm2022/api/filterservice.mjs +0 -225
  639. package/esm2022/api/lazyloadevent.mjs +0 -2
  640. package/esm2022/api/lazyloadmeta.mjs +0 -2
  641. package/esm2022/api/megamenuitem.mjs +0 -2
  642. package/esm2022/api/menuitem.mjs +0 -2
  643. package/esm2022/api/message.mjs +0 -2
  644. package/esm2022/api/messageservice.mjs +0 -47
  645. package/esm2022/api/overlayoptions.mjs +0 -2
  646. package/esm2022/api/overlayservice.mjs +0 -19
  647. package/esm2022/api/primeicons.mjs +0 -314
  648. package/esm2022/api/public_api.mjs +0 -35
  649. package/esm2022/api/scrolleroptions.mjs +0 -2
  650. package/esm2022/api/selectitem.mjs +0 -2
  651. package/esm2022/api/selectitemgroup.mjs +0 -2
  652. package/esm2022/api/shared.mjs +0 -65
  653. package/esm2022/api/sortevent.mjs +0 -2
  654. package/esm2022/api/sortmeta.mjs +0 -2
  655. package/esm2022/api/tablestate.mjs +0 -2
  656. package/esm2022/api/themegeneratorservice.mjs +0 -109
  657. package/esm2022/api/tooltipoptions.mjs +0 -2
  658. package/esm2022/api/translation.mjs +0 -2
  659. package/esm2022/api/translationkeys.mjs +0 -51
  660. package/esm2022/api/treedragdropservice.mjs +0 -21
  661. package/esm2022/api/treenode.mjs +0 -2
  662. package/esm2022/api/treenodedragevent.mjs +0 -2
  663. package/esm2022/api/treetablenode.mjs +0 -2
  664. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  665. package/esm2022/autocomplete/autocomplete.mjs +0 -1462
  666. package/esm2022/autocomplete/autocomplete.module.mjs +0 -30
  667. package/esm2022/autocomplete/cax-design-system-autocomplete.mjs +0 -5
  668. package/esm2022/autocomplete/public_api.mjs +0 -4
  669. package/esm2022/autofocus/autofocus.mjs +0 -78
  670. package/esm2022/autofocus/cax-design-system-autofocus.mjs +0 -5
  671. package/esm2022/autofocus/public_api.mjs +0 -2
  672. package/esm2022/avatar/avatar.mjs +0 -104
  673. package/esm2022/avatar/avatar.module.mjs +0 -16
  674. package/esm2022/avatar/cax-design-system-avatar.mjs +0 -5
  675. package/esm2022/avatar/public_api.mjs +0 -3
  676. package/esm2022/avatargroup/avatargroup.mjs +0 -32
  677. package/esm2022/avatargroup/avatargroup.module.mjs +0 -19
  678. package/esm2022/avatargroup/cax-design-system-avatargroup.mjs +0 -5
  679. package/esm2022/avatargroup/public_api.mjs +0 -3
  680. package/esm2022/badge/badge.directive.mjs +0 -193
  681. package/esm2022/badge/badge.mjs +0 -50
  682. package/esm2022/badge/badge.module.mjs +0 -20
  683. package/esm2022/badge/cax-design-system-badge.mjs +0 -5
  684. package/esm2022/badge/public_api.mjs +0 -4
  685. package/esm2022/baseicon/baseicon.mjs +0 -45
  686. package/esm2022/baseicon/cax-design-system-baseicon.mjs +0 -5
  687. package/esm2022/baseicon/public_api.mjs +0 -2
  688. package/esm2022/blockui/blockui.interface.mjs +0 -2
  689. package/esm2022/blockui/blockui.mjs +0 -206
  690. package/esm2022/blockui/cax-design-system-blockui.mjs +0 -5
  691. package/esm2022/blockui/public_api.mjs +0 -3
  692. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  693. package/esm2022/breadcrumb/breadcrumb.mjs +0 -120
  694. package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -23
  695. package/esm2022/breadcrumb/cax-design-system-breadcrumb.mjs +0 -5
  696. package/esm2022/breadcrumb/public_api.mjs +0 -4
  697. package/esm2022/button/button.directive.mjs +0 -259
  698. package/esm2022/button/button.interface.mjs +0 -2
  699. package/esm2022/button/button.mjs +0 -190
  700. package/esm2022/button/button.module.mjs +0 -18
  701. package/esm2022/button/cax-design-system-button.mjs +0 -5
  702. package/esm2022/button/public_api.mjs +0 -5
  703. package/esm2022/buttongroup/buttongroup.mjs +0 -38
  704. package/esm2022/buttongroup/cax-design-system-buttongroup.mjs +0 -5
  705. package/esm2022/buttongroup/public_api.mjs +0 -2
  706. package/esm2022/calendar/calendar.interface.mjs +0 -2
  707. package/esm2022/calendar/calendar.mjs +0 -3242
  708. package/esm2022/calendar/calendar.module.mjs +0 -18
  709. package/esm2022/calendar/cax-design-system-calendar.mjs +0 -5
  710. package/esm2022/calendar/public_api.mjs +0 -4
  711. package/esm2022/card/card.interface.mjs +0 -2
  712. package/esm2022/card/card.mjs +0 -117
  713. package/esm2022/card/card.module.mjs +0 -21
  714. package/esm2022/card/cax-design-system-card.mjs +0 -5
  715. package/esm2022/card/public_api.mjs +0 -4
  716. package/esm2022/carousel/carousel.interface.mjs +0 -2
  717. package/esm2022/carousel/carousel.mjs +0 -968
  718. package/esm2022/carousel/cax-design-system-carousel.mjs +0 -5
  719. package/esm2022/carousel/public_api.mjs +0 -3
  720. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  721. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1135
  722. package/esm2022/cascadeselect/cascadeselect.module.mjs +0 -25
  723. package/esm2022/cascadeselect/cax-design-system-cascadeselect.mjs +0 -5
  724. package/esm2022/cascadeselect/public_api.mjs +0 -4
  725. package/esm2022/cax-design-system.mjs +0 -5
  726. package/esm2022/chart/cax-design-system-chart.mjs +0 -5
  727. package/esm2022/chart/chart.mjs +0 -236
  728. package/esm2022/chart/public_api.mjs +0 -2
  729. package/esm2022/checkbox/cax-design-system-checkbox.mjs +0 -5
  730. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  731. package/esm2022/checkbox/checkbox.mjs +0 -318
  732. package/esm2022/checkbox/checkbox.module.mjs +0 -20
  733. package/esm2022/checkbox/public_api.mjs +0 -4
  734. package/esm2022/chip/cax-design-system-chip.mjs +0 -5
  735. package/esm2022/chip/chip.interface.mjs +0 -2
  736. package/esm2022/chip/chip.mjs +0 -90
  737. package/esm2022/chip/chip.module.mjs +0 -20
  738. package/esm2022/chip/public_api.mjs +0 -4
  739. package/esm2022/chips/cax-design-system-chips.mjs +0 -5
  740. package/esm2022/chips/chips.interface.mjs +0 -2
  741. package/esm2022/chips/chips.mjs +0 -610
  742. package/esm2022/chips/chips.module.mjs +0 -23
  743. package/esm2022/chips/public_api.mjs +0 -4
  744. package/esm2022/colorpicker/cax-design-system-colorpicker.mjs +0 -5
  745. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  746. package/esm2022/colorpicker/colorpicker.mjs +0 -715
  747. package/esm2022/colorpicker/colorpicker.module.mjs +0 -19
  748. package/esm2022/colorpicker/public_api.mjs +0 -4
  749. package/esm2022/commentbox/cax-design-system-commentbox.mjs +0 -5
  750. package/esm2022/commentbox/commentbox.mjs +0 -575
  751. package/esm2022/commentbox/commentbox.module.mjs +0 -27
  752. package/esm2022/commentbox/public_api.mjs +0 -3
  753. package/esm2022/confirmdialog/cax-design-system-confirmdialog.mjs +0 -5
  754. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  755. package/esm2022/confirmdialog/confirmdialog.mjs +0 -720
  756. package/esm2022/confirmdialog/confirmdialog.module.mjs +0 -25
  757. package/esm2022/confirmdialog/public_api.mjs +0 -4
  758. package/esm2022/confirmpopup/cax-design-system-confirmpopup.mjs +0 -5
  759. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  760. package/esm2022/confirmpopup/confirmpopup.mjs +0 -499
  761. package/esm2022/confirmpopup/public_api.mjs +0 -3
  762. package/esm2022/contextmenu/cax-design-system-contextmenu.mjs +0 -5
  763. package/esm2022/contextmenu/contextmenu.mjs +0 -1304
  764. package/esm2022/contextmenu/public_api.mjs +0 -2
  765. package/esm2022/dataview/cax-design-system-dataview.mjs +0 -5
  766. package/esm2022/dataview/dataview.interface.mjs +0 -2
  767. package/esm2022/dataview/dataview.mjs +0 -723
  768. package/esm2022/dataview/public_api.mjs +0 -3
  769. package/esm2022/defer/cax-design-system-defer.mjs +0 -5
  770. package/esm2022/defer/defer.mjs +0 -111
  771. package/esm2022/defer/public_api.mjs +0 -2
  772. package/esm2022/dialog/cax-design-system-dialog.mjs +0 -5
  773. package/esm2022/dialog/dialog.interface.mjs +0 -2
  774. package/esm2022/dialog/dialog.mjs +0 -959
  775. package/esm2022/dialog/dialog.module.mjs +0 -25
  776. package/esm2022/dialog/public_api.mjs +0 -4
  777. package/esm2022/divider/cax-design-system-divider.mjs +0 -5
  778. package/esm2022/divider/divider.mjs +0 -69
  779. package/esm2022/divider/divider.module.mjs +0 -16
  780. package/esm2022/divider/public_api.mjs +0 -3
  781. package/esm2022/dock/cax-design-system-dock.mjs +0 -5
  782. package/esm2022/dock/dock.interface.mjs +0 -2
  783. package/esm2022/dock/dock.mjs +0 -431
  784. package/esm2022/dock/public_api.mjs +0 -3
  785. package/esm2022/dom/cax-design-system-dom.mjs +0 -5
  786. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  787. package/esm2022/dom/domhandler.mjs +0 -722
  788. package/esm2022/dom/public_api.mjs +0 -3
  789. package/esm2022/dragdrop/cax-design-system-dragdrop.mjs +0 -5
  790. package/esm2022/dragdrop/dragdrop.mjs +0 -309
  791. package/esm2022/dragdrop/dragdrop.module.mjs +0 -18
  792. package/esm2022/dragdrop/public_api.mjs +0 -3
  793. package/esm2022/dropdown/cax-design-system-dropdown.mjs +0 -5
  794. package/esm2022/dropdown/dropdown-item.mjs +0 -72
  795. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  796. package/esm2022/dropdown/dropdown.mjs +0 -1599
  797. package/esm2022/dropdown/dropdown.module.mjs +0 -20
  798. package/esm2022/dropdown/public_api.mjs +0 -5
  799. package/esm2022/dynamicdialog/cax-design-system-dynamicdialog.mjs +0 -5
  800. package/esm2022/dynamicdialog/dialogservice.mjs +0 -102
  801. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -187
  802. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  803. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  804. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -696
  805. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -20
  806. package/esm2022/dynamicdialog/public_api.mjs +0 -7
  807. package/esm2022/editor/cax-design-system-editor.mjs +0 -5
  808. package/esm2022/editor/editor.interface.mjs +0 -2
  809. package/esm2022/editor/editor.mjs +0 -281
  810. package/esm2022/editor/editor.module.mjs +0 -19
  811. package/esm2022/editor/public_api.mjs +0 -4
  812. package/esm2022/fieldset/cax-design-system-fieldset.mjs +0 -5
  813. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  814. package/esm2022/fieldset/fieldset.mjs +0 -297
  815. package/esm2022/fieldset/public_api.mjs +0 -3
  816. package/esm2022/fileupload/cax-design-system-fileupload.mjs +0 -5
  817. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  818. package/esm2022/fileupload/fileupload.mjs +0 -1188
  819. package/esm2022/fileupload/public_api.mjs +0 -3
  820. package/esm2022/floatlabel/cax-design-system-floatlabel.mjs +0 -5
  821. package/esm2022/floatlabel/floatlabel.mjs +0 -28
  822. package/esm2022/floatlabel/floatlabel.module.mjs +0 -20
  823. package/esm2022/floatlabel/public_api.mjs +0 -3
  824. package/esm2022/focustrap/cax-design-system-focustrap.mjs +0 -5
  825. package/esm2022/focustrap/focustrap.mjs +0 -103
  826. package/esm2022/focustrap/public_api.mjs +0 -2
  827. package/esm2022/galleria/cax-design-system-galleria.mjs +0 -5
  828. package/esm2022/galleria/galleria.interface.mjs +0 -2
  829. package/esm2022/galleria/galleria.mjs +0 -1668
  830. package/esm2022/galleria/public_api.mjs +0 -3
  831. package/esm2022/iconfield/cax-design-system-iconfield.mjs +0 -5
  832. package/esm2022/iconfield/iconfield.mjs +0 -44
  833. package/esm2022/iconfield/public_api.mjs +0 -2
  834. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -35
  835. package/esm2022/icons/angledoubledown/cax-design-system-icons-angledoubledown.mjs +0 -5
  836. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  837. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -35
  838. package/esm2022/icons/angledoubleleft/cax-design-system-icons-angledoubleleft.mjs +0 -5
  839. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  840. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -35
  841. package/esm2022/icons/angledoubleright/cax-design-system-icons-angledoubleright.mjs +0 -5
  842. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  843. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -35
  844. package/esm2022/icons/angledoubleup/cax-design-system-icons-angledoubleup.mjs +0 -5
  845. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  846. package/esm2022/icons/angledown/angledown.mjs +0 -31
  847. package/esm2022/icons/angledown/cax-design-system-icons-angledown.mjs +0 -5
  848. package/esm2022/icons/angledown/public_api.mjs +0 -2
  849. package/esm2022/icons/angleleft/angleleft.mjs +0 -31
  850. package/esm2022/icons/angleleft/cax-design-system-icons-angleleft.mjs +0 -5
  851. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  852. package/esm2022/icons/angleright/angleright.mjs +0 -31
  853. package/esm2022/icons/angleright/cax-design-system-icons-angleright.mjs +0 -5
  854. package/esm2022/icons/angleright/public_api.mjs +0 -2
  855. package/esm2022/icons/angleup/angleup.mjs +0 -31
  856. package/esm2022/icons/angleup/cax-design-system-icons-angleup.mjs +0 -5
  857. package/esm2022/icons/angleup/public_api.mjs +0 -2
  858. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -54
  859. package/esm2022/icons/arrowdown/cax-design-system-icons-arrowdown.mjs +0 -5
  860. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  861. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -31
  862. package/esm2022/icons/arrowdownleft/cax-design-system-icons-arrowdownleft.mjs +0 -5
  863. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  864. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -31
  865. package/esm2022/icons/arrowdownright/cax-design-system-icons-arrowdownright.mjs +0 -5
  866. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  867. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -54
  868. package/esm2022/icons/arrowleft/cax-design-system-icons-arrowleft.mjs +0 -5
  869. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  870. package/esm2022/icons/arrowright/arrowright.mjs +0 -35
  871. package/esm2022/icons/arrowright/cax-design-system-icons-arrowright.mjs +0 -5
  872. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  873. package/esm2022/icons/arrowup/arrowup.mjs +0 -54
  874. package/esm2022/icons/arrowup/cax-design-system-icons-arrowup.mjs +0 -5
  875. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  876. package/esm2022/icons/ban/ban.mjs +0 -50
  877. package/esm2022/icons/ban/cax-design-system-icons-ban.mjs +0 -5
  878. package/esm2022/icons/ban/public_api.mjs +0 -2
  879. package/esm2022/icons/bars/bars.mjs +0 -35
  880. package/esm2022/icons/bars/cax-design-system-icons-bars.mjs +0 -5
  881. package/esm2022/icons/bars/public_api.mjs +0 -2
  882. package/esm2022/icons/blank/blank.mjs +0 -25
  883. package/esm2022/icons/blank/cax-design-system-icons-blank.mjs +0 -5
  884. package/esm2022/icons/blank/public_api.mjs +0 -2
  885. package/esm2022/icons/calendar/calendar.mjs +0 -31
  886. package/esm2022/icons/calendar/cax-design-system-icons-calendar.mjs +0 -5
  887. package/esm2022/icons/calendar/public_api.mjs +0 -2
  888. package/esm2022/icons/caretleft/caretleft.mjs +0 -31
  889. package/esm2022/icons/caretleft/cax-design-system-icons-caretleft.mjs +0 -5
  890. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  891. package/esm2022/icons/caretright/caretright.mjs +0 -31
  892. package/esm2022/icons/caretright/cax-design-system-icons-caretright.mjs +0 -5
  893. package/esm2022/icons/caretright/public_api.mjs +0 -2
  894. package/esm2022/icons/check/cax-design-system-icons-check.mjs +0 -5
  895. package/esm2022/icons/check/check.mjs +0 -31
  896. package/esm2022/icons/check/public_api.mjs +0 -2
  897. package/esm2022/icons/chevrondown/cax-design-system-icons-chevrondown.mjs +0 -5
  898. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -31
  899. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  900. package/esm2022/icons/chevronleft/cax-design-system-icons-chevronleft.mjs +0 -5
  901. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -31
  902. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  903. package/esm2022/icons/chevronright/cax-design-system-icons-chevronright.mjs +0 -5
  904. package/esm2022/icons/chevronright/chevronright.mjs +0 -31
  905. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  906. package/esm2022/icons/chevronup/cax-design-system-icons-chevronup.mjs +0 -5
  907. package/esm2022/icons/chevronup/chevronup.mjs +0 -31
  908. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  909. package/esm2022/icons/exclamationtriangle/cax-design-system-icons-exclamationtriangle.mjs +0 -5
  910. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -66
  911. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  912. package/esm2022/icons/eye/cax-design-system-icons-eye.mjs +0 -5
  913. package/esm2022/icons/eye/eye.mjs +0 -35
  914. package/esm2022/icons/eye/public_api.mjs +0 -2
  915. package/esm2022/icons/eyeslash/cax-design-system-icons-eyeslash.mjs +0 -5
  916. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -54
  917. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  918. package/esm2022/icons/filter/cax-design-system-icons-filter.mjs +0 -5
  919. package/esm2022/icons/filter/filter.mjs +0 -50
  920. package/esm2022/icons/filter/public_api.mjs +0 -2
  921. package/esm2022/icons/filterslash/cax-design-system-icons-filterslash.mjs +0 -5
  922. package/esm2022/icons/filterslash/filterslash.mjs +0 -54
  923. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  924. package/esm2022/icons/home/cax-design-system-icons-home.mjs +0 -5
  925. package/esm2022/icons/home/home.mjs +0 -54
  926. package/esm2022/icons/home/public_api.mjs +0 -2
  927. package/esm2022/icons/infocircle/cax-design-system-icons-infocircle.mjs +0 -5
  928. package/esm2022/icons/infocircle/infocircle.mjs +0 -54
  929. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  930. package/esm2022/icons/minus/cax-design-system-icons-minus.mjs +0 -5
  931. package/esm2022/icons/minus/minus.mjs +0 -32
  932. package/esm2022/icons/minus/public_api.mjs +0 -2
  933. package/esm2022/icons/pencil/cax-design-system-icons-pencil.mjs +0 -5
  934. package/esm2022/icons/pencil/pencil.mjs +0 -50
  935. package/esm2022/icons/pencil/public_api.mjs +0 -2
  936. package/esm2022/icons/plus/cax-design-system-icons-plus.mjs +0 -5
  937. package/esm2022/icons/plus/plus.mjs +0 -50
  938. package/esm2022/icons/plus/public_api.mjs +0 -2
  939. package/esm2022/icons/refresh/cax-design-system-icons-refresh.mjs +0 -5
  940. package/esm2022/icons/refresh/public_api.mjs +0 -2
  941. package/esm2022/icons/refresh/refresh.mjs +0 -54
  942. package/esm2022/icons/search/cax-design-system-icons-search.mjs +0 -5
  943. package/esm2022/icons/search/public_api.mjs +0 -2
  944. package/esm2022/icons/search/search.mjs +0 -54
  945. package/esm2022/icons/searchminus/cax-design-system-icons-searchminus.mjs +0 -5
  946. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  947. package/esm2022/icons/searchminus/searchminus.mjs +0 -54
  948. package/esm2022/icons/searchplus/cax-design-system-icons-searchplus.mjs +0 -5
  949. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  950. package/esm2022/icons/searchplus/searchplus.mjs +0 -54
  951. package/esm2022/icons/sortalt/cax-design-system-icons-sortalt.mjs +0 -5
  952. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  953. package/esm2022/icons/sortalt/sortalt.mjs +0 -62
  954. package/esm2022/icons/sortamountdown/cax-design-system-icons-sortamountdown.mjs +0 -5
  955. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  956. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -50
  957. package/esm2022/icons/sortamountupalt/cax-design-system-icons-sortamountupalt.mjs +0 -5
  958. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  959. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -50
  960. package/esm2022/icons/spinner/cax-design-system-icons-spinner.mjs +0 -5
  961. package/esm2022/icons/spinner/public_api.mjs +0 -2
  962. package/esm2022/icons/spinner/spinner.mjs +0 -50
  963. package/esm2022/icons/star/cax-design-system-icons-star.mjs +0 -5
  964. package/esm2022/icons/star/public_api.mjs +0 -2
  965. package/esm2022/icons/star/star.mjs +0 -50
  966. package/esm2022/icons/starfill/cax-design-system-icons-starfill.mjs +0 -5
  967. package/esm2022/icons/starfill/public_api.mjs +0 -2
  968. package/esm2022/icons/starfill/starfill.mjs +0 -50
  969. package/esm2022/icons/thlarge/cax-design-system-icons-thlarge.mjs +0 -5
  970. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  971. package/esm2022/icons/thlarge/thlarge.mjs +0 -54
  972. package/esm2022/icons/times/cax-design-system-icons-times.mjs +0 -5
  973. package/esm2022/icons/times/public_api.mjs +0 -2
  974. package/esm2022/icons/times/times.mjs +0 -31
  975. package/esm2022/icons/timescircle/cax-design-system-icons-timescircle.mjs +0 -5
  976. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  977. package/esm2022/icons/timescircle/timescircle.mjs +0 -54
  978. package/esm2022/icons/trash/cax-design-system-icons-trash.mjs +0 -5
  979. package/esm2022/icons/trash/public_api.mjs +0 -2
  980. package/esm2022/icons/trash/trash.mjs +0 -54
  981. package/esm2022/icons/undo/cax-design-system-icons-undo.mjs +0 -5
  982. package/esm2022/icons/undo/public_api.mjs +0 -2
  983. package/esm2022/icons/undo/undo.mjs +0 -54
  984. package/esm2022/icons/upload/cax-design-system-icons-upload.mjs +0 -5
  985. package/esm2022/icons/upload/public_api.mjs +0 -2
  986. package/esm2022/icons/upload/upload.mjs +0 -54
  987. package/esm2022/icons/windowmaximize/cax-design-system-icons-windowmaximize.mjs +0 -5
  988. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  989. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -54
  990. package/esm2022/icons/windowminimize/cax-design-system-icons-windowminimize.mjs +0 -5
  991. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  992. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -54
  993. package/esm2022/image/cax-design-system-image.mjs +0 -5
  994. package/esm2022/image/image.interface.mjs +0 -2
  995. package/esm2022/image/image.mjs +0 -418
  996. package/esm2022/image/image.module.mjs +0 -17
  997. package/esm2022/image/public_api.mjs +0 -4
  998. package/esm2022/inplace/cax-design-system-inplace.mjs +0 -5
  999. package/esm2022/inplace/inplace.interface.mjs +0 -2
  1000. package/esm2022/inplace/inplace.mjs +0 -243
  1001. package/esm2022/inplace/public_api.mjs +0 -3
  1002. package/esm2022/inputgroup/cax-design-system-inputgroup.mjs +0 -5
  1003. package/esm2022/inputgroup/inputgroup.mjs +0 -55
  1004. package/esm2022/inputgroup/inputgroup.module.mjs +0 -25
  1005. package/esm2022/inputgroup/public_api.mjs +0 -3
  1006. package/esm2022/inputgroupaddon/cax-design-system-inputgroupaddon.mjs +0 -5
  1007. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -32
  1008. package/esm2022/inputgroupaddon/inputgroupaddon.module.mjs +0 -24
  1009. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  1010. package/esm2022/inputicon/cax-design-system-inputicon.mjs +0 -5
  1011. package/esm2022/inputicon/inputicon.mjs +0 -38
  1012. package/esm2022/inputicon/public_api.mjs +0 -2
  1013. package/esm2022/inputmask/cax-design-system-inputmask.mjs +0 -5
  1014. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  1015. package/esm2022/inputmask/inputmask.mjs +0 -848
  1016. package/esm2022/inputmask/inputmask.module.mjs +0 -22
  1017. package/esm2022/inputmask/public_api.mjs +0 -4
  1018. package/esm2022/inputnumber/cax-design-system-inputnumber.mjs +0 -5
  1019. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  1020. package/esm2022/inputnumber/inputnumber.mjs +0 -1296
  1021. package/esm2022/inputnumber/inputnumber.module.mjs +0 -17
  1022. package/esm2022/inputnumber/public_api.mjs +0 -4
  1023. package/esm2022/inputotp/cax-design-system-inputotp.mjs +0 -5
  1024. package/esm2022/inputotp/inputotp.interface.mjs +0 -2
  1025. package/esm2022/inputotp/inputotp.mjs +0 -381
  1026. package/esm2022/inputotp/public_api.mjs +0 -3
  1027. package/esm2022/inputswitch/cax-design-system-inputswitch.mjs +0 -5
  1028. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  1029. package/esm2022/inputswitch/inputswitch.mjs +0 -244
  1030. package/esm2022/inputswitch/public_api.mjs +0 -3
  1031. package/esm2022/inputtext/cax-design-system-inputtext.mjs +0 -5
  1032. package/esm2022/inputtext/inputtext.component.mjs +0 -132
  1033. package/esm2022/inputtext/inputtext.directive.mjs +0 -76
  1034. package/esm2022/inputtext/inputtext.module.mjs +0 -20
  1035. package/esm2022/inputtext/public_api.mjs +0 -4
  1036. package/esm2022/inputtextarea/cax-design-system-inputtextarea.mjs +0 -5
  1037. package/esm2022/inputtextarea/inputtextarea.component.mjs +0 -155
  1038. package/esm2022/inputtextarea/inputtextarea.directive.mjs +0 -121
  1039. package/esm2022/inputtextarea/inputtextarea.module.mjs +0 -20
  1040. package/esm2022/inputtextarea/public_api.mjs +0 -4
  1041. package/esm2022/keyfilter/cax-design-system-keyfilter.mjs +0 -5
  1042. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  1043. package/esm2022/keyfilter/keyfilter.mjs +0 -265
  1044. package/esm2022/keyfilter/public_api.mjs +0 -3
  1045. package/esm2022/knob/cax-design-system-knob.mjs +0 -5
  1046. package/esm2022/knob/knob.mjs +0 -464
  1047. package/esm2022/knob/public_api.mjs +0 -2
  1048. package/esm2022/listbox/cax-design-system-listbox.mjs +0 -5
  1049. package/esm2022/listbox/listbox.interface.mjs +0 -2
  1050. package/esm2022/listbox/listbox.mjs +0 -1555
  1051. package/esm2022/listbox/public_api.mjs +0 -3
  1052. package/esm2022/logo/cax-design-system-logo.mjs +0 -5
  1053. package/esm2022/logo/logo.mjs +0 -45
  1054. package/esm2022/logo/logo.module.mjs +0 -16
  1055. package/esm2022/logo/public_api.mjs +0 -3
  1056. package/esm2022/megamenu/cax-design-system-megamenu.mjs +0 -5
  1057. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  1058. package/esm2022/megamenu/megamenu.mjs +0 -1190
  1059. package/esm2022/megamenu/public_api.mjs +0 -3
  1060. package/esm2022/menu/cax-design-system-menu.mjs +0 -5
  1061. package/esm2022/menu/menu.mjs +0 -626
  1062. package/esm2022/menu/menu.module.mjs +0 -22
  1063. package/esm2022/menu/public_api.mjs +0 -3
  1064. package/esm2022/menubar/cax-design-system-menubar.mjs +0 -5
  1065. package/esm2022/menubar/menubar.interface.mjs +0 -2
  1066. package/esm2022/menubar/menubar.mjs +0 -1249
  1067. package/esm2022/menubar/public_api.mjs +0 -3
  1068. package/esm2022/message/cax-design-system-message.mjs +0 -5
  1069. package/esm2022/message/message.mjs +0 -112
  1070. package/esm2022/message/public_api.mjs +0 -2
  1071. package/esm2022/messages/cax-design-system-messages.mjs +0 -5
  1072. package/esm2022/messages/messages.interface.mjs +0 -2
  1073. package/esm2022/messages/messages.mjs +0 -283
  1074. package/esm2022/messages/messages.module.mjs +0 -17
  1075. package/esm2022/messages/public_api.mjs +0 -4
  1076. package/esm2022/metergroup/cax-design-system-metergroup.mjs +0 -5
  1077. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  1078. package/esm2022/metergroup/metergroup.mjs +0 -280
  1079. package/esm2022/metergroup/public_api.mjs +0 -3
  1080. package/esm2022/multiselect/cax-design-system-multiselect.mjs +0 -5
  1081. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  1082. package/esm2022/multiselect/multiselect.mjs +0 -1875
  1083. package/esm2022/multiselect/multiselect.module.mjs +0 -30
  1084. package/esm2022/multiselect/public_api.mjs +0 -4
  1085. package/esm2022/navigation/cax-design-system-navigation.mjs +0 -5
  1086. package/esm2022/navigation/navigation.interface.mjs +0 -2
  1087. package/esm2022/navigation/navigation.mjs +0 -399
  1088. package/esm2022/navigation/navigation.module.mjs +0 -16
  1089. package/esm2022/navigation/public_api.mjs +0 -3
  1090. package/esm2022/orderlist/cax-design-system-orderlist.mjs +0 -5
  1091. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  1092. package/esm2022/orderlist/orderlist.mjs +0 -993
  1093. package/esm2022/orderlist/public_api.mjs +0 -3
  1094. package/esm2022/organizationchart/cax-design-system-organizationchart.mjs +0 -5
  1095. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  1096. package/esm2022/organizationchart/organizationchart.mjs +0 -416
  1097. package/esm2022/organizationchart/public_api.mjs +0 -3
  1098. package/esm2022/overlay/cax-design-system-overlay.mjs +0 -5
  1099. package/esm2022/overlay/overlay.mjs +0 -579
  1100. package/esm2022/overlay/overlay.module.mjs +0 -17
  1101. package/esm2022/overlay/public_api.mjs +0 -3
  1102. package/esm2022/overlaypanel/cax-design-system-overlaypanel.mjs +0 -5
  1103. package/esm2022/overlaypanel/overlaypanel.mjs +0 -470
  1104. package/esm2022/overlaypanel/overlaypanel.module.mjs +0 -17
  1105. package/esm2022/overlaypanel/public_api.mjs +0 -3
  1106. package/esm2022/paginator/cax-design-system-paginator.mjs +0 -5
  1107. package/esm2022/paginator/paginator.interface.mjs +0 -2
  1108. package/esm2022/paginator/paginator.mjs +0 -437
  1109. package/esm2022/paginator/paginator.module.mjs +0 -27
  1110. package/esm2022/paginator/public_api.mjs +0 -4
  1111. package/esm2022/panel/cax-design-system-panel.mjs +0 -5
  1112. package/esm2022/panel/panel.interface.mjs +0 -2
  1113. package/esm2022/panel/panel.mjs +0 -393
  1114. package/esm2022/panel/public_api.mjs +0 -3
  1115. package/esm2022/panelmenu/cax-design-system-panelmenu.mjs +0 -5
  1116. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  1117. package/esm2022/panelmenu/panelmenu.mjs +0 -1276
  1118. package/esm2022/panelmenu/public_api.mjs +0 -3
  1119. package/esm2022/password/cax-design-system-password.mjs +0 -5
  1120. package/esm2022/password/password.mjs +0 -1017
  1121. package/esm2022/password/public_api.mjs +0 -2
  1122. package/esm2022/picklist/cax-design-system-picklist.mjs +0 -5
  1123. package/esm2022/picklist/picklist.interface.mjs +0 -2
  1124. package/esm2022/picklist/picklist.mjs +0 -1909
  1125. package/esm2022/picklist/public_api.mjs +0 -3
  1126. package/esm2022/progressbar/cax-design-system-progressbar.mjs +0 -5
  1127. package/esm2022/progressbar/progressbar.mjs +0 -86
  1128. package/esm2022/progressbar/progressbar.module.mjs +0 -18
  1129. package/esm2022/progressbar/public_api.mjs +0 -3
  1130. package/esm2022/progressspinner/cax-design-system-progressspinner.mjs +0 -5
  1131. package/esm2022/progressspinner/progressspinner.mjs +0 -112
  1132. package/esm2022/progressspinner/progressspinner.module.mjs +0 -18
  1133. package/esm2022/progressspinner/public_api.mjs +0 -3
  1134. package/esm2022/public_api.mjs +0 -2
  1135. package/esm2022/radiobutton/cax-design-system-radiobutton.mjs +0 -5
  1136. package/esm2022/radiobutton/public_api.mjs +0 -4
  1137. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  1138. package/esm2022/radiobutton/radiobutton.mjs +0 -284
  1139. package/esm2022/radiobutton/radiobutton.module.mjs +0 -16
  1140. package/esm2022/rating/cax-design-system-rating.mjs +0 -5
  1141. package/esm2022/rating/public_api.mjs +0 -3
  1142. package/esm2022/rating/rating.interface.mjs +0 -2
  1143. package/esm2022/rating/rating.mjs +0 -388
  1144. package/esm2022/ripple/cax-design-system-ripple.mjs +0 -5
  1145. package/esm2022/ripple/public_api.mjs +0 -3
  1146. package/esm2022/ripple/ripple.mjs +0 -129
  1147. package/esm2022/ripple/ripple.module.mjs +0 -16
  1148. package/esm2022/scroller/cax-design-system-scroller.mjs +0 -5
  1149. package/esm2022/scroller/public_api.mjs +0 -4
  1150. package/esm2022/scroller/scroller.interface.mjs +0 -2
  1151. package/esm2022/scroller/scroller.mjs +0 -981
  1152. package/esm2022/scroller/scroller.module.mjs +0 -17
  1153. package/esm2022/scrollpanel/cax-design-system-scrollpanel.mjs +0 -5
  1154. package/esm2022/scrollpanel/public_api.mjs +0 -3
  1155. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  1156. package/esm2022/scrollpanel/scrollpanel.mjs +0 -501
  1157. package/esm2022/scrolltop/cax-design-system-scrolltop.mjs +0 -5
  1158. package/esm2022/scrolltop/public_api.mjs +0 -3
  1159. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  1160. package/esm2022/scrolltop/scrolltop.mjs +0 -282
  1161. package/esm2022/selectbutton/cax-design-system-selectbutton.mjs +0 -5
  1162. package/esm2022/selectbutton/public_api.mjs +0 -4
  1163. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  1164. package/esm2022/selectbutton/selectbutton.mjs +0 -303
  1165. package/esm2022/selectbutton/selectbutton.module.mjs +0 -21
  1166. package/esm2022/sidebar/cax-design-system-sidebar.mjs +0 -5
  1167. package/esm2022/sidebar/public_api.mjs +0 -4
  1168. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  1169. package/esm2022/sidebar/sidebar.mjs +0 -488
  1170. package/esm2022/sidebar/sidebar.module.mjs +0 -21
  1171. package/esm2022/skeleton/cax-design-system-skeleton.mjs +0 -5
  1172. package/esm2022/skeleton/public_api.mjs +0 -3
  1173. package/esm2022/skeleton/skeleton.mjs +0 -87
  1174. package/esm2022/skeleton/skeleton.module.mjs +0 -18
  1175. package/esm2022/slidemenu/cax-design-system-slidemenu.mjs +0 -5
  1176. package/esm2022/slidemenu/public_api.mjs +0 -3
  1177. package/esm2022/slidemenu/slidemenu.interface.mjs +0 -2
  1178. package/esm2022/slidemenu/slidemenu.mjs +0 -1501
  1179. package/esm2022/slider/cax-design-system-slider.mjs +0 -5
  1180. package/esm2022/slider/public_api.mjs +0 -3
  1181. package/esm2022/slider/slider.interface.mjs +0 -2
  1182. package/esm2022/slider/slider.mjs +0 -796
  1183. package/esm2022/speeddial/cax-design-system-speeddial.mjs +0 -5
  1184. package/esm2022/speeddial/public_api.mjs +0 -4
  1185. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  1186. package/esm2022/speeddial/speeddial.mjs +0 -611
  1187. package/esm2022/speeddial/speeddial.module.mjs +0 -24
  1188. package/esm2022/spinner/cax-design-system-spinner.mjs +0 -5
  1189. package/esm2022/spinner/public_api.mjs +0 -2
  1190. package/esm2022/spinner/spinner.mjs +0 -447
  1191. package/esm2022/splitbutton/cax-design-system-splitbutton.mjs +0 -5
  1192. package/esm2022/splitbutton/public_api.mjs +0 -4
  1193. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  1194. package/esm2022/splitbutton/splitbutton.mjs +0 -369
  1195. package/esm2022/splitbutton/splitbutton.module.mjs +0 -23
  1196. package/esm2022/splitter/cax-design-system-splitter.mjs +0 -5
  1197. package/esm2022/splitter/public_api.mjs +0 -4
  1198. package/esm2022/splitter/splitter.interface.mjs +0 -2
  1199. package/esm2022/splitter/splitter.mjs +0 -490
  1200. package/esm2022/splitter/splitter.module.mjs +0 -19
  1201. package/esm2022/stepper/cax-design-system-stepper.mjs +0 -5
  1202. package/esm2022/stepper/public_api.mjs +0 -3
  1203. package/esm2022/stepper/stepper.interface.mjs +0 -2
  1204. package/esm2022/stepper/stepper.mjs +0 -677
  1205. package/esm2022/steps/cax-design-system-steps.mjs +0 -5
  1206. package/esm2022/steps/public_api.mjs +0 -3
  1207. package/esm2022/steps/steps.mjs +0 -207
  1208. package/esm2022/steps/steps.module.mjs +0 -20
  1209. package/esm2022/styleclass/cax-design-system-styleclass.mjs +0 -5
  1210. package/esm2022/styleclass/public_api.mjs +0 -2
  1211. package/esm2022/styleclass/styleclass.mjs +0 -316
  1212. package/esm2022/table/cax-design-system-table.mjs +0 -5
  1213. package/esm2022/table/columnfilter.interface.mjs +0 -2
  1214. package/esm2022/table/components/cell-editor/cell-editor.mjs +0 -52
  1215. package/esm2022/table/components/column-filter/column-filter.mjs +0 -865
  1216. package/esm2022/table/components/column-filter-form-element/column-filter-form-element.mjs +0 -107
  1217. package/esm2022/table/components/sort-icon/sort-icon.mjs +0 -78
  1218. package/esm2022/table/components/table-body/table-body.mjs +0 -152
  1219. package/esm2022/table/components/table-checkbox/table-checkbox.mjs +0 -83
  1220. package/esm2022/table/components/table-header-checkbox/table-header-checkbox.mjs +0 -92
  1221. package/esm2022/table/components/table-radio-button/table-radio-button.mjs +0 -79
  1222. package/esm2022/table/directives/cancel-editable-row.directive.mjs +0 -32
  1223. package/esm2022/table/directives/cell-highlight.directive.mjs +0 -42
  1224. package/esm2022/table/directives/content-menu-row.directive.mjs +0 -70
  1225. package/esm2022/table/directives/dynamic-column-width.directive.mjs +0 -34
  1226. package/esm2022/table/directives/editable-column.directive.mjs +0 -344
  1227. package/esm2022/table/directives/editable-row.directive.mjs +0 -32
  1228. package/esm2022/table/directives/frozen-column.directive.mjs +0 -77
  1229. package/esm2022/table/directives/init-editable-row.directive.mjs +0 -32
  1230. package/esm2022/table/directives/reorderable-column.directive.mjs +0 -115
  1231. package/esm2022/table/directives/reorderable-row-handle.directive.mjs +0 -25
  1232. package/esm2022/table/directives/reorderable-row.directive.mjs +0 -122
  1233. package/esm2022/table/directives/resizable-column.directive.mjs +0 -123
  1234. package/esm2022/table/directives/row-group-header.directive.mjs +0 -26
  1235. package/esm2022/table/directives/row-toggler.directive.mjs +0 -42
  1236. package/esm2022/table/directives/save-editable-row.directive.mjs +0 -32
  1237. package/esm2022/table/directives/selectable-row-double-click.directive.mjs +0 -71
  1238. package/esm2022/table/directives/selectable-row.directive.mjs +0 -243
  1239. package/esm2022/table/directives/sortable-column.directive.mjs +0 -90
  1240. package/esm2022/table/public_api.mjs +0 -31
  1241. package/esm2022/table/table.interface.mjs +0 -2
  1242. package/esm2022/table/table.mjs +0 -2799
  1243. package/esm2022/table/table.module.mjs +0 -157
  1244. package/esm2022/table/table.service.mjs +0 -42
  1245. package/esm2022/tableconfiguration/cax-design-system-tableconfiguration.mjs +0 -5
  1246. package/esm2022/tableconfiguration/public_api.mjs +0 -3
  1247. package/esm2022/tableconfiguration/tableconfiguration.mjs +0 -60
  1248. package/esm2022/tableconfiguration/tableconfiguration.module.mjs +0 -16
  1249. package/esm2022/tabmenu/cax-design-system-tabmenu.mjs +0 -5
  1250. package/esm2022/tabmenu/public_api.mjs +0 -3
  1251. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  1252. package/esm2022/tabmenu/tabmenu.mjs +0 -576
  1253. package/esm2022/tabview/cax-design-system-tabview.mjs +0 -5
  1254. package/esm2022/tabview/public_api.mjs +0 -4
  1255. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1256. package/esm2022/tabview/tabview.mjs +0 -913
  1257. package/esm2022/tabview/tabview.module.mjs +0 -25
  1258. package/esm2022/tag/cax-design-system-tag.mjs +0 -5
  1259. package/esm2022/tag/public_api.mjs +0 -4
  1260. package/esm2022/tag/tag.interface.mjs +0 -2
  1261. package/esm2022/tag/tag.mjs +0 -95
  1262. package/esm2022/tag/tag.module.mjs +0 -19
  1263. package/esm2022/terminal/cax-design-system-terminal.mjs +0 -5
  1264. package/esm2022/terminal/public_api.mjs +0 -3
  1265. package/esm2022/terminal/terminal.mjs +0 -143
  1266. package/esm2022/terminal/terminalservice.mjs +0 -25
  1267. package/esm2022/tieredmenu/cax-design-system-tieredmenu.mjs +0 -5
  1268. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1269. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1270. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1289
  1271. package/esm2022/tieredmenu/tiredmenu.module.mjs +0 -23
  1272. package/esm2022/timeline/cax-design-system-timeline.mjs +0 -5
  1273. package/esm2022/timeline/public_api.mjs +0 -4
  1274. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1275. package/esm2022/timeline/timeline.mjs +0 -83
  1276. package/esm2022/timeline/timeline.module.mjs +0 -19
  1277. package/esm2022/toast/cax-design-system-toast.mjs +0 -5
  1278. package/esm2022/toast/public_api.mjs +0 -4
  1279. package/esm2022/toast/toast.interface.mjs +0 -2
  1280. package/esm2022/toast/toast.mjs +0 -324
  1281. package/esm2022/toast/toast.module.mjs +0 -18
  1282. package/esm2022/toast/toastitem.mjs +0 -170
  1283. package/esm2022/togglebutton/cax-design-system-togglebutton.mjs +0 -5
  1284. package/esm2022/togglebutton/public_api.mjs +0 -3
  1285. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1286. package/esm2022/togglebutton/togglebutton.mjs +0 -274
  1287. package/esm2022/toggleswitch/cax-design-system-toggleswitch.mjs +0 -5
  1288. package/esm2022/toggleswitch/public_api.mjs +0 -3
  1289. package/esm2022/toggleswitch/toggleswitch.mjs +0 -37
  1290. package/esm2022/toggleswitch/toggleswitch.module.mjs +0 -19
  1291. package/esm2022/toolbar/cax-design-system-toolbar.mjs +0 -5
  1292. package/esm2022/toolbar/public_api.mjs +0 -3
  1293. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1294. package/esm2022/toolbar/toolbar.mjs +0 -111
  1295. package/esm2022/tooltip/cax-design-system-tooltip.mjs +0 -5
  1296. package/esm2022/tooltip/public_api.mjs +0 -3
  1297. package/esm2022/tooltip/tooltip.mjs +0 -889
  1298. package/esm2022/tooltip/tooltip.module.mjs +0 -20
  1299. package/esm2022/tree/cax-design-system-tree.mjs +0 -5
  1300. package/esm2022/tree/public_api.mjs +0 -4
  1301. package/esm2022/tree/tree.interface.mjs +0 -2
  1302. package/esm2022/tree/tree.mjs +0 -1544
  1303. package/esm2022/tree/tree.module.mjs +0 -31
  1304. package/esm2022/treeselect/cax-design-system-treeselect.mjs +0 -5
  1305. package/esm2022/treeselect/public_api.mjs +0 -4
  1306. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1307. package/esm2022/treeselect/treeselect.mjs +0 -865
  1308. package/esm2022/treeselect/treeselect.module.mjs +0 -26
  1309. package/esm2022/treetable/cax-design-system-treetable.mjs +0 -5
  1310. package/esm2022/treetable/public_api.mjs +0 -3
  1311. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1312. package/esm2022/treetable/treetable.mjs +0 -4111
  1313. package/esm2022/tristatecheckbox/cax-design-system-tristatecheckbox.mjs +0 -5
  1314. package/esm2022/tristatecheckbox/public_api.mjs +0 -4
  1315. package/esm2022/tristatecheckbox/tristatecheckbox.interface.mjs +0 -2
  1316. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +0 -215
  1317. package/esm2022/tristatecheckbox/tristatecheckbox.module.mjs +0 -17
  1318. package/esm2022/ts-helpers/cax-design-system-ts-helpers.mjs +0 -5
  1319. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1320. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1321. package/esm2022/upload/cax-design-system-upload.mjs +0 -5
  1322. package/esm2022/upload/public_api.mjs +0 -3
  1323. package/esm2022/upload/upload.component.mjs +0 -367
  1324. package/esm2022/upload/upload.component.module.mjs +0 -21
  1325. package/esm2022/utils/cax-design-system-utils.mjs +0 -5
  1326. package/esm2022/utils/objectutils.mjs +0 -258
  1327. package/esm2022/utils/public_api.mjs +0 -5
  1328. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1329. package/esm2022/utils/zindexutils.mjs +0 -35
  1330. package/esm2022/virtualscroller/cax-design-system-virtualscroller.mjs +0 -5
  1331. package/esm2022/virtualscroller/public_api.mjs +0 -3
  1332. package/esm2022/virtualscroller/virtualscroller.interface.mjs +0 -2
  1333. package/esm2022/virtualscroller/virtualscroller.mjs +0 -215
  1334. package/fieldset/fieldset.d.ts +0 -93
  1335. package/fieldset/fieldset.interface.d.ts +0 -46
  1336. package/fieldset/public_api.d.ts +0 -2
  1337. package/fileupload/fileupload.d.ts +0 -380
  1338. package/fileupload/fileupload.interface.d.ts +0 -226
  1339. package/fileupload/public_api.d.ts +0 -2
  1340. package/floatlabel/floatlabel.d.ts +0 -9
  1341. package/floatlabel/floatlabel.module.d.ts +0 -10
  1342. package/floatlabel/public_api.d.ts +0 -2
  1343. package/focustrap/focustrap.d.ts +0 -34
  1344. package/focustrap/public_api.d.ts +0 -1
  1345. package/galleria/galleria.d.ts +0 -404
  1346. package/galleria/galleria.interface.d.ts +0 -97
  1347. package/galleria/public_api.d.ts +0 -2
  1348. package/iconfield/iconfield.d.ts +0 -25
  1349. package/iconfield/public_api.d.ts +0 -1
  1350. package/icons/angledoubledown/angledoubledown.d.ts +0 -6
  1351. package/icons/angledoubledown/public_api.d.ts +0 -1
  1352. package/icons/angledoubleleft/angledoubleleft.d.ts +0 -6
  1353. package/icons/angledoubleleft/public_api.d.ts +0 -1
  1354. package/icons/angledoubleright/angledoubleright.d.ts +0 -6
  1355. package/icons/angledoubleright/public_api.d.ts +0 -1
  1356. package/icons/angledoubleup/angledoubleup.d.ts +0 -6
  1357. package/icons/angledoubleup/public_api.d.ts +0 -1
  1358. package/icons/angledown/angledown.d.ts +0 -6
  1359. package/icons/angledown/public_api.d.ts +0 -1
  1360. package/icons/angleleft/angleleft.d.ts +0 -6
  1361. package/icons/angleleft/public_api.d.ts +0 -1
  1362. package/icons/angleright/angleright.d.ts +0 -6
  1363. package/icons/angleright/public_api.d.ts +0 -1
  1364. package/icons/angleup/angleup.d.ts +0 -6
  1365. package/icons/angleup/public_api.d.ts +0 -1
  1366. package/icons/arrowdown/arrowdown.d.ts +0 -9
  1367. package/icons/arrowdown/public_api.d.ts +0 -1
  1368. package/icons/arrowdownleft/arrowdownleft.d.ts +0 -6
  1369. package/icons/arrowdownleft/public_api.d.ts +0 -1
  1370. package/icons/arrowdownright/arrowdownright.d.ts +0 -6
  1371. package/icons/arrowdownright/public_api.d.ts +0 -1
  1372. package/icons/arrowleft/arrowleft.d.ts +0 -8
  1373. package/icons/arrowleft/public_api.d.ts +0 -1
  1374. package/icons/arrowright/arrowright.d.ts +0 -6
  1375. package/icons/arrowright/public_api.d.ts +0 -1
  1376. package/icons/arrowup/arrowup.d.ts +0 -8
  1377. package/icons/arrowup/public_api.d.ts +0 -1
  1378. package/icons/ban/ban.d.ts +0 -8
  1379. package/icons/ban/public_api.d.ts +0 -1
  1380. package/icons/bars/bars.d.ts +0 -6
  1381. package/icons/bars/public_api.d.ts +0 -1
  1382. package/icons/blank/blank.d.ts +0 -6
  1383. package/icons/blank/public_api.d.ts +0 -1
  1384. package/icons/calendar/calendar.d.ts +0 -6
  1385. package/icons/calendar/public_api.d.ts +0 -1
  1386. package/icons/caretleft/caretleft.d.ts +0 -6
  1387. package/icons/caretleft/public_api.d.ts +0 -1
  1388. package/icons/caretright/caretright.d.ts +0 -6
  1389. package/icons/caretright/public_api.d.ts +0 -1
  1390. package/icons/check/check.d.ts +0 -6
  1391. package/icons/check/public_api.d.ts +0 -1
  1392. package/icons/chevrondown/chevrondown.d.ts +0 -6
  1393. package/icons/chevrondown/public_api.d.ts +0 -1
  1394. package/icons/chevronleft/chevronleft.d.ts +0 -6
  1395. package/icons/chevronleft/public_api.d.ts +0 -1
  1396. package/icons/chevronright/chevronright.d.ts +0 -6
  1397. package/icons/chevronright/public_api.d.ts +0 -1
  1398. package/icons/chevronup/chevronup.d.ts +0 -6
  1399. package/icons/chevronup/public_api.d.ts +0 -1
  1400. package/icons/exclamationtriangle/exclamationtriangle.d.ts +0 -9
  1401. package/icons/exclamationtriangle/public_api.d.ts +0 -1
  1402. package/icons/eye/eye.d.ts +0 -6
  1403. package/icons/eye/public_api.d.ts +0 -1
  1404. package/icons/eyeslash/eyeslash.d.ts +0 -8
  1405. package/icons/eyeslash/public_api.d.ts +0 -1
  1406. package/icons/filter/filter.d.ts +0 -8
  1407. package/icons/filter/public_api.d.ts +0 -1
  1408. package/icons/filterslash/filterslash.d.ts +0 -8
  1409. package/icons/filterslash/public_api.d.ts +0 -1
  1410. package/icons/home/home.d.ts +0 -8
  1411. package/icons/home/public_api.d.ts +0 -1
  1412. package/icons/infocircle/infocircle.d.ts +0 -8
  1413. package/icons/infocircle/public_api.d.ts +0 -1
  1414. package/icons/minus/minus.d.ts +0 -6
  1415. package/icons/minus/public_api.d.ts +0 -1
  1416. package/icons/pencil/pencil.d.ts +0 -8
  1417. package/icons/pencil/public_api.d.ts +0 -1
  1418. package/icons/plus/plus.d.ts +0 -8
  1419. package/icons/plus/public_api.d.ts +0 -1
  1420. package/icons/refresh/public_api.d.ts +0 -1
  1421. package/icons/refresh/refresh.d.ts +0 -8
  1422. package/icons/search/public_api.d.ts +0 -1
  1423. package/icons/search/search.d.ts +0 -8
  1424. package/icons/searchminus/public_api.d.ts +0 -1
  1425. package/icons/searchminus/searchminus.d.ts +0 -8
  1426. package/icons/searchplus/public_api.d.ts +0 -1
  1427. package/icons/searchplus/searchplus.d.ts +0 -8
  1428. package/icons/sortalt/public_api.d.ts +0 -1
  1429. package/icons/sortalt/sortalt.d.ts +0 -8
  1430. package/icons/sortamountdown/public_api.d.ts +0 -1
  1431. package/icons/sortamountdown/sortamountdown.d.ts +0 -8
  1432. package/icons/sortamountupalt/public_api.d.ts +0 -1
  1433. package/icons/sortamountupalt/sortamountupalt.d.ts +0 -8
  1434. package/icons/spinner/public_api.d.ts +0 -1
  1435. package/icons/spinner/spinner.d.ts +0 -8
  1436. package/icons/star/public_api.d.ts +0 -1
  1437. package/icons/star/star.d.ts +0 -8
  1438. package/icons/starfill/public_api.d.ts +0 -1
  1439. package/icons/starfill/starfill.d.ts +0 -8
  1440. package/icons/thlarge/public_api.d.ts +0 -1
  1441. package/icons/thlarge/thlarge.d.ts +0 -8
  1442. package/icons/times/public_api.d.ts +0 -1
  1443. package/icons/times/times.d.ts +0 -6
  1444. package/icons/timescircle/public_api.d.ts +0 -1
  1445. package/icons/timescircle/timescircle.d.ts +0 -8
  1446. package/icons/trash/public_api.d.ts +0 -1
  1447. package/icons/trash/trash.d.ts +0 -8
  1448. package/icons/undo/public_api.d.ts +0 -1
  1449. package/icons/undo/undo.d.ts +0 -8
  1450. package/icons/upload/public_api.d.ts +0 -1
  1451. package/icons/upload/upload.d.ts +0 -8
  1452. package/icons/windowmaximize/public_api.d.ts +0 -1
  1453. package/icons/windowmaximize/windowmaximize.d.ts +0 -8
  1454. package/icons/windowminimize/public_api.d.ts +0 -1
  1455. package/icons/windowminimize/windowminimize.d.ts +0 -8
  1456. package/image/image.d.ts +0 -188
  1457. package/image/image.interface.d.ts +0 -31
  1458. package/image/image.module.d.ts +0 -8
  1459. package/image/public_api.d.ts +0 -3
  1460. package/inplace/inplace.d.ts +0 -109
  1461. package/inplace/inplace.interface.d.ts +0 -19
  1462. package/inplace/public_api.d.ts +0 -2
  1463. package/inputgroup/inputgroup.d.ts +0 -33
  1464. package/inputgroup/inputgroup.module.d.ts +0 -15
  1465. package/inputgroup/public_api.d.ts +0 -2
  1466. package/inputgroupaddon/inputgroupaddon.d.ts +0 -21
  1467. package/inputgroupaddon/inputgroupaddon.module.d.ts +0 -14
  1468. package/inputgroupaddon/public_api.d.ts +0 -2
  1469. package/inputicon/inputicon.d.ts +0 -21
  1470. package/inputicon/public_api.d.ts +0 -1
  1471. package/inputmask/inputmask.d.ts +0 -273
  1472. package/inputmask/inputmask.interface.d.ts +0 -19
  1473. package/inputmask/inputmask.module.d.ts +0 -12
  1474. package/inputmask/public_api.d.ts +0 -3
  1475. package/inputnumber/inputnumber.d.ts +0 -397
  1476. package/inputnumber/inputnumber.interface.d.ts +0 -38
  1477. package/inputnumber/inputnumber.module.d.ts +0 -8
  1478. package/inputnumber/public_api.d.ts +0 -3
  1479. package/inputotp/inputotp.d.ts +0 -123
  1480. package/inputotp/inputotp.interface.d.ts +0 -65
  1481. package/inputotp/public_api.d.ts +0 -2
  1482. package/inputswitch/inputswitch.d.ts +0 -106
  1483. package/inputswitch/inputswitch.interface.d.ts +0 -15
  1484. package/inputswitch/public_api.d.ts +0 -2
  1485. package/inputtext/inputtext.component.d.ts +0 -43
  1486. package/inputtext/inputtext.directive.d.ts +0 -25
  1487. package/inputtext/inputtext.module.d.ts +0 -10
  1488. package/inputtext/public_api.d.ts +0 -3
  1489. package/inputtextarea/inputtextarea.component.d.ts +0 -57
  1490. package/inputtextarea/inputtextarea.directive.d.ts +0 -47
  1491. package/inputtextarea/inputtextarea.module.d.ts +0 -10
  1492. package/inputtextarea/public_api.d.ts +0 -3
  1493. package/keyfilter/keyfilter.d.ts +0 -58
  1494. package/keyfilter/keyfilter.interface.d.ts +0 -5
  1495. package/keyfilter/public_api.d.ts +0 -2
  1496. package/knob/knob.d.ts +0 -178
  1497. package/knob/public_api.d.ts +0 -1
  1498. package/listbox/listbox.d.ts +0 -463
  1499. package/listbox/listbox.interface.d.ts +0 -156
  1500. package/listbox/public_api.d.ts +0 -2
  1501. package/logo/logo.d.ts +0 -11
  1502. package/logo/logo.module.d.ts +0 -7
  1503. package/logo/public_api.d.ts +0 -2
  1504. package/megamenu/megamenu.d.ts +0 -198
  1505. package/megamenu/megamenu.interface.d.ts +0 -31
  1506. package/megamenu/public_api.d.ts +0 -2
  1507. package/menu/menu.d.ts +0 -210
  1508. package/menu/menu.module.d.ts +0 -12
  1509. package/menu/public_api.d.ts +0 -2
  1510. package/menubar/menubar.d.ts +0 -248
  1511. package/menubar/menubar.interface.d.ts +0 -40
  1512. package/menubar/public_api.d.ts +0 -2
  1513. package/message/message.d.ts +0 -52
  1514. package/message/public_api.d.ts +0 -1
  1515. package/messages/messages.d.ts +0 -115
  1516. package/messages/messages.interface.d.ts +0 -18
  1517. package/messages/messages.module.d.ts +0 -8
  1518. package/messages/public_api.d.ts +0 -3
  1519. package/metergroup/metergroup.d.ts +0 -101
  1520. package/metergroup/metergroup.interface.d.ts +0 -122
  1521. package/metergroup/public_api.d.ts +0 -2
  1522. package/multiselect/multiselect.d.ts +0 -710
  1523. package/multiselect/multiselect.interface.d.ts +0 -247
  1524. package/multiselect/multiselect.module.d.ts +0 -20
  1525. package/multiselect/public_api.d.ts +0 -3
  1526. package/navigation/navigation.d.ts +0 -70
  1527. package/navigation/navigation.interface.d.ts +0 -26
  1528. package/navigation/navigation.module.d.ts +0 -7
  1529. package/navigation/public_api.d.ts +0 -2
  1530. package/orderlist/orderlist.d.ts +0 -270
  1531. package/orderlist/orderlist.interface.d.ts +0 -110
  1532. package/orderlist/public_api.d.ts +0 -2
  1533. package/organizationchart/organizationchart.d.ts +0 -132
  1534. package/organizationchart/organizationchart.interface.d.ts +0 -59
  1535. package/organizationchart/public_api.d.ts +0 -2
  1536. package/overlay/overlay.d.ts +0 -238
  1537. package/overlay/overlay.module.d.ts +0 -8
  1538. package/overlay/public_api.d.ts +0 -2
  1539. package/overlaypanel/overlaypanel.d.ts +0 -162
  1540. package/overlaypanel/overlaypanel.module.d.ts +0 -8
  1541. package/overlaypanel/public_api.d.ts +0 -2
  1542. package/paginator/paginator.d.ts +0 -195
  1543. package/paginator/paginator.interface.d.ts +0 -37
  1544. package/paginator/paginator.module.d.ts +0 -17
  1545. package/paginator/public_api.d.ts +0 -3
  1546. package/panel/panel.d.ts +0 -126
  1547. package/panel/panel.interface.d.ts +0 -58
  1548. package/panel/public_api.d.ts +0 -2
  1549. package/panelmenu/panelmenu.d.ts +0 -225
  1550. package/panelmenu/panelmenu.interface.d.ts +0 -23
  1551. package/panelmenu/public_api.d.ts +0 -2
  1552. package/password/password.d.ts +0 -342
  1553. package/password/public_api.d.ts +0 -1
  1554. package/picklist/picklist.d.ts +0 -453
  1555. package/picklist/picklist.interface.d.ts +0 -242
  1556. package/picklist/public_api.d.ts +0 -2
  1557. package/progressbar/progressbar.d.ts +0 -54
  1558. package/progressbar/progressbar.module.d.ts +0 -8
  1559. package/progressbar/public_api.d.ts +0 -2
  1560. package/progressspinner/progressspinner.d.ts +0 -50
  1561. package/progressspinner/progressspinner.module.d.ts +0 -8
  1562. package/progressspinner/public_api.d.ts +0 -2
  1563. package/public_api.d.ts +0 -2
  1564. package/radiobutton/public_api.d.ts +0 -3
  1565. package/radiobutton/radiobutton.d.ts +0 -150
  1566. package/radiobutton/radiobutton.interface.d.ts +0 -15
  1567. package/radiobutton/radiobutton.module.d.ts +0 -7
  1568. package/rating/public_api.d.ts +0 -2
  1569. package/rating/rating.d.ts +0 -146
  1570. package/rating/rating.interface.d.ts +0 -34
  1571. package/ripple/public_api.d.ts +0 -2
  1572. package/ripple/ripple.d.ts +0 -30
  1573. package/ripple/ripple.module.d.ts +0 -7
  1574. package/scroller/public_api.d.ts +0 -3
  1575. package/scroller/scroller.d.ts +0 -343
  1576. package/scroller/scroller.interface.d.ts +0 -177
  1577. package/scroller/scroller.module.d.ts +0 -8
  1578. package/scrollpanel/public_api.d.ts +0 -2
  1579. package/scrollpanel/scrollpanel.d.ts +0 -103
  1580. package/scrollpanel/scrollpanel.interface.d.ts +0 -11
  1581. package/scrolltop/public_api.d.ts +0 -2
  1582. package/scrolltop/scrolltop.d.ts +0 -97
  1583. package/scrolltop/scrolltop.interface.d.ts +0 -18
  1584. package/selectbutton/public_api.d.ts +0 -3
  1585. package/selectbutton/selectbutton.d.ts +0 -128
  1586. package/selectbutton/selectbutton.interface.d.ts +0 -45
  1587. package/selectbutton/selectbutton.module.d.ts +0 -11
  1588. package/sidebar/public_api.d.ts +0 -3
  1589. package/sidebar/sidebar.d.ts +0 -173
  1590. package/sidebar/sidebar.interface.d.ts +0 -27
  1591. package/sidebar/sidebar.module.d.ts +0 -12
  1592. package/skeleton/public_api.d.ts +0 -2
  1593. package/skeleton/skeleton.d.ts +0 -61
  1594. package/skeleton/skeleton.module.d.ts +0 -8
  1595. package/slidemenu/public_api.d.ts +0 -2
  1596. package/slidemenu/slidemenu.d.ts +0 -322
  1597. package/slidemenu/slidemenu.interface.d.ts +0 -15
  1598. package/slider/public_api.d.ts +0 -2
  1599. package/slider/slider.d.ts +0 -174
  1600. package/slider/slider.interface.d.ts +0 -38
  1601. package/speeddial/public_api.d.ts +0 -3
  1602. package/speeddial/speeddial.d.ts +0 -277
  1603. package/speeddial/speeddial.interface.d.ts +0 -28
  1604. package/speeddial/speeddial.module.d.ts +0 -14
  1605. package/spinner/public_api.d.ts +0 -1
  1606. package/spinner/spinner.d.ts +0 -90
  1607. package/splitbutton/public_api.d.ts +0 -3
  1608. package/splitbutton/splitbutton.d.ts +0 -222
  1609. package/splitbutton/splitbutton.interface.d.ts +0 -30
  1610. package/splitbutton/splitbutton.module.d.ts +0 -13
  1611. package/splitter/public_api.d.ts +0 -3
  1612. package/splitter/splitter.d.ts +0 -158
  1613. package/splitter/splitter.interface.d.ts +0 -34
  1614. package/splitter/splitter.module.d.ts +0 -9
  1615. package/stepper/public_api.d.ts +0 -2
  1616. package/stepper/stepper.d.ts +0 -117
  1617. package/stepper/stepper.interface.d.ts +0 -26
  1618. package/steps/public_api.d.ts +0 -2
  1619. package/steps/steps.d.ts +0 -77
  1620. package/steps/steps.module.d.ts +0 -10
  1621. package/styleclass/public_api.d.ts +0 -1
  1622. package/styleclass/styleclass.d.ts +0 -108
  1623. package/table/columnfilter.interface.d.ts +0 -247
  1624. package/table/components/cell-editor/cell-editor.d.ts +0 -20
  1625. package/table/components/column-filter/column-filter.d.ts +0 -291
  1626. package/table/components/column-filter-form-element/column-filter-form-element.d.ts +0 -37
  1627. package/table/components/sort-icon/sort-icon.d.ts +0 -22
  1628. package/table/components/table-body/table-body.d.ts +0 -36
  1629. package/table/components/table-checkbox/table-checkbox.d.ts +0 -32
  1630. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +0 -29
  1631. package/table/components/table-radio-button/table-radio-button.d.ts +0 -29
  1632. package/table/directives/cancel-editable-row.directive.d.ts +0 -11
  1633. package/table/directives/cell-highlight.directive.d.ts +0 -14
  1634. package/table/directives/content-menu-row.directive.d.ts +0 -22
  1635. package/table/directives/dynamic-column-width.directive.d.ts +0 -12
  1636. package/table/directives/editable-column.directive.d.ts +0 -40
  1637. package/table/directives/editable-row.directive.d.ts +0 -12
  1638. package/table/directives/frozen-column.directive.d.ts +0 -16
  1639. package/table/directives/init-editable-row.directive.d.ts +0 -11
  1640. package/table/directives/reorderable-column.directive.d.ts +0 -32
  1641. package/table/directives/reorderable-row-handle.directive.d.ts +0 -9
  1642. package/table/directives/reorderable-row.directive.d.ts +0 -34
  1643. package/table/directives/resizable-column.directive.d.ts +0 -35
  1644. package/table/directives/row-group-header.directive.d.ts +0 -9
  1645. package/table/directives/row-toggler.directive.d.ts +0 -13
  1646. package/table/directives/save-editable-row.directive.d.ts +0 -11
  1647. package/table/directives/selectable-row-double-click.directive.d.ts +0 -22
  1648. package/table/directives/selectable-row.directive.d.ts +0 -37
  1649. package/table/directives/sortable-column.directive.d.ts +0 -24
  1650. package/table/public_api.d.ts +0 -30
  1651. package/table/table.d.ts +0 -871
  1652. package/table/table.interface.d.ts +0 -623
  1653. package/table/table.module.d.ts +0 -34
  1654. package/table/table.service.d.ts +0 -24
  1655. package/tableconfiguration/public_api.d.ts +0 -2
  1656. package/tableconfiguration/tableconfiguration.d.ts +0 -15
  1657. package/tableconfiguration/tableconfiguration.module.d.ts +0 -7
  1658. package/tabmenu/public_api.d.ts +0 -2
  1659. package/tabmenu/tabmenu.d.ts +0 -126
  1660. package/tabmenu/tabmenu.interface.d.ts +0 -32
  1661. package/tabview/public_api.d.ts +0 -3
  1662. package/tabview/tabview.d.ts +0 -293
  1663. package/tabview/tabview.interface.d.ts +0 -49
  1664. package/tabview/tabview.module.d.ts +0 -15
  1665. package/tag/public_api.d.ts +0 -3
  1666. package/tag/tag.d.ts +0 -61
  1667. package/tag/tag.interface.d.ts +0 -11
  1668. package/tag/tag.module.d.ts +0 -9
  1669. package/terminal/public_api.d.ts +0 -2
  1670. package/terminal/terminal.d.ts +0 -56
  1671. package/terminal/terminalservice.d.ts +0 -11
  1672. package/tieredmenu/public_api.d.ts +0 -3
  1673. package/tieredmenu/tieredmenu.d.ts +0 -266
  1674. package/tieredmenu/tieredmenu.interface.d.ts +0 -27
  1675. package/tieredmenu/tiredmenu.module.d.ts +0 -13
  1676. package/timeline/public_api.d.ts +0 -3
  1677. package/timeline/timeline.d.ts +0 -47
  1678. package/timeline/timeline.interface.d.ts +0 -43
  1679. package/timeline/timeline.module.d.ts +0 -9
  1680. package/toast/public_api.d.ts +0 -3
  1681. package/toast/toast.d.ts +0 -142
  1682. package/toast/toast.interface.d.ts +0 -52
  1683. package/toast/toast.module.d.ts +0 -9
  1684. package/toast/toastitem.d.ts +0 -37
  1685. package/togglebutton/public_api.d.ts +0 -2
  1686. package/togglebutton/togglebutton.d.ts +0 -115
  1687. package/togglebutton/togglebutton.interface.d.ts +0 -34
  1688. package/toggleswitch/public_api.d.ts +0 -2
  1689. package/toggleswitch/toggleswitch.d.ts +0 -14
  1690. package/toggleswitch/toggleswitch.module.d.ts +0 -9
  1691. package/toolbar/public_api.d.ts +0 -2
  1692. package/toolbar/toolbar.d.ts +0 -43
  1693. package/toolbar/toolbar.interface.d.ts +0 -19
  1694. package/tooltip/public_api.d.ts +0 -2
  1695. package/tooltip/tooltip.d.ts +0 -208
  1696. package/tooltip/tooltip.module.d.ts +0 -10
  1697. package/tree/public_api.d.ts +0 -3
  1698. package/tree/tree.d.ts +0 -461
  1699. package/tree/tree.interface.d.ts +0 -193
  1700. package/tree/tree.module.d.ts +0 -21
  1701. package/treeselect/public_api.d.ts +0 -3
  1702. package/treeselect/treeselect.d.ts +0 -394
  1703. package/treeselect/treeselect.interface.d.ts +0 -108
  1704. package/treeselect/treeselect.module.d.ts +0 -16
  1705. package/treetable/public_api.d.ts +0 -2
  1706. package/treetable/treetable.d.ts +0 -988
  1707. package/treetable/treetable.interface.d.ts +0 -472
  1708. package/tristatecheckbox/public_api.d.ts +0 -3
  1709. package/tristatecheckbox/tristatecheckbox.d.ts +0 -117
  1710. package/tristatecheckbox/tristatecheckbox.interface.d.ts +0 -30
  1711. package/tristatecheckbox/tristatecheckbox.module.d.ts +0 -8
  1712. package/ts-helpers/public_api.d.ts +0 -1
  1713. package/ts-helpers/ts-helpers.d.ts +0 -4
  1714. package/upload/public_api.d.ts +0 -2
  1715. package/upload/upload.component.d.ts +0 -67
  1716. package/upload/upload.component.module.d.ts +0 -11
  1717. package/utils/objectutils.d.ts +0 -24
  1718. package/utils/public_api.d.ts +0 -4
  1719. package/utils/uniquecomponentid.d.ts +0 -2
  1720. package/utils/zindexutils.d.ts +0 -7
  1721. package/virtualscroller/public_api.d.ts +0 -2
  1722. package/virtualscroller/virtualscroller.d.ts +0 -89
  1723. package/virtualscroller/virtualscroller.interface.d.ts +0 -72
@@ -1,1190 +0,0 @@
1
- import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, NgModule, Output, PLATFORM_ID, ViewChild, ViewEncapsulation, booleanAttribute, effect, forwardRef, numberAttribute, signal } from '@angular/core';
3
- import { RouterModule } from '@angular/router';
4
- import { CaxTemplate, SharedModule } from 'cax-design-system/api';
5
- import { DomHandler } from 'cax-design-system/dom';
6
- import { AngleDownIcon } from 'cax-design-system/icons/angledown';
7
- import { AngleRightIcon } from 'cax-design-system/icons/angleright';
8
- import { RippleModule } from 'cax-design-system/ripple';
9
- import { TooltipModule } from 'cax-design-system/tooltip';
10
- import { ObjectUtils, UniqueComponentId } from 'cax-design-system/utils';
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 "cax-design-system/tooltip";
15
- import * as i4 from "cax-design-system/api";
16
- export class MegaMenuSub {
17
- el;
18
- megaMenu;
19
- id;
20
- items;
21
- itemTemplate;
22
- menuId;
23
- ariaLabel;
24
- ariaLabelledBy;
25
- level = 0;
26
- focusedItemId;
27
- disabled = false;
28
- orientation;
29
- activeItem;
30
- submenu;
31
- tabindex = 0;
32
- root = false;
33
- itemClick = new EventEmitter();
34
- itemMouseEnter = new EventEmitter();
35
- menuFocus = new EventEmitter();
36
- menuBlur = new EventEmitter();
37
- menuKeydown = new EventEmitter();
38
- menubarViewChild;
39
- constructor(el, megaMenu) {
40
- this.el = el;
41
- this.megaMenu = megaMenu;
42
- }
43
- onItemClick(event, processedItem) {
44
- this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
45
- this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });
46
- }
47
- getItemProp(processedItem, name, params = null) {
48
- return processedItem && processedItem.item ? ObjectUtils.getItemValue(processedItem.item[name], params) : undefined;
49
- }
50
- getItemId(processedItem) {
51
- return processedItem.item && processedItem.item?.id ? processedItem.item.id : `${this.menuId}_${processedItem.key}`;
52
- }
53
- getSubListId(processedItem) {
54
- return `${this.getItemId(processedItem)}_list`;
55
- }
56
- getItemClass(processedItem) {
57
- return {
58
- ...this.getItemProp(processedItem, 'class'),
59
- 'p-menuitem': true,
60
- 'p-menuitem-active p-highlight': this.isItemActive(processedItem),
61
- 'p-focus': this.isItemFocused(processedItem),
62
- 'p-disabled': this.isItemDisabled(processedItem)
63
- };
64
- }
65
- getItemLabel(processedItem) {
66
- return this.getItemProp(processedItem, 'label');
67
- }
68
- getSeparatorItemClass(processedItem) {
69
- return {
70
- ...this.getItemProp(processedItem, 'class'),
71
- 'p-menuitem-separator': true
72
- };
73
- }
74
- getColumnClass(processedItem) {
75
- let length = this.isItemGroup(processedItem) ? processedItem.items.length : 0;
76
- let columnClass;
77
- switch (length) {
78
- case 2:
79
- columnClass = 'p-megamenu-col-6';
80
- break;
81
- case 3:
82
- columnClass = 'p-megamenu-col-4';
83
- break;
84
- case 4:
85
- columnClass = 'p-megamenu-col-3';
86
- break;
87
- case 6:
88
- columnClass = 'p-megamenu-col-2';
89
- break;
90
- default:
91
- columnClass = 'p-megamenu-col-12';
92
- break;
93
- }
94
- return columnClass;
95
- }
96
- getSubmenuHeaderClass(processedItem) {
97
- return {
98
- 'p-megamenu-submenu-header p-submenu-header': true,
99
- 'p-disabled': this.isItemDisabled(processedItem),
100
- ...this.getItemProp(processedItem, 'class')
101
- };
102
- }
103
- isSubmenuVisible(submenu) {
104
- if (this.submenu && !this.root) {
105
- return this.isItemVisible(submenu);
106
- }
107
- else {
108
- return true;
109
- }
110
- }
111
- isItemVisible(processedItem) {
112
- return this.getItemProp(processedItem, 'visible') !== false;
113
- }
114
- isItemActive(processedItem) {
115
- return ObjectUtils.isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;
116
- }
117
- isItemDisabled(processedItem) {
118
- return this.getItemProp(processedItem, 'disabled');
119
- }
120
- isItemFocused(processedItem) {
121
- return this.focusedItemId === this.getItemId(processedItem);
122
- }
123
- isItemGroup(processedItem) {
124
- return ObjectUtils.isNotEmpty(processedItem.items);
125
- }
126
- getAriaSetSize() {
127
- return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
128
- }
129
- getAriaPosInset(index) {
130
- return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
131
- }
132
- onItemMouseEnter(param) {
133
- const { event, processedItem } = param;
134
- this.itemMouseEnter.emit({ originalEvent: event, processedItem });
135
- }
136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenuSub, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => MegaMenu) }], target: i0.ɵɵFactoryTarget.Component });
137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: MegaMenuSub, selector: "p-megaMenuSub", inputs: { id: "id", items: "items", itemTemplate: "itemTemplate", menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: ["level", "level", numberAttribute], focusedItemId: "focusedItemId", disabled: ["disabled", "disabled", booleanAttribute], orientation: "orientation", activeItem: "activeItem", submenu: "submenu", tabindex: ["tabindex", "tabindex", numberAttribute], root: ["root", "root", booleanAttribute] }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, host: { classAttribute: "cax-element" }, viewQueries: [{ propertyName: "menubarViewChild", first: true, predicate: ["menubar"], descendants: true, static: true }], ngImport: i0, template: `
138
- <ul
139
- *ngIf="isSubmenuVisible(submenu)"
140
- #menubar
141
- [ngClass]="{ 'p-megamenu-root-list': root, 'p-submenu-list p-megamenu-submenu': !root }"
142
- [attr.role]="root ? 'menubar' : 'menu'"
143
- [attr.id]="id"
144
- [attr.aria-orientation]="orientation"
145
- [tabindex]="tabindex"
146
- [attr.aria-activedescendant]="focusedItemId"
147
- [attr.data-pc-section]="root ? 'root' : 'submenu'"
148
- (keydown)="menuKeydown.emit($event)"
149
- (focus)="menuFocus.emit($event)"
150
- (blur)="menuBlur.emit($event)"
151
- >
152
- <li *ngIf="submenu" [ngClass]="getSubmenuHeaderClass(submenu)" [ngStyle]="getItemProp(submenu, 'style')" role="presentation">{{ getItemLabel(submenu) }}</li>
153
- <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
154
- <li
155
- *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
156
- [attr.id]="getItemId(processedItem)"
157
- [ngStyle]="getItemProp(processedItem, 'style')"
158
- [ngClass]="getSeparatorItemClass(processedItem)"
159
- role="separator"
160
- [attr.data-pc-section]="'separator'"
161
- ></li>
162
- <li
163
- #listItem
164
- *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
165
- role="menuitem"
166
- [attr.id]="getItemId(processedItem)"
167
- [attr.data-pc-section]="'menuitem'"
168
- [attr.data-p-highlight]="isItemActive(processedItem)"
169
- [attr.data-p-focused]="isItemFocused(processedItem)"
170
- [attr.data-p-disabled]="isItemDisabled(processedItem)"
171
- [attr.aria-label]="getItemLabel(processedItem)"
172
- [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
173
- [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
174
- [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
175
- [attr.aria-level]="level + 1"
176
- [attr.aria-setsize]="getAriaSetSize()"
177
- [attr.aria-posinset]="getAriaPosInset(index)"
178
- [ngStyle]="getItemProp(processedItem, 'style')"
179
- [ngClass]="getItemClass(processedItem)"
180
- [class]="getItemProp(processedItem, 'styleClass')"
181
- caxTooltip
182
- [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
183
- >
184
- <div class="p-menuitem-content" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
185
- <ng-container *ngIf="!itemTemplate">
186
- <a
187
- *ngIf="!getItemProp(processedItem, 'routerLink')"
188
- [attr.href]="getItemProp(processedItem, 'url')"
189
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
190
- [attr.data-pc-section]="'action'"
191
- [target]="getItemProp(processedItem, 'target')"
192
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
193
- [attr.tabindex]="-1"
194
- pRipple
195
- >
196
- <span
197
- *ngIf="getItemProp(processedItem, 'icon')"
198
- class="p-menuitem-icon"
199
- [ngClass]="getItemProp(processedItem, 'icon')"
200
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
201
- [attr.data-pc-section]="'icon'"
202
- [attr.tabindex]="-1"
203
- >
204
- </span>
205
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
206
- {{ getItemLabel(processedItem) }}
207
- </span>
208
- <ng-template #htmlLabel>
209
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
210
- </ng-template>
211
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
212
-
213
- <ng-container *ngIf="isItemGroup(processedItem)">
214
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
215
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" />
216
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" />
217
- </ng-container>
218
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
219
- </ng-container>
220
- </a>
221
- <a
222
- *ngIf="getItemProp(processedItem, 'routerLink')"
223
- [routerLink]="getItemProp(processedItem, 'routerLink')"
224
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
225
- [attr.tabindex]="-1"
226
- [attr.data-pc-section]="'action'"
227
- [queryParams]="getItemProp(processedItem, 'queryParams')"
228
- [routerLinkActive]="'p-menuitem-link-active'"
229
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
230
- [target]="getItemProp(processedItem, 'target')"
231
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
232
- [fragment]="getItemProp(processedItem, 'fragment')"
233
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
234
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
235
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
236
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
237
- [state]="getItemProp(processedItem, 'state')"
238
- pRipple
239
- >
240
- <span
241
- class="p-menuitem-icon"
242
- *ngIf="getItemProp(processedItem, 'icon')"
243
- [ngClass]="getItemProp(processedItem, 'icon')"
244
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
245
- [attr.data-pc-section]="'icon'"
246
- [attr.tabindex]="-1"
247
- ></span>
248
- <span class="p-menuitem-text" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
249
- <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
250
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
251
- <ng-container *ngIf="isItemGroup(processedItem)">
252
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
253
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" />
254
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" />
255
- </ng-container>
256
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
257
- </ng-container>
258
- </a>
259
- </ng-container>
260
- <ng-container *ngIf="itemTemplate">
261
- <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
262
- </ng-container>
263
- </div>
264
- <div *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)" class="p-megamenu-panel" [attr.data-pc-section]="'panel'">
265
- <div class="p-megamenu-grid" [attr.data-pc-section]="'grid'">
266
- <div *ngFor="let col of processedItem.items" [ngClass]="getColumnClass(processedItem)">
267
- <p-megaMenuSub
268
- *ngFor="let submenu of col"
269
- [id]="getSubListId(submenu)"
270
- [submenu]="submenu"
271
- [items]="submenu.items"
272
- [itemTemplate]="itemTemplate"
273
- [menuId]="menuId"
274
- [focusedItemId]="focusedItemId"
275
- [level]="level + 1"
276
- [root]="false"
277
- (itemClick)="itemClick.emit($event)"
278
- (itemMouseEnter)="onItemMouseEnter($event)"
279
- >
280
- </p-megaMenuSub>
281
- </div>
282
- </div>
283
- </div>
284
- </li>
285
- </ng-template>
286
- </ul>
287
- `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i2.RouterLink), selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i0.forwardRef(() => i2.RouterLinkActive), selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i0.forwardRef(() => i3.Tooltip), selector: "[caxTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "caxTooltip", "tooltipDisabled", "tooltipOptions", "linkUrl", "linkText"] }, { kind: "component", type: i0.forwardRef(() => AngleDownIcon), selector: "AngleDownIcon" }, { kind: "component", type: i0.forwardRef(() => AngleRightIcon), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(() => MegaMenuSub), selector: "p-megaMenuSub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], encapsulation: i0.ViewEncapsulation.None });
288
- }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenuSub, decorators: [{
290
- type: Component,
291
- args: [{
292
- selector: 'p-megaMenuSub',
293
- template: `
294
- <ul
295
- *ngIf="isSubmenuVisible(submenu)"
296
- #menubar
297
- [ngClass]="{ 'p-megamenu-root-list': root, 'p-submenu-list p-megamenu-submenu': !root }"
298
- [attr.role]="root ? 'menubar' : 'menu'"
299
- [attr.id]="id"
300
- [attr.aria-orientation]="orientation"
301
- [tabindex]="tabindex"
302
- [attr.aria-activedescendant]="focusedItemId"
303
- [attr.data-pc-section]="root ? 'root' : 'submenu'"
304
- (keydown)="menuKeydown.emit($event)"
305
- (focus)="menuFocus.emit($event)"
306
- (blur)="menuBlur.emit($event)"
307
- >
308
- <li *ngIf="submenu" [ngClass]="getSubmenuHeaderClass(submenu)" [ngStyle]="getItemProp(submenu, 'style')" role="presentation">{{ getItemLabel(submenu) }}</li>
309
- <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
310
- <li
311
- *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
312
- [attr.id]="getItemId(processedItem)"
313
- [ngStyle]="getItemProp(processedItem, 'style')"
314
- [ngClass]="getSeparatorItemClass(processedItem)"
315
- role="separator"
316
- [attr.data-pc-section]="'separator'"
317
- ></li>
318
- <li
319
- #listItem
320
- *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
321
- role="menuitem"
322
- [attr.id]="getItemId(processedItem)"
323
- [attr.data-pc-section]="'menuitem'"
324
- [attr.data-p-highlight]="isItemActive(processedItem)"
325
- [attr.data-p-focused]="isItemFocused(processedItem)"
326
- [attr.data-p-disabled]="isItemDisabled(processedItem)"
327
- [attr.aria-label]="getItemLabel(processedItem)"
328
- [attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
329
- [attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
330
- [attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
331
- [attr.aria-level]="level + 1"
332
- [attr.aria-setsize]="getAriaSetSize()"
333
- [attr.aria-posinset]="getAriaPosInset(index)"
334
- [ngStyle]="getItemProp(processedItem, 'style')"
335
- [ngClass]="getItemClass(processedItem)"
336
- [class]="getItemProp(processedItem, 'styleClass')"
337
- caxTooltip
338
- [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
339
- >
340
- <div class="p-menuitem-content" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
341
- <ng-container *ngIf="!itemTemplate">
342
- <a
343
- *ngIf="!getItemProp(processedItem, 'routerLink')"
344
- [attr.href]="getItemProp(processedItem, 'url')"
345
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
346
- [attr.data-pc-section]="'action'"
347
- [target]="getItemProp(processedItem, 'target')"
348
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
349
- [attr.tabindex]="-1"
350
- pRipple
351
- >
352
- <span
353
- *ngIf="getItemProp(processedItem, 'icon')"
354
- class="p-menuitem-icon"
355
- [ngClass]="getItemProp(processedItem, 'icon')"
356
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
357
- [attr.data-pc-section]="'icon'"
358
- [attr.tabindex]="-1"
359
- >
360
- </span>
361
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
362
- {{ getItemLabel(processedItem) }}
363
- </span>
364
- <ng-template #htmlLabel>
365
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
366
- </ng-template>
367
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
368
-
369
- <ng-container *ngIf="isItemGroup(processedItem)">
370
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
371
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" />
372
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" />
373
- </ng-container>
374
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
375
- </ng-container>
376
- </a>
377
- <a
378
- *ngIf="getItemProp(processedItem, 'routerLink')"
379
- [routerLink]="getItemProp(processedItem, 'routerLink')"
380
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
381
- [attr.tabindex]="-1"
382
- [attr.data-pc-section]="'action'"
383
- [queryParams]="getItemProp(processedItem, 'queryParams')"
384
- [routerLinkActive]="'p-menuitem-link-active'"
385
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
386
- [target]="getItemProp(processedItem, 'target')"
387
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
388
- [fragment]="getItemProp(processedItem, 'fragment')"
389
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
390
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
391
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
392
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
393
- [state]="getItemProp(processedItem, 'state')"
394
- pRipple
395
- >
396
- <span
397
- class="p-menuitem-icon"
398
- *ngIf="getItemProp(processedItem, 'icon')"
399
- [ngClass]="getItemProp(processedItem, 'icon')"
400
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
401
- [attr.data-pc-section]="'icon'"
402
- [attr.tabindex]="-1"
403
- ></span>
404
- <span class="p-menuitem-text" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
405
- <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
406
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
407
- <ng-container *ngIf="isItemGroup(processedItem)">
408
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
409
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" />
410
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" />
411
- </ng-container>
412
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'"></ng-template>
413
- </ng-container>
414
- </a>
415
- </ng-container>
416
- <ng-container *ngIf="itemTemplate">
417
- <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
418
- </ng-container>
419
- </div>
420
- <div *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)" class="p-megamenu-panel" [attr.data-pc-section]="'panel'">
421
- <div class="p-megamenu-grid" [attr.data-pc-section]="'grid'">
422
- <div *ngFor="let col of processedItem.items" [ngClass]="getColumnClass(processedItem)">
423
- <p-megaMenuSub
424
- *ngFor="let submenu of col"
425
- [id]="getSubListId(submenu)"
426
- [submenu]="submenu"
427
- [items]="submenu.items"
428
- [itemTemplate]="itemTemplate"
429
- [menuId]="menuId"
430
- [focusedItemId]="focusedItemId"
431
- [level]="level + 1"
432
- [root]="false"
433
- (itemClick)="itemClick.emit($event)"
434
- (itemMouseEnter)="onItemMouseEnter($event)"
435
- >
436
- </p-megaMenuSub>
437
- </div>
438
- </div>
439
- </div>
440
- </li>
441
- </ng-template>
442
- </ul>
443
- `,
444
- encapsulation: ViewEncapsulation.None,
445
- host: {
446
- class: 'cax-element'
447
- }
448
- }]
449
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: MegaMenu, decorators: [{
450
- type: Inject,
451
- args: [forwardRef(() => MegaMenu)]
452
- }] }], propDecorators: { id: [{
453
- type: Input
454
- }], items: [{
455
- type: Input
456
- }], itemTemplate: [{
457
- type: Input
458
- }], menuId: [{
459
- type: Input
460
- }], ariaLabel: [{
461
- type: Input
462
- }], ariaLabelledBy: [{
463
- type: Input
464
- }], level: [{
465
- type: Input,
466
- args: [{ transform: numberAttribute }]
467
- }], focusedItemId: [{
468
- type: Input
469
- }], disabled: [{
470
- type: Input,
471
- args: [{ transform: booleanAttribute }]
472
- }], orientation: [{
473
- type: Input
474
- }], activeItem: [{
475
- type: Input
476
- }], submenu: [{
477
- type: Input
478
- }], tabindex: [{
479
- type: Input,
480
- args: [{ transform: numberAttribute }]
481
- }], root: [{
482
- type: Input,
483
- args: [{ transform: booleanAttribute }]
484
- }], itemClick: [{
485
- type: Output
486
- }], itemMouseEnter: [{
487
- type: Output
488
- }], menuFocus: [{
489
- type: Output
490
- }], menuBlur: [{
491
- type: Output
492
- }], menuKeydown: [{
493
- type: Output
494
- }], menubarViewChild: [{
495
- type: ViewChild,
496
- args: ['menubar', { static: true }]
497
- }] } });
498
- /**
499
- * MegaMenu is navigation component that displays submenus together.
500
- * @group Components
501
- */
502
- export class MegaMenu {
503
- document;
504
- platformId;
505
- el;
506
- renderer;
507
- config;
508
- cd;
509
- /**
510
- * An array of menuitems.
511
- * @group Props
512
- */
513
- set model(value) {
514
- this._model = value;
515
- this._processedItems = this.createProcessedItems(this._model || []);
516
- }
517
- get model() {
518
- return this._model;
519
- }
520
- /**
521
- * Inline style of the element.
522
- * @group Props
523
- */
524
- style;
525
- /**
526
- * Class of the element.
527
- * @group Props
528
- */
529
- styleClass;
530
- /**
531
- * Defines the orientation.
532
- * @group Props
533
- */
534
- orientation = 'horizontal';
535
- /**
536
- * Current id state as a string.
537
- * @group Props
538
- */
539
- id;
540
- /**
541
- * Defines a string value that labels an interactive element.
542
- * @group Props
543
- */
544
- ariaLabel;
545
- /**
546
- * Identifier of the underlying input element.
547
- * @group Props
548
- */
549
- ariaLabelledBy;
550
- /**
551
- * When present, it specifies that the component should be disabled.
552
- * @group Props
553
- */
554
- disabled = false;
555
- /**
556
- * Index of the element in tabbing order.
557
- * @group Props
558
- */
559
- tabindex = 0;
560
- templates;
561
- menubutton;
562
- rootmenu;
563
- startTemplate;
564
- endTemplate;
565
- menuIconTemplate;
566
- submenuIconTemplate;
567
- itemTemplate;
568
- outsideClickListener;
569
- resizeListener;
570
- dirty = false;
571
- focused = false;
572
- activeItem = signal(null);
573
- focusedItemInfo = signal({ index: -1, level: 0, parentKey: '', item: null });
574
- searchValue = '';
575
- searchTimeout;
576
- _processedItems;
577
- _model;
578
- get visibleItems() {
579
- const processedItem = ObjectUtils.isNotEmpty(this.activeItem()) ? this.activeItem() : null;
580
- return processedItem
581
- ? processedItem.items.reduce((items, col) => {
582
- col.forEach((submenu) => {
583
- submenu.items.forEach((a) => {
584
- items.push(a);
585
- });
586
- });
587
- return items;
588
- }, [])
589
- : this.processedItems;
590
- }
591
- get processedItems() {
592
- if (!this._processedItems || !this._processedItems.length) {
593
- this._processedItems = this.createProcessedItems(this.model || []);
594
- }
595
- return this._processedItems;
596
- }
597
- get focusedItemId() {
598
- const focusedItem = this.focusedItemInfo();
599
- return focusedItem?.item && focusedItem.item?.id ? focusedItem.item.id : ObjectUtils.isNotEmpty(focusedItem.key) ? `${this.id}_${focusedItem.key}` : null;
600
- }
601
- constructor(document, platformId, el, renderer, config, cd) {
602
- this.document = document;
603
- this.platformId = platformId;
604
- this.el = el;
605
- this.renderer = renderer;
606
- this.config = config;
607
- this.cd = cd;
608
- effect(() => {
609
- const activeItem = this.activeItem();
610
- if (ObjectUtils.isNotEmpty(activeItem)) {
611
- this.bindOutsideClickListener();
612
- this.bindResizeListener();
613
- }
614
- else {
615
- this.unbindOutsideClickListener();
616
- this.unbindResizeListener();
617
- }
618
- });
619
- }
620
- ngOnInit() {
621
- this.id = this.id || UniqueComponentId();
622
- }
623
- ngAfterContentInit() {
624
- this.templates?.forEach((item) => {
625
- switch (item.getType()) {
626
- case 'start':
627
- this.startTemplate = item.template;
628
- break;
629
- case 'end':
630
- this.endTemplate = item.template;
631
- break;
632
- case 'menuicon':
633
- this.menuIconTemplate = item.template;
634
- break;
635
- case 'submenuicon':
636
- this.submenuIconTemplate = item.template;
637
- break;
638
- case 'item':
639
- this.itemTemplate = item.template;
640
- break;
641
- default:
642
- this.itemTemplate = item.template;
643
- break;
644
- }
645
- });
646
- }
647
- createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex) {
648
- const processedItems = [];
649
- items &&
650
- items.forEach((item, index) => {
651
- const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;
652
- const newItem = {
653
- item,
654
- index,
655
- level,
656
- key,
657
- parent,
658
- parentKey,
659
- columnIndex: columnIndex !== undefined ? columnIndex : parent.columnIndex !== undefined ? parent.columnIndex : index
660
- };
661
- newItem['items'] =
662
- level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);
663
- processedItems.push(newItem);
664
- });
665
- return processedItems;
666
- }
667
- getItemProp(item, name) {
668
- return item ? ObjectUtils.getItemValue(item[name]) : undefined;
669
- }
670
- onItemClick(event) {
671
- const { originalEvent, processedItem } = event;
672
- const grouped = this.isProcessedItemGroup(processedItem);
673
- const root = ObjectUtils.isEmpty(processedItem.parent);
674
- const selected = this.isSelected(processedItem);
675
- if (selected) {
676
- const { index, key, parentKey, item } = processedItem;
677
- this.activeItem.set(null);
678
- this.focusedItemInfo.set({ index, key, parentKey, item });
679
- this.dirty = !root;
680
- DomHandler.focus(this.rootmenu?.menubarViewChild?.nativeElement);
681
- }
682
- else {
683
- if (grouped) {
684
- this.onItemChange(event);
685
- }
686
- else {
687
- const rootProcessedItem = root ? processedItem : this.activeItem();
688
- this.hide(originalEvent);
689
- this.changeFocusedItemInfo(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);
690
- DomHandler.focus(this.rootmenu?.menubarViewChild?.nativeElement);
691
- }
692
- }
693
- }
694
- onItemMouseEnter(event) {
695
- if (!DomHandler.isTouchDevice()) {
696
- this.onItemChange(event);
697
- }
698
- }
699
- scrollInView(index = -1) {
700
- const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;
701
- const element = DomHandler.findSingle(this.rootmenu?.el.nativeElement, `li[id="${id}"]`);
702
- if (element) {
703
- element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
704
- }
705
- }
706
- onItemChange(event) {
707
- const { processedItem, isFocus } = event;
708
- if (ObjectUtils.isEmpty(processedItem))
709
- return;
710
- const { index, key, parentKey, items, item } = processedItem;
711
- const grouped = ObjectUtils.isNotEmpty(items);
712
- if (grouped) {
713
- this.activeItem.set(processedItem);
714
- }
715
- this.focusedItemInfo.set({ index, key, parentKey, item });
716
- grouped && (this.dirty = true);
717
- isFocus && DomHandler.focus(this.rootmenu?.menubarViewChild?.nativeElement);
718
- }
719
- hide(event, isFocus) {
720
- this.activeItem.set(null);
721
- this.focusedItemInfo.set({ index: -1, key: '', parentKey: '', item: null });
722
- isFocus && DomHandler.focus(this.rootmenu?.menubarViewChild?.nativeElement);
723
- this.dirty = false;
724
- }
725
- onMenuFocus(event) {
726
- this.focused = true;
727
- if (this.focusedItemInfo().index === -1) {
728
- const index = this.findFirstFocusedItemIndex();
729
- const processedItem = this.findVisibleItem(index);
730
- this.focusedItemInfo.set({ index, key: processedItem.key, parentKey: processedItem.parentKey, item: processedItem.item });
731
- }
732
- }
733
- onMenuBlur(event) {
734
- this.focused = false;
735
- this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
736
- this.searchValue = '';
737
- this.dirty = false;
738
- }
739
- onKeyDown(event) {
740
- const metaKey = event.metaKey || event.ctrlKey;
741
- switch (event.code) {
742
- case 'ArrowDown':
743
- this.onArrowDownKey(event);
744
- break;
745
- case 'ArrowUp':
746
- this.onArrowUpKey(event);
747
- break;
748
- case 'ArrowLeft':
749
- this.onArrowLeftKey(event);
750
- break;
751
- case 'ArrowRight':
752
- this.onArrowRightKey(event);
753
- break;
754
- case 'Home':
755
- this.onHomeKey(event);
756
- break;
757
- case 'End':
758
- this.onEndKey(event);
759
- break;
760
- case 'Space':
761
- this.onSpaceKey(event);
762
- break;
763
- case 'Enter':
764
- this.onEnterKey(event);
765
- break;
766
- case 'Escape':
767
- this.onEscapeKey(event);
768
- break;
769
- case 'Tab':
770
- this.onTabKey(event);
771
- break;
772
- case 'PageDown':
773
- case 'PageUp':
774
- case 'Backspace':
775
- case 'ShiftLeft':
776
- case 'ShiftRight':
777
- //NOOP
778
- break;
779
- default:
780
- if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
781
- this.searchItems(event, event.key);
782
- }
783
- break;
784
- }
785
- }
786
- findFirstFocusedItemIndex() {
787
- const selectedIndex = this.findSelectedItemIndex();
788
- return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;
789
- }
790
- findFirstItemIndex() {
791
- return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));
792
- }
793
- findSelectedItemIndex() {
794
- return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));
795
- }
796
- isProcessedItemGroup(processedItem) {
797
- return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
798
- }
799
- isSelected(processedItem) {
800
- return ObjectUtils.isNotEmpty(this.activeItem()) ? this.activeItem().key === processedItem.key : false;
801
- }
802
- isValidSelectedItem(processedItem) {
803
- return this.isValidItem(processedItem) && this.isSelected(processedItem);
804
- }
805
- isValidItem(processedItem) {
806
- return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item);
807
- }
808
- isItemDisabled(item) {
809
- return this.getItemProp(item, 'disabled');
810
- }
811
- isItemSeparator(item) {
812
- return this.getItemProp(item, 'separator');
813
- }
814
- isItemMatched(processedItem) {
815
- return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());
816
- }
817
- isProccessedItemGroup(processedItem) {
818
- return processedItem && ObjectUtils.isNotEmpty(processedItem.items);
819
- }
820
- searchItems(event, char) {
821
- this.searchValue = (this.searchValue || '') + char;
822
- let itemIndex = -1;
823
- let matched = false;
824
- if (this.focusedItemInfo().index !== -1) {
825
- itemIndex = this.visibleItems.slice(this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem));
826
- itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo().index;
827
- }
828
- else {
829
- itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));
830
- }
831
- if (itemIndex !== -1) {
832
- matched = true;
833
- }
834
- if (itemIndex === -1 && this.focusedItemInfo().index === -1) {
835
- itemIndex = this.findFirstFocusedItemIndex();
836
- }
837
- if (itemIndex !== -1) {
838
- this.changeFocusedItemInfo(event, itemIndex);
839
- }
840
- if (this.searchTimeout) {
841
- clearTimeout(this.searchTimeout);
842
- }
843
- this.searchTimeout = setTimeout(() => {
844
- this.searchValue = '';
845
- this.searchTimeout = null;
846
- }, 500);
847
- return matched;
848
- }
849
- getProccessedItemLabel(processedItem) {
850
- return processedItem ? this.getItemLabel(processedItem.item) : undefined;
851
- }
852
- getItemLabel(item) {
853
- return this.getItemProp(item, 'label');
854
- }
855
- changeFocusedItemInfo(event, index) {
856
- const processedItem = this.findVisibleItem(index);
857
- if (ObjectUtils.isNotEmpty(processedItem)) {
858
- const { key, parentKey, item } = processedItem;
859
- this.focusedItemInfo.set({ index, key: key ? key : '', parentKey, item });
860
- }
861
- this.scrollInView();
862
- }
863
- onArrowDownKey(event) {
864
- if (this.orientation === 'horizontal') {
865
- if (ObjectUtils.isNotEmpty(this.activeItem()) && this.activeItem().key === this.focusedItemInfo().key) {
866
- const { key, item } = this.activeItem();
867
- this.focusedItemInfo.set({ index: -1, key: '', parentKey: key, item });
868
- }
869
- else {
870
- const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
871
- const grouped = this.isProccessedItemGroup(processedItem);
872
- if (grouped) {
873
- const { parentKey, key, item } = processedItem;
874
- this.onItemChange({ originalEvent: event, processedItem });
875
- this.focusedItemInfo.set({ index: -1, key: key, parentKey: parentKey, item: item });
876
- this.searchValue = '';
877
- }
878
- }
879
- }
880
- const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();
881
- this.changeFocusedItemInfo(event, itemIndex);
882
- event.preventDefault();
883
- }
884
- onArrowRightKey(event) {
885
- const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
886
- const grouped = this.isProccessedItemGroup(processedItem);
887
- if (grouped) {
888
- if (this.orientation === 'vertical') {
889
- if (ObjectUtils.isNotEmpty(this.activeItem()) && this.activeItem().key === processedItem.key) {
890
- this.focusedItemInfo.set({ index: -1, key: '', parentKey: this.activeItem().key, item: processedItem.item });
891
- }
892
- else {
893
- const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
894
- const grouped = this.isProccessedItemGroup(processedItem);
895
- if (grouped) {
896
- this.onItemChange({ originalEvent: event, processedItem });
897
- this.focusedItemInfo.set({ index: -1, key: processedItem.key, parentKey: processedItem.parentKey, item: processedItem.item });
898
- this.searchValue = '';
899
- }
900
- }
901
- }
902
- const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();
903
- this.changeFocusedItemInfo(event, itemIndex);
904
- }
905
- else {
906
- const columnIndex = processedItem.columnIndex + 1;
907
- const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);
908
- itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);
909
- }
910
- event.preventDefault();
911
- }
912
- onArrowUpKey(event) {
913
- if (event.altKey && this.orientation === 'horizontal') {
914
- if (this.focusedItemInfo().index !== -1) {
915
- const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
916
- const grouped = this.isProccessedItemGroup(processedItem);
917
- if (!grouped && ObjectUtils.isNotEmpty(this.activeItem)) {
918
- if (this.focusedItemInfo().index === 0) {
919
- this.focusedItemInfo.set({ index: this.activeItem().index, key: this.activeItem().key, parentKey: this.activeItem().parentKey, item: processedItem.item });
920
- this.activeItem.set(null);
921
- }
922
- else {
923
- this.changeFocusedItemInfo(event, this.findFirstItemIndex());
924
- }
925
- }
926
- }
927
- event.preventDefault();
928
- }
929
- else {
930
- const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();
931
- this.changeFocusedItemInfo(event, itemIndex);
932
- event.preventDefault();
933
- }
934
- }
935
- onArrowLeftKey(event) {
936
- const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
937
- const grouped = this.isProccessedItemGroup(processedItem);
938
- if (grouped) {
939
- if (this.orientation === 'horizontal') {
940
- const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();
941
- this.changeFocusedItemInfo(event, itemIndex);
942
- }
943
- }
944
- else {
945
- if (this.orientation === 'vertical' && ObjectUtils.isNotEmpty(this.activeItem())) {
946
- if (processedItem.columnIndex === 0) {
947
- this.focusedItemInfo.set({ index: this.activeItem().index, key: this.activeItem().key, parentKey: this.activeItem().parentKey, item: processedItem.item });
948
- this.activeItem.set(null);
949
- }
950
- }
951
- const columnIndex = processedItem.columnIndex - 1;
952
- const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);
953
- itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);
954
- }
955
- event.preventDefault();
956
- }
957
- onHomeKey(event) {
958
- this.changeFocusedItemInfo(event, this.findFirstItemIndex());
959
- event.preventDefault();
960
- }
961
- onEndKey(event) {
962
- this.changeFocusedItemInfo(event, this.findLastItemIndex());
963
- event.preventDefault();
964
- }
965
- onSpaceKey(event) {
966
- this.onEnterKey(event);
967
- }
968
- onEscapeKey(event) {
969
- if (ObjectUtils.isNotEmpty(this.activeItem())) {
970
- this.focusedItemInfo.set({ index: this.activeItem().index, key: this.activeItem().key, item: this.activeItem().item });
971
- this.activeItem.set(null);
972
- }
973
- event.preventDefault();
974
- }
975
- onTabKey(event) {
976
- if (this.focusedItemInfo().index !== -1) {
977
- const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
978
- const grouped = this.isProccessedItemGroup(processedItem);
979
- !grouped && this.onItemChange({ originalEvent: event, processedItem });
980
- }
981
- this.hide();
982
- }
983
- onEnterKey(event) {
984
- if (this.focusedItemInfo().index !== -1) {
985
- const element = DomHandler.findSingle(this.rootmenu?.el?.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
986
- const anchorElement = element && DomHandler.findSingle(element, 'a[data-pc-section="action"]');
987
- anchorElement ? anchorElement.click() : element && element.click();
988
- const processedItem = this.visibleItems[this.focusedItemInfo().index];
989
- const grouped = this.isProccessedItemGroup(processedItem);
990
- !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());
991
- }
992
- event.preventDefault();
993
- }
994
- findVisibleItem(index) {
995
- return ObjectUtils.isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;
996
- }
997
- findLastFocusedItemIndex() {
998
- const selectedIndex = this.findSelectedItemIndex();
999
- return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;
1000
- }
1001
- findLastItemIndex() {
1002
- return ObjectUtils.findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));
1003
- }
1004
- findPrevItemIndex(index) {
1005
- const matchedItemIndex = index > 0 ? ObjectUtils.findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;
1006
- return matchedItemIndex > -1 ? matchedItemIndex : index;
1007
- }
1008
- findNextItemIndex(index) {
1009
- const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;
1010
- return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
1011
- }
1012
- bindResizeListener() {
1013
- if (isPlatformBrowser(this.platformId)) {
1014
- if (!this.resizeListener) {
1015
- this.resizeListener = this.renderer.listen(this.document.defaultView, 'resize', (event) => {
1016
- this.hide(event, true);
1017
- });
1018
- }
1019
- }
1020
- }
1021
- bindOutsideClickListener() {
1022
- if (isPlatformBrowser(this.platformId)) {
1023
- if (!this.outsideClickListener) {
1024
- this.outsideClickListener = this.renderer.listen(this.document, 'click', (event) => {
1025
- const isOutsideContainer = this.rootmenu?.el.nativeElement !== event.target && !this.rootmenu?.el.nativeElement.contains(event.target);
1026
- if (isOutsideContainer) {
1027
- this.hide();
1028
- }
1029
- });
1030
- }
1031
- }
1032
- }
1033
- unbindOutsideClickListener() {
1034
- if (this.outsideClickListener) {
1035
- this.outsideClickListener();
1036
- this.outsideClickListener = null;
1037
- }
1038
- }
1039
- unbindResizeListener() {
1040
- if (this.resizeListener) {
1041
- this.resizeListener();
1042
- this.resizeListener = null;
1043
- }
1044
- }
1045
- ngOnDestroy() {
1046
- this.unbindOutsideClickListener();
1047
- this.unbindResizeListener();
1048
- }
1049
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenu, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.caxConfig }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1050
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: MegaMenu, selector: "p-megaMenu", inputs: { model: "model", style: "style", styleClass: "styleClass", orientation: "orientation", id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", disabled: ["disabled", "disabled", booleanAttribute], tabindex: ["tabindex", "tabindex", numberAttribute] }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "menubutton", first: true, predicate: ["menubutton"], descendants: true }, { propertyName: "rootmenu", first: true, predicate: ["rootmenu"], descendants: true }], ngImport: i0, template: `
1051
- <div
1052
- [ngClass]="{ 'p-megamenu p-component': true, 'p-megamenu-horizontal': orientation == 'horizontal', 'p-megamenu-vertical': orientation == 'vertical' }"
1053
- [class]="styleClass"
1054
- [ngStyle]="style"
1055
- [attr.data-pc-section]="'root'"
1056
- [attr.data-pc-name]="'megamenu'"
1057
- [attr.id]="id"
1058
- >
1059
- <div class="p-megamenu-start" *ngIf="startTemplate">
1060
- <ng-container *ngTemplateOutlet="startTemplate"></ng-container>
1061
- </div>
1062
- <p-megaMenuSub
1063
- #rootmenu
1064
- [itemTemplate]="itemTemplate"
1065
- [items]="processedItems"
1066
- [attr.id]="id + '_list'"
1067
- [menuId]="id"
1068
- [root]="true"
1069
- [orientation]="orientation"
1070
- [ariaLabel]="ariaLabel"
1071
- [disabled]="disabled"
1072
- [tabindex]="!disabled ? tabindex : -1"
1073
- [activeItem]="activeItem()"
1074
- [level]="0"
1075
- [ariaLabelledBy]="ariaLabelledBy"
1076
- [focusedItemId]="focused ? focusedItemId : undefined"
1077
- (itemClick)="onItemClick($event)"
1078
- (menuFocus)="onMenuFocus($event)"
1079
- (menuBlur)="onMenuBlur($event)"
1080
- (menuKeydown)="onKeyDown($event)"
1081
- (itemMouseEnter)="onItemMouseEnter($event)"
1082
- ></p-megaMenuSub>
1083
- <div class="p-megamenu-end" *ngIf="endTemplate; else legacy">
1084
- <ng-container *ngTemplateOutlet="endTemplate"></ng-container>
1085
- </div>
1086
- <ng-template #legacy>
1087
- <div class="p-megamenu-end">
1088
- <ng-content></ng-content>
1089
- </div>
1090
- </ng-template>
1091
- </div>
1092
- `, isInline: true, styles: ["@layer cax{.p-megamenu-root-list{margin:0;padding:0;list-style:none}.p-megamenu-root-list>.p-menuitem{position:relative}.p-megamenu .p-menuitem-link{cursor:pointer;display:flex;align-items:center;text-decoration:none;overflow:hidden;position:relative}.p-megamenu .p-menuitem-text{line-height:1}.p-megamenu-panel{display:none;position:absolute;width:auto;z-index:1}.p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{display:block}.p-megamenu-submenu{margin:0;padding:0;list-style:none}.p-megamenu-horizontal{align-items:center}.p-megamenu-horizontal .p-megamenu-root-list{display:flex;align-items:center;flex-wrap:wrap}.p-megamenu-horizontal .p-megamenu-end{margin-left:auto;align-self:center}.p-megamenu-vertical .p-megamenu-root-list{flex-direction:column}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{left:100%;top:0}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon:not(svg){margin-left:auto}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-icon-wrapper{margin-left:auto}.p-megamenu-grid{display:flex}.p-megamenu-col-2,.p-megamenu-col-3,.p-megamenu-col-4,.p-megamenu-col-6,.p-megamenu-col-12{flex:0 0 auto;padding:.5rem}.p-megamenu-col-2{width:16.6667%}.p-megamenu-col-3{width:25%}.p-megamenu-col-4{width:33.3333%}.p-megamenu-col-6{width:50%}.p-megamenu-col-12{width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1093
- }
1094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenu, decorators: [{
1095
- type: Component,
1096
- args: [{ selector: 'p-megaMenu', template: `
1097
- <div
1098
- [ngClass]="{ 'p-megamenu p-component': true, 'p-megamenu-horizontal': orientation == 'horizontal', 'p-megamenu-vertical': orientation == 'vertical' }"
1099
- [class]="styleClass"
1100
- [ngStyle]="style"
1101
- [attr.data-pc-section]="'root'"
1102
- [attr.data-pc-name]="'megamenu'"
1103
- [attr.id]="id"
1104
- >
1105
- <div class="p-megamenu-start" *ngIf="startTemplate">
1106
- <ng-container *ngTemplateOutlet="startTemplate"></ng-container>
1107
- </div>
1108
- <p-megaMenuSub
1109
- #rootmenu
1110
- [itemTemplate]="itemTemplate"
1111
- [items]="processedItems"
1112
- [attr.id]="id + '_list'"
1113
- [menuId]="id"
1114
- [root]="true"
1115
- [orientation]="orientation"
1116
- [ariaLabel]="ariaLabel"
1117
- [disabled]="disabled"
1118
- [tabindex]="!disabled ? tabindex : -1"
1119
- [activeItem]="activeItem()"
1120
- [level]="0"
1121
- [ariaLabelledBy]="ariaLabelledBy"
1122
- [focusedItemId]="focused ? focusedItemId : undefined"
1123
- (itemClick)="onItemClick($event)"
1124
- (menuFocus)="onMenuFocus($event)"
1125
- (menuBlur)="onMenuBlur($event)"
1126
- (menuKeydown)="onKeyDown($event)"
1127
- (itemMouseEnter)="onItemMouseEnter($event)"
1128
- ></p-megaMenuSub>
1129
- <div class="p-megamenu-end" *ngIf="endTemplate; else legacy">
1130
- <ng-container *ngTemplateOutlet="endTemplate"></ng-container>
1131
- </div>
1132
- <ng-template #legacy>
1133
- <div class="p-megamenu-end">
1134
- <ng-content></ng-content>
1135
- </div>
1136
- </ng-template>
1137
- </div>
1138
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1139
- class: 'cax-element'
1140
- }, styles: ["@layer cax{.p-megamenu-root-list{margin:0;padding:0;list-style:none}.p-megamenu-root-list>.p-menuitem{position:relative}.p-megamenu .p-menuitem-link{cursor:pointer;display:flex;align-items:center;text-decoration:none;overflow:hidden;position:relative}.p-megamenu .p-menuitem-text{line-height:1}.p-megamenu-panel{display:none;position:absolute;width:auto;z-index:1}.p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{display:block}.p-megamenu-submenu{margin:0;padding:0;list-style:none}.p-megamenu-horizontal{align-items:center}.p-megamenu-horizontal .p-megamenu-root-list{display:flex;align-items:center;flex-wrap:wrap}.p-megamenu-horizontal .p-megamenu-end{margin-left:auto;align-self:center}.p-megamenu-vertical .p-megamenu-root-list{flex-direction:column}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{left:100%;top:0}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon:not(svg){margin-left:auto}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-icon-wrapper{margin-left:auto}.p-megamenu-grid{display:flex}.p-megamenu-col-2,.p-megamenu-col-3,.p-megamenu-col-4,.p-megamenu-col-6,.p-megamenu-col-12{flex:0 0 auto;padding:.5rem}.p-megamenu-col-2{width:16.6667%}.p-megamenu-col-3{width:25%}.p-megamenu-col-4{width:33.3333%}.p-megamenu-col-6{width:50%}.p-megamenu-col-12{width:100%}}\n"] }]
1141
- }], ctorParameters: () => [{ type: Document, decorators: [{
1142
- type: Inject,
1143
- args: [DOCUMENT]
1144
- }] }, { type: undefined, decorators: [{
1145
- type: Inject,
1146
- args: [PLATFORM_ID]
1147
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4.caxConfig }, { type: i0.ChangeDetectorRef }], propDecorators: { model: [{
1148
- type: Input
1149
- }], style: [{
1150
- type: Input
1151
- }], styleClass: [{
1152
- type: Input
1153
- }], orientation: [{
1154
- type: Input
1155
- }], id: [{
1156
- type: Input
1157
- }], ariaLabel: [{
1158
- type: Input
1159
- }], ariaLabelledBy: [{
1160
- type: Input
1161
- }], disabled: [{
1162
- type: Input,
1163
- args: [{ transform: booleanAttribute }]
1164
- }], tabindex: [{
1165
- type: Input,
1166
- args: [{ transform: numberAttribute }]
1167
- }], templates: [{
1168
- type: ContentChildren,
1169
- args: [CaxTemplate]
1170
- }], menubutton: [{
1171
- type: ViewChild,
1172
- args: ['menubutton']
1173
- }], rootmenu: [{
1174
- type: ViewChild,
1175
- args: ['rootmenu']
1176
- }] } });
1177
- export class MegaMenuModule {
1178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1179
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: MegaMenuModule, declarations: [MegaMenu, MegaMenuSub], imports: [CommonModule, RouterModule, RippleModule, TooltipModule, SharedModule, AngleDownIcon, AngleRightIcon], exports: [MegaMenu, RouterModule, TooltipModule, SharedModule] });
1180
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenuModule, imports: [CommonModule, RouterModule, RippleModule, TooltipModule, SharedModule, AngleDownIcon, AngleRightIcon, RouterModule, TooltipModule, SharedModule] });
1181
- }
1182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MegaMenuModule, decorators: [{
1183
- type: NgModule,
1184
- args: [{
1185
- imports: [CommonModule, RouterModule, RippleModule, TooltipModule, SharedModule, AngleDownIcon, AngleRightIcon],
1186
- exports: [MegaMenu, RouterModule, TooltipModule, SharedModule],
1187
- declarations: [MegaMenu, MegaMenuSub]
1188
- }]
1189
- }] });
1190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVnYW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvbWVnYW1lbnUvbWVnYW1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUdSLE1BQU0sRUFDTixXQUFXLEVBSVgsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFVBQVUsRUFDVixlQUFlLEVBQ2YsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQTJCLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBZ0t6RSxNQUFNLE9BQU8sV0FBVztJQTBDVDtJQUNvQztJQTFDdEMsRUFBRSxDQUFxQjtJQUV2QixLQUFLLENBQW9CO0lBRXpCLFlBQVksQ0FBMEI7SUFFdEMsTUFBTSxDQUFxQjtJQUUzQixTQUFTLENBQXFCO0lBRTlCLGNB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QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS2tDLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS0MsUUFBUTtzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBRVAsU0FBUztzQkFBdEMsZUFBZTt1QkFBQyxXQUFXO2dCQUVILFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFFQSxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7O0FBMm1CekIsTUFBTSxPQUFPLGNBQWM7dUdBQWQsY0FBYzt3R0FBZCxjQUFjLGlCQXBxQmQsUUFBUSxFQTFOUixXQUFXLGFBMDNCVixZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjLGFBaHFCckcsUUFBUSxFQWlxQkcsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZO3dHQUdwRCxjQUFjLFlBSmIsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUMxRixZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVk7OzJGQUdwRCxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQztvQkFDL0csT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO29CQUM5RCxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGVmZmVjdCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWVnYU1lbnVJdGVtLCBjYXhDb25maWcsIENheFRlbXBsYXRlLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9hcGknO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2RvbSc7XG5pbXBvcnQgeyBBbmdsZURvd25JY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvYW5nbGVkb3duJztcbmltcG9ydCB7IEFuZ2xlUmlnaHRJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvYW5nbGVyaWdodCc7XG5pbXBvcnQgeyBSaXBwbGVNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9yaXBwbGUnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVm9pZExpc3RlbmVyIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vdHMtaGVscGVycyc7XG5pbXBvcnQgeyBPYmplY3RVdGlscywgVW5pcXVlQ29tcG9uZW50SWQgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1tZWdhTWVudVN1YicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHVsXG4gICAgICAgICAgICAqbmdJZj1cImlzU3VibWVudVZpc2libGUoc3VibWVudSlcIlxuICAgICAgICAgICAgI21lbnViYXJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtbWVnYW1lbnUtcm9vdC1saXN0Jzogcm9vdCwgJ3Atc3VibWVudS1saXN0IHAtbWVnYW1lbnUtc3VibWVudSc6ICFyb290IH1cIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJyb290ID8gJ21lbnViYXInIDogJ21lbnUnXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJmb2N1c2VkSXRlbUlkXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCJyb290ID8gJ3Jvb3QnIDogJ3N1Ym1lbnUnXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm1lbnVLZXlkb3duLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwibWVudUZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmx1cik9XCJtZW51Qmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJzdWJtZW51XCIgW25nQ2xhc3NdPVwiZ2V0U3VibWVudUhlYWRlckNsYXNzKHN1Ym1lbnUpXCIgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3Aoc3VibWVudSwgJ3N0eWxlJylcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+e3sgZ2V0SXRlbUxhYmVsKHN1Ym1lbnUpIH19PC9saT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtcHJvY2Vzc2VkSXRlbSBbbmdGb3JPZl09XCJpdGVtc1wiIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSAmJiBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc2VwYXJhdG9yJylcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc3R5bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFNlcGFyYXRvckl0ZW1DbGFzcyhwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJzZXBhcmF0b3JcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3NlcGFyYXRvcidcIlxuICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmICFnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc2VwYXJhdG9yJylcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21lbnVpdGVtJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcC1oaWdobGlnaHRdPVwiaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWZvY3VzZWRdPVwiaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcC1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKSB8fCB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pICYmICFnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndG8nKSA/ICdtZW51JyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkgPyBpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImxldmVsICsgMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJnZXRBcmlhU2V0U2l6ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJnZXRBcmlhUG9zSW5zZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3N0eWxlJylcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJdGVtQ2xhc3MocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3N0eWxlQ2xhc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgIGNheFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBPcHRpb25zXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd0b29sdGlwT3B0aW9ucycpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLW1lbnVpdGVtLWNvbnRlbnRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NvbnRlbnQnXCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgcHJvY2Vzc2VkSXRlbSlcIiAobW91c2VlbnRlcik9XCJvbkl0ZW1Nb3VzZUVudGVyKHsgJGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd1cmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbmlkXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdhdXRvbWF0aW9uSWQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3RhcmdldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1tZW51aXRlbS1saW5rJzogdHJ1ZSwgJ3AtZGlzYWJsZWQnOiBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZGlzYWJsZWQnKSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1tZW51aXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ljb25TdHlsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaWNvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZXNjYXBlJyk7IGVsc2UgaHRtbExhYmVsXCIgY2xhc3M9XCJwLW1lbnVpdGVtLXRleHRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2xhYmVsJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtbWVudWl0ZW0tdGV4dFwiIFtpbm5lckhUTUxdPVwiZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1tZW51aXRlbS1iYWRnZVwiICpuZ0lmPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2JhZGdlJylcIiBbbmdDbGFzc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnYmFkZ2VTdHlsZUNsYXNzJylcIj57eyBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnYmFkZ2UnKSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbWVnYU1lbnUuc3VibWVudUljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uIFtzdHlsZUNsYXNzXT1cIidwLXN1Ym1lbnUtaWNvbidcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3N1Ym1lbnVpY29uJ1wiICpuZ0lmPVwib3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlUmlnaHRJY29uIFtzdHlsZUNsYXNzXT1cIidwLXN1Ym1lbnUtaWNvbidcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3N1Ym1lbnVpY29uJ1wiICpuZ0lmPVwib3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZWdhTWVudS5zdWJtZW51SWNvblRlbXBsYXRlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidzdWJtZW51aWNvbidcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncm91dGVyTGluaycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3JvdXRlckxpbmsnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbmlkXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdhdXRvbWF0aW9uSWQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidhY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdxdWVyeVBhcmFtcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiJ3AtbWVudWl0ZW0tbGluay1hY3RpdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucycpIHx8IHsgZXhhY3Q6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd0YXJnZXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtbWVudWl0ZW0tbGluayc6IHRydWUsICdwLWRpc2FibGVkJzogZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2Rpc2FibGVkJykgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZnJhZ21lbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdxdWVyeVBhcmFtc0hhbmRsaW5nJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlc2VydmVGcmFnbWVudF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncHJlc2VydmVGcmFnbWVudCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NraXBMb2NhdGlvbkNoYW5nZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc2tpcExvY2F0aW9uQ2hhbmdlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVwbGFjZVVybF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncmVwbGFjZVVybCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzdGF0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1tZW51aXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ljb24nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLW1lbnVpdGVtLXRleHRcIiAqbmdJZj1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdlc2NhcGUnKTsgZWxzZSBodG1sUm91dGVMYWJlbFwiPnt7IGdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sUm91dGVMYWJlbD48c3BhbiBjbGFzcz1cInAtbWVudWl0ZW0tdGV4dFwiIFtpbm5lckhUTUxdPVwiZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj48L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLW1lbnVpdGVtLWJhZGdlXCIgKm5nSWY9XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnYmFkZ2UnKVwiIFtuZ0NsYXNzXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdiYWRnZVN0eWxlQ2xhc3MnKVwiPnt7IGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdiYWRnZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbWVnYU1lbnUuc3VibWVudUljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uIFtzdHlsZUNsYXNzXT1cIidwLXN1Ym1lbnUtaWNvbidcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3N1Ym1lbnVpY29uJ1wiICpuZ0lmPVwib3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlUmlnaHRJY29uIFtzdHlsZUNsYXNzXT1cIidwLXN1Ym1lbnUtaWNvbidcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3N1Ym1lbnVpY29uJ1wiICpuZ0lmPVwib3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZWdhTWVudS5zdWJtZW51SWNvblRlbXBsYXRlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidzdWJtZW51aWNvbidcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwcm9jZXNzZWRJdGVtLml0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmIGlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pXCIgY2xhc3M9XCJwLW1lZ2FtZW51LXBhbmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidwYW5lbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLW1lZ2FtZW51LWdyaWRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2dyaWQnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sIG9mIHByb2Nlc3NlZEl0ZW0uaXRlbXNcIiBbbmdDbGFzc109XCJnZXRDb2x1bW5DbGFzcyhwcm9jZXNzZWRJdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1tZWdhTWVudVN1YlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN1Ym1lbnUgb2YgY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRTdWJMaXN0SWQoc3VibWVudSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1Ym1lbnVdPVwic3VibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwic3VibWVudS5pdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWVudUlkXT1cIm1lbnVJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9jdXNlZEl0ZW1JZF09XCJmb2N1c2VkSXRlbUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbF09XCJsZXZlbCArIDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW1DbGljayk9XCJpdGVtQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtTW91c2VFbnRlcik9XCJvbkl0ZW1Nb3VzZUVudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1tZWdhTWVudVN1Yj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC91bD5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2NheC1lbGVtZW50J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTWVnYU1lbnVTdWIge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBpdGVtczogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBpdGVtVGVtcGxhdGU6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgbWVudUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBsZXZlbDogbnVtYmVyID0gMDtcblxuICAgIEBJbnB1dCgpIGZvY3VzZWRJdGVtSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgb3JpZW50YXRpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGFjdGl2ZUl0ZW06IGFueTtcblxuICAgIEBJbnB1dCgpIHN1Ym1lbnU6IGFueTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYmluZGV4OiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJvb3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIGl0ZW1Nb3VzZUVudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBtZW51Rm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG1lbnVCbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBtZW51S2V5ZG93bjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdtZW51YmFyJywgeyBzdGF0aWM6IHRydWUgfSkgbWVudWJhclZpZXdDaGlsZDogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBNZWdhTWVudSkpIHB1YmxpYyBtZWdhTWVudTogTWVnYU1lbnVcbiAgICApIHt9XG5cbiAgICBvbkl0ZW1DbGljayhldmVudDogYW55LCBwcm9jZXNzZWRJdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnY29tbWFuZCcsIHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGl0ZW06IHByb2Nlc3NlZEl0ZW0uaXRlbSB9KTtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtLCBpc0ZvY3VzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW06IGFueSwgbmFtZTogc3RyaW5nLCBwYXJhbXM6IGFueSB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtICYmIHByb2Nlc3NlZEl0ZW0uaXRlbSA/IE9iamVjdFV0aWxzLmdldEl0ZW1WYWx1ZShwcm9jZXNzZWRJdGVtLml0ZW1bbmFtZV0sIHBhcmFtcykgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0SXRlbUlkKHByb2Nlc3NlZEl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtLml0ZW0gJiYgcHJvY2Vzc2VkSXRlbS5pdGVtPy5pZCA/IHByb2Nlc3NlZEl0ZW0uaXRlbS5pZCA6IGAke3RoaXMubWVudUlkfV8ke3Byb2Nlc3NlZEl0ZW0ua2V5fWA7XG4gICAgfVxuXG4gICAgZ2V0U3ViTGlzdElkKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0SXRlbUlkKHByb2Nlc3NlZEl0ZW0pfV9saXN0YDtcbiAgICB9XG5cbiAgICBnZXRJdGVtQ2xhc3MocHJvY2Vzc2VkSXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdjbGFzcycpLFxuICAgICAgICAgICAgJ3AtbWVudWl0ZW0nOiB0cnVlLFxuICAgICAgICAgICAgJ3AtbWVudWl0ZW0tYWN0aXZlIHAtaGlnaGxpZ2h0JzogdGhpcy5pc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSksXG4gICAgICAgICAgICAncC1mb2N1cyc6IHRoaXMuaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtKSxcbiAgICAgICAgICAgICdwLWRpc2FibGVkJzogdGhpcy5pc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnbGFiZWwnKTtcbiAgICB9XG5cbiAgICBnZXRTZXBhcmF0b3JJdGVtQ2xhc3MocHJvY2Vzc2VkSXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdjbGFzcycpLFxuICAgICAgICAgICAgJ3AtbWVudWl0ZW0tc2VwYXJhdG9yJzogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldENvbHVtbkNsYXNzKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMuaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkgPyBwcm9jZXNzZWRJdGVtLml0ZW1zLmxlbmd0aCA6IDA7XG4gICAgICAgIGxldCBjb2x1bW5DbGFzcztcblxuICAgICAgICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIGNvbHVtbkNsYXNzID0gJ3AtbWVnYW1lbnUtY29sLTYnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgY29sdW1uQ2xhc3MgPSAncC1tZWdhbWVudS1jb2wtNCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBjb2x1bW5DbGFzcyA9ICdwLW1lZ2FtZW51LWNvbC0zJztcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgIGNvbHVtbkNsYXNzID0gJ3AtbWVnYW1lbnUtY29sLTInO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbHVtbkNsYXNzID0gJ3AtbWVnYW1lbnUtY29sLTEyJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb2x1bW5DbGFzcztcbiAgICB9XG5cbiAgICBnZXRTdWJtZW51SGVhZGVyQ2xhc3MocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3AtbWVnYW1lbnUtc3VibWVudS1oZWFkZXIgcC1zdWJtZW51LWhlYWRlcic6IHRydWUsXG4gICAgICAgICAgICAncC1kaXNhYmxlZCc6IHRoaXMuaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSksXG4gICAgICAgICAgICAuLi50aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdjbGFzcycpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaXNTdWJtZW51VmlzaWJsZShzdWJtZW51OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSAmJiAhdGhpcy5yb290KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc0l0ZW1WaXNpYmxlKHN1Ym1lbnUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndmlzaWJsZScpICE9PSBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNOb3RFbXB0eSh0aGlzLmFjdGl2ZUl0ZW0pID8gdGhpcy5hY3RpdmVJdGVtLmtleSA9PT0gcHJvY2Vzc2VkSXRlbS5rZXkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNlZEl0ZW1JZCA9PT0gdGhpcy5nZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSk7XG4gICAgfVxuXG4gICAgaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc05vdEVtcHR5KHByb2Nlc3NlZEl0ZW0uaXRlbXMpO1xuICAgIH1cblxuICAgIGdldEFyaWFTZXRTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSAmJiAhdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc2VwYXJhdG9yJykpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXRBcmlhUG9zSW5zZXQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gaW5kZXggLSB0aGlzLml0ZW1zLnNsaWNlKDAsIGluZGV4KS5maWx0ZXIoKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSAmJiB0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzZXBhcmF0b3InKSkubGVuZ3RoICsgMTtcbiAgICB9XG5cbiAgICBvbkl0ZW1Nb3VzZUVudGVyKHBhcmFtOiBhbnkpIHtcbiAgICAgICAgY29uc3QgeyBldmVudCwgcHJvY2Vzc2VkSXRlbSB9ID0gcGFyYW07XG4gICAgICAgIHRoaXMuaXRlbU1vdXNlRW50ZXIuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0pO1xuICAgIH1cbn1cbi8qKlxuICogTWVnYU1lbnUgaXMgbmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBzdWJtZW51cyB0b2dldGhlci5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1tZWdhTWVudScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1tZWdhbWVudSBwLWNvbXBvbmVudCc6IHRydWUsICdwLW1lZ2FtZW51LWhvcml6b250YWwnOiBvcmllbnRhdGlvbiA9PSAnaG9yaXpvbnRhbCcsICdwLW1lZ2FtZW51LXZlcnRpY2FsJzogb3JpZW50YXRpb24gPT0gJ3ZlcnRpY2FsJyB9XCJcbiAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1uYW1lXT1cIidtZWdhbWVudSdcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tZWdhbWVudS1zdGFydFwiICpuZ0lmPVwic3RhcnRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGFydFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwLW1lZ2FNZW51U3ViXG4gICAgICAgICAgICAgICAgI3Jvb3RtZW51XG4gICAgICAgICAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJwcm9jZXNzZWRJdGVtc1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQgKyAnX2xpc3QnXCJcbiAgICAgICAgICAgICAgICBbbWVudUlkXT1cImlkXCJcbiAgICAgICAgICAgICAgICBbcm9vdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCIhZGlzYWJsZWQgPyB0YWJpbmRleCA6IC0xXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJhY3RpdmVJdGVtKClcIlxuICAgICAgICAgICAgICAgIFtsZXZlbF09XCIwXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2VkSXRlbUlkXT1cImZvY3VzZWQgPyBmb2N1c2VkSXRlbUlkIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChtZW51Rm9jdXMpPVwib25NZW51Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1lbnVCbHVyKT1cIm9uTWVudUJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1lbnVLZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoaXRlbU1vdXNlRW50ZXIpPVwib25JdGVtTW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3AtbWVnYU1lbnVTdWI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tZWdhbWVudS1lbmRcIiAqbmdJZj1cImVuZFRlbXBsYXRlOyBlbHNlIGxlZ2FjeVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbmRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xlZ2FjeT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tZWdhbWVudS1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0eWxlVXJsczogWycuL21lZ2FtZW51LmNzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdjYXgtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1lZ2FNZW51IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIG1lbnVpdGVtcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IE1lZ2FNZW51SXRlbVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NlZEl0ZW1zID0gdGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyh0aGlzLl9tb2RlbCB8fCBbXSk7XG4gICAgfVxuICAgIGdldCBtb2RlbCgpOiBNZWdhTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBvcmllbnRhdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB8IHN0cmluZyA9ICdob3Jpem9udGFsJztcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGlkIHN0YXRlIGFzIGEgc3RyaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgb2YgdGhlIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZW4gcHJlc2VudCwgaXQgc3BlY2lmaWVzIHRoYXQgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSW5kZXggb2YgdGhlIGVsZW1lbnQgaW4gdGFiYmluZyBvcmRlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyID0gMDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oQ2F4VGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PENheFRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbnVidXR0b24nKSBtZW51YnV0dG9uOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgncm9vdG1lbnUnKSByb290bWVudTogTWVnYU1lbnVTdWIgfCB1bmRlZmluZWQ7XG5cbiAgICBzdGFydFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgZW5kVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBtZW51SWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgc3VibWVudUljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIG91dHNpZGVDbGlja0xpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICByZXNpemVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGFjdGl2ZUl0ZW0gPSBzaWduYWw8YW55PihudWxsKTtcblxuICAgIGZvY3VzZWRJdGVtSW5mbyA9IHNpZ25hbDxhbnk+KHsgaW5kZXg6IC0xLCBsZXZlbDogMCwgcGFyZW50S2V5OiAnJywgaXRlbTogbnVsbCB9KTtcblxuICAgIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIHNlYXJjaFRpbWVvdXQ6IGFueTtcblxuICAgIF9wcm9jZXNzZWRJdGVtczogYW55W107XG5cbiAgICBfbW9kZWw6IE1lZ2FNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgZ2V0IHZpc2libGVJdGVtcygpIHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IE9iamVjdFV0aWxzLmlzTm90RW1wdHkodGhpcy5hY3RpdmVJdGVtKCkpID8gdGhpcy5hY3RpdmVJdGVtKCkgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtXG4gICAgICAgICAgICA/IHByb2Nlc3NlZEl0ZW0uaXRlbXMucmVkdWNlKChpdGVtcywgY29sKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb2wuZm9yRWFjaCgoc3VibWVudSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN1Ym1lbnUuaXRlbXMuZm9yRWFjaCgoYSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICAgICA6IHRoaXMucHJvY2Vzc2VkSXRlbXM7XG4gICAgfVxuXG4gICAgZ2V0IHByb2Nlc3NlZEl0ZW1zKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3Byb2Nlc3NlZEl0ZW1zIHx8ICF0aGlzLl9wcm9jZXNzZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NlZEl0ZW1zID0gdGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyh0aGlzLm1vZGVsIHx8IFtdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcHJvY2Vzc2VkSXRlbXM7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWRJdGVtSWQoKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gdGhpcy5mb2N1c2VkSXRlbUluZm8oKTtcbiAgICAgICAgcmV0dXJuIGZvY3VzZWRJdGVtPy5pdGVtICYmIGZvY3VzZWRJdGVtLml0ZW0/LmlkID8gZm9jdXNlZEl0ZW0uaXRlbS5pZCA6IE9iamVjdFV0aWxzLmlzTm90RW1wdHkoZm9jdXNlZEl0ZW0ua2V5KSA/IGAke3RoaXMuaWR9XyR7Zm9jdXNlZEl0ZW0ua2V5fWAgOiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHB1YmxpYyBjb25maWc6IGNheENvbmZpZyxcbiAgICAgICAgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IHRoaXMuYWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzTm90RW1wdHkoYWN0aXZlSXRlbSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmRPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudW5iaW5kT3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmluZFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCBVbmlxdWVDb21wb25lbnRJZCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbWVudWljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3N1Ym1lbnVpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtZW51SWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNyZWF0ZVByb2Nlc3NlZEl0ZW1zKGl0ZW1zLCBsZXZlbCA9IDAsIHBhcmVudCA9IHt9LCBwYXJlbnRLZXkgPSAnJywgY29sdW1uSW5kZXg/KSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW1zID0gW107XG5cbiAgICAgICAgaXRlbXMgJiZcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gKHBhcmVudEtleSAhPT0gJycgPyBwYXJlbnRLZXkgKyAnXycgOiAnJykgKyAoY29sdW1uSW5kZXggIT09IHVuZGVmaW5lZCA/IGNvbHVtbkluZGV4ICsgJ18nIDogJycpICsgaW5kZXg7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50S2V5LFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogY29sdW1uSW5kZXggIT09IHVuZGVmaW5lZCA/IGNvbHVtbkluZGV4IDogKDxhbnk+cGFyZW50KS5jb2x1bW5JbmRleCAhPT0gdW5kZWZpbmVkID8gKDxhbnk+cGFyZW50KS5jb2x1bW5JbmRleCA6IGluZGV4XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIG5ld0l0ZW1bJ2l0ZW1zJ10gPVxuICAgICAgICAgICAgICAgICAgICBsZXZlbCA9PT0gMCAmJiBpdGVtLml0ZW1zICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gMCA/IGl0ZW0uaXRlbXMubWFwKChfaXRlbXMsIF9pbmRleCkgPT4gdGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyhfaXRlbXMsIGxldmVsICsgMSwgbmV3SXRlbSwga2V5LCBfaW5kZXgpKSA6IHRoaXMuY3JlYXRlUHJvY2Vzc2VkSXRlbXMoaXRlbS5pdGVtcywgbGV2ZWwgKyAxLCBuZXdJdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW1zLnB1c2gobmV3SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW1zO1xuICAgIH1cblxuICAgIGdldEl0ZW1Qcm9wKGl0ZW06IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBpdGVtID8gT2JqZWN0VXRpbHMuZ2V0SXRlbVZhbHVlKGl0ZW1bbmFtZV0pIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgeyBvcmlnaW5hbEV2ZW50LCBwcm9jZXNzZWRJdGVtIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuaXNQcm9jZXNzZWRJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSk7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBPYmplY3RVdGlscy5pc0VtcHR5KHByb2Nlc3NlZEl0ZW0ucGFyZW50KTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWQocHJvY2Vzc2VkSXRlbSk7XG5cbiAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zdCB7IGluZGV4LCBrZXksIHBhcmVudEtleSwgaXRlbSB9ID0gcHJvY2Vzc2VkSXRlbTtcblxuICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtLnNldChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JbmZvLnNldCh7IGluZGV4LCBrZXksIHBhcmVudEtleSwgaXRlbSB9KTtcblxuICAgICAgICAgICAgdGhpcy5kaXJ0eSA9ICFyb290O1xuICAgICAgICAgICAgRG9tSGFuZGxlci5mb2N1cyh0aGlzLnJvb3RtZW51Py5tZW51YmFyVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChncm91cGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkl0ZW1DaGFuZ2UoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb290UHJvY2Vzc2VkSXRlbSA9IHJvb3QgPyBwcm9jZXNzZWRJdGVtIDogdGhpcy5hY3RpdmVJdGVtKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKG9yaWdpbmFsRXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKG9yaWdpbmFsRXZlbnQsIHJvb3RQcm9jZXNzZWRJdGVtID8gcm9vdFByb2Nlc3NlZEl0ZW0uaW5kZXggOiAtMSk7XG5cbiAgICAgICAgICAgICAgICBEb21IYW5kbGVyLmZvY3VzKHRoaXMucm9vdG1lbnU/Lm1lbnViYXJWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtTW91c2VFbnRlcihldmVudDogYW55KSB7XG4gICAgICAgIGlmICghRG9tSGFuZGxlci5pc1RvdWNoRGV2aWNlKCkpIHtcbiAgICAgICAgICAgIHRoaXMub25JdGVtQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNjcm9sbEluVmlldyhpbmRleDogbnVtYmVyID0gLTEpIHtcbiAgICAgICAgY29uc3QgaWQgPSBpbmRleCAhPT0gLTEgPyBgJHt0aGlzLmlkfV8ke2luZGV4fWAgOiB0aGlzLmZvY3VzZWRJdGVtSWQ7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBEb21IYW5kbGVyLmZpbmRTaW5nbGUodGhpcy5yb290bWVudT8uZWwubmF0aXZlRWxlbWVudCwgYGxpW2lkPVwiJHtpZH1cIl1gKTtcblxuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyAmJiBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgICAgICBjb25zdCB7IHByb2Nlc3NlZEl0ZW0sIGlzRm9jdXMgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmIChPYmplY3RVdGlscy5pc0VtcHR5KHByb2Nlc3NlZEl0ZW0pKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyBpbmRleCwga2V5LCBwYXJlbnRLZXksIGl0ZW1zLCBpdGVtIH0gPSBwcm9jZXNzZWRJdGVtO1xuICAgICAgICBjb25zdCBncm91cGVkID0gT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShpdGVtcyk7XG5cbiAgICAgICAgaWYgKGdyb3VwZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbS5zZXQocHJvY2Vzc2VkSXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXgsIGtleSwgcGFyZW50S2V5LCBpdGVtIH0pO1xuXG4gICAgICAgIGdyb3VwZWQgJiYgKHRoaXMuZGlydHkgPSB0cnVlKTtcbiAgICAgICAgaXNGb2N1cyAmJiBEb21IYW5kbGVyLmZvY3VzKHRoaXMucm9vdG1lbnU/Lm1lbnViYXJWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGhpZGUoZXZlbnQ/LCBpc0ZvY3VzPzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KG51bGwpO1xuICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogLTEsIGtleTogJycsIHBhcmVudEtleTogJycsIGl0ZW06IG51bGwgfSk7XG5cbiAgICAgICAgaXNGb2N1cyAmJiBEb21IYW5kbGVyLmZvY3VzKHRoaXMucm9vdG1lbnU/Lm1lbnViYXJWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25NZW51Rm9jdXMoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maW5kRmlyc3RGb2N1c2VkSXRlbUluZGV4KCk7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gdGhpcy5maW5kVmlzaWJsZUl0ZW0oaW5kZXgpO1xuXG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleCwga2V5OiBwcm9jZXNzZWRJdGVtLmtleSwgcGFyZW50S2V5OiBwcm9jZXNzZWRJdGVtLnBhcmVudEtleSwgaXRlbTogcHJvY2Vzc2VkSXRlbS5pdGVtIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25NZW51Qmx1cihldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogLTEsIGxldmVsOiAwLCBwYXJlbnRLZXk6ICcnLCBpdGVtOiBudWxsIH0pO1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgbWV0YUtleSA9IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleTtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93RG93bktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd1VwS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dMZWZ0S2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93UmlnaHRLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSG9tZUtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3BhY2VLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXNjYXBlS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uVGFiS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTaGlmdExlZnQnOlxuICAgICAgICAgICAgY2FzZSAnU2hpZnRSaWdodCc6XG4gICAgICAgICAgICAgICAgLy9OT09QXG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKCFtZXRhS2V5ICYmIE9iamVjdFV0aWxzLmlzUHJpbnRhYmxlQ2hhcmFjdGVyKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hJdGVtcyhldmVudCwgZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpbmRGaXJzdEZvY3VzZWRJdGVtSW5kZXgoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLmZpbmRTZWxlY3RlZEl0ZW1JbmRleCgpO1xuXG4gICAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4IDwgMCA/IHRoaXMuZmluZEZpcnN0SXRlbUluZGV4KCkgOiBzZWxlY3RlZEluZGV4O1xuICAgIH1cblxuICAgIGZpbmRGaXJzdEl0ZW1JbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSk7XG4gICAgfVxuXG4gICAgZmluZFNlbGVjdGVkSXRlbUluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlSXRlbXMuZmluZEluZGV4KChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzVmFsaWRTZWxlY3RlZEl0ZW0ocHJvY2Vzc2VkSXRlbSkpO1xuICAgIH1cblxuICAgIGlzUHJvY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbSAmJiBPYmplY3RVdGlscy5pc05vdEVtcHR5KHByb2Nlc3NlZEl0ZW0uaXRlbXMpO1xuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQocHJvY2Vzc2VkSXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc05vdEVtcHR5KHRoaXMuYWN0aXZlSXRlbSgpKSA/IHRoaXMuYWN0aXZlSXRlbSgpLmtleSA9PT0gcHJvY2Vzc2VkSXRlbS5rZXkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkU2VsZWN0ZWRJdGVtKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSAmJiB0aGlzLmlzU2VsZWN0ZWQocHJvY2Vzc2VkSXRlbSk7XG4gICAgfVxuXG4gICAgaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXByb2Nlc3NlZEl0ZW0gJiYgIXRoaXMuaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbS5pdGVtKSAmJiAhdGhpcy5pc0l0ZW1TZXBhcmF0b3IocHJvY2Vzc2VkSXRlbS5pdGVtKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1EaXNhYmxlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AoaXRlbSwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtU2VwYXJhdG9yKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChpdGVtLCAnc2VwYXJhdG9yJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtTWF0Y2hlZChwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkgJiYgdGhpcy5nZXRQcm9jY2Vzc2VkSXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pLnRvTG9jYWxlTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIGlzUHJvY2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW0gJiYgT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShwcm9jZXNzZWRJdGVtLml0ZW1zKTtcbiAgICB9XG5cbiAgICBzZWFyY2hJdGVtcyhldmVudDogYW55LCBjaGFyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICh0aGlzLnNlYXJjaFZhbHVlIHx8ICcnKSArIGNoYXI7XG5cbiAgICAgICAgbGV0IGl0ZW1JbmRleCA9IC0xO1xuICAgICAgICBsZXQgbWF0Y2hlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgaXRlbUluZGV4ID0gdGhpcy52aXNpYmxlSXRlbXMuc2xpY2UodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCkuZmluZEluZGV4KChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbSkpO1xuICAgICAgICAgICAgaXRlbUluZGV4ID0gaXRlbUluZGV4ID09PSAtMSA/IHRoaXMudmlzaWJsZUl0ZW1zLnNsaWNlKDAsIHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpLmZpbmRJbmRleCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1NYXRjaGVkKHByb2Nlc3NlZEl0ZW0pKSA6IGl0ZW1JbmRleCArIHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpdGVtSW5kZXggPSB0aGlzLnZpc2libGVJdGVtcy5maW5kSW5kZXgoKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNJdGVtTWF0Y2hlZChwcm9jZXNzZWRJdGVtKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgbWF0Y2hlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbUluZGV4ID09PSAtMSAmJiB0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgaXRlbUluZGV4ID0gdGhpcy5maW5kRmlyc3RGb2N1c2VkSXRlbUluZGV4KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbUluZm8oZXZlbnQsIGl0ZW1JbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hUaW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfSwgNTAwKTtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG5cbiAgICBnZXRQcm9jY2Vzc2VkSXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW06IGFueSkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbSA/IHRoaXMuZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0uaXRlbSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0SXRlbUxhYmVsKGl0ZW06IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChpdGVtLCAnbGFiZWwnKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VGb2N1c2VkSXRlbUluZm8oZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLmZpbmRWaXNpYmxlSXRlbShpbmRleCk7XG4gICAgICAgIGlmIChPYmplY3RVdGlscy5pc05vdEVtcHR5KHByb2Nlc3NlZEl0ZW0pKSB7XG4gICAgICAgICAgICBjb25zdCB7IGtleSwgcGFyZW50S2V5LCBpdGVtIH0gPSBwcm9jZXNzZWRJdGVtO1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXgsIGtleToga2V5ID8ga2V5IDogJycsIHBhcmVudEtleSwgaXRlbSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2Nyb2xsSW5WaWV3KCk7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd25LZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzTm90RW1wdHkodGhpcy5hY3RpdmVJdGVtKCkpICYmIHRoaXMuYWN0aXZlSXRlbSgpLmtleSA9PT0gdGhpcy5mb2N1c2VkSXRlbUluZm8oKS5rZXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleSwgaXRlbSB9ID0gdGhpcy5hY3RpdmVJdGVtKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXg6IC0xLCBrZXk6ICcnLCBwYXJlbnRLZXk6IGtleSwgaXRlbSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHRoaXMuZmluZFZpc2libGVJdGVtKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzUHJvY2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKTtcblxuICAgICAgICAgICAgICAgIGlmIChncm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGFyZW50S2V5LCBrZXksIGl0ZW0gfSA9IHByb2Nlc3NlZEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25JdGVtQ2hhbmdlKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHByb2Nlc3NlZEl0ZW0gfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JbmZvLnNldCh7IGluZGV4OiAtMSwga2V5OiBrZXksIHBhcmVudEtleTogcGFyZW50S2V5LCBpdGVtOiBpdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEgPyB0aGlzLmZpbmROZXh0SXRlbUluZGV4KHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpIDogdGhpcy5maW5kRmlyc3RGb2N1c2VkSXRlbUluZGV4KCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uQXJyb3dSaWdodEtleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gdGhpcy5maW5kVmlzaWJsZUl0ZW0odGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCk7XG4gICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzUHJvY2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKTtcblxuICAgICAgICBpZiAoZ3JvdXBlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNOb3RFbXB0eSh0aGlzLmFjdGl2ZUl0ZW0oKSkgJiYgdGhpcy5hY3RpdmVJdGVtKCkua2V5ID09PSBwcm9jZXNzZWRJdGVtLmtleSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogLTEsIGtleTogJycsIHBhcmVudEtleTogdGhpcy5hY3RpdmVJdGVtKCkua2V5LCBpdGVtOiBwcm9jZXNzZWRJdGVtLml0ZW0gfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHRoaXMuZmluZFZpc2libGVJdGVtKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5pc1Byb2NjZXNzZWRJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25JdGVtQ2hhbmdlKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHByb2Nlc3NlZEl0ZW0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogLTEsIGtleTogcHJvY2Vzc2VkSXRlbS5rZXksIHBhcmVudEtleTogcHJvY2Vzc2VkSXRlbS5wYXJlbnRLZXksIGl0ZW06IHByb2Nlc3NlZEl0ZW0uaXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEgPyB0aGlzLmZpbmROZXh0SXRlbUluZGV4KHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpIDogdGhpcy5maW5kRmlyc3RGb2N1c2VkSXRlbUluZGV4KCk7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSBwcm9jZXNzZWRJdGVtLmNvbHVtbkluZGV4ICsgMTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMudmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5jb2x1bW5JbmRleCA9PT0gY29sdW1uSW5kZXgpO1xuXG4gICAgICAgICAgICBpdGVtSW5kZXggIT09IC0xICYmIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXBLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLmZpbmRWaXNpYmxlSXRlbSh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5pc1Byb2NjZXNzZWRJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWdyb3VwZWQgJiYgT2JqZWN0VXRpbHMuaXNOb3RFbXB0eSh0aGlzLmFjdGl2ZUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogdGhpcy5hY3RpdmVJdGVtKCkuaW5kZXgsIGtleTogdGhpcy5hY3RpdmVJdGVtKCkua2V5LCBwYXJlbnRLZXk6IHRoaXMuYWN0aXZlSXRlbSgpLnBhcmVudEtleSwgaXRlbTogcHJvY2Vzc2VkSXRlbS5pdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtLnNldChudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCB0aGlzLmZpbmRGaXJzdEl0ZW1JbmRleCgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXggIT09IC0xID8gdGhpcy5maW5kUHJldkl0ZW1JbmRleCh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KSA6IHRoaXMuZmluZExhc3RGb2N1c2VkSXRlbUluZGV4KCk7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dMZWZ0S2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLmZpbmRWaXNpYmxlSXRlbSh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KTtcbiAgICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuaXNQcm9jY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pO1xuXG4gICAgICAgIGlmIChncm91cGVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEgPyB0aGlzLmZpbmRQcmV2SXRlbUluZGV4KHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpIDogdGhpcy5maW5kTGFzdEZvY3VzZWRJdGVtSW5kZXgoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgJiYgT2JqZWN0VXRpbHMuaXNOb3RFbXB0eSh0aGlzLmFjdGl2ZUl0ZW0oKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzc2VkSXRlbS5jb2x1bW5JbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogdGhpcy5hY3RpdmVJdGVtKCkuaW5kZXgsIGtleTogdGhpcy5hY3RpdmVJdGVtKCkua2V5LCBwYXJlbnRLZXk6IHRoaXMuYWN0aXZlSXRlbSgpLnBhcmVudEtleSwgaXRlbTogcHJvY2Vzc2VkSXRlbS5pdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSBwcm9jZXNzZWRJdGVtLmNvbHVtbkluZGV4IC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMudmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5jb2x1bW5JbmRleCA9PT0gY29sdW1uSW5kZXgpO1xuXG4gICAgICAgICAgICBpdGVtSW5kZXggIT09IC0xICYmIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkhvbWVLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbUluZm8oZXZlbnQsIHRoaXMuZmluZEZpcnN0SXRlbUluZGV4KCkpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uRW5kS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCB0aGlzLmZpbmRMYXN0SXRlbUluZGV4KCkpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uU3BhY2VLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkVzY2FwZUtleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNOb3RFbXB0eSh0aGlzLmFjdGl2ZUl0ZW0oKSkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JbmZvLnNldCh7IGluZGV4OiB0aGlzLmFjdGl2ZUl0ZW0oKS5pbmRleCwga2V5OiB0aGlzLmFjdGl2ZUl0ZW0oKS5rZXksIGl0ZW06IHRoaXMuYWN0aXZlSXRlbSgpLml0ZW0gfSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblRhYktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLmZpbmRWaXNpYmxlSXRlbSh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzUHJvY2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKTtcblxuICAgICAgICAgICAgIWdyb3VwZWQgJiYgdGhpcy5vbkl0ZW1DaGFuZ2UoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgcHJvY2Vzc2VkSXRlbSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIG9uRW50ZXJLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gRG9tSGFuZGxlci5maW5kU2luZ2xlKHRoaXMucm9vdG1lbnU/LmVsPy5uYXRpdmVFbGVtZW50LCBgbGlbaWQ9XCIke2Ake3RoaXMuZm9jdXNlZEl0ZW1JZH1gfVwiXWApO1xuICAgICAgICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGVsZW1lbnQgJiYgRG9tSGFuZGxlci5maW5kU2luZ2xlKGVsZW1lbnQsICdhW2RhdGEtcGMtc2VjdGlvbj1cImFjdGlvblwiXScpO1xuXG4gICAgICAgICAgICBhbmNob3JFbGVtZW50ID8gYW5jaG9yRWxlbWVudC5jbGljaygpIDogZWxlbWVudCAmJiBlbGVtZW50LmNsaWNrKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLnZpc2libGVJdGVtc1t0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzUHJvY2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKTtcblxuICAgICAgICAgICAgIWdyb3VwZWQgJiYgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbUluZm8oZXZlbnQsIHRoaXMuZmluZEZpcnN0Rm9jdXNlZEl0ZW1JbmRleCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgZmluZFZpc2libGVJdGVtKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc05vdEVtcHR5KHRoaXMudmlzaWJsZUl0ZW1zKSA/IHRoaXMudmlzaWJsZUl0ZW1zW2luZGV4XSA6IG51bGw7XG4gICAgfVxuXG4gICAgZmluZExhc3RGb2N1c2VkSXRlbUluZGV4KCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdGhpcy5maW5kU2VsZWN0ZWRJdGVtSW5kZXgoKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXggPCAwID8gdGhpcy5maW5kTGFzdEl0ZW1JbmRleCgpIDogc2VsZWN0ZWRJbmRleDtcbiAgICB9XG5cbiAgICBmaW5kTGFzdEl0ZW1JbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmZpbmRMYXN0SW5kZXgodGhpcy52aXNpYmxlSXRlbXMsIChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pKTtcbiAgICB9XG5cbiAgICBmaW5kUHJldkl0ZW1JbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJdGVtSW5kZXggPSBpbmRleCA+IDAgPyBPYmplY3RVdGlscy5maW5kTGFzdEluZGV4KHRoaXMudmlzaWJsZUl0ZW1zLnNsaWNlKDAsIGluZGV4KSwgKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkpIDogLTE7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJdGVtSW5kZXggPiAtMSA/IG1hdGNoZWRJdGVtSW5kZXggOiBpbmRleDtcbiAgICB9XG5cbiAgICBmaW5kTmV4dEl0ZW1JbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJdGVtSW5kZXggPSBpbmRleCA8IHRoaXMudmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDEgPyB0aGlzLnZpc2libGVJdGVtcy5zbGljZShpbmRleCArIDEpLmZpbmRJbmRleCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSkgOiAtMTtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZEl0ZW1JbmRleCA+IC0xID8gbWF0Y2hlZEl0ZW1JbmRleCArIGluZGV4ICsgMSA6IGluZGV4O1xuICAgIH1cblxuICAgIGJpbmRSZXNpemVMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5yZXNpemVMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LCAncmVzaXplJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZShldmVudCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kT3V0c2lkZUNsaWNrTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMub3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzT3V0c2lkZUNvbnRhaW5lciA9IHRoaXMucm9vdG1lbnU/LmVsLm5hdGl2ZUVsZW1lbnQgIT09IGV2ZW50LnRhcmdldCAmJiAhdGhpcy5yb290bWVudT8uZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc091dHNpZGVDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMub3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMub3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMub3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kUmVzaXplTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuYmluZE91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMudW5iaW5kUmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIFNoYXJlZE1vZHVsZSwgQW5nbGVEb3duSWNvbiwgQW5nbGVSaWdodEljb25dLFxuICAgIGV4cG9ydHM6IFtNZWdhTWVudSwgUm91dGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW01lZ2FNZW51LCBNZWdhTWVudVN1Yl1cbn0pXG5leHBvcnQgY2xhc3MgTWVnYU1lbnVNb2R1bGUge31cbiJdfQ==