cax-design-system 2.8.2 → 2.8.3

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 (1726) hide show
  1. package/accordion/accordion.d.ts +224 -0
  2. package/accordion/accordion.interface.d.ts +49 -0
  3. package/accordion/accordion.module.d.ts +13 -0
  4. package/accordion/index.d.ts +3 -286
  5. package/accordion/public_api.d.ts +3 -0
  6. package/animate/animate.d.ts +40 -0
  7. package/animate/index.d.ts +3 -41
  8. package/animate/public_api.d.ts +1 -0
  9. package/animateonscroll/animateonscroll.d.ts +75 -0
  10. package/animateonscroll/index.d.ts +3 -75
  11. package/animateonscroll/public_api.d.ts +1 -0
  12. package/api/blockableui.d.ts +10 -0
  13. package/api/caxconfig.d.ts +24 -0
  14. package/api/confirmaeventtype.d.ts +8 -0
  15. package/api/confirmation.d.ts +96 -0
  16. package/api/confirmationservice.d.ts +30 -0
  17. package/api/contextmenuservice.d.ts +11 -0
  18. package/api/filtermatchmode.d.ts +22 -0
  19. package/api/filtermetadata.d.ts +18 -0
  20. package/api/filteroperator.d.ts +4 -0
  21. package/api/filterservice.d.ts +10 -0
  22. package/api/index.d.ts +3 -1856
  23. package/api/lazyloadevent.d.ts +47 -0
  24. package/api/lazyloadmeta.d.ts +19 -0
  25. package/api/megamenuitem.d.ts +130 -0
  26. package/api/menuitem.d.ts +176 -0
  27. package/api/message.d.ts +30 -0
  28. package/api/messageservice.d.ts +32 -0
  29. package/api/overlayoptions.d.ts +188 -0
  30. package/api/overlayservice.d.ts +9 -0
  31. package/api/primeicons.d.ts +313 -0
  32. package/api/public_api.d.ts +34 -0
  33. package/api/scrolleroptions.d.ts +116 -0
  34. package/api/selectitem.d.ts +12 -0
  35. package/api/selectitemgroup.d.ts +10 -0
  36. package/api/shared.d.ts +24 -0
  37. package/api/sortevent.d.ts +12 -0
  38. package/api/sortmeta.d.ts +8 -0
  39. package/api/tablestate.d.ts +60 -0
  40. package/api/themegeneratorservice.d.ts +12 -0
  41. package/api/tooltipoptions.d.ts +69 -0
  42. package/api/translation.d.ts +135 -0
  43. package/api/translationkeys.d.ts +50 -0
  44. package/api/treedragdropservice.d.ts +12 -0
  45. package/api/treenode.d.ts +91 -0
  46. package/api/treenodedragevent.d.ts +27 -0
  47. package/api/treetablenode.d.ts +36 -0
  48. package/autocomplete/autocomplete.d.ts +616 -0
  49. package/autocomplete/autocomplete.interface.d.ts +164 -0
  50. package/autocomplete/autocomplete.module.d.ts +20 -0
  51. package/autocomplete/index.d.ts +3 -799
  52. package/autocomplete/public_api.d.ts +3 -0
  53. package/autofocus/autofocus.d.ts +28 -0
  54. package/autofocus/index.d.ts +3 -29
  55. package/autofocus/public_api.d.ts +1 -0
  56. package/avatar/avatar.d.ts +73 -0
  57. package/avatar/avatar.module.d.ts +7 -0
  58. package/avatar/index.d.ts +3 -80
  59. package/avatar/public_api.d.ts +2 -0
  60. package/avatargroup/avatargroup.d.ts +21 -0
  61. package/avatargroup/avatargroup.module.d.ts +9 -0
  62. package/avatargroup/index.d.ts +3 -30
  63. package/avatargroup/public_api.d.ts +2 -0
  64. package/badge/badge.d.ts +21 -0
  65. package/badge/badge.directive.d.ts +35 -0
  66. package/badge/badge.module.d.ts +10 -0
  67. package/badge/index.d.ts +5 -67
  68. package/badge/public_api.d.ts +3 -0
  69. package/baseicon/baseicon.d.ts +15 -0
  70. package/baseicon/index.d.ts +5 -18
  71. package/baseicon/public_api.d.ts +1 -0
  72. package/blockui/blockui.d.ts +64 -0
  73. package/blockui/blockui.interface.d.ts +11 -0
  74. package/blockui/index.d.ts +3 -77
  75. package/blockui/public_api.d.ts +2 -0
  76. package/breadcrumb/breadcrumb.d.ts +55 -0
  77. package/breadcrumb/breadcrumb.interface.d.ts +38 -0
  78. package/breadcrumb/breadcrumb.module.d.ts +13 -0
  79. package/breadcrumb/index.d.ts +3 -105
  80. package/breadcrumb/public_api.d.ts +3 -0
  81. package/button/button.d.ts +85 -0
  82. package/button/button.directive.d.ts +49 -0
  83. package/button/button.interface.d.ts +30 -0
  84. package/button/button.module.d.ts +9 -0
  85. package/button/index.d.ts +3 -170
  86. package/button/public_api.d.ts +4 -0
  87. package/buttongroup/buttongroup.d.ts +11 -0
  88. package/buttongroup/index.d.ts +5 -14
  89. package/buttongroup/public_api.d.ts +1 -0
  90. package/calendar/calendar.d.ts +722 -0
  91. package/calendar/calendar.interface.d.ts +204 -0
  92. package/calendar/calendar.module.d.ts +9 -0
  93. package/calendar/index.d.ts +3 -935
  94. package/calendar/public_api.d.ts +3 -0
  95. package/card/card.d.ts +53 -0
  96. package/card/card.interface.d.ts +27 -0
  97. package/card/card.module.d.ts +11 -0
  98. package/card/index.d.ts +3 -92
  99. package/card/public_api.d.ts +3 -0
  100. package/carousel/carousel.d.ts +227 -0
  101. package/carousel/carousel.interface.d.ts +63 -0
  102. package/carousel/index.d.ts +3 -290
  103. package/carousel/public_api.d.ts +2 -0
  104. package/cascadeselect/cascadeselect.d.ts +435 -0
  105. package/cascadeselect/cascadeselect.interface.d.ts +115 -0
  106. package/cascadeselect/cascadeselect.module.d.ts +15 -0
  107. package/cascadeselect/index.d.ts +3 -564
  108. package/cascadeselect/public_api.d.ts +3 -0
  109. package/chart/chart.d.ts +87 -0
  110. package/chart/index.d.ts +3 -88
  111. package/chart/public_api.d.ts +1 -0
  112. package/checkbox/checkbox.d.ts +168 -0
  113. package/checkbox/checkbox.interface.d.ts +26 -0
  114. package/checkbox/checkbox.module.d.ts +10 -0
  115. package/checkbox/index.d.ts +3 -204
  116. package/checkbox/public_api.d.ts +3 -0
  117. package/chip/chip.d.ts +38 -0
  118. package/chip/chip.interface.d.ts +15 -0
  119. package/chip/chip.module.d.ts +10 -0
  120. package/chip/index.d.ts +3 -63
  121. package/chip/public_api.d.ts +3 -0
  122. package/chips/chips.d.ts +233 -0
  123. package/chips/chips.interface.d.ts +58 -0
  124. package/chips/chips.module.d.ts +14 -0
  125. package/chips/index.d.ts +3 -305
  126. package/chips/public_api.d.ts +3 -0
  127. package/colorpicker/colorpicker.d.ts +240 -0
  128. package/colorpicker/colorpicker.interface.d.ts +15 -0
  129. package/colorpicker/colorpicker.module.d.ts +9 -0
  130. package/colorpicker/index.d.ts +3 -265
  131. package/colorpicker/public_api.d.ts +3 -0
  132. package/commentbox/commentbox.d.ts +120 -0
  133. package/commentbox/commentbox.module.d.ts +17 -0
  134. package/commentbox/index.d.ts +5 -138
  135. package/commentbox/public_api.d.ts +2 -0
  136. package/confirmdialog/confirmdialog.d.ts +281 -0
  137. package/confirmdialog/confirmdialog.interface.d.ts +39 -0
  138. package/confirmdialog/confirmdialog.module.d.ts +15 -0
  139. package/confirmdialog/index.d.ts +3 -336
  140. package/confirmdialog/public_api.d.ts +3 -0
  141. package/confirmpopup/confirmpopup.d.ts +119 -0
  142. package/confirmpopup/confirmpopup.interface.d.ts +27 -0
  143. package/confirmpopup/index.d.ts +3 -148
  144. package/confirmpopup/public_api.d.ts +2 -0
  145. package/contextmenu/contextmenu.d.ts +260 -0
  146. package/contextmenu/index.d.ts +3 -261
  147. package/contextmenu/public_api.d.ts +1 -0
  148. package/dataview/dataview.d.ts +274 -0
  149. package/dataview/dataview.interface.d.ts +183 -0
  150. package/dataview/index.d.ts +3 -457
  151. package/dataview/public_api.d.ts +2 -0
  152. package/defer/defer.d.ts +39 -0
  153. package/defer/index.d.ts +3 -40
  154. package/defer/public_api.d.ts +1 -0
  155. package/dialog/dialog.d.ts +364 -0
  156. package/dialog/dialog.interface.d.ts +31 -0
  157. package/dialog/dialog.module.d.ts +15 -0
  158. package/dialog/index.d.ts +3 -411
  159. package/dialog/public_api.d.ts +3 -0
  160. package/divider/divider.d.ts +49 -0
  161. package/divider/divider.module.d.ts +7 -0
  162. package/divider/index.d.ts +3 -56
  163. package/divider/public_api.d.ts +2 -0
  164. package/dock/dock.d.ts +115 -0
  165. package/dock/dock.interface.d.ts +19 -0
  166. package/dock/index.d.ts +3 -136
  167. package/dock/public_api.d.ts +2 -0
  168. package/dom/connectedoverlayscrollhandler.d.ts +9 -0
  169. package/dom/domhandler.d.ts +95 -0
  170. package/dom/index.d.ts +3 -105
  171. package/dom/public_api.d.ts +2 -0
  172. package/dragdrop/dragdrop.d.ts +112 -0
  173. package/dragdrop/dragdrop.module.d.ts +8 -0
  174. package/dragdrop/index.d.ts +3 -120
  175. package/dragdrop/public_api.d.ts +2 -0
  176. package/dropdown/dropdown-item.d.ts +30 -0
  177. package/dropdown/dropdown.d.ts +628 -0
  178. package/dropdown/dropdown.interface.d.ts +154 -0
  179. package/dropdown/dropdown.module.d.ts +11 -0
  180. package/dropdown/index.d.ts +3 -818
  181. package/dropdown/public_api.d.ts +4 -0
  182. package/dynamicdialog/dialogservice.d.ts +35 -0
  183. package/dynamicdialog/dynamicdialog-config.d.ts +221 -0
  184. package/dynamicdialog/dynamicdialog-injector.d.ts +7 -0
  185. package/dynamicdialog/dynamicdialog-ref.d.ts +101 -0
  186. package/dynamicdialog/dynamicdialog.d.ts +124 -0
  187. package/dynamicdialog/dynamicdialogcontent.d.ts +8 -0
  188. package/dynamicdialog/index.d.ts +3 -490
  189. package/dynamicdialog/public_api.d.ts +6 -0
  190. package/editor/editor.d.ts +104 -0
  191. package/editor/editor.interface.d.ts +64 -0
  192. package/editor/editor.module.d.ts +9 -0
  193. package/editor/index.d.ts +3 -177
  194. package/editor/public_api.d.ts +3 -0
  195. package/esm2022/accordion/accordion.interface.mjs +2 -0
  196. package/esm2022/accordion/accordion.mjs +598 -0
  197. package/esm2022/accordion/accordion.module.mjs +23 -0
  198. package/esm2022/accordion/cax-design-system-accordion.mjs +5 -0
  199. package/esm2022/accordion/public_api.mjs +4 -0
  200. package/esm2022/animate/animate.mjs +101 -0
  201. package/esm2022/animate/cax-design-system-animate.mjs +5 -0
  202. package/esm2022/animate/public_api.mjs +2 -0
  203. package/esm2022/animateonscroll/animateonscroll.mjs +185 -0
  204. package/esm2022/animateonscroll/cax-design-system-animateonscroll.mjs +5 -0
  205. package/esm2022/animateonscroll/public_api.mjs +2 -0
  206. package/esm2022/api/blockableui.mjs +2 -0
  207. package/esm2022/api/cax-design-system-api.mjs +5 -0
  208. package/esm2022/api/caxconfig.mjs +163 -0
  209. package/esm2022/api/confirmaeventtype.mjs +10 -0
  210. package/esm2022/api/confirmation.mjs +2 -0
  211. package/esm2022/api/confirmationservice.mjs +43 -0
  212. package/esm2022/api/contextmenuservice.mjs +22 -0
  213. package/esm2022/api/filtermatchmode.mjs +23 -0
  214. package/esm2022/api/filtermetadata.mjs +2 -0
  215. package/esm2022/api/filteroperator.mjs +5 -0
  216. package/esm2022/api/filterservice.mjs +225 -0
  217. package/esm2022/api/lazyloadevent.mjs +2 -0
  218. package/esm2022/api/lazyloadmeta.mjs +2 -0
  219. package/esm2022/api/megamenuitem.mjs +2 -0
  220. package/esm2022/api/menuitem.mjs +2 -0
  221. package/esm2022/api/message.mjs +2 -0
  222. package/esm2022/api/messageservice.mjs +47 -0
  223. package/esm2022/api/overlayoptions.mjs +2 -0
  224. package/esm2022/api/overlayservice.mjs +19 -0
  225. package/esm2022/api/primeicons.mjs +314 -0
  226. package/esm2022/api/public_api.mjs +35 -0
  227. package/esm2022/api/scrolleroptions.mjs +2 -0
  228. package/esm2022/api/selectitem.mjs +2 -0
  229. package/esm2022/api/selectitemgroup.mjs +2 -0
  230. package/esm2022/api/shared.mjs +65 -0
  231. package/esm2022/api/sortevent.mjs +2 -0
  232. package/esm2022/api/sortmeta.mjs +2 -0
  233. package/esm2022/api/tablestate.mjs +2 -0
  234. package/esm2022/api/themegeneratorservice.mjs +109 -0
  235. package/esm2022/api/tooltipoptions.mjs +2 -0
  236. package/esm2022/api/translation.mjs +2 -0
  237. package/esm2022/api/translationkeys.mjs +51 -0
  238. package/esm2022/api/treedragdropservice.mjs +21 -0
  239. package/esm2022/api/treenode.mjs +2 -0
  240. package/esm2022/api/treenodedragevent.mjs +2 -0
  241. package/esm2022/api/treetablenode.mjs +2 -0
  242. package/esm2022/autocomplete/autocomplete.interface.mjs +2 -0
  243. package/esm2022/autocomplete/autocomplete.mjs +1462 -0
  244. package/esm2022/autocomplete/autocomplete.module.mjs +30 -0
  245. package/esm2022/autocomplete/cax-design-system-autocomplete.mjs +5 -0
  246. package/esm2022/autocomplete/public_api.mjs +4 -0
  247. package/esm2022/autofocus/autofocus.mjs +78 -0
  248. package/esm2022/autofocus/cax-design-system-autofocus.mjs +5 -0
  249. package/esm2022/autofocus/public_api.mjs +2 -0
  250. package/esm2022/avatar/avatar.mjs +104 -0
  251. package/esm2022/avatar/avatar.module.mjs +16 -0
  252. package/esm2022/avatar/cax-design-system-avatar.mjs +5 -0
  253. package/esm2022/avatar/public_api.mjs +3 -0
  254. package/esm2022/avatargroup/avatargroup.mjs +32 -0
  255. package/esm2022/avatargroup/avatargroup.module.mjs +19 -0
  256. package/esm2022/avatargroup/cax-design-system-avatargroup.mjs +5 -0
  257. package/esm2022/avatargroup/public_api.mjs +3 -0
  258. package/esm2022/badge/badge.directive.mjs +193 -0
  259. package/esm2022/badge/badge.mjs +50 -0
  260. package/esm2022/badge/badge.module.mjs +20 -0
  261. package/esm2022/badge/cax-design-system-badge.mjs +5 -0
  262. package/esm2022/badge/public_api.mjs +4 -0
  263. package/esm2022/baseicon/baseicon.mjs +45 -0
  264. package/esm2022/baseicon/cax-design-system-baseicon.mjs +5 -0
  265. package/esm2022/baseicon/public_api.mjs +2 -0
  266. package/esm2022/blockui/blockui.interface.mjs +2 -0
  267. package/esm2022/blockui/blockui.mjs +206 -0
  268. package/esm2022/blockui/cax-design-system-blockui.mjs +5 -0
  269. package/esm2022/blockui/public_api.mjs +3 -0
  270. package/esm2022/breadcrumb/breadcrumb.interface.mjs +2 -0
  271. package/esm2022/breadcrumb/breadcrumb.mjs +120 -0
  272. package/esm2022/breadcrumb/breadcrumb.module.mjs +23 -0
  273. package/esm2022/breadcrumb/cax-design-system-breadcrumb.mjs +5 -0
  274. package/esm2022/breadcrumb/public_api.mjs +4 -0
  275. package/esm2022/button/button.directive.mjs +259 -0
  276. package/esm2022/button/button.interface.mjs +2 -0
  277. package/esm2022/button/button.mjs +190 -0
  278. package/esm2022/button/button.module.mjs +18 -0
  279. package/esm2022/button/cax-design-system-button.mjs +5 -0
  280. package/esm2022/button/public_api.mjs +5 -0
  281. package/esm2022/buttongroup/buttongroup.mjs +38 -0
  282. package/esm2022/buttongroup/cax-design-system-buttongroup.mjs +5 -0
  283. package/esm2022/buttongroup/public_api.mjs +2 -0
  284. package/esm2022/calendar/calendar.interface.mjs +2 -0
  285. package/esm2022/calendar/calendar.mjs +3242 -0
  286. package/esm2022/calendar/calendar.module.mjs +18 -0
  287. package/esm2022/calendar/cax-design-system-calendar.mjs +5 -0
  288. package/esm2022/calendar/public_api.mjs +4 -0
  289. package/esm2022/card/card.interface.mjs +2 -0
  290. package/esm2022/card/card.mjs +117 -0
  291. package/esm2022/card/card.module.mjs +21 -0
  292. package/esm2022/card/cax-design-system-card.mjs +5 -0
  293. package/esm2022/card/public_api.mjs +4 -0
  294. package/esm2022/carousel/carousel.interface.mjs +2 -0
  295. package/esm2022/carousel/carousel.mjs +968 -0
  296. package/esm2022/carousel/cax-design-system-carousel.mjs +5 -0
  297. package/esm2022/carousel/public_api.mjs +3 -0
  298. package/esm2022/cascadeselect/cascadeselect.interface.mjs +2 -0
  299. package/esm2022/cascadeselect/cascadeselect.mjs +1135 -0
  300. package/esm2022/cascadeselect/cascadeselect.module.mjs +25 -0
  301. package/esm2022/cascadeselect/cax-design-system-cascadeselect.mjs +5 -0
  302. package/esm2022/cascadeselect/public_api.mjs +4 -0
  303. package/esm2022/cax-design-system.mjs +5 -0
  304. package/esm2022/chart/cax-design-system-chart.mjs +5 -0
  305. package/esm2022/chart/chart.mjs +236 -0
  306. package/esm2022/chart/public_api.mjs +2 -0
  307. package/esm2022/checkbox/cax-design-system-checkbox.mjs +5 -0
  308. package/esm2022/checkbox/checkbox.interface.mjs +2 -0
  309. package/esm2022/checkbox/checkbox.mjs +318 -0
  310. package/esm2022/checkbox/checkbox.module.mjs +20 -0
  311. package/esm2022/checkbox/public_api.mjs +4 -0
  312. package/esm2022/chip/cax-design-system-chip.mjs +5 -0
  313. package/esm2022/chip/chip.interface.mjs +2 -0
  314. package/esm2022/chip/chip.mjs +90 -0
  315. package/esm2022/chip/chip.module.mjs +20 -0
  316. package/esm2022/chip/public_api.mjs +4 -0
  317. package/esm2022/chips/cax-design-system-chips.mjs +5 -0
  318. package/esm2022/chips/chips.interface.mjs +2 -0
  319. package/esm2022/chips/chips.mjs +610 -0
  320. package/esm2022/chips/chips.module.mjs +23 -0
  321. package/esm2022/chips/public_api.mjs +4 -0
  322. package/esm2022/colorpicker/cax-design-system-colorpicker.mjs +5 -0
  323. package/esm2022/colorpicker/colorpicker.interface.mjs +2 -0
  324. package/esm2022/colorpicker/colorpicker.mjs +715 -0
  325. package/esm2022/colorpicker/colorpicker.module.mjs +19 -0
  326. package/esm2022/colorpicker/public_api.mjs +4 -0
  327. package/esm2022/commentbox/cax-design-system-commentbox.mjs +5 -0
  328. package/esm2022/commentbox/commentbox.mjs +575 -0
  329. package/esm2022/commentbox/commentbox.module.mjs +27 -0
  330. package/esm2022/commentbox/public_api.mjs +3 -0
  331. package/esm2022/confirmdialog/cax-design-system-confirmdialog.mjs +5 -0
  332. package/esm2022/confirmdialog/confirmdialog.interface.mjs +2 -0
  333. package/esm2022/confirmdialog/confirmdialog.mjs +720 -0
  334. package/esm2022/confirmdialog/confirmdialog.module.mjs +25 -0
  335. package/esm2022/confirmdialog/public_api.mjs +4 -0
  336. package/esm2022/confirmpopup/cax-design-system-confirmpopup.mjs +5 -0
  337. package/esm2022/confirmpopup/confirmpopup.interface.mjs +2 -0
  338. package/esm2022/confirmpopup/confirmpopup.mjs +499 -0
  339. package/esm2022/confirmpopup/public_api.mjs +3 -0
  340. package/esm2022/contextmenu/cax-design-system-contextmenu.mjs +5 -0
  341. package/esm2022/contextmenu/contextmenu.mjs +1304 -0
  342. package/esm2022/contextmenu/public_api.mjs +2 -0
  343. package/esm2022/dataview/cax-design-system-dataview.mjs +5 -0
  344. package/esm2022/dataview/dataview.interface.mjs +2 -0
  345. package/esm2022/dataview/dataview.mjs +723 -0
  346. package/esm2022/dataview/public_api.mjs +3 -0
  347. package/esm2022/defer/cax-design-system-defer.mjs +5 -0
  348. package/esm2022/defer/defer.mjs +111 -0
  349. package/esm2022/defer/public_api.mjs +2 -0
  350. package/esm2022/dialog/cax-design-system-dialog.mjs +5 -0
  351. package/esm2022/dialog/dialog.interface.mjs +2 -0
  352. package/esm2022/dialog/dialog.mjs +959 -0
  353. package/esm2022/dialog/dialog.module.mjs +25 -0
  354. package/esm2022/dialog/public_api.mjs +4 -0
  355. package/esm2022/divider/cax-design-system-divider.mjs +5 -0
  356. package/esm2022/divider/divider.mjs +69 -0
  357. package/esm2022/divider/divider.module.mjs +16 -0
  358. package/esm2022/divider/public_api.mjs +3 -0
  359. package/esm2022/dock/cax-design-system-dock.mjs +5 -0
  360. package/esm2022/dock/dock.interface.mjs +2 -0
  361. package/esm2022/dock/dock.mjs +431 -0
  362. package/esm2022/dock/public_api.mjs +3 -0
  363. package/esm2022/dom/cax-design-system-dom.mjs +5 -0
  364. package/esm2022/dom/connectedoverlayscrollhandler.mjs +30 -0
  365. package/esm2022/dom/domhandler.mjs +722 -0
  366. package/esm2022/dom/public_api.mjs +3 -0
  367. package/esm2022/dragdrop/cax-design-system-dragdrop.mjs +5 -0
  368. package/esm2022/dragdrop/dragdrop.mjs +309 -0
  369. package/esm2022/dragdrop/dragdrop.module.mjs +18 -0
  370. package/esm2022/dragdrop/public_api.mjs +3 -0
  371. package/esm2022/dropdown/cax-design-system-dropdown.mjs +5 -0
  372. package/esm2022/dropdown/dropdown-item.mjs +72 -0
  373. package/esm2022/dropdown/dropdown.interface.mjs +2 -0
  374. package/esm2022/dropdown/dropdown.mjs +1599 -0
  375. package/esm2022/dropdown/dropdown.module.mjs +20 -0
  376. package/esm2022/dropdown/public_api.mjs +5 -0
  377. package/esm2022/dynamicdialog/cax-design-system-dynamicdialog.mjs +5 -0
  378. package/esm2022/dynamicdialog/dialogservice.mjs +102 -0
  379. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +187 -0
  380. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +15 -0
  381. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +119 -0
  382. package/esm2022/dynamicdialog/dynamicdialog.mjs +696 -0
  383. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +20 -0
  384. package/esm2022/dynamicdialog/public_api.mjs +7 -0
  385. package/esm2022/editor/cax-design-system-editor.mjs +5 -0
  386. package/esm2022/editor/editor.interface.mjs +2 -0
  387. package/esm2022/editor/editor.mjs +281 -0
  388. package/esm2022/editor/editor.module.mjs +19 -0
  389. package/esm2022/editor/public_api.mjs +4 -0
  390. package/esm2022/fieldset/cax-design-system-fieldset.mjs +5 -0
  391. package/esm2022/fieldset/fieldset.interface.mjs +2 -0
  392. package/esm2022/fieldset/fieldset.mjs +297 -0
  393. package/esm2022/fieldset/public_api.mjs +3 -0
  394. package/esm2022/fileupload/cax-design-system-fileupload.mjs +5 -0
  395. package/esm2022/fileupload/fileupload.interface.mjs +2 -0
  396. package/esm2022/fileupload/fileupload.mjs +1188 -0
  397. package/esm2022/fileupload/public_api.mjs +3 -0
  398. package/esm2022/floatlabel/cax-design-system-floatlabel.mjs +5 -0
  399. package/esm2022/floatlabel/floatlabel.mjs +28 -0
  400. package/esm2022/floatlabel/floatlabel.module.mjs +20 -0
  401. package/esm2022/floatlabel/public_api.mjs +3 -0
  402. package/esm2022/focustrap/cax-design-system-focustrap.mjs +5 -0
  403. package/esm2022/focustrap/focustrap.mjs +103 -0
  404. package/esm2022/focustrap/public_api.mjs +2 -0
  405. package/esm2022/galleria/cax-design-system-galleria.mjs +5 -0
  406. package/esm2022/galleria/galleria.interface.mjs +2 -0
  407. package/esm2022/galleria/galleria.mjs +1668 -0
  408. package/esm2022/galleria/public_api.mjs +3 -0
  409. package/esm2022/iconfield/cax-design-system-iconfield.mjs +5 -0
  410. package/esm2022/iconfield/iconfield.mjs +44 -0
  411. package/esm2022/iconfield/public_api.mjs +2 -0
  412. package/esm2022/icons/angledoubledown/angledoubledown.mjs +35 -0
  413. package/esm2022/icons/angledoubledown/cax-design-system-icons-angledoubledown.mjs +5 -0
  414. package/esm2022/icons/angledoubledown/public_api.mjs +2 -0
  415. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +35 -0
  416. package/esm2022/icons/angledoubleleft/cax-design-system-icons-angledoubleleft.mjs +5 -0
  417. package/esm2022/icons/angledoubleleft/public_api.mjs +2 -0
  418. package/esm2022/icons/angledoubleright/angledoubleright.mjs +35 -0
  419. package/esm2022/icons/angledoubleright/cax-design-system-icons-angledoubleright.mjs +5 -0
  420. package/esm2022/icons/angledoubleright/public_api.mjs +2 -0
  421. package/esm2022/icons/angledoubleup/angledoubleup.mjs +35 -0
  422. package/esm2022/icons/angledoubleup/cax-design-system-icons-angledoubleup.mjs +5 -0
  423. package/esm2022/icons/angledoubleup/public_api.mjs +2 -0
  424. package/esm2022/icons/angledown/angledown.mjs +31 -0
  425. package/esm2022/icons/angledown/cax-design-system-icons-angledown.mjs +5 -0
  426. package/esm2022/icons/angledown/public_api.mjs +2 -0
  427. package/esm2022/icons/angleleft/angleleft.mjs +31 -0
  428. package/esm2022/icons/angleleft/cax-design-system-icons-angleleft.mjs +5 -0
  429. package/esm2022/icons/angleleft/public_api.mjs +2 -0
  430. package/esm2022/icons/angleright/angleright.mjs +31 -0
  431. package/esm2022/icons/angleright/cax-design-system-icons-angleright.mjs +5 -0
  432. package/esm2022/icons/angleright/public_api.mjs +2 -0
  433. package/esm2022/icons/angleup/angleup.mjs +31 -0
  434. package/esm2022/icons/angleup/cax-design-system-icons-angleup.mjs +5 -0
  435. package/esm2022/icons/angleup/public_api.mjs +2 -0
  436. package/esm2022/icons/arrowdown/arrowdown.mjs +54 -0
  437. package/esm2022/icons/arrowdown/cax-design-system-icons-arrowdown.mjs +5 -0
  438. package/esm2022/icons/arrowdown/public_api.mjs +2 -0
  439. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +31 -0
  440. package/esm2022/icons/arrowdownleft/cax-design-system-icons-arrowdownleft.mjs +5 -0
  441. package/esm2022/icons/arrowdownleft/public_api.mjs +2 -0
  442. package/esm2022/icons/arrowdownright/arrowdownright.mjs +31 -0
  443. package/esm2022/icons/arrowdownright/cax-design-system-icons-arrowdownright.mjs +5 -0
  444. package/esm2022/icons/arrowdownright/public_api.mjs +2 -0
  445. package/esm2022/icons/arrowleft/arrowleft.mjs +54 -0
  446. package/esm2022/icons/arrowleft/cax-design-system-icons-arrowleft.mjs +5 -0
  447. package/esm2022/icons/arrowleft/public_api.mjs +2 -0
  448. package/esm2022/icons/arrowright/arrowright.mjs +35 -0
  449. package/esm2022/icons/arrowright/cax-design-system-icons-arrowright.mjs +5 -0
  450. package/esm2022/icons/arrowright/public_api.mjs +2 -0
  451. package/esm2022/icons/arrowup/arrowup.mjs +54 -0
  452. package/esm2022/icons/arrowup/cax-design-system-icons-arrowup.mjs +5 -0
  453. package/esm2022/icons/arrowup/public_api.mjs +2 -0
  454. package/esm2022/icons/ban/ban.mjs +50 -0
  455. package/esm2022/icons/ban/cax-design-system-icons-ban.mjs +5 -0
  456. package/esm2022/icons/ban/public_api.mjs +2 -0
  457. package/esm2022/icons/bars/bars.mjs +35 -0
  458. package/esm2022/icons/bars/cax-design-system-icons-bars.mjs +5 -0
  459. package/esm2022/icons/bars/public_api.mjs +2 -0
  460. package/esm2022/icons/blank/blank.mjs +25 -0
  461. package/esm2022/icons/blank/cax-design-system-icons-blank.mjs +5 -0
  462. package/esm2022/icons/blank/public_api.mjs +2 -0
  463. package/esm2022/icons/calendar/calendar.mjs +31 -0
  464. package/esm2022/icons/calendar/cax-design-system-icons-calendar.mjs +5 -0
  465. package/esm2022/icons/calendar/public_api.mjs +2 -0
  466. package/esm2022/icons/caretleft/caretleft.mjs +31 -0
  467. package/esm2022/icons/caretleft/cax-design-system-icons-caretleft.mjs +5 -0
  468. package/esm2022/icons/caretleft/public_api.mjs +2 -0
  469. package/esm2022/icons/caretright/caretright.mjs +31 -0
  470. package/esm2022/icons/caretright/cax-design-system-icons-caretright.mjs +5 -0
  471. package/esm2022/icons/caretright/public_api.mjs +2 -0
  472. package/esm2022/icons/check/cax-design-system-icons-check.mjs +5 -0
  473. package/esm2022/icons/check/check.mjs +31 -0
  474. package/esm2022/icons/check/public_api.mjs +2 -0
  475. package/esm2022/icons/chevrondown/cax-design-system-icons-chevrondown.mjs +5 -0
  476. package/esm2022/icons/chevrondown/chevrondown.mjs +31 -0
  477. package/esm2022/icons/chevrondown/public_api.mjs +2 -0
  478. package/esm2022/icons/chevronleft/cax-design-system-icons-chevronleft.mjs +5 -0
  479. package/esm2022/icons/chevronleft/chevronleft.mjs +31 -0
  480. package/esm2022/icons/chevronleft/public_api.mjs +2 -0
  481. package/esm2022/icons/chevronright/cax-design-system-icons-chevronright.mjs +5 -0
  482. package/esm2022/icons/chevronright/chevronright.mjs +31 -0
  483. package/esm2022/icons/chevronright/public_api.mjs +2 -0
  484. package/esm2022/icons/chevronup/cax-design-system-icons-chevronup.mjs +5 -0
  485. package/esm2022/icons/chevronup/chevronup.mjs +31 -0
  486. package/esm2022/icons/chevronup/public_api.mjs +2 -0
  487. package/esm2022/icons/exclamationtriangle/cax-design-system-icons-exclamationtriangle.mjs +5 -0
  488. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +66 -0
  489. package/esm2022/icons/exclamationtriangle/public_api.mjs +2 -0
  490. package/esm2022/icons/eye/cax-design-system-icons-eye.mjs +5 -0
  491. package/esm2022/icons/eye/eye.mjs +35 -0
  492. package/esm2022/icons/eye/public_api.mjs +2 -0
  493. package/esm2022/icons/eyeslash/cax-design-system-icons-eyeslash.mjs +5 -0
  494. package/esm2022/icons/eyeslash/eyeslash.mjs +54 -0
  495. package/esm2022/icons/eyeslash/public_api.mjs +2 -0
  496. package/esm2022/icons/filter/cax-design-system-icons-filter.mjs +5 -0
  497. package/esm2022/icons/filter/filter.mjs +50 -0
  498. package/esm2022/icons/filter/public_api.mjs +2 -0
  499. package/esm2022/icons/filterslash/cax-design-system-icons-filterslash.mjs +5 -0
  500. package/esm2022/icons/filterslash/filterslash.mjs +54 -0
  501. package/esm2022/icons/filterslash/public_api.mjs +2 -0
  502. package/esm2022/icons/home/cax-design-system-icons-home.mjs +5 -0
  503. package/esm2022/icons/home/home.mjs +54 -0
  504. package/esm2022/icons/home/public_api.mjs +2 -0
  505. package/esm2022/icons/infocircle/cax-design-system-icons-infocircle.mjs +5 -0
  506. package/esm2022/icons/infocircle/infocircle.mjs +54 -0
  507. package/esm2022/icons/infocircle/public_api.mjs +2 -0
  508. package/esm2022/icons/minus/cax-design-system-icons-minus.mjs +5 -0
  509. package/esm2022/icons/minus/minus.mjs +32 -0
  510. package/esm2022/icons/minus/public_api.mjs +2 -0
  511. package/esm2022/icons/pencil/cax-design-system-icons-pencil.mjs +5 -0
  512. package/esm2022/icons/pencil/pencil.mjs +50 -0
  513. package/esm2022/icons/pencil/public_api.mjs +2 -0
  514. package/esm2022/icons/plus/cax-design-system-icons-plus.mjs +5 -0
  515. package/esm2022/icons/plus/plus.mjs +50 -0
  516. package/esm2022/icons/plus/public_api.mjs +2 -0
  517. package/esm2022/icons/refresh/cax-design-system-icons-refresh.mjs +5 -0
  518. package/esm2022/icons/refresh/public_api.mjs +2 -0
  519. package/esm2022/icons/refresh/refresh.mjs +54 -0
  520. package/esm2022/icons/search/cax-design-system-icons-search.mjs +5 -0
  521. package/esm2022/icons/search/public_api.mjs +2 -0
  522. package/esm2022/icons/search/search.mjs +54 -0
  523. package/esm2022/icons/searchminus/cax-design-system-icons-searchminus.mjs +5 -0
  524. package/esm2022/icons/searchminus/public_api.mjs +2 -0
  525. package/esm2022/icons/searchminus/searchminus.mjs +54 -0
  526. package/esm2022/icons/searchplus/cax-design-system-icons-searchplus.mjs +5 -0
  527. package/esm2022/icons/searchplus/public_api.mjs +2 -0
  528. package/esm2022/icons/searchplus/searchplus.mjs +54 -0
  529. package/esm2022/icons/sortalt/cax-design-system-icons-sortalt.mjs +5 -0
  530. package/esm2022/icons/sortalt/public_api.mjs +2 -0
  531. package/esm2022/icons/sortalt/sortalt.mjs +62 -0
  532. package/esm2022/icons/sortamountdown/cax-design-system-icons-sortamountdown.mjs +5 -0
  533. package/esm2022/icons/sortamountdown/public_api.mjs +2 -0
  534. package/esm2022/icons/sortamountdown/sortamountdown.mjs +50 -0
  535. package/esm2022/icons/sortamountupalt/cax-design-system-icons-sortamountupalt.mjs +5 -0
  536. package/esm2022/icons/sortamountupalt/public_api.mjs +2 -0
  537. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +50 -0
  538. package/esm2022/icons/spinner/cax-design-system-icons-spinner.mjs +5 -0
  539. package/esm2022/icons/spinner/public_api.mjs +2 -0
  540. package/esm2022/icons/spinner/spinner.mjs +50 -0
  541. package/esm2022/icons/star/cax-design-system-icons-star.mjs +5 -0
  542. package/esm2022/icons/star/public_api.mjs +2 -0
  543. package/esm2022/icons/star/star.mjs +50 -0
  544. package/esm2022/icons/starfill/cax-design-system-icons-starfill.mjs +5 -0
  545. package/esm2022/icons/starfill/public_api.mjs +2 -0
  546. package/esm2022/icons/starfill/starfill.mjs +50 -0
  547. package/esm2022/icons/thlarge/cax-design-system-icons-thlarge.mjs +5 -0
  548. package/esm2022/icons/thlarge/public_api.mjs +2 -0
  549. package/esm2022/icons/thlarge/thlarge.mjs +54 -0
  550. package/esm2022/icons/times/cax-design-system-icons-times.mjs +5 -0
  551. package/esm2022/icons/times/public_api.mjs +2 -0
  552. package/esm2022/icons/times/times.mjs +31 -0
  553. package/esm2022/icons/timescircle/cax-design-system-icons-timescircle.mjs +5 -0
  554. package/esm2022/icons/timescircle/public_api.mjs +2 -0
  555. package/esm2022/icons/timescircle/timescircle.mjs +54 -0
  556. package/esm2022/icons/trash/cax-design-system-icons-trash.mjs +5 -0
  557. package/esm2022/icons/trash/public_api.mjs +2 -0
  558. package/esm2022/icons/trash/trash.mjs +54 -0
  559. package/esm2022/icons/undo/cax-design-system-icons-undo.mjs +5 -0
  560. package/esm2022/icons/undo/public_api.mjs +2 -0
  561. package/esm2022/icons/undo/undo.mjs +54 -0
  562. package/esm2022/icons/upload/cax-design-system-icons-upload.mjs +5 -0
  563. package/esm2022/icons/upload/public_api.mjs +2 -0
  564. package/esm2022/icons/upload/upload.mjs +54 -0
  565. package/esm2022/icons/windowmaximize/cax-design-system-icons-windowmaximize.mjs +5 -0
  566. package/esm2022/icons/windowmaximize/public_api.mjs +2 -0
  567. package/esm2022/icons/windowmaximize/windowmaximize.mjs +54 -0
  568. package/esm2022/icons/windowminimize/cax-design-system-icons-windowminimize.mjs +5 -0
  569. package/esm2022/icons/windowminimize/public_api.mjs +2 -0
  570. package/esm2022/icons/windowminimize/windowminimize.mjs +54 -0
  571. package/esm2022/image/cax-design-system-image.mjs +5 -0
  572. package/esm2022/image/image.interface.mjs +2 -0
  573. package/esm2022/image/image.mjs +418 -0
  574. package/esm2022/image/image.module.mjs +17 -0
  575. package/esm2022/image/public_api.mjs +4 -0
  576. package/esm2022/inplace/cax-design-system-inplace.mjs +5 -0
  577. package/esm2022/inplace/inplace.interface.mjs +2 -0
  578. package/esm2022/inplace/inplace.mjs +243 -0
  579. package/esm2022/inplace/public_api.mjs +3 -0
  580. package/esm2022/inputgroup/cax-design-system-inputgroup.mjs +5 -0
  581. package/esm2022/inputgroup/inputgroup.mjs +55 -0
  582. package/esm2022/inputgroup/inputgroup.module.mjs +25 -0
  583. package/esm2022/inputgroup/public_api.mjs +3 -0
  584. package/esm2022/inputgroupaddon/cax-design-system-inputgroupaddon.mjs +5 -0
  585. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +32 -0
  586. package/esm2022/inputgroupaddon/inputgroupaddon.module.mjs +24 -0
  587. package/esm2022/inputgroupaddon/public_api.mjs +3 -0
  588. package/esm2022/inputicon/cax-design-system-inputicon.mjs +5 -0
  589. package/esm2022/inputicon/inputicon.mjs +38 -0
  590. package/esm2022/inputicon/public_api.mjs +2 -0
  591. package/esm2022/inputmask/cax-design-system-inputmask.mjs +5 -0
  592. package/esm2022/inputmask/inputmask.interface.mjs +2 -0
  593. package/esm2022/inputmask/inputmask.mjs +848 -0
  594. package/esm2022/inputmask/inputmask.module.mjs +22 -0
  595. package/esm2022/inputmask/public_api.mjs +4 -0
  596. package/esm2022/inputnumber/cax-design-system-inputnumber.mjs +5 -0
  597. package/esm2022/inputnumber/inputnumber.interface.mjs +2 -0
  598. package/esm2022/inputnumber/inputnumber.mjs +1296 -0
  599. package/esm2022/inputnumber/inputnumber.module.mjs +17 -0
  600. package/esm2022/inputnumber/public_api.mjs +4 -0
  601. package/esm2022/inputotp/cax-design-system-inputotp.mjs +5 -0
  602. package/esm2022/inputotp/inputotp.interface.mjs +2 -0
  603. package/esm2022/inputotp/inputotp.mjs +381 -0
  604. package/esm2022/inputotp/public_api.mjs +3 -0
  605. package/esm2022/inputswitch/cax-design-system-inputswitch.mjs +5 -0
  606. package/esm2022/inputswitch/inputswitch.interface.mjs +2 -0
  607. package/esm2022/inputswitch/inputswitch.mjs +244 -0
  608. package/esm2022/inputswitch/public_api.mjs +3 -0
  609. package/esm2022/inputtext/cax-design-system-inputtext.mjs +5 -0
  610. package/esm2022/inputtext/inputtext.component.mjs +132 -0
  611. package/esm2022/inputtext/inputtext.directive.mjs +76 -0
  612. package/esm2022/inputtext/inputtext.module.mjs +20 -0
  613. package/esm2022/inputtext/public_api.mjs +4 -0
  614. package/esm2022/inputtextarea/cax-design-system-inputtextarea.mjs +5 -0
  615. package/esm2022/inputtextarea/inputtextarea.component.mjs +155 -0
  616. package/esm2022/inputtextarea/inputtextarea.directive.mjs +121 -0
  617. package/esm2022/inputtextarea/inputtextarea.module.mjs +20 -0
  618. package/esm2022/inputtextarea/public_api.mjs +4 -0
  619. package/esm2022/keyfilter/cax-design-system-keyfilter.mjs +5 -0
  620. package/esm2022/keyfilter/keyfilter.interface.mjs +2 -0
  621. package/esm2022/keyfilter/keyfilter.mjs +265 -0
  622. package/esm2022/keyfilter/public_api.mjs +3 -0
  623. package/esm2022/knob/cax-design-system-knob.mjs +5 -0
  624. package/esm2022/knob/knob.mjs +464 -0
  625. package/esm2022/knob/public_api.mjs +2 -0
  626. package/esm2022/listbox/cax-design-system-listbox.mjs +5 -0
  627. package/esm2022/listbox/listbox.interface.mjs +2 -0
  628. package/esm2022/listbox/listbox.mjs +1555 -0
  629. package/esm2022/listbox/public_api.mjs +3 -0
  630. package/esm2022/logo/cax-design-system-logo.mjs +5 -0
  631. package/esm2022/logo/logo.mjs +45 -0
  632. package/esm2022/logo/logo.module.mjs +16 -0
  633. package/esm2022/logo/public_api.mjs +3 -0
  634. package/esm2022/megamenu/cax-design-system-megamenu.mjs +5 -0
  635. package/esm2022/megamenu/megamenu.interface.mjs +2 -0
  636. package/esm2022/megamenu/megamenu.mjs +1190 -0
  637. package/esm2022/megamenu/public_api.mjs +3 -0
  638. package/esm2022/menu/cax-design-system-menu.mjs +5 -0
  639. package/esm2022/menu/menu.mjs +626 -0
  640. package/esm2022/menu/menu.module.mjs +22 -0
  641. package/esm2022/menu/public_api.mjs +3 -0
  642. package/esm2022/menubar/cax-design-system-menubar.mjs +5 -0
  643. package/esm2022/menubar/menubar.interface.mjs +2 -0
  644. package/esm2022/menubar/menubar.mjs +1249 -0
  645. package/esm2022/menubar/public_api.mjs +3 -0
  646. package/esm2022/message/cax-design-system-message.mjs +5 -0
  647. package/esm2022/message/message.mjs +112 -0
  648. package/esm2022/message/public_api.mjs +2 -0
  649. package/esm2022/messages/cax-design-system-messages.mjs +5 -0
  650. package/esm2022/messages/messages.interface.mjs +2 -0
  651. package/esm2022/messages/messages.mjs +283 -0
  652. package/esm2022/messages/messages.module.mjs +17 -0
  653. package/esm2022/messages/public_api.mjs +4 -0
  654. package/esm2022/metergroup/cax-design-system-metergroup.mjs +5 -0
  655. package/esm2022/metergroup/metergroup.interface.mjs +2 -0
  656. package/esm2022/metergroup/metergroup.mjs +280 -0
  657. package/esm2022/metergroup/public_api.mjs +3 -0
  658. package/esm2022/multiselect/cax-design-system-multiselect.mjs +5 -0
  659. package/esm2022/multiselect/multiselect.interface.mjs +2 -0
  660. package/esm2022/multiselect/multiselect.mjs +1875 -0
  661. package/esm2022/multiselect/multiselect.module.mjs +30 -0
  662. package/esm2022/multiselect/public_api.mjs +4 -0
  663. package/esm2022/navigation/cax-design-system-navigation.mjs +5 -0
  664. package/esm2022/navigation/navigation.interface.mjs +2 -0
  665. package/esm2022/navigation/navigation.mjs +399 -0
  666. package/esm2022/navigation/navigation.module.mjs +16 -0
  667. package/esm2022/navigation/public_api.mjs +3 -0
  668. package/esm2022/orderlist/cax-design-system-orderlist.mjs +5 -0
  669. package/esm2022/orderlist/orderlist.interface.mjs +2 -0
  670. package/esm2022/orderlist/orderlist.mjs +993 -0
  671. package/esm2022/orderlist/public_api.mjs +3 -0
  672. package/esm2022/organizationchart/cax-design-system-organizationchart.mjs +5 -0
  673. package/esm2022/organizationchart/organizationchart.interface.mjs +2 -0
  674. package/esm2022/organizationchart/organizationchart.mjs +416 -0
  675. package/esm2022/organizationchart/public_api.mjs +3 -0
  676. package/esm2022/overlay/cax-design-system-overlay.mjs +5 -0
  677. package/esm2022/overlay/overlay.mjs +579 -0
  678. package/esm2022/overlay/overlay.module.mjs +17 -0
  679. package/esm2022/overlay/public_api.mjs +3 -0
  680. package/esm2022/overlaypanel/cax-design-system-overlaypanel.mjs +5 -0
  681. package/esm2022/overlaypanel/overlaypanel.mjs +470 -0
  682. package/esm2022/overlaypanel/overlaypanel.module.mjs +17 -0
  683. package/esm2022/overlaypanel/public_api.mjs +3 -0
  684. package/esm2022/paginator/cax-design-system-paginator.mjs +5 -0
  685. package/esm2022/paginator/paginator.interface.mjs +2 -0
  686. package/esm2022/paginator/paginator.mjs +437 -0
  687. package/esm2022/paginator/paginator.module.mjs +27 -0
  688. package/esm2022/paginator/public_api.mjs +4 -0
  689. package/esm2022/panel/cax-design-system-panel.mjs +5 -0
  690. package/esm2022/panel/panel.interface.mjs +2 -0
  691. package/esm2022/panel/panel.mjs +393 -0
  692. package/esm2022/panel/public_api.mjs +3 -0
  693. package/esm2022/panelmenu/cax-design-system-panelmenu.mjs +5 -0
  694. package/esm2022/panelmenu/panelmenu.interface.mjs +2 -0
  695. package/esm2022/panelmenu/panelmenu.mjs +1276 -0
  696. package/esm2022/panelmenu/public_api.mjs +3 -0
  697. package/esm2022/password/cax-design-system-password.mjs +5 -0
  698. package/esm2022/password/password.mjs +1017 -0
  699. package/esm2022/password/public_api.mjs +2 -0
  700. package/esm2022/picklist/cax-design-system-picklist.mjs +5 -0
  701. package/esm2022/picklist/picklist.interface.mjs +2 -0
  702. package/esm2022/picklist/picklist.mjs +1909 -0
  703. package/esm2022/picklist/public_api.mjs +3 -0
  704. package/esm2022/progressbar/cax-design-system-progressbar.mjs +5 -0
  705. package/esm2022/progressbar/progressbar.mjs +86 -0
  706. package/esm2022/progressbar/progressbar.module.mjs +18 -0
  707. package/esm2022/progressbar/public_api.mjs +3 -0
  708. package/esm2022/progressspinner/cax-design-system-progressspinner.mjs +5 -0
  709. package/esm2022/progressspinner/progressspinner.mjs +112 -0
  710. package/esm2022/progressspinner/progressspinner.module.mjs +18 -0
  711. package/esm2022/progressspinner/public_api.mjs +3 -0
  712. package/esm2022/public_api.mjs +2 -0
  713. package/esm2022/radiobutton/cax-design-system-radiobutton.mjs +5 -0
  714. package/esm2022/radiobutton/public_api.mjs +4 -0
  715. package/esm2022/radiobutton/radiobutton.interface.mjs +2 -0
  716. package/esm2022/radiobutton/radiobutton.mjs +284 -0
  717. package/esm2022/radiobutton/radiobutton.module.mjs +16 -0
  718. package/esm2022/rating/cax-design-system-rating.mjs +5 -0
  719. package/esm2022/rating/public_api.mjs +3 -0
  720. package/esm2022/rating/rating.interface.mjs +2 -0
  721. package/esm2022/rating/rating.mjs +388 -0
  722. package/esm2022/ripple/cax-design-system-ripple.mjs +5 -0
  723. package/esm2022/ripple/public_api.mjs +3 -0
  724. package/esm2022/ripple/ripple.mjs +129 -0
  725. package/esm2022/ripple/ripple.module.mjs +16 -0
  726. package/esm2022/scroller/cax-design-system-scroller.mjs +5 -0
  727. package/esm2022/scroller/public_api.mjs +4 -0
  728. package/esm2022/scroller/scroller.interface.mjs +2 -0
  729. package/esm2022/scroller/scroller.mjs +981 -0
  730. package/esm2022/scroller/scroller.module.mjs +17 -0
  731. package/esm2022/scrollpanel/cax-design-system-scrollpanel.mjs +5 -0
  732. package/esm2022/scrollpanel/public_api.mjs +3 -0
  733. package/esm2022/scrollpanel/scrollpanel.interface.mjs +2 -0
  734. package/esm2022/scrollpanel/scrollpanel.mjs +501 -0
  735. package/esm2022/scrolltop/cax-design-system-scrolltop.mjs +5 -0
  736. package/esm2022/scrolltop/public_api.mjs +3 -0
  737. package/esm2022/scrolltop/scrolltop.interface.mjs +2 -0
  738. package/esm2022/scrolltop/scrolltop.mjs +282 -0
  739. package/esm2022/selectbutton/cax-design-system-selectbutton.mjs +5 -0
  740. package/esm2022/selectbutton/public_api.mjs +4 -0
  741. package/esm2022/selectbutton/selectbutton.interface.mjs +2 -0
  742. package/esm2022/selectbutton/selectbutton.mjs +303 -0
  743. package/esm2022/selectbutton/selectbutton.module.mjs +21 -0
  744. package/esm2022/sidebar/cax-design-system-sidebar.mjs +5 -0
  745. package/esm2022/sidebar/public_api.mjs +4 -0
  746. package/esm2022/sidebar/sidebar.interface.mjs +2 -0
  747. package/esm2022/sidebar/sidebar.mjs +488 -0
  748. package/esm2022/sidebar/sidebar.module.mjs +21 -0
  749. package/esm2022/skeleton/cax-design-system-skeleton.mjs +5 -0
  750. package/esm2022/skeleton/public_api.mjs +3 -0
  751. package/esm2022/skeleton/skeleton.mjs +87 -0
  752. package/esm2022/skeleton/skeleton.module.mjs +18 -0
  753. package/esm2022/slidemenu/cax-design-system-slidemenu.mjs +5 -0
  754. package/esm2022/slidemenu/public_api.mjs +3 -0
  755. package/esm2022/slidemenu/slidemenu.interface.mjs +2 -0
  756. package/esm2022/slidemenu/slidemenu.mjs +1501 -0
  757. package/esm2022/slider/cax-design-system-slider.mjs +5 -0
  758. package/esm2022/slider/public_api.mjs +3 -0
  759. package/esm2022/slider/slider.interface.mjs +2 -0
  760. package/esm2022/slider/slider.mjs +796 -0
  761. package/esm2022/speeddial/cax-design-system-speeddial.mjs +5 -0
  762. package/esm2022/speeddial/public_api.mjs +4 -0
  763. package/esm2022/speeddial/speeddial.interface.mjs +2 -0
  764. package/esm2022/speeddial/speeddial.mjs +611 -0
  765. package/esm2022/speeddial/speeddial.module.mjs +24 -0
  766. package/esm2022/spinner/cax-design-system-spinner.mjs +5 -0
  767. package/esm2022/spinner/public_api.mjs +2 -0
  768. package/esm2022/spinner/spinner.mjs +447 -0
  769. package/esm2022/splitbutton/cax-design-system-splitbutton.mjs +5 -0
  770. package/esm2022/splitbutton/public_api.mjs +4 -0
  771. package/esm2022/splitbutton/splitbutton.interface.mjs +2 -0
  772. package/esm2022/splitbutton/splitbutton.mjs +369 -0
  773. package/esm2022/splitbutton/splitbutton.module.mjs +23 -0
  774. package/esm2022/splitter/cax-design-system-splitter.mjs +5 -0
  775. package/esm2022/splitter/public_api.mjs +4 -0
  776. package/esm2022/splitter/splitter.interface.mjs +2 -0
  777. package/esm2022/splitter/splitter.mjs +490 -0
  778. package/esm2022/splitter/splitter.module.mjs +19 -0
  779. package/esm2022/stepper/cax-design-system-stepper.mjs +5 -0
  780. package/esm2022/stepper/public_api.mjs +3 -0
  781. package/esm2022/stepper/stepper.interface.mjs +2 -0
  782. package/esm2022/stepper/stepper.mjs +677 -0
  783. package/esm2022/steps/cax-design-system-steps.mjs +5 -0
  784. package/esm2022/steps/public_api.mjs +3 -0
  785. package/esm2022/steps/steps.mjs +207 -0
  786. package/esm2022/steps/steps.module.mjs +20 -0
  787. package/esm2022/styleclass/cax-design-system-styleclass.mjs +5 -0
  788. package/esm2022/styleclass/public_api.mjs +2 -0
  789. package/esm2022/styleclass/styleclass.mjs +316 -0
  790. package/esm2022/table/cax-design-system-table.mjs +5 -0
  791. package/esm2022/table/columnfilter.interface.mjs +2 -0
  792. package/esm2022/table/components/cell-editor/cell-editor.mjs +52 -0
  793. package/esm2022/table/components/column-filter/column-filter.mjs +865 -0
  794. package/esm2022/table/components/column-filter-form-element/column-filter-form-element.mjs +107 -0
  795. package/esm2022/table/components/sort-icon/sort-icon.mjs +78 -0
  796. package/esm2022/table/components/table-body/table-body.mjs +152 -0
  797. package/esm2022/table/components/table-checkbox/table-checkbox.mjs +83 -0
  798. package/esm2022/table/components/table-header-checkbox/table-header-checkbox.mjs +92 -0
  799. package/esm2022/table/components/table-radio-button/table-radio-button.mjs +79 -0
  800. package/esm2022/table/directives/cancel-editable-row.directive.mjs +32 -0
  801. package/esm2022/table/directives/cell-highlight.directive.mjs +42 -0
  802. package/esm2022/table/directives/content-menu-row.directive.mjs +70 -0
  803. package/esm2022/table/directives/dynamic-column-width.directive.mjs +34 -0
  804. package/esm2022/table/directives/editable-column.directive.mjs +344 -0
  805. package/esm2022/table/directives/editable-row.directive.mjs +32 -0
  806. package/esm2022/table/directives/frozen-column.directive.mjs +77 -0
  807. package/esm2022/table/directives/init-editable-row.directive.mjs +32 -0
  808. package/esm2022/table/directives/reorderable-column.directive.mjs +115 -0
  809. package/esm2022/table/directives/reorderable-row-handle.directive.mjs +25 -0
  810. package/esm2022/table/directives/reorderable-row.directive.mjs +122 -0
  811. package/esm2022/table/directives/resizable-column.directive.mjs +123 -0
  812. package/esm2022/table/directives/row-group-header.directive.mjs +26 -0
  813. package/esm2022/table/directives/row-toggler.directive.mjs +42 -0
  814. package/esm2022/table/directives/save-editable-row.directive.mjs +32 -0
  815. package/esm2022/table/directives/selectable-row-double-click.directive.mjs +71 -0
  816. package/esm2022/table/directives/selectable-row.directive.mjs +243 -0
  817. package/esm2022/table/directives/sortable-column.directive.mjs +90 -0
  818. package/esm2022/table/public_api.mjs +31 -0
  819. package/esm2022/table/table.interface.mjs +2 -0
  820. package/esm2022/table/table.mjs +2799 -0
  821. package/esm2022/table/table.module.mjs +157 -0
  822. package/esm2022/table/table.service.mjs +42 -0
  823. package/esm2022/tableconfiguration/cax-design-system-tableconfiguration.mjs +5 -0
  824. package/esm2022/tableconfiguration/public_api.mjs +3 -0
  825. package/esm2022/tableconfiguration/tableconfiguration.mjs +68 -0
  826. package/esm2022/tableconfiguration/tableconfiguration.module.mjs +16 -0
  827. package/esm2022/tabmenu/cax-design-system-tabmenu.mjs +5 -0
  828. package/esm2022/tabmenu/public_api.mjs +3 -0
  829. package/esm2022/tabmenu/tabmenu.interface.mjs +2 -0
  830. package/esm2022/tabmenu/tabmenu.mjs +576 -0
  831. package/esm2022/tabview/cax-design-system-tabview.mjs +5 -0
  832. package/esm2022/tabview/public_api.mjs +4 -0
  833. package/esm2022/tabview/tabview.interface.mjs +2 -0
  834. package/esm2022/tabview/tabview.mjs +913 -0
  835. package/esm2022/tabview/tabview.module.mjs +25 -0
  836. package/esm2022/tag/cax-design-system-tag.mjs +5 -0
  837. package/esm2022/tag/public_api.mjs +4 -0
  838. package/esm2022/tag/tag.interface.mjs +2 -0
  839. package/esm2022/tag/tag.mjs +95 -0
  840. package/esm2022/tag/tag.module.mjs +19 -0
  841. package/esm2022/terminal/cax-design-system-terminal.mjs +5 -0
  842. package/esm2022/terminal/public_api.mjs +3 -0
  843. package/esm2022/terminal/terminal.mjs +143 -0
  844. package/esm2022/terminal/terminalservice.mjs +25 -0
  845. package/esm2022/tieredmenu/cax-design-system-tieredmenu.mjs +5 -0
  846. package/esm2022/tieredmenu/public_api.mjs +4 -0
  847. package/esm2022/tieredmenu/tieredmenu.interface.mjs +2 -0
  848. package/esm2022/tieredmenu/tieredmenu.mjs +1289 -0
  849. package/esm2022/tieredmenu/tiredmenu.module.mjs +23 -0
  850. package/esm2022/timeline/cax-design-system-timeline.mjs +5 -0
  851. package/esm2022/timeline/public_api.mjs +4 -0
  852. package/esm2022/timeline/timeline.interface.mjs +2 -0
  853. package/esm2022/timeline/timeline.mjs +83 -0
  854. package/esm2022/timeline/timeline.module.mjs +19 -0
  855. package/esm2022/toast/cax-design-system-toast.mjs +5 -0
  856. package/esm2022/toast/public_api.mjs +4 -0
  857. package/esm2022/toast/toast.interface.mjs +2 -0
  858. package/esm2022/toast/toast.mjs +324 -0
  859. package/esm2022/toast/toast.module.mjs +18 -0
  860. package/esm2022/toast/toastitem.mjs +170 -0
  861. package/esm2022/togglebutton/cax-design-system-togglebutton.mjs +5 -0
  862. package/esm2022/togglebutton/public_api.mjs +3 -0
  863. package/esm2022/togglebutton/togglebutton.interface.mjs +2 -0
  864. package/esm2022/togglebutton/togglebutton.mjs +274 -0
  865. package/esm2022/toggleswitch/cax-design-system-toggleswitch.mjs +5 -0
  866. package/esm2022/toggleswitch/public_api.mjs +3 -0
  867. package/esm2022/toggleswitch/toggleswitch.mjs +37 -0
  868. package/esm2022/toggleswitch/toggleswitch.module.mjs +19 -0
  869. package/esm2022/toolbar/cax-design-system-toolbar.mjs +5 -0
  870. package/esm2022/toolbar/public_api.mjs +3 -0
  871. package/esm2022/toolbar/toolbar.interface.mjs +2 -0
  872. package/esm2022/toolbar/toolbar.mjs +111 -0
  873. package/esm2022/tooltip/cax-design-system-tooltip.mjs +5 -0
  874. package/esm2022/tooltip/public_api.mjs +3 -0
  875. package/esm2022/tooltip/tooltip.mjs +889 -0
  876. package/esm2022/tooltip/tooltip.module.mjs +20 -0
  877. package/esm2022/tree/cax-design-system-tree.mjs +5 -0
  878. package/esm2022/tree/public_api.mjs +4 -0
  879. package/esm2022/tree/tree.interface.mjs +2 -0
  880. package/esm2022/tree/tree.mjs +1544 -0
  881. package/esm2022/tree/tree.module.mjs +31 -0
  882. package/esm2022/treeselect/cax-design-system-treeselect.mjs +5 -0
  883. package/esm2022/treeselect/public_api.mjs +4 -0
  884. package/esm2022/treeselect/treeselect.interface.mjs +2 -0
  885. package/esm2022/treeselect/treeselect.mjs +865 -0
  886. package/esm2022/treeselect/treeselect.module.mjs +26 -0
  887. package/esm2022/treetable/cax-design-system-treetable.mjs +5 -0
  888. package/esm2022/treetable/public_api.mjs +3 -0
  889. package/esm2022/treetable/treetable.interface.mjs +2 -0
  890. package/esm2022/treetable/treetable.mjs +4111 -0
  891. package/esm2022/tristatecheckbox/cax-design-system-tristatecheckbox.mjs +5 -0
  892. package/esm2022/tristatecheckbox/public_api.mjs +4 -0
  893. package/esm2022/tristatecheckbox/tristatecheckbox.interface.mjs +2 -0
  894. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +215 -0
  895. package/esm2022/tristatecheckbox/tristatecheckbox.module.mjs +17 -0
  896. package/esm2022/ts-helpers/cax-design-system-ts-helpers.mjs +5 -0
  897. package/esm2022/ts-helpers/public_api.mjs +2 -0
  898. package/esm2022/ts-helpers/ts-helpers.mjs +2 -0
  899. package/esm2022/upload/cax-design-system-upload.mjs +5 -0
  900. package/esm2022/upload/public_api.mjs +3 -0
  901. package/esm2022/upload/upload.component.mjs +372 -0
  902. package/esm2022/upload/upload.component.module.mjs +21 -0
  903. package/esm2022/utils/cax-design-system-utils.mjs +5 -0
  904. package/esm2022/utils/objectutils.mjs +258 -0
  905. package/esm2022/utils/public_api.mjs +5 -0
  906. package/esm2022/utils/uniquecomponentid.mjs +6 -0
  907. package/esm2022/utils/zindexutils.mjs +35 -0
  908. package/esm2022/virtualscroller/cax-design-system-virtualscroller.mjs +5 -0
  909. package/esm2022/virtualscroller/public_api.mjs +3 -0
  910. package/esm2022/virtualscroller/virtualscroller.interface.mjs +2 -0
  911. package/esm2022/virtualscroller/virtualscroller.mjs +215 -0
  912. package/fesm2022/cax-design-system-accordion.mjs +2 -2
  913. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  914. package/fesm2022/cax-design-system-animate.mjs +1 -1
  915. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  916. package/fesm2022/cax-design-system-animateonscroll.mjs +1 -1
  917. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  918. package/fesm2022/cax-design-system-api.mjs +1 -1
  919. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  920. package/fesm2022/cax-design-system-autocomplete.mjs +1 -1
  921. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  922. package/fesm2022/cax-design-system-autofocus.mjs +1 -1
  923. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  924. package/fesm2022/cax-design-system-avatar.mjs +1 -1
  925. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  926. package/fesm2022/cax-design-system-avatargroup.mjs +1 -1
  927. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  928. package/fesm2022/cax-design-system-badge.mjs +1 -1
  929. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  930. package/fesm2022/cax-design-system-baseicon.mjs +1 -1
  931. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  932. package/fesm2022/cax-design-system-blockui.mjs +1 -1
  933. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  934. package/fesm2022/cax-design-system-breadcrumb.mjs +1 -1
  935. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  936. package/fesm2022/cax-design-system-button.mjs +1 -1
  937. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  938. package/fesm2022/cax-design-system-buttongroup.mjs +1 -1
  939. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  940. package/fesm2022/cax-design-system-calendar.mjs +3 -3
  941. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  942. package/fesm2022/cax-design-system-card.mjs +1 -1
  943. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  944. package/fesm2022/cax-design-system-carousel.mjs +1 -1
  945. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  946. package/fesm2022/cax-design-system-cascadeselect.mjs +1 -1
  947. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  948. package/fesm2022/cax-design-system-chart.mjs +1 -1
  949. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  950. package/fesm2022/cax-design-system-checkbox.mjs +1 -1
  951. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  952. package/fesm2022/cax-design-system-chip.mjs +1 -1
  953. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  954. package/fesm2022/cax-design-system-chips.mjs +2 -2
  955. package/fesm2022/cax-design-system-chips.mjs.map +1 -1
  956. package/fesm2022/cax-design-system-colorpicker.mjs +1 -1
  957. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  958. package/fesm2022/cax-design-system-commentbox.mjs +3 -3
  959. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  960. package/fesm2022/cax-design-system-confirmdialog.mjs +1 -1
  961. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  962. package/fesm2022/cax-design-system-confirmpopup.mjs +2 -2
  963. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  964. package/fesm2022/cax-design-system-contextmenu.mjs +1 -1
  965. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  966. package/fesm2022/cax-design-system-dataview.mjs +1 -1
  967. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  968. package/fesm2022/cax-design-system-defer.mjs +1 -1
  969. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  970. package/fesm2022/cax-design-system-dialog.mjs +1 -1
  971. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  972. package/fesm2022/cax-design-system-divider.mjs +1 -1
  973. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  974. package/fesm2022/cax-design-system-dock.mjs +1 -1
  975. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  976. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  977. package/fesm2022/cax-design-system-dragdrop.mjs +1 -1
  978. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  979. package/fesm2022/cax-design-system-dropdown.mjs +2 -2
  980. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  981. package/fesm2022/cax-design-system-dynamicdialog.mjs +1 -1
  982. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  983. package/fesm2022/cax-design-system-editor.mjs +1 -1
  984. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  985. package/fesm2022/cax-design-system-fieldset.mjs +2 -2
  986. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  987. package/fesm2022/cax-design-system-fileupload.mjs +1 -1
  988. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  989. package/fesm2022/cax-design-system-floatlabel.mjs +1 -1
  990. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  991. package/fesm2022/cax-design-system-focustrap.mjs +1 -1
  992. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  993. package/fesm2022/cax-design-system-galleria.mjs +1 -1
  994. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  995. package/fesm2022/cax-design-system-iconfield.mjs +1 -1
  996. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  997. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  998. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  999. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  1000. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  1001. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  1002. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  1003. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  1004. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  1005. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  1006. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  1007. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  1008. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  1009. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  1010. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  1011. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  1012. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  1013. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  1014. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  1015. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  1016. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  1017. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  1018. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  1019. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  1020. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  1021. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  1022. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  1023. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  1024. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  1025. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  1026. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  1027. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  1028. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  1029. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  1030. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  1031. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  1032. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  1033. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  1034. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  1035. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  1036. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  1037. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  1038. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  1039. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  1040. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  1041. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  1042. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  1043. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  1044. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  1045. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  1046. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  1047. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  1048. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  1049. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  1050. package/fesm2022/cax-design-system-image.mjs +2 -2
  1051. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  1052. package/fesm2022/cax-design-system-inplace.mjs +1 -1
  1053. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  1054. package/fesm2022/cax-design-system-inputgroup.mjs +1 -1
  1055. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  1056. package/fesm2022/cax-design-system-inputgroupaddon.mjs +1 -1
  1057. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  1058. package/fesm2022/cax-design-system-inputicon.mjs +1 -1
  1059. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  1060. package/fesm2022/cax-design-system-inputmask.mjs +1 -1
  1061. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  1062. package/fesm2022/cax-design-system-inputnumber.mjs +1 -1
  1063. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  1064. package/fesm2022/cax-design-system-inputotp.mjs +1 -1
  1065. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  1066. package/fesm2022/cax-design-system-inputswitch.mjs +1 -1
  1067. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  1068. package/fesm2022/cax-design-system-inputtext.mjs +1 -1
  1069. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  1070. package/fesm2022/cax-design-system-inputtextarea.mjs +1 -1
  1071. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  1072. package/fesm2022/cax-design-system-keyfilter.mjs +1 -1
  1073. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  1074. package/fesm2022/cax-design-system-knob.mjs +1 -1
  1075. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  1076. package/fesm2022/cax-design-system-listbox.mjs +1 -1
  1077. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  1078. package/fesm2022/cax-design-system-logo.mjs +1 -1
  1079. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  1080. package/fesm2022/cax-design-system-megamenu.mjs +1 -1
  1081. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  1082. package/fesm2022/cax-design-system-menu.mjs +1 -1
  1083. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  1084. package/fesm2022/cax-design-system-menubar.mjs +1 -1
  1085. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  1086. package/fesm2022/cax-design-system-message.mjs +1 -1
  1087. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  1088. package/fesm2022/cax-design-system-messages.mjs +2 -2
  1089. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  1090. package/fesm2022/cax-design-system-metergroup.mjs +1 -1
  1091. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  1092. package/fesm2022/cax-design-system-multiselect.mjs +1 -1
  1093. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  1094. package/fesm2022/cax-design-system-navigation.mjs +1 -1
  1095. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  1096. package/fesm2022/cax-design-system-orderlist.mjs +1 -1
  1097. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  1098. package/fesm2022/cax-design-system-organizationchart.mjs +2 -2
  1099. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  1100. package/fesm2022/cax-design-system-overlay.mjs +2 -2
  1101. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  1102. package/fesm2022/cax-design-system-overlaypanel.mjs +3 -3
  1103. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  1104. package/fesm2022/cax-design-system-paginator.mjs +1 -1
  1105. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  1106. package/fesm2022/cax-design-system-panel.mjs +2 -2
  1107. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  1108. package/fesm2022/cax-design-system-panelmenu.mjs +2 -2
  1109. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  1110. package/fesm2022/cax-design-system-password.mjs +1 -1
  1111. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  1112. package/fesm2022/cax-design-system-picklist.mjs +1 -1
  1113. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  1114. package/fesm2022/cax-design-system-progressbar.mjs +1 -1
  1115. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  1116. package/fesm2022/cax-design-system-progressspinner.mjs +1 -1
  1117. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  1118. package/fesm2022/cax-design-system-radiobutton.mjs +1 -1
  1119. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  1120. package/fesm2022/cax-design-system-rating.mjs +1 -1
  1121. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  1122. package/fesm2022/cax-design-system-ripple.mjs +1 -1
  1123. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  1124. package/fesm2022/cax-design-system-scroller.mjs +2 -2
  1125. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  1126. package/fesm2022/cax-design-system-scrollpanel.mjs +1 -1
  1127. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  1128. package/fesm2022/cax-design-system-scrolltop.mjs +2 -2
  1129. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  1130. package/fesm2022/cax-design-system-selectbutton.mjs +1 -1
  1131. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  1132. package/fesm2022/cax-design-system-sidebar.mjs +4 -4
  1133. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  1134. package/fesm2022/cax-design-system-skeleton.mjs +1 -1
  1135. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  1136. package/fesm2022/cax-design-system-slidemenu.mjs +1 -1
  1137. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  1138. package/fesm2022/cax-design-system-slider.mjs +1 -1
  1139. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  1140. package/fesm2022/cax-design-system-speeddial.mjs +1 -1
  1141. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  1142. package/fesm2022/cax-design-system-spinner.mjs +1 -1
  1143. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  1144. package/fesm2022/cax-design-system-splitbutton.mjs +1 -1
  1145. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  1146. package/fesm2022/cax-design-system-splitter.mjs +1 -1
  1147. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  1148. package/fesm2022/cax-design-system-stepper.mjs +2 -2
  1149. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  1150. package/fesm2022/cax-design-system-steps.mjs +1 -1
  1151. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  1152. package/fesm2022/cax-design-system-styleclass.mjs +1 -1
  1153. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  1154. package/fesm2022/cax-design-system-table.mjs +1 -1
  1155. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  1156. package/fesm2022/cax-design-system-tableconfiguration.mjs +1 -1
  1157. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  1158. package/fesm2022/cax-design-system-tabmenu.mjs +1 -1
  1159. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  1160. package/fesm2022/cax-design-system-tabview.mjs +1 -1
  1161. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  1162. package/fesm2022/cax-design-system-tag.mjs +1 -1
  1163. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  1164. package/fesm2022/cax-design-system-terminal.mjs +1 -1
  1165. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  1166. package/fesm2022/cax-design-system-tieredmenu.mjs +1 -1
  1167. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  1168. package/fesm2022/cax-design-system-timeline.mjs +1 -1
  1169. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  1170. package/fesm2022/cax-design-system-toast.mjs +2 -2
  1171. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  1172. package/fesm2022/cax-design-system-togglebutton.mjs +1 -1
  1173. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  1174. package/fesm2022/cax-design-system-toggleswitch.mjs +3 -3
  1175. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  1176. package/fesm2022/cax-design-system-toolbar.mjs +1 -1
  1177. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  1178. package/fesm2022/cax-design-system-tooltip.mjs +1 -1
  1179. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  1180. package/fesm2022/cax-design-system-tree.mjs +1 -1
  1181. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  1182. package/fesm2022/cax-design-system-treeselect.mjs +1 -1
  1183. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  1184. package/fesm2022/cax-design-system-treetable.mjs +1 -1
  1185. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  1186. package/fesm2022/cax-design-system-tristatecheckbox.mjs +2 -2
  1187. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  1188. package/fesm2022/cax-design-system-upload.mjs +12 -7
  1189. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  1190. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  1191. package/fesm2022/cax-design-system-virtualscroller.mjs +1 -1
  1192. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  1193. package/fieldset/fieldset.d.ts +93 -0
  1194. package/fieldset/fieldset.interface.d.ts +46 -0
  1195. package/fieldset/index.d.ts +3 -140
  1196. package/fieldset/public_api.d.ts +2 -0
  1197. package/fileupload/fileupload.d.ts +380 -0
  1198. package/fileupload/fileupload.interface.d.ts +226 -0
  1199. package/fileupload/index.d.ts +3 -606
  1200. package/fileupload/public_api.d.ts +2 -0
  1201. package/floatlabel/floatlabel.d.ts +9 -0
  1202. package/floatlabel/floatlabel.module.d.ts +10 -0
  1203. package/floatlabel/index.d.ts +3 -19
  1204. package/floatlabel/public_api.d.ts +2 -0
  1205. package/focustrap/focustrap.d.ts +34 -0
  1206. package/focustrap/index.d.ts +3 -35
  1207. package/focustrap/public_api.d.ts +1 -0
  1208. package/galleria/galleria.d.ts +404 -0
  1209. package/galleria/galleria.interface.d.ts +97 -0
  1210. package/galleria/index.d.ts +3 -502
  1211. package/galleria/public_api.d.ts +2 -0
  1212. package/iconfield/iconfield.d.ts +25 -0
  1213. package/iconfield/index.d.ts +3 -26
  1214. package/iconfield/public_api.d.ts +1 -0
  1215. package/icons/angledoubledown/angledoubledown.d.ts +6 -0
  1216. package/icons/angledoubledown/index.d.ts +5 -9
  1217. package/icons/angledoubledown/public_api.d.ts +1 -0
  1218. package/icons/angledoubleleft/angledoubleleft.d.ts +6 -0
  1219. package/icons/angledoubleleft/index.d.ts +5 -9
  1220. package/icons/angledoubleleft/public_api.d.ts +1 -0
  1221. package/icons/angledoubleright/angledoubleright.d.ts +6 -0
  1222. package/icons/angledoubleright/index.d.ts +5 -9
  1223. package/icons/angledoubleright/public_api.d.ts +1 -0
  1224. package/icons/angledoubleup/angledoubleup.d.ts +6 -0
  1225. package/icons/angledoubleup/index.d.ts +5 -9
  1226. package/icons/angledoubleup/public_api.d.ts +1 -0
  1227. package/icons/angledown/angledown.d.ts +6 -0
  1228. package/icons/angledown/index.d.ts +5 -9
  1229. package/icons/angledown/public_api.d.ts +1 -0
  1230. package/icons/angleleft/angleleft.d.ts +6 -0
  1231. package/icons/angleleft/index.d.ts +5 -9
  1232. package/icons/angleleft/public_api.d.ts +1 -0
  1233. package/icons/angleright/angleright.d.ts +6 -0
  1234. package/icons/angleright/index.d.ts +5 -9
  1235. package/icons/angleright/public_api.d.ts +1 -0
  1236. package/icons/angleup/angleup.d.ts +6 -0
  1237. package/icons/angleup/index.d.ts +5 -9
  1238. package/icons/angleup/public_api.d.ts +1 -0
  1239. package/icons/arrowdown/arrowdown.d.ts +9 -0
  1240. package/icons/arrowdown/index.d.ts +5 -12
  1241. package/icons/arrowdown/public_api.d.ts +1 -0
  1242. package/icons/arrowdownleft/arrowdownleft.d.ts +6 -0
  1243. package/icons/arrowdownleft/index.d.ts +5 -9
  1244. package/icons/arrowdownleft/public_api.d.ts +1 -0
  1245. package/icons/arrowdownright/arrowdownright.d.ts +6 -0
  1246. package/icons/arrowdownright/index.d.ts +5 -9
  1247. package/icons/arrowdownright/public_api.d.ts +1 -0
  1248. package/icons/arrowleft/arrowleft.d.ts +8 -0
  1249. package/icons/arrowleft/index.d.ts +5 -11
  1250. package/icons/arrowleft/public_api.d.ts +1 -0
  1251. package/icons/arrowright/arrowright.d.ts +6 -0
  1252. package/icons/arrowright/index.d.ts +5 -9
  1253. package/icons/arrowright/public_api.d.ts +1 -0
  1254. package/icons/arrowup/arrowup.d.ts +8 -0
  1255. package/icons/arrowup/index.d.ts +5 -11
  1256. package/icons/arrowup/public_api.d.ts +1 -0
  1257. package/icons/ban/ban.d.ts +8 -0
  1258. package/icons/ban/index.d.ts +5 -11
  1259. package/icons/ban/public_api.d.ts +1 -0
  1260. package/icons/bars/bars.d.ts +6 -0
  1261. package/icons/bars/index.d.ts +5 -9
  1262. package/icons/bars/public_api.d.ts +1 -0
  1263. package/icons/blank/blank.d.ts +6 -0
  1264. package/icons/blank/index.d.ts +5 -9
  1265. package/icons/blank/public_api.d.ts +1 -0
  1266. package/icons/calendar/calendar.d.ts +6 -0
  1267. package/icons/calendar/index.d.ts +5 -9
  1268. package/icons/calendar/public_api.d.ts +1 -0
  1269. package/icons/caretleft/caretleft.d.ts +6 -0
  1270. package/icons/caretleft/index.d.ts +5 -9
  1271. package/icons/caretleft/public_api.d.ts +1 -0
  1272. package/icons/caretright/caretright.d.ts +6 -0
  1273. package/icons/caretright/index.d.ts +5 -9
  1274. package/icons/caretright/public_api.d.ts +1 -0
  1275. package/icons/check/check.d.ts +6 -0
  1276. package/icons/check/index.d.ts +5 -9
  1277. package/icons/check/public_api.d.ts +1 -0
  1278. package/icons/chevrondown/chevrondown.d.ts +6 -0
  1279. package/icons/chevrondown/index.d.ts +5 -9
  1280. package/icons/chevrondown/public_api.d.ts +1 -0
  1281. package/icons/chevronleft/chevronleft.d.ts +6 -0
  1282. package/icons/chevronleft/index.d.ts +5 -9
  1283. package/icons/chevronleft/public_api.d.ts +1 -0
  1284. package/icons/chevronright/chevronright.d.ts +6 -0
  1285. package/icons/chevronright/index.d.ts +5 -9
  1286. package/icons/chevronright/public_api.d.ts +1 -0
  1287. package/icons/chevronup/chevronup.d.ts +6 -0
  1288. package/icons/chevronup/index.d.ts +5 -9
  1289. package/icons/chevronup/public_api.d.ts +1 -0
  1290. package/icons/exclamationtriangle/exclamationtriangle.d.ts +9 -0
  1291. package/icons/exclamationtriangle/index.d.ts +5 -12
  1292. package/icons/exclamationtriangle/public_api.d.ts +1 -0
  1293. package/icons/eye/eye.d.ts +6 -0
  1294. package/icons/eye/index.d.ts +5 -9
  1295. package/icons/eye/public_api.d.ts +1 -0
  1296. package/icons/eyeslash/eyeslash.d.ts +8 -0
  1297. package/icons/eyeslash/index.d.ts +5 -11
  1298. package/icons/eyeslash/public_api.d.ts +1 -0
  1299. package/icons/filter/filter.d.ts +8 -0
  1300. package/icons/filter/index.d.ts +5 -11
  1301. package/icons/filter/public_api.d.ts +1 -0
  1302. package/icons/filterslash/filterslash.d.ts +8 -0
  1303. package/icons/filterslash/index.d.ts +5 -11
  1304. package/icons/filterslash/public_api.d.ts +1 -0
  1305. package/icons/home/home.d.ts +8 -0
  1306. package/icons/home/index.d.ts +5 -11
  1307. package/icons/home/public_api.d.ts +1 -0
  1308. package/icons/infocircle/index.d.ts +5 -11
  1309. package/icons/infocircle/infocircle.d.ts +8 -0
  1310. package/icons/infocircle/public_api.d.ts +1 -0
  1311. package/icons/minus/index.d.ts +5 -9
  1312. package/icons/minus/minus.d.ts +6 -0
  1313. package/icons/minus/public_api.d.ts +1 -0
  1314. package/icons/pencil/index.d.ts +5 -11
  1315. package/icons/pencil/pencil.d.ts +8 -0
  1316. package/icons/pencil/public_api.d.ts +1 -0
  1317. package/icons/plus/index.d.ts +5 -11
  1318. package/icons/plus/plus.d.ts +8 -0
  1319. package/icons/plus/public_api.d.ts +1 -0
  1320. package/icons/refresh/index.d.ts +5 -11
  1321. package/icons/refresh/public_api.d.ts +1 -0
  1322. package/icons/refresh/refresh.d.ts +8 -0
  1323. package/icons/search/index.d.ts +5 -11
  1324. package/icons/search/public_api.d.ts +1 -0
  1325. package/icons/search/search.d.ts +8 -0
  1326. package/icons/searchminus/index.d.ts +5 -11
  1327. package/icons/searchminus/public_api.d.ts +1 -0
  1328. package/icons/searchminus/searchminus.d.ts +8 -0
  1329. package/icons/searchplus/index.d.ts +5 -11
  1330. package/icons/searchplus/public_api.d.ts +1 -0
  1331. package/icons/searchplus/searchplus.d.ts +8 -0
  1332. package/icons/sortalt/index.d.ts +5 -11
  1333. package/icons/sortalt/public_api.d.ts +1 -0
  1334. package/icons/sortalt/sortalt.d.ts +8 -0
  1335. package/icons/sortamountdown/index.d.ts +5 -11
  1336. package/icons/sortamountdown/public_api.d.ts +1 -0
  1337. package/icons/sortamountdown/sortamountdown.d.ts +8 -0
  1338. package/icons/sortamountupalt/index.d.ts +5 -11
  1339. package/icons/sortamountupalt/public_api.d.ts +1 -0
  1340. package/icons/sortamountupalt/sortamountupalt.d.ts +8 -0
  1341. package/icons/spinner/index.d.ts +5 -11
  1342. package/icons/spinner/public_api.d.ts +1 -0
  1343. package/icons/spinner/spinner.d.ts +8 -0
  1344. package/icons/star/index.d.ts +5 -11
  1345. package/icons/star/public_api.d.ts +1 -0
  1346. package/icons/star/star.d.ts +8 -0
  1347. package/icons/starfill/index.d.ts +5 -11
  1348. package/icons/starfill/public_api.d.ts +1 -0
  1349. package/icons/starfill/starfill.d.ts +8 -0
  1350. package/icons/thlarge/index.d.ts +5 -11
  1351. package/icons/thlarge/public_api.d.ts +1 -0
  1352. package/icons/thlarge/thlarge.d.ts +8 -0
  1353. package/icons/times/index.d.ts +5 -9
  1354. package/icons/times/public_api.d.ts +1 -0
  1355. package/icons/times/times.d.ts +6 -0
  1356. package/icons/timescircle/index.d.ts +5 -11
  1357. package/icons/timescircle/public_api.d.ts +1 -0
  1358. package/icons/timescircle/timescircle.d.ts +8 -0
  1359. package/icons/trash/index.d.ts +5 -11
  1360. package/icons/trash/public_api.d.ts +1 -0
  1361. package/icons/trash/trash.d.ts +8 -0
  1362. package/icons/undo/index.d.ts +5 -11
  1363. package/icons/undo/public_api.d.ts +1 -0
  1364. package/icons/undo/undo.d.ts +8 -0
  1365. package/icons/upload/index.d.ts +5 -11
  1366. package/icons/upload/public_api.d.ts +1 -0
  1367. package/icons/upload/upload.d.ts +8 -0
  1368. package/icons/windowmaximize/index.d.ts +5 -11
  1369. package/icons/windowmaximize/public_api.d.ts +1 -0
  1370. package/icons/windowmaximize/windowmaximize.d.ts +8 -0
  1371. package/icons/windowminimize/index.d.ts +5 -11
  1372. package/icons/windowminimize/public_api.d.ts +1 -0
  1373. package/icons/windowminimize/windowminimize.d.ts +8 -0
  1374. package/image/image.d.ts +188 -0
  1375. package/image/image.interface.d.ts +31 -0
  1376. package/image/image.module.d.ts +8 -0
  1377. package/image/index.d.ts +3 -228
  1378. package/image/public_api.d.ts +3 -0
  1379. package/index.d.ts +5 -2
  1380. package/inplace/index.d.ts +3 -130
  1381. package/inplace/inplace.d.ts +109 -0
  1382. package/inplace/inplace.interface.d.ts +19 -0
  1383. package/inplace/public_api.d.ts +2 -0
  1384. package/inputgroup/index.d.ts +3 -48
  1385. package/inputgroup/inputgroup.d.ts +33 -0
  1386. package/inputgroup/inputgroup.module.d.ts +15 -0
  1387. package/inputgroup/public_api.d.ts +2 -0
  1388. package/inputgroupaddon/index.d.ts +3 -35
  1389. package/inputgroupaddon/inputgroupaddon.d.ts +21 -0
  1390. package/inputgroupaddon/inputgroupaddon.module.d.ts +14 -0
  1391. package/inputgroupaddon/public_api.d.ts +2 -0
  1392. package/inputicon/index.d.ts +3 -22
  1393. package/inputicon/inputicon.d.ts +21 -0
  1394. package/inputicon/public_api.d.ts +1 -0
  1395. package/inputmask/index.d.ts +3 -304
  1396. package/inputmask/inputmask.d.ts +273 -0
  1397. package/inputmask/inputmask.interface.d.ts +19 -0
  1398. package/inputmask/inputmask.module.d.ts +12 -0
  1399. package/inputmask/public_api.d.ts +3 -0
  1400. package/inputnumber/index.d.ts +3 -443
  1401. package/inputnumber/inputnumber.d.ts +397 -0
  1402. package/inputnumber/inputnumber.interface.d.ts +38 -0
  1403. package/inputnumber/inputnumber.module.d.ts +8 -0
  1404. package/inputnumber/public_api.d.ts +3 -0
  1405. package/inputotp/index.d.ts +3 -189
  1406. package/inputotp/inputotp.d.ts +123 -0
  1407. package/inputotp/inputotp.interface.d.ts +65 -0
  1408. package/inputotp/public_api.d.ts +2 -0
  1409. package/inputswitch/index.d.ts +3 -123
  1410. package/inputswitch/inputswitch.d.ts +106 -0
  1411. package/inputswitch/inputswitch.interface.d.ts +15 -0
  1412. package/inputswitch/public_api.d.ts +2 -0
  1413. package/inputtext/index.d.ts +5 -76
  1414. package/inputtext/inputtext.component.d.ts +43 -0
  1415. package/inputtext/inputtext.directive.d.ts +25 -0
  1416. package/inputtext/inputtext.module.d.ts +10 -0
  1417. package/inputtext/public_api.d.ts +3 -0
  1418. package/inputtextarea/index.d.ts +3 -112
  1419. package/inputtextarea/inputtextarea.component.d.ts +57 -0
  1420. package/inputtextarea/inputtextarea.directive.d.ts +47 -0
  1421. package/inputtextarea/inputtextarea.module.d.ts +10 -0
  1422. package/inputtextarea/public_api.d.ts +3 -0
  1423. package/keyfilter/index.d.ts +3 -65
  1424. package/keyfilter/keyfilter.d.ts +58 -0
  1425. package/keyfilter/keyfilter.interface.d.ts +5 -0
  1426. package/keyfilter/public_api.d.ts +2 -0
  1427. package/knob/index.d.ts +3 -179
  1428. package/knob/knob.d.ts +178 -0
  1429. package/knob/public_api.d.ts +1 -0
  1430. package/listbox/index.d.ts +3 -620
  1431. package/listbox/listbox.d.ts +463 -0
  1432. package/listbox/listbox.interface.d.ts +156 -0
  1433. package/listbox/public_api.d.ts +2 -0
  1434. package/logo/index.d.ts +5 -20
  1435. package/logo/logo.d.ts +11 -0
  1436. package/logo/logo.module.d.ts +7 -0
  1437. package/logo/public_api.d.ts +2 -0
  1438. package/megamenu/index.d.ts +3 -230
  1439. package/megamenu/megamenu.d.ts +198 -0
  1440. package/megamenu/megamenu.interface.d.ts +31 -0
  1441. package/megamenu/public_api.d.ts +2 -0
  1442. package/menu/index.d.ts +3 -222
  1443. package/menu/menu.d.ts +210 -0
  1444. package/menu/menu.module.d.ts +12 -0
  1445. package/menu/public_api.d.ts +2 -0
  1446. package/menubar/index.d.ts +3 -290
  1447. package/menubar/menubar.d.ts +248 -0
  1448. package/menubar/menubar.interface.d.ts +40 -0
  1449. package/menubar/public_api.d.ts +2 -0
  1450. package/message/index.d.ts +3 -53
  1451. package/message/message.d.ts +52 -0
  1452. package/message/public_api.d.ts +1 -0
  1453. package/messages/index.d.ts +3 -140
  1454. package/messages/messages.d.ts +115 -0
  1455. package/messages/messages.interface.d.ts +18 -0
  1456. package/messages/messages.module.d.ts +8 -0
  1457. package/messages/public_api.d.ts +3 -0
  1458. package/metergroup/index.d.ts +3 -224
  1459. package/metergroup/metergroup.d.ts +101 -0
  1460. package/metergroup/metergroup.interface.d.ts +122 -0
  1461. package/metergroup/public_api.d.ts +2 -0
  1462. package/multiselect/index.d.ts +3 -974
  1463. package/multiselect/multiselect.d.ts +710 -0
  1464. package/multiselect/multiselect.interface.d.ts +247 -0
  1465. package/multiselect/multiselect.module.d.ts +20 -0
  1466. package/multiselect/public_api.d.ts +3 -0
  1467. package/navigation/index.d.ts +5 -105
  1468. package/navigation/navigation.d.ts +70 -0
  1469. package/navigation/navigation.interface.d.ts +26 -0
  1470. package/navigation/navigation.module.d.ts +7 -0
  1471. package/navigation/public_api.d.ts +2 -0
  1472. package/orderlist/index.d.ts +3 -381
  1473. package/orderlist/orderlist.d.ts +270 -0
  1474. package/orderlist/orderlist.interface.d.ts +110 -0
  1475. package/orderlist/public_api.d.ts +2 -0
  1476. package/organizationchart/index.d.ts +3 -192
  1477. package/organizationchart/organizationchart.d.ts +132 -0
  1478. package/organizationchart/organizationchart.interface.d.ts +59 -0
  1479. package/organizationchart/public_api.d.ts +2 -0
  1480. package/overlay/index.d.ts +3 -246
  1481. package/overlay/overlay.d.ts +238 -0
  1482. package/overlay/overlay.module.d.ts +8 -0
  1483. package/overlay/public_api.d.ts +2 -0
  1484. package/overlaypanel/index.d.ts +3 -170
  1485. package/overlaypanel/overlaypanel.d.ts +162 -0
  1486. package/overlaypanel/overlaypanel.module.d.ts +8 -0
  1487. package/overlaypanel/public_api.d.ts +2 -0
  1488. package/package.json +699 -359
  1489. package/paginator/index.d.ts +3 -249
  1490. package/paginator/paginator.d.ts +195 -0
  1491. package/paginator/paginator.interface.d.ts +37 -0
  1492. package/paginator/paginator.module.d.ts +17 -0
  1493. package/paginator/public_api.d.ts +3 -0
  1494. package/panel/index.d.ts +3 -185
  1495. package/panel/panel.d.ts +126 -0
  1496. package/panel/panel.interface.d.ts +58 -0
  1497. package/panel/public_api.d.ts +2 -0
  1498. package/panelmenu/index.d.ts +3 -249
  1499. package/panelmenu/panelmenu.d.ts +225 -0
  1500. package/panelmenu/panelmenu.interface.d.ts +23 -0
  1501. package/panelmenu/public_api.d.ts +2 -0
  1502. package/password/index.d.ts +3 -342
  1503. package/password/password.d.ts +342 -0
  1504. package/password/public_api.d.ts +1 -0
  1505. package/picklist/index.d.ts +3 -696
  1506. package/picklist/picklist.d.ts +453 -0
  1507. package/picklist/picklist.interface.d.ts +242 -0
  1508. package/picklist/public_api.d.ts +2 -0
  1509. package/progressbar/index.d.ts +3 -61
  1510. package/progressbar/progressbar.d.ts +54 -0
  1511. package/progressbar/progressbar.module.d.ts +8 -0
  1512. package/progressbar/public_api.d.ts +2 -0
  1513. package/progressspinner/index.d.ts +3 -58
  1514. package/progressspinner/progressspinner.d.ts +50 -0
  1515. package/progressspinner/progressspinner.module.d.ts +8 -0
  1516. package/progressspinner/public_api.d.ts +2 -0
  1517. package/public_api.d.ts +2 -0
  1518. package/radiobutton/index.d.ts +3 -173
  1519. package/radiobutton/public_api.d.ts +3 -0
  1520. package/radiobutton/radiobutton.d.ts +150 -0
  1521. package/radiobutton/radiobutton.interface.d.ts +15 -0
  1522. package/radiobutton/radiobutton.module.d.ts +7 -0
  1523. package/rating/index.d.ts +3 -181
  1524. package/rating/public_api.d.ts +2 -0
  1525. package/rating/rating.d.ts +146 -0
  1526. package/rating/rating.interface.d.ts +34 -0
  1527. package/resources/components/colorpicker/images/color.png +0 -0
  1528. package/resources/components/colorpicker/images/hue.png +0 -0
  1529. package/resources/components/password/images/password-meter.png +0 -0
  1530. package/resources/components/toggleswitch/toggleswitch.scss +1 -1
  1531. package/resources/components/tree/images/line.gif +0 -0
  1532. package/resources/images/color.png +0 -0
  1533. package/resources/images/hue.png +0 -0
  1534. package/resources/images/line.gif +0 -0
  1535. package/resources/images/password-meter.png +0 -0
  1536. package/ripple/index.d.ts +3 -37
  1537. package/ripple/public_api.d.ts +2 -0
  1538. package/ripple/ripple.d.ts +30 -0
  1539. package/ripple/ripple.module.d.ts +7 -0
  1540. package/scroller/index.d.ts +3 -528
  1541. package/scroller/public_api.d.ts +3 -0
  1542. package/scroller/scroller.d.ts +343 -0
  1543. package/scroller/scroller.interface.d.ts +177 -0
  1544. package/scroller/scroller.module.d.ts +8 -0
  1545. package/scrollpanel/index.d.ts +3 -116
  1546. package/scrollpanel/public_api.d.ts +2 -0
  1547. package/scrollpanel/scrollpanel.d.ts +103 -0
  1548. package/scrollpanel/scrollpanel.interface.d.ts +11 -0
  1549. package/scrolltop/index.d.ts +3 -117
  1550. package/scrolltop/public_api.d.ts +2 -0
  1551. package/scrolltop/scrolltop.d.ts +97 -0
  1552. package/scrolltop/scrolltop.interface.d.ts +18 -0
  1553. package/selectbutton/index.d.ts +3 -184
  1554. package/selectbutton/public_api.d.ts +3 -0
  1555. package/selectbutton/selectbutton.d.ts +128 -0
  1556. package/selectbutton/selectbutton.interface.d.ts +45 -0
  1557. package/selectbutton/selectbutton.module.d.ts +11 -0
  1558. package/sidebar/index.d.ts +3 -213
  1559. package/sidebar/public_api.d.ts +3 -0
  1560. package/sidebar/sidebar.d.ts +173 -0
  1561. package/sidebar/sidebar.interface.d.ts +27 -0
  1562. package/sidebar/sidebar.module.d.ts +12 -0
  1563. package/skeleton/index.d.ts +3 -69
  1564. package/skeleton/public_api.d.ts +2 -0
  1565. package/skeleton/skeleton.d.ts +61 -0
  1566. package/skeleton/skeleton.module.d.ts +8 -0
  1567. package/slidemenu/index.d.ts +3 -339
  1568. package/slidemenu/public_api.d.ts +2 -0
  1569. package/slidemenu/slidemenu.d.ts +322 -0
  1570. package/slidemenu/slidemenu.interface.d.ts +15 -0
  1571. package/slider/index.d.ts +3 -214
  1572. package/slider/public_api.d.ts +2 -0
  1573. package/slider/slider.d.ts +174 -0
  1574. package/slider/slider.interface.d.ts +38 -0
  1575. package/speeddial/index.d.ts +3 -319
  1576. package/speeddial/public_api.d.ts +3 -0
  1577. package/speeddial/speeddial.d.ts +277 -0
  1578. package/speeddial/speeddial.interface.d.ts +28 -0
  1579. package/speeddial/speeddial.module.d.ts +14 -0
  1580. package/spinner/index.d.ts +5 -93
  1581. package/spinner/public_api.d.ts +1 -0
  1582. package/spinner/spinner.d.ts +90 -0
  1583. package/splitbutton/index.d.ts +3 -264
  1584. package/splitbutton/public_api.d.ts +3 -0
  1585. package/splitbutton/splitbutton.d.ts +222 -0
  1586. package/splitbutton/splitbutton.interface.d.ts +30 -0
  1587. package/splitbutton/splitbutton.module.d.ts +13 -0
  1588. package/splitter/index.d.ts +3 -201
  1589. package/splitter/public_api.d.ts +3 -0
  1590. package/splitter/splitter.d.ts +158 -0
  1591. package/splitter/splitter.interface.d.ts +34 -0
  1592. package/splitter/splitter.module.d.ts +9 -0
  1593. package/stepper/index.d.ts +3 -145
  1594. package/stepper/public_api.d.ts +2 -0
  1595. package/stepper/stepper.d.ts +117 -0
  1596. package/stepper/stepper.interface.d.ts +26 -0
  1597. package/steps/index.d.ts +3 -87
  1598. package/steps/public_api.d.ts +2 -0
  1599. package/steps/steps.d.ts +77 -0
  1600. package/steps/steps.module.d.ts +10 -0
  1601. package/styleclass/index.d.ts +3 -109
  1602. package/styleclass/public_api.d.ts +1 -0
  1603. package/styleclass/styleclass.d.ts +108 -0
  1604. package/table/columnfilter.interface.d.ts +247 -0
  1605. package/table/components/cell-editor/cell-editor.d.ts +20 -0
  1606. package/table/components/column-filter/column-filter.d.ts +291 -0
  1607. package/table/components/column-filter-form-element/column-filter-form-element.d.ts +37 -0
  1608. package/table/components/sort-icon/sort-icon.d.ts +22 -0
  1609. package/table/components/table-body/table-body.d.ts +36 -0
  1610. package/table/components/table-checkbox/table-checkbox.d.ts +32 -0
  1611. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +29 -0
  1612. package/table/components/table-radio-button/table-radio-button.d.ts +29 -0
  1613. package/table/directives/cancel-editable-row.directive.d.ts +11 -0
  1614. package/table/directives/cell-highlight.directive.d.ts +14 -0
  1615. package/table/directives/content-menu-row.directive.d.ts +22 -0
  1616. package/table/directives/dynamic-column-width.directive.d.ts +12 -0
  1617. package/table/directives/editable-column.directive.d.ts +40 -0
  1618. package/table/directives/editable-row.directive.d.ts +12 -0
  1619. package/table/directives/frozen-column.directive.d.ts +16 -0
  1620. package/table/directives/init-editable-row.directive.d.ts +11 -0
  1621. package/table/directives/reorderable-column.directive.d.ts +32 -0
  1622. package/table/directives/reorderable-row-handle.directive.d.ts +9 -0
  1623. package/table/directives/reorderable-row.directive.d.ts +34 -0
  1624. package/table/directives/resizable-column.directive.d.ts +35 -0
  1625. package/table/directives/row-group-header.directive.d.ts +9 -0
  1626. package/table/directives/row-toggler.directive.d.ts +13 -0
  1627. package/table/directives/save-editable-row.directive.d.ts +11 -0
  1628. package/table/directives/selectable-row-double-click.directive.d.ts +22 -0
  1629. package/table/directives/selectable-row.directive.d.ts +37 -0
  1630. package/table/directives/sortable-column.directive.d.ts +24 -0
  1631. package/table/index.d.ts +3 -2556
  1632. package/table/public_api.d.ts +30 -0
  1633. package/table/table.d.ts +871 -0
  1634. package/table/table.interface.d.ts +623 -0
  1635. package/table/table.module.d.ts +34 -0
  1636. package/table/table.service.d.ts +24 -0
  1637. package/tableconfiguration/index.d.ts +5 -25
  1638. package/tableconfiguration/public_api.d.ts +2 -0
  1639. package/tableconfiguration/tableconfiguration.d.ts +16 -0
  1640. package/tableconfiguration/tableconfiguration.module.d.ts +7 -0
  1641. package/tabmenu/index.d.ts +3 -160
  1642. package/tabmenu/public_api.d.ts +2 -0
  1643. package/tabmenu/tabmenu.d.ts +126 -0
  1644. package/tabmenu/tabmenu.interface.d.ts +32 -0
  1645. package/tabview/index.d.ts +3 -357
  1646. package/tabview/public_api.d.ts +3 -0
  1647. package/tabview/tabview.d.ts +293 -0
  1648. package/tabview/tabview.interface.d.ts +49 -0
  1649. package/tabview/tabview.module.d.ts +15 -0
  1650. package/tag/index.d.ts +3 -82
  1651. package/tag/public_api.d.ts +3 -0
  1652. package/tag/tag.d.ts +61 -0
  1653. package/tag/tag.interface.d.ts +11 -0
  1654. package/tag/tag.module.d.ts +9 -0
  1655. package/terminal/index.d.ts +3 -68
  1656. package/terminal/public_api.d.ts +2 -0
  1657. package/terminal/terminal.d.ts +56 -0
  1658. package/terminal/terminalservice.d.ts +11 -0
  1659. package/tieredmenu/index.d.ts +3 -307
  1660. package/tieredmenu/public_api.d.ts +3 -0
  1661. package/tieredmenu/tieredmenu.d.ts +266 -0
  1662. package/tieredmenu/tieredmenu.interface.d.ts +27 -0
  1663. package/tieredmenu/tiredmenu.module.d.ts +13 -0
  1664. package/timeline/index.d.ts +3 -100
  1665. package/timeline/public_api.d.ts +3 -0
  1666. package/timeline/timeline.d.ts +47 -0
  1667. package/timeline/timeline.interface.d.ts +43 -0
  1668. package/timeline/timeline.module.d.ts +9 -0
  1669. package/toast/index.d.ts +3 -202
  1670. package/toast/public_api.d.ts +3 -0
  1671. package/toast/toast.d.ts +142 -0
  1672. package/toast/toast.interface.d.ts +52 -0
  1673. package/toast/toast.module.d.ts +9 -0
  1674. package/toast/toastitem.d.ts +37 -0
  1675. package/togglebutton/index.d.ts +3 -150
  1676. package/togglebutton/public_api.d.ts +2 -0
  1677. package/togglebutton/togglebutton.d.ts +115 -0
  1678. package/togglebutton/togglebutton.interface.d.ts +34 -0
  1679. package/toggleswitch/index.d.ts +5 -25
  1680. package/toggleswitch/public_api.d.ts +2 -0
  1681. package/toggleswitch/toggleswitch.d.ts +14 -0
  1682. package/toggleswitch/toggleswitch.module.d.ts +9 -0
  1683. package/toolbar/index.d.ts +3 -64
  1684. package/toolbar/public_api.d.ts +2 -0
  1685. package/toolbar/toolbar.d.ts +43 -0
  1686. package/toolbar/toolbar.interface.d.ts +19 -0
  1687. package/tooltip/index.d.ts +3 -218
  1688. package/tooltip/public_api.d.ts +2 -0
  1689. package/tooltip/tooltip.d.ts +208 -0
  1690. package/tooltip/tooltip.module.d.ts +10 -0
  1691. package/tree/index.d.ts +3 -673
  1692. package/tree/public_api.d.ts +3 -0
  1693. package/tree/tree.d.ts +461 -0
  1694. package/tree/tree.interface.d.ts +193 -0
  1695. package/tree/tree.module.d.ts +21 -0
  1696. package/treeselect/index.d.ts +3 -517
  1697. package/treeselect/public_api.d.ts +3 -0
  1698. package/treeselect/treeselect.d.ts +394 -0
  1699. package/treeselect/treeselect.interface.d.ts +108 -0
  1700. package/treeselect/treeselect.module.d.ts +16 -0
  1701. package/treetable/index.d.ts +3 -1461
  1702. package/treetable/public_api.d.ts +2 -0
  1703. package/treetable/treetable.d.ts +988 -0
  1704. package/treetable/treetable.interface.d.ts +472 -0
  1705. package/tristatecheckbox/index.d.ts +3 -155
  1706. package/tristatecheckbox/public_api.d.ts +3 -0
  1707. package/tristatecheckbox/tristatecheckbox.d.ts +117 -0
  1708. package/tristatecheckbox/tristatecheckbox.interface.d.ts +30 -0
  1709. package/tristatecheckbox/tristatecheckbox.module.d.ts +8 -0
  1710. package/ts-helpers/index.d.ts +5 -6
  1711. package/ts-helpers/public_api.d.ts +1 -0
  1712. package/ts-helpers/ts-helpers.d.ts +4 -0
  1713. package/upload/index.d.ts +5 -81
  1714. package/upload/public_api.d.ts +2 -0
  1715. package/upload/upload.component.d.ts +67 -0
  1716. package/upload/upload.component.module.d.ts +11 -0
  1717. package/utils/index.d.ts +5 -35
  1718. package/utils/objectutils.d.ts +24 -0
  1719. package/utils/public_api.d.ts +4 -0
  1720. package/utils/uniquecomponentid.d.ts +2 -0
  1721. package/utils/zindexutils.d.ts +7 -0
  1722. package/virtualscroller/index.d.ts +3 -161
  1723. package/virtualscroller/public_api.d.ts +2 -0
  1724. package/virtualscroller/virtualscroller.d.ts +89 -0
  1725. package/virtualscroller/virtualscroller.interface.d.ts +72 -0
  1726. package/cax-design-system-2.8.2.tgz +0 -0
@@ -0,0 +1,865 @@
1
+ import { trigger, transition, style, animate } from '@angular/animations';
2
+ import { CommonModule, DOCUMENT } from '@angular/common';
3
+ import { Component, ViewEncapsulation, Input, booleanAttribute, numberAttribute, Output, EventEmitter, ViewChild, ContentChildren, Inject } from '@angular/core';
4
+ import { FilterOperator, CaxTemplate, TranslationKeys, FilterMatchMode } from 'cax-design-system/api';
5
+ import { ConnectedOverlayScrollHandler, DomHandler } from 'cax-design-system/dom';
6
+ import { UniqueComponentId, ZIndexUtils } from 'cax-design-system/utils';
7
+ import { ColumnFilterFormElement } from '../column-filter-form-element/column-filter-form-element';
8
+ import { FilterSlashIcon } from 'cax-design-system/icons/filterslash';
9
+ import { DropdownModule } from 'cax-design-system/dropdown';
10
+ import { ButtonModule } from 'cax-design-system/button';
11
+ import { TrashIcon } from 'cax-design-system/icons/trash';
12
+ import { PlusIcon } from 'cax-design-system/icons/plus';
13
+ import { FormsModule } from '@angular/forms';
14
+ import { RadioButtonModule } from 'cax-design-system/radiobutton';
15
+ import { DividerModule } from 'cax-design-system/divider';
16
+ import { InputTextModule } from 'cax-design-system/inputtext';
17
+ import { InputNumberModule } from 'cax-design-system/inputnumber';
18
+ import { CalendarModule } from 'cax-design-system/calendar';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "../../table";
21
+ import * as i2 from "cax-design-system/api";
22
+ import * as i3 from "@angular/common";
23
+ import * as i4 from "cax-design-system/dropdown";
24
+ import * as i5 from "@angular/forms";
25
+ import * as i6 from "cax-design-system/button";
26
+ import * as i7 from "cax-design-system/divider";
27
+ import * as i8 from "cax-design-system/inputtext";
28
+ import * as i9 from "cax-design-system/inputnumber";
29
+ import * as i10 from "cax-design-system/calendar";
30
+ export class ColumnFilter {
31
+ document;
32
+ el;
33
+ dt;
34
+ renderer;
35
+ config;
36
+ overlayService;
37
+ cd;
38
+ /**
39
+ * Property represented by the column.
40
+ * @group Props
41
+ */
42
+ field;
43
+ /**
44
+ * Type of the input.
45
+ * @group Props
46
+ */
47
+ type = 'text';
48
+ disabled = false;
49
+ /**
50
+ * Filter display.
51
+ * @group Props
52
+ */
53
+ display = 'menu';
54
+ /**
55
+ * Decides whether to display filter menu popup.
56
+ * @group Props
57
+ */
58
+ showMenu = true;
59
+ /**
60
+ * Filter match mode.
61
+ * @group Props
62
+ */
63
+ matchMode;
64
+ /**
65
+ * Filter operator.
66
+ * @defaultValue 'AND'
67
+ * @group Props
68
+ */
69
+ operator = FilterOperator.AND;
70
+ /**
71
+ * Decides whether to display filter operator.
72
+ * @group Props
73
+ */
74
+ showOperator = true;
75
+ /**
76
+ * Decides whether to display clear filter button.
77
+ * @group Props
78
+ */
79
+ showClearButton = true;
80
+ /**
81
+ * Decides whether to display apply filter button.
82
+ * @group Props
83
+ */
84
+ showApplyButton = true;
85
+ /**
86
+ * Decides whether to display filter match modes.
87
+ * @group Props
88
+ */
89
+ showMatchModes = true;
90
+ /**
91
+ * Decides whether to display add filter button.
92
+ * @group Props
93
+ */
94
+ showAddButton = true;
95
+ /**
96
+ * Decides whether to close popup on clear button click.
97
+ * @group Props
98
+ */
99
+ hideOnClear = false;
100
+ /**
101
+ * Filter placeholder.
102
+ * @group Props
103
+ */
104
+ placeholder;
105
+ /**
106
+ * Filter match mode options.
107
+ * @group Props
108
+ */
109
+ matchModeOptions;
110
+ /**
111
+ * Defines maximum amount of constraints.
112
+ * @group Props
113
+ */
114
+ maxConstraints = 2;
115
+ /**
116
+ * Defines minimum fraction of digits.
117
+ * @group Props
118
+ */
119
+ minFractionDigits;
120
+ /**
121
+ * Defines maximum fraction of digits.
122
+ * @group Props
123
+ */
124
+ maxFractionDigits;
125
+ /**
126
+ * Defines prefix of the filter.
127
+ * @group Props
128
+ */
129
+ prefix;
130
+ /**
131
+ * Defines suffix of the filter.
132
+ * @group Props
133
+ */
134
+ suffix;
135
+ /**
136
+ * Defines filter locale.
137
+ * @group Props
138
+ */
139
+ locale;
140
+ /**
141
+ * Defines filter locale matcher.
142
+ * @group Props
143
+ */
144
+ localeMatcher;
145
+ /**
146
+ * Enables currency input.
147
+ * @group Props
148
+ */
149
+ currency;
150
+ /**
151
+ * Defines the display of the currency input.
152
+ * @group Props
153
+ */
154
+ currencyDisplay;
155
+ /**
156
+ * Defines if filter grouping will be enabled.
157
+ * @group Props
158
+ */
159
+ useGrouping = true;
160
+ /**
161
+ * Defines the visibility of buttons.
162
+ * @group Props
163
+ */
164
+ showButtons = true;
165
+ /**
166
+ * Defines the aria-label of the form element.
167
+ * @group Props
168
+ */
169
+ ariaLabel;
170
+ /**
171
+ * Callback to invoke on overlay is shown.
172
+ * @param {AnimationEvent} originalEvent - animation event.
173
+ * @group Emits
174
+ */
175
+ onShow = new EventEmitter();
176
+ /**
177
+ * Callback to invoke on overlay is hidden.
178
+ * @param {AnimationEvent} originalEvent - animation event.
179
+ * @group Emits
180
+ */
181
+ onHide = new EventEmitter();
182
+ icon;
183
+ clearButtonViewChild;
184
+ templates;
185
+ overlaySubscription;
186
+ headerTemplate;
187
+ filterTemplate;
188
+ footerTemplate;
189
+ filterIconTemplate;
190
+ removeRuleIconTemplate;
191
+ addRuleIconTemplate;
192
+ clearFilterIconTemplate;
193
+ operatorOptions;
194
+ overlayVisible;
195
+ overlay;
196
+ scrollHandler;
197
+ documentClickListener;
198
+ documentResizeListener;
199
+ matchModes;
200
+ translationSubscription;
201
+ resetSubscription;
202
+ selfClick;
203
+ overlayEventListener;
204
+ window;
205
+ overlayId;
206
+ get fieldConstraints() {
207
+ return this.dt.filters ? this.dt.filters[this.field] : null;
208
+ }
209
+ get showRemoveIcon() {
210
+ return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;
211
+ }
212
+ get showMenuButton() {
213
+ return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);
214
+ }
215
+ get isShowOperator() {
216
+ return this.showOperator && this.type !== 'boolean';
217
+ }
218
+ get isShowAddConstraint() {
219
+ return this.showAddButton && this.type !== 'boolean' && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;
220
+ }
221
+ get showMenuButtonLabel() {
222
+ return this.config.getTranslation(TranslationKeys.SHOW_FILTER_MENU);
223
+ }
224
+ get applyButtonLabel() {
225
+ return this.config.getTranslation(TranslationKeys.APPLY);
226
+ }
227
+ get clearButtonLabel() {
228
+ return this.config.getTranslation(TranslationKeys.CLEAR);
229
+ }
230
+ get addRuleButtonLabel() {
231
+ return this.config.getTranslation(TranslationKeys.ADD_RULE);
232
+ }
233
+ get removeRuleButtonLabel() {
234
+ return this.config.getTranslation(TranslationKeys.REMOVE_RULE);
235
+ }
236
+ get noFilterLabel() {
237
+ return this.config.getTranslation(TranslationKeys.NO_FILTER);
238
+ }
239
+ get filterMenuButtonAriaLabel() {
240
+ return this.config.translation ? (this.overlayVisible ? this.config.translation.aria.hideFilterMenu : this.config.translation.aria.showFilterMenu) : undefined;
241
+ }
242
+ get removeRuleButtonAriaLabel() {
243
+ return this.config.translation ? this.config.translation.removeRule : undefined;
244
+ }
245
+ get filterOperatorAriaLabel() {
246
+ return this.config.translation ? this.config.translation.aria.filterOperator : undefined;
247
+ }
248
+ get filterConstraintAriaLabel() {
249
+ return this.config.translation ? this.config.translation.aria.filterConstraint : undefined;
250
+ }
251
+ customFilterListVisible = false;
252
+ selectedCustomFilter;
253
+ commonFilterOptions = [
254
+ {
255
+ label: 'Is empty',
256
+ key: 'empty'
257
+ },
258
+ {
259
+ label: 'Is filled',
260
+ key: 'filled'
261
+ }
262
+ ];
263
+ stringFilterOptions = [
264
+ {
265
+ label: 'Contains',
266
+ key: 'contains'
267
+ },
268
+ {
269
+ label: 'Does not contain',
270
+ key: 'does not contain'
271
+ },
272
+ {
273
+ label: 'Is exactly',
274
+ key: 'exactly'
275
+ }
276
+ ];
277
+ numberFilterOptions = [
278
+ {
279
+ label: 'Greater than',
280
+ key: 'gt'
281
+ },
282
+ {
283
+ label: 'Less than',
284
+ key: 'lt'
285
+ },
286
+ {
287
+ label: 'Greater than or equal to',
288
+ key: 'gte'
289
+ },
290
+ {
291
+ label: 'Less than or equal to',
292
+ key: 'lte'
293
+ },
294
+ {
295
+ label: 'Greater than and less than',
296
+ key: 'gtlt'
297
+ }
298
+ ];
299
+ dateFilterOptions = [
300
+ {
301
+ label: 'Before',
302
+ key: 'before'
303
+ },
304
+ {
305
+ label: 'After',
306
+ key: 'after'
307
+ },
308
+ {
309
+ label: 'Today',
310
+ key: 'today'
311
+ }
312
+ ];
313
+ customInputFilter = '';
314
+ customNumberFilter1;
315
+ customNumberFilter2;
316
+ customDateFilter;
317
+ constructor(document, el, dt, renderer, config, overlayService, cd) {
318
+ this.document = document;
319
+ this.el = el;
320
+ this.dt = dt;
321
+ this.renderer = renderer;
322
+ this.config = config;
323
+ this.overlayService = overlayService;
324
+ this.cd = cd;
325
+ this.window = this.document.defaultView;
326
+ }
327
+ ngOnInit() {
328
+ this.overlayId = UniqueComponentId();
329
+ if (!this.dt.filters[this.field]) {
330
+ this.initFieldFilterConstraint();
331
+ }
332
+ if (this.dt.filters[this.field] && this.dt.filterType === 'custom') {
333
+ let filterData = this.dt.filters[this.field];
334
+ if (!Array.isArray(filterData)) {
335
+ this.selectedCustomFilter = this.getSelectedFilter(filterData.matchMode);
336
+ if (this.isCustomStringFilterSelected)
337
+ this.customInputFilter = filterData.value;
338
+ if (this.isCustomNumberFilterSelected) {
339
+ if (this.selectedCustomFilter.key === 'gtlt') {
340
+ this.customNumberFilter1 = filterData.value.gt;
341
+ this.customNumberFilter2 = filterData.value.lt;
342
+ }
343
+ else {
344
+ this.customNumberFilter1 = filterData.value;
345
+ }
346
+ }
347
+ if (this.isCustomDateFilterSelected) {
348
+ if (this.selectedCustomFilter.key !== 'today') {
349
+ this.customDateFilter = new Date(filterData.value);
350
+ }
351
+ }
352
+ }
353
+ }
354
+ this.translationSubscription = this.config.translationObserver.subscribe(() => {
355
+ this.generateMatchModeOptions();
356
+ this.generateOperatorOptions();
357
+ });
358
+ this.generateMatchModeOptions();
359
+ this.generateOperatorOptions();
360
+ }
361
+ getSelectedFilter(key) {
362
+ const allOptions = [...this.commonFilterOptions, ...this.stringFilterOptions, ...this.numberFilterOptions, ...this.dateFilterOptions];
363
+ return allOptions.find((option) => option.key === key);
364
+ }
365
+ generateMatchModeOptions() {
366
+ this.matchModes =
367
+ this.matchModeOptions ||
368
+ this.config.filterMatchModeOptions[this.type]?.map((key) => {
369
+ return { label: this.config.getTranslation(key), value: key };
370
+ });
371
+ }
372
+ generateOperatorOptions() {
373
+ this.operatorOptions = [
374
+ { label: this.config.getTranslation(TranslationKeys.MATCH_ALL), value: FilterOperator.AND },
375
+ { label: this.config.getTranslation(TranslationKeys.MATCH_ANY), value: FilterOperator.OR }
376
+ ];
377
+ }
378
+ ngAfterContentInit() {
379
+ this.templates.forEach((item) => {
380
+ switch (item.getType()) {
381
+ case 'header':
382
+ this.headerTemplate = item.template;
383
+ break;
384
+ case 'filter':
385
+ this.filterTemplate = item.template;
386
+ break;
387
+ case 'footer':
388
+ this.footerTemplate = item.template;
389
+ break;
390
+ case 'filtericon':
391
+ this.filterIconTemplate = item.template;
392
+ break;
393
+ case 'clearfiltericon':
394
+ this.clearFilterIconTemplate = item.template;
395
+ break;
396
+ case 'removeruleicon':
397
+ this.removeRuleIconTemplate = item.template;
398
+ break;
399
+ case 'addruleicon':
400
+ this.addRuleIconTemplate = item.template;
401
+ break;
402
+ default:
403
+ this.filterTemplate = item.template;
404
+ break;
405
+ }
406
+ });
407
+ }
408
+ initFieldFilterConstraint() {
409
+ let defaultMatchMode = this.getDefaultMatchMode();
410
+ if (this.dt.filterType === 'custom') {
411
+ this.dt.filters[this.field] = { value: null, matchMode: null };
412
+ }
413
+ else {
414
+ this.dt.filters[this.field] = this.display == 'row' ? { value: null, matchMode: defaultMatchMode } : [{ value: null, matchMode: defaultMatchMode, operator: this.operator }];
415
+ }
416
+ }
417
+ onMenuMatchModeChange(value, filterMeta) {
418
+ filterMeta.matchMode = value;
419
+ if (!this.showApplyButton) {
420
+ this.dt._filter();
421
+ }
422
+ }
423
+ onRowMatchModeChange(matchMode) {
424
+ const fieldFilter = this.dt.filters[this.field];
425
+ fieldFilter.matchMode = matchMode;
426
+ if (fieldFilter.value) {
427
+ this.dt._filter();
428
+ }
429
+ this.hide();
430
+ }
431
+ onRowMatchModeKeyDown(event) {
432
+ let item = event.target;
433
+ switch (event.key) {
434
+ case 'ArrowDown':
435
+ var nextItem = this.findNextItem(item);
436
+ if (nextItem) {
437
+ item.removeAttribute('tabindex');
438
+ nextItem.tabIndex = '0';
439
+ nextItem.focus();
440
+ }
441
+ event.preventDefault();
442
+ break;
443
+ case 'ArrowUp':
444
+ var prevItem = this.findPrevItem(item);
445
+ if (prevItem) {
446
+ item.removeAttribute('tabindex');
447
+ prevItem.tabIndex = '0';
448
+ prevItem.focus();
449
+ }
450
+ event.preventDefault();
451
+ break;
452
+ }
453
+ }
454
+ onRowClearItemClick() {
455
+ this.clearFilter();
456
+ this.hide();
457
+ }
458
+ isRowMatchModeSelected(matchMode) {
459
+ return this.dt.filters[this.field].matchMode === matchMode;
460
+ }
461
+ addConstraint() {
462
+ this.dt.filters[this.field].push({ value: null, matchMode: this.getDefaultMatchMode(), operator: this.getDefaultOperator() });
463
+ DomHandler.focus(this.clearButtonViewChild.nativeElement);
464
+ }
465
+ removeConstraint(filterMeta) {
466
+ this.dt.filters[this.field] = this.dt.filters[this.field].filter((meta) => meta !== filterMeta);
467
+ if (!this.showApplyButton) {
468
+ this.dt._filter();
469
+ }
470
+ DomHandler.focus(this.clearButtonViewChild.nativeElement);
471
+ }
472
+ onOperatorChange(value) {
473
+ this.dt.filters[this.field].forEach((filterMeta) => {
474
+ filterMeta.operator = value;
475
+ this.operator = value;
476
+ });
477
+ if (!this.showApplyButton) {
478
+ this.dt._filter();
479
+ }
480
+ }
481
+ toggleMenu() {
482
+ this.overlayVisible = !this.overlayVisible;
483
+ }
484
+ onToggleButtonKeyDown(event) {
485
+ switch (event.key) {
486
+ case 'Escape':
487
+ case 'Tab':
488
+ this.overlayVisible = false;
489
+ break;
490
+ case 'ArrowDown':
491
+ if (this.overlayVisible) {
492
+ let focusable = DomHandler.getFocusableElements(this.overlay);
493
+ if (focusable) {
494
+ focusable[0].focus();
495
+ }
496
+ event.preventDefault();
497
+ }
498
+ else if (event.altKey) {
499
+ this.overlayVisible = true;
500
+ event.preventDefault();
501
+ }
502
+ break;
503
+ case 'Enter':
504
+ this.toggleMenu();
505
+ event.preventDefault();
506
+ break;
507
+ }
508
+ }
509
+ onEscape() {
510
+ this.icon?.nativeElement.focus();
511
+ }
512
+ findNextItem(item) {
513
+ let nextItem = item.nextElementSibling;
514
+ if (nextItem)
515
+ return DomHandler.hasClass(nextItem, 'cax-column-filter-separator') ? this.findNextItem(nextItem) : nextItem;
516
+ else
517
+ return item.parentElement?.firstElementChild;
518
+ }
519
+ findPrevItem(item) {
520
+ let prevItem = item.previousElementSibling;
521
+ if (prevItem)
522
+ return DomHandler.hasClass(prevItem, 'cax-column-filter-separator') ? this.findPrevItem(prevItem) : prevItem;
523
+ else
524
+ return item.parentElement?.lastElementChild;
525
+ }
526
+ onContentClick() {
527
+ this.selfClick = true;
528
+ }
529
+ onOverlayAnimationStart(event) {
530
+ switch (event.toState) {
531
+ case 'visible':
532
+ this.overlay = event.element;
533
+ this.renderer.appendChild(this.document.body, this.overlay);
534
+ ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);
535
+ DomHandler.absolutePosition(this.overlay, this.icon?.nativeElement);
536
+ this.bindDocumentClickListener();
537
+ this.bindDocumentResizeListener();
538
+ this.bindScrollListener();
539
+ this.overlayEventListener = (e) => {
540
+ if (this.overlay && this.overlay.contains(e.target)) {
541
+ this.selfClick = true;
542
+ }
543
+ };
544
+ this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);
545
+ this.onShow.emit({ originalEvent: event });
546
+ break;
547
+ case 'void':
548
+ this.onOverlayHide();
549
+ if (this.overlaySubscription) {
550
+ this.overlaySubscription.unsubscribe();
551
+ }
552
+ break;
553
+ }
554
+ }
555
+ onOverlayAnimationEnd(event) {
556
+ switch (event.toState) {
557
+ case 'visible':
558
+ this.focusOnFirstElement();
559
+ break;
560
+ case 'void':
561
+ ZIndexUtils.clear(event.element);
562
+ this.onHide.emit({ originalEvent: event });
563
+ break;
564
+ }
565
+ }
566
+ focusOnFirstElement() {
567
+ if (this.overlay) {
568
+ DomHandler.focus(DomHandler.getFirstFocusableElement(this.overlay, ''));
569
+ }
570
+ }
571
+ getDefaultMatchMode() {
572
+ if (this.matchMode) {
573
+ return this.matchMode;
574
+ }
575
+ else {
576
+ if (this.type === 'text')
577
+ return FilterMatchMode.STARTS_WITH;
578
+ else if (this.type === 'numeric')
579
+ return FilterMatchMode.EQUALS;
580
+ else if (this.type === 'date')
581
+ return FilterMatchMode.DATE_IS;
582
+ else
583
+ return FilterMatchMode.CONTAINS;
584
+ }
585
+ }
586
+ getDefaultOperator() {
587
+ return this.dt.filters ? this.dt.filters[this.field][0].operator : this.operator;
588
+ }
589
+ hasRowFilter() {
590
+ return this.dt.filters[this.field] && !this.dt.isFilterBlank(this.dt.filters[this.field].value);
591
+ }
592
+ hasFilter() {
593
+ let fieldFilter = this.dt.filters[this.field];
594
+ if (fieldFilter) {
595
+ if (this.dt.filterType === 'custom') {
596
+ if (Array.isArray(fieldFilter))
597
+ return false;
598
+ else
599
+ return fieldFilter.matchMode != null || undefined ? true : false;
600
+ }
601
+ else {
602
+ if (Array.isArray(fieldFilter))
603
+ return !this.dt.isFilterBlank(fieldFilter[0].value);
604
+ else
605
+ return !this.dt.isFilterBlank(fieldFilter.value);
606
+ }
607
+ }
608
+ return false;
609
+ }
610
+ isOutsideClicked(event) {
611
+ return !(DomHandler.hasClass(this.overlay?.nextElementSibling, 'cax-overlay') ||
612
+ this.overlay?.isSameNode(event.target) ||
613
+ this.overlay?.contains(event.target) ||
614
+ this.icon?.nativeElement.isSameNode(event.target) ||
615
+ this.icon?.nativeElement.contains(event.target) ||
616
+ DomHandler.hasClass(event.target, 'cax-column-filter-add-button') ||
617
+ DomHandler.hasClass(event.target.parentElement, 'cax-column-filter-add-button') ||
618
+ DomHandler.hasClass(event.target, 'cax-column-filter-remove-button') ||
619
+ DomHandler.hasClass(event.target.parentElement, 'cax-column-filter-remove-button'));
620
+ }
621
+ bindDocumentClickListener() {
622
+ if (!this.documentClickListener) {
623
+ const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';
624
+ this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {
625
+ let isDateDialog = false;
626
+ document.querySelectorAll('[role="dialog"]').forEach((d) => {
627
+ if (DomHandler.hasClass(d, 'cax-datepicker'))
628
+ isDateDialog = true;
629
+ });
630
+ const targetIsColumnFilterMenuButton = event.target.closest('.cax-column-filter-menu-button');
631
+ if (this.overlayVisible && this.isOutsideClicked(event) && (targetIsColumnFilterMenuButton || !isDateDialog)) {
632
+ this.hide();
633
+ }
634
+ this.selfClick = false;
635
+ });
636
+ }
637
+ }
638
+ unbindDocumentClickListener() {
639
+ if (this.documentClickListener) {
640
+ this.documentClickListener();
641
+ this.documentClickListener = null;
642
+ this.selfClick = false;
643
+ }
644
+ }
645
+ bindDocumentResizeListener() {
646
+ if (!this.documentResizeListener) {
647
+ this.documentResizeListener = this.renderer.listen(this.window, 'resize', (event) => {
648
+ if (this.overlayVisible && !DomHandler.isTouchDevice()) {
649
+ this.hide();
650
+ }
651
+ });
652
+ }
653
+ }
654
+ unbindDocumentResizeListener() {
655
+ if (this.documentResizeListener) {
656
+ this.documentResizeListener();
657
+ this.documentResizeListener = null;
658
+ }
659
+ }
660
+ bindScrollListener() {
661
+ if (!this.scrollHandler) {
662
+ this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon?.nativeElement, () => {
663
+ if (this.overlayVisible) {
664
+ this.hide();
665
+ }
666
+ });
667
+ }
668
+ this.scrollHandler.bindScrollListener();
669
+ }
670
+ unbindScrollListener() {
671
+ if (this.scrollHandler) {
672
+ this.scrollHandler.unbindScrollListener();
673
+ }
674
+ }
675
+ hide() {
676
+ this.overlayVisible = false;
677
+ this.cd.markForCheck();
678
+ }
679
+ onOverlayHide() {
680
+ this.unbindDocumentClickListener();
681
+ this.unbindDocumentResizeListener();
682
+ this.unbindScrollListener();
683
+ this.overlay = null;
684
+ }
685
+ clearFilter() {
686
+ this.initFieldFilterConstraint();
687
+ this.dt._filter();
688
+ if (this.hideOnClear)
689
+ this.hide();
690
+ }
691
+ applyFilter() {
692
+ this.dt._filter();
693
+ this.hide();
694
+ }
695
+ ngOnDestroy() {
696
+ if (this.overlay) {
697
+ this.renderer.appendChild(this.el.nativeElement, this.overlay);
698
+ ZIndexUtils.clear(this.overlay);
699
+ this.onOverlayHide();
700
+ }
701
+ if (this.translationSubscription) {
702
+ this.translationSubscription.unsubscribe();
703
+ }
704
+ if (this.resetSubscription) {
705
+ this.resetSubscription.unsubscribe();
706
+ }
707
+ if (this.overlaySubscription) {
708
+ this.overlaySubscription.unsubscribe();
709
+ }
710
+ }
711
+ toggleCustomFilterList() {
712
+ this.customFilterListVisible = !this.customFilterListVisible;
713
+ }
714
+ selectCustomFilter(option) {
715
+ this.customInputFilter = '';
716
+ this.customNumberFilter1 = undefined;
717
+ this.customNumberFilter2 = undefined;
718
+ this.customDateFilter = undefined;
719
+ this.customFilterListVisible = false;
720
+ this.selectedCustomFilter = option;
721
+ }
722
+ get isCustomCommonFilterSelected() {
723
+ return this.commonFilterOptions.some((list) => list.key == this.selectedCustomFilter?.key);
724
+ }
725
+ get isCustomStringFilterSelected() {
726
+ return this.stringFilterOptions.some((list) => list.key == this.selectedCustomFilter?.key);
727
+ }
728
+ get isCustomNumberFilterSelected() {
729
+ return this.numberFilterOptions.some((list) => list.key == this.selectedCustomFilter?.key);
730
+ }
731
+ get isCustomDateFilterSelected() {
732
+ return this.dateFilterOptions.some((list) => list.key == this.selectedCustomFilter?.key);
733
+ }
734
+ onClearCustomFilters() {
735
+ this.selectedCustomFilter = undefined;
736
+ this.customInputFilter = '';
737
+ this.customNumberFilter1 = undefined;
738
+ this.customNumberFilter2 = undefined;
739
+ this.customDateFilter = undefined;
740
+ }
741
+ onApplyCustomFilters() {
742
+ let appliedFilters = undefined;
743
+ if (this.isCustomCommonFilterSelected) {
744
+ appliedFilters = {
745
+ matchMode: this.selectedCustomFilter.key
746
+ };
747
+ }
748
+ else if (this.isCustomStringFilterSelected) {
749
+ appliedFilters = {
750
+ matchMode: this.selectedCustomFilter.key,
751
+ value: this.customInputFilter
752
+ };
753
+ }
754
+ else if (this.isCustomNumberFilterSelected) {
755
+ appliedFilters = {
756
+ matchMode: this.selectedCustomFilter.key
757
+ };
758
+ if (this.selectedCustomFilter.key === 'gtlt')
759
+ appliedFilters.value = { gt: this.customNumberFilter1, lt: this.customNumberFilter2 };
760
+ else
761
+ appliedFilters.value = this.customNumberFilter1;
762
+ }
763
+ else if (this.isCustomDateFilterSelected) {
764
+ appliedFilters = {
765
+ matchMode: this.selectedCustomFilter.key
766
+ };
767
+ if (this.selectedCustomFilter.key !== 'today')
768
+ appliedFilters.value = this.customDateFilter;
769
+ }
770
+ this.dt.filters[this.field] = appliedFilters;
771
+ this.dt._filter();
772
+ this.hide();
773
+ }
774
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColumnFilter, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i1.Table }, { token: i0.Renderer2 }, { token: i2.caxConfig }, { token: i2.OverlayService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
775
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: ColumnFilter, isStandalone: true, selector: "cax-columnFilter", inputs: { field: "field", type: "type", disabled: "disabled", display: "display", showMenu: ["showMenu", "showMenu", booleanAttribute], matchMode: "matchMode", operator: "operator", showOperator: ["showOperator", "showOperator", booleanAttribute], showClearButton: ["showClearButton", "showClearButton", booleanAttribute], showApplyButton: ["showApplyButton", "showApplyButton", booleanAttribute], showMatchModes: ["showMatchModes", "showMatchModes", booleanAttribute], showAddButton: ["showAddButton", "showAddButton", booleanAttribute], hideOnClear: ["hideOnClear", "hideOnClear", booleanAttribute], placeholder: "placeholder", matchModeOptions: "matchModeOptions", maxConstraints: ["maxConstraints", "maxConstraints", numberAttribute], minFractionDigits: ["minFractionDigits", "minFractionDigits", (value) => numberAttribute(value, null)], maxFractionDigits: ["maxFractionDigits", "maxFractionDigits", (value) => numberAttribute(value, null)], prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: ["useGrouping", "useGrouping", booleanAttribute], showButtons: ["showButtons", "showButtons", booleanAttribute], ariaLabel: "ariaLabel" }, outputs: { onShow: "onShow", onHide: "onHide" }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "icon", first: true, predicate: ["icon"], descendants: true }, { propertyName: "clearButtonViewChild", first: true, predicate: ["clearBtn"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"cax-column-filter\"\r\n [ngClass]=\"{ 'cax-column-filter-row': display === 'row' && dt.filterType === 'default', 'cax-column-filter-menu': display === 'menu' && dt.filterType === 'default', 'cax-column-filter-custom': dt.filterType === 'custom' }\"\r\n>\r\n <cax-columnFilterFormElement\r\n *ngIf=\"display === 'row' && dt.filterType === 'default'\"\r\n class=\"cax-fluid\"\r\n [type]=\"type\"\r\n [field]=\"field\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [filterConstraint]=\"dt.filters[field]\"\r\n [filterTemplate]=\"filterTemplate\"\r\n [placeholder]=\"placeholder\"\r\n [minFractionDigits]=\"minFractionDigits\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n [prefix]=\"prefix\"\r\n [suffix]=\"suffix\"\r\n [locale]=\"locale\"\r\n [localeMatcher]=\"localeMatcher\"\r\n [currency]=\"currency\"\r\n [currencyDisplay]=\"currencyDisplay\"\r\n [useGrouping]=\"useGrouping\"\r\n [showButtons]=\"showButtons\"\r\n ></cax-columnFilterFormElement>\r\n <button\r\n #icon\r\n *ngIf=\"showMenuButton\"\r\n type=\"button\"\r\n class=\"cax-column-filter-menu-button cax-link\"\r\n aria-haspopup=\"true\"\r\n [attr.aria-label]=\"filterMenuButtonAriaLabel\"\r\n [attr.aria-controls]=\"overlayVisible ? overlayId : null\"\r\n [attr.aria-expanded]=\"overlayVisible ?? false\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"{ 'cax-column-filter-menu-button-open': overlayVisible, 'cax-column-filter-menu-button-active': hasFilter() }\"\r\n (click)=\"toggleMenu()\"\r\n (keydown)=\"onToggleButtonKeyDown($event)\"\r\n >\r\n <i *ngIf=\"!filterIconTemplate\" [styleClass]=\"'pi-filter-icon'\" class=\"cax cax-filter\"></i>\r\n <span class=\"pi-filter-icon\" *ngIf=\"filterIconTemplate\">\r\n <ng-template *ngTemplateOutlet=\"filterIconTemplate\"></ng-template>\r\n </span>\r\n </button>\r\n <button\r\n #icon\r\n *ngIf=\"showClearButton && display === 'row' && dt.filterType === 'default'\"\r\n [ngClass]=\"{ 'cax-hidden-space': !hasRowFilter() }\"\r\n type=\"button\"\r\n class=\"cax-column-filter-clear-button cax-link\"\r\n (click)=\"clearFilter()\"\r\n [attr.aria-label]=\"clearButtonLabel\"\r\n >\r\n <FilterSlashIcon *ngIf=\"!clearFilterIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"clearFilterIconTemplate\"></ng-template>\r\n </button>\r\n <div\r\n *ngIf=\"showMenu && overlayVisible\"\r\n [ngClass]=\"{ 'cax-column-filter-overlay cax-component cax-fluid': true, 'cax-column-filter-overlay-menu': display === 'menu' && dt.filterType === 'default' , 'cax-column-filter-overlay-custom': dt.filterType === 'custom' }\"\r\n [id]=\"overlayId\"\r\n [attr.aria-modal]=\"true\"\r\n role=\"dialog\"\r\n (click)=\"onContentClick()\"\r\n [@overlayAnimation]=\"'visible'\"\r\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\r\n (@overlayAnimation.done)=\"onOverlayAnimationEnd($event)\"\r\n (keydown.escape)=\"onEscape()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: field }\"></ng-container>\r\n <ul *ngIf=\"display === 'row' && dt.filterType === 'default'; else menu\" class=\"cax-column-filter-row-items\">\r\n <li\r\n class=\"cax-column-filter-row-item\"\r\n *ngFor=\"let matchMode of matchModes; let i = index\"\r\n (click)=\"onRowMatchModeChange(matchMode.value)\"\r\n (keydown)=\"onRowMatchModeKeyDown($event)\"\r\n (keydown.enter)=\"this.onRowMatchModeChange(matchMode.value)\"\r\n [ngClass]=\"{ 'cax-highlight': isRowMatchModeSelected(matchMode.value) }\"\r\n [attr.tabindex]=\"i === 0 ? '0' : null\"\r\n >\r\n {{ matchMode.label }}\r\n </li>\r\n <li class=\"cax-column-filter-separator\"></li>\r\n <li class=\"cax-column-filter-row-item\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">{{ noFilterLabel }}</li>\r\n </ul>\r\n <ng-template #menu>\r\n <ng-container *ngIf=\"display === 'menu' && dt.filterType === 'default'; else custom\">\r\n <div class=\"cax-column-filter-operator\" *ngIf=\"isShowOperator\">\r\n <cax-dropdown [options]=\"operatorOptions\" [ngModel]=\"operator\" (ngModelChange)=\"onOperatorChange($event)\" styleClass=\"cax-column-filter-operator-dropdown\"></cax-dropdown>\r\n </div>\r\n <div class=\"cax-column-filter-constraints\">\r\n <div *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\" class=\"cax-column-filter-constraint\">\r\n <cax-dropdown\r\n *ngIf=\"showMatchModes && matchModes\"\r\n [options]=\"matchModes\"\r\n [ngModel]=\"fieldConstraint.matchMode\"\r\n (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\"\r\n styleClass=\"cax-column-filter-matchmode-dropdown\"\r\n ></cax-dropdown>\r\n <cax-columnFilterFormElement\r\n [type]=\"type\"\r\n [field]=\"field\"\r\n [filterConstraint]=\"fieldConstraint\"\r\n [filterTemplate]=\"filterTemplate\"\r\n [placeholder]=\"placeholder\"\r\n [minFractionDigits]=\"minFractionDigits\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n [prefix]=\"prefix\"\r\n [suffix]=\"suffix\"\r\n [locale]=\"locale\"\r\n [localeMatcher]=\"localeMatcher\"\r\n [currency]=\"currency\"\r\n [currencyDisplay]=\"currencyDisplay\"\r\n [useGrouping]=\"useGrouping\"\r\n ></cax-columnFilterFormElement>\r\n <div>\r\n <button\r\n *ngIf=\"showRemoveIcon\"\r\n type=\"button\"\r\n caxButton\r\n class=\"cax-column-filter-remove-button cax-button-text cax-button-danger cax-button-sm\"\r\n (click)=\"removeConstraint(fieldConstraint)\"\r\n pRipple\r\n [attr.aria-label]=\"removeRuleButtonLabel\"\r\n [label]=\"removeRuleButtonLabel\"\r\n >\r\n <TrashIcon *ngIf=\"!removeRuleIconTemplate\" [styleClass]=\"'cax-button-icon-left'\" />\r\n <ng-template *ngTemplateOutlet=\"removeRuleIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cax-column-filter-add-rule\" *ngIf=\"isShowAddConstraint\">\r\n <button type=\"button\" caxButton [label]=\"addRuleButtonLabel\" [attr.aria-label]=\"addRuleButtonLabel\" class=\"cax-column-filter-add-button cax-button-text cax-button-sm\" (click)=\"addConstraint()\" pRipple>\r\n <PlusIcon *ngIf=\"!addRuleIconTemplate\" [styleClass]=\"'cax-button-icon-left'\" />\r\n <ng-template *ngTemplateOutlet=\"addRuleIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-column-filter-buttonbar\" *ngIf=\"showButtons\">\r\n <button\r\n #clearBtn\r\n *ngIf=\"showClearButton\"\r\n type=\"button\"\r\n caxButton\r\n class=\"cax-button-outlined cax-button-danger cax-button-sm\"\r\n (click)=\"clearFilter()\"\r\n [attr.aria-label]=\"clearButtonLabel\"\r\n [label]=\"clearButtonLabel\"\r\n pRipple\r\n ></button>\r\n <button *ngIf=\"showApplyButton\" type=\"button\" caxButton (click)=\"applyFilter()\" class=\"cax-button-sm\" [label]=\"applyButtonLabel\" pRipple [attr.aria-label]=\"applyButtonLabel\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #custom>\r\n <div class=\"cax-column-filter-custom-container\">\r\n <div>\r\n <div class=\"cax-column-filter-custom-list-header\" (click)=\"toggleCustomFilterList()\">\r\n <span *ngIf=\"!selectedCustomFilter?.label?.length\">Select a condition</span>\r\n <div *ngIf=\"selectedCustomFilter\">{{ selectedCustomFilter.label }}</div>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <div class=\"cax-column-filter-custom-list\" *ngIf=\"customFilterListVisible\">\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of commonFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n <cax-divider [style]=\"{margin: 0}\"></cax-divider>\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of stringFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n <cax-divider [style]=\"{margin: 0}\"></cax-divider>\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of numberFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n <cax-divider [style]=\"{margin: 0}\"></cax-divider>\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of dateFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isCustomStringFilterSelected\">\r\n <cax-inputtext [(ngModel)]=\"customInputFilter\" [clearIcon]=\"false\"></cax-inputtext>\r\n </div>\r\n <div *ngIf=\"isCustomNumberFilterSelected\" style=\"display: flex; gap: 12px\">\r\n <cax-inputNumber [(ngModel)]=\"customNumberFilter1\"></cax-inputNumber>\r\n <cax-inputNumber [(ngModel)]=\"customNumberFilter2\" *ngIf=\"selectedCustomFilter.key === 'gtlt'\"></cax-inputNumber>\r\n </div>\r\n <div *ngIf=\"isCustomDateFilterSelected && selectedCustomFilter.key !== 'today'\">\r\n <cax-calendar [(ngModel)]=\"customDateFilter\" [showIcon]=\"true\" iconDisplay=\"input\"></cax-calendar>\r\n </div>\r\n <div class=\"cax-column-filter-custom-buttons\">\r\n <cax-button (click)=\"onClearCustomFilters()\" [disabled]=\"!selectedCustomFilter\" [label]=\"'Clear'\" [severity]=\"'danger'\" outlined=\"true\"></cax-button>\r\n <cax-button (click)=\"onApplyCustomFilters()\" [label]=\"'Apply'\"></cax-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: field }\"></ng-container>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i4.Dropdown, selector: "cax-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "labelText", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[caxButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "link"] }, { kind: "component", type: i6.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: FilterSlashIcon, selector: "FilterSlashIcon" }, { kind: "component", type: PlusIcon, selector: "PlusIcon" }, { kind: "component", type: TrashIcon, selector: "TrashIcon" }, { kind: "component", type: ColumnFilterFormElement, selector: "cax-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "ariaLabel"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "cax-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "component", type: i8.InputTextComponent, selector: "cax-inputtext", inputs: ["value", "placeholder", "disabled", "maxlength", "successText", "errorText", "showLabel", "leftIcon", "rightIcon", "rightIconClickable", "clearIcon", "label", "iconPath", "disabledIcon", "showIcon", "iconClass", "leftIconClass", "rightIconClass", "invalid", "required", "style", "size", "styleClass"], outputs: ["valueChange", "rightIconClick"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i9.InputNumber, selector: "cax-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefixIcon", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i10.Calendar, selector: "cax-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "labelText", "timeSeparator", "leftIcon", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onInlineSaved", "onInlineCancelled", "onShow"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])], encapsulation: i0.ViewEncapsulation.None });
776
+ }
777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ColumnFilter, decorators: [{
778
+ type: Component,
779
+ args: [{ selector: 'cax-columnFilter', animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])], encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, DropdownModule, FormsModule, ButtonModule, FilterSlashIcon, PlusIcon, TrashIcon, ColumnFilterFormElement, RadioButtonModule, DividerModule, InputTextModule, InputNumberModule, CalendarModule], host: {
780
+ class: 'cax-element'
781
+ }, template: "<div\r\n class=\"cax-column-filter\"\r\n [ngClass]=\"{ 'cax-column-filter-row': display === 'row' && dt.filterType === 'default', 'cax-column-filter-menu': display === 'menu' && dt.filterType === 'default', 'cax-column-filter-custom': dt.filterType === 'custom' }\"\r\n>\r\n <cax-columnFilterFormElement\r\n *ngIf=\"display === 'row' && dt.filterType === 'default'\"\r\n class=\"cax-fluid\"\r\n [type]=\"type\"\r\n [field]=\"field\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [filterConstraint]=\"dt.filters[field]\"\r\n [filterTemplate]=\"filterTemplate\"\r\n [placeholder]=\"placeholder\"\r\n [minFractionDigits]=\"minFractionDigits\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n [prefix]=\"prefix\"\r\n [suffix]=\"suffix\"\r\n [locale]=\"locale\"\r\n [localeMatcher]=\"localeMatcher\"\r\n [currency]=\"currency\"\r\n [currencyDisplay]=\"currencyDisplay\"\r\n [useGrouping]=\"useGrouping\"\r\n [showButtons]=\"showButtons\"\r\n ></cax-columnFilterFormElement>\r\n <button\r\n #icon\r\n *ngIf=\"showMenuButton\"\r\n type=\"button\"\r\n class=\"cax-column-filter-menu-button cax-link\"\r\n aria-haspopup=\"true\"\r\n [attr.aria-label]=\"filterMenuButtonAriaLabel\"\r\n [attr.aria-controls]=\"overlayVisible ? overlayId : null\"\r\n [attr.aria-expanded]=\"overlayVisible ?? false\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"{ 'cax-column-filter-menu-button-open': overlayVisible, 'cax-column-filter-menu-button-active': hasFilter() }\"\r\n (click)=\"toggleMenu()\"\r\n (keydown)=\"onToggleButtonKeyDown($event)\"\r\n >\r\n <i *ngIf=\"!filterIconTemplate\" [styleClass]=\"'pi-filter-icon'\" class=\"cax cax-filter\"></i>\r\n <span class=\"pi-filter-icon\" *ngIf=\"filterIconTemplate\">\r\n <ng-template *ngTemplateOutlet=\"filterIconTemplate\"></ng-template>\r\n </span>\r\n </button>\r\n <button\r\n #icon\r\n *ngIf=\"showClearButton && display === 'row' && dt.filterType === 'default'\"\r\n [ngClass]=\"{ 'cax-hidden-space': !hasRowFilter() }\"\r\n type=\"button\"\r\n class=\"cax-column-filter-clear-button cax-link\"\r\n (click)=\"clearFilter()\"\r\n [attr.aria-label]=\"clearButtonLabel\"\r\n >\r\n <FilterSlashIcon *ngIf=\"!clearFilterIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"clearFilterIconTemplate\"></ng-template>\r\n </button>\r\n <div\r\n *ngIf=\"showMenu && overlayVisible\"\r\n [ngClass]=\"{ 'cax-column-filter-overlay cax-component cax-fluid': true, 'cax-column-filter-overlay-menu': display === 'menu' && dt.filterType === 'default' , 'cax-column-filter-overlay-custom': dt.filterType === 'custom' }\"\r\n [id]=\"overlayId\"\r\n [attr.aria-modal]=\"true\"\r\n role=\"dialog\"\r\n (click)=\"onContentClick()\"\r\n [@overlayAnimation]=\"'visible'\"\r\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\r\n (@overlayAnimation.done)=\"onOverlayAnimationEnd($event)\"\r\n (keydown.escape)=\"onEscape()\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: field }\"></ng-container>\r\n <ul *ngIf=\"display === 'row' && dt.filterType === 'default'; else menu\" class=\"cax-column-filter-row-items\">\r\n <li\r\n class=\"cax-column-filter-row-item\"\r\n *ngFor=\"let matchMode of matchModes; let i = index\"\r\n (click)=\"onRowMatchModeChange(matchMode.value)\"\r\n (keydown)=\"onRowMatchModeKeyDown($event)\"\r\n (keydown.enter)=\"this.onRowMatchModeChange(matchMode.value)\"\r\n [ngClass]=\"{ 'cax-highlight': isRowMatchModeSelected(matchMode.value) }\"\r\n [attr.tabindex]=\"i === 0 ? '0' : null\"\r\n >\r\n {{ matchMode.label }}\r\n </li>\r\n <li class=\"cax-column-filter-separator\"></li>\r\n <li class=\"cax-column-filter-row-item\" (click)=\"onRowClearItemClick()\" (keydown)=\"onRowMatchModeKeyDown($event)\" (keydown.enter)=\"onRowClearItemClick()\">{{ noFilterLabel }}</li>\r\n </ul>\r\n <ng-template #menu>\r\n <ng-container *ngIf=\"display === 'menu' && dt.filterType === 'default'; else custom\">\r\n <div class=\"cax-column-filter-operator\" *ngIf=\"isShowOperator\">\r\n <cax-dropdown [options]=\"operatorOptions\" [ngModel]=\"operator\" (ngModelChange)=\"onOperatorChange($event)\" styleClass=\"cax-column-filter-operator-dropdown\"></cax-dropdown>\r\n </div>\r\n <div class=\"cax-column-filter-constraints\">\r\n <div *ngFor=\"let fieldConstraint of fieldConstraints; let i = index\" class=\"cax-column-filter-constraint\">\r\n <cax-dropdown\r\n *ngIf=\"showMatchModes && matchModes\"\r\n [options]=\"matchModes\"\r\n [ngModel]=\"fieldConstraint.matchMode\"\r\n (ngModelChange)=\"onMenuMatchModeChange($event, fieldConstraint)\"\r\n styleClass=\"cax-column-filter-matchmode-dropdown\"\r\n ></cax-dropdown>\r\n <cax-columnFilterFormElement\r\n [type]=\"type\"\r\n [field]=\"field\"\r\n [filterConstraint]=\"fieldConstraint\"\r\n [filterTemplate]=\"filterTemplate\"\r\n [placeholder]=\"placeholder\"\r\n [minFractionDigits]=\"minFractionDigits\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n [prefix]=\"prefix\"\r\n [suffix]=\"suffix\"\r\n [locale]=\"locale\"\r\n [localeMatcher]=\"localeMatcher\"\r\n [currency]=\"currency\"\r\n [currencyDisplay]=\"currencyDisplay\"\r\n [useGrouping]=\"useGrouping\"\r\n ></cax-columnFilterFormElement>\r\n <div>\r\n <button\r\n *ngIf=\"showRemoveIcon\"\r\n type=\"button\"\r\n caxButton\r\n class=\"cax-column-filter-remove-button cax-button-text cax-button-danger cax-button-sm\"\r\n (click)=\"removeConstraint(fieldConstraint)\"\r\n pRipple\r\n [attr.aria-label]=\"removeRuleButtonLabel\"\r\n [label]=\"removeRuleButtonLabel\"\r\n >\r\n <TrashIcon *ngIf=\"!removeRuleIconTemplate\" [styleClass]=\"'cax-button-icon-left'\" />\r\n <ng-template *ngTemplateOutlet=\"removeRuleIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cax-column-filter-add-rule\" *ngIf=\"isShowAddConstraint\">\r\n <button type=\"button\" caxButton [label]=\"addRuleButtonLabel\" [attr.aria-label]=\"addRuleButtonLabel\" class=\"cax-column-filter-add-button cax-button-text cax-button-sm\" (click)=\"addConstraint()\" pRipple>\r\n <PlusIcon *ngIf=\"!addRuleIconTemplate\" [styleClass]=\"'cax-button-icon-left'\" />\r\n <ng-template *ngTemplateOutlet=\"addRuleIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-column-filter-buttonbar\" *ngIf=\"showButtons\">\r\n <button\r\n #clearBtn\r\n *ngIf=\"showClearButton\"\r\n type=\"button\"\r\n caxButton\r\n class=\"cax-button-outlined cax-button-danger cax-button-sm\"\r\n (click)=\"clearFilter()\"\r\n [attr.aria-label]=\"clearButtonLabel\"\r\n [label]=\"clearButtonLabel\"\r\n pRipple\r\n ></button>\r\n <button *ngIf=\"showApplyButton\" type=\"button\" caxButton (click)=\"applyFilter()\" class=\"cax-button-sm\" [label]=\"applyButtonLabel\" pRipple [attr.aria-label]=\"applyButtonLabel\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #custom>\r\n <div class=\"cax-column-filter-custom-container\">\r\n <div>\r\n <div class=\"cax-column-filter-custom-list-header\" (click)=\"toggleCustomFilterList()\">\r\n <span *ngIf=\"!selectedCustomFilter?.label?.length\">Select a condition</span>\r\n <div *ngIf=\"selectedCustomFilter\">{{ selectedCustomFilter.label }}</div>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <div class=\"cax-column-filter-custom-list\" *ngIf=\"customFilterListVisible\">\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of commonFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n <cax-divider [style]=\"{margin: 0}\"></cax-divider>\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of stringFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n <cax-divider [style]=\"{margin: 0}\"></cax-divider>\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of numberFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n <cax-divider [style]=\"{margin: 0}\"></cax-divider>\r\n <div class=\"cax-column-filter-custom-list-item\" *ngFor=\"let opt of dateFilterOptions\" (click)=\"selectCustomFilter(opt)\">\r\n <span>{{ opt.label }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isCustomStringFilterSelected\">\r\n <cax-inputtext [(ngModel)]=\"customInputFilter\" [clearIcon]=\"false\"></cax-inputtext>\r\n </div>\r\n <div *ngIf=\"isCustomNumberFilterSelected\" style=\"display: flex; gap: 12px\">\r\n <cax-inputNumber [(ngModel)]=\"customNumberFilter1\"></cax-inputNumber>\r\n <cax-inputNumber [(ngModel)]=\"customNumberFilter2\" *ngIf=\"selectedCustomFilter.key === 'gtlt'\"></cax-inputNumber>\r\n </div>\r\n <div *ngIf=\"isCustomDateFilterSelected && selectedCustomFilter.key !== 'today'\">\r\n <cax-calendar [(ngModel)]=\"customDateFilter\" [showIcon]=\"true\" iconDisplay=\"input\"></cax-calendar>\r\n </div>\r\n <div class=\"cax-column-filter-custom-buttons\">\r\n <cax-button (click)=\"onClearCustomFilters()\" [disabled]=\"!selectedCustomFilter\" [label]=\"'Clear'\" [severity]=\"'danger'\" outlined=\"true\"></cax-button>\r\n <cax-button (click)=\"onApplyCustomFilters()\" [label]=\"'Apply'\"></cax-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: field }\"></ng-container>\r\n </div>\r\n</div>\r\n" }]
782
+ }], ctorParameters: () => [{ type: Document, decorators: [{
783
+ type: Inject,
784
+ args: [DOCUMENT]
785
+ }] }, { type: i0.ElementRef }, { type: i1.Table }, { type: i0.Renderer2 }, { type: i2.caxConfig }, { type: i2.OverlayService }, { type: i0.ChangeDetectorRef }], propDecorators: { field: [{
786
+ type: Input
787
+ }], type: [{
788
+ type: Input
789
+ }], disabled: [{
790
+ type: Input
791
+ }], display: [{
792
+ type: Input
793
+ }], showMenu: [{
794
+ type: Input,
795
+ args: [{ transform: booleanAttribute }]
796
+ }], matchMode: [{
797
+ type: Input
798
+ }], operator: [{
799
+ type: Input
800
+ }], showOperator: [{
801
+ type: Input,
802
+ args: [{ transform: booleanAttribute }]
803
+ }], showClearButton: [{
804
+ type: Input,
805
+ args: [{ transform: booleanAttribute }]
806
+ }], showApplyButton: [{
807
+ type: Input,
808
+ args: [{ transform: booleanAttribute }]
809
+ }], showMatchModes: [{
810
+ type: Input,
811
+ args: [{ transform: booleanAttribute }]
812
+ }], showAddButton: [{
813
+ type: Input,
814
+ args: [{ transform: booleanAttribute }]
815
+ }], hideOnClear: [{
816
+ type: Input,
817
+ args: [{ transform: booleanAttribute }]
818
+ }], placeholder: [{
819
+ type: Input
820
+ }], matchModeOptions: [{
821
+ type: Input
822
+ }], maxConstraints: [{
823
+ type: Input,
824
+ args: [{ transform: numberAttribute }]
825
+ }], minFractionDigits: [{
826
+ type: Input,
827
+ args: [{ transform: (value) => numberAttribute(value, null) }]
828
+ }], maxFractionDigits: [{
829
+ type: Input,
830
+ args: [{ transform: (value) => numberAttribute(value, null) }]
831
+ }], prefix: [{
832
+ type: Input
833
+ }], suffix: [{
834
+ type: Input
835
+ }], locale: [{
836
+ type: Input
837
+ }], localeMatcher: [{
838
+ type: Input
839
+ }], currency: [{
840
+ type: Input
841
+ }], currencyDisplay: [{
842
+ type: Input
843
+ }], useGrouping: [{
844
+ type: Input,
845
+ args: [{ transform: booleanAttribute }]
846
+ }], showButtons: [{
847
+ type: Input,
848
+ args: [{ transform: booleanAttribute }]
849
+ }], ariaLabel: [{
850
+ type: Input
851
+ }], onShow: [{
852
+ type: Output
853
+ }], onHide: [{
854
+ type: Output
855
+ }], icon: [{
856
+ type: ViewChild,
857
+ args: ['icon']
858
+ }], clearButtonViewChild: [{
859
+ type: ViewChild,
860
+ args: ['clearBtn']
861
+ }], templates: [{
862
+ type: ContentChildren,
863
+ args: [CaxTemplate]
864
+ }] } });
865
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFvQixLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLGVBQWUsRUFBMEIsTUFBTSxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUNyUCxPQUFPLEVBQUUsY0FBYyxFQUFjLFdBQVcsRUFBa0IsZUFBZSxFQUE2QixlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3SixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxT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S0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUtFLGlCQUFpQjtzQkFBeEYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFLN0QsTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS2tDLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS0UsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLN0IsU0FBUztzQkFBakIsS0FBSztnQkFNSSxNQUFNO3NCQUFmLE1BQU07Z0JBTUcsTUFBTTtzQkFBZixNQUFNO2dCQUVZLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFFTSxvQkFBb0I7c0JBQTFDLFNBQVM7dUJBQUMsVUFBVTtnQkFFUyxTQUFTO3NCQUF0QyxlQUFlO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmlnZ2VyLCB0cmFuc2l0aW9uLCBzdHlsZSwgYW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJDb250ZW50SW5pdCwgSW5wdXQsIGJvb2xlYW5BdHRyaWJ1dGUsIG51bWJlckF0dHJpYnV0ZSwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBJbmplY3QsIFJlbmRlcmVyMiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlck9wZXJhdG9yLCBTZWxlY3RJdGVtLCBDYXhUZW1wbGF0ZSwgRmlsdGVyTWV0YWRhdGEsIFRyYW5zbGF0aW9uS2V5cywgY2F4Q29uZmlnLCBPdmVybGF5U2VydmljZSwgRmlsdGVyTWF0Y2hNb2RlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vYXBpJztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlTY3JvbGxIYW5kbGVyLCBEb21IYW5kbGVyIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vZG9tJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vLi4vdGFibGUnO1xuaW1wb3J0IHsgTnVsbGFibGUsIFZvaWRMaXN0ZW5lciB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgVW5pcXVlQ29tcG9uZW50SWQsIFpJbmRleFV0aWxzIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vdXRpbHMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2x1bW5GaWx0ZXJGb3JtRWxlbWVudCB9IGZyb20gJy4uL2NvbHVtbi1maWx0ZXItZm9ybS1lbGVtZW50L2NvbHVtbi1maWx0ZXItZm9ybS1lbGVtZW50JztcbmltcG9ydCB7IEZpbHRlclNsYXNoSWNvbiB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2ljb25zL2ZpbHRlcnNsYXNoJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vZHJvcGRvd24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vYnV0dG9uJztcbmltcG9ydCB7IFRyYXNoSWNvbiB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2ljb25zL3RyYXNoJztcbmltcG9ydCB7IFBsdXNJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvcGx1cyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2RpdmlkZXInO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaW5wdXR0ZXh0JztcbmltcG9ydCB7IElucHV0TnVtYmVyTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaW5wdXRudW1iZXInO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9jYWxlbmRhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2F4LWNvbHVtbkZpbHRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1maWx0ZXIuaHRtbCcsXG4gICAgYW5pbWF0aW9uczogW3RyaWdnZXIoJ292ZXJsYXlBbmltYXRpb24nLCBbdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGVZKDAuOCknIH0pLCBhbmltYXRlKCcuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyldKSwgdHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUoJy4xcyBsaW5lYXInLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpXSldKV0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyb3Bkb3duTW9kdWxlLCBGb3Jtc01vZHVsZSwgQnV0dG9uTW9kdWxlLCBGaWx0ZXJTbGFzaEljb24sIFBsdXNJY29uLCBUcmFzaEljb24sIENvbHVtbkZpbHRlckZvcm1FbGVtZW50LCBSYWRpb0J1dHRvbk1vZHVsZSwgRGl2aWRlck1vZHVsZSwgSW5wdXRUZXh0TW9kdWxlLCBJbnB1dE51bWJlck1vZHVsZSwgQ2FsZW5kYXJNb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdjYXgtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbkZpbHRlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHJlcHJlc2VudGVkIGJ5IHRoZSBjb2x1bW4uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUeXBlIG9mIHRoZSBpbnB1dC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgPSAndGV4dCc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgZGlzcGxheS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkaXNwbGF5OiBzdHJpbmcgPSAnbWVudSc7XG4gICAgLyoqXG4gICAgICogRGVjaWRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgZmlsdGVyIG1lbnUgcG9wdXAuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgbWF0Y2ggbW9kZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtYXRjaE1vZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgb3BlcmF0b3IuXG4gICAgICogQGRlZmF1bHRWYWx1ZSAnQU5EJ1xuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG9wZXJhdG9yOiBzdHJpbmcgPSBGaWx0ZXJPcGVyYXRvci5BTkQ7XG4gICAgLyoqXG4gICAgICogRGVjaWRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgZmlsdGVyIG9wZXJhdG9yLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93T3BlcmF0b3I6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIERlY2lkZXMgd2hldGhlciB0byBkaXNwbGF5IGNsZWFyIGZpbHRlciBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dDbGVhckJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRGVjaWRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgYXBwbHkgZmlsdGVyIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0FwcGx5QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBEZWNpZGVzIHdoZXRoZXIgdG8gZGlzcGxheSBmaWx0ZXIgbWF0Y2ggbW9kZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dNYXRjaE1vZGVzOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBEZWNpZGVzIHdoZXRoZXIgdG8gZGlzcGxheSBhZGQgZmlsdGVyIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0FkZEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRGVjaWRlcyB3aGV0aGVyIHRvIGNsb3NlIHBvcHVwIG9uIGNsZWFyIGJ1dHRvbiBjbGljay5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGlkZU9uQ2xlYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgcGxhY2Vob2xkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgbWF0Y2ggbW9kZSBvcHRpb25zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1hdGNoTW9kZU9wdGlvbnM6IFNlbGVjdEl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIGNvbnN0cmFpbnRzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG1heENvbnN0cmFpbnRzOiBudW1iZXIgPSAyO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgbWluaW11bSBmcmFjdGlvbiBvZiBkaWdpdHMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgbnVsbCkgfSkgbWluRnJhY3Rpb25EaWdpdHM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIG1heGltdW0gZnJhY3Rpb24gb2YgZGlnaXRzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIG51bGwpIH0pIG1heEZyYWN0aW9uRGlnaXRzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBwcmVmaXggb2YgdGhlIGZpbHRlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHN1ZmZpeCBvZiB0aGUgZmlsdGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmlsdGVyIGxvY2FsZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGZpbHRlciBsb2NhbGUgbWF0Y2hlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsb2NhbGVNYXRjaGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBjdXJyZW5jeSBpbnB1dC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjdXJyZW5jeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGRpc3BsYXkgb2YgdGhlIGN1cnJlbmN5IGlucHV0LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGN1cnJlbmN5RGlzcGxheTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgaWYgZmlsdGVyIGdyb3VwaW5nIHdpbGwgYmUgZW5hYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdXNlR3JvdXBpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHZpc2liaWxpdHkgb2YgYnV0dG9ucy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0J1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGFyaWEtbGFiZWwgb2YgdGhlIGZvcm0gZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugb24gb3ZlcmxheSBpcyBzaG93bi5cbiAgICAgKiBAcGFyYW0ge0FuaW1hdGlvbkV2ZW50fSBvcmlnaW5hbEV2ZW50IC0gYW5pbWF0aW9uIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblNob3c6IEV2ZW50RW1pdHRlcjx7IG9yaWdpbmFsRXZlbnQ6IEFuaW1hdGlvbkV2ZW50IH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IG9yaWdpbmFsRXZlbnQ6IEFuaW1hdGlvbkV2ZW50IH0+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIG92ZXJsYXkgaXMgaGlkZGVuLlxuICAgICAqIEBwYXJhbSB7QW5pbWF0aW9uRXZlbnR9IG9yaWdpbmFsRXZlbnQgLSBhbmltYXRpb24gZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uSGlkZTogRXZlbnRFbWl0dGVyPHsgb3JpZ2luYWxFdmVudDogQW5pbWF0aW9uRXZlbnQgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgb3JpZ2luYWxFdmVudDogQW5pbWF0aW9uRXZlbnQgfT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ljb24nKSBpY29uOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NsZWFyQnRuJykgY2xlYXJCdXR0b25WaWV3Q2hpbGQ6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihDYXhUZW1wbGF0ZSkgdGVtcGxhdGVzOiBOdWxsYWJsZTxRdWVyeUxpc3Q8YW55Pj47XG5cbiAgICBvdmVybGF5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICBoZWFkZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBmaWx0ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBmb290ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBmaWx0ZXJJY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgcmVtb3ZlUnVsZUljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBhZGRSdWxlSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGNsZWFyRmlsdGVySWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIG9wZXJhdG9yT3B0aW9uczogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBvdmVybGF5VmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIG92ZXJsYXk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuICAgIHNjcm9sbEhhbmRsZXI6IENvbm5lY3RlZE92ZXJsYXlTY3JvbGxIYW5kbGVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICAgIGRvY3VtZW50Q2xpY2tMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgZG9jdW1lbnRSZXNpemVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgbWF0Y2hNb2RlczogU2VsZWN0SXRlbVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgdHJhbnNsYXRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICAgIHJlc2V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICBzZWxmQ2xpY2s6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBvdmVybGF5RXZlbnRMaXN0ZW5lcjogYW55O1xuXG4gICAgcHJpdmF0ZSB3aW5kb3c6IFdpbmRvdztcblxuICAgIG92ZXJsYXlJZDogYW55O1xuXG4gICAgZ2V0IGZpZWxkQ29uc3RyYWludHMoKTogRmlsdGVyTWV0YWRhdGFbXSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kdC5maWx0ZXJzID8gPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBzaG93UmVtb3ZlSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRDb25zdHJhaW50cyA/IHRoaXMuZmllbGRDb25zdHJhaW50cy5sZW5ndGggPiAxIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dNZW51QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93TWVudSAmJiAodGhpcy5kaXNwbGF5ID09PSAncm93JyA/IHRoaXMudHlwZSAhPT0gJ2Jvb2xlYW4nIDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2hvd09wZXJhdG9yKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93T3BlcmF0b3IgJiYgdGhpcy50eXBlICE9PSAnYm9vbGVhbic7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2hvd0FkZENvbnN0cmFpbnQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93QWRkQnV0dG9uICYmIHRoaXMudHlwZSAhPT0gJ2Jvb2xlYW4nICYmIHRoaXMuZmllbGRDb25zdHJhaW50cyAmJiB0aGlzLmZpZWxkQ29uc3RyYWludHMubGVuZ3RoIDwgdGhpcy5tYXhDb25zdHJhaW50cztcbiAgICB9XG5cbiAgICBnZXQgc2hvd01lbnVCdXR0b25MYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5TSE9XX0ZJTFRFUl9NRU5VKTtcbiAgICB9XG5cbiAgICBnZXQgYXBwbHlCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkFQUExZKTtcbiAgICB9XG5cbiAgICBnZXQgY2xlYXJCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkNMRUFSKTtcbiAgICB9XG5cbiAgICBnZXQgYWRkUnVsZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihUcmFuc2xhdGlvbktleXMuQUREX1JVTEUpO1xuICAgIH1cblxuICAgIGdldCByZW1vdmVSdWxlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5SRU1PVkVfUlVMRSk7XG4gICAgfVxuXG4gICAgZ2V0IG5vRmlsdGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5OT19GSUxURVIpO1xuICAgIH1cblxuICAgIGdldCBmaWx0ZXJNZW51QnV0dG9uQXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24gPyAodGhpcy5vdmVybGF5VmlzaWJsZSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEuaGlkZUZpbHRlck1lbnUgOiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLnNob3dGaWx0ZXJNZW51KSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgcmVtb3ZlUnVsZUJ1dHRvbkFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24ucmVtb3ZlUnVsZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyT3BlcmF0b3JBcmlhTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbiA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEuZmlsdGVyT3BlcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGZpbHRlckNvbnN0cmFpbnRBcmlhTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbiA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEuZmlsdGVyQ29uc3RyYWludCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjdXN0b21GaWx0ZXJMaXN0VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgc2VsZWN0ZWRDdXN0b21GaWx0ZXI6IGFueTtcblxuICAgIGNvbW1vbkZpbHRlck9wdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnSXMgZW1wdHknLFxuICAgICAgICAgICAga2V5OiAnZW1wdHknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnSXMgZmlsbGVkJyxcbiAgICAgICAgICAgIGtleTogJ2ZpbGxlZCdcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBzdHJpbmdGaWx0ZXJPcHRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0NvbnRhaW5zJyxcbiAgICAgICAgICAgIGtleTogJ2NvbnRhaW5zJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0RvZXMgbm90IGNvbnRhaW4nLFxuICAgICAgICAgICAga2V5OiAnZG9lcyBub3QgY29udGFpbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdJcyBleGFjdGx5JyxcbiAgICAgICAgICAgIGtleTogJ2V4YWN0bHknXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgbnVtYmVyRmlsdGVyT3B0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdHcmVhdGVyIHRoYW4nLFxuICAgICAgICAgICAga2V5OiAnZ3QnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnTGVzcyB0aGFuJyxcbiAgICAgICAgICAgIGtleTogJ2x0J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICAgICAgICBrZXk6ICdndGUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnTGVzcyB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgICAgICAgIGtleTogJ2x0ZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdHcmVhdGVyIHRoYW4gYW5kIGxlc3MgdGhhbicsXG4gICAgICAgICAgICBrZXk6ICdndGx0J1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIGRhdGVGaWx0ZXJPcHRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0JlZm9yZScsXG4gICAgICAgICAgICBrZXk6ICdiZWZvcmUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnQWZ0ZXInLFxuICAgICAgICAgICAga2V5OiAnYWZ0ZXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnVG9kYXknLFxuICAgICAgICAgICAga2V5OiAndG9kYXknXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgY3VzdG9tSW5wdXRGaWx0ZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgY3VzdG9tTnVtYmVyRmlsdGVyMTogbnVtYmVyO1xuXG4gICAgY3VzdG9tTnVtYmVyRmlsdGVyMjogbnVtYmVyO1xuXG4gICAgY3VzdG9tRGF0ZUZpbHRlcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBkdDogVGFibGUsXG4gICAgICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwdWJsaWMgY29uZmlnOiBjYXhDb25maWcsXG4gICAgICAgIHB1YmxpYyBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMud2luZG93ID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyBhcyBXaW5kb3c7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheUlkID0gVW5pcXVlQ29tcG9uZW50SWQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkge1xuICAgICAgICAgICAgdGhpcy5pbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gJiYgdGhpcy5kdC5maWx0ZXJUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICAgICAgbGV0IGZpbHRlckRhdGEgPSB0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXTtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXJEYXRhKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXIgPSB0aGlzLmdldFNlbGVjdGVkRmlsdGVyKGZpbHRlckRhdGEubWF0Y2hNb2RlKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0N1c3RvbVN0cmluZ0ZpbHRlclNlbGVjdGVkKSB0aGlzLmN1c3RvbUlucHV0RmlsdGVyID0gZmlsdGVyRGF0YS52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0N1c3RvbU51bWJlckZpbHRlclNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tRmlsdGVyLmtleSA9PT0gJ2d0bHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbU51bWJlckZpbHRlcjEgPSBmaWx0ZXJEYXRhLnZhbHVlLmd0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21OdW1iZXJGaWx0ZXIyID0gZmlsdGVyRGF0YS52YWx1ZS5sdDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tTnVtYmVyRmlsdGVyMSA9IGZpbHRlckRhdGEudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXN0b21EYXRlRmlsdGVyU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXIua2V5ICE9PSAndG9kYXknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbURhdGVGaWx0ZXIgPSBuZXcgRGF0ZShmaWx0ZXJEYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbk9ic2VydmVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlTWF0Y2hNb2RlT3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZU9wZXJhdG9yT3B0aW9ucygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdlbmVyYXRlTWF0Y2hNb2RlT3B0aW9ucygpO1xuICAgICAgICB0aGlzLmdlbmVyYXRlT3BlcmF0b3JPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRGaWx0ZXIoa2V5OiBzdHJpbmcpOiB7IGxhYmVsOiBzdHJpbmc7IGtleTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gWy4uLnRoaXMuY29tbW9uRmlsdGVyT3B0aW9ucywgLi4udGhpcy5zdHJpbmdGaWx0ZXJPcHRpb25zLCAuLi50aGlzLm51bWJlckZpbHRlck9wdGlvbnMsIC4uLnRoaXMuZGF0ZUZpbHRlck9wdGlvbnNdO1xuICAgICAgICByZXR1cm4gYWxsT3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IGtleSk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVNYXRjaE1vZGVPcHRpb25zKCkge1xuICAgICAgICB0aGlzLm1hdGNoTW9kZXMgPVxuICAgICAgICAgICAgdGhpcy5tYXRjaE1vZGVPcHRpb25zIHx8XG4gICAgICAgICAgICAodGhpcy5jb25maWcgYXMgYW55KS5maWx0ZXJNYXRjaE1vZGVPcHRpb25zW3RoaXMudHlwZV0/Lm1hcCgoa2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBsYWJlbDogdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oa2V5KSwgdmFsdWU6IGtleSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVPcGVyYXRvck9wdGlvbnMoKSB7XG4gICAgICAgIHRoaXMub3BlcmF0b3JPcHRpb25zID0gW1xuICAgICAgICAgICAgeyBsYWJlbDogdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLk1BVENIX0FMTCksIHZhbHVlOiBGaWx0ZXJPcGVyYXRvci5BTkQgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6IHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5NQVRDSF9BTlkpLCB2YWx1ZTogRmlsdGVyT3BlcmF0b3IuT1IgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgKHRoaXMudGVtcGxhdGVzIGFzIFF1ZXJ5TGlzdDxDYXhUZW1wbGF0ZT4pLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmaWx0ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmb290ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmaWx0ZXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2NsZWFyZmlsdGVyaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXJJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbW92ZXJ1bGVpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVSdWxlSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdhZGRydWxlaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUnVsZUljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0RmllbGRGaWx0ZXJDb25zdHJhaW50KCkge1xuICAgICAgICBsZXQgZGVmYXVsdE1hdGNoTW9kZSA9IHRoaXMuZ2V0RGVmYXVsdE1hdGNoTW9kZSgpO1xuICAgICAgICBpZiAodGhpcy5kdC5maWx0ZXJUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICAgICAgdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSB7IHZhbHVlOiBudWxsLCBtYXRjaE1vZGU6IG51bGwgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdID0gdGhpcy5kaXNwbGF5ID09ICdyb3cnID8geyB2YWx1ZTogbnVsbCwgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlIH0gOiBbeyB2YWx1ZTogbnVsbCwgbWF0Y2hNb2RlOiBkZWZhdWx0TWF0Y2hNb2RlLCBvcGVyYXRvcjogdGhpcy5vcGVyYXRvciB9XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTWVudU1hdGNoTW9kZUNoYW5nZSh2YWx1ZTogYW55LCBmaWx0ZXJNZXRhOiBGaWx0ZXJNZXRhZGF0YSkge1xuICAgICAgICBmaWx0ZXJNZXRhLm1hdGNoTW9kZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Sb3dNYXRjaE1vZGVDaGFuZ2UobWF0Y2hNb2RlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZmllbGRGaWx0ZXIgPSA8RmlsdGVyTWV0YWRhdGE+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF07XG4gICAgICAgIGZpZWxkRmlsdGVyLm1hdGNoTW9kZSA9IG1hdGNoTW9kZTtcbiAgICAgICAgaWYgKGZpZWxkRmlsdGVyLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmR0Ll9maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICBvblJvd01hdGNoTW9kZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgbGV0IGl0ZW0gPSA8SFRNTExJRWxlbWVudD5ldmVudC50YXJnZXQ7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdmFyIG5leHRJdGVtID0gdGhpcy5maW5kTmV4dEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0SXRlbS50YWJJbmRleCA9ICcwJztcbiAgICAgICAgICAgICAgICAgICAgbmV4dEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB2YXIgcHJldkl0ZW0gPSB0aGlzLmZpbmRQcmV2SXRlbShpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAocHJldkl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgICAgICAgICAgICAgIHByZXZJdGVtLnRhYkluZGV4ID0gJzAnO1xuICAgICAgICAgICAgICAgICAgICBwcmV2SXRlbS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJvd0NsZWFySXRlbUNsaWNrKCkge1xuICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIGlzUm93TWF0Y2hNb2RlU2VsZWN0ZWQobWF0Y2hNb2RlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuICg8RmlsdGVyTWV0YWRhdGE+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0pLm1hdGNoTW9kZSA9PT0gbWF0Y2hNb2RlO1xuICAgIH1cblxuICAgIGFkZENvbnN0cmFpbnQoKSB7XG4gICAgICAgICg8RmlsdGVyTWV0YWRhdGFbXT50aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXSkucHVzaCh7IHZhbHVlOiBudWxsLCBtYXRjaE1vZGU6IHRoaXMuZ2V0RGVmYXVsdE1hdGNoTW9kZSgpLCBvcGVyYXRvcjogdGhpcy5nZXREZWZhdWx0T3BlcmF0b3IoKSB9KTtcbiAgICAgICAgRG9tSGFuZGxlci5mb2N1cyh0aGlzLmNsZWFyQnV0dG9uVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlbW92ZUNvbnN0cmFpbnQoZmlsdGVyTWV0YTogRmlsdGVyTWV0YWRhdGEpIHtcbiAgICAgICAgdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSAoPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0pLmZpbHRlcigobWV0YSkgPT4gbWV0YSAhPT0gZmlsdGVyTWV0YSk7XG4gICAgICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgICAgICB9XG4gICAgICAgIERvbUhhbmRsZXIuZm9jdXModGhpcy5jbGVhckJ1dHRvblZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbk9wZXJhdG9yQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgKDxGaWx0ZXJNZXRhZGF0YVtdPnRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKS5mb3JFYWNoKChmaWx0ZXJNZXRhKSA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJNZXRhLm9wZXJhdG9yID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5zaG93QXBwbHlCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuZHQuX2ZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlTWVudSgpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5VmlzaWJsZSA9ICF0aGlzLm92ZXJsYXlWaXNpYmxlO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlQnV0dG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5VmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmb2N1c2FibGUgPSBEb21IYW5kbGVyLmdldEZvY3VzYWJsZUVsZW1lbnRzKDxIVE1MRWxlbWVudD50aGlzLm92ZXJsYXkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGVbMF0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZU1lbnUoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Fc2NhcGUoKSB7XG4gICAgICAgIHRoaXMuaWNvbj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGZpbmROZXh0SXRlbShpdGVtOiBIVE1MTElFbGVtZW50KTogYW55IHtcbiAgICAgICAgbGV0IG5leHRJdGVtID0gPEhUTUxMSUVsZW1lbnQ+aXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG5cbiAgICAgICAgaWYgKG5leHRJdGVtKSByZXR1cm4gRG9tSGFuZGxlci5oYXNDbGFzcyhuZXh0SXRlbSwgJ2NheC1jb2x1bW4tZmlsdGVyLXNlcGFyYXRvcicpID8gdGhpcy5maW5kTmV4dEl0ZW0obmV4dEl0ZW0pIDogbmV4dEl0ZW07XG4gICAgICAgIGVsc2UgcmV0dXJuIGl0ZW0ucGFyZW50RWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgfVxuXG4gICAgZmluZFByZXZJdGVtKGl0ZW06IEhUTUxMSUVsZW1lbnQpOiBhbnkge1xuICAgICAgICBsZXQgcHJldkl0ZW0gPSA8SFRNTExJRWxlbWVudD5pdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cbiAgICAgICAgaWYgKHByZXZJdGVtKSByZXR1cm4gRG9tSGFuZGxlci5oYXNDbGFzcyhwcmV2SXRlbSwgJ2NheC1jb2x1bW4tZmlsdGVyLXNlcGFyYXRvcicpID8gdGhpcy5maW5kUHJldkl0ZW0ocHJldkl0ZW0pIDogcHJldkl0ZW07XG4gICAgICAgIGVsc2UgcmV0dXJuIGl0ZW0ucGFyZW50RWxlbWVudD8ubGFzdEVsZW1lbnRDaGlsZDtcbiAgICB9XG5cbiAgICBvbkNvbnRlbnRDbGljaygpIHtcbiAgICAgICAgdGhpcy5zZWxmQ2xpY2sgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheUFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LnRvU3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Zpc2libGUnOlxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheSA9IGV2ZW50LmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksIHRoaXMub3ZlcmxheSk7XG4gICAgICAgICAgICAgICAgWkluZGV4VXRpbHMuc2V0KCdvdmVybGF5JywgdGhpcy5vdmVybGF5LCB0aGlzLmNvbmZpZy56SW5kZXgub3ZlcmxheSk7XG4gICAgICAgICAgICAgICAgRG9tSGFuZGxlci5hYnNvbHV0ZVBvc2l0aW9uKHRoaXMub3ZlcmxheSwgdGhpcy5pY29uPy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudENsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5iaW5kU2Nyb2xsTGlzdGVuZXIoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheUV2ZW50TGlzdGVuZXIgPSAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXkgJiYgdGhpcy5vdmVybGF5LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxmQ2xpY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY2xpY2tPYnNlcnZhYmxlLnN1YnNjcmliZSh0aGlzLm92ZXJsYXlFdmVudExpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2hvdy5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3ZvaWQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25PdmVybGF5SGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQudG9TdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSAndmlzaWJsZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uRmlyc3RFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2b2lkJzpcbiAgICAgICAgICAgICAgICBaSW5kZXhVdGlscy5jbGVhcihldmVudC5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZS5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c09uRmlyc3RFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5KSB7XG4gICAgICAgICAgICBEb21IYW5kbGVyLmZvY3VzKERvbUhhbmRsZXIuZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KHRoaXMub3ZlcmxheSwgJycpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERlZmF1bHRNYXRjaE1vZGUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubWF0Y2hNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXRjaE1vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSAndGV4dCcpIHJldHVybiBGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEg7XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdudW1lcmljJykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5FUVVBTFM7XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlJykgcmV0dXJuIEZpbHRlck1hdGNoTW9kZS5EQVRFX0lTO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gRmlsdGVyTWF0Y2hNb2RlLkNPTlRBSU5TO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE9wZXJhdG9yKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmR0LmZpbHRlcnMgPyAoPEZpbHRlck1ldGFkYXRhW10+dGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+KDxzdHJpbmc+dGhpcy5maWVsZCldKVswXS5vcGVyYXRvciA6IHRoaXMub3BlcmF0b3I7XG4gICAgfVxuXG4gICAgaGFzUm93RmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gJiYgIXRoaXMuZHQuaXNGaWx0ZXJCbGFuaygoPEZpbHRlck1ldGFkYXRhPnRoaXMuZHQuZmlsdGVyc1s8c3RyaW5nPnRoaXMuZmllbGRdKS52YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFzRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZmllbGRGaWx0ZXIgPSB0aGlzLmR0LmZpbHRlcnNbPHN0cmluZz50aGlzLmZpZWxkXTtcbiAgICAgICAgaWYgKGZpZWxkRmlsdGVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kdC5maWx0ZXJUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkRmlsdGVyKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIGZpZWxkRmlsdGVyLm1hdGNoTW9kZSAhPSBudWxsIHx8IHVuZGVmaW5lZCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRGaWx0ZXIpKSByZXR1cm4gIXRoaXMuZHQuaXNGaWx0ZXJCbGFuaygoPEZpbHRlck1ldGFkYXRhW10+ZmllbGRGaWx0ZXIpWzBdLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBlbHNlIHJldHVybiAhdGhpcy5kdC5pc0ZpbHRlckJsYW5rKGZpZWxkRmlsdGVyLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpc091dHNpZGVDbGlja2VkKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEoXG4gICAgICAgICAgICBEb21IYW5kbGVyLmhhc0NsYXNzKHRoaXMub3ZlcmxheT8ubmV4dEVsZW1lbnRTaWJsaW5nLCAnY2F4LW92ZXJsYXknKSB8fFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5Py5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHxcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheT8uY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxuICAgICAgICAgICAgdGhpcy5pY29uPy5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxuICAgICAgICAgICAgdGhpcy5pY29uPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcbiAgICAgICAgICAgIERvbUhhbmRsZXIuaGFzQ2xhc3MoZXZlbnQudGFyZ2V0LCAnY2F4LWNvbHVtbi1maWx0ZXItYWRkLWJ1dHRvbicpIHx8XG4gICAgICAgICAgICBEb21IYW5kbGVyLmhhc0NsYXNzKGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LCAnY2F4LWNvbHVtbi1maWx0ZXItYWRkLWJ1dHRvbicpIHx8XG4gICAgICAgICAgICBEb21IYW5kbGVyLmhhc0NsYXNzKGV2ZW50LnRhcmdldCwgJ2NheC1jb2x1bW4tZmlsdGVyLXJlbW92ZS1idXR0b24nKSB8fFxuICAgICAgICAgICAgRG9tSGFuZGxlci5oYXNDbGFzcyhldmVudC50YXJnZXQucGFyZW50RWxlbWVudCwgJ2NheC1jb2x1bW4tZmlsdGVyLXJlbW92ZS1idXR0b24nKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGJpbmREb2N1bWVudENsaWNrTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50VGFyZ2V0OiBhbnkgPSB0aGlzLmVsID8gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm93bmVyRG9jdW1lbnQgOiAnZG9jdW1lbnQnO1xuXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGRvY3VtZW50VGFyZ2V0LCAnbW91c2Vkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGlzRGF0ZURpYWxvZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPVwiZGlhbG9nXCJdJykuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoRG9tSGFuZGxlci5oYXNDbGFzcyhkLCAnY2F4LWRhdGVwaWNrZXInKSkgaXNEYXRlRGlhbG9nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRJc0NvbHVtbkZpbHRlck1lbnVCdXR0b24gPSBldmVudC50YXJnZXQuY2xvc2VzdCgnLmNheC1jb2x1bW4tZmlsdGVyLW1lbnUtYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUgJiYgdGhpcy5pc091dHNpZGVDbGlja2VkKGV2ZW50KSAmJiAodGFyZ2V0SXNDb2x1bW5GaWx0ZXJNZW51QnV0dG9uIHx8ICFpc0RhdGVEaWFsb2cpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZkNsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZERvY3VtZW50Q2xpY2tMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zZWxmQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy53aW5kb3csICdyZXNpemUnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vdmVybGF5VmlzaWJsZSAmJiAhRG9tSGFuZGxlci5pc1RvdWNoRGV2aWNlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5zY3JvbGxIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEhhbmRsZXIgPSBuZXcgQ29ubmVjdGVkT3ZlcmxheVNjcm9sbEhhbmRsZXIodGhpcy5pY29uPy5uYXRpdmVFbGVtZW50LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuYmluZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgdW5iaW5kU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci51bmJpbmRTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5VmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheUhpZGUoKSB7XG4gICAgICAgIHRoaXMudW5iaW5kRG9jdW1lbnRDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMudW5iaW5kRG9jdW1lbnRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnVuYmluZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheSA9IG51bGw7XG4gICAgfVxuXG4gICAgY2xlYXJGaWx0ZXIoKSB7XG4gICAgICAgIHRoaXMuaW5pdEZpZWxkRmlsdGVyQ29uc3RyYWludCgpO1xuICAgICAgICB0aGlzLmR0Ll9maWx0ZXIoKTtcbiAgICAgICAgaWYgKHRoaXMuaGlkZU9uQ2xlYXIpIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKCkge1xuICAgICAgICB0aGlzLmR0Ll9maWx0ZXIoKTtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXkpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLm92ZXJsYXkpO1xuICAgICAgICAgICAgWkluZGV4VXRpbHMuY2xlYXIodGhpcy5vdmVybGF5KTtcbiAgICAgICAgICAgIHRoaXMub25PdmVybGF5SGlkZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlc2V0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vdmVybGF5U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZUN1c3RvbUZpbHRlckxpc3QoKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tRmlsdGVyTGlzdFZpc2libGUgPSAhdGhpcy5jdXN0b21GaWx0ZXJMaXN0VmlzaWJsZTtcbiAgICB9XG5cbiAgICBzZWxlY3RDdXN0b21GaWx0ZXIob3B0aW9uOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jdXN0b21JbnB1dEZpbHRlciA9ICcnO1xuICAgICAgICB0aGlzLmN1c3RvbU51bWJlckZpbHRlcjEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY3VzdG9tTnVtYmVyRmlsdGVyMiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jdXN0b21EYXRlRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmN1c3RvbUZpbHRlckxpc3RWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXIgPSBvcHRpb247XG4gICAgfVxuXG4gICAgZ2V0IGlzQ3VzdG9tQ29tbW9uRmlsdGVyU2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1vbkZpbHRlck9wdGlvbnMuc29tZSgobGlzdDogYW55KSA9PiBsaXN0LmtleSA9PSB0aGlzLnNlbGVjdGVkQ3VzdG9tRmlsdGVyPy5rZXkpO1xuICAgIH1cblxuICAgIGdldCBpc0N1c3RvbVN0cmluZ0ZpbHRlclNlbGVjdGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdGaWx0ZXJPcHRpb25zLnNvbWUoKGxpc3Q6IGFueSkgPT4gbGlzdC5rZXkgPT0gdGhpcy5zZWxlY3RlZEN1c3RvbUZpbHRlcj8ua2V5KTtcbiAgICB9XG5cbiAgICBnZXQgaXNDdXN0b21OdW1iZXJGaWx0ZXJTZWxlY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVyRmlsdGVyT3B0aW9ucy5zb21lKChsaXN0OiBhbnkpID0+IGxpc3Qua2V5ID09IHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXI/LmtleSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ3VzdG9tRGF0ZUZpbHRlclNlbGVjdGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlRmlsdGVyT3B0aW9ucy5zb21lKChsaXN0OiBhbnkpID0+IGxpc3Qua2V5ID09IHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXI/LmtleSk7XG4gICAgfVxuXG4gICAgb25DbGVhckN1c3RvbUZpbHRlcnMoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY3VzdG9tSW5wdXRGaWx0ZXIgPSAnJztcbiAgICAgICAgdGhpcy5jdXN0b21OdW1iZXJGaWx0ZXIxID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmN1c3RvbU51bWJlckZpbHRlcjIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY3VzdG9tRGF0ZUZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBvbkFwcGx5Q3VzdG9tRmlsdGVycygpIHtcbiAgICAgICAgbGV0IGFwcGxpZWRGaWx0ZXJzID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5pc0N1c3RvbUNvbW1vbkZpbHRlclNlbGVjdGVkKSB7XG4gICAgICAgICAgICBhcHBsaWVkRmlsdGVycyA9IHtcbiAgICAgICAgICAgICAgICBtYXRjaE1vZGU6IHRoaXMuc2VsZWN0ZWRDdXN0b21GaWx0ZXIua2V5XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNDdXN0b21TdHJpbmdGaWx0ZXJTZWxlY3RlZCkge1xuICAgICAgICAgICAgYXBwbGllZEZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tRmlsdGVyLmtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5jdXN0b21JbnB1dEZpbHRlclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzQ3VzdG9tTnVtYmVyRmlsdGVyU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGFwcGxpZWRGaWx0ZXJzID0ge1xuICAgICAgICAgICAgICAgIG1hdGNoTW9kZTogdGhpcy5zZWxlY3RlZEN1c3RvbUZpbHRlci5rZXlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEN1c3RvbUZpbHRlci5rZXkgPT09ICdndGx0JykgYXBwbGllZEZpbHRlcnMudmFsdWUgPSB7IGd0OiB0aGlzLmN1c3RvbU51bWJlckZpbHRlcjEsIGx0OiB0aGlzLmN1c3RvbU51bWJlckZpbHRlcjIgfTtcbiAgICAgICAgICAgIGVsc2UgYXBwbGllZEZpbHRlcnMudmFsdWUgPSB0aGlzLmN1c3RvbU51bWJlckZpbHRlcjE7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0N1c3RvbURhdGVGaWx0ZXJTZWxlY3RlZCkge1xuICAgICAgICAgICAgYXBwbGllZEZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tRmlsdGVyLmtleVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tRmlsdGVyLmtleSAhPT0gJ3RvZGF5JykgYXBwbGllZEZpbHRlcnMudmFsdWUgPSB0aGlzLmN1c3RvbURhdGVGaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kdC5maWx0ZXJzWzxzdHJpbmc+dGhpcy5maWVsZF0gPSBhcHBsaWVkRmlsdGVycztcbiAgICAgICAgdGhpcy5kdC5fZmlsdGVyKCk7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbn1cbiIsIjxkaXZcclxuICAgIGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXJcIlxyXG4gICAgW25nQ2xhc3NdPVwieyAnY2F4LWNvbHVtbi1maWx0ZXItcm93JzogZGlzcGxheSA9PT0gJ3JvdycgJiYgZHQuZmlsdGVyVHlwZSA9PT0gJ2RlZmF1bHQnLCAnY2F4LWNvbHVtbi1maWx0ZXItbWVudSc6IGRpc3BsYXkgPT09ICdtZW51JyAmJiBkdC5maWx0ZXJUeXBlID09PSAnZGVmYXVsdCcsICdjYXgtY29sdW1uLWZpbHRlci1jdXN0b20nOiAgZHQuZmlsdGVyVHlwZSA9PT0gJ2N1c3RvbScgfVwiXHJcbj5cclxuICAgIDxjYXgtY29sdW1uRmlsdGVyRm9ybUVsZW1lbnRcclxuICAgICAgICAqbmdJZj1cImRpc3BsYXkgPT09ICdyb3cnICYmIGR0LmZpbHRlclR5cGUgPT09ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgY2xhc3M9XCJjYXgtZmx1aWRcIlxyXG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXHJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxyXG4gICAgICAgIFtmaWx0ZXJDb25zdHJhaW50XT1cImR0LmZpbHRlcnNbZmllbGRdXCJcclxuICAgICAgICBbZmlsdGVyVGVtcGxhdGVdPVwiZmlsdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIm1pbkZyYWN0aW9uRGlnaXRzXCJcclxuICAgICAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwibWF4RnJhY3Rpb25EaWdpdHNcIlxyXG4gICAgICAgIFtwcmVmaXhdPVwicHJlZml4XCJcclxuICAgICAgICBbc3VmZml4XT1cInN1ZmZpeFwiXHJcbiAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxyXG4gICAgICAgIFtsb2NhbGVNYXRjaGVyXT1cImxvY2FsZU1hdGNoZXJcIlxyXG4gICAgICAgIFtjdXJyZW5jeV09XCJjdXJyZW5jeVwiXHJcbiAgICAgICAgW2N1cnJlbmN5RGlzcGxheV09XCJjdXJyZW5jeURpc3BsYXlcIlxyXG4gICAgICAgIFt1c2VHcm91cGluZ109XCJ1c2VHcm91cGluZ1wiXHJcbiAgICAgICAgW3Nob3dCdXR0b25zXT1cInNob3dCdXR0b25zXCJcclxuICAgID48L2NheC1jb2x1bW5GaWx0ZXJGb3JtRWxlbWVudD5cclxuICAgIDxidXR0b25cclxuICAgICAgICAjaWNvblxyXG4gICAgICAgICpuZ0lmPVwic2hvd01lbnVCdXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItbWVudS1idXR0b24gY2F4LWxpbmtcIlxyXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbHRlck1lbnVCdXR0b25BcmlhTGFiZWxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwib3ZlcmxheVZpc2libGUgPyBvdmVybGF5SWQgOiBudWxsXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm92ZXJsYXlWaXNpYmxlID8/IGZhbHNlXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2NheC1jb2x1bW4tZmlsdGVyLW1lbnUtYnV0dG9uLW9wZW4nOiBvdmVybGF5VmlzaWJsZSwgJ2NheC1jb2x1bW4tZmlsdGVyLW1lbnUtYnV0dG9uLWFjdGl2ZSc6IGhhc0ZpbHRlcigpIH1cIlxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxyXG4gICAgICAgIChrZXlkb3duKT1cIm9uVG9nZ2xlQnV0dG9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgICA8aSAqbmdJZj1cIiFmaWx0ZXJJY29uVGVtcGxhdGVcIiBbc3R5bGVDbGFzc109XCIncGktZmlsdGVyLWljb24nXCIgY2xhc3M9XCJjYXggY2F4LWZpbHRlclwiPjwvaT5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBpLWZpbHRlci1pY29uXCIgKm5nSWY9XCJmaWx0ZXJJY29uVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVySWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICAjaWNvblxyXG4gICAgICAgICpuZ0lmPVwic2hvd0NsZWFyQnV0dG9uICYmIGRpc3BsYXkgPT09ICdyb3cnICYmIGR0LmZpbHRlclR5cGUgPT09ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnY2F4LWhpZGRlbi1zcGFjZSc6ICFoYXNSb3dGaWx0ZXIoKSB9XCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWNsZWFyLWJ1dHRvbiBjYXgtbGlua1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xlYXJCdXR0b25MYWJlbFwiXHJcbiAgICA+XHJcbiAgICAgICAgPEZpbHRlclNsYXNoSWNvbiAqbmdJZj1cIiFjbGVhckZpbHRlckljb25UZW1wbGF0ZVwiIC8+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xlYXJGaWx0ZXJJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJzaG93TWVudSAmJiBvdmVybGF5VmlzaWJsZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnY2F4LWNvbHVtbi1maWx0ZXItb3ZlcmxheSBjYXgtY29tcG9uZW50IGNheC1mbHVpZCc6IHRydWUsICdjYXgtY29sdW1uLWZpbHRlci1vdmVybGF5LW1lbnUnOiBkaXNwbGF5ID09PSAnbWVudScgJiYgZHQuZmlsdGVyVHlwZSA9PT0gJ2RlZmF1bHQnICwgJ2NheC1jb2x1bW4tZmlsdGVyLW92ZXJsYXktY3VzdG9tJzogZHQuZmlsdGVyVHlwZSA9PT0gJ2N1c3RvbScgfVwiXHJcbiAgICAgICAgW2lkXT1cIm92ZXJsYXlJZFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJ0cnVlXCJcclxuICAgICAgICByb2xlPVwiZGlhbG9nXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db250ZW50Q2xpY2soKVwiXHJcbiAgICAgICAgW0BvdmVybGF5QW5pbWF0aW9uXT1cIid2aXNpYmxlJ1wiXHJcbiAgICAgICAgKEBvdmVybGF5QW5pbWF0aW9uLnN0YXJ0KT1cIm9uT3ZlcmxheUFuaW1hdGlvblN0YXJ0KCRldmVudClcIlxyXG4gICAgICAgIChAb3ZlcmxheUFuaW1hdGlvbi5kb25lKT1cIm9uT3ZlcmxheUFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcclxuICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25Fc2NhcGUoKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmllbGQgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDx1bCAqbmdJZj1cImRpc3BsYXkgPT09ICdyb3cnICYmIGR0LmZpbHRlclR5cGUgPT09ICdkZWZhdWx0JzsgZWxzZSBtZW51XCIgY2xhc3M9XCJjYXgtY29sdW1uLWZpbHRlci1yb3ctaXRlbXNcIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLXJvdy1pdGVtXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtYXRjaE1vZGUgb2YgbWF0Y2hNb2RlczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dNYXRjaE1vZGVDaGFuZ2UobWF0Y2hNb2RlLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvblJvd01hdGNoTW9kZUtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0aGlzLm9uUm93TWF0Y2hNb2RlQ2hhbmdlKG1hdGNoTW9kZS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY2F4LWhpZ2hsaWdodCc6IGlzUm93TWF0Y2hNb2RlU2VsZWN0ZWQobWF0Y2hNb2RlLnZhbHVlKSB9XCJcclxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImkgPT09IDAgPyAnMCcgOiBudWxsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgbWF0Y2hNb2RlLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLXNlcGFyYXRvclwiPjwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLXJvdy1pdGVtXCIgKGNsaWNrKT1cIm9uUm93Q2xlYXJJdGVtQ2xpY2soKVwiIChrZXlkb3duKT1cIm9uUm93TWF0Y2hNb2RlS2V5RG93bigkZXZlbnQpXCIgKGtleWRvd24uZW50ZXIpPVwib25Sb3dDbGVhckl0ZW1DbGljaygpXCI+e3sgbm9GaWx0ZXJMYWJlbCB9fTwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI21lbnU+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ID09PSAnbWVudScgJiYgZHQuZmlsdGVyVHlwZSA9PT0gJ2RlZmF1bHQnOyBlbHNlIGN1c3RvbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLW9wZXJhdG9yXCIgKm5nSWY9XCJpc1Nob3dPcGVyYXRvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtZHJvcGRvd24gW29wdGlvbnNdPVwib3BlcmF0b3JPcHRpb25zXCIgW25nTW9kZWxdPVwib3BlcmF0b3JcIiAobmdNb2RlbENoYW5nZSk9XCJvbk9wZXJhdG9yQ2hhbmdlKCRldmVudClcIiBzdHlsZUNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItb3BlcmF0b3ItZHJvcGRvd25cIj48L2NheC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGRDb25zdHJhaW50IG9mIGZpZWxkQ29uc3RyYWludHM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNheC1kcm9wZG93blxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TWF0Y2hNb2RlcyAmJiBtYXRjaE1vZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIm1hdGNoTW9kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZmllbGRDb25zdHJhaW50Lm1hdGNoTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1lbnVNYXRjaE1vZGVDaGFuZ2UoJGV2ZW50LCBmaWVsZENvbnN0cmFpbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJjYXgtY29sdW1uLWZpbHRlci1tYXRjaG1vZGUtZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jYXgtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjYXgtY29sdW1uRmlsdGVyRm9ybUVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25zdHJhaW50XT1cImZpZWxkQ29uc3RyYWludFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyVGVtcGxhdGVdPVwiZmlsdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCJtaW5GcmFjdGlvbkRpZ2l0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwibWF4RnJhY3Rpb25EaWdpdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1ZmZpeF09XCJzdWZmaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZU1hdGNoZXJdPVwibG9jYWxlTWF0Y2hlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VycmVuY3ldPVwiY3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5RGlzcGxheV09XCJjdXJyZW5jeURpc3BsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZUdyb3VwaW5nXT1cInVzZUdyb3VwaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY2F4LWNvbHVtbkZpbHRlckZvcm1FbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JlbW92ZUljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNheEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItcmVtb3ZlLWJ1dHRvbiBjYXgtYnV0dG9uLXRleHQgY2F4LWJ1dHRvbi1kYW5nZXIgY2F4LWJ1dHRvbi1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbnN0cmFpbnQoZmllbGRDb25zdHJhaW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlUnVsZUJ1dHRvbkxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicmVtb3ZlUnVsZUJ1dHRvbkxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJhc2hJY29uICpuZ0lmPVwiIXJlbW92ZVJ1bGVJY29uVGVtcGxhdGVcIiBbc3R5bGVDbGFzc109XCInY2F4LWJ1dHRvbi1pY29uLWxlZnQnXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW1vdmVSdWxlSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWFkZC1ydWxlXCIgKm5nSWY9XCJpc1Nob3dBZGRDb25zdHJhaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2F4QnV0dG9uIFtsYWJlbF09XCJhZGRSdWxlQnV0dG9uTGFiZWxcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFkZFJ1bGVCdXR0b25MYWJlbFwiIGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItYWRkLWJ1dHRvbiBjYXgtYnV0dG9uLXRleHQgY2F4LWJ1dHRvbi1zbVwiIChjbGljayk9XCJhZGRDb25zdHJhaW50KClcIiBwUmlwcGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGx1c0ljb24gKm5nSWY9XCIhYWRkUnVsZUljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidjYXgtYnV0dG9uLWljb24tbGVmdCdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRSdWxlSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWJ1dHRvbmJhclwiICpuZ0lmPVwic2hvd0J1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNjbGVhckJ0blxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dDbGVhckJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXhCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXgtYnV0dG9uLW91dGxpbmVkIGNheC1idXR0b24tZGFuZ2VyIGNheC1idXR0b24tc21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xlYXJCdXR0b25MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjbGVhckJ1dHRvbkxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0FwcGx5QnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIGNheEJ1dHRvbiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIoKVwiIGNsYXNzPVwiY2F4LWJ1dHRvbi1zbVwiIFtsYWJlbF09XCJhcHBseUJ1dHRvbkxhYmVsXCIgcFJpcHBsZSBbYXR0ci5hcmlhLWxhYmVsXT1cImFwcGx5QnV0dG9uTGFiZWxcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItY3VzdG9tLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItY3VzdG9tLWxpc3QtaGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUN1c3RvbUZpbHRlckxpc3QoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFzZWxlY3RlZEN1c3RvbUZpbHRlcj8ubGFiZWw/Lmxlbmd0aFwiPlNlbGVjdCBhIGNvbmRpdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tRmlsdGVyXCI+e3sgc2VsZWN0ZWRDdXN0b21GaWx0ZXIubGFiZWwgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjYXggY2F4LWFsdC1hcnJvdy1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXgtY29sdW1uLWZpbHRlci1jdXN0b20tbGlzdFwiICpuZ0lmPVwiY3VzdG9tRmlsdGVyTGlzdFZpc2libGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWN1c3RvbS1saXN0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgb3B0IG9mIGNvbW1vbkZpbHRlck9wdGlvbnNcIiAoY2xpY2spPVwic2VsZWN0Q3VzdG9tRmlsdGVyKG9wdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IG9wdC5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjYXgtZGl2aWRlciBbc3R5bGVdPVwie21hcmdpbjogMH1cIj48L2NheC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F4LWNvbHVtbi1maWx0ZXItY3VzdG9tLWxpc3QtaXRlbVwiICpuZ0Zvcj1cImxldCBvcHQgb2Ygc3RyaW5nRmlsdGVyT3B0aW9uc1wiIChjbGljayk9XCJzZWxlY3RDdXN0b21GaWx0ZXIob3B0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgb3B0LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNheC1kaXZpZGVyIFtzdHlsZV09XCJ7bWFyZ2luOiAwfVwiPjwvY2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXgtY29sdW1uLWZpbHRlci1jdXN0b20tbGlzdC1pdGVtXCIgKm5nRm9yPVwibGV0IG9wdCBvZiBudW1iZXJGaWx0ZXJPcHRpb25zXCIgKGNsaWNrKT1cInNlbGVjdEN1c3RvbUZpbHRlcihvcHQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBvcHQubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2F4LWRpdmlkZXIgW3N0eWxlXT1cInttYXJnaW46IDB9XCI+PC9jYXgtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNheC1jb2x1bW4tZmlsdGVyLWN1c3RvbS1saXN0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgb3B0IG9mIGRhdGVGaWx0ZXJPcHRpb25zXCIgKGNsaWNrKT1cInNlbGVjdEN1c3RvbUZpbHRlcihvcHQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBvcHQubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNDdXN0b21TdHJpbmdGaWx0ZXJTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtaW5wdXR0ZXh0IFsobmdNb2RlbCldPVwiY3VzdG9tSW5wdXRGaWx0ZXJcIiBbY2xlYXJJY29uXT1cImZhbHNlXCI+PC9jYXgtaW5wdXR0ZXh0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNDdXN0b21OdW1iZXJGaWx0ZXJTZWxlY3RlZFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNheC1pbnB1dE51bWJlciBbKG5nTW9kZWwpXT1cImN1c3RvbU51bWJlckZpbHRlcjFcIj48L2NheC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2F4LWlucHV0TnVtYmVyIFsobmdNb2RlbCldPVwiY3VzdG9tTnVtYmVyRmlsdGVyMlwiICpuZ0lmPVwic2VsZWN0ZWRDdXN0b21GaWx0ZXIua2V5ID09PSAnZ3RsdCdcIj48L2NheC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzQ3VzdG9tRGF0ZUZpbHRlclNlbGVjdGVkICYmIHNlbGVjdGVkQ3VzdG9tRmlsdGVyLmtleSAhPT0gJ3RvZGF5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtY2FsZW5kYXIgWyhuZ01vZGVsKV09XCJjdXN0b21EYXRlRmlsdGVyXCIgW3Nob3dJY29uXT1cInRydWVcIiBpY29uRGlzcGxheT1cImlucHV0XCI+PC9jYXgtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXgtY29sdW1uLWZpbHRlci1jdXN0b20tYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtYnV0dG9uIChjbGljayk9XCJvbkNsZWFyQ3VzdG9tRmlsdGVycygpXCIgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZEN1c3RvbUZpbHRlclwiIFtsYWJlbF09XCInQ2xlYXInXCIgW3NldmVyaXR5XT1cIidkYW5nZXInXCIgb3V0bGluZWQ9XCJ0cnVlXCI+PC9jYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXgtYnV0dG9uIChjbGljayk9XCJvbkFwcGx5Q3VzdG9tRmlsdGVycygpXCIgW2xhYmVsXT1cIidBcHBseSdcIj48L2NheC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmaWVsZCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==