cax-design-system 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1812) hide show
  1. package/README.md +47 -0
  2. package/accordion/accordion.d.ts +220 -0
  3. package/accordion/accordion.interface.d.ts +49 -0
  4. package/accordion/accordion.module.d.ts +13 -0
  5. package/accordion/index.d.ts +5 -0
  6. package/accordion/public_api.d.ts +3 -0
  7. package/animate/animate.d.ts +40 -0
  8. package/animate/index.d.ts +5 -0
  9. package/animate/public_api.d.ts +1 -0
  10. package/animateonscroll/animateonscroll.d.ts +75 -0
  11. package/animateonscroll/index.d.ts +5 -0
  12. package/animateonscroll/public_api.d.ts +1 -0
  13. package/api/blockableui.d.ts +10 -0
  14. package/api/caxconfig.d.ts +24 -0
  15. package/api/confirmaeventtype.d.ts +8 -0
  16. package/api/confirmation.d.ts +91 -0
  17. package/api/confirmationservice.d.ts +30 -0
  18. package/api/contextmenuservice.d.ts +11 -0
  19. package/api/filtermatchmode.d.ts +22 -0
  20. package/api/filtermetadata.d.ts +18 -0
  21. package/api/filteroperator.d.ts +4 -0
  22. package/api/filterservice.d.ts +10 -0
  23. package/api/index.d.ts +5 -0
  24. package/api/lazyloadevent.d.ts +47 -0
  25. package/api/lazyloadmeta.d.ts +19 -0
  26. package/api/megamenuitem.d.ts +130 -0
  27. package/api/menuitem.d.ts +176 -0
  28. package/api/message.d.ts +30 -0
  29. package/api/messageservice.d.ts +32 -0
  30. package/api/overlayoptions.d.ts +188 -0
  31. package/api/overlayservice.d.ts +9 -0
  32. package/api/primeicons.d.ts +313 -0
  33. package/api/public_api.d.ts +33 -0
  34. package/api/scrolleroptions.d.ts +116 -0
  35. package/api/selectitem.d.ts +12 -0
  36. package/api/selectitemgroup.d.ts +10 -0
  37. package/api/shared.d.ts +24 -0
  38. package/api/sortevent.d.ts +12 -0
  39. package/api/sortmeta.d.ts +8 -0
  40. package/api/tablestate.d.ts +60 -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 +86 -0
  46. package/api/treenodedragevent.d.ts +27 -0
  47. package/api/treetablenode.d.ts +36 -0
  48. package/autocomplete/autocomplete.d.ts +629 -0
  49. package/autocomplete/autocomplete.interface.d.ts +164 -0
  50. package/autocomplete/index.d.ts +5 -0
  51. package/autocomplete/public_api.d.ts +2 -0
  52. package/autofocus/autofocus.d.ts +28 -0
  53. package/autofocus/index.d.ts +5 -0
  54. package/autofocus/public_api.d.ts +1 -0
  55. package/avatar/avatar.d.ts +73 -0
  56. package/avatar/avatar.module.d.ts +7 -0
  57. package/avatar/index.d.ts +5 -0
  58. package/avatar/public_api.d.ts +2 -0
  59. package/avatargroup/avatargroup.d.ts +27 -0
  60. package/avatargroup/index.d.ts +5 -0
  61. package/avatargroup/public_api.d.ts +1 -0
  62. package/badge/badge.d.ts +23 -0
  63. package/badge/badge.directive.d.ts +33 -0
  64. package/badge/badge.module.d.ts +10 -0
  65. package/badge/index.d.ts +5 -0
  66. package/badge/public_api.d.ts +3 -0
  67. package/baseicon/baseicon.d.ts +15 -0
  68. package/baseicon/index.d.ts +5 -0
  69. package/baseicon/public_api.d.ts +1 -0
  70. package/blockui/blockui.d.ts +64 -0
  71. package/blockui/blockui.interface.d.ts +11 -0
  72. package/blockui/index.d.ts +5 -0
  73. package/blockui/public_api.d.ts +2 -0
  74. package/breadcrumb/breadcrumb.d.ts +55 -0
  75. package/breadcrumb/breadcrumb.interface.d.ts +38 -0
  76. package/breadcrumb/breadcrumb.module.d.ts +13 -0
  77. package/breadcrumb/index.d.ts +5 -0
  78. package/breadcrumb/public_api.d.ts +3 -0
  79. package/button/button.d.ts +84 -0
  80. package/button/button.directive.d.ts +46 -0
  81. package/button/button.interface.d.ts +30 -0
  82. package/button/button.module.d.ts +9 -0
  83. package/button/index.d.ts +5 -0
  84. package/button/public_api.d.ts +4 -0
  85. package/buttongroup/buttongroup.d.ts +11 -0
  86. package/buttongroup/index.d.ts +5 -0
  87. package/buttongroup/public_api.d.ts +1 -0
  88. package/calendar/calendar.d.ts +712 -0
  89. package/calendar/calendar.interface.d.ts +204 -0
  90. package/calendar/calendar.module.d.ts +9 -0
  91. package/calendar/index.d.ts +5 -0
  92. package/calendar/public_api.d.ts +3 -0
  93. package/card/card.d.ts +53 -0
  94. package/card/card.interface.d.ts +27 -0
  95. package/card/card.module.d.ts +11 -0
  96. package/card/index.d.ts +5 -0
  97. package/card/public_api.d.ts +3 -0
  98. package/carousel/carousel.d.ts +227 -0
  99. package/carousel/carousel.interface.d.ts +63 -0
  100. package/carousel/index.d.ts +5 -0
  101. package/carousel/public_api.d.ts +2 -0
  102. package/cascadeselect/cascadeselect.d.ts +435 -0
  103. package/cascadeselect/cascadeselect.interface.d.ts +115 -0
  104. package/cascadeselect/cascadeselect.module.d.ts +15 -0
  105. package/cascadeselect/index.d.ts +5 -0
  106. package/cascadeselect/public_api.d.ts +3 -0
  107. package/chart/chart.d.ts +87 -0
  108. package/chart/index.d.ts +5 -0
  109. package/chart/public_api.d.ts +1 -0
  110. package/checkbox/checkbox.d.ts +164 -0
  111. package/checkbox/checkbox.interface.d.ts +26 -0
  112. package/checkbox/checkbox.module.d.ts +10 -0
  113. package/checkbox/index.d.ts +5 -0
  114. package/checkbox/public_api.d.ts +3 -0
  115. package/chip/chip.d.ts +37 -0
  116. package/chip/chip.interface.d.ts +15 -0
  117. package/chip/chip.module.d.ts +10 -0
  118. package/chip/index.d.ts +5 -0
  119. package/chip/public_api.d.ts +3 -0
  120. package/chips/chips.d.ts +221 -0
  121. package/chips/chips.interface.d.ts +58 -0
  122. package/chips/chips.module.d.ts +13 -0
  123. package/chips/index.d.ts +5 -0
  124. package/chips/public_api.d.ts +3 -0
  125. package/colorpicker/colorpicker.d.ts +247 -0
  126. package/colorpicker/colorpicker.interface.d.ts +15 -0
  127. package/colorpicker/index.d.ts +5 -0
  128. package/colorpicker/public_api.d.ts +2 -0
  129. package/confirmdialog/confirmdialog.d.ts +273 -0
  130. package/confirmdialog/confirmdialog.interface.d.ts +39 -0
  131. package/confirmdialog/index.d.ts +5 -0
  132. package/confirmdialog/public_api.d.ts +2 -0
  133. package/confirmpopup/confirmpopup.d.ts +119 -0
  134. package/confirmpopup/confirmpopup.interface.d.ts +27 -0
  135. package/confirmpopup/index.d.ts +5 -0
  136. package/confirmpopup/public_api.d.ts +2 -0
  137. package/contextmenu/contextmenu.d.ts +260 -0
  138. package/contextmenu/index.d.ts +5 -0
  139. package/contextmenu/public_api.d.ts +1 -0
  140. package/dataview/dataview.d.ts +274 -0
  141. package/dataview/dataview.interface.d.ts +183 -0
  142. package/dataview/index.d.ts +5 -0
  143. package/dataview/public_api.d.ts +2 -0
  144. package/defer/defer.d.ts +39 -0
  145. package/defer/index.d.ts +5 -0
  146. package/defer/public_api.d.ts +1 -0
  147. package/dialog/dialog.d.ts +373 -0
  148. package/dialog/dialog.interface.d.ts +31 -0
  149. package/dialog/index.d.ts +5 -0
  150. package/dialog/public_api.d.ts +2 -0
  151. package/divider/divider.d.ts +49 -0
  152. package/divider/divider.module.d.ts +7 -0
  153. package/divider/index.d.ts +5 -0
  154. package/divider/public_api.d.ts +2 -0
  155. package/dock/dock.d.ts +115 -0
  156. package/dock/dock.interface.d.ts +19 -0
  157. package/dock/index.d.ts +5 -0
  158. package/dock/public_api.d.ts +2 -0
  159. package/dom/connectedoverlayscrollhandler.d.ts +9 -0
  160. package/dom/domhandler.d.ts +95 -0
  161. package/dom/index.d.ts +5 -0
  162. package/dom/public_api.d.ts +2 -0
  163. package/dragdrop/dragdrop.d.ts +112 -0
  164. package/dragdrop/dragdrop.module.d.ts +8 -0
  165. package/dragdrop/index.d.ts +5 -0
  166. package/dragdrop/public_api.d.ts +2 -0
  167. package/dropdown/dropdown-item.d.ts +30 -0
  168. package/dropdown/dropdown.d.ts +627 -0
  169. package/dropdown/dropdown.interface.d.ts +154 -0
  170. package/dropdown/dropdown.module.d.ts +11 -0
  171. package/dropdown/index.d.ts +5 -0
  172. package/dropdown/public_api.d.ts +4 -0
  173. package/dynamicdialog/dialogservice.d.ts +35 -0
  174. package/dynamicdialog/dynamicdialog-config.d.ts +221 -0
  175. package/dynamicdialog/dynamicdialog-injector.d.ts +7 -0
  176. package/dynamicdialog/dynamicdialog-ref.d.ts +101 -0
  177. package/dynamicdialog/dynamicdialog.d.ts +124 -0
  178. package/dynamicdialog/dynamicdialogcontent.d.ts +8 -0
  179. package/dynamicdialog/index.d.ts +5 -0
  180. package/dynamicdialog/public_api.d.ts +6 -0
  181. package/editor/editor.d.ts +111 -0
  182. package/editor/editor.interface.d.ts +64 -0
  183. package/editor/index.d.ts +5 -0
  184. package/editor/public_api.d.ts +2 -0
  185. package/esm2022/accordion/accordion.interface.mjs +2 -0
  186. package/esm2022/accordion/accordion.mjs +591 -0
  187. package/esm2022/accordion/accordion.module.mjs +23 -0
  188. package/esm2022/accordion/cax-design-system-accordion.mjs +5 -0
  189. package/esm2022/accordion/public_api.mjs +4 -0
  190. package/esm2022/animate/animate.mjs +101 -0
  191. package/esm2022/animate/cax-design-system-animate.mjs +5 -0
  192. package/esm2022/animate/public_api.mjs +2 -0
  193. package/esm2022/animateonscroll/animateonscroll.mjs +185 -0
  194. package/esm2022/animateonscroll/cax-design-system-animateonscroll.mjs +5 -0
  195. package/esm2022/animateonscroll/public_api.mjs +2 -0
  196. package/esm2022/api/blockableui.mjs +2 -0
  197. package/esm2022/api/cax-design-system-api.mjs +5 -0
  198. package/esm2022/api/caxconfig.mjs +163 -0
  199. package/esm2022/api/confirmaeventtype.mjs +10 -0
  200. package/esm2022/api/confirmation.mjs +2 -0
  201. package/esm2022/api/confirmationservice.mjs +43 -0
  202. package/esm2022/api/contextmenuservice.mjs +22 -0
  203. package/esm2022/api/filtermatchmode.mjs +23 -0
  204. package/esm2022/api/filtermetadata.mjs +2 -0
  205. package/esm2022/api/filteroperator.mjs +5 -0
  206. package/esm2022/api/filterservice.mjs +225 -0
  207. package/esm2022/api/lazyloadevent.mjs +2 -0
  208. package/esm2022/api/lazyloadmeta.mjs +2 -0
  209. package/esm2022/api/megamenuitem.mjs +2 -0
  210. package/esm2022/api/menuitem.mjs +2 -0
  211. package/esm2022/api/message.mjs +2 -0
  212. package/esm2022/api/messageservice.mjs +47 -0
  213. package/esm2022/api/overlayoptions.mjs +2 -0
  214. package/esm2022/api/overlayservice.mjs +19 -0
  215. package/esm2022/api/primeicons.mjs +314 -0
  216. package/esm2022/api/public_api.mjs +34 -0
  217. package/esm2022/api/scrolleroptions.mjs +2 -0
  218. package/esm2022/api/selectitem.mjs +2 -0
  219. package/esm2022/api/selectitemgroup.mjs +2 -0
  220. package/esm2022/api/shared.mjs +65 -0
  221. package/esm2022/api/sortevent.mjs +2 -0
  222. package/esm2022/api/sortmeta.mjs +2 -0
  223. package/esm2022/api/tablestate.mjs +2 -0
  224. package/esm2022/api/tooltipoptions.mjs +2 -0
  225. package/esm2022/api/translation.mjs +2 -0
  226. package/esm2022/api/translationkeys.mjs +51 -0
  227. package/esm2022/api/treedragdropservice.mjs +21 -0
  228. package/esm2022/api/treenode.mjs +2 -0
  229. package/esm2022/api/treenodedragevent.mjs +2 -0
  230. package/esm2022/api/treetablenode.mjs +2 -0
  231. package/esm2022/autocomplete/autocomplete.interface.mjs +2 -0
  232. package/esm2022/autocomplete/autocomplete.mjs +1880 -0
  233. package/esm2022/autocomplete/cax-design-system-autocomplete.mjs +5 -0
  234. package/esm2022/autocomplete/public_api.mjs +3 -0
  235. package/esm2022/autofocus/autofocus.mjs +78 -0
  236. package/esm2022/autofocus/cax-design-system-autofocus.mjs +5 -0
  237. package/esm2022/autofocus/public_api.mjs +2 -0
  238. package/esm2022/avatar/avatar.mjs +104 -0
  239. package/esm2022/avatar/avatar.module.mjs +16 -0
  240. package/esm2022/avatar/cax-design-system-avatar.mjs +5 -0
  241. package/esm2022/avatar/public_api.mjs +3 -0
  242. package/esm2022/avatargroup/avatargroup.mjs +54 -0
  243. package/esm2022/avatargroup/cax-design-system-avatargroup.mjs +5 -0
  244. package/esm2022/avatargroup/public_api.mjs +2 -0
  245. package/esm2022/badge/badge.directive.mjs +199 -0
  246. package/esm2022/badge/badge.mjs +51 -0
  247. package/esm2022/badge/badge.module.mjs +20 -0
  248. package/esm2022/badge/cax-design-system-badge.mjs +5 -0
  249. package/esm2022/badge/public_api.mjs +4 -0
  250. package/esm2022/baseicon/baseicon.mjs +45 -0
  251. package/esm2022/baseicon/cax-design-system-baseicon.mjs +5 -0
  252. package/esm2022/baseicon/public_api.mjs +2 -0
  253. package/esm2022/blockui/blockui.interface.mjs +2 -0
  254. package/esm2022/blockui/blockui.mjs +206 -0
  255. package/esm2022/blockui/cax-design-system-blockui.mjs +5 -0
  256. package/esm2022/blockui/public_api.mjs +3 -0
  257. package/esm2022/breadcrumb/breadcrumb.interface.mjs +2 -0
  258. package/esm2022/breadcrumb/breadcrumb.mjs +120 -0
  259. package/esm2022/breadcrumb/breadcrumb.module.mjs +23 -0
  260. package/esm2022/breadcrumb/cax-design-system-breadcrumb.mjs +5 -0
  261. package/esm2022/breadcrumb/public_api.mjs +4 -0
  262. package/esm2022/button/button.directive.mjs +227 -0
  263. package/esm2022/button/button.interface.mjs +2 -0
  264. package/esm2022/button/button.mjs +189 -0
  265. package/esm2022/button/button.module.mjs +18 -0
  266. package/esm2022/button/cax-design-system-button.mjs +5 -0
  267. package/esm2022/button/public_api.mjs +5 -0
  268. package/esm2022/buttongroup/buttongroup.mjs +38 -0
  269. package/esm2022/buttongroup/cax-design-system-buttongroup.mjs +5 -0
  270. package/esm2022/buttongroup/public_api.mjs +2 -0
  271. package/esm2022/calendar/calendar.interface.mjs +2 -0
  272. package/esm2022/calendar/calendar.mjs +3192 -0
  273. package/esm2022/calendar/calendar.module.mjs +18 -0
  274. package/esm2022/calendar/cax-design-system-calendar.mjs +5 -0
  275. package/esm2022/calendar/public_api.mjs +4 -0
  276. package/esm2022/card/card.interface.mjs +2 -0
  277. package/esm2022/card/card.mjs +117 -0
  278. package/esm2022/card/card.module.mjs +21 -0
  279. package/esm2022/card/cax-design-system-card.mjs +5 -0
  280. package/esm2022/card/public_api.mjs +4 -0
  281. package/esm2022/carousel/carousel.interface.mjs +2 -0
  282. package/esm2022/carousel/carousel.mjs +968 -0
  283. package/esm2022/carousel/cax-design-system-carousel.mjs +5 -0
  284. package/esm2022/carousel/public_api.mjs +3 -0
  285. package/esm2022/cascadeselect/cascadeselect.interface.mjs +2 -0
  286. package/esm2022/cascadeselect/cascadeselect.mjs +1135 -0
  287. package/esm2022/cascadeselect/cascadeselect.module.mjs +25 -0
  288. package/esm2022/cascadeselect/cax-design-system-cascadeselect.mjs +5 -0
  289. package/esm2022/cascadeselect/public_api.mjs +4 -0
  290. package/esm2022/cax-design-system.mjs +5 -0
  291. package/esm2022/chart/cax-design-system-chart.mjs +5 -0
  292. package/esm2022/chart/chart.mjs +236 -0
  293. package/esm2022/chart/public_api.mjs +2 -0
  294. package/esm2022/checkbox/cax-design-system-checkbox.mjs +5 -0
  295. package/esm2022/checkbox/checkbox.interface.mjs +2 -0
  296. package/esm2022/checkbox/checkbox.mjs +303 -0
  297. package/esm2022/checkbox/checkbox.module.mjs +20 -0
  298. package/esm2022/checkbox/public_api.mjs +4 -0
  299. package/esm2022/chip/cax-design-system-chip.mjs +5 -0
  300. package/esm2022/chip/chip.interface.mjs +2 -0
  301. package/esm2022/chip/chip.mjs +86 -0
  302. package/esm2022/chip/chip.module.mjs +20 -0
  303. package/esm2022/chip/public_api.mjs +4 -0
  304. package/esm2022/chips/cax-design-system-chips.mjs +5 -0
  305. package/esm2022/chips/chips.interface.mjs +2 -0
  306. package/esm2022/chips/chips.mjs +568 -0
  307. package/esm2022/chips/chips.module.mjs +22 -0
  308. package/esm2022/chips/public_api.mjs +4 -0
  309. package/esm2022/colorpicker/cax-design-system-colorpicker.mjs +5 -0
  310. package/esm2022/colorpicker/colorpicker.interface.mjs +2 -0
  311. package/esm2022/colorpicker/colorpicker.mjs +829 -0
  312. package/esm2022/colorpicker/public_api.mjs +3 -0
  313. package/esm2022/confirmdialog/cax-design-system-confirmdialog.mjs +5 -0
  314. package/esm2022/confirmdialog/confirmdialog.interface.mjs +2 -0
  315. package/esm2022/confirmdialog/confirmdialog.mjs +689 -0
  316. package/esm2022/confirmdialog/public_api.mjs +3 -0
  317. package/esm2022/confirmpopup/cax-design-system-confirmpopup.mjs +5 -0
  318. package/esm2022/confirmpopup/confirmpopup.interface.mjs +2 -0
  319. package/esm2022/confirmpopup/confirmpopup.mjs +499 -0
  320. package/esm2022/confirmpopup/public_api.mjs +3 -0
  321. package/esm2022/contextmenu/cax-design-system-contextmenu.mjs +5 -0
  322. package/esm2022/contextmenu/contextmenu.mjs +1304 -0
  323. package/esm2022/contextmenu/public_api.mjs +2 -0
  324. package/esm2022/dataview/cax-design-system-dataview.mjs +5 -0
  325. package/esm2022/dataview/dataview.interface.mjs +2 -0
  326. package/esm2022/dataview/dataview.mjs +723 -0
  327. package/esm2022/dataview/public_api.mjs +3 -0
  328. package/esm2022/defer/cax-design-system-defer.mjs +5 -0
  329. package/esm2022/defer/defer.mjs +111 -0
  330. package/esm2022/defer/public_api.mjs +2 -0
  331. package/esm2022/dialog/cax-design-system-dialog.mjs +5 -0
  332. package/esm2022/dialog/dialog.interface.mjs +2 -0
  333. package/esm2022/dialog/dialog.mjs +1168 -0
  334. package/esm2022/dialog/public_api.mjs +3 -0
  335. package/esm2022/divider/cax-design-system-divider.mjs +5 -0
  336. package/esm2022/divider/divider.mjs +69 -0
  337. package/esm2022/divider/divider.module.mjs +16 -0
  338. package/esm2022/divider/public_api.mjs +3 -0
  339. package/esm2022/dock/cax-design-system-dock.mjs +5 -0
  340. package/esm2022/dock/dock.interface.mjs +2 -0
  341. package/esm2022/dock/dock.mjs +431 -0
  342. package/esm2022/dock/public_api.mjs +3 -0
  343. package/esm2022/dom/cax-design-system-dom.mjs +5 -0
  344. package/esm2022/dom/connectedoverlayscrollhandler.mjs +30 -0
  345. package/esm2022/dom/domhandler.mjs +722 -0
  346. package/esm2022/dom/public_api.mjs +3 -0
  347. package/esm2022/dragdrop/cax-design-system-dragdrop.mjs +5 -0
  348. package/esm2022/dragdrop/dragdrop.mjs +309 -0
  349. package/esm2022/dragdrop/dragdrop.module.mjs +18 -0
  350. package/esm2022/dragdrop/public_api.mjs +3 -0
  351. package/esm2022/dropdown/cax-design-system-dropdown.mjs +5 -0
  352. package/esm2022/dropdown/dropdown-item.mjs +72 -0
  353. package/esm2022/dropdown/dropdown.interface.mjs +2 -0
  354. package/esm2022/dropdown/dropdown.mjs +1597 -0
  355. package/esm2022/dropdown/dropdown.module.mjs +20 -0
  356. package/esm2022/dropdown/public_api.mjs +5 -0
  357. package/esm2022/dynamicdialog/cax-design-system-dynamicdialog.mjs +5 -0
  358. package/esm2022/dynamicdialog/dialogservice.mjs +102 -0
  359. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +187 -0
  360. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +15 -0
  361. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +119 -0
  362. package/esm2022/dynamicdialog/dynamicdialog.mjs +696 -0
  363. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +20 -0
  364. package/esm2022/dynamicdialog/public_api.mjs +7 -0
  365. package/esm2022/editor/cax-design-system-editor.mjs +5 -0
  366. package/esm2022/editor/editor.interface.mjs +2 -0
  367. package/esm2022/editor/editor.mjs +392 -0
  368. package/esm2022/editor/public_api.mjs +3 -0
  369. package/esm2022/fieldset/cax-design-system-fieldset.mjs +5 -0
  370. package/esm2022/fieldset/fieldset.interface.mjs +2 -0
  371. package/esm2022/fieldset/fieldset.mjs +297 -0
  372. package/esm2022/fieldset/public_api.mjs +3 -0
  373. package/esm2022/fileupload/cax-design-system-fileupload.mjs +5 -0
  374. package/esm2022/fileupload/fileupload.interface.mjs +2 -0
  375. package/esm2022/fileupload/fileupload.mjs +1188 -0
  376. package/esm2022/fileupload/public_api.mjs +3 -0
  377. package/esm2022/floatlabel/cax-design-system-floatlabel.mjs +5 -0
  378. package/esm2022/floatlabel/floatlabel.mjs +44 -0
  379. package/esm2022/floatlabel/public_api.mjs +2 -0
  380. package/esm2022/focustrap/cax-design-system-focustrap.mjs +5 -0
  381. package/esm2022/focustrap/focustrap.mjs +103 -0
  382. package/esm2022/focustrap/public_api.mjs +2 -0
  383. package/esm2022/galleria/cax-design-system-galleria.mjs +5 -0
  384. package/esm2022/galleria/galleria.interface.mjs +2 -0
  385. package/esm2022/galleria/galleria.mjs +1668 -0
  386. package/esm2022/galleria/public_api.mjs +3 -0
  387. package/esm2022/iconfield/cax-design-system-iconfield.mjs +5 -0
  388. package/esm2022/iconfield/iconfield.mjs +44 -0
  389. package/esm2022/iconfield/public_api.mjs +2 -0
  390. package/esm2022/icons/angledoubledown/angledoubledown.mjs +35 -0
  391. package/esm2022/icons/angledoubledown/cax-design-system-icons-angledoubledown.mjs +5 -0
  392. package/esm2022/icons/angledoubledown/public_api.mjs +2 -0
  393. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +35 -0
  394. package/esm2022/icons/angledoubleleft/cax-design-system-icons-angledoubleleft.mjs +5 -0
  395. package/esm2022/icons/angledoubleleft/public_api.mjs +2 -0
  396. package/esm2022/icons/angledoubleright/angledoubleright.mjs +35 -0
  397. package/esm2022/icons/angledoubleright/cax-design-system-icons-angledoubleright.mjs +5 -0
  398. package/esm2022/icons/angledoubleright/public_api.mjs +2 -0
  399. package/esm2022/icons/angledoubleup/angledoubleup.mjs +35 -0
  400. package/esm2022/icons/angledoubleup/cax-design-system-icons-angledoubleup.mjs +5 -0
  401. package/esm2022/icons/angledoubleup/public_api.mjs +2 -0
  402. package/esm2022/icons/angledown/angledown.mjs +31 -0
  403. package/esm2022/icons/angledown/cax-design-system-icons-angledown.mjs +5 -0
  404. package/esm2022/icons/angledown/public_api.mjs +2 -0
  405. package/esm2022/icons/angleleft/angleleft.mjs +31 -0
  406. package/esm2022/icons/angleleft/cax-design-system-icons-angleleft.mjs +5 -0
  407. package/esm2022/icons/angleleft/public_api.mjs +2 -0
  408. package/esm2022/icons/angleright/angleright.mjs +31 -0
  409. package/esm2022/icons/angleright/cax-design-system-icons-angleright.mjs +5 -0
  410. package/esm2022/icons/angleright/public_api.mjs +2 -0
  411. package/esm2022/icons/angleup/angleup.mjs +31 -0
  412. package/esm2022/icons/angleup/cax-design-system-icons-angleup.mjs +5 -0
  413. package/esm2022/icons/angleup/public_api.mjs +2 -0
  414. package/esm2022/icons/arrowdown/arrowdown.mjs +54 -0
  415. package/esm2022/icons/arrowdown/cax-design-system-icons-arrowdown.mjs +5 -0
  416. package/esm2022/icons/arrowdown/public_api.mjs +2 -0
  417. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +31 -0
  418. package/esm2022/icons/arrowdownleft/cax-design-system-icons-arrowdownleft.mjs +5 -0
  419. package/esm2022/icons/arrowdownleft/public_api.mjs +2 -0
  420. package/esm2022/icons/arrowdownright/arrowdownright.mjs +31 -0
  421. package/esm2022/icons/arrowdownright/cax-design-system-icons-arrowdownright.mjs +5 -0
  422. package/esm2022/icons/arrowdownright/public_api.mjs +2 -0
  423. package/esm2022/icons/arrowleft/arrowleft.mjs +54 -0
  424. package/esm2022/icons/arrowleft/cax-design-system-icons-arrowleft.mjs +5 -0
  425. package/esm2022/icons/arrowleft/public_api.mjs +2 -0
  426. package/esm2022/icons/arrowright/arrowright.mjs +35 -0
  427. package/esm2022/icons/arrowright/cax-design-system-icons-arrowright.mjs +5 -0
  428. package/esm2022/icons/arrowright/public_api.mjs +2 -0
  429. package/esm2022/icons/arrowup/arrowup.mjs +54 -0
  430. package/esm2022/icons/arrowup/cax-design-system-icons-arrowup.mjs +5 -0
  431. package/esm2022/icons/arrowup/public_api.mjs +2 -0
  432. package/esm2022/icons/ban/ban.mjs +50 -0
  433. package/esm2022/icons/ban/cax-design-system-icons-ban.mjs +5 -0
  434. package/esm2022/icons/ban/public_api.mjs +2 -0
  435. package/esm2022/icons/bars/bars.mjs +35 -0
  436. package/esm2022/icons/bars/cax-design-system-icons-bars.mjs +5 -0
  437. package/esm2022/icons/bars/public_api.mjs +2 -0
  438. package/esm2022/icons/blank/blank.mjs +25 -0
  439. package/esm2022/icons/blank/cax-design-system-icons-blank.mjs +5 -0
  440. package/esm2022/icons/blank/public_api.mjs +2 -0
  441. package/esm2022/icons/calendar/calendar.mjs +31 -0
  442. package/esm2022/icons/calendar/cax-design-system-icons-calendar.mjs +5 -0
  443. package/esm2022/icons/calendar/public_api.mjs +2 -0
  444. package/esm2022/icons/caretleft/caretleft.mjs +31 -0
  445. package/esm2022/icons/caretleft/cax-design-system-icons-caretleft.mjs +5 -0
  446. package/esm2022/icons/caretleft/public_api.mjs +2 -0
  447. package/esm2022/icons/caretright/caretright.mjs +31 -0
  448. package/esm2022/icons/caretright/cax-design-system-icons-caretright.mjs +5 -0
  449. package/esm2022/icons/caretright/public_api.mjs +2 -0
  450. package/esm2022/icons/check/cax-design-system-icons-check.mjs +5 -0
  451. package/esm2022/icons/check/check.mjs +31 -0
  452. package/esm2022/icons/check/public_api.mjs +2 -0
  453. package/esm2022/icons/chevrondown/cax-design-system-icons-chevrondown.mjs +5 -0
  454. package/esm2022/icons/chevrondown/chevrondown.mjs +31 -0
  455. package/esm2022/icons/chevrondown/public_api.mjs +2 -0
  456. package/esm2022/icons/chevronleft/cax-design-system-icons-chevronleft.mjs +5 -0
  457. package/esm2022/icons/chevronleft/chevronleft.mjs +31 -0
  458. package/esm2022/icons/chevronleft/public_api.mjs +2 -0
  459. package/esm2022/icons/chevronright/cax-design-system-icons-chevronright.mjs +5 -0
  460. package/esm2022/icons/chevronright/chevronright.mjs +31 -0
  461. package/esm2022/icons/chevronright/public_api.mjs +2 -0
  462. package/esm2022/icons/chevronup/cax-design-system-icons-chevronup.mjs +5 -0
  463. package/esm2022/icons/chevronup/chevronup.mjs +31 -0
  464. package/esm2022/icons/chevronup/public_api.mjs +2 -0
  465. package/esm2022/icons/exclamationtriangle/cax-design-system-icons-exclamationtriangle.mjs +5 -0
  466. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +66 -0
  467. package/esm2022/icons/exclamationtriangle/public_api.mjs +2 -0
  468. package/esm2022/icons/eye/cax-design-system-icons-eye.mjs +5 -0
  469. package/esm2022/icons/eye/eye.mjs +35 -0
  470. package/esm2022/icons/eye/public_api.mjs +2 -0
  471. package/esm2022/icons/eyeslash/cax-design-system-icons-eyeslash.mjs +5 -0
  472. package/esm2022/icons/eyeslash/eyeslash.mjs +54 -0
  473. package/esm2022/icons/eyeslash/public_api.mjs +2 -0
  474. package/esm2022/icons/filter/cax-design-system-icons-filter.mjs +5 -0
  475. package/esm2022/icons/filter/filter.mjs +50 -0
  476. package/esm2022/icons/filter/public_api.mjs +2 -0
  477. package/esm2022/icons/filterslash/cax-design-system-icons-filterslash.mjs +5 -0
  478. package/esm2022/icons/filterslash/filterslash.mjs +54 -0
  479. package/esm2022/icons/filterslash/public_api.mjs +2 -0
  480. package/esm2022/icons/home/cax-design-system-icons-home.mjs +5 -0
  481. package/esm2022/icons/home/home.mjs +54 -0
  482. package/esm2022/icons/home/public_api.mjs +2 -0
  483. package/esm2022/icons/infocircle/cax-design-system-icons-infocircle.mjs +5 -0
  484. package/esm2022/icons/infocircle/infocircle.mjs +54 -0
  485. package/esm2022/icons/infocircle/public_api.mjs +2 -0
  486. package/esm2022/icons/minus/cax-design-system-icons-minus.mjs +5 -0
  487. package/esm2022/icons/minus/minus.mjs +32 -0
  488. package/esm2022/icons/minus/public_api.mjs +2 -0
  489. package/esm2022/icons/pencil/cax-design-system-icons-pencil.mjs +5 -0
  490. package/esm2022/icons/pencil/pencil.mjs +50 -0
  491. package/esm2022/icons/pencil/public_api.mjs +2 -0
  492. package/esm2022/icons/plus/cax-design-system-icons-plus.mjs +5 -0
  493. package/esm2022/icons/plus/plus.mjs +50 -0
  494. package/esm2022/icons/plus/public_api.mjs +2 -0
  495. package/esm2022/icons/refresh/cax-design-system-icons-refresh.mjs +5 -0
  496. package/esm2022/icons/refresh/public_api.mjs +2 -0
  497. package/esm2022/icons/refresh/refresh.mjs +54 -0
  498. package/esm2022/icons/search/cax-design-system-icons-search.mjs +5 -0
  499. package/esm2022/icons/search/public_api.mjs +2 -0
  500. package/esm2022/icons/search/search.mjs +54 -0
  501. package/esm2022/icons/searchminus/cax-design-system-icons-searchminus.mjs +5 -0
  502. package/esm2022/icons/searchminus/public_api.mjs +2 -0
  503. package/esm2022/icons/searchminus/searchminus.mjs +54 -0
  504. package/esm2022/icons/searchplus/cax-design-system-icons-searchplus.mjs +5 -0
  505. package/esm2022/icons/searchplus/public_api.mjs +2 -0
  506. package/esm2022/icons/searchplus/searchplus.mjs +54 -0
  507. package/esm2022/icons/sortalt/cax-design-system-icons-sortalt.mjs +5 -0
  508. package/esm2022/icons/sortalt/public_api.mjs +2 -0
  509. package/esm2022/icons/sortalt/sortalt.mjs +62 -0
  510. package/esm2022/icons/sortamountdown/cax-design-system-icons-sortamountdown.mjs +5 -0
  511. package/esm2022/icons/sortamountdown/public_api.mjs +2 -0
  512. package/esm2022/icons/sortamountdown/sortamountdown.mjs +50 -0
  513. package/esm2022/icons/sortamountupalt/cax-design-system-icons-sortamountupalt.mjs +5 -0
  514. package/esm2022/icons/sortamountupalt/public_api.mjs +2 -0
  515. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +50 -0
  516. package/esm2022/icons/spinner/cax-design-system-icons-spinner.mjs +5 -0
  517. package/esm2022/icons/spinner/public_api.mjs +2 -0
  518. package/esm2022/icons/spinner/spinner.mjs +50 -0
  519. package/esm2022/icons/star/cax-design-system-icons-star.mjs +5 -0
  520. package/esm2022/icons/star/public_api.mjs +2 -0
  521. package/esm2022/icons/star/star.mjs +50 -0
  522. package/esm2022/icons/starfill/cax-design-system-icons-starfill.mjs +5 -0
  523. package/esm2022/icons/starfill/public_api.mjs +2 -0
  524. package/esm2022/icons/starfill/starfill.mjs +50 -0
  525. package/esm2022/icons/thlarge/cax-design-system-icons-thlarge.mjs +5 -0
  526. package/esm2022/icons/thlarge/public_api.mjs +2 -0
  527. package/esm2022/icons/thlarge/thlarge.mjs +54 -0
  528. package/esm2022/icons/times/cax-design-system-icons-times.mjs +5 -0
  529. package/esm2022/icons/times/public_api.mjs +2 -0
  530. package/esm2022/icons/times/times.mjs +31 -0
  531. package/esm2022/icons/timescircle/cax-design-system-icons-timescircle.mjs +5 -0
  532. package/esm2022/icons/timescircle/public_api.mjs +2 -0
  533. package/esm2022/icons/timescircle/timescircle.mjs +54 -0
  534. package/esm2022/icons/trash/cax-design-system-icons-trash.mjs +5 -0
  535. package/esm2022/icons/trash/public_api.mjs +2 -0
  536. package/esm2022/icons/trash/trash.mjs +54 -0
  537. package/esm2022/icons/undo/cax-design-system-icons-undo.mjs +5 -0
  538. package/esm2022/icons/undo/public_api.mjs +2 -0
  539. package/esm2022/icons/undo/undo.mjs +54 -0
  540. package/esm2022/icons/upload/cax-design-system-icons-upload.mjs +5 -0
  541. package/esm2022/icons/upload/public_api.mjs +2 -0
  542. package/esm2022/icons/upload/upload.mjs +54 -0
  543. package/esm2022/icons/windowmaximize/cax-design-system-icons-windowmaximize.mjs +5 -0
  544. package/esm2022/icons/windowmaximize/public_api.mjs +2 -0
  545. package/esm2022/icons/windowmaximize/windowmaximize.mjs +54 -0
  546. package/esm2022/icons/windowminimize/cax-design-system-icons-windowminimize.mjs +5 -0
  547. package/esm2022/icons/windowminimize/public_api.mjs +2 -0
  548. package/esm2022/icons/windowminimize/windowminimize.mjs +54 -0
  549. package/esm2022/image/cax-design-system-image.mjs +5 -0
  550. package/esm2022/image/image.interface.mjs +2 -0
  551. package/esm2022/image/image.mjs +418 -0
  552. package/esm2022/image/image.module.mjs +17 -0
  553. package/esm2022/image/public_api.mjs +4 -0
  554. package/esm2022/inplace/cax-design-system-inplace.mjs +5 -0
  555. package/esm2022/inplace/inplace.interface.mjs +2 -0
  556. package/esm2022/inplace/inplace.mjs +243 -0
  557. package/esm2022/inplace/public_api.mjs +3 -0
  558. package/esm2022/inputgroup/cax-design-system-inputgroup.mjs +5 -0
  559. package/esm2022/inputgroup/inputgroup.mjs +48 -0
  560. package/esm2022/inputgroup/inputgroup.module.mjs +25 -0
  561. package/esm2022/inputgroup/public_api.mjs +3 -0
  562. package/esm2022/inputgroupaddon/cax-design-system-inputgroupaddon.mjs +5 -0
  563. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +32 -0
  564. package/esm2022/inputgroupaddon/inputgroupaddon.module.mjs +24 -0
  565. package/esm2022/inputgroupaddon/public_api.mjs +3 -0
  566. package/esm2022/inputicon/cax-design-system-inputicon.mjs +5 -0
  567. package/esm2022/inputicon/inputicon.mjs +38 -0
  568. package/esm2022/inputicon/public_api.mjs +2 -0
  569. package/esm2022/inputmask/cax-design-system-inputmask.mjs +5 -0
  570. package/esm2022/inputmask/inputmask.interface.mjs +2 -0
  571. package/esm2022/inputmask/inputmask.mjs +914 -0
  572. package/esm2022/inputmask/public_api.mjs +3 -0
  573. package/esm2022/inputnumber/cax-design-system-inputnumber.mjs +5 -0
  574. package/esm2022/inputnumber/inputnumber.interface.mjs +2 -0
  575. package/esm2022/inputnumber/inputnumber.mjs +1290 -0
  576. package/esm2022/inputnumber/inputnumber.module.mjs +17 -0
  577. package/esm2022/inputnumber/public_api.mjs +4 -0
  578. package/esm2022/inputotp/cax-design-system-inputotp.mjs +5 -0
  579. package/esm2022/inputotp/inputotp.interface.mjs +2 -0
  580. package/esm2022/inputotp/inputotp.mjs +381 -0
  581. package/esm2022/inputotp/public_api.mjs +3 -0
  582. package/esm2022/inputswitch/cax-design-system-inputswitch.mjs +5 -0
  583. package/esm2022/inputswitch/inputswitch.interface.mjs +2 -0
  584. package/esm2022/inputswitch/inputswitch.mjs +244 -0
  585. package/esm2022/inputswitch/public_api.mjs +3 -0
  586. package/esm2022/inputtext/cax-design-system-inputtext.mjs +5 -0
  587. package/esm2022/inputtext/inputtext.component.mjs +74 -0
  588. package/esm2022/inputtext/inputtext.directive.mjs +52 -0
  589. package/esm2022/inputtext/inputtext.module.mjs +20 -0
  590. package/esm2022/inputtext/public_api.mjs +4 -0
  591. package/esm2022/inputtextarea/cax-design-system-inputtextarea.mjs +5 -0
  592. package/esm2022/inputtextarea/inputtextarea.mjs +135 -0
  593. package/esm2022/inputtextarea/public_api.mjs +2 -0
  594. package/esm2022/keyfilter/cax-design-system-keyfilter.mjs +5 -0
  595. package/esm2022/keyfilter/keyfilter.interface.mjs +2 -0
  596. package/esm2022/keyfilter/keyfilter.mjs +265 -0
  597. package/esm2022/keyfilter/public_api.mjs +3 -0
  598. package/esm2022/knob/cax-design-system-knob.mjs +5 -0
  599. package/esm2022/knob/knob.mjs +464 -0
  600. package/esm2022/knob/public_api.mjs +2 -0
  601. package/esm2022/listbox/cax-design-system-listbox.mjs +5 -0
  602. package/esm2022/listbox/listbox.interface.mjs +2 -0
  603. package/esm2022/listbox/listbox.mjs +1555 -0
  604. package/esm2022/listbox/public_api.mjs +3 -0
  605. package/esm2022/logo/cax-design-system-logo.mjs +5 -0
  606. package/esm2022/logo/logo.mjs +45 -0
  607. package/esm2022/logo/logo.module.mjs +16 -0
  608. package/esm2022/logo/public_api.mjs +3 -0
  609. package/esm2022/megamenu/cax-design-system-megamenu.mjs +5 -0
  610. package/esm2022/megamenu/megamenu.interface.mjs +2 -0
  611. package/esm2022/megamenu/megamenu.mjs +1190 -0
  612. package/esm2022/megamenu/public_api.mjs +3 -0
  613. package/esm2022/menu/cax-design-system-menu.mjs +5 -0
  614. package/esm2022/menu/menu.mjs +953 -0
  615. package/esm2022/menu/public_api.mjs +2 -0
  616. package/esm2022/menubar/cax-design-system-menubar.mjs +5 -0
  617. package/esm2022/menubar/menubar.interface.mjs +2 -0
  618. package/esm2022/menubar/menubar.mjs +1249 -0
  619. package/esm2022/menubar/public_api.mjs +3 -0
  620. package/esm2022/message/cax-design-system-message.mjs +5 -0
  621. package/esm2022/message/message.mjs +112 -0
  622. package/esm2022/message/public_api.mjs +2 -0
  623. package/esm2022/messages/cax-design-system-messages.mjs +5 -0
  624. package/esm2022/messages/messages.interface.mjs +2 -0
  625. package/esm2022/messages/messages.mjs +283 -0
  626. package/esm2022/messages/messages.module.mjs +17 -0
  627. package/esm2022/messages/public_api.mjs +4 -0
  628. package/esm2022/metergroup/cax-design-system-metergroup.mjs +5 -0
  629. package/esm2022/metergroup/metergroup.interface.mjs +2 -0
  630. package/esm2022/metergroup/metergroup.mjs +280 -0
  631. package/esm2022/metergroup/public_api.mjs +3 -0
  632. package/esm2022/multiselect/cax-design-system-multiselect.mjs +5 -0
  633. package/esm2022/multiselect/multiselect.interface.mjs +2 -0
  634. package/esm2022/multiselect/multiselect.mjs +2525 -0
  635. package/esm2022/multiselect/public_api.mjs +3 -0
  636. package/esm2022/navigation/cax-design-system-navigation.mjs +5 -0
  637. package/esm2022/navigation/navigation.interface.mjs +2 -0
  638. package/esm2022/navigation/navigation.mjs +261 -0
  639. package/esm2022/navigation/navigation.module.mjs +16 -0
  640. package/esm2022/navigation/public_api.mjs +3 -0
  641. package/esm2022/orderlist/cax-design-system-orderlist.mjs +5 -0
  642. package/esm2022/orderlist/orderlist.interface.mjs +2 -0
  643. package/esm2022/orderlist/orderlist.mjs +993 -0
  644. package/esm2022/orderlist/public_api.mjs +3 -0
  645. package/esm2022/organizationchart/cax-design-system-organizationchart.mjs +5 -0
  646. package/esm2022/organizationchart/organizationchart.interface.mjs +2 -0
  647. package/esm2022/organizationchart/organizationchart.mjs +416 -0
  648. package/esm2022/organizationchart/public_api.mjs +3 -0
  649. package/esm2022/overlay/cax-design-system-overlay.mjs +5 -0
  650. package/esm2022/overlay/overlay.mjs +579 -0
  651. package/esm2022/overlay/overlay.module.mjs +17 -0
  652. package/esm2022/overlay/public_api.mjs +3 -0
  653. package/esm2022/overlaypanel/cax-design-system-overlaypanel.mjs +5 -0
  654. package/esm2022/overlaypanel/overlaypanel.mjs +470 -0
  655. package/esm2022/overlaypanel/overlaypanel.module.mjs +17 -0
  656. package/esm2022/overlaypanel/public_api.mjs +3 -0
  657. package/esm2022/paginator/cax-design-system-paginator.mjs +5 -0
  658. package/esm2022/paginator/paginator.interface.mjs +2 -0
  659. package/esm2022/paginator/paginator.mjs +424 -0
  660. package/esm2022/paginator/paginator.module.mjs +27 -0
  661. package/esm2022/paginator/public_api.mjs +4 -0
  662. package/esm2022/panel/cax-design-system-panel.mjs +5 -0
  663. package/esm2022/panel/panel.interface.mjs +2 -0
  664. package/esm2022/panel/panel.mjs +393 -0
  665. package/esm2022/panel/public_api.mjs +3 -0
  666. package/esm2022/panelmenu/cax-design-system-panelmenu.mjs +5 -0
  667. package/esm2022/panelmenu/panelmenu.interface.mjs +2 -0
  668. package/esm2022/panelmenu/panelmenu.mjs +1276 -0
  669. package/esm2022/panelmenu/public_api.mjs +3 -0
  670. package/esm2022/password/cax-design-system-password.mjs +5 -0
  671. package/esm2022/password/password.mjs +1017 -0
  672. package/esm2022/password/public_api.mjs +2 -0
  673. package/esm2022/picklist/cax-design-system-picklist.mjs +5 -0
  674. package/esm2022/picklist/picklist.interface.mjs +2 -0
  675. package/esm2022/picklist/picklist.mjs +1909 -0
  676. package/esm2022/picklist/public_api.mjs +3 -0
  677. package/esm2022/progressbar/cax-design-system-progressbar.mjs +5 -0
  678. package/esm2022/progressbar/progressbar.mjs +86 -0
  679. package/esm2022/progressbar/progressbar.module.mjs +18 -0
  680. package/esm2022/progressbar/public_api.mjs +3 -0
  681. package/esm2022/progressspinner/cax-design-system-progressspinner.mjs +5 -0
  682. package/esm2022/progressspinner/progressspinner.mjs +112 -0
  683. package/esm2022/progressspinner/progressspinner.module.mjs +18 -0
  684. package/esm2022/progressspinner/public_api.mjs +3 -0
  685. package/esm2022/public_api.mjs +2 -0
  686. package/esm2022/radiobutton/cax-design-system-radiobutton.mjs +5 -0
  687. package/esm2022/radiobutton/public_api.mjs +4 -0
  688. package/esm2022/radiobutton/radiobutton.interface.mjs +2 -0
  689. package/esm2022/radiobutton/radiobutton.mjs +277 -0
  690. package/esm2022/radiobutton/radiobutton.module.mjs +16 -0
  691. package/esm2022/rating/cax-design-system-rating.mjs +5 -0
  692. package/esm2022/rating/public_api.mjs +3 -0
  693. package/esm2022/rating/rating.interface.mjs +2 -0
  694. package/esm2022/rating/rating.mjs +388 -0
  695. package/esm2022/ripple/cax-design-system-ripple.mjs +5 -0
  696. package/esm2022/ripple/public_api.mjs +3 -0
  697. package/esm2022/ripple/ripple.mjs +129 -0
  698. package/esm2022/ripple/ripple.module.mjs +16 -0
  699. package/esm2022/scroller/cax-design-system-scroller.mjs +5 -0
  700. package/esm2022/scroller/public_api.mjs +4 -0
  701. package/esm2022/scroller/scroller.interface.mjs +2 -0
  702. package/esm2022/scroller/scroller.mjs +981 -0
  703. package/esm2022/scroller/scroller.module.mjs +17 -0
  704. package/esm2022/scrollpanel/cax-design-system-scrollpanel.mjs +5 -0
  705. package/esm2022/scrollpanel/public_api.mjs +3 -0
  706. package/esm2022/scrollpanel/scrollpanel.interface.mjs +2 -0
  707. package/esm2022/scrollpanel/scrollpanel.mjs +501 -0
  708. package/esm2022/scrolltop/cax-design-system-scrolltop.mjs +5 -0
  709. package/esm2022/scrolltop/public_api.mjs +3 -0
  710. package/esm2022/scrolltop/scrolltop.interface.mjs +2 -0
  711. package/esm2022/scrolltop/scrolltop.mjs +282 -0
  712. package/esm2022/selectbutton/cax-design-system-selectbutton.mjs +5 -0
  713. package/esm2022/selectbutton/public_api.mjs +3 -0
  714. package/esm2022/selectbutton/selectbutton.interface.mjs +2 -0
  715. package/esm2022/selectbutton/selectbutton.mjs +378 -0
  716. package/esm2022/sidebar/cax-design-system-sidebar.mjs +5 -0
  717. package/esm2022/sidebar/public_api.mjs +4 -0
  718. package/esm2022/sidebar/sidebar.interface.mjs +2 -0
  719. package/esm2022/sidebar/sidebar.mjs +419 -0
  720. package/esm2022/sidebar/sidebar.module.mjs +21 -0
  721. package/esm2022/skeleton/cax-design-system-skeleton.mjs +5 -0
  722. package/esm2022/skeleton/public_api.mjs +3 -0
  723. package/esm2022/skeleton/skeleton.mjs +87 -0
  724. package/esm2022/skeleton/skeleton.module.mjs +18 -0
  725. package/esm2022/slidemenu/cax-design-system-slidemenu.mjs +5 -0
  726. package/esm2022/slidemenu/public_api.mjs +3 -0
  727. package/esm2022/slidemenu/slidemenu.interface.mjs +2 -0
  728. package/esm2022/slidemenu/slidemenu.mjs +1501 -0
  729. package/esm2022/slider/cax-design-system-slider.mjs +5 -0
  730. package/esm2022/slider/public_api.mjs +3 -0
  731. package/esm2022/slider/slider.interface.mjs +2 -0
  732. package/esm2022/slider/slider.mjs +796 -0
  733. package/esm2022/speeddial/cax-design-system-speeddial.mjs +5 -0
  734. package/esm2022/speeddial/public_api.mjs +4 -0
  735. package/esm2022/speeddial/speeddial.interface.mjs +2 -0
  736. package/esm2022/speeddial/speeddial.mjs +611 -0
  737. package/esm2022/speeddial/speeddial.module.mjs +24 -0
  738. package/esm2022/spinner/cax-design-system-spinner.mjs +5 -0
  739. package/esm2022/spinner/public_api.mjs +2 -0
  740. package/esm2022/spinner/spinner.mjs +447 -0
  741. package/esm2022/splitbutton/cax-design-system-splitbutton.mjs +5 -0
  742. package/esm2022/splitbutton/public_api.mjs +4 -0
  743. package/esm2022/splitbutton/splitbutton.interface.mjs +2 -0
  744. package/esm2022/splitbutton/splitbutton.mjs +364 -0
  745. package/esm2022/splitbutton/splitbutton.module.mjs +22 -0
  746. package/esm2022/splitter/cax-design-system-splitter.mjs +5 -0
  747. package/esm2022/splitter/public_api.mjs +3 -0
  748. package/esm2022/splitter/splitter.interface.mjs +2 -0
  749. package/esm2022/splitter/splitter.mjs +562 -0
  750. package/esm2022/stepper/cax-design-system-stepper.mjs +5 -0
  751. package/esm2022/stepper/public_api.mjs +3 -0
  752. package/esm2022/stepper/stepper.interface.mjs +2 -0
  753. package/esm2022/stepper/stepper.mjs +677 -0
  754. package/esm2022/steps/cax-design-system-steps.mjs +5 -0
  755. package/esm2022/steps/public_api.mjs +2 -0
  756. package/esm2022/steps/steps.mjs +345 -0
  757. package/esm2022/styleclass/cax-design-system-styleclass.mjs +5 -0
  758. package/esm2022/styleclass/public_api.mjs +2 -0
  759. package/esm2022/styleclass/styleclass.mjs +316 -0
  760. package/esm2022/table/cax-design-system-table.mjs +5 -0
  761. package/esm2022/table/columnfilter.interface.mjs +2 -0
  762. package/esm2022/table/components/cell-editor/cell-editor.mjs +52 -0
  763. package/esm2022/table/components/column-filter/column-filter.mjs +685 -0
  764. package/esm2022/table/components/column-filter-form-element/column-filter-form-element.mjs +106 -0
  765. package/esm2022/table/components/sort-icon/sort-icon.mjs +75 -0
  766. package/esm2022/table/components/table-body/table-body.mjs +152 -0
  767. package/esm2022/table/components/table-checkbox/table-checkbox.mjs +82 -0
  768. package/esm2022/table/components/table-header-checkbox/table-header-checkbox.mjs +92 -0
  769. package/esm2022/table/components/table-radio-button/table-radio-button.mjs +79 -0
  770. package/esm2022/table/directives/cancel-editable-row.directive.mjs +32 -0
  771. package/esm2022/table/directives/content-menu-row.directive.mjs +70 -0
  772. package/esm2022/table/directives/editable-column.directive.mjs +344 -0
  773. package/esm2022/table/directives/editable-row.directive.mjs +32 -0
  774. package/esm2022/table/directives/frozen-column.directive.mjs +77 -0
  775. package/esm2022/table/directives/init-editable-row.directive.mjs +32 -0
  776. package/esm2022/table/directives/reorderable-column.directive.mjs +115 -0
  777. package/esm2022/table/directives/reorderable-row-handle.directive.mjs +25 -0
  778. package/esm2022/table/directives/reorderable-row.directive.mjs +122 -0
  779. package/esm2022/table/directives/resizable-column.directive.mjs +123 -0
  780. package/esm2022/table/directives/row-group-header.directive.mjs +26 -0
  781. package/esm2022/table/directives/row-toggler.directive.mjs +42 -0
  782. package/esm2022/table/directives/save-editable-row.directive.mjs +32 -0
  783. package/esm2022/table/directives/selectable-row-double-click.directive.mjs +71 -0
  784. package/esm2022/table/directives/selectable-row.directive.mjs +243 -0
  785. package/esm2022/table/directives/sortable-column.directive.mjs +90 -0
  786. package/esm2022/table/public_api.mjs +29 -0
  787. package/esm2022/table/table.interface.mjs +2 -0
  788. package/esm2022/table/table.mjs +2721 -0
  789. package/esm2022/table/table.module.mjs +147 -0
  790. package/esm2022/table/table.service.mjs +42 -0
  791. package/esm2022/tabmenu/cax-design-system-tabmenu.mjs +5 -0
  792. package/esm2022/tabmenu/public_api.mjs +3 -0
  793. package/esm2022/tabmenu/tabmenu.interface.mjs +2 -0
  794. package/esm2022/tabmenu/tabmenu.mjs +576 -0
  795. package/esm2022/tabview/cax-design-system-tabview.mjs +5 -0
  796. package/esm2022/tabview/public_api.mjs +4 -0
  797. package/esm2022/tabview/tabview.interface.mjs +2 -0
  798. package/esm2022/tabview/tabview.mjs +824 -0
  799. package/esm2022/tabview/tabview.module.mjs +24 -0
  800. package/esm2022/tag/cax-design-system-tag.mjs +5 -0
  801. package/esm2022/tag/public_api.mjs +4 -0
  802. package/esm2022/tag/tag.interface.mjs +2 -0
  803. package/esm2022/tag/tag.mjs +95 -0
  804. package/esm2022/tag/tag.module.mjs +19 -0
  805. package/esm2022/terminal/cax-design-system-terminal.mjs +5 -0
  806. package/esm2022/terminal/public_api.mjs +3 -0
  807. package/esm2022/terminal/terminal.mjs +143 -0
  808. package/esm2022/terminal/terminalservice.mjs +25 -0
  809. package/esm2022/tieredmenu/cax-design-system-tieredmenu.mjs +5 -0
  810. package/esm2022/tieredmenu/public_api.mjs +4 -0
  811. package/esm2022/tieredmenu/tieredmenu.interface.mjs +2 -0
  812. package/esm2022/tieredmenu/tieredmenu.mjs +1289 -0
  813. package/esm2022/tieredmenu/tiredmenu.module.mjs +23 -0
  814. package/esm2022/timeline/cax-design-system-timeline.mjs +5 -0
  815. package/esm2022/timeline/public_api.mjs +3 -0
  816. package/esm2022/timeline/timeline.interface.mjs +2 -0
  817. package/esm2022/timeline/timeline.mjs +167 -0
  818. package/esm2022/toast/cax-design-system-toast.mjs +5 -0
  819. package/esm2022/toast/public_api.mjs +4 -0
  820. package/esm2022/toast/toast.interface.mjs +2 -0
  821. package/esm2022/toast/toast.mjs +324 -0
  822. package/esm2022/toast/toast.module.mjs +18 -0
  823. package/esm2022/toast/toastitem.mjs +170 -0
  824. package/esm2022/togglebutton/cax-design-system-togglebutton.mjs +5 -0
  825. package/esm2022/togglebutton/public_api.mjs +3 -0
  826. package/esm2022/togglebutton/togglebutton.interface.mjs +2 -0
  827. package/esm2022/togglebutton/togglebutton.mjs +274 -0
  828. package/esm2022/toggleswitch/cax-design-system-toggleswitch.mjs +5 -0
  829. package/esm2022/toggleswitch/public_api.mjs +3 -0
  830. package/esm2022/toggleswitch/toggleswitch.mjs +34 -0
  831. package/esm2022/toggleswitch/toggleswitch.module.mjs +19 -0
  832. package/esm2022/toolbar/cax-design-system-toolbar.mjs +5 -0
  833. package/esm2022/toolbar/public_api.mjs +3 -0
  834. package/esm2022/toolbar/toolbar.interface.mjs +2 -0
  835. package/esm2022/toolbar/toolbar.mjs +111 -0
  836. package/esm2022/tooltip/cax-design-system-tooltip.mjs +5 -0
  837. package/esm2022/tooltip/public_api.mjs +3 -0
  838. package/esm2022/tooltip/tooltip.mjs +889 -0
  839. package/esm2022/tooltip/tooltip.module.mjs +18 -0
  840. package/esm2022/tree/cax-design-system-tree.mjs +5 -0
  841. package/esm2022/tree/public_api.mjs +4 -0
  842. package/esm2022/tree/tree.interface.mjs +2 -0
  843. package/esm2022/tree/tree.mjs +1495 -0
  844. package/esm2022/tree/tree.module.mjs +29 -0
  845. package/esm2022/treeselect/cax-design-system-treeselect.mjs +5 -0
  846. package/esm2022/treeselect/public_api.mjs +3 -0
  847. package/esm2022/treeselect/treeselect.interface.mjs +2 -0
  848. package/esm2022/treeselect/treeselect.mjs +1193 -0
  849. package/esm2022/treetable/cax-design-system-treetable.mjs +5 -0
  850. package/esm2022/treetable/public_api.mjs +3 -0
  851. package/esm2022/treetable/treetable.interface.mjs +2 -0
  852. package/esm2022/treetable/treetable.mjs +4111 -0
  853. package/esm2022/tristatecheckbox/cax-design-system-tristatecheckbox.mjs +5 -0
  854. package/esm2022/tristatecheckbox/public_api.mjs +4 -0
  855. package/esm2022/tristatecheckbox/tristatecheckbox.interface.mjs +2 -0
  856. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +215 -0
  857. package/esm2022/tristatecheckbox/tristatecheckbox.module.mjs +17 -0
  858. package/esm2022/ts-helpers/cax-design-system-ts-helpers.mjs +5 -0
  859. package/esm2022/ts-helpers/public_api.mjs +2 -0
  860. package/esm2022/ts-helpers/ts-helpers.mjs +2 -0
  861. package/esm2022/utils/cax-design-system-utils.mjs +5 -0
  862. package/esm2022/utils/objectutils.mjs +258 -0
  863. package/esm2022/utils/public_api.mjs +5 -0
  864. package/esm2022/utils/uniquecomponentid.mjs +6 -0
  865. package/esm2022/utils/zindexutils.mjs +35 -0
  866. package/esm2022/virtualscroller/cax-design-system-virtualscroller.mjs +5 -0
  867. package/esm2022/virtualscroller/public_api.mjs +3 -0
  868. package/esm2022/virtualscroller/virtualscroller.interface.mjs +2 -0
  869. package/esm2022/virtualscroller/virtualscroller.mjs +215 -0
  870. package/fesm2022/cax-design-system-accordion.mjs +617 -0
  871. package/fesm2022/cax-design-system-accordion.mjs.map +1 -0
  872. package/fesm2022/cax-design-system-animate.mjs +108 -0
  873. package/fesm2022/cax-design-system-animate.mjs.map +1 -0
  874. package/fesm2022/cax-design-system-animateonscroll.mjs +192 -0
  875. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -0
  876. package/fesm2022/cax-design-system-api.mjs +995 -0
  877. package/fesm2022/cax-design-system-api.mjs.map +1 -0
  878. package/fesm2022/cax-design-system-autocomplete.mjs +1887 -0
  879. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -0
  880. package/fesm2022/cax-design-system-autofocus.mjs +85 -0
  881. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -0
  882. package/fesm2022/cax-design-system-avatar.mjs +124 -0
  883. package/fesm2022/cax-design-system-avatar.mjs.map +1 -0
  884. package/fesm2022/cax-design-system-avatargroup.mjs +61 -0
  885. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -0
  886. package/fesm2022/cax-design-system-badge.mjs +270 -0
  887. package/fesm2022/cax-design-system-badge.mjs.map +1 -0
  888. package/fesm2022/cax-design-system-baseicon.mjs +52 -0
  889. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -0
  890. package/fesm2022/cax-design-system-blockui.mjs +213 -0
  891. package/fesm2022/cax-design-system-blockui.mjs.map +1 -0
  892. package/fesm2022/cax-design-system-breadcrumb.mjs +146 -0
  893. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -0
  894. package/fesm2022/cax-design-system-button.mjs +431 -0
  895. package/fesm2022/cax-design-system-button.mjs.map +1 -0
  896. package/fesm2022/cax-design-system-buttongroup.mjs +45 -0
  897. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -0
  898. package/fesm2022/cax-design-system-calendar.mjs +3212 -0
  899. package/fesm2022/cax-design-system-calendar.mjs.map +1 -0
  900. package/fesm2022/cax-design-system-card.mjs +141 -0
  901. package/fesm2022/cax-design-system-card.mjs.map +1 -0
  902. package/fesm2022/cax-design-system-carousel.mjs +975 -0
  903. package/fesm2022/cax-design-system-carousel.mjs.map +1 -0
  904. package/fesm2022/cax-design-system-cascadeselect.mjs +1163 -0
  905. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -0
  906. package/fesm2022/cax-design-system-chart.mjs +243 -0
  907. package/fesm2022/cax-design-system-chart.mjs.map +1 -0
  908. package/fesm2022/cax-design-system-checkbox.mjs +326 -0
  909. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -0
  910. package/fesm2022/cax-design-system-chip.mjs +109 -0
  911. package/fesm2022/cax-design-system-chip.mjs.map +1 -0
  912. package/fesm2022/cax-design-system-chips.mjs +588 -0
  913. package/fesm2022/cax-design-system-chips.mjs.map +1 -0
  914. package/fesm2022/cax-design-system-colorpicker.mjs +836 -0
  915. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -0
  916. package/fesm2022/cax-design-system-confirmdialog.mjs +696 -0
  917. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -0
  918. package/fesm2022/cax-design-system-confirmpopup.mjs +506 -0
  919. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -0
  920. package/fesm2022/cax-design-system-contextmenu.mjs +1311 -0
  921. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -0
  922. package/fesm2022/cax-design-system-dataview.mjs +730 -0
  923. package/fesm2022/cax-design-system-dataview.mjs.map +1 -0
  924. package/fesm2022/cax-design-system-defer.mjs +118 -0
  925. package/fesm2022/cax-design-system-defer.mjs.map +1 -0
  926. package/fesm2022/cax-design-system-dialog.mjs +1175 -0
  927. package/fesm2022/cax-design-system-dialog.mjs.map +1 -0
  928. package/fesm2022/cax-design-system-divider.mjs +89 -0
  929. package/fesm2022/cax-design-system-divider.mjs.map +1 -0
  930. package/fesm2022/cax-design-system-dock.mjs +438 -0
  931. package/fesm2022/cax-design-system-dock.mjs.map +1 -0
  932. package/fesm2022/cax-design-system-dom.mjs +757 -0
  933. package/fesm2022/cax-design-system-dom.mjs.map +1 -0
  934. package/fesm2022/cax-design-system-dragdrop.mjs +331 -0
  935. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -0
  936. package/fesm2022/cax-design-system-dropdown.mjs +1684 -0
  937. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -0
  938. package/fesm2022/cax-design-system-dynamicdialog.mjs +1133 -0
  939. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -0
  940. package/fesm2022/cax-design-system-editor.mjs +399 -0
  941. package/fesm2022/cax-design-system-editor.mjs.map +1 -0
  942. package/fesm2022/cax-design-system-fieldset.mjs +304 -0
  943. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -0
  944. package/fesm2022/cax-design-system-fileupload.mjs +1195 -0
  945. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -0
  946. package/fesm2022/cax-design-system-floatlabel.mjs +51 -0
  947. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -0
  948. package/fesm2022/cax-design-system-focustrap.mjs +110 -0
  949. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -0
  950. package/fesm2022/cax-design-system-galleria.mjs +1675 -0
  951. package/fesm2022/cax-design-system-galleria.mjs.map +1 -0
  952. package/fesm2022/cax-design-system-iconfield.mjs +51 -0
  953. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -0
  954. package/fesm2022/cax-design-system-icons-angledoubledown.mjs +42 -0
  955. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -0
  956. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +42 -0
  957. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -0
  958. package/fesm2022/cax-design-system-icons-angledoubleright.mjs +42 -0
  959. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -0
  960. package/fesm2022/cax-design-system-icons-angledoubleup.mjs +42 -0
  961. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -0
  962. package/fesm2022/cax-design-system-icons-angledown.mjs +38 -0
  963. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -0
  964. package/fesm2022/cax-design-system-icons-angleleft.mjs +38 -0
  965. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -0
  966. package/fesm2022/cax-design-system-icons-angleright.mjs +38 -0
  967. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -0
  968. package/fesm2022/cax-design-system-icons-angleup.mjs +38 -0
  969. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -0
  970. package/fesm2022/cax-design-system-icons-arrowdown.mjs +61 -0
  971. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -0
  972. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +38 -0
  973. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -0
  974. package/fesm2022/cax-design-system-icons-arrowdownright.mjs +38 -0
  975. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -0
  976. package/fesm2022/cax-design-system-icons-arrowleft.mjs +61 -0
  977. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -0
  978. package/fesm2022/cax-design-system-icons-arrowright.mjs +42 -0
  979. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -0
  980. package/fesm2022/cax-design-system-icons-arrowup.mjs +61 -0
  981. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -0
  982. package/fesm2022/cax-design-system-icons-ban.mjs +57 -0
  983. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -0
  984. package/fesm2022/cax-design-system-icons-bars.mjs +42 -0
  985. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -0
  986. package/fesm2022/cax-design-system-icons-blank.mjs +32 -0
  987. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -0
  988. package/fesm2022/cax-design-system-icons-calendar.mjs +38 -0
  989. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -0
  990. package/fesm2022/cax-design-system-icons-caretleft.mjs +38 -0
  991. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -0
  992. package/fesm2022/cax-design-system-icons-caretright.mjs +38 -0
  993. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -0
  994. package/fesm2022/cax-design-system-icons-check.mjs +38 -0
  995. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -0
  996. package/fesm2022/cax-design-system-icons-chevrondown.mjs +38 -0
  997. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -0
  998. package/fesm2022/cax-design-system-icons-chevronleft.mjs +38 -0
  999. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -0
  1000. package/fesm2022/cax-design-system-icons-chevronright.mjs +38 -0
  1001. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -0
  1002. package/fesm2022/cax-design-system-icons-chevronup.mjs +38 -0
  1003. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -0
  1004. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +73 -0
  1005. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -0
  1006. package/fesm2022/cax-design-system-icons-eye.mjs +42 -0
  1007. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -0
  1008. package/fesm2022/cax-design-system-icons-eyeslash.mjs +61 -0
  1009. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -0
  1010. package/fesm2022/cax-design-system-icons-filter.mjs +57 -0
  1011. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -0
  1012. package/fesm2022/cax-design-system-icons-filterslash.mjs +61 -0
  1013. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -0
  1014. package/fesm2022/cax-design-system-icons-home.mjs +61 -0
  1015. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -0
  1016. package/fesm2022/cax-design-system-icons-infocircle.mjs +61 -0
  1017. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -0
  1018. package/fesm2022/cax-design-system-icons-minus.mjs +39 -0
  1019. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -0
  1020. package/fesm2022/cax-design-system-icons-pencil.mjs +57 -0
  1021. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -0
  1022. package/fesm2022/cax-design-system-icons-plus.mjs +57 -0
  1023. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -0
  1024. package/fesm2022/cax-design-system-icons-refresh.mjs +61 -0
  1025. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -0
  1026. package/fesm2022/cax-design-system-icons-search.mjs +61 -0
  1027. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -0
  1028. package/fesm2022/cax-design-system-icons-searchminus.mjs +61 -0
  1029. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -0
  1030. package/fesm2022/cax-design-system-icons-searchplus.mjs +61 -0
  1031. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -0
  1032. package/fesm2022/cax-design-system-icons-sortalt.mjs +69 -0
  1033. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -0
  1034. package/fesm2022/cax-design-system-icons-sortamountdown.mjs +57 -0
  1035. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -0
  1036. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +57 -0
  1037. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -0
  1038. package/fesm2022/cax-design-system-icons-spinner.mjs +57 -0
  1039. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -0
  1040. package/fesm2022/cax-design-system-icons-star.mjs +57 -0
  1041. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -0
  1042. package/fesm2022/cax-design-system-icons-starfill.mjs +57 -0
  1043. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -0
  1044. package/fesm2022/cax-design-system-icons-thlarge.mjs +61 -0
  1045. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -0
  1046. package/fesm2022/cax-design-system-icons-times.mjs +38 -0
  1047. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -0
  1048. package/fesm2022/cax-design-system-icons-timescircle.mjs +61 -0
  1049. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -0
  1050. package/fesm2022/cax-design-system-icons-trash.mjs +61 -0
  1051. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -0
  1052. package/fesm2022/cax-design-system-icons-undo.mjs +61 -0
  1053. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -0
  1054. package/fesm2022/cax-design-system-icons-upload.mjs +61 -0
  1055. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -0
  1056. package/fesm2022/cax-design-system-icons-windowmaximize.mjs +61 -0
  1057. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -0
  1058. package/fesm2022/cax-design-system-icons-windowminimize.mjs +61 -0
  1059. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -0
  1060. package/fesm2022/cax-design-system-image.mjs +438 -0
  1061. package/fesm2022/cax-design-system-image.mjs.map +1 -0
  1062. package/fesm2022/cax-design-system-inplace.mjs +250 -0
  1063. package/fesm2022/cax-design-system-inplace.mjs.map +1 -0
  1064. package/fesm2022/cax-design-system-inputgroup.mjs +77 -0
  1065. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -0
  1066. package/fesm2022/cax-design-system-inputgroupaddon.mjs +60 -0
  1067. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -0
  1068. package/fesm2022/cax-design-system-inputicon.mjs +45 -0
  1069. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -0
  1070. package/fesm2022/cax-design-system-inputmask.mjs +921 -0
  1071. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -0
  1072. package/fesm2022/cax-design-system-inputnumber.mjs +1310 -0
  1073. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -0
  1074. package/fesm2022/cax-design-system-inputotp.mjs +388 -0
  1075. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -0
  1076. package/fesm2022/cax-design-system-inputswitch.mjs +251 -0
  1077. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -0
  1078. package/fesm2022/cax-design-system-inputtext.mjs +145 -0
  1079. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -0
  1080. package/fesm2022/cax-design-system-inputtextarea.mjs +142 -0
  1081. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -0
  1082. package/fesm2022/cax-design-system-keyfilter.mjs +272 -0
  1083. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -0
  1084. package/fesm2022/cax-design-system-knob.mjs +471 -0
  1085. package/fesm2022/cax-design-system-knob.mjs.map +1 -0
  1086. package/fesm2022/cax-design-system-listbox.mjs +1562 -0
  1087. package/fesm2022/cax-design-system-listbox.mjs.map +1 -0
  1088. package/fesm2022/cax-design-system-logo.mjs +65 -0
  1089. package/fesm2022/cax-design-system-logo.mjs.map +1 -0
  1090. package/fesm2022/cax-design-system-megamenu.mjs +1197 -0
  1091. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -0
  1092. package/fesm2022/cax-design-system-menu.mjs +960 -0
  1093. package/fesm2022/cax-design-system-menu.mjs.map +1 -0
  1094. package/fesm2022/cax-design-system-menubar.mjs +1256 -0
  1095. package/fesm2022/cax-design-system-menubar.mjs.map +1 -0
  1096. package/fesm2022/cax-design-system-message.mjs +119 -0
  1097. package/fesm2022/cax-design-system-message.mjs.map +1 -0
  1098. package/fesm2022/cax-design-system-messages.mjs +303 -0
  1099. package/fesm2022/cax-design-system-messages.mjs.map +1 -0
  1100. package/fesm2022/cax-design-system-metergroup.mjs +287 -0
  1101. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -0
  1102. package/fesm2022/cax-design-system-multiselect.mjs +2532 -0
  1103. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -0
  1104. package/fesm2022/cax-design-system-navigation.mjs +281 -0
  1105. package/fesm2022/cax-design-system-navigation.mjs.map +1 -0
  1106. package/fesm2022/cax-design-system-orderlist.mjs +1000 -0
  1107. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -0
  1108. package/fesm2022/cax-design-system-organizationchart.mjs +423 -0
  1109. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -0
  1110. package/fesm2022/cax-design-system-overlay.mjs +599 -0
  1111. package/fesm2022/cax-design-system-overlay.mjs.map +1 -0
  1112. package/fesm2022/cax-design-system-overlaypanel.mjs +490 -0
  1113. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -0
  1114. package/fesm2022/cax-design-system-paginator.mjs +454 -0
  1115. package/fesm2022/cax-design-system-paginator.mjs.map +1 -0
  1116. package/fesm2022/cax-design-system-panel.mjs +400 -0
  1117. package/fesm2022/cax-design-system-panel.mjs.map +1 -0
  1118. package/fesm2022/cax-design-system-panelmenu.mjs +1283 -0
  1119. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -0
  1120. package/fesm2022/cax-design-system-password.mjs +1024 -0
  1121. package/fesm2022/cax-design-system-password.mjs.map +1 -0
  1122. package/fesm2022/cax-design-system-picklist.mjs +1916 -0
  1123. package/fesm2022/cax-design-system-picklist.mjs.map +1 -0
  1124. package/fesm2022/cax-design-system-progressbar.mjs +108 -0
  1125. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -0
  1126. package/fesm2022/cax-design-system-progressspinner.mjs +134 -0
  1127. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -0
  1128. package/fesm2022/cax-design-system-radiobutton.mjs +297 -0
  1129. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -0
  1130. package/fesm2022/cax-design-system-rating.mjs +395 -0
  1131. package/fesm2022/cax-design-system-rating.mjs.map +1 -0
  1132. package/fesm2022/cax-design-system-ripple.mjs +149 -0
  1133. package/fesm2022/cax-design-system-ripple.mjs.map +1 -0
  1134. package/fesm2022/cax-design-system-scroller.mjs +1001 -0
  1135. package/fesm2022/cax-design-system-scroller.mjs.map +1 -0
  1136. package/fesm2022/cax-design-system-scrollpanel.mjs +508 -0
  1137. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -0
  1138. package/fesm2022/cax-design-system-scrolltop.mjs +289 -0
  1139. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -0
  1140. package/fesm2022/cax-design-system-selectbutton.mjs +385 -0
  1141. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -0
  1142. package/fesm2022/cax-design-system-sidebar.mjs +439 -0
  1143. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -0
  1144. package/fesm2022/cax-design-system-skeleton.mjs +109 -0
  1145. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -0
  1146. package/fesm2022/cax-design-system-slidemenu.mjs +1508 -0
  1147. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -0
  1148. package/fesm2022/cax-design-system-slider.mjs +803 -0
  1149. package/fesm2022/cax-design-system-slider.mjs.map +1 -0
  1150. package/fesm2022/cax-design-system-speeddial.mjs +637 -0
  1151. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -0
  1152. package/fesm2022/cax-design-system-spinner.mjs +454 -0
  1153. package/fesm2022/cax-design-system-spinner.mjs.map +1 -0
  1154. package/fesm2022/cax-design-system-splitbutton.mjs +390 -0
  1155. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -0
  1156. package/fesm2022/cax-design-system-splitter.mjs +569 -0
  1157. package/fesm2022/cax-design-system-splitter.mjs.map +1 -0
  1158. package/fesm2022/cax-design-system-stepper.mjs +684 -0
  1159. package/fesm2022/cax-design-system-stepper.mjs.map +1 -0
  1160. package/fesm2022/cax-design-system-steps.mjs +352 -0
  1161. package/fesm2022/cax-design-system-steps.mjs.map +1 -0
  1162. package/fesm2022/cax-design-system-styleclass.mjs +323 -0
  1163. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -0
  1164. package/fesm2022/cax-design-system-table.mjs +5562 -0
  1165. package/fesm2022/cax-design-system-table.mjs.map +1 -0
  1166. package/fesm2022/cax-design-system-tabmenu.mjs +583 -0
  1167. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -0
  1168. package/fesm2022/cax-design-system-tabview.mjs +850 -0
  1169. package/fesm2022/cax-design-system-tabview.mjs.map +1 -0
  1170. package/fesm2022/cax-design-system-tag.mjs +117 -0
  1171. package/fesm2022/cax-design-system-tag.mjs.map +1 -0
  1172. package/fesm2022/cax-design-system-terminal.mjs +172 -0
  1173. package/fesm2022/cax-design-system-terminal.mjs.map +1 -0
  1174. package/fesm2022/cax-design-system-tieredmenu.mjs +1314 -0
  1175. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -0
  1176. package/fesm2022/cax-design-system-timeline.mjs +174 -0
  1177. package/fesm2022/cax-design-system-timeline.mjs.map +1 -0
  1178. package/fesm2022/cax-design-system-toast.mjs +507 -0
  1179. package/fesm2022/cax-design-system-toast.mjs.map +1 -0
  1180. package/fesm2022/cax-design-system-togglebutton.mjs +281 -0
  1181. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -0
  1182. package/fesm2022/cax-design-system-toggleswitch.mjs +57 -0
  1183. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -0
  1184. package/fesm2022/cax-design-system-toolbar.mjs +118 -0
  1185. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -0
  1186. package/fesm2022/cax-design-system-tooltip.mjs +910 -0
  1187. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -0
  1188. package/fesm2022/cax-design-system-tree.mjs +1527 -0
  1189. package/fesm2022/cax-design-system-tree.mjs.map +1 -0
  1190. package/fesm2022/cax-design-system-treeselect.mjs +1200 -0
  1191. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -0
  1192. package/fesm2022/cax-design-system-treetable.mjs +4118 -0
  1193. package/fesm2022/cax-design-system-treetable.mjs.map +1 -0
  1194. package/fesm2022/cax-design-system-tristatecheckbox.mjs +235 -0
  1195. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -0
  1196. package/fesm2022/cax-design-system-ts-helpers.mjs +4 -0
  1197. package/fesm2022/cax-design-system-ts-helpers.mjs.map +1 -0
  1198. package/fesm2022/cax-design-system-utils.mjs +305 -0
  1199. package/fesm2022/cax-design-system-utils.mjs.map +1 -0
  1200. package/fesm2022/cax-design-system-virtualscroller.mjs +222 -0
  1201. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -0
  1202. package/fesm2022/cax-design-system.mjs +6 -0
  1203. package/fesm2022/cax-design-system.mjs.map +1 -0
  1204. package/fieldset/fieldset.d.ts +93 -0
  1205. package/fieldset/fieldset.interface.d.ts +46 -0
  1206. package/fieldset/index.d.ts +5 -0
  1207. package/fieldset/public_api.d.ts +2 -0
  1208. package/fileupload/fileupload.d.ts +380 -0
  1209. package/fileupload/fileupload.interface.d.ts +226 -0
  1210. package/fileupload/index.d.ts +5 -0
  1211. package/fileupload/public_api.d.ts +2 -0
  1212. package/floatlabel/floatlabel.d.ts +17 -0
  1213. package/floatlabel/index.d.ts +5 -0
  1214. package/floatlabel/public_api.d.ts +1 -0
  1215. package/focustrap/focustrap.d.ts +34 -0
  1216. package/focustrap/index.d.ts +5 -0
  1217. package/focustrap/public_api.d.ts +1 -0
  1218. package/galleria/galleria.d.ts +404 -0
  1219. package/galleria/galleria.interface.d.ts +97 -0
  1220. package/galleria/index.d.ts +5 -0
  1221. package/galleria/public_api.d.ts +2 -0
  1222. package/iconfield/iconfield.d.ts +25 -0
  1223. package/iconfield/index.d.ts +5 -0
  1224. package/iconfield/public_api.d.ts +1 -0
  1225. package/icons/angledoubledown/angledoubledown.d.ts +6 -0
  1226. package/icons/angledoubledown/index.d.ts +5 -0
  1227. package/icons/angledoubledown/public_api.d.ts +1 -0
  1228. package/icons/angledoubleleft/angledoubleleft.d.ts +6 -0
  1229. package/icons/angledoubleleft/index.d.ts +5 -0
  1230. package/icons/angledoubleleft/public_api.d.ts +1 -0
  1231. package/icons/angledoubleright/angledoubleright.d.ts +6 -0
  1232. package/icons/angledoubleright/index.d.ts +5 -0
  1233. package/icons/angledoubleright/public_api.d.ts +1 -0
  1234. package/icons/angledoubleup/angledoubleup.d.ts +6 -0
  1235. package/icons/angledoubleup/index.d.ts +5 -0
  1236. package/icons/angledoubleup/public_api.d.ts +1 -0
  1237. package/icons/angledown/angledown.d.ts +6 -0
  1238. package/icons/angledown/index.d.ts +5 -0
  1239. package/icons/angledown/public_api.d.ts +1 -0
  1240. package/icons/angleleft/angleleft.d.ts +6 -0
  1241. package/icons/angleleft/index.d.ts +5 -0
  1242. package/icons/angleleft/public_api.d.ts +1 -0
  1243. package/icons/angleright/angleright.d.ts +6 -0
  1244. package/icons/angleright/index.d.ts +5 -0
  1245. package/icons/angleright/public_api.d.ts +1 -0
  1246. package/icons/angleup/angleup.d.ts +6 -0
  1247. package/icons/angleup/index.d.ts +5 -0
  1248. package/icons/angleup/public_api.d.ts +1 -0
  1249. package/icons/arrowdown/arrowdown.d.ts +9 -0
  1250. package/icons/arrowdown/index.d.ts +5 -0
  1251. package/icons/arrowdown/public_api.d.ts +1 -0
  1252. package/icons/arrowdownleft/arrowdownleft.d.ts +6 -0
  1253. package/icons/arrowdownleft/index.d.ts +5 -0
  1254. package/icons/arrowdownleft/public_api.d.ts +1 -0
  1255. package/icons/arrowdownright/arrowdownright.d.ts +6 -0
  1256. package/icons/arrowdownright/index.d.ts +5 -0
  1257. package/icons/arrowdownright/public_api.d.ts +1 -0
  1258. package/icons/arrowleft/arrowleft.d.ts +8 -0
  1259. package/icons/arrowleft/index.d.ts +5 -0
  1260. package/icons/arrowleft/public_api.d.ts +1 -0
  1261. package/icons/arrowright/arrowright.d.ts +6 -0
  1262. package/icons/arrowright/index.d.ts +5 -0
  1263. package/icons/arrowright/public_api.d.ts +1 -0
  1264. package/icons/arrowup/arrowup.d.ts +8 -0
  1265. package/icons/arrowup/index.d.ts +5 -0
  1266. package/icons/arrowup/public_api.d.ts +1 -0
  1267. package/icons/ban/ban.d.ts +8 -0
  1268. package/icons/ban/index.d.ts +5 -0
  1269. package/icons/ban/public_api.d.ts +1 -0
  1270. package/icons/bars/bars.d.ts +6 -0
  1271. package/icons/bars/index.d.ts +5 -0
  1272. package/icons/bars/public_api.d.ts +1 -0
  1273. package/icons/blank/blank.d.ts +6 -0
  1274. package/icons/blank/index.d.ts +5 -0
  1275. package/icons/blank/public_api.d.ts +1 -0
  1276. package/icons/calendar/calendar.d.ts +6 -0
  1277. package/icons/calendar/index.d.ts +5 -0
  1278. package/icons/calendar/public_api.d.ts +1 -0
  1279. package/icons/caretleft/caretleft.d.ts +6 -0
  1280. package/icons/caretleft/index.d.ts +5 -0
  1281. package/icons/caretleft/public_api.d.ts +1 -0
  1282. package/icons/caretright/caretright.d.ts +6 -0
  1283. package/icons/caretright/index.d.ts +5 -0
  1284. package/icons/caretright/public_api.d.ts +1 -0
  1285. package/icons/check/check.d.ts +6 -0
  1286. package/icons/check/index.d.ts +5 -0
  1287. package/icons/check/public_api.d.ts +1 -0
  1288. package/icons/chevrondown/chevrondown.d.ts +6 -0
  1289. package/icons/chevrondown/index.d.ts +5 -0
  1290. package/icons/chevrondown/public_api.d.ts +1 -0
  1291. package/icons/chevronleft/chevronleft.d.ts +6 -0
  1292. package/icons/chevronleft/index.d.ts +5 -0
  1293. package/icons/chevronleft/public_api.d.ts +1 -0
  1294. package/icons/chevronright/chevronright.d.ts +6 -0
  1295. package/icons/chevronright/index.d.ts +5 -0
  1296. package/icons/chevronright/public_api.d.ts +1 -0
  1297. package/icons/chevronup/chevronup.d.ts +6 -0
  1298. package/icons/chevronup/index.d.ts +5 -0
  1299. package/icons/chevronup/public_api.d.ts +1 -0
  1300. package/icons/exclamationtriangle/exclamationtriangle.d.ts +9 -0
  1301. package/icons/exclamationtriangle/index.d.ts +5 -0
  1302. package/icons/exclamationtriangle/public_api.d.ts +1 -0
  1303. package/icons/eye/eye.d.ts +6 -0
  1304. package/icons/eye/index.d.ts +5 -0
  1305. package/icons/eye/public_api.d.ts +1 -0
  1306. package/icons/eyeslash/eyeslash.d.ts +8 -0
  1307. package/icons/eyeslash/index.d.ts +5 -0
  1308. package/icons/eyeslash/public_api.d.ts +1 -0
  1309. package/icons/filter/filter.d.ts +8 -0
  1310. package/icons/filter/index.d.ts +5 -0
  1311. package/icons/filter/public_api.d.ts +1 -0
  1312. package/icons/filterslash/filterslash.d.ts +8 -0
  1313. package/icons/filterslash/index.d.ts +5 -0
  1314. package/icons/filterslash/public_api.d.ts +1 -0
  1315. package/icons/home/home.d.ts +8 -0
  1316. package/icons/home/index.d.ts +5 -0
  1317. package/icons/home/public_api.d.ts +1 -0
  1318. package/icons/infocircle/index.d.ts +5 -0
  1319. package/icons/infocircle/infocircle.d.ts +8 -0
  1320. package/icons/infocircle/public_api.d.ts +1 -0
  1321. package/icons/minus/index.d.ts +5 -0
  1322. package/icons/minus/minus.d.ts +6 -0
  1323. package/icons/minus/public_api.d.ts +1 -0
  1324. package/icons/pencil/index.d.ts +5 -0
  1325. package/icons/pencil/pencil.d.ts +8 -0
  1326. package/icons/pencil/public_api.d.ts +1 -0
  1327. package/icons/plus/index.d.ts +5 -0
  1328. package/icons/plus/plus.d.ts +8 -0
  1329. package/icons/plus/public_api.d.ts +1 -0
  1330. package/icons/refresh/index.d.ts +5 -0
  1331. package/icons/refresh/public_api.d.ts +1 -0
  1332. package/icons/refresh/refresh.d.ts +8 -0
  1333. package/icons/search/index.d.ts +5 -0
  1334. package/icons/search/public_api.d.ts +1 -0
  1335. package/icons/search/search.d.ts +8 -0
  1336. package/icons/searchminus/index.d.ts +5 -0
  1337. package/icons/searchminus/public_api.d.ts +1 -0
  1338. package/icons/searchminus/searchminus.d.ts +8 -0
  1339. package/icons/searchplus/index.d.ts +5 -0
  1340. package/icons/searchplus/public_api.d.ts +1 -0
  1341. package/icons/searchplus/searchplus.d.ts +8 -0
  1342. package/icons/sortalt/index.d.ts +5 -0
  1343. package/icons/sortalt/public_api.d.ts +1 -0
  1344. package/icons/sortalt/sortalt.d.ts +8 -0
  1345. package/icons/sortamountdown/index.d.ts +5 -0
  1346. package/icons/sortamountdown/public_api.d.ts +1 -0
  1347. package/icons/sortamountdown/sortamountdown.d.ts +8 -0
  1348. package/icons/sortamountupalt/index.d.ts +5 -0
  1349. package/icons/sortamountupalt/public_api.d.ts +1 -0
  1350. package/icons/sortamountupalt/sortamountupalt.d.ts +8 -0
  1351. package/icons/spinner/index.d.ts +5 -0
  1352. package/icons/spinner/public_api.d.ts +1 -0
  1353. package/icons/spinner/spinner.d.ts +8 -0
  1354. package/icons/star/index.d.ts +5 -0
  1355. package/icons/star/public_api.d.ts +1 -0
  1356. package/icons/star/star.d.ts +8 -0
  1357. package/icons/starfill/index.d.ts +5 -0
  1358. package/icons/starfill/public_api.d.ts +1 -0
  1359. package/icons/starfill/starfill.d.ts +8 -0
  1360. package/icons/thlarge/index.d.ts +5 -0
  1361. package/icons/thlarge/public_api.d.ts +1 -0
  1362. package/icons/thlarge/thlarge.d.ts +8 -0
  1363. package/icons/times/index.d.ts +5 -0
  1364. package/icons/times/public_api.d.ts +1 -0
  1365. package/icons/times/times.d.ts +6 -0
  1366. package/icons/timescircle/index.d.ts +5 -0
  1367. package/icons/timescircle/public_api.d.ts +1 -0
  1368. package/icons/timescircle/timescircle.d.ts +8 -0
  1369. package/icons/trash/index.d.ts +5 -0
  1370. package/icons/trash/public_api.d.ts +1 -0
  1371. package/icons/trash/trash.d.ts +8 -0
  1372. package/icons/undo/index.d.ts +5 -0
  1373. package/icons/undo/public_api.d.ts +1 -0
  1374. package/icons/undo/undo.d.ts +8 -0
  1375. package/icons/upload/index.d.ts +5 -0
  1376. package/icons/upload/public_api.d.ts +1 -0
  1377. package/icons/upload/upload.d.ts +8 -0
  1378. package/icons/windowmaximize/index.d.ts +5 -0
  1379. package/icons/windowmaximize/public_api.d.ts +1 -0
  1380. package/icons/windowmaximize/windowmaximize.d.ts +8 -0
  1381. package/icons/windowminimize/index.d.ts +5 -0
  1382. package/icons/windowminimize/public_api.d.ts +1 -0
  1383. package/icons/windowminimize/windowminimize.d.ts +8 -0
  1384. package/image/image.d.ts +188 -0
  1385. package/image/image.interface.d.ts +31 -0
  1386. package/image/image.module.d.ts +8 -0
  1387. package/image/index.d.ts +5 -0
  1388. package/image/public_api.d.ts +3 -0
  1389. package/index.d.ts +5 -0
  1390. package/inplace/index.d.ts +5 -0
  1391. package/inplace/inplace.d.ts +109 -0
  1392. package/inplace/inplace.interface.d.ts +19 -0
  1393. package/inplace/public_api.d.ts +2 -0
  1394. package/inputgroup/index.d.ts +5 -0
  1395. package/inputgroup/inputgroup.d.ts +28 -0
  1396. package/inputgroup/inputgroup.module.d.ts +15 -0
  1397. package/inputgroup/public_api.d.ts +2 -0
  1398. package/inputgroupaddon/index.d.ts +5 -0
  1399. package/inputgroupaddon/inputgroupaddon.d.ts +21 -0
  1400. package/inputgroupaddon/inputgroupaddon.module.d.ts +14 -0
  1401. package/inputgroupaddon/public_api.d.ts +2 -0
  1402. package/inputicon/index.d.ts +5 -0
  1403. package/inputicon/inputicon.d.ts +21 -0
  1404. package/inputicon/public_api.d.ts +1 -0
  1405. package/inputmask/index.d.ts +5 -0
  1406. package/inputmask/inputmask.d.ts +273 -0
  1407. package/inputmask/inputmask.interface.d.ts +19 -0
  1408. package/inputmask/public_api.d.ts +2 -0
  1409. package/inputnumber/index.d.ts +5 -0
  1410. package/inputnumber/inputnumber.d.ts +392 -0
  1411. package/inputnumber/inputnumber.interface.d.ts +38 -0
  1412. package/inputnumber/inputnumber.module.d.ts +8 -0
  1413. package/inputnumber/public_api.d.ts +3 -0
  1414. package/inputotp/index.d.ts +5 -0
  1415. package/inputotp/inputotp.d.ts +123 -0
  1416. package/inputotp/inputotp.interface.d.ts +65 -0
  1417. package/inputotp/public_api.d.ts +2 -0
  1418. package/inputswitch/index.d.ts +5 -0
  1419. package/inputswitch/inputswitch.d.ts +106 -0
  1420. package/inputswitch/inputswitch.interface.d.ts +15 -0
  1421. package/inputswitch/public_api.d.ts +2 -0
  1422. package/inputtext/index.d.ts +5 -0
  1423. package/inputtext/inputtext.component.d.ts +25 -0
  1424. package/inputtext/inputtext.directive.d.ts +20 -0
  1425. package/inputtext/inputtext.module.d.ts +10 -0
  1426. package/inputtext/public_api.d.ts +3 -0
  1427. package/inputtextarea/index.d.ts +5 -0
  1428. package/inputtextarea/inputtextarea.d.ts +53 -0
  1429. package/inputtextarea/public_api.d.ts +1 -0
  1430. package/keyfilter/index.d.ts +5 -0
  1431. package/keyfilter/keyfilter.d.ts +58 -0
  1432. package/keyfilter/keyfilter.interface.d.ts +5 -0
  1433. package/keyfilter/public_api.d.ts +2 -0
  1434. package/knob/index.d.ts +5 -0
  1435. package/knob/knob.d.ts +178 -0
  1436. package/knob/public_api.d.ts +1 -0
  1437. package/listbox/index.d.ts +5 -0
  1438. package/listbox/listbox.d.ts +463 -0
  1439. package/listbox/listbox.interface.d.ts +156 -0
  1440. package/listbox/public_api.d.ts +2 -0
  1441. package/logo/index.d.ts +5 -0
  1442. package/logo/logo.d.ts +11 -0
  1443. package/logo/logo.module.d.ts +7 -0
  1444. package/logo/public_api.d.ts +2 -0
  1445. package/megamenu/index.d.ts +5 -0
  1446. package/megamenu/megamenu.d.ts +198 -0
  1447. package/megamenu/megamenu.interface.d.ts +31 -0
  1448. package/megamenu/public_api.d.ts +2 -0
  1449. package/menu/index.d.ts +5 -0
  1450. package/menu/menu.d.ts +220 -0
  1451. package/menu/public_api.d.ts +1 -0
  1452. package/menubar/index.d.ts +5 -0
  1453. package/menubar/menubar.d.ts +248 -0
  1454. package/menubar/menubar.interface.d.ts +40 -0
  1455. package/menubar/public_api.d.ts +2 -0
  1456. package/message/index.d.ts +5 -0
  1457. package/message/message.d.ts +52 -0
  1458. package/message/public_api.d.ts +1 -0
  1459. package/messages/index.d.ts +5 -0
  1460. package/messages/messages.d.ts +115 -0
  1461. package/messages/messages.interface.d.ts +18 -0
  1462. package/messages/messages.module.d.ts +8 -0
  1463. package/messages/public_api.d.ts +3 -0
  1464. package/metergroup/index.d.ts +5 -0
  1465. package/metergroup/metergroup.d.ts +101 -0
  1466. package/metergroup/metergroup.interface.d.ts +122 -0
  1467. package/metergroup/public_api.d.ts +2 -0
  1468. package/multiselect/index.d.ts +5 -0
  1469. package/multiselect/multiselect.d.ts +724 -0
  1470. package/multiselect/multiselect.interface.d.ts +247 -0
  1471. package/multiselect/public_api.d.ts +2 -0
  1472. package/navigation/index.d.ts +5 -0
  1473. package/navigation/navigation.d.ts +54 -0
  1474. package/navigation/navigation.interface.d.ts +23 -0
  1475. package/navigation/navigation.module.d.ts +7 -0
  1476. package/navigation/public_api.d.ts +2 -0
  1477. package/orderlist/index.d.ts +5 -0
  1478. package/orderlist/orderlist.d.ts +270 -0
  1479. package/orderlist/orderlist.interface.d.ts +110 -0
  1480. package/orderlist/public_api.d.ts +2 -0
  1481. package/organizationchart/index.d.ts +5 -0
  1482. package/organizationchart/organizationchart.d.ts +132 -0
  1483. package/organizationchart/organizationchart.interface.d.ts +59 -0
  1484. package/organizationchart/public_api.d.ts +2 -0
  1485. package/overlay/index.d.ts +5 -0
  1486. package/overlay/overlay.d.ts +238 -0
  1487. package/overlay/overlay.module.d.ts +8 -0
  1488. package/overlay/public_api.d.ts +2 -0
  1489. package/overlaypanel/index.d.ts +5 -0
  1490. package/overlaypanel/overlaypanel.d.ts +162 -0
  1491. package/overlaypanel/overlaypanel.module.d.ts +8 -0
  1492. package/overlaypanel/public_api.d.ts +2 -0
  1493. package/package.json +1033 -0
  1494. package/paginator/index.d.ts +5 -0
  1495. package/paginator/paginator.d.ts +192 -0
  1496. package/paginator/paginator.interface.d.ts +37 -0
  1497. package/paginator/paginator.module.d.ts +17 -0
  1498. package/paginator/public_api.d.ts +3 -0
  1499. package/panel/index.d.ts +5 -0
  1500. package/panel/panel.d.ts +126 -0
  1501. package/panel/panel.interface.d.ts +58 -0
  1502. package/panel/public_api.d.ts +2 -0
  1503. package/panelmenu/index.d.ts +5 -0
  1504. package/panelmenu/panelmenu.d.ts +225 -0
  1505. package/panelmenu/panelmenu.interface.d.ts +23 -0
  1506. package/panelmenu/public_api.d.ts +2 -0
  1507. package/password/index.d.ts +5 -0
  1508. package/password/password.d.ts +342 -0
  1509. package/password/public_api.d.ts +1 -0
  1510. package/picklist/index.d.ts +5 -0
  1511. package/picklist/picklist.d.ts +453 -0
  1512. package/picklist/picklist.interface.d.ts +242 -0
  1513. package/picklist/public_api.d.ts +2 -0
  1514. package/progressbar/index.d.ts +5 -0
  1515. package/progressbar/progressbar.d.ts +54 -0
  1516. package/progressbar/progressbar.module.d.ts +8 -0
  1517. package/progressbar/public_api.d.ts +2 -0
  1518. package/progressspinner/index.d.ts +5 -0
  1519. package/progressspinner/progressspinner.d.ts +50 -0
  1520. package/progressspinner/progressspinner.module.d.ts +8 -0
  1521. package/progressspinner/public_api.d.ts +2 -0
  1522. package/public_api.d.ts +2 -0
  1523. package/radiobutton/index.d.ts +5 -0
  1524. package/radiobutton/public_api.d.ts +3 -0
  1525. package/radiobutton/radiobutton.d.ts +145 -0
  1526. package/radiobutton/radiobutton.interface.d.ts +15 -0
  1527. package/radiobutton/radiobutton.module.d.ts +7 -0
  1528. package/rating/index.d.ts +5 -0
  1529. package/rating/public_api.d.ts +2 -0
  1530. package/rating/rating.d.ts +146 -0
  1531. package/rating/rating.interface.d.ts +34 -0
  1532. package/resources/cax.min.scss +1 -0
  1533. package/resources/cax.scss +784 -0
  1534. package/resources/components/accordion/accordion.scss +44 -0
  1535. package/resources/components/autocomplete/autocomplete.css +104 -0
  1536. package/resources/components/avatar/avatar.scss +33 -0
  1537. package/resources/components/avatargroup/avatargroup.css +10 -0
  1538. package/resources/components/badge/badge.scss +34 -0
  1539. package/resources/components/blockui/blockui.css +26 -0
  1540. package/resources/components/breadcrumb/breadcrumb.scss +33 -0
  1541. package/resources/components/button/button.scss +117 -0
  1542. package/resources/components/calendar/calendar.scss +177 -0
  1543. package/resources/components/card/card.scss +50 -0
  1544. package/resources/components/carousel/carousel.css +71 -0
  1545. package/resources/components/cascadeselect/cascadeselect.scss +99 -0
  1546. package/resources/components/checkbox/checkbox.scss +30 -0
  1547. package/resources/components/chip/chip.scss +63 -0
  1548. package/resources/components/chips/chips.scss +156 -0
  1549. package/resources/components/colorpicker/colorpicker-images.css +7 -0
  1550. package/resources/components/colorpicker/colorpicker.css +83 -0
  1551. package/resources/components/colorpicker/images/color.png +0 -0
  1552. package/resources/components/colorpicker/images/hue.png +0 -0
  1553. package/resources/components/common/common.scss +182 -0
  1554. package/resources/components/confirmpopup/confirmpopup.css +53 -0
  1555. package/resources/components/contextmenu/contextmenu.css +42 -0
  1556. package/resources/components/dataview/dataview.css +13 -0
  1557. package/resources/components/dialog/dialog.scss +164 -0
  1558. package/resources/components/divider/divider.scss +86 -0
  1559. package/resources/components/dock/dock.css +107 -0
  1560. package/resources/components/dropdown/dropdown.scss +92 -0
  1561. package/resources/components/editor/editor.css +4 -0
  1562. package/resources/components/fieldset/fieldset.css +30 -0
  1563. package/resources/components/fileupload/fileupload.css +47 -0
  1564. package/resources/components/galleria/galleria.css +281 -0
  1565. package/resources/components/iconfield/iconfield.css +5 -0
  1566. package/resources/components/image/image.scss +97 -0
  1567. package/resources/components/inplace/inplace.css +19 -0
  1568. package/resources/components/inputicon/inputicon.css +6 -0
  1569. package/resources/components/inputmask/inputmask.css +12 -0
  1570. package/resources/components/inputnumber/inputnumber.scss +116 -0
  1571. package/resources/components/inputotp/inputotp.css +2 -0
  1572. package/resources/components/inputswitch/inputswitch.css +23 -0
  1573. package/resources/components/inputtext/inputtext.scss +150 -0
  1574. package/resources/components/inputtextarea/inputtextarea.css +10 -0
  1575. package/resources/components/knob/knob.css +20 -0
  1576. package/resources/components/listbox/listbox.css +40 -0
  1577. package/resources/components/logo/logo.scss +0 -0
  1578. package/resources/components/megamenu/megamenu.css +108 -0
  1579. package/resources/components/menu/menu.css +30 -0
  1580. package/resources/components/menubar/menubar.css +81 -0
  1581. package/resources/components/message/message.css +17 -0
  1582. package/resources/components/messages/messages.scss +55 -0
  1583. package/resources/components/multiselect/multiselect.css +116 -0
  1584. package/resources/components/navigation/navigation.scss +217 -0
  1585. package/resources/components/orderlist/orderlist.css +78 -0
  1586. package/resources/components/organizationchart/organizationchart.css +62 -0
  1587. package/resources/components/overlay/overlay.scss +80 -0
  1588. package/resources/components/overlaypanel/overlaypanel.scss +63 -0
  1589. package/resources/components/paginator/paginator.scss +37 -0
  1590. package/resources/components/panel/panel.css +29 -0
  1591. package/resources/components/panelmenu/panelmenu.css +45 -0
  1592. package/resources/components/password/images/password-meter.png +0 -0
  1593. package/resources/components/password/password.css +54 -0
  1594. package/resources/components/picklist/picklist.css +60 -0
  1595. package/resources/components/progressbar/progressbar.scss +122 -0
  1596. package/resources/components/progressspinner/progressspinner.scss +94 -0
  1597. package/resources/components/radiobutton/radiobutton.scss +38 -0
  1598. package/resources/components/rating/rating.css +15 -0
  1599. package/resources/components/ripple/ripple.scss +29 -0
  1600. package/resources/components/scroller/scroller.scss +58 -0
  1601. package/resources/components/scrollpanel/scrollpanel.css +50 -0
  1602. package/resources/components/scrolltop/scrolltop.css +18 -0
  1603. package/resources/components/sidebar/sidebar.scss +114 -0
  1604. package/resources/components/skeleton/skeleton.scss +25 -0
  1605. package/resources/components/slidemenu/slidemenu.css +100 -0
  1606. package/resources/components/slider/slider.css +41 -0
  1607. package/resources/components/speeddial/speeddial.scss +122 -0
  1608. package/resources/components/spinner/spinner.css +63 -0
  1609. package/resources/components/splitbutton/splitbutton.scss +48 -0
  1610. package/resources/components/splitter/splitter.css +70 -0
  1611. package/resources/components/stepper/stepper.css +9 -0
  1612. package/resources/components/steps/steps.css +49 -0
  1613. package/resources/components/table/table.scss +249 -0
  1614. package/resources/components/tabmenu/tabmenu.css +80 -0
  1615. package/resources/components/tabview/tabview.scss +163 -0
  1616. package/resources/components/tag/tag.scss +17 -0
  1617. package/resources/components/terminal/terminal.css +24 -0
  1618. package/resources/components/tieredmenu/tieredmenu.scss +55 -0
  1619. package/resources/components/timeline/timeline.css +114 -0
  1620. package/resources/components/toast/toast.scss +83 -0
  1621. package/resources/components/toggleswitch/toggleswitch.scss +30 -0
  1622. package/resources/components/toolbar/toolbar.css +19 -0
  1623. package/resources/components/tooltip/tooltip.scss +124 -0
  1624. package/resources/components/tree/images/line.gif +0 -0
  1625. package/resources/components/tree/tree.scss +158 -0
  1626. package/resources/components/treeselect/treeselect.css +98 -0
  1627. package/resources/components/treetable/treetable.css +205 -0
  1628. package/resources/images/color.png +0 -0
  1629. package/resources/images/hue.png +0 -0
  1630. package/resources/images/line.gif +0 -0
  1631. package/resources/images/password-meter.png +0 -0
  1632. package/resources/logo/dataX-dark.svg +12 -0
  1633. package/resources/logo/dataX-icon-dark.svg +6 -0
  1634. package/resources/logo/dataX-icon.svg +6 -0
  1635. package/resources/logo/dataX.svg +12 -0
  1636. package/resources/logo/usercard.png +0 -0
  1637. package/resources/themes/cax-theme.scss +9272 -0
  1638. package/ripple/index.d.ts +5 -0
  1639. package/ripple/public_api.d.ts +2 -0
  1640. package/ripple/ripple.d.ts +30 -0
  1641. package/ripple/ripple.module.d.ts +7 -0
  1642. package/scroller/index.d.ts +5 -0
  1643. package/scroller/public_api.d.ts +3 -0
  1644. package/scroller/scroller.d.ts +343 -0
  1645. package/scroller/scroller.interface.d.ts +177 -0
  1646. package/scroller/scroller.module.d.ts +8 -0
  1647. package/scrollpanel/index.d.ts +5 -0
  1648. package/scrollpanel/public_api.d.ts +2 -0
  1649. package/scrollpanel/scrollpanel.d.ts +103 -0
  1650. package/scrollpanel/scrollpanel.interface.d.ts +11 -0
  1651. package/scrolltop/index.d.ts +5 -0
  1652. package/scrolltop/public_api.d.ts +2 -0
  1653. package/scrolltop/scrolltop.d.ts +97 -0
  1654. package/scrolltop/scrolltop.interface.d.ts +18 -0
  1655. package/selectbutton/index.d.ts +5 -0
  1656. package/selectbutton/public_api.d.ts +2 -0
  1657. package/selectbutton/selectbutton.d.ts +136 -0
  1658. package/selectbutton/selectbutton.interface.d.ts +45 -0
  1659. package/sidebar/index.d.ts +5 -0
  1660. package/sidebar/public_api.d.ts +3 -0
  1661. package/sidebar/sidebar.d.ts +158 -0
  1662. package/sidebar/sidebar.interface.d.ts +27 -0
  1663. package/sidebar/sidebar.module.d.ts +12 -0
  1664. package/skeleton/index.d.ts +5 -0
  1665. package/skeleton/public_api.d.ts +2 -0
  1666. package/skeleton/skeleton.d.ts +61 -0
  1667. package/skeleton/skeleton.module.d.ts +8 -0
  1668. package/slidemenu/index.d.ts +5 -0
  1669. package/slidemenu/public_api.d.ts +2 -0
  1670. package/slidemenu/slidemenu.d.ts +322 -0
  1671. package/slidemenu/slidemenu.interface.d.ts +15 -0
  1672. package/slider/index.d.ts +5 -0
  1673. package/slider/public_api.d.ts +2 -0
  1674. package/slider/slider.d.ts +174 -0
  1675. package/slider/slider.interface.d.ts +38 -0
  1676. package/speeddial/index.d.ts +5 -0
  1677. package/speeddial/public_api.d.ts +3 -0
  1678. package/speeddial/speeddial.d.ts +277 -0
  1679. package/speeddial/speeddial.interface.d.ts +28 -0
  1680. package/speeddial/speeddial.module.d.ts +14 -0
  1681. package/spinner/index.d.ts +5 -0
  1682. package/spinner/public_api.d.ts +1 -0
  1683. package/spinner/spinner.d.ts +90 -0
  1684. package/splitbutton/index.d.ts +5 -0
  1685. package/splitbutton/public_api.d.ts +3 -0
  1686. package/splitbutton/splitbutton.d.ts +221 -0
  1687. package/splitbutton/splitbutton.interface.d.ts +30 -0
  1688. package/splitbutton/splitbutton.module.d.ts +12 -0
  1689. package/splitter/index.d.ts +5 -0
  1690. package/splitter/public_api.d.ts +2 -0
  1691. package/splitter/splitter.d.ts +164 -0
  1692. package/splitter/splitter.interface.d.ts +34 -0
  1693. package/stepper/index.d.ts +5 -0
  1694. package/stepper/public_api.d.ts +2 -0
  1695. package/stepper/stepper.d.ts +117 -0
  1696. package/stepper/stepper.interface.d.ts +26 -0
  1697. package/steps/index.d.ts +5 -0
  1698. package/steps/public_api.d.ts +1 -0
  1699. package/steps/steps.d.ts +85 -0
  1700. package/styleclass/index.d.ts +5 -0
  1701. package/styleclass/public_api.d.ts +1 -0
  1702. package/styleclass/styleclass.d.ts +108 -0
  1703. package/table/columnfilter.interface.d.ts +247 -0
  1704. package/table/components/cell-editor/cell-editor.d.ts +20 -0
  1705. package/table/components/column-filter/column-filter.d.ts +256 -0
  1706. package/table/components/column-filter-form-element/column-filter-form-element.d.ts +37 -0
  1707. package/table/components/sort-icon/sort-icon.d.ts +21 -0
  1708. package/table/components/table-body/table-body.d.ts +36 -0
  1709. package/table/components/table-checkbox/table-checkbox.d.ts +31 -0
  1710. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +29 -0
  1711. package/table/components/table-radio-button/table-radio-button.d.ts +29 -0
  1712. package/table/directives/cancel-editable-row.directive.d.ts +11 -0
  1713. package/table/directives/content-menu-row.directive.d.ts +22 -0
  1714. package/table/directives/editable-column.directive.d.ts +40 -0
  1715. package/table/directives/editable-row.directive.d.ts +12 -0
  1716. package/table/directives/frozen-column.directive.d.ts +16 -0
  1717. package/table/directives/init-editable-row.directive.d.ts +11 -0
  1718. package/table/directives/reorderable-column.directive.d.ts +32 -0
  1719. package/table/directives/reorderable-row-handle.directive.d.ts +9 -0
  1720. package/table/directives/reorderable-row.directive.d.ts +34 -0
  1721. package/table/directives/resizable-column.directive.d.ts +35 -0
  1722. package/table/directives/row-group-header.directive.d.ts +9 -0
  1723. package/table/directives/row-toggler.directive.d.ts +13 -0
  1724. package/table/directives/save-editable-row.directive.d.ts +11 -0
  1725. package/table/directives/selectable-row-double-click.directive.d.ts +22 -0
  1726. package/table/directives/selectable-row.directive.d.ts +37 -0
  1727. package/table/directives/sortable-column.directive.d.ts +24 -0
  1728. package/table/index.d.ts +5 -0
  1729. package/table/public_api.d.ts +28 -0
  1730. package/table/table.d.ts +859 -0
  1731. package/table/table.interface.d.ts +623 -0
  1732. package/table/table.module.d.ts +32 -0
  1733. package/table/table.service.d.ts +24 -0
  1734. package/tabmenu/index.d.ts +5 -0
  1735. package/tabmenu/public_api.d.ts +2 -0
  1736. package/tabmenu/tabmenu.d.ts +126 -0
  1737. package/tabmenu/tabmenu.interface.d.ts +32 -0
  1738. package/tabview/index.d.ts +5 -0
  1739. package/tabview/public_api.d.ts +3 -0
  1740. package/tabview/tabview.d.ts +281 -0
  1741. package/tabview/tabview.interface.d.ts +49 -0
  1742. package/tabview/tabview.module.d.ts +14 -0
  1743. package/tag/index.d.ts +5 -0
  1744. package/tag/public_api.d.ts +3 -0
  1745. package/tag/tag.d.ts +61 -0
  1746. package/tag/tag.interface.d.ts +11 -0
  1747. package/tag/tag.module.d.ts +9 -0
  1748. package/terminal/index.d.ts +5 -0
  1749. package/terminal/public_api.d.ts +2 -0
  1750. package/terminal/terminal.d.ts +56 -0
  1751. package/terminal/terminalservice.d.ts +11 -0
  1752. package/tieredmenu/index.d.ts +5 -0
  1753. package/tieredmenu/public_api.d.ts +3 -0
  1754. package/tieredmenu/tieredmenu.d.ts +266 -0
  1755. package/tieredmenu/tieredmenu.interface.d.ts +27 -0
  1756. package/tieredmenu/tiredmenu.module.d.ts +13 -0
  1757. package/timeline/index.d.ts +5 -0
  1758. package/timeline/public_api.d.ts +2 -0
  1759. package/timeline/timeline.d.ts +54 -0
  1760. package/timeline/timeline.interface.d.ts +43 -0
  1761. package/toast/index.d.ts +5 -0
  1762. package/toast/public_api.d.ts +3 -0
  1763. package/toast/toast.d.ts +142 -0
  1764. package/toast/toast.interface.d.ts +52 -0
  1765. package/toast/toast.module.d.ts +9 -0
  1766. package/toast/toastitem.d.ts +37 -0
  1767. package/togglebutton/index.d.ts +5 -0
  1768. package/togglebutton/public_api.d.ts +2 -0
  1769. package/togglebutton/togglebutton.d.ts +115 -0
  1770. package/togglebutton/togglebutton.interface.d.ts +34 -0
  1771. package/toggleswitch/index.d.ts +5 -0
  1772. package/toggleswitch/public_api.d.ts +2 -0
  1773. package/toggleswitch/toggleswitch.d.ts +13 -0
  1774. package/toggleswitch/toggleswitch.module.d.ts +9 -0
  1775. package/toolbar/index.d.ts +5 -0
  1776. package/toolbar/public_api.d.ts +2 -0
  1777. package/toolbar/toolbar.d.ts +43 -0
  1778. package/toolbar/toolbar.interface.d.ts +19 -0
  1779. package/tooltip/index.d.ts +5 -0
  1780. package/tooltip/public_api.d.ts +2 -0
  1781. package/tooltip/tooltip.d.ts +208 -0
  1782. package/tooltip/tooltip.module.d.ts +8 -0
  1783. package/tree/index.d.ts +5 -0
  1784. package/tree/public_api.d.ts +3 -0
  1785. package/tree/tree.d.ts +449 -0
  1786. package/tree/tree.interface.d.ts +193 -0
  1787. package/tree/tree.module.d.ts +19 -0
  1788. package/treeselect/index.d.ts +5 -0
  1789. package/treeselect/public_api.d.ts +2 -0
  1790. package/treeselect/treeselect.d.ts +405 -0
  1791. package/treeselect/treeselect.interface.d.ts +108 -0
  1792. package/treetable/index.d.ts +5 -0
  1793. package/treetable/public_api.d.ts +2 -0
  1794. package/treetable/treetable.d.ts +988 -0
  1795. package/treetable/treetable.interface.d.ts +472 -0
  1796. package/tristatecheckbox/index.d.ts +5 -0
  1797. package/tristatecheckbox/public_api.d.ts +3 -0
  1798. package/tristatecheckbox/tristatecheckbox.d.ts +117 -0
  1799. package/tristatecheckbox/tristatecheckbox.interface.d.ts +30 -0
  1800. package/tristatecheckbox/tristatecheckbox.module.d.ts +8 -0
  1801. package/ts-helpers/index.d.ts +5 -0
  1802. package/ts-helpers/public_api.d.ts +1 -0
  1803. package/ts-helpers/ts-helpers.d.ts +4 -0
  1804. package/utils/index.d.ts +5 -0
  1805. package/utils/objectutils.d.ts +24 -0
  1806. package/utils/public_api.d.ts +4 -0
  1807. package/utils/uniquecomponentid.d.ts +2 -0
  1808. package/utils/zindexutils.d.ts +7 -0
  1809. package/virtualscroller/index.d.ts +5 -0
  1810. package/virtualscroller/public_api.d.ts +2 -0
  1811. package/virtualscroller/virtualscroller.d.ts +89 -0
  1812. package/virtualscroller/virtualscroller.interface.d.ts +72 -0
@@ -0,0 +1,1188 @@
1
+ import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
2
+ import { HttpEventType } from '@angular/common/http';
3
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, NgModule, Output, PLATFORM_ID, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
4
+ import { CaxTemplate, SharedModule, TranslationKeys } from 'cax-design-system/api';
5
+ import { ButtonModule } from 'cax-design-system/button';
6
+ import { DomHandler } from 'cax-design-system/dom';
7
+ import { PlusIcon } from 'cax-design-system/icons/plus';
8
+ import { TimesIcon } from 'cax-design-system/icons/times';
9
+ import { UploadIcon } from 'cax-design-system/icons/upload';
10
+ import { MessagesModule } from 'cax-design-system/messages';
11
+ import { ProgressBarModule } from 'cax-design-system/progressbar';
12
+ import { RippleModule } from 'cax-design-system/ripple';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/platform-browser";
15
+ import * as i2 from "@angular/common/http";
16
+ import * as i3 from "cax-design-system/api";
17
+ import * as i4 from "@angular/common";
18
+ /**
19
+ * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.
20
+ * @group Components
21
+ */
22
+ export class FileUpload {
23
+ document;
24
+ platformId;
25
+ renderer;
26
+ el;
27
+ sanitizer;
28
+ zone;
29
+ http;
30
+ cd;
31
+ config;
32
+ /**
33
+ * Name of the request parameter to identify the files at backend.
34
+ * @group Props
35
+ */
36
+ name;
37
+ /**
38
+ * Remote url to upload the files.
39
+ * @group Props
40
+ */
41
+ url;
42
+ /**
43
+ * HTTP method to send the files to the url such as "post" and "put".
44
+ * @group Props
45
+ */
46
+ method = 'post';
47
+ /**
48
+ * Used to select multiple files at once from file dialog.
49
+ * @group Props
50
+ */
51
+ multiple;
52
+ /**
53
+ * Comma-separated list of pattern to restrict the allowed file types. Can be any combination of either the MIME types (such as "image/*") or the file extensions (such as ".jpg").
54
+ * @group Props
55
+ */
56
+ accept;
57
+ /**
58
+ * Disables the upload functionality.
59
+ * @group Props
60
+ */
61
+ disabled;
62
+ /**
63
+ * When enabled, upload begins automatically after selection is completed.
64
+ * @group Props
65
+ */
66
+ auto;
67
+ /**
68
+ * Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.
69
+ * @group Props
70
+ */
71
+ withCredentials;
72
+ /**
73
+ * Maximum file size allowed in bytes.
74
+ * @group Props
75
+ */
76
+ maxFileSize;
77
+ /**
78
+ * Summary message of the invalid file size.
79
+ * @group Props
80
+ */
81
+ invalidFileSizeMessageSummary = '{0}: Invalid file size, ';
82
+ /**
83
+ * Detail message of the invalid file size.
84
+ * @group Props
85
+ */
86
+ invalidFileSizeMessageDetail = 'maximum upload size is {0}.';
87
+ /**
88
+ * Summary message of the invalid file type.
89
+ * @group Props
90
+ */
91
+ invalidFileTypeMessageSummary = '{0}: Invalid file type, ';
92
+ /**
93
+ * Detail message of the invalid file type.
94
+ * @group Props
95
+ */
96
+ invalidFileTypeMessageDetail = 'allowed file types: {0}.';
97
+ /**
98
+ * Detail message of the invalid file type.
99
+ * @group Props
100
+ */
101
+ invalidFileLimitMessageDetail = 'limit is {0} at most.';
102
+ /**
103
+ * Summary message of the invalid file type.
104
+ * @group Props
105
+ */
106
+ invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';
107
+ /**
108
+ * Inline style of the element.
109
+ * @group Props
110
+ */
111
+ style;
112
+ /**
113
+ * Class of the element.
114
+ * @group Props
115
+ */
116
+ styleClass;
117
+ /**
118
+ * Width of the image thumbnail in pixels.
119
+ * @group Props
120
+ */
121
+ previewWidth = 50;
122
+ /**
123
+ * Label of the choose button. Defaults to cax Locale configuration.
124
+ * @group Props
125
+ */
126
+ chooseLabel;
127
+ /**
128
+ * Label of the upload button. Defaults to cax Locale configuration.
129
+ * @group Props
130
+ */
131
+ uploadLabel;
132
+ /**
133
+ * Label of the cancel button. Defaults to cax Locale configuration.
134
+ * @group Props
135
+ */
136
+ cancelLabel;
137
+ /**
138
+ * Icon of the choose button.
139
+ * @group Props
140
+ */
141
+ chooseIcon;
142
+ /**
143
+ * Icon of the upload button.
144
+ * @group Props
145
+ */
146
+ uploadIcon;
147
+ /**
148
+ * Icon of the cancel button.
149
+ * @group Props
150
+ */
151
+ cancelIcon;
152
+ /**
153
+ * Whether to show the upload button.
154
+ * @group Props
155
+ */
156
+ showUploadButton = true;
157
+ /**
158
+ * Whether to show the cancel button.
159
+ * @group Props
160
+ */
161
+ showCancelButton = true;
162
+ /**
163
+ * Defines the UI of the component.
164
+ * @group Props
165
+ */
166
+ mode = 'advanced';
167
+ /**
168
+ * HttpHeaders class represents the header configuration options for an HTTP request.
169
+ * @group Props
170
+ */
171
+ headers;
172
+ /**
173
+ * Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to cax Locale configuration.
174
+ * @group Props
175
+ */
176
+ customUpload;
177
+ /**
178
+ * Maximum number of files that can be uploaded.
179
+ * @group Props
180
+ */
181
+ fileLimit;
182
+ /**
183
+ * Style class of the upload button.
184
+ * @group Props
185
+ */
186
+ uploadStyleClass;
187
+ /**
188
+ * Style class of the cancel button.
189
+ * @group Props
190
+ */
191
+ cancelStyleClass;
192
+ /**
193
+ * Style class of the remove button.
194
+ * @group Props
195
+ */
196
+ removeStyleClass;
197
+ /**
198
+ * Style class of the choose button.
199
+ * @group Props
200
+ */
201
+ chooseStyleClass;
202
+ /**
203
+ * Callback to invoke before file upload is initialized.
204
+ * @param {FileBeforeUploadEvent} event - Custom upload event.
205
+ * @group Emits
206
+ */
207
+ onBeforeUpload = new EventEmitter();
208
+ /**
209
+ * An event indicating that the request was sent to the server. Useful when a request may be retried multiple times, to distinguish between retries on the final event stream.
210
+ * @param {FileSendEvent} event - Custom send event.
211
+ * @group Emits
212
+ */
213
+ onSend = new EventEmitter();
214
+ /**
215
+ * Callback to invoke when file upload is complete.
216
+ * @param {FileUploadEvent} event - Custom upload event.
217
+ * @group Emits
218
+ */
219
+ onUpload = new EventEmitter();
220
+ /**
221
+ * Callback to invoke if file upload fails.
222
+ * @param {FileUploadErrorEvent} event - Custom error event.
223
+ * @group Emits
224
+ */
225
+ onError = new EventEmitter();
226
+ /**
227
+ * Callback to invoke when files in queue are removed without uploading using clear all button.
228
+ * @param {Event} event - Browser event.
229
+ * @group Emits
230
+ */
231
+ onClear = new EventEmitter();
232
+ /**
233
+ * Callback to invoke when a file is removed without uploading using clear button of a file.
234
+ * @param {FileRemoveEvent} event - Remove event.
235
+ * @group Emits
236
+ */
237
+ onRemove = new EventEmitter();
238
+ /**
239
+ * Callback to invoke when files are selected.
240
+ * @param {FileSelectEvent} event - Select event.
241
+ * @group Emits
242
+ */
243
+ onSelect = new EventEmitter();
244
+ /**
245
+ * Callback to invoke when files are being uploaded.
246
+ * @param {FileProgressEvent} event - Progress event.
247
+ * @group Emits
248
+ */
249
+ onProgress = new EventEmitter();
250
+ /**
251
+ * Callback to invoke in custom upload mode to upload the files manually.
252
+ * @param {FileUploadHandlerEvent} event - Upload handler event.
253
+ * @group Emits
254
+ */
255
+ uploadHandler = new EventEmitter();
256
+ /**
257
+ * This event is triggered if an error occurs while loading an image file.
258
+ * @param {Event} event - Browser event.
259
+ * @group Emits
260
+ */
261
+ onImageError = new EventEmitter();
262
+ /**
263
+ * This event is triggered if an error occurs while removing an uploaded file.
264
+ * @param {RemoveUploadedFileEvent} event - Remove event.
265
+ * @group Emits
266
+ */
267
+ onRemoveUploadedFile = new EventEmitter();
268
+ templates;
269
+ advancedFileInput;
270
+ basicFileInput;
271
+ content;
272
+ set files(files) {
273
+ this._files = [];
274
+ for (let i = 0; i < files.length; i++) {
275
+ let file = files[i];
276
+ if (this.validate(file)) {
277
+ if (this.isImage(file)) {
278
+ file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
279
+ }
280
+ this._files.push(files[i]);
281
+ }
282
+ }
283
+ }
284
+ get files() {
285
+ return this._files;
286
+ }
287
+ get basicButtonLabel() {
288
+ if (this.auto || !this.hasFiles()) {
289
+ return this.chooseLabel;
290
+ }
291
+ return this.uploadLabel ?? this.files[0].name;
292
+ }
293
+ _files = [];
294
+ progress = 0;
295
+ dragHighlight;
296
+ msgs;
297
+ fileTemplate;
298
+ headerTemplate;
299
+ contentTemplate;
300
+ toolbarTemplate;
301
+ chooseIconTemplate;
302
+ uploadIconTemplate;
303
+ cancelIconTemplate;
304
+ emptyTemplate;
305
+ uploadedFileCount = 0;
306
+ focus;
307
+ uploading;
308
+ duplicateIEEvent; // flag to recognize duplicate onchange event for file input
309
+ translationSubscription;
310
+ dragOverListener;
311
+ uploadedFiles = [];
312
+ fileUploadSubcription;
313
+ constructor(document, platformId, renderer, el, sanitizer, zone, http, cd, config) {
314
+ this.document = document;
315
+ this.platformId = platformId;
316
+ this.renderer = renderer;
317
+ this.el = el;
318
+ this.sanitizer = sanitizer;
319
+ this.zone = zone;
320
+ this.http = http;
321
+ this.cd = cd;
322
+ this.config = config;
323
+ }
324
+ ngAfterContentInit() {
325
+ this.templates?.forEach((item) => {
326
+ switch (item.getType()) {
327
+ case 'header':
328
+ this.headerTemplate = item.template;
329
+ break;
330
+ case 'file':
331
+ this.fileTemplate = item.template;
332
+ break;
333
+ case 'content':
334
+ this.contentTemplate = item.template;
335
+ break;
336
+ case 'toolbar':
337
+ this.toolbarTemplate = item.template;
338
+ break;
339
+ case 'chooseicon':
340
+ this.chooseIconTemplate = item.template;
341
+ break;
342
+ case 'uploadicon':
343
+ this.uploadIconTemplate = item.template;
344
+ break;
345
+ case 'cancelicon':
346
+ this.cancelIconTemplate = item.template;
347
+ break;
348
+ case 'empty':
349
+ this.emptyTemplate = item.template;
350
+ break;
351
+ default:
352
+ this.fileTemplate = item.template;
353
+ break;
354
+ }
355
+ });
356
+ }
357
+ ngOnInit() {
358
+ this.translationSubscription = this.config.translationObserver.subscribe(() => {
359
+ this.cd.markForCheck();
360
+ });
361
+ }
362
+ ngAfterViewInit() {
363
+ if (isPlatformBrowser(this.platformId)) {
364
+ if (this.mode === 'advanced') {
365
+ this.zone.runOutsideAngular(() => {
366
+ if (this.content) {
367
+ this.dragOverListener = this.renderer.listen(this.content.nativeElement, 'dragover', this.onDragOver.bind(this));
368
+ }
369
+ });
370
+ }
371
+ }
372
+ }
373
+ getTranslation(option) {
374
+ return this.config.getTranslation(option);
375
+ }
376
+ choose() {
377
+ this.advancedFileInput?.nativeElement.click();
378
+ }
379
+ onFileSelect(event) {
380
+ if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {
381
+ this.duplicateIEEvent = false;
382
+ return;
383
+ }
384
+ this.msgs = [];
385
+ if (!this.multiple) {
386
+ this.files = [];
387
+ }
388
+ let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
389
+ for (let i = 0; i < files.length; i++) {
390
+ let file = files[i];
391
+ if (!this.isFileSelected(file)) {
392
+ if (this.validate(file)) {
393
+ if (this.isImage(file)) {
394
+ file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
395
+ }
396
+ this.files.push(files[i]);
397
+ }
398
+ }
399
+ }
400
+ this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });
401
+ // this will check the fileLimit with the uploaded files
402
+ this.checkFileLimit(files);
403
+ if (this.hasFiles() && this.auto && (this.mode !== 'advanced' || !this.isFileLimitExceeded())) {
404
+ this.upload();
405
+ }
406
+ if (event.type !== 'drop' && this.isIE11()) {
407
+ this.clearIEInput();
408
+ }
409
+ else {
410
+ this.clearInputElement();
411
+ }
412
+ }
413
+ isFileSelected(file) {
414
+ for (let sFile of this.files) {
415
+ if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {
416
+ return true;
417
+ }
418
+ }
419
+ return false;
420
+ }
421
+ isIE11() {
422
+ if (isPlatformBrowser(this.platformId)) {
423
+ return !!this.document.defaultView['MSInputMethodContext'] && !!this.document['documentMode'];
424
+ }
425
+ }
426
+ validate(file) {
427
+ this.msgs = this.msgs || [];
428
+ if (this.accept && !this.isFileTypeValid(file)) {
429
+ this.msgs.push({
430
+ severity: 'error',
431
+ summary: this.invalidFileTypeMessageSummary.replace('{0}', file.name),
432
+ detail: this.invalidFileTypeMessageDetail.replace('{0}', this.accept)
433
+ });
434
+ return false;
435
+ }
436
+ if (this.maxFileSize && file.size > this.maxFileSize) {
437
+ this.msgs.push({
438
+ severity: 'error',
439
+ summary: this.invalidFileSizeMessageSummary.replace('{0}', file.name),
440
+ detail: this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))
441
+ });
442
+ return false;
443
+ }
444
+ return true;
445
+ }
446
+ isFileTypeValid(file) {
447
+ let acceptableTypes = this.accept?.split(',').map((type) => type.trim());
448
+ for (let type of acceptableTypes) {
449
+ let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();
450
+ if (acceptable) {
451
+ return true;
452
+ }
453
+ }
454
+ return false;
455
+ }
456
+ getTypeClass(fileType) {
457
+ return fileType.substring(0, fileType.indexOf('/'));
458
+ }
459
+ isWildcard(fileType) {
460
+ return fileType.indexOf('*') !== -1;
461
+ }
462
+ getFileExtension(file) {
463
+ return '.' + file.name.split('.').pop();
464
+ }
465
+ isImage(file) {
466
+ return /^image\//.test(file.type);
467
+ }
468
+ onImageLoad(img) {
469
+ window.URL.revokeObjectURL(img.src);
470
+ }
471
+ /**
472
+ * Uploads the selected files.
473
+ * @group Method
474
+ */
475
+ upload() {
476
+ if (this.customUpload) {
477
+ if (this.fileLimit) {
478
+ this.uploadedFileCount += this.files.length;
479
+ }
480
+ this.uploadHandler.emit({
481
+ files: this.files
482
+ });
483
+ this.cd.markForCheck();
484
+ }
485
+ else {
486
+ this.uploading = true;
487
+ this.msgs = [];
488
+ let formData = new FormData();
489
+ this.onBeforeUpload.emit({
490
+ formData: formData
491
+ });
492
+ for (let i = 0; i < this.files.length; i++) {
493
+ formData.append(this.name, this.files[i], this.files[i].name);
494
+ }
495
+ // If the previous upload hasn't been finished, it is aborted.
496
+ this.cancelUploadRequest();
497
+ this.fileUploadSubcription = this.http
498
+ .request(this.method, this.url, {
499
+ body: formData,
500
+ headers: this.headers,
501
+ reportProgress: true,
502
+ observe: 'events',
503
+ withCredentials: this.withCredentials
504
+ })
505
+ .subscribe((event) => {
506
+ switch (event.type) {
507
+ case HttpEventType.Sent:
508
+ this.onSend.emit({
509
+ originalEvent: event,
510
+ formData: formData
511
+ });
512
+ break;
513
+ case HttpEventType.Response:
514
+ this.uploading = false;
515
+ this.progress = 0;
516
+ if (event['status'] >= 200 && event['status'] < 300) {
517
+ if (this.fileLimit) {
518
+ this.uploadedFileCount += this.files.length;
519
+ }
520
+ this.onUpload.emit({ originalEvent: event, files: this.files });
521
+ }
522
+ else {
523
+ this.onError.emit({ files: this.files });
524
+ }
525
+ this.uploadedFiles.push(...this.files);
526
+ this.clear();
527
+ break;
528
+ case HttpEventType.UploadProgress: {
529
+ if (event['loaded']) {
530
+ this.progress = Math.round((event['loaded'] * 100) / event['total']);
531
+ }
532
+ this.onProgress.emit({ originalEvent: event, progress: this.progress });
533
+ break;
534
+ }
535
+ }
536
+ this.cd.markForCheck();
537
+ }, (error) => {
538
+ this.uploading = false;
539
+ this.onError.emit({ files: this.files, error: error });
540
+ });
541
+ }
542
+ }
543
+ /**
544
+ * Clears the files list.
545
+ * @group Method
546
+ */
547
+ clear() {
548
+ this.files = [];
549
+ this.uploadedFileCount = 0;
550
+ this.cancelUploadRequest();
551
+ this.onClear.emit();
552
+ this.clearInputElement();
553
+ this.cd.markForCheck();
554
+ }
555
+ /**
556
+ * Removes a single file.
557
+ * @param {Event} event - Browser event.
558
+ * @param {Number} index - Index of the file.
559
+ * @group Method
560
+ */
561
+ remove(event, index) {
562
+ this.cancelUploadRequest();
563
+ this.clearInputElement();
564
+ this.onRemove.emit({ originalEvent: event, file: this.files[index] });
565
+ this.files.splice(index, 1);
566
+ this.checkFileLimit(this.files);
567
+ }
568
+ /**
569
+ * Removes uploaded file.
570
+ * @param {Number} index - Index of the file to be removed.
571
+ * @group Method
572
+ */
573
+ removeUploadedFile(index) {
574
+ let removedFile = this.uploadedFiles.splice(index, 1)[0];
575
+ this.uploadedFiles = [...this.uploadedFiles];
576
+ this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles });
577
+ }
578
+ /**
579
+ * Cancel upload file request.
580
+ * */
581
+ cancelUploadRequest() {
582
+ if (this.fileUploadSubcription) {
583
+ this.fileUploadSubcription.unsubscribe();
584
+ this.fileUploadSubcription = undefined;
585
+ }
586
+ }
587
+ isFileLimitExceeded() {
588
+ const isAutoMode = this.auto;
589
+ const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;
590
+ if (this.fileLimit && this.fileLimit <= totalFileCount && this.focus) {
591
+ this.focus = false;
592
+ }
593
+ return this.fileLimit && this.fileLimit < totalFileCount;
594
+ }
595
+ isChooseDisabled() {
596
+ if (this.auto) {
597
+ return this.fileLimit && this.fileLimit <= this.files.length;
598
+ }
599
+ else {
600
+ return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;
601
+ }
602
+ }
603
+ checkFileLimit(files) {
604
+ this.msgs ??= [];
605
+ const hasExistingValidationMessages = this.msgs.length > 0 && this.fileLimit < files.length;
606
+ if (this.isFileLimitExceeded() || hasExistingValidationMessages) {
607
+ this.msgs.push({
608
+ severity: 'error',
609
+ summary: this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString()),
610
+ detail: this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())
611
+ });
612
+ }
613
+ }
614
+ clearInputElement() {
615
+ if (this.advancedFileInput && this.advancedFileInput.nativeElement) {
616
+ this.advancedFileInput.nativeElement.value = '';
617
+ }
618
+ if (this.basicFileInput && this.basicFileInput.nativeElement) {
619
+ this.basicFileInput.nativeElement.value = '';
620
+ }
621
+ }
622
+ clearIEInput() {
623
+ if (this.advancedFileInput && this.advancedFileInput.nativeElement) {
624
+ this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again
625
+ this.advancedFileInput.nativeElement.value = '';
626
+ }
627
+ }
628
+ hasFiles() {
629
+ return this.files && this.files.length > 0;
630
+ }
631
+ hasUploadedFiles() {
632
+ return this.uploadedFiles && this.uploadedFiles.length > 0;
633
+ }
634
+ onDragEnter(e) {
635
+ if (!this.disabled) {
636
+ e.stopPropagation();
637
+ e.preventDefault();
638
+ }
639
+ }
640
+ onDragOver(e) {
641
+ if (!this.disabled) {
642
+ DomHandler.addClass(this.content?.nativeElement, 'p-fileupload-highlight');
643
+ this.dragHighlight = true;
644
+ e.stopPropagation();
645
+ e.preventDefault();
646
+ }
647
+ }
648
+ onDragLeave(event) {
649
+ if (!this.disabled) {
650
+ DomHandler.removeClass(this.content?.nativeElement, 'p-fileupload-highlight');
651
+ }
652
+ }
653
+ onDrop(event) {
654
+ if (!this.disabled) {
655
+ DomHandler.removeClass(this.content?.nativeElement, 'p-fileupload-highlight');
656
+ event.stopPropagation();
657
+ event.preventDefault();
658
+ let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
659
+ let allowDrop = this.multiple || (files && files.length === 1);
660
+ if (allowDrop) {
661
+ this.onFileSelect(event);
662
+ }
663
+ }
664
+ }
665
+ onFocus() {
666
+ this.focus = true;
667
+ }
668
+ onBlur() {
669
+ this.focus = false;
670
+ }
671
+ formatSize(bytes) {
672
+ const k = 1024;
673
+ const dm = 3;
674
+ const sizes = this.getTranslation(TranslationKeys.FILE_SIZE_TYPES);
675
+ if (bytes === 0) {
676
+ return `0 ${sizes[0]}`;
677
+ }
678
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
679
+ const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);
680
+ return `${formattedSize} ${sizes[i]}`;
681
+ }
682
+ onBasicUploaderClick() {
683
+ if (this.hasFiles())
684
+ this.upload();
685
+ else
686
+ this.basicFileInput?.nativeElement.click();
687
+ }
688
+ onBasicKeydown(event) {
689
+ switch (event.code) {
690
+ case 'Space':
691
+ case 'Enter':
692
+ this.onBasicUploaderClick();
693
+ event.preventDefault();
694
+ break;
695
+ }
696
+ }
697
+ imageError(event) {
698
+ this.onImageError.emit(event);
699
+ }
700
+ getBlockableElement() {
701
+ return this.el.nativeElement.children[0];
702
+ }
703
+ get chooseButtonLabel() {
704
+ return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);
705
+ }
706
+ get uploadButtonLabel() {
707
+ return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);
708
+ }
709
+ get cancelButtonLabel() {
710
+ return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);
711
+ }
712
+ get browseFilesLabel() {
713
+ return this.config.getTranslation(TranslationKeys.ARIA)[TranslationKeys.BROWSE_FILES];
714
+ }
715
+ ngOnDestroy() {
716
+ if (this.content && this.content.nativeElement) {
717
+ if (this.dragOverListener) {
718
+ this.dragOverListener();
719
+ this.dragOverListener = null;
720
+ }
721
+ }
722
+ if (this.translationSubscription) {
723
+ this.translationSubscription.unsubscribe();
724
+ }
725
+ }
726
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileUpload, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DomSanitizer }, { token: i0.NgZone }, { token: i2.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i3.caxConfig }], target: i0.ɵɵFactoryTarget.Component });
727
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: FileUpload, selector: "p-fileUpload", inputs: { name: "name", url: "url", method: "method", multiple: ["multiple", "multiple", booleanAttribute], accept: "accept", disabled: ["disabled", "disabled", booleanAttribute], auto: ["auto", "auto", booleanAttribute], withCredentials: ["withCredentials", "withCredentials", booleanAttribute], maxFileSize: ["maxFileSize", "maxFileSize", numberAttribute], invalidFileSizeMessageSummary: "invalidFileSizeMessageSummary", invalidFileSizeMessageDetail: "invalidFileSizeMessageDetail", invalidFileTypeMessageSummary: "invalidFileTypeMessageSummary", invalidFileTypeMessageDetail: "invalidFileTypeMessageDetail", invalidFileLimitMessageDetail: "invalidFileLimitMessageDetail", invalidFileLimitMessageSummary: "invalidFileLimitMessageSummary", style: "style", styleClass: "styleClass", previewWidth: ["previewWidth", "previewWidth", numberAttribute], chooseLabel: "chooseLabel", uploadLabel: "uploadLabel", cancelLabel: "cancelLabel", chooseIcon: "chooseIcon", uploadIcon: "uploadIcon", cancelIcon: "cancelIcon", showUploadButton: ["showUploadButton", "showUploadButton", booleanAttribute], showCancelButton: ["showCancelButton", "showCancelButton", booleanAttribute], mode: "mode", headers: "headers", customUpload: ["customUpload", "customUpload", booleanAttribute], fileLimit: ["fileLimit", "fileLimit", (value) => numberAttribute(value, null)], uploadStyleClass: "uploadStyleClass", cancelStyleClass: "cancelStyleClass", removeStyleClass: "removeStyleClass", chooseStyleClass: "chooseStyleClass", files: "files" }, outputs: { onBeforeUpload: "onBeforeUpload", onSend: "onSend", onUpload: "onUpload", onError: "onError", onClear: "onClear", onRemove: "onRemove", onSelect: "onSelect", onProgress: "onProgress", uploadHandler: "uploadHandler", onImageError: "onImageError", onRemoveUploadedFile: "onRemoveUploadedFile" }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "advancedFileInput", first: true, predicate: ["advancedfileinput"], descendants: true }, { propertyName: "basicFileInput", first: true, predicate: ["basicfileinput"], descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: `
728
+ <div [ngClass]="'p-fileupload p-fileupload-advanced p-component'" [ngStyle]="style" [class]="styleClass" *ngIf="mode === 'advanced'" [attr.data-pc-name]="'fileupload'" [attr.data-pc-section]="'root'">
729
+ <input
730
+ [attr.aria-label]="browseFilesLabel"
731
+ #advancedfileinput
732
+ type="file"
733
+ (change)="onFileSelect($event)"
734
+ [multiple]="multiple"
735
+ [accept]="accept"
736
+ [disabled]="disabled || isChooseDisabled()"
737
+ [attr.title]="''"
738
+ [attr.data-pc-section]="'input'"
739
+ [style.display]="'none'"
740
+ />
741
+ <div class="p-fileupload-buttonbar" [attr.data-pc-section]="'buttonbar'">
742
+ <ng-container *ngIf="!headerTemplate">
743
+ <span
744
+ class="p-button p-component p-fileupload-choose"
745
+ [ngClass]="{ 'p-focus': focus, 'p-disabled': disabled || isChooseDisabled() }"
746
+ (focus)="onFocus()"
747
+ (blur)="onBlur()"
748
+ pRipple
749
+ (click)="choose()"
750
+ (keydown.enter)="choose()"
751
+ tabindex="0"
752
+ [class]="chooseStyleClass"
753
+ [attr.data-pc-section]="'choosebutton'"
754
+ >
755
+ <input
756
+ [attr.aria-label]="browseFilesLabel"
757
+ #advancedfileinput
758
+ type="file"
759
+ (change)="onFileSelect($event)"
760
+ [multiple]="multiple"
761
+ [accept]="accept"
762
+ [disabled]="disabled || isChooseDisabled()"
763
+ [attr.title]="''"
764
+ [attr.data-pc-section]="'input'"
765
+ />
766
+ <span *ngIf="chooseIcon" [ngClass]="'p-button-icon p-button-icon-left'" [class]="chooseIcon" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'"></span>
767
+ <ng-container *ngIf="!chooseIcon">
768
+ <PlusIcon *ngIf="!chooseIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'" />
769
+ <span *ngIf="chooseIconTemplate" class="p-button-icon p-button-icon-left" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'">
770
+ <ng-template *ngTemplateOutlet="chooseIconTemplate"></ng-template>
771
+ </span>
772
+ </ng-container>
773
+ <span class="p-button-label" [attr.data-pc-section]="'choosebuttonlabel'">{{ chooseButtonLabel }}</span>
774
+ </span>
775
+
776
+ <p-button *ngIf="!auto && showUploadButton" type="button" [label]="uploadButtonLabel" (onClick)="upload()" [disabled]="!hasFiles() || isFileLimitExceeded()" [styleClass]="uploadStyleClass">
777
+ <span *ngIf="uploadIcon" [ngClass]="uploadIcon" [attr.aria-hidden]="true" class="p-button-icon p-button-icon-left"></span>
778
+ <ng-container *ngIf="!uploadIcon">
779
+ <UploadIcon *ngIf="!uploadIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" />
780
+ <span *ngIf="uploadIconTemplate" class="p-button-icon p-button-icon-left" [attr.aria-hidden]="true">
781
+ <ng-template *ngTemplateOutlet="uploadIconTemplate"></ng-template>
782
+ </span>
783
+ </ng-container>
784
+ </p-button>
785
+ <p-button *ngIf="!auto && showCancelButton" type="button" [label]="cancelButtonLabel" (onClick)="clear()" [disabled]="!hasFiles() || uploading" [styleClass]="cancelStyleClass">
786
+ <span *ngIf="cancelIcon" [ngClass]="cancelIcon" class="p-button-icon p-button-icon-left"></span>
787
+ <ng-container *ngIf="!cancelIcon">
788
+ <TimesIcon *ngIf="!cancelIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" [attr.aria-hidden]="true" />
789
+ <span *ngIf="cancelIconTemplate" class="p-button-icon p-button-icon-left" [attr.aria-hidden]="true">
790
+ <ng-template *ngTemplateOutlet="cancelIconTemplate"></ng-template>
791
+ </span>
792
+ </ng-container>
793
+ </p-button>
794
+ </ng-container>
795
+ <ng-container *ngTemplateOutlet="headerTemplate; context: { $implicit: files, uploadedFiles: uploadedFiles, chooseCallback: choose.bind(this), clearCallback: clear.bind(this), uploadCallback: upload.bind(this) }"></ng-container>
796
+ <ng-container *ngTemplateOutlet="toolbarTemplate"></ng-container>
797
+ </div>
798
+ <div #content class="p-fileupload-content" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)" [attr.data-pc-section]="'content'">
799
+ <p-progressBar [value]="progress" [showValue]="false" *ngIf="hasFiles()"></p-progressBar>
800
+
801
+ <p-messages [value]="msgs" [enableService]="false"></p-messages>
802
+
803
+ <div class="p-fileupload-files" *ngIf="hasFiles()">
804
+ <div *ngIf="!fileTemplate">
805
+ <div class="p-fileupload-row" *ngFor="let file of files; let i = index">
806
+ <div *ngIf="isImage(file)"><img [src]="file.objectURL" [width]="previewWidth" (error)="imageError($event)" /></div>
807
+ <div class="p-fileupload-filename">{{ file.name }}</div>
808
+ <div>{{ formatSize(file.size) }}</div>
809
+ <div>
810
+ <button type="button" pButton (click)="remove($event, i)" [disabled]="uploading" class="p-button-icon-only" [class]="removeStyleClass">
811
+ <TimesIcon *ngIf="!cancelIconTemplate" />
812
+ <ng-template *ngTemplateOutlet="cancelIconTemplate"></ng-template>
813
+ </button>
814
+ </div>
815
+ </div>
816
+ </div>
817
+ <div *ngIf="fileTemplate">
818
+ <ng-template ngFor [ngForOf]="files" [ngForTemplate]="fileTemplate"></ng-template>
819
+ </div>
820
+ </div>
821
+ <ng-container
822
+ *ngTemplateOutlet="
823
+ contentTemplate;
824
+ context: {
825
+ $implicit: files,
826
+ uploadedFiles: uploadedFiles,
827
+ chooseCallback: choose.bind(this),
828
+ clearCallback: clear.bind(this),
829
+ removeUploadedFileCallback: removeUploadedFile.bind(this),
830
+ removeFileCallback: remove.bind(this),
831
+ progress: progress,
832
+ messages: msgs
833
+ }
834
+ "
835
+ ></ng-container>
836
+ <div *ngIf="emptyTemplate && !hasFiles() && !hasUploadedFiles()" class="p-fileupload-empty">
837
+ <ng-container *ngTemplateOutlet="emptyTemplate"></ng-container>
838
+ </div>
839
+ </div>
840
+ </div>
841
+ <div class="p-fileupload p-fileupload-basic p-component" *ngIf="mode === 'basic'" [attr.data-pc-name]="'fileupload'">
842
+ <p-messages [value]="msgs" [enableService]="false"></p-messages>
843
+ <span
844
+ [ngClass]="{ 'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !basicButtonLabel, 'p-fileupload-choose-selected': hasFiles(), 'p-focus': focus, 'p-disabled': disabled }"
845
+ [ngStyle]="style"
846
+ [class]="styleClass"
847
+ (click)="onBasicUploaderClick()"
848
+ (keydown)="onBasicKeydown($event)"
849
+ tabindex="0"
850
+ pRipple
851
+ [attr.data-pc-section]="'choosebutton'"
852
+ >
853
+ <ng-container *ngIf="hasFiles() && !auto; else chooseSection">
854
+ <span *ngIf="uploadIcon" class="p-button-icon p-button-icon-left" [ngClass]="uploadIcon"></span>
855
+ <ng-container *ngIf="!uploadIcon">
856
+ <UploadIcon *ngIf="!uploadIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" />
857
+ <span *ngIf="uploadIconTemplate" class="p-button-icon p-button-icon-left">
858
+ <ng-template *ngTemplateOutlet="uploadIconTemplate"></ng-template>
859
+ </span>
860
+ </ng-container>
861
+ </ng-container>
862
+ <ng-template #chooseSection>
863
+ <span *ngIf="chooseIcon" class="p-button-icon p-button-icon-left pi" [ngClass]="chooseIcon"></span>
864
+ <ng-container *ngIf="!chooseIcon">
865
+ <PlusIcon [styleClass]="'p-button-icon p-button-icon-left pi'" *ngIf="!chooseIconTemplate" [attr.aria-hidden]="true" [attr.data-pc-section]="'uploadicon'" />
866
+ <span *ngIf="chooseIconTemplate" class="p-button-icon p-button-icon-left pi" [attr.aria-hidden]="true" [attr.data-pc-section]="'uploadicon'">
867
+ <ng-template *ngTemplateOutlet="chooseIconTemplate"></ng-template>
868
+ </span>
869
+ </ng-container>
870
+ </ng-template>
871
+ <span *ngIf="basicButtonLabel" class="p-button-label" [attr.data-pc-section]="'label'">{{ basicButtonLabel }}</span>
872
+ <input
873
+ [attr.aria-label]="browseFilesLabel"
874
+ #basicfileinput
875
+ type="file"
876
+ [accept]="accept"
877
+ [multiple]="multiple"
878
+ [disabled]="disabled"
879
+ (change)="onFileSelect($event)"
880
+ *ngIf="!hasFiles()"
881
+ (focus)="onFocus()"
882
+ (blur)="onBlur()"
883
+ [attr.data-pc-section]="'input'"
884
+ />
885
+ </span>
886
+ </div>
887
+ `, isInline: true, styles: ["@layer cax{.p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i4.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => PlusIcon), selector: "PlusIcon" }, { kind: "component", type: i0.forwardRef(() => UploadIcon), selector: "UploadIcon" }, { kind: "component", type: i0.forwardRef(() => TimesIcon), selector: "TimesIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
888
+ }
889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileUpload, decorators: [{
890
+ type: Component,
891
+ args: [{ selector: 'p-fileUpload', template: `
892
+ <div [ngClass]="'p-fileupload p-fileupload-advanced p-component'" [ngStyle]="style" [class]="styleClass" *ngIf="mode === 'advanced'" [attr.data-pc-name]="'fileupload'" [attr.data-pc-section]="'root'">
893
+ <input
894
+ [attr.aria-label]="browseFilesLabel"
895
+ #advancedfileinput
896
+ type="file"
897
+ (change)="onFileSelect($event)"
898
+ [multiple]="multiple"
899
+ [accept]="accept"
900
+ [disabled]="disabled || isChooseDisabled()"
901
+ [attr.title]="''"
902
+ [attr.data-pc-section]="'input'"
903
+ [style.display]="'none'"
904
+ />
905
+ <div class="p-fileupload-buttonbar" [attr.data-pc-section]="'buttonbar'">
906
+ <ng-container *ngIf="!headerTemplate">
907
+ <span
908
+ class="p-button p-component p-fileupload-choose"
909
+ [ngClass]="{ 'p-focus': focus, 'p-disabled': disabled || isChooseDisabled() }"
910
+ (focus)="onFocus()"
911
+ (blur)="onBlur()"
912
+ pRipple
913
+ (click)="choose()"
914
+ (keydown.enter)="choose()"
915
+ tabindex="0"
916
+ [class]="chooseStyleClass"
917
+ [attr.data-pc-section]="'choosebutton'"
918
+ >
919
+ <input
920
+ [attr.aria-label]="browseFilesLabel"
921
+ #advancedfileinput
922
+ type="file"
923
+ (change)="onFileSelect($event)"
924
+ [multiple]="multiple"
925
+ [accept]="accept"
926
+ [disabled]="disabled || isChooseDisabled()"
927
+ [attr.title]="''"
928
+ [attr.data-pc-section]="'input'"
929
+ />
930
+ <span *ngIf="chooseIcon" [ngClass]="'p-button-icon p-button-icon-left'" [class]="chooseIcon" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'"></span>
931
+ <ng-container *ngIf="!chooseIcon">
932
+ <PlusIcon *ngIf="!chooseIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'" />
933
+ <span *ngIf="chooseIconTemplate" class="p-button-icon p-button-icon-left" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'">
934
+ <ng-template *ngTemplateOutlet="chooseIconTemplate"></ng-template>
935
+ </span>
936
+ </ng-container>
937
+ <span class="p-button-label" [attr.data-pc-section]="'choosebuttonlabel'">{{ chooseButtonLabel }}</span>
938
+ </span>
939
+
940
+ <p-button *ngIf="!auto && showUploadButton" type="button" [label]="uploadButtonLabel" (onClick)="upload()" [disabled]="!hasFiles() || isFileLimitExceeded()" [styleClass]="uploadStyleClass">
941
+ <span *ngIf="uploadIcon" [ngClass]="uploadIcon" [attr.aria-hidden]="true" class="p-button-icon p-button-icon-left"></span>
942
+ <ng-container *ngIf="!uploadIcon">
943
+ <UploadIcon *ngIf="!uploadIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" />
944
+ <span *ngIf="uploadIconTemplate" class="p-button-icon p-button-icon-left" [attr.aria-hidden]="true">
945
+ <ng-template *ngTemplateOutlet="uploadIconTemplate"></ng-template>
946
+ </span>
947
+ </ng-container>
948
+ </p-button>
949
+ <p-button *ngIf="!auto && showCancelButton" type="button" [label]="cancelButtonLabel" (onClick)="clear()" [disabled]="!hasFiles() || uploading" [styleClass]="cancelStyleClass">
950
+ <span *ngIf="cancelIcon" [ngClass]="cancelIcon" class="p-button-icon p-button-icon-left"></span>
951
+ <ng-container *ngIf="!cancelIcon">
952
+ <TimesIcon *ngIf="!cancelIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" [attr.aria-hidden]="true" />
953
+ <span *ngIf="cancelIconTemplate" class="p-button-icon p-button-icon-left" [attr.aria-hidden]="true">
954
+ <ng-template *ngTemplateOutlet="cancelIconTemplate"></ng-template>
955
+ </span>
956
+ </ng-container>
957
+ </p-button>
958
+ </ng-container>
959
+ <ng-container *ngTemplateOutlet="headerTemplate; context: { $implicit: files, uploadedFiles: uploadedFiles, chooseCallback: choose.bind(this), clearCallback: clear.bind(this), uploadCallback: upload.bind(this) }"></ng-container>
960
+ <ng-container *ngTemplateOutlet="toolbarTemplate"></ng-container>
961
+ </div>
962
+ <div #content class="p-fileupload-content" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)" [attr.data-pc-section]="'content'">
963
+ <p-progressBar [value]="progress" [showValue]="false" *ngIf="hasFiles()"></p-progressBar>
964
+
965
+ <p-messages [value]="msgs" [enableService]="false"></p-messages>
966
+
967
+ <div class="p-fileupload-files" *ngIf="hasFiles()">
968
+ <div *ngIf="!fileTemplate">
969
+ <div class="p-fileupload-row" *ngFor="let file of files; let i = index">
970
+ <div *ngIf="isImage(file)"><img [src]="file.objectURL" [width]="previewWidth" (error)="imageError($event)" /></div>
971
+ <div class="p-fileupload-filename">{{ file.name }}</div>
972
+ <div>{{ formatSize(file.size) }}</div>
973
+ <div>
974
+ <button type="button" pButton (click)="remove($event, i)" [disabled]="uploading" class="p-button-icon-only" [class]="removeStyleClass">
975
+ <TimesIcon *ngIf="!cancelIconTemplate" />
976
+ <ng-template *ngTemplateOutlet="cancelIconTemplate"></ng-template>
977
+ </button>
978
+ </div>
979
+ </div>
980
+ </div>
981
+ <div *ngIf="fileTemplate">
982
+ <ng-template ngFor [ngForOf]="files" [ngForTemplate]="fileTemplate"></ng-template>
983
+ </div>
984
+ </div>
985
+ <ng-container
986
+ *ngTemplateOutlet="
987
+ contentTemplate;
988
+ context: {
989
+ $implicit: files,
990
+ uploadedFiles: uploadedFiles,
991
+ chooseCallback: choose.bind(this),
992
+ clearCallback: clear.bind(this),
993
+ removeUploadedFileCallback: removeUploadedFile.bind(this),
994
+ removeFileCallback: remove.bind(this),
995
+ progress: progress,
996
+ messages: msgs
997
+ }
998
+ "
999
+ ></ng-container>
1000
+ <div *ngIf="emptyTemplate && !hasFiles() && !hasUploadedFiles()" class="p-fileupload-empty">
1001
+ <ng-container *ngTemplateOutlet="emptyTemplate"></ng-container>
1002
+ </div>
1003
+ </div>
1004
+ </div>
1005
+ <div class="p-fileupload p-fileupload-basic p-component" *ngIf="mode === 'basic'" [attr.data-pc-name]="'fileupload'">
1006
+ <p-messages [value]="msgs" [enableService]="false"></p-messages>
1007
+ <span
1008
+ [ngClass]="{ 'p-button p-component p-fileupload-choose': true, 'p-button-icon-only': !basicButtonLabel, 'p-fileupload-choose-selected': hasFiles(), 'p-focus': focus, 'p-disabled': disabled }"
1009
+ [ngStyle]="style"
1010
+ [class]="styleClass"
1011
+ (click)="onBasicUploaderClick()"
1012
+ (keydown)="onBasicKeydown($event)"
1013
+ tabindex="0"
1014
+ pRipple
1015
+ [attr.data-pc-section]="'choosebutton'"
1016
+ >
1017
+ <ng-container *ngIf="hasFiles() && !auto; else chooseSection">
1018
+ <span *ngIf="uploadIcon" class="p-button-icon p-button-icon-left" [ngClass]="uploadIcon"></span>
1019
+ <ng-container *ngIf="!uploadIcon">
1020
+ <UploadIcon *ngIf="!uploadIconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" />
1021
+ <span *ngIf="uploadIconTemplate" class="p-button-icon p-button-icon-left">
1022
+ <ng-template *ngTemplateOutlet="uploadIconTemplate"></ng-template>
1023
+ </span>
1024
+ </ng-container>
1025
+ </ng-container>
1026
+ <ng-template #chooseSection>
1027
+ <span *ngIf="chooseIcon" class="p-button-icon p-button-icon-left pi" [ngClass]="chooseIcon"></span>
1028
+ <ng-container *ngIf="!chooseIcon">
1029
+ <PlusIcon [styleClass]="'p-button-icon p-button-icon-left pi'" *ngIf="!chooseIconTemplate" [attr.aria-hidden]="true" [attr.data-pc-section]="'uploadicon'" />
1030
+ <span *ngIf="chooseIconTemplate" class="p-button-icon p-button-icon-left pi" [attr.aria-hidden]="true" [attr.data-pc-section]="'uploadicon'">
1031
+ <ng-template *ngTemplateOutlet="chooseIconTemplate"></ng-template>
1032
+ </span>
1033
+ </ng-container>
1034
+ </ng-template>
1035
+ <span *ngIf="basicButtonLabel" class="p-button-label" [attr.data-pc-section]="'label'">{{ basicButtonLabel }}</span>
1036
+ <input
1037
+ [attr.aria-label]="browseFilesLabel"
1038
+ #basicfileinput
1039
+ type="file"
1040
+ [accept]="accept"
1041
+ [multiple]="multiple"
1042
+ [disabled]="disabled"
1043
+ (change)="onFileSelect($event)"
1044
+ *ngIf="!hasFiles()"
1045
+ (focus)="onFocus()"
1046
+ (blur)="onBlur()"
1047
+ [attr.data-pc-section]="'input'"
1048
+ />
1049
+ </span>
1050
+ </div>
1051
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1052
+ class: 'cax-element'
1053
+ }, styles: ["@layer cax{.p-fileupload-content{position:relative}.p-fileupload-row{display:flex;align-items:center}.p-fileupload-row>div{flex:1 1 auto;width:25%}.p-fileupload-row>div:last-child{text-align:right}.p-fileupload-content .p-progressbar{width:100%;position:absolute;top:0;left:0}.p-button.p-fileupload-choose{position:relative;overflow:hidden}.p-button.p-fileupload-choose input[type=file],.p-fileupload-choose.p-fileupload-choose-selected input[type=file]{display:none}.p-fluid .p-fileupload .p-button{width:auto}.p-fileupload-filename{word-break:break-all}}\n"] }]
1054
+ }], ctorParameters: () => [{ type: Document, decorators: [{
1055
+ type: Inject,
1056
+ args: [DOCUMENT]
1057
+ }] }, { type: undefined, decorators: [{
1058
+ type: Inject,
1059
+ args: [PLATFORM_ID]
1060
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: i0.NgZone }, { type: i2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i3.caxConfig }], propDecorators: { name: [{
1061
+ type: Input
1062
+ }], url: [{
1063
+ type: Input
1064
+ }], method: [{
1065
+ type: Input
1066
+ }], multiple: [{
1067
+ type: Input,
1068
+ args: [{ transform: booleanAttribute }]
1069
+ }], accept: [{
1070
+ type: Input
1071
+ }], disabled: [{
1072
+ type: Input,
1073
+ args: [{ transform: booleanAttribute }]
1074
+ }], auto: [{
1075
+ type: Input,
1076
+ args: [{ transform: booleanAttribute }]
1077
+ }], withCredentials: [{
1078
+ type: Input,
1079
+ args: [{ transform: booleanAttribute }]
1080
+ }], maxFileSize: [{
1081
+ type: Input,
1082
+ args: [{ transform: numberAttribute }]
1083
+ }], invalidFileSizeMessageSummary: [{
1084
+ type: Input
1085
+ }], invalidFileSizeMessageDetail: [{
1086
+ type: Input
1087
+ }], invalidFileTypeMessageSummary: [{
1088
+ type: Input
1089
+ }], invalidFileTypeMessageDetail: [{
1090
+ type: Input
1091
+ }], invalidFileLimitMessageDetail: [{
1092
+ type: Input
1093
+ }], invalidFileLimitMessageSummary: [{
1094
+ type: Input
1095
+ }], style: [{
1096
+ type: Input
1097
+ }], styleClass: [{
1098
+ type: Input
1099
+ }], previewWidth: [{
1100
+ type: Input,
1101
+ args: [{ transform: numberAttribute }]
1102
+ }], chooseLabel: [{
1103
+ type: Input
1104
+ }], uploadLabel: [{
1105
+ type: Input
1106
+ }], cancelLabel: [{
1107
+ type: Input
1108
+ }], chooseIcon: [{
1109
+ type: Input
1110
+ }], uploadIcon: [{
1111
+ type: Input
1112
+ }], cancelIcon: [{
1113
+ type: Input
1114
+ }], showUploadButton: [{
1115
+ type: Input,
1116
+ args: [{ transform: booleanAttribute }]
1117
+ }], showCancelButton: [{
1118
+ type: Input,
1119
+ args: [{ transform: booleanAttribute }]
1120
+ }], mode: [{
1121
+ type: Input
1122
+ }], headers: [{
1123
+ type: Input
1124
+ }], customUpload: [{
1125
+ type: Input,
1126
+ args: [{ transform: booleanAttribute }]
1127
+ }], fileLimit: [{
1128
+ type: Input,
1129
+ args: [{ transform: (value) => numberAttribute(value, null) }]
1130
+ }], uploadStyleClass: [{
1131
+ type: Input
1132
+ }], cancelStyleClass: [{
1133
+ type: Input
1134
+ }], removeStyleClass: [{
1135
+ type: Input
1136
+ }], chooseStyleClass: [{
1137
+ type: Input
1138
+ }], onBeforeUpload: [{
1139
+ type: Output
1140
+ }], onSend: [{
1141
+ type: Output
1142
+ }], onUpload: [{
1143
+ type: Output
1144
+ }], onError: [{
1145
+ type: Output
1146
+ }], onClear: [{
1147
+ type: Output
1148
+ }], onRemove: [{
1149
+ type: Output
1150
+ }], onSelect: [{
1151
+ type: Output
1152
+ }], onProgress: [{
1153
+ type: Output
1154
+ }], uploadHandler: [{
1155
+ type: Output
1156
+ }], onImageError: [{
1157
+ type: Output
1158
+ }], onRemoveUploadedFile: [{
1159
+ type: Output
1160
+ }], templates: [{
1161
+ type: ContentChildren,
1162
+ args: [CaxTemplate]
1163
+ }], advancedFileInput: [{
1164
+ type: ViewChild,
1165
+ args: ['advancedfileinput']
1166
+ }], basicFileInput: [{
1167
+ type: ViewChild,
1168
+ args: ['basicfileinput']
1169
+ }], content: [{
1170
+ type: ViewChild,
1171
+ args: ['content']
1172
+ }], files: [{
1173
+ type: Input
1174
+ }] } });
1175
+ export class FileUploadModule {
1176
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1177
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: FileUploadModule, declarations: [FileUpload], imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule, PlusIcon, UploadIcon, TimesIcon], exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule] });
1178
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileUploadModule, imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule, PlusIcon, UploadIcon, TimesIcon, SharedModule, ButtonModule, ProgressBarModule, MessagesModule] });
1179
+ }
1180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileUploadModule, decorators: [{
1181
+ type: NgModule,
1182
+ args: [{
1183
+ imports: [CommonModule, SharedModule, ButtonModule, ProgressBarModule, MessagesModule, RippleModule, PlusIcon, UploadIcon, TimesIcon],
1184
+ exports: [FileUpload, SharedModule, ButtonModule, ProgressBarModule, MessagesModule],
1185
+ declarations: [FileUpload]
1186
+ }]
1187
+ }] });
1188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXVwbG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWxldXBsb2FkL2ZpbGV1cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQXlCLGFBQWEsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFHSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBSVIsTUFBTSxFQUNOLFdBQVcsRUFJWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBRWxCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBbUMsV0FBVyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUl4RDs7O0dBR0c7QUEyS0gsTUFBTSxPQUFPLFVBQVU7SUEyVFc7SUFDRztJQUNyQjtJQUNBO0lBQ0Q7SUFD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T0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztvQkFDckksT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO29CQUNwRixZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEJsb2NrYWJsZVVJLCBNZXNzYWdlLCBjYXhDb25maWcsIENheFRlbXBsYXRlLCBTaGFyZWRNb2R1bGUsIFRyYW5zbGF0aW9uS2V5cyB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2FwaSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9idXR0b24nO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2RvbSc7XG5pbXBvcnQgeyBQbHVzSWNvbiB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2ljb25zL3BsdXMnO1xuaW1wb3J0IHsgVGltZXNJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvdGltZXMnO1xuaW1wb3J0IHsgVXBsb2FkSWNvbiB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2ljb25zL3VwbG9hZCc7XG5pbXBvcnQgeyBNZXNzYWdlc01vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL21lc3NhZ2VzJztcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vcHJvZ3Jlc3NiYXInO1xuaW1wb3J0IHsgUmlwcGxlTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vcmlwcGxlJztcbmltcG9ydCB7IFZvaWRMaXN0ZW5lciB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWxlQmVmb3JlVXBsb2FkRXZlbnQsIEZpbGVQcm9ncmVzc0V2ZW50LCBGaWxlUmVtb3ZlRXZlbnQsIEZpbGVTZWxlY3RFdmVudCwgRmlsZVNlbmRFdmVudCwgRmlsZVVwbG9hZEVycm9yRXZlbnQsIEZpbGVVcGxvYWRFdmVudCwgRmlsZVVwbG9hZEhhbmRsZXJFdmVudCwgUmVtb3ZlVXBsb2FkZWRGaWxlRXZlbnQgfSBmcm9tICcuL2ZpbGV1cGxvYWQuaW50ZXJmYWNlJztcbi8qKlxuICogRmlsZVVwbG9hZCBpcyBhbiBhZHZhbmNlZCB1cGxvYWRlciB3aXRoIGRyYWdkcm9wIHN1cHBvcnQsIG11bHRpIGZpbGUgdXBsb2FkcywgYXV0byB1cGxvYWRpbmcsIHByb2dyZXNzIHRyYWNraW5nIGFuZCB2YWxpZGF0aW9ucy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1maWxlVXBsb2FkJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIidwLWZpbGV1cGxvYWQgcC1maWxldXBsb2FkLWFkdmFuY2VkIHAtY29tcG9uZW50J1wiIFtuZ1N0eWxlXT1cInN0eWxlXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIiAqbmdJZj1cIm1vZGUgPT09ICdhZHZhbmNlZCdcIiBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ2ZpbGV1cGxvYWQnXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicm93c2VGaWxlc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAjYWR2YW5jZWRmaWxlaW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzQ2hvb3NlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJydcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaW5wdXQnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZpbGV1cGxvYWQtYnV0dG9uYmFyXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIididXR0b25iYXInXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoZWFkZXJUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbiBwLWNvbXBvbmVudCBwLWZpbGV1cGxvYWQtY2hvb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZm9jdXMnOiBmb2N1cywgJ3AtZGlzYWJsZWQnOiBkaXNhYmxlZCB8fCBpc0Nob29zZURpc2FibGVkKCkgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaG9vc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjaG9vc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNob29zZVN0eWxlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjaG9vc2VidXR0b24nXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicm93c2VGaWxlc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYWR2YW5jZWRmaWxlaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzQ2hvb3NlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaW5wdXQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNob29zZUljb25cIiBbbmdDbGFzc109XCIncC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnQnXCIgW2NsYXNzXT1cImNob29zZUljb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRydWVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2Nob29zZWljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjaG9vc2VJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBsdXNJY29uICpuZ0lmPVwiIWNob29zZUljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdCdcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRydWVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2Nob29zZWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNob29zZUljb25UZW1wbGF0ZVwiIGNsYXNzPVwicC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRydWVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2Nob29zZWljb24nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNob29zZUljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtYnV0dG9uLWxhYmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjaG9vc2VidXR0b25sYWJlbCdcIj57eyBjaG9vc2VCdXR0b25MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiAqbmdJZj1cIiFhdXRvICYmIHNob3dVcGxvYWRCdXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cInVwbG9hZEJ1dHRvbkxhYmVsXCIgKG9uQ2xpY2spPVwidXBsb2FkKClcIiBbZGlzYWJsZWRdPVwiIWhhc0ZpbGVzKCkgfHwgaXNGaWxlTGltaXRFeGNlZWRlZCgpXCIgW3N0eWxlQ2xhc3NdPVwidXBsb2FkU3R5bGVDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1cGxvYWRJY29uXCIgW25nQ2xhc3NdPVwidXBsb2FkSWNvblwiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiBjbGFzcz1cInAtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF1cGxvYWRJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVwbG9hZEljb24gKm5nSWY9XCIhdXBsb2FkSWNvblRlbXBsYXRlXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0J1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1cGxvYWRJY29uVGVtcGxhdGVcIiBjbGFzcz1cInAtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0XCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8cC1idXR0b24gKm5nSWY9XCIhYXV0byAmJiBzaG93Q2FuY2VsQnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIFtsYWJlbF09XCJjYW5jZWxCdXR0b25MYWJlbFwiIChvbkNsaWNrKT1cImNsZWFyKClcIiBbZGlzYWJsZWRdPVwiIWhhc0ZpbGVzKCkgfHwgdXBsb2FkaW5nXCIgW3N0eWxlQ2xhc3NdPVwiY2FuY2VsU3R5bGVDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjYW5jZWxJY29uXCIgW25nQ2xhc3NdPVwiY2FuY2VsSWNvblwiIGNsYXNzPVwicC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNhbmNlbEljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGltZXNJY29uICpuZ0lmPVwiIWNhbmNlbEljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdCdcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNhbmNlbEljb25UZW1wbGF0ZVwiIGNsYXNzPVwicC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnRcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNhbmNlbEljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmlsZXMsIHVwbG9hZGVkRmlsZXM6IHVwbG9hZGVkRmlsZXMsIGNob29zZUNhbGxiYWNrOiBjaG9vc2UuYmluZCh0aGlzKSwgY2xlYXJDYWxsYmFjazogY2xlYXIuYmluZCh0aGlzKSwgdXBsb2FkQ2FsbGJhY2s6IHVwbG9hZC5iaW5kKHRoaXMpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9vbGJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI2NvbnRlbnQgY2xhc3M9XCJwLWZpbGV1cGxvYWQtY29udGVudFwiIChkcmFnZW50ZXIpPVwib25EcmFnRW50ZXIoJGV2ZW50KVwiIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgIDxwLXByb2dyZXNzQmFyIFt2YWx1ZV09XCJwcm9ncmVzc1wiIFtzaG93VmFsdWVdPVwiZmFsc2VcIiAqbmdJZj1cImhhc0ZpbGVzKClcIj48L3AtcHJvZ3Jlc3NCYXI+XG5cbiAgICAgICAgICAgICAgICA8cC1tZXNzYWdlcyBbdmFsdWVdPVwibXNnc1wiIFtlbmFibGVTZXJ2aWNlXT1cImZhbHNlXCI+PC9wLW1lc3NhZ2VzPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZC1maWxlc1wiICpuZ0lmPVwiaGFzRmlsZXMoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWZpbGVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZC1yb3dcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0ltYWdlKGZpbGUpXCI+PGltZyBbc3JjXT1cImZpbGUub2JqZWN0VVJMXCIgW3dpZHRoXT1cInByZXZpZXdXaWR0aFwiIChlcnJvcik9XCJpbWFnZUVycm9yKCRldmVudClcIiAvPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZpbGV1cGxvYWQtZmlsZW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGZvcm1hdFNpemUoZmlsZS5zaXplKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gKGNsaWNrKT1cInJlbW92ZSgkZXZlbnQsIGkpXCIgW2Rpc2FibGVkXT1cInVwbG9hZGluZ1wiIGNsYXNzPVwicC1idXR0b24taWNvbi1vbmx5XCIgW2NsYXNzXT1cInJlbW92ZVN0eWxlQ2xhc3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gKm5nSWY9XCIhY2FuY2VsSWNvblRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNhbmNlbEljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgW25nRm9yT2ZdPVwiZmlsZXNcIiBbbmdGb3JUZW1wbGF0ZV09XCJmaWxlVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBmaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRlZEZpbGVzOiB1cGxvYWRlZEZpbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZUNhbGxiYWNrOiBjaG9vc2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNhbGxiYWNrOiBjbGVhci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVVwbG9hZGVkRmlsZUNhbGxiYWNrOiByZW1vdmVVcGxvYWRlZEZpbGUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVGaWxlQ2FsbGJhY2s6IHJlbW92ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBwcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlczogbXNnc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZSAmJiAhaGFzRmlsZXMoKSAmJiAhaGFzVXBsb2FkZWRGaWxlcygpXCIgY2xhc3M9XCJwLWZpbGV1cGxvYWQtZW1wdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZCBwLWZpbGV1cGxvYWQtYmFzaWMgcC1jb21wb25lbnRcIiAqbmdJZj1cIm1vZGUgPT09ICdiYXNpYydcIiBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ2ZpbGV1cGxvYWQnXCI+XG4gICAgICAgICAgICA8cC1tZXNzYWdlcyBbdmFsdWVdPVwibXNnc1wiIFtlbmFibGVTZXJ2aWNlXT1cImZhbHNlXCI+PC9wLW1lc3NhZ2VzPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWJ1dHRvbiBwLWNvbXBvbmVudCBwLWZpbGV1cGxvYWQtY2hvb3NlJzogdHJ1ZSwgJ3AtYnV0dG9uLWljb24tb25seSc6ICFiYXNpY0J1dHRvbkxhYmVsLCAncC1maWxldXBsb2FkLWNob29zZS1zZWxlY3RlZCc6IGhhc0ZpbGVzKCksICdwLWZvY3VzJzogZm9jdXMsICdwLWRpc2FibGVkJzogZGlzYWJsZWQgfVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwic3R5bGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpY1VwbG9hZGVyQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25CYXNpY0tleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjaG9vc2VidXR0b24nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRmlsZXMoKSAmJiAhYXV0bzsgZWxzZSBjaG9vc2VTZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXBsb2FkSWNvblwiIGNsYXNzPVwicC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnRcIiBbbmdDbGFzc109XCJ1cGxvYWRJY29uXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVwbG9hZEljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWRJY29uICpuZ0lmPVwiIXVwbG9hZEljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdCdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1cGxvYWRJY29uVGVtcGxhdGVcIiBjbGFzcz1cInAtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjaG9vc2VTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNob29zZUljb25cIiBjbGFzcz1cInAtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0IHBpXCIgW25nQ2xhc3NdPVwiY2hvb3NlSWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjaG9vc2VJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGx1c0ljb24gW3N0eWxlQ2xhc3NdPVwiJ3AtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0IHBpJ1wiICpuZ0lmPVwiIWNob29zZUljb25UZW1wbGF0ZVwiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3VwbG9hZGljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2hvb3NlSWNvblRlbXBsYXRlXCIgY2xhc3M9XCJwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdCBwaVwiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3VwbG9hZGljb24nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hvb3NlSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJhc2ljQnV0dG9uTGFiZWxcIiBjbGFzcz1cInAtYnV0dG9uLWxhYmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj57eyBiYXNpY0J1dHRvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJyb3dzZUZpbGVzTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAjYmFzaWNmaWxlaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFoYXNGaWxlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidpbnB1dCdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxldXBsb2FkLmNzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdjYXgtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgQmxvY2thYmxlVUkge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGlkZW50aWZ5IHRoZSBmaWxlcyBhdCBiYWNrZW5kLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBSZW1vdGUgdXJsIHRvIHVwbG9hZCB0aGUgZmlsZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSFRUUCBtZXRob2QgdG8gc2VuZCB0aGUgZmlsZXMgdG8gdGhlIHVybCBzdWNoIGFzIFwicG9zdFwiIGFuZCBcInB1dFwiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1ldGhvZDogJ3Bvc3QnIHwgJ3B1dCcgfCB1bmRlZmluZWQgPSAncG9zdCc7XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBzZWxlY3QgbXVsdGlwbGUgZmlsZXMgYXQgb25jZSBmcm9tIGZpbGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtdWx0aXBsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwYXR0ZXJuIHRvIHJlc3RyaWN0IHRoZSBhbGxvd2VkIGZpbGUgdHlwZXMuIENhbiBiZSBhbnkgY29tYmluYXRpb24gb2YgZWl0aGVyIHRoZSBNSU1FIHR5cGVzIChzdWNoIGFzIFwiaW1hZ2UvKlwiKSBvciB0aGUgZmlsZSBleHRlbnNpb25zIChzdWNoIGFzIFwiLmpwZ1wiKS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgdXBsb2FkIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgdXBsb2FkIGJlZ2lucyBhdXRvbWF0aWNhbGx5IGFmdGVyIHNlbGVjdGlvbiBpcyBjb21wbGV0ZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ3Jvc3Mtc2l0ZSBBY2Nlc3MtQ29udHJvbCByZXF1ZXN0cyBzaG91bGQgYmUgbWFkZSB1c2luZyBjcmVkZW50aWFscyBzdWNoIGFzIGNvb2tpZXMsIGF1dGhvcml6YXRpb24gaGVhZGVycyBvciBUTFMgY2xpZW50IGNlcnRpZmljYXRlcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE1heGltdW0gZmlsZSBzaXplIGFsbG93ZWQgaW4gYnl0ZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWF4RmlsZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdW1tYXJ5IG1lc3NhZ2Ugb2YgdGhlIGludmFsaWQgZmlsZSBzaXplLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5OiBzdHJpbmcgPSAnezB9OiBJbnZhbGlkIGZpbGUgc2l6ZSwgJztcbiAgICAvKipcbiAgICAgKiBEZXRhaWwgbWVzc2FnZSBvZiB0aGUgaW52YWxpZCBmaWxlIHNpemUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbDogc3RyaW5nID0gJ21heGltdW0gdXBsb2FkIHNpemUgaXMgezB9Lic7XG4gICAgLyoqXG4gICAgICogU3VtbWFyeSBtZXNzYWdlIG9mIHRoZSBpbnZhbGlkIGZpbGUgdHlwZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeTogc3RyaW5nID0gJ3swfTogSW52YWxpZCBmaWxlIHR5cGUsICc7XG4gICAgLyoqXG4gICAgICogRGV0YWlsIG1lc3NhZ2Ugb2YgdGhlIGludmFsaWQgZmlsZSB0eXBlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw6IHN0cmluZyA9ICdhbGxvd2VkIGZpbGUgdHlwZXM6IHswfS4nO1xuICAgIC8qKlxuICAgICAqIERldGFpbCBtZXNzYWdlIG9mIHRoZSBpbnZhbGlkIGZpbGUgdHlwZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbDogc3RyaW5nID0gJ2xpbWl0IGlzIHswfSBhdCBtb3N0Lic7XG4gICAgLyoqXG4gICAgICogU3VtbWFyeSBtZXNzYWdlIG9mIHRoZSBpbnZhbGlkIGZpbGUgdHlwZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk6IHN0cmluZyA9ICdNYXhpbXVtIG51bWJlciBvZiBmaWxlcyBleGNlZWRlZCwgJztcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2xhc3Mgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBpbWFnZSB0aHVtYm5haWwgaW4gcGl4ZWxzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHByZXZpZXdXaWR0aDogbnVtYmVyID0gNTA7XG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIGNob29zZSBidXR0b24uIERlZmF1bHRzIHRvIGNheCBMb2NhbGUgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjaG9vc2VMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIExhYmVsIG9mIHRoZSB1cGxvYWQgYnV0dG9uLiBEZWZhdWx0cyB0byBjYXggTG9jYWxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdXBsb2FkTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBMYWJlbCBvZiB0aGUgY2FuY2VsIGJ1dHRvbi4gRGVmYXVsdHMgdG8gY2F4IExvY2FsZSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgY2hvb3NlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjaG9vc2VJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgdXBsb2FkIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB1cGxvYWRJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjYW5jZWxJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHRoZSB1cGxvYWQgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93VXBsb2FkQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNhbmNlbCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dDYW5jZWxCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIFVJIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbW9kZTogJ2FkdmFuY2VkJyB8ICdiYXNpYycgfCB1bmRlZmluZWQgPSAnYWR2YW5jZWQnO1xuICAgIC8qKlxuICAgICAqIEh0dHBIZWFkZXJzIGNsYXNzIHJlcHJlc2VudHMgdGhlIGhlYWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFuIEhUVFAgcmVxdWVzdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgZGVmYXVsdCB1cGxvYWQgb3IgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBpbiB1cGxvYWRIYW5kbGVyIGNhbGxiYWNrLiBEZWZhdWx0cyB0byBjYXggTG9jYWxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGN1c3RvbVVwbG9hZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBmaWxlcyB0aGF0IGNhbiBiZSB1cGxvYWRlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06ICh2YWx1ZTogdW5rbm93bikgPT4gbnVtYmVyQXR0cmlidXRlKHZhbHVlLCBudWxsKSB9KSBmaWxlTGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgdXBsb2FkIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB1cGxvYWRTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGNhbmNlbCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2FuY2VsU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSByZW1vdmUgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHJlbW92ZVN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgY2hvb3NlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjaG9vc2VTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIGJlZm9yZSBmaWxlIHVwbG9hZCBpcyBpbml0aWFsaXplZC5cbiAgICAgKiBAcGFyYW0ge0ZpbGVCZWZvcmVVcGxvYWRFdmVudH0gZXZlbnQgLSBDdXN0b20gdXBsb2FkIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkJlZm9yZVVwbG9hZDogRXZlbnRFbWl0dGVyPEZpbGVCZWZvcmVVcGxvYWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVCZWZvcmVVcGxvYWRFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBBbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIHJlcXVlc3Qgd2FzIHNlbnQgdG8gdGhlIHNlcnZlci4gVXNlZnVsIHdoZW4gYSByZXF1ZXN0IG1heSBiZSByZXRyaWVkIG11bHRpcGxlIHRpbWVzLCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHJldHJpZXMgb24gdGhlIGZpbmFsIGV2ZW50IHN0cmVhbS5cbiAgICAgKiBAcGFyYW0ge0ZpbGVTZW5kRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIHNlbmQgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uU2VuZDogRXZlbnRFbWl0dGVyPEZpbGVTZW5kRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU2VuZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbGUgdXBsb2FkIGlzIGNvbXBsZXRlLlxuICAgICAqIEBwYXJhbSB7RmlsZVVwbG9hZEV2ZW50fSBldmVudCAtIEN1c3RvbSB1cGxvYWQgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uVXBsb2FkOiBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBpZiBmaWxlIHVwbG9hZCBmYWlscy5cbiAgICAgKiBAcGFyYW0ge0ZpbGVVcGxvYWRFcnJvckV2ZW50fSBldmVudCAtIEN1c3RvbSBlcnJvciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25FcnJvcjogRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRFcnJvckV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEVycm9yRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZmlsZXMgaW4gcXVldWUgYXJlIHJlbW92ZWQgd2l0aG91dCB1cGxvYWRpbmcgdXNpbmcgY2xlYXIgYWxsIGJ1dHRvbi5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgZmlsZSBpcyByZW1vdmVkIHdpdGhvdXQgdXBsb2FkaW5nIHVzaW5nIGNsZWFyIGJ1dHRvbiBvZiBhIGZpbGUuXG4gICAgICogQHBhcmFtIHtGaWxlUmVtb3ZlRXZlbnR9IGV2ZW50IC0gUmVtb3ZlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlbW92ZTogRXZlbnRFbWl0dGVyPEZpbGVSZW1vdmVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVSZW1vdmVFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQuXG4gICAgICogQHBhcmFtIHtGaWxlU2VsZWN0RXZlbnR9IGV2ZW50IC0gU2VsZWN0IGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPEZpbGVTZWxlY3RFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVTZWxlY3RFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBmaWxlcyBhcmUgYmVpbmcgdXBsb2FkZWQuXG4gICAgICogQHBhcmFtIHtGaWxlUHJvZ3Jlc3NFdmVudH0gZXZlbnQgLSBQcm9ncmVzcyBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25Qcm9ncmVzczogRXZlbnRFbWl0dGVyPEZpbGVQcm9ncmVzc0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVByb2dyZXNzRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIGluIGN1c3RvbSB1cGxvYWQgbW9kZSB0byB1cGxvYWQgdGhlIGZpbGVzIG1hbnVhbGx5LlxuICAgICAqIEBwYXJhbSB7RmlsZVVwbG9hZEhhbmRsZXJFdmVudH0gZXZlbnQgLSBVcGxvYWQgaGFuZGxlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdXBsb2FkSGFuZGxlcjogRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRIYW5kbGVyRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkSGFuZGxlckV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBsb2FkaW5nIGFuIGltYWdlIGZpbGUuXG4gICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBCcm93c2VyIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkltYWdlRXJyb3I6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZW1vdmluZyBhbiB1cGxvYWRlZCBmaWxlLlxuICAgICAqIEBwYXJhbSB7UmVtb3ZlVXBsb2FkZWRGaWxlRXZlbnR9IGV2ZW50IC0gUmVtb3ZlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlbW92ZVVwbG9hZGVkRmlsZTogRXZlbnRFbWl0dGVyPFJlbW92ZVVwbG9hZGVkRmlsZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVtb3ZlVXBsb2FkZWRGaWxlRXZlbnQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKENheFRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxDYXhUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdhZHZhbmNlZGZpbGVpbnB1dCcpIGFkdmFuY2VkRmlsZUlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHwgYW55O1xuXG4gICAgQFZpZXdDaGlsZCgnYmFzaWNmaWxlaW5wdXQnKSBiYXNpY0ZpbGVJbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgc2V0IGZpbGVzKGZpbGVzKSB7XG4gICAgICAgIHRoaXMuX2ZpbGVzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGZpbGUgPSBmaWxlc1tpXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGUoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICg8YW55PmZpbGUpLm9iamVjdFVSTCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwod2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZXNbaV0pKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9maWxlcy5wdXNoKGZpbGVzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBmaWxlcygpOiBGaWxlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiYXNpY0J1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmF1dG8gfHwgIXRoaXMuaGFzRmlsZXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hvb3NlTGFiZWwgYXMgc3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkTGFiZWwgPz8gdGhpcy5maWxlc1swXS5uYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBfZmlsZXM6IEZpbGVbXSA9IFtdO1xuXG4gICAgcHVibGljIHByb2dyZXNzOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGRyYWdIaWdobGlnaHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgbXNnczogTWVzc2FnZVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgcHVibGljIGZpbGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgdG9vbGJhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgY2hvb3NlSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgdXBsb2FkSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgY2FuY2VsSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyB1cGxvYWRlZEZpbGVDb3VudDogbnVtYmVyID0gMDtcblxuICAgIGZvY3VzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgdXBsb2FkaW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgZHVwbGljYXRlSUVFdmVudDogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gZmxhZyB0byByZWNvZ25pemUgZHVwbGljYXRlIG9uY2hhbmdlIGV2ZW50IGZvciBmaWxlIGlucHV0XG5cbiAgICB0cmFuc2xhdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICAgZHJhZ092ZXJMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgcHVibGljIHVwbG9hZGVkRmlsZXMgPSBbXTtcblxuICAgIHByaXZhdGUgZmlsZVVwbG9hZFN1YmNyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHVibGljIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgY29uZmlnOiBjYXhDb25maWdcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdjb250ZW50JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3Rvb2xiYXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnY2hvb3NlaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hvb3NlSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICd1cGxvYWRpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2NhbmNlbGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZW1wdHknOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtcHR5VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5jb25maWcudHJhbnNsYXRpb25PYnNlcnZlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FkdmFuY2VkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInLCB0aGlzLm9uRHJhZ092ZXIuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRyYW5zbGF0aW9uKG9wdGlvbjogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihvcHRpb24pO1xuICAgIH1cblxuICAgIGNob29zZSgpIHtcbiAgICAgICAgdGhpcy5hZHZhbmNlZEZpbGVJbnB1dD8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIG9uRmlsZVNlbGVjdChldmVudDogYW55KSB7XG4gICAgICAgIGlmIChldmVudC50eXBlICE9PSAnZHJvcCcgJiYgdGhpcy5pc0lFMTEoKSAmJiB0aGlzLmR1cGxpY2F0ZUlFRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZHVwbGljYXRlSUVFdmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tc2dzID0gW107XG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIDogZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGZpbGVzW2ldO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNGaWxlU2VsZWN0ZWQoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0ZShmaWxlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLm9iamVjdFVSTCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwod2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZXNbaV0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMucHVzaChmaWxlc1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGZpbGVzOiBmaWxlcywgY3VycmVudEZpbGVzOiB0aGlzLmZpbGVzIH0pO1xuXG4gICAgICAgIC8vIHRoaXMgd2lsbCBjaGVjayB0aGUgZmlsZUxpbWl0IHdpdGggdGhlIHVwbG9hZGVkIGZpbGVzXG4gICAgICAgIHRoaXMuY2hlY2tGaWxlTGltaXQoZmlsZXMpO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc0ZpbGVzKCkgJiYgdGhpcy5hdXRvICYmICh0aGlzLm1vZGUgIT09ICdhZHZhbmNlZCcgfHwgIXRoaXMuaXNGaWxlTGltaXRFeGNlZWRlZCgpKSkge1xuICAgICAgICAgICAgdGhpcy51cGxvYWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC50eXBlICE9PSAnZHJvcCcgJiYgdGhpcy5pc0lFMTEoKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcklFSW5wdXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzRmlsZVNlbGVjdGVkKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChsZXQgc0ZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgICAgICAgaWYgKHNGaWxlLm5hbWUgKyBzRmlsZS50eXBlICsgc0ZpbGUuc2l6ZSA9PT0gZmlsZS5uYW1lICsgZmlsZS50eXBlICsgZmlsZS5zaXplKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNJRTExKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgcmV0dXJuICEhKHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgYXMgYW55KVsnTVNJbnB1dE1ldGhvZENvbnRleHQnXSAmJiAhISh0aGlzLmRvY3VtZW50IGFzIGFueSlbJ2RvY3VtZW50TW9kZSddO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICB0aGlzLm1zZ3MgPSB0aGlzLm1zZ3MgfHwgW107XG4gICAgICAgIGlmICh0aGlzLmFjY2VwdCAmJiAhdGhpcy5pc0ZpbGVUeXBlVmFsaWQoZmlsZSkpIHtcbiAgICAgICAgICAgIHRoaXMubXNncy5wdXNoKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLmludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5LnJlcGxhY2UoJ3swfScsIGZpbGUubmFtZSksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLmludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWwucmVwbGFjZSgnezB9JywgdGhpcy5hY2NlcHQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1heEZpbGVTaXplICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgIHRoaXMubXNncy5wdXNoKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLmludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5LnJlcGxhY2UoJ3swfScsIGZpbGUubmFtZSksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLmludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWwucmVwbGFjZSgnezB9JywgdGhpcy5mb3JtYXRTaXplKHRoaXMubWF4RmlsZVNpemUpKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsZVR5cGVWYWxpZChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBhY2NlcHRhYmxlVHlwZXMgPSB0aGlzLmFjY2VwdD8uc3BsaXQoJywnKS5tYXAoKHR5cGUpID0+IHR5cGUudHJpbSgpKTtcbiAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBhY2NlcHRhYmxlVHlwZXMhKSB7XG4gICAgICAgICAgICBsZXQgYWNjZXB0YWJsZSA9IHRoaXMuaXNXaWxkY2FyZCh0eXBlKSA/IHRoaXMuZ2V0VHlwZUNsYXNzKGZpbGUudHlwZSkgPT09IHRoaXMuZ2V0VHlwZUNsYXNzKHR5cGUpIDogZmlsZS50eXBlID09IHR5cGUgfHwgdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKGZpbGUpLnRvTG93ZXJDYXNlKCkgPT09IHR5cGUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgICAgaWYgKGFjY2VwdGFibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRUeXBlQ2xhc3MoZmlsZVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBmaWxlVHlwZS5zdWJzdHJpbmcoMCwgZmlsZVR5cGUuaW5kZXhPZignLycpKTtcbiAgICB9XG5cbiAgICBpc1dpbGRjYXJkKGZpbGVUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpbGVUeXBlLmluZGV4T2YoJyonKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcuJyArIGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpO1xuICAgIH1cblxuICAgIGlzSW1hZ2UoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gL15pbWFnZVxcLy8udGVzdChmaWxlLnR5cGUpO1xuICAgIH1cblxuICAgIG9uSW1hZ2VMb2FkKGltZzogYW55KSB7XG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGltZy5zcmMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIHRoZSBzZWxlY3RlZCBmaWxlcy5cbiAgICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAgICovXG4gICAgdXBsb2FkKCkge1xuICAgICAgICBpZiAodGhpcy5jdXN0b21VcGxvYWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGVMaW1pdCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlQ291bnQgKz0gdGhpcy5maWxlcy5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBsb2FkSGFuZGxlci5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWxlczogdGhpcy5maWxlc1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm1zZ3MgPSBbXTtcbiAgICAgICAgICAgIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgICB0aGlzLm9uQmVmb3JlVXBsb2FkLmVtaXQoe1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhOiBmb3JtRGF0YVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCh0aGlzLm5hbWUhLCB0aGlzLmZpbGVzW2ldLCB0aGlzLmZpbGVzW2ldLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiB0aGUgcHJldmlvdXMgdXBsb2FkIGhhc24ndCBiZWVuIGZpbmlzaGVkLCBpdCBpcyBhYm9ydGVkLlxuICAgICAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWRSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZFN1YmNyaXB0aW9uID0gdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLnJlcXVlc3QoPHN0cmluZz50aGlzLm1ldGhvZCwgdGhpcy51cmwgYXMgc3RyaW5nLCB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLndpdGhDcmVkZW50aWFsc1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZW5kLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50WydzdGF0dXMnXSA+PSAyMDAgJiYgZXZlbnRbJ3N0YXR1cyddIDwgMzAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlTGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZUNvdW50ICs9IHRoaXMuZmlsZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgZmlsZXM6IHRoaXMuZmlsZXMgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdCh7IGZpbGVzOiB0aGlzLmZpbGVzIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKC4uLnRoaXMuZmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRbJ2xvYWRlZCddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gTWF0aC5yb3VuZCgoZXZlbnRbJ2xvYWRlZCddICogMTAwKSAvIGV2ZW50Wyd0b3RhbCddISk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUHJvZ3Jlc3MuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9ncmVzczogdGhpcy5wcm9ncmVzcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3I6IEVycm9yRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdCh7IGZpbGVzOiB0aGlzLmZpbGVzLCBlcnJvcjogZXJyb3IgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZmlsZXMgbGlzdC5cbiAgICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAgICovXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY2FuY2VsVXBsb2FkUmVxdWVzdCgpO1xuICAgICAgICB0aGlzLm9uQ2xlYXIuZW1pdCgpO1xuICAgICAgICB0aGlzLmNsZWFySW5wdXRFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSBzaW5nbGUgZmlsZS5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4IC0gSW5kZXggb2YgdGhlIGZpbGUuXG4gICAgICogQGdyb3VwIE1ldGhvZFxuICAgICAqL1xuICAgIHJlbW92ZShldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxVcGxvYWRSZXF1ZXN0KCk7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGZpbGU6IHRoaXMuZmlsZXNbaW5kZXhdIH0pO1xuICAgICAgICB0aGlzLmZpbGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuY2hlY2tGaWxlTGltaXQodGhpcy5maWxlcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdXBsb2FkZWQgZmlsZS5cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gaW5kZXggLSBJbmRleCBvZiB0aGUgZmlsZSB0byBiZSByZW1vdmVkLlxuICAgICAqIEBncm91cCBNZXRob2RcbiAgICAgKi9cbiAgICByZW1vdmVVcGxvYWRlZEZpbGUoaW5kZXgpIHtcbiAgICAgICAgbGV0IHJlbW92ZWRGaWxlID0gdGhpcy51cGxvYWRlZEZpbGVzLnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXNdO1xuICAgICAgICB0aGlzLm9uUmVtb3ZlVXBsb2FkZWRGaWxlLmVtaXQoeyBmaWxlOiByZW1vdmVkRmlsZSwgZmlsZXM6IHRoaXMudXBsb2FkZWRGaWxlcyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYW5jZWwgdXBsb2FkIGZpbGUgcmVxdWVzdC5cbiAgICAgKiAqL1xuICAgIGNhbmNlbFVwbG9hZFJlcXVlc3QoKSB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVVcGxvYWRTdWJjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkU3ViY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVVwbG9hZFN1YmNyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNGaWxlTGltaXRFeGNlZWRlZCgpIHtcbiAgICAgICAgY29uc3QgaXNBdXRvTW9kZSA9IHRoaXMuYXV0bztcbiAgICAgICAgY29uc3QgdG90YWxGaWxlQ291bnQgPSBpc0F1dG9Nb2RlID8gdGhpcy5maWxlcy5sZW5ndGggOiB0aGlzLmZpbGVzLmxlbmd0aCArIHRoaXMudXBsb2FkZWRGaWxlQ291bnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZUxpbWl0ICYmIHRoaXMuZmlsZUxpbWl0IDw9IHRvdGFsRmlsZUNvdW50ICYmIHRoaXMuZm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVMaW1pdCAmJiB0aGlzLmZpbGVMaW1pdCA8IHRvdGFsRmlsZUNvdW50O1xuICAgIH1cblxuICAgIGlzQ2hvb3NlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbGVMaW1pdCAmJiB0aGlzLmZpbGVMaW1pdCA8PSB0aGlzLmZpbGVzLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbGVMaW1pdCAmJiB0aGlzLmZpbGVMaW1pdCA8PSB0aGlzLmZpbGVzLmxlbmd0aCArIHRoaXMudXBsb2FkZWRGaWxlQ291bnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja0ZpbGVMaW1pdChmaWxlczogRmlsZVtdKSB7XG4gICAgICAgIHRoaXMubXNncyA/Pz0gW107XG4gICAgICAgIGNvbnN0IGhhc0V4aXN0aW5nVmFsaWRhdGlvbk1lc3NhZ2VzID0gdGhpcy5tc2dzLmxlbmd0aCA+IDAgJiYgdGhpcy5maWxlTGltaXQgPCBmaWxlcy5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmlzRmlsZUxpbWl0RXhjZWVkZWQoKSB8fCBoYXNFeGlzdGluZ1ZhbGlkYXRpb25NZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5tc2dzLnB1c2goe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5LnJlcGxhY2UoJ3swfScsICh0aGlzLmZpbGVMaW1pdCBhcyBudW1iZXIpLnRvU3RyaW5nKCkpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5pbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbC5yZXBsYWNlKCd7MH0nLCAodGhpcy5maWxlTGltaXQgYXMgbnVtYmVyKS50b1N0cmluZygpKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhcklucHV0RWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWR2YW5jZWRGaWxlSW5wdXQgJiYgdGhpcy5hZHZhbmNlZEZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VkRmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmJhc2ljRmlsZUlucHV0ICYmIHRoaXMuYmFzaWNGaWxlSW5wdXQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5iYXNpY0ZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhcklFSW5wdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmFkdmFuY2VkRmlsZUlucHV0ICYmIHRoaXMuYWR2YW5jZWRGaWxlSW5wdXQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5kdXBsaWNhdGVJRUV2ZW50ID0gdHJ1ZTsgLy9JRTExIGZpeCB0byBwcmV2ZW50IG9uRmlsZUNoYW5nZSB0cmlnZ2VyIGFnYWluXG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VkRmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc0ZpbGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlcyAmJiB0aGlzLmZpbGVzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgaGFzVXBsb2FkZWRGaWxlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcyAmJiB0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBvbkRyYWdFbnRlcihlOiBEcmFnRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnT3ZlcihlOiBEcmFnRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBEb21IYW5kbGVyLmFkZENsYXNzKHRoaXMuY29udGVudD8ubmF0aXZlRWxlbWVudCwgJ3AtZmlsZXVwbG9hZC1oaWdobGlnaHQnKTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0hpZ2hsaWdodCA9IHRydWU7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIERvbUhhbmRsZXIucmVtb3ZlQ2xhc3ModGhpcy5jb250ZW50Py5uYXRpdmVFbGVtZW50LCAncC1maWxldXBsb2FkLWhpZ2hsaWdodCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuY29udGVudD8ubmF0aXZlRWxlbWVudCwgJ3AtZmlsZXVwbG9hZC1oaWdobGlnaHQnKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIDogZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgICAgICAgICAgbGV0IGFsbG93RHJvcCA9IHRoaXMubXVsdGlwbGUgfHwgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA9PT0gMSk7XG5cbiAgICAgICAgICAgIGlmIChhbGxvd0Ryb3ApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRmlsZVNlbGVjdChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzKCkge1xuICAgICAgICB0aGlzLmZvY3VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZm9jdXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3JtYXRTaXplKGJ5dGVzOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgayA9IDEwMjQ7XG4gICAgICAgIGNvbnN0IGRtID0gMztcbiAgICAgICAgY29uc3Qgc2l6ZXMgPSB0aGlzLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5GSUxFX1NJWkVfVFlQRVMpO1xuXG4gICAgICAgIGlmIChieXRlcyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGAwICR7c2l6ZXNbMF19YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkU2l6ZSA9IChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKTtcblxuICAgICAgICByZXR1cm4gYCR7Zm9ybWF0dGVkU2l6ZX0gJHtzaXplc1tpXX1gO1xuICAgIH1cblxuICAgIG9uQmFzaWNVcGxvYWRlckNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNGaWxlcygpKSB0aGlzLnVwbG9hZCgpO1xuICAgICAgICBlbHNlIHRoaXMuYmFzaWNGaWxlSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkJhc2ljS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQmFzaWNVcGxvYWRlckNsaWNrKCk7XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkltYWdlRXJyb3IuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgZ2V0QmxvY2thYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG4gICAgfVxuXG4gICAgZ2V0IGNob29zZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNob29zZUxhYmVsIHx8IHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5DSE9PU0UpO1xuICAgIH1cblxuICAgIGdldCB1cGxvYWRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRMYWJlbCB8fCB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihUcmFuc2xhdGlvbktleXMuVVBMT0FEKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuY2VsQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuY2VsTGFiZWwgfHwgdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkNBTkNFTCk7XG4gICAgfVxuXG4gICAgZ2V0IGJyb3dzZUZpbGVzTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5BUklBKVtUcmFuc2xhdGlvbktleXMuQlJPV1NFX0ZJTEVTXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCAmJiB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ092ZXJMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50cmFuc2xhdGlvblN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZSwgQnV0dG9uTW9kdWxlLCBQcm9ncmVzc0Jhck1vZHVsZSwgTWVzc2FnZXNNb2R1bGUsIFJpcHBsZU1vZHVsZSwgUGx1c0ljb24sIFVwbG9hZEljb24sIFRpbWVzSWNvbl0sXG4gICAgZXhwb3J0czogW0ZpbGVVcGxvYWQsIFNoYXJlZE1vZHVsZSwgQnV0dG9uTW9kdWxlLCBQcm9ncmVzc0Jhck1vZHVsZSwgTWVzc2FnZXNNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0ZpbGVVcGxvYWRdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRNb2R1bGUge31cbiJdfQ==