cax-design-system 2.8.3 → 2.8.4

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 (1061) hide show
  1. package/README.md +1 -1
  2. package/badge/badge.d.ts +1 -1
  3. package/badge/badge.directive.d.ts +1 -1
  4. package/fesm2022/cax-design-system-accordion.mjs +14 -13
  5. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  6. package/fesm2022/cax-design-system-animate.mjs +9 -8
  7. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  8. package/fesm2022/cax-design-system-animateonscroll.mjs +9 -8
  9. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  10. package/fesm2022/cax-design-system-api.mjs +38 -38
  11. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  12. package/fesm2022/cax-design-system-autocomplete.mjs +9 -9
  13. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  14. package/fesm2022/cax-design-system-autofocus.mjs +8 -8
  15. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  16. package/fesm2022/cax-design-system-avatar.mjs +8 -8
  17. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  18. package/fesm2022/cax-design-system-avatargroup.mjs +9 -9
  19. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  20. package/fesm2022/cax-design-system-badge.mjs +13 -12
  21. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  22. package/fesm2022/cax-design-system-baseicon.mjs +4 -4
  23. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  24. package/fesm2022/cax-design-system-blockui.mjs +9 -9
  25. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  26. package/fesm2022/cax-design-system-breadcrumb.mjs +9 -9
  27. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  28. package/fesm2022/cax-design-system-button.mjs +12 -12
  29. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  30. package/fesm2022/cax-design-system-buttongroup.mjs +10 -9
  31. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  32. package/fesm2022/cax-design-system-calendar.mjs +11 -11
  33. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  34. package/fesm2022/cax-design-system-card.mjs +9 -9
  35. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  36. package/fesm2022/cax-design-system-carousel.mjs +9 -9
  37. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  38. package/fesm2022/cax-design-system-cascadeselect.mjs +13 -13
  39. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  40. package/fesm2022/cax-design-system-chart.mjs +9 -8
  41. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  42. package/fesm2022/cax-design-system-checkbox.mjs +9 -9
  43. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  44. package/fesm2022/cax-design-system-chip.mjs +9 -9
  45. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  46. package/fesm2022/cax-design-system-chips.mjs +9 -9
  47. package/fesm2022/cax-design-system-chips.mjs.map +1 -1
  48. package/fesm2022/cax-design-system-colorpicker.mjs +9 -9
  49. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  50. package/fesm2022/cax-design-system-commentbox.mjs +9 -9
  51. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  52. package/fesm2022/cax-design-system-confirmdialog.mjs +9 -9
  53. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  54. package/fesm2022/cax-design-system-confirmpopup.mjs +10 -10
  55. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  56. package/fesm2022/cax-design-system-contextmenu.mjs +13 -12
  57. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  58. package/fesm2022/cax-design-system-dataview.mjs +13 -12
  59. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  60. package/fesm2022/cax-design-system-defer.mjs +9 -8
  61. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  62. package/fesm2022/cax-design-system-dialog.mjs +9 -9
  63. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  64. package/fesm2022/cax-design-system-divider.mjs +8 -8
  65. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  66. package/fesm2022/cax-design-system-dock.mjs +9 -9
  67. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  68. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  69. package/fesm2022/cax-design-system-dragdrop.mjs +13 -11
  70. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  71. package/fesm2022/cax-design-system-dropdown.mjs +12 -12
  72. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  73. package/fesm2022/cax-design-system-dynamicdialog.mjs +17 -16
  74. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  75. package/fesm2022/cax-design-system-editor.mjs +9 -9
  76. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  77. package/fesm2022/cax-design-system-fieldset.mjs +10 -10
  78. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  79. package/fesm2022/cax-design-system-fileupload.mjs +9 -9
  80. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  81. package/fesm2022/cax-design-system-floatlabel.mjs +10 -9
  82. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  83. package/fesm2022/cax-design-system-focustrap.mjs +9 -8
  84. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  85. package/fesm2022/cax-design-system-galleria.mjs +29 -25
  86. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  87. package/fesm2022/cax-design-system-iconfield.mjs +9 -9
  88. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  89. package/fesm2022/cax-design-system-icons-angledoubledown.mjs +3 -3
  90. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  91. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
  92. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  93. package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
  94. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  95. package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
  96. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  97. package/fesm2022/cax-design-system-icons-angledown.mjs +3 -3
  98. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  99. package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
  100. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  101. package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
  102. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  103. package/fesm2022/cax-design-system-icons-angleup.mjs +3 -3
  104. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  105. package/fesm2022/cax-design-system-icons-arrowdown.mjs +3 -3
  106. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  107. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
  108. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  109. package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
  110. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  111. package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
  112. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  113. package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
  114. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  115. package/fesm2022/cax-design-system-icons-arrowup.mjs +3 -3
  116. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  117. package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
  118. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  119. package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
  120. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  121. package/fesm2022/cax-design-system-icons-blank.mjs +3 -3
  122. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  123. package/fesm2022/cax-design-system-icons-calendar.mjs +3 -3
  124. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  125. package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
  126. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  127. package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
  128. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  129. package/fesm2022/cax-design-system-icons-check.mjs +3 -3
  130. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  131. package/fesm2022/cax-design-system-icons-chevrondown.mjs +3 -3
  132. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  133. package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
  134. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  135. package/fesm2022/cax-design-system-icons-chevronright.mjs +3 -3
  136. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  137. package/fesm2022/cax-design-system-icons-chevronup.mjs +3 -3
  138. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  139. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
  140. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  141. package/fesm2022/cax-design-system-icons-eye.mjs +3 -3
  142. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  143. package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
  144. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  145. package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
  146. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  147. package/fesm2022/cax-design-system-icons-filterslash.mjs +3 -3
  148. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  149. package/fesm2022/cax-design-system-icons-home.mjs +3 -3
  150. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  151. package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
  152. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  153. package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
  154. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  155. package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
  156. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  157. package/fesm2022/cax-design-system-icons-plus.mjs +3 -3
  158. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  159. package/fesm2022/cax-design-system-icons-refresh.mjs +3 -3
  160. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  161. package/fesm2022/cax-design-system-icons-search.mjs +3 -3
  162. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  163. package/fesm2022/cax-design-system-icons-searchminus.mjs +3 -3
  164. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  165. package/fesm2022/cax-design-system-icons-searchplus.mjs +3 -3
  166. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  167. package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
  168. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  169. package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
  170. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  171. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
  172. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  173. package/fesm2022/cax-design-system-icons-spinner.mjs +3 -3
  174. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  175. package/fesm2022/cax-design-system-icons-star.mjs +3 -3
  176. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  177. package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
  178. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  179. package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
  180. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  181. package/fesm2022/cax-design-system-icons-times.mjs +3 -3
  182. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  183. package/fesm2022/cax-design-system-icons-timescircle.mjs +3 -3
  184. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  185. package/fesm2022/cax-design-system-icons-trash.mjs +3 -3
  186. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  187. package/fesm2022/cax-design-system-icons-undo.mjs +3 -3
  188. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  189. package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
  190. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  191. package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
  192. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  193. package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
  194. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  195. package/fesm2022/cax-design-system-image.mjs +9 -9
  196. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  197. package/fesm2022/cax-design-system-inplace.mjs +17 -15
  198. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  199. package/fesm2022/cax-design-system-inputgroup.mjs +9 -9
  200. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  201. package/fesm2022/cax-design-system-inputgroupaddon.mjs +9 -9
  202. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  203. package/fesm2022/cax-design-system-inputicon.mjs +9 -9
  204. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  205. package/fesm2022/cax-design-system-inputmask.mjs +9 -9
  206. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  207. package/fesm2022/cax-design-system-inputnumber.mjs +8 -8
  208. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  209. package/fesm2022/cax-design-system-inputotp.mjs +9 -8
  210. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  211. package/fesm2022/cax-design-system-inputswitch.mjs +9 -9
  212. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  213. package/fesm2022/cax-design-system-inputtext.mjs +13 -12
  214. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  215. package/fesm2022/cax-design-system-inputtextarea.mjs +13 -12
  216. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  217. package/fesm2022/cax-design-system-keyfilter.mjs +9 -8
  218. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  219. package/fesm2022/cax-design-system-knob.mjs +9 -9
  220. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  221. package/fesm2022/cax-design-system-listbox.mjs +9 -9
  222. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  223. package/fesm2022/cax-design-system-logo.mjs +8 -8
  224. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  225. package/fesm2022/cax-design-system-megamenu.mjs +13 -12
  226. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  227. package/fesm2022/cax-design-system-menu.mjs +18 -17
  228. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  229. package/fesm2022/cax-design-system-menubar.mjs +16 -15
  230. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  231. package/fesm2022/cax-design-system-message.mjs +9 -9
  232. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  233. package/fesm2022/cax-design-system-messages.mjs +9 -9
  234. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  235. package/fesm2022/cax-design-system-metergroup.mjs +14 -12
  236. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  237. package/fesm2022/cax-design-system-multiselect.mjs +13 -13
  238. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  239. package/fesm2022/cax-design-system-navigation.mjs +8 -8
  240. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  241. package/fesm2022/cax-design-system-orderlist.mjs +9 -9
  242. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  243. package/fesm2022/cax-design-system-organizationchart.mjs +14 -13
  244. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  245. package/fesm2022/cax-design-system-overlay.mjs +9 -9
  246. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  247. package/fesm2022/cax-design-system-overlaypanel.mjs +10 -10
  248. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  249. package/fesm2022/cax-design-system-paginator.mjs +9 -9
  250. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  251. package/fesm2022/cax-design-system-panel.mjs +10 -10
  252. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  253. package/fesm2022/cax-design-system-panelmenu.mjs +18 -17
  254. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  255. package/fesm2022/cax-design-system-password.mjs +18 -16
  256. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  257. package/fesm2022/cax-design-system-picklist.mjs +9 -9
  258. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  259. package/fesm2022/cax-design-system-progressbar.mjs +9 -9
  260. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  261. package/fesm2022/cax-design-system-progressspinner.mjs +9 -9
  262. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  263. package/fesm2022/cax-design-system-radiobutton.mjs +11 -11
  264. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  265. package/fesm2022/cax-design-system-rating.mjs +9 -9
  266. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  267. package/fesm2022/cax-design-system-ripple.mjs +8 -8
  268. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  269. package/fesm2022/cax-design-system-scroller.mjs +9 -9
  270. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  271. package/fesm2022/cax-design-system-scrollpanel.mjs +9 -9
  272. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  273. package/fesm2022/cax-design-system-scrolltop.mjs +10 -10
  274. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  275. package/fesm2022/cax-design-system-selectbutton.mjs +9 -9
  276. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  277. package/fesm2022/cax-design-system-sidebar.mjs +9 -9
  278. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  279. package/fesm2022/cax-design-system-skeleton.mjs +9 -9
  280. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  281. package/fesm2022/cax-design-system-slidemenu.mjs +14 -13
  282. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  283. package/fesm2022/cax-design-system-slider.mjs +9 -9
  284. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  285. package/fesm2022/cax-design-system-speeddial.mjs +9 -9
  286. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  287. package/fesm2022/cax-design-system-spinner.mjs +9 -9
  288. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  289. package/fesm2022/cax-design-system-splitbutton.mjs +9 -9
  290. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  291. package/fesm2022/cax-design-system-splitter.mjs +9 -9
  292. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  293. package/fesm2022/cax-design-system-stepper.mjs +29 -25
  294. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  295. package/fesm2022/cax-design-system-steps.mjs +9 -9
  296. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  297. package/fesm2022/cax-design-system-styleclass.mjs +9 -8
  298. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  299. package/fesm2022/cax-design-system-table.mjs +90 -90
  300. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  301. package/fesm2022/cax-design-system-tableconfiguration.mjs +27 -13
  302. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  303. package/fesm2022/cax-design-system-tabmenu.mjs +9 -9
  304. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  305. package/fesm2022/cax-design-system-tabview.mjs +13 -13
  306. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  307. package/fesm2022/cax-design-system-tag.mjs +9 -9
  308. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  309. package/fesm2022/cax-design-system-terminal.mjs +12 -12
  310. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  311. package/fesm2022/cax-design-system-tieredmenu.mjs +13 -12
  312. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  313. package/fesm2022/cax-design-system-timeline.mjs +9 -9
  314. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  315. package/fesm2022/cax-design-system-toast.mjs +12 -12
  316. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  317. package/fesm2022/cax-design-system-togglebutton.mjs +9 -9
  318. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  319. package/fesm2022/cax-design-system-toggleswitch.mjs +9 -9
  320. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  321. package/fesm2022/cax-design-system-toolbar.mjs +9 -9
  322. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  323. package/fesm2022/cax-design-system-tooltip.mjs +9 -8
  324. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  325. package/fesm2022/cax-design-system-tree.mjs +13 -13
  326. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  327. package/fesm2022/cax-design-system-treeselect.mjs +9 -9
  328. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  329. package/fesm2022/cax-design-system-treetable.mjs +73 -58
  330. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  331. package/fesm2022/cax-design-system-tristatecheckbox.mjs +9 -9
  332. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  333. package/fesm2022/cax-design-system-upload.mjs +9 -9
  334. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  335. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  336. package/fesm2022/cax-design-system-virtualscroller.mjs +9 -8
  337. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  338. package/inputnumber/inputnumber.d.ts +3 -3
  339. package/package.json +175 -515
  340. package/resources/cax.min.scss +1 -1
  341. package/resources/cax.scss +36 -14
  342. package/resources/components/calendar/calendar.scss +215 -219
  343. package/resources/components/table/table.scss +10 -3
  344. package/tableconfiguration/tableconfiguration.d.ts +2 -2
  345. package/esm2022/accordion/accordion.interface.mjs +0 -2
  346. package/esm2022/accordion/accordion.mjs +0 -598
  347. package/esm2022/accordion/accordion.module.mjs +0 -23
  348. package/esm2022/accordion/cax-design-system-accordion.mjs +0 -5
  349. package/esm2022/accordion/public_api.mjs +0 -4
  350. package/esm2022/animate/animate.mjs +0 -101
  351. package/esm2022/animate/cax-design-system-animate.mjs +0 -5
  352. package/esm2022/animate/public_api.mjs +0 -2
  353. package/esm2022/animateonscroll/animateonscroll.mjs +0 -185
  354. package/esm2022/animateonscroll/cax-design-system-animateonscroll.mjs +0 -5
  355. package/esm2022/animateonscroll/public_api.mjs +0 -2
  356. package/esm2022/api/blockableui.mjs +0 -2
  357. package/esm2022/api/cax-design-system-api.mjs +0 -5
  358. package/esm2022/api/caxconfig.mjs +0 -163
  359. package/esm2022/api/confirmaeventtype.mjs +0 -10
  360. package/esm2022/api/confirmation.mjs +0 -2
  361. package/esm2022/api/confirmationservice.mjs +0 -43
  362. package/esm2022/api/contextmenuservice.mjs +0 -22
  363. package/esm2022/api/filtermatchmode.mjs +0 -23
  364. package/esm2022/api/filtermetadata.mjs +0 -2
  365. package/esm2022/api/filteroperator.mjs +0 -5
  366. package/esm2022/api/filterservice.mjs +0 -225
  367. package/esm2022/api/lazyloadevent.mjs +0 -2
  368. package/esm2022/api/lazyloadmeta.mjs +0 -2
  369. package/esm2022/api/megamenuitem.mjs +0 -2
  370. package/esm2022/api/menuitem.mjs +0 -2
  371. package/esm2022/api/message.mjs +0 -2
  372. package/esm2022/api/messageservice.mjs +0 -47
  373. package/esm2022/api/overlayoptions.mjs +0 -2
  374. package/esm2022/api/overlayservice.mjs +0 -19
  375. package/esm2022/api/primeicons.mjs +0 -314
  376. package/esm2022/api/public_api.mjs +0 -35
  377. package/esm2022/api/scrolleroptions.mjs +0 -2
  378. package/esm2022/api/selectitem.mjs +0 -2
  379. package/esm2022/api/selectitemgroup.mjs +0 -2
  380. package/esm2022/api/shared.mjs +0 -65
  381. package/esm2022/api/sortevent.mjs +0 -2
  382. package/esm2022/api/sortmeta.mjs +0 -2
  383. package/esm2022/api/tablestate.mjs +0 -2
  384. package/esm2022/api/themegeneratorservice.mjs +0 -109
  385. package/esm2022/api/tooltipoptions.mjs +0 -2
  386. package/esm2022/api/translation.mjs +0 -2
  387. package/esm2022/api/translationkeys.mjs +0 -51
  388. package/esm2022/api/treedragdropservice.mjs +0 -21
  389. package/esm2022/api/treenode.mjs +0 -2
  390. package/esm2022/api/treenodedragevent.mjs +0 -2
  391. package/esm2022/api/treetablenode.mjs +0 -2
  392. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  393. package/esm2022/autocomplete/autocomplete.mjs +0 -1462
  394. package/esm2022/autocomplete/autocomplete.module.mjs +0 -30
  395. package/esm2022/autocomplete/cax-design-system-autocomplete.mjs +0 -5
  396. package/esm2022/autocomplete/public_api.mjs +0 -4
  397. package/esm2022/autofocus/autofocus.mjs +0 -78
  398. package/esm2022/autofocus/cax-design-system-autofocus.mjs +0 -5
  399. package/esm2022/autofocus/public_api.mjs +0 -2
  400. package/esm2022/avatar/avatar.mjs +0 -104
  401. package/esm2022/avatar/avatar.module.mjs +0 -16
  402. package/esm2022/avatar/cax-design-system-avatar.mjs +0 -5
  403. package/esm2022/avatar/public_api.mjs +0 -3
  404. package/esm2022/avatargroup/avatargroup.mjs +0 -32
  405. package/esm2022/avatargroup/avatargroup.module.mjs +0 -19
  406. package/esm2022/avatargroup/cax-design-system-avatargroup.mjs +0 -5
  407. package/esm2022/avatargroup/public_api.mjs +0 -3
  408. package/esm2022/badge/badge.directive.mjs +0 -193
  409. package/esm2022/badge/badge.mjs +0 -50
  410. package/esm2022/badge/badge.module.mjs +0 -20
  411. package/esm2022/badge/cax-design-system-badge.mjs +0 -5
  412. package/esm2022/badge/public_api.mjs +0 -4
  413. package/esm2022/baseicon/baseicon.mjs +0 -45
  414. package/esm2022/baseicon/cax-design-system-baseicon.mjs +0 -5
  415. package/esm2022/baseicon/public_api.mjs +0 -2
  416. package/esm2022/blockui/blockui.interface.mjs +0 -2
  417. package/esm2022/blockui/blockui.mjs +0 -206
  418. package/esm2022/blockui/cax-design-system-blockui.mjs +0 -5
  419. package/esm2022/blockui/public_api.mjs +0 -3
  420. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  421. package/esm2022/breadcrumb/breadcrumb.mjs +0 -120
  422. package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -23
  423. package/esm2022/breadcrumb/cax-design-system-breadcrumb.mjs +0 -5
  424. package/esm2022/breadcrumb/public_api.mjs +0 -4
  425. package/esm2022/button/button.directive.mjs +0 -259
  426. package/esm2022/button/button.interface.mjs +0 -2
  427. package/esm2022/button/button.mjs +0 -190
  428. package/esm2022/button/button.module.mjs +0 -18
  429. package/esm2022/button/cax-design-system-button.mjs +0 -5
  430. package/esm2022/button/public_api.mjs +0 -5
  431. package/esm2022/buttongroup/buttongroup.mjs +0 -38
  432. package/esm2022/buttongroup/cax-design-system-buttongroup.mjs +0 -5
  433. package/esm2022/buttongroup/public_api.mjs +0 -2
  434. package/esm2022/calendar/calendar.interface.mjs +0 -2
  435. package/esm2022/calendar/calendar.mjs +0 -3242
  436. package/esm2022/calendar/calendar.module.mjs +0 -18
  437. package/esm2022/calendar/cax-design-system-calendar.mjs +0 -5
  438. package/esm2022/calendar/public_api.mjs +0 -4
  439. package/esm2022/card/card.interface.mjs +0 -2
  440. package/esm2022/card/card.mjs +0 -117
  441. package/esm2022/card/card.module.mjs +0 -21
  442. package/esm2022/card/cax-design-system-card.mjs +0 -5
  443. package/esm2022/card/public_api.mjs +0 -4
  444. package/esm2022/carousel/carousel.interface.mjs +0 -2
  445. package/esm2022/carousel/carousel.mjs +0 -968
  446. package/esm2022/carousel/cax-design-system-carousel.mjs +0 -5
  447. package/esm2022/carousel/public_api.mjs +0 -3
  448. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  449. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1135
  450. package/esm2022/cascadeselect/cascadeselect.module.mjs +0 -25
  451. package/esm2022/cascadeselect/cax-design-system-cascadeselect.mjs +0 -5
  452. package/esm2022/cascadeselect/public_api.mjs +0 -4
  453. package/esm2022/cax-design-system.mjs +0 -5
  454. package/esm2022/chart/cax-design-system-chart.mjs +0 -5
  455. package/esm2022/chart/chart.mjs +0 -236
  456. package/esm2022/chart/public_api.mjs +0 -2
  457. package/esm2022/checkbox/cax-design-system-checkbox.mjs +0 -5
  458. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  459. package/esm2022/checkbox/checkbox.mjs +0 -318
  460. package/esm2022/checkbox/checkbox.module.mjs +0 -20
  461. package/esm2022/checkbox/public_api.mjs +0 -4
  462. package/esm2022/chip/cax-design-system-chip.mjs +0 -5
  463. package/esm2022/chip/chip.interface.mjs +0 -2
  464. package/esm2022/chip/chip.mjs +0 -90
  465. package/esm2022/chip/chip.module.mjs +0 -20
  466. package/esm2022/chip/public_api.mjs +0 -4
  467. package/esm2022/chips/cax-design-system-chips.mjs +0 -5
  468. package/esm2022/chips/chips.interface.mjs +0 -2
  469. package/esm2022/chips/chips.mjs +0 -610
  470. package/esm2022/chips/chips.module.mjs +0 -23
  471. package/esm2022/chips/public_api.mjs +0 -4
  472. package/esm2022/colorpicker/cax-design-system-colorpicker.mjs +0 -5
  473. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  474. package/esm2022/colorpicker/colorpicker.mjs +0 -715
  475. package/esm2022/colorpicker/colorpicker.module.mjs +0 -19
  476. package/esm2022/colorpicker/public_api.mjs +0 -4
  477. package/esm2022/commentbox/cax-design-system-commentbox.mjs +0 -5
  478. package/esm2022/commentbox/commentbox.mjs +0 -575
  479. package/esm2022/commentbox/commentbox.module.mjs +0 -27
  480. package/esm2022/commentbox/public_api.mjs +0 -3
  481. package/esm2022/confirmdialog/cax-design-system-confirmdialog.mjs +0 -5
  482. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  483. package/esm2022/confirmdialog/confirmdialog.mjs +0 -720
  484. package/esm2022/confirmdialog/confirmdialog.module.mjs +0 -25
  485. package/esm2022/confirmdialog/public_api.mjs +0 -4
  486. package/esm2022/confirmpopup/cax-design-system-confirmpopup.mjs +0 -5
  487. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  488. package/esm2022/confirmpopup/confirmpopup.mjs +0 -499
  489. package/esm2022/confirmpopup/public_api.mjs +0 -3
  490. package/esm2022/contextmenu/cax-design-system-contextmenu.mjs +0 -5
  491. package/esm2022/contextmenu/contextmenu.mjs +0 -1304
  492. package/esm2022/contextmenu/public_api.mjs +0 -2
  493. package/esm2022/dataview/cax-design-system-dataview.mjs +0 -5
  494. package/esm2022/dataview/dataview.interface.mjs +0 -2
  495. package/esm2022/dataview/dataview.mjs +0 -723
  496. package/esm2022/dataview/public_api.mjs +0 -3
  497. package/esm2022/defer/cax-design-system-defer.mjs +0 -5
  498. package/esm2022/defer/defer.mjs +0 -111
  499. package/esm2022/defer/public_api.mjs +0 -2
  500. package/esm2022/dialog/cax-design-system-dialog.mjs +0 -5
  501. package/esm2022/dialog/dialog.interface.mjs +0 -2
  502. package/esm2022/dialog/dialog.mjs +0 -959
  503. package/esm2022/dialog/dialog.module.mjs +0 -25
  504. package/esm2022/dialog/public_api.mjs +0 -4
  505. package/esm2022/divider/cax-design-system-divider.mjs +0 -5
  506. package/esm2022/divider/divider.mjs +0 -69
  507. package/esm2022/divider/divider.module.mjs +0 -16
  508. package/esm2022/divider/public_api.mjs +0 -3
  509. package/esm2022/dock/cax-design-system-dock.mjs +0 -5
  510. package/esm2022/dock/dock.interface.mjs +0 -2
  511. package/esm2022/dock/dock.mjs +0 -431
  512. package/esm2022/dock/public_api.mjs +0 -3
  513. package/esm2022/dom/cax-design-system-dom.mjs +0 -5
  514. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  515. package/esm2022/dom/domhandler.mjs +0 -722
  516. package/esm2022/dom/public_api.mjs +0 -3
  517. package/esm2022/dragdrop/cax-design-system-dragdrop.mjs +0 -5
  518. package/esm2022/dragdrop/dragdrop.mjs +0 -309
  519. package/esm2022/dragdrop/dragdrop.module.mjs +0 -18
  520. package/esm2022/dragdrop/public_api.mjs +0 -3
  521. package/esm2022/dropdown/cax-design-system-dropdown.mjs +0 -5
  522. package/esm2022/dropdown/dropdown-item.mjs +0 -72
  523. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  524. package/esm2022/dropdown/dropdown.mjs +0 -1599
  525. package/esm2022/dropdown/dropdown.module.mjs +0 -20
  526. package/esm2022/dropdown/public_api.mjs +0 -5
  527. package/esm2022/dynamicdialog/cax-design-system-dynamicdialog.mjs +0 -5
  528. package/esm2022/dynamicdialog/dialogservice.mjs +0 -102
  529. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -187
  530. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  531. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  532. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -696
  533. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -20
  534. package/esm2022/dynamicdialog/public_api.mjs +0 -7
  535. package/esm2022/editor/cax-design-system-editor.mjs +0 -5
  536. package/esm2022/editor/editor.interface.mjs +0 -2
  537. package/esm2022/editor/editor.mjs +0 -281
  538. package/esm2022/editor/editor.module.mjs +0 -19
  539. package/esm2022/editor/public_api.mjs +0 -4
  540. package/esm2022/fieldset/cax-design-system-fieldset.mjs +0 -5
  541. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  542. package/esm2022/fieldset/fieldset.mjs +0 -297
  543. package/esm2022/fieldset/public_api.mjs +0 -3
  544. package/esm2022/fileupload/cax-design-system-fileupload.mjs +0 -5
  545. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  546. package/esm2022/fileupload/fileupload.mjs +0 -1188
  547. package/esm2022/fileupload/public_api.mjs +0 -3
  548. package/esm2022/floatlabel/cax-design-system-floatlabel.mjs +0 -5
  549. package/esm2022/floatlabel/floatlabel.mjs +0 -28
  550. package/esm2022/floatlabel/floatlabel.module.mjs +0 -20
  551. package/esm2022/floatlabel/public_api.mjs +0 -3
  552. package/esm2022/focustrap/cax-design-system-focustrap.mjs +0 -5
  553. package/esm2022/focustrap/focustrap.mjs +0 -103
  554. package/esm2022/focustrap/public_api.mjs +0 -2
  555. package/esm2022/galleria/cax-design-system-galleria.mjs +0 -5
  556. package/esm2022/galleria/galleria.interface.mjs +0 -2
  557. package/esm2022/galleria/galleria.mjs +0 -1668
  558. package/esm2022/galleria/public_api.mjs +0 -3
  559. package/esm2022/iconfield/cax-design-system-iconfield.mjs +0 -5
  560. package/esm2022/iconfield/iconfield.mjs +0 -44
  561. package/esm2022/iconfield/public_api.mjs +0 -2
  562. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -35
  563. package/esm2022/icons/angledoubledown/cax-design-system-icons-angledoubledown.mjs +0 -5
  564. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  565. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -35
  566. package/esm2022/icons/angledoubleleft/cax-design-system-icons-angledoubleleft.mjs +0 -5
  567. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  568. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -35
  569. package/esm2022/icons/angledoubleright/cax-design-system-icons-angledoubleright.mjs +0 -5
  570. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  571. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -35
  572. package/esm2022/icons/angledoubleup/cax-design-system-icons-angledoubleup.mjs +0 -5
  573. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  574. package/esm2022/icons/angledown/angledown.mjs +0 -31
  575. package/esm2022/icons/angledown/cax-design-system-icons-angledown.mjs +0 -5
  576. package/esm2022/icons/angledown/public_api.mjs +0 -2
  577. package/esm2022/icons/angleleft/angleleft.mjs +0 -31
  578. package/esm2022/icons/angleleft/cax-design-system-icons-angleleft.mjs +0 -5
  579. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  580. package/esm2022/icons/angleright/angleright.mjs +0 -31
  581. package/esm2022/icons/angleright/cax-design-system-icons-angleright.mjs +0 -5
  582. package/esm2022/icons/angleright/public_api.mjs +0 -2
  583. package/esm2022/icons/angleup/angleup.mjs +0 -31
  584. package/esm2022/icons/angleup/cax-design-system-icons-angleup.mjs +0 -5
  585. package/esm2022/icons/angleup/public_api.mjs +0 -2
  586. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -54
  587. package/esm2022/icons/arrowdown/cax-design-system-icons-arrowdown.mjs +0 -5
  588. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  589. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -31
  590. package/esm2022/icons/arrowdownleft/cax-design-system-icons-arrowdownleft.mjs +0 -5
  591. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  592. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -31
  593. package/esm2022/icons/arrowdownright/cax-design-system-icons-arrowdownright.mjs +0 -5
  594. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  595. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -54
  596. package/esm2022/icons/arrowleft/cax-design-system-icons-arrowleft.mjs +0 -5
  597. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  598. package/esm2022/icons/arrowright/arrowright.mjs +0 -35
  599. package/esm2022/icons/arrowright/cax-design-system-icons-arrowright.mjs +0 -5
  600. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  601. package/esm2022/icons/arrowup/arrowup.mjs +0 -54
  602. package/esm2022/icons/arrowup/cax-design-system-icons-arrowup.mjs +0 -5
  603. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  604. package/esm2022/icons/ban/ban.mjs +0 -50
  605. package/esm2022/icons/ban/cax-design-system-icons-ban.mjs +0 -5
  606. package/esm2022/icons/ban/public_api.mjs +0 -2
  607. package/esm2022/icons/bars/bars.mjs +0 -35
  608. package/esm2022/icons/bars/cax-design-system-icons-bars.mjs +0 -5
  609. package/esm2022/icons/bars/public_api.mjs +0 -2
  610. package/esm2022/icons/blank/blank.mjs +0 -25
  611. package/esm2022/icons/blank/cax-design-system-icons-blank.mjs +0 -5
  612. package/esm2022/icons/blank/public_api.mjs +0 -2
  613. package/esm2022/icons/calendar/calendar.mjs +0 -31
  614. package/esm2022/icons/calendar/cax-design-system-icons-calendar.mjs +0 -5
  615. package/esm2022/icons/calendar/public_api.mjs +0 -2
  616. package/esm2022/icons/caretleft/caretleft.mjs +0 -31
  617. package/esm2022/icons/caretleft/cax-design-system-icons-caretleft.mjs +0 -5
  618. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  619. package/esm2022/icons/caretright/caretright.mjs +0 -31
  620. package/esm2022/icons/caretright/cax-design-system-icons-caretright.mjs +0 -5
  621. package/esm2022/icons/caretright/public_api.mjs +0 -2
  622. package/esm2022/icons/check/cax-design-system-icons-check.mjs +0 -5
  623. package/esm2022/icons/check/check.mjs +0 -31
  624. package/esm2022/icons/check/public_api.mjs +0 -2
  625. package/esm2022/icons/chevrondown/cax-design-system-icons-chevrondown.mjs +0 -5
  626. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -31
  627. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  628. package/esm2022/icons/chevronleft/cax-design-system-icons-chevronleft.mjs +0 -5
  629. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -31
  630. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  631. package/esm2022/icons/chevronright/cax-design-system-icons-chevronright.mjs +0 -5
  632. package/esm2022/icons/chevronright/chevronright.mjs +0 -31
  633. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  634. package/esm2022/icons/chevronup/cax-design-system-icons-chevronup.mjs +0 -5
  635. package/esm2022/icons/chevronup/chevronup.mjs +0 -31
  636. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  637. package/esm2022/icons/exclamationtriangle/cax-design-system-icons-exclamationtriangle.mjs +0 -5
  638. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -66
  639. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  640. package/esm2022/icons/eye/cax-design-system-icons-eye.mjs +0 -5
  641. package/esm2022/icons/eye/eye.mjs +0 -35
  642. package/esm2022/icons/eye/public_api.mjs +0 -2
  643. package/esm2022/icons/eyeslash/cax-design-system-icons-eyeslash.mjs +0 -5
  644. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -54
  645. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  646. package/esm2022/icons/filter/cax-design-system-icons-filter.mjs +0 -5
  647. package/esm2022/icons/filter/filter.mjs +0 -50
  648. package/esm2022/icons/filter/public_api.mjs +0 -2
  649. package/esm2022/icons/filterslash/cax-design-system-icons-filterslash.mjs +0 -5
  650. package/esm2022/icons/filterslash/filterslash.mjs +0 -54
  651. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  652. package/esm2022/icons/home/cax-design-system-icons-home.mjs +0 -5
  653. package/esm2022/icons/home/home.mjs +0 -54
  654. package/esm2022/icons/home/public_api.mjs +0 -2
  655. package/esm2022/icons/infocircle/cax-design-system-icons-infocircle.mjs +0 -5
  656. package/esm2022/icons/infocircle/infocircle.mjs +0 -54
  657. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  658. package/esm2022/icons/minus/cax-design-system-icons-minus.mjs +0 -5
  659. package/esm2022/icons/minus/minus.mjs +0 -32
  660. package/esm2022/icons/minus/public_api.mjs +0 -2
  661. package/esm2022/icons/pencil/cax-design-system-icons-pencil.mjs +0 -5
  662. package/esm2022/icons/pencil/pencil.mjs +0 -50
  663. package/esm2022/icons/pencil/public_api.mjs +0 -2
  664. package/esm2022/icons/plus/cax-design-system-icons-plus.mjs +0 -5
  665. package/esm2022/icons/plus/plus.mjs +0 -50
  666. package/esm2022/icons/plus/public_api.mjs +0 -2
  667. package/esm2022/icons/refresh/cax-design-system-icons-refresh.mjs +0 -5
  668. package/esm2022/icons/refresh/public_api.mjs +0 -2
  669. package/esm2022/icons/refresh/refresh.mjs +0 -54
  670. package/esm2022/icons/search/cax-design-system-icons-search.mjs +0 -5
  671. package/esm2022/icons/search/public_api.mjs +0 -2
  672. package/esm2022/icons/search/search.mjs +0 -54
  673. package/esm2022/icons/searchminus/cax-design-system-icons-searchminus.mjs +0 -5
  674. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  675. package/esm2022/icons/searchminus/searchminus.mjs +0 -54
  676. package/esm2022/icons/searchplus/cax-design-system-icons-searchplus.mjs +0 -5
  677. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  678. package/esm2022/icons/searchplus/searchplus.mjs +0 -54
  679. package/esm2022/icons/sortalt/cax-design-system-icons-sortalt.mjs +0 -5
  680. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  681. package/esm2022/icons/sortalt/sortalt.mjs +0 -62
  682. package/esm2022/icons/sortamountdown/cax-design-system-icons-sortamountdown.mjs +0 -5
  683. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  684. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -50
  685. package/esm2022/icons/sortamountupalt/cax-design-system-icons-sortamountupalt.mjs +0 -5
  686. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  687. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -50
  688. package/esm2022/icons/spinner/cax-design-system-icons-spinner.mjs +0 -5
  689. package/esm2022/icons/spinner/public_api.mjs +0 -2
  690. package/esm2022/icons/spinner/spinner.mjs +0 -50
  691. package/esm2022/icons/star/cax-design-system-icons-star.mjs +0 -5
  692. package/esm2022/icons/star/public_api.mjs +0 -2
  693. package/esm2022/icons/star/star.mjs +0 -50
  694. package/esm2022/icons/starfill/cax-design-system-icons-starfill.mjs +0 -5
  695. package/esm2022/icons/starfill/public_api.mjs +0 -2
  696. package/esm2022/icons/starfill/starfill.mjs +0 -50
  697. package/esm2022/icons/thlarge/cax-design-system-icons-thlarge.mjs +0 -5
  698. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  699. package/esm2022/icons/thlarge/thlarge.mjs +0 -54
  700. package/esm2022/icons/times/cax-design-system-icons-times.mjs +0 -5
  701. package/esm2022/icons/times/public_api.mjs +0 -2
  702. package/esm2022/icons/times/times.mjs +0 -31
  703. package/esm2022/icons/timescircle/cax-design-system-icons-timescircle.mjs +0 -5
  704. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  705. package/esm2022/icons/timescircle/timescircle.mjs +0 -54
  706. package/esm2022/icons/trash/cax-design-system-icons-trash.mjs +0 -5
  707. package/esm2022/icons/trash/public_api.mjs +0 -2
  708. package/esm2022/icons/trash/trash.mjs +0 -54
  709. package/esm2022/icons/undo/cax-design-system-icons-undo.mjs +0 -5
  710. package/esm2022/icons/undo/public_api.mjs +0 -2
  711. package/esm2022/icons/undo/undo.mjs +0 -54
  712. package/esm2022/icons/upload/cax-design-system-icons-upload.mjs +0 -5
  713. package/esm2022/icons/upload/public_api.mjs +0 -2
  714. package/esm2022/icons/upload/upload.mjs +0 -54
  715. package/esm2022/icons/windowmaximize/cax-design-system-icons-windowmaximize.mjs +0 -5
  716. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  717. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -54
  718. package/esm2022/icons/windowminimize/cax-design-system-icons-windowminimize.mjs +0 -5
  719. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  720. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -54
  721. package/esm2022/image/cax-design-system-image.mjs +0 -5
  722. package/esm2022/image/image.interface.mjs +0 -2
  723. package/esm2022/image/image.mjs +0 -418
  724. package/esm2022/image/image.module.mjs +0 -17
  725. package/esm2022/image/public_api.mjs +0 -4
  726. package/esm2022/inplace/cax-design-system-inplace.mjs +0 -5
  727. package/esm2022/inplace/inplace.interface.mjs +0 -2
  728. package/esm2022/inplace/inplace.mjs +0 -243
  729. package/esm2022/inplace/public_api.mjs +0 -3
  730. package/esm2022/inputgroup/cax-design-system-inputgroup.mjs +0 -5
  731. package/esm2022/inputgroup/inputgroup.mjs +0 -55
  732. package/esm2022/inputgroup/inputgroup.module.mjs +0 -25
  733. package/esm2022/inputgroup/public_api.mjs +0 -3
  734. package/esm2022/inputgroupaddon/cax-design-system-inputgroupaddon.mjs +0 -5
  735. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -32
  736. package/esm2022/inputgroupaddon/inputgroupaddon.module.mjs +0 -24
  737. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  738. package/esm2022/inputicon/cax-design-system-inputicon.mjs +0 -5
  739. package/esm2022/inputicon/inputicon.mjs +0 -38
  740. package/esm2022/inputicon/public_api.mjs +0 -2
  741. package/esm2022/inputmask/cax-design-system-inputmask.mjs +0 -5
  742. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  743. package/esm2022/inputmask/inputmask.mjs +0 -848
  744. package/esm2022/inputmask/inputmask.module.mjs +0 -22
  745. package/esm2022/inputmask/public_api.mjs +0 -4
  746. package/esm2022/inputnumber/cax-design-system-inputnumber.mjs +0 -5
  747. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  748. package/esm2022/inputnumber/inputnumber.mjs +0 -1296
  749. package/esm2022/inputnumber/inputnumber.module.mjs +0 -17
  750. package/esm2022/inputnumber/public_api.mjs +0 -4
  751. package/esm2022/inputotp/cax-design-system-inputotp.mjs +0 -5
  752. package/esm2022/inputotp/inputotp.interface.mjs +0 -2
  753. package/esm2022/inputotp/inputotp.mjs +0 -381
  754. package/esm2022/inputotp/public_api.mjs +0 -3
  755. package/esm2022/inputswitch/cax-design-system-inputswitch.mjs +0 -5
  756. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  757. package/esm2022/inputswitch/inputswitch.mjs +0 -244
  758. package/esm2022/inputswitch/public_api.mjs +0 -3
  759. package/esm2022/inputtext/cax-design-system-inputtext.mjs +0 -5
  760. package/esm2022/inputtext/inputtext.component.mjs +0 -132
  761. package/esm2022/inputtext/inputtext.directive.mjs +0 -76
  762. package/esm2022/inputtext/inputtext.module.mjs +0 -20
  763. package/esm2022/inputtext/public_api.mjs +0 -4
  764. package/esm2022/inputtextarea/cax-design-system-inputtextarea.mjs +0 -5
  765. package/esm2022/inputtextarea/inputtextarea.component.mjs +0 -155
  766. package/esm2022/inputtextarea/inputtextarea.directive.mjs +0 -121
  767. package/esm2022/inputtextarea/inputtextarea.module.mjs +0 -20
  768. package/esm2022/inputtextarea/public_api.mjs +0 -4
  769. package/esm2022/keyfilter/cax-design-system-keyfilter.mjs +0 -5
  770. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  771. package/esm2022/keyfilter/keyfilter.mjs +0 -265
  772. package/esm2022/keyfilter/public_api.mjs +0 -3
  773. package/esm2022/knob/cax-design-system-knob.mjs +0 -5
  774. package/esm2022/knob/knob.mjs +0 -464
  775. package/esm2022/knob/public_api.mjs +0 -2
  776. package/esm2022/listbox/cax-design-system-listbox.mjs +0 -5
  777. package/esm2022/listbox/listbox.interface.mjs +0 -2
  778. package/esm2022/listbox/listbox.mjs +0 -1555
  779. package/esm2022/listbox/public_api.mjs +0 -3
  780. package/esm2022/logo/cax-design-system-logo.mjs +0 -5
  781. package/esm2022/logo/logo.mjs +0 -45
  782. package/esm2022/logo/logo.module.mjs +0 -16
  783. package/esm2022/logo/public_api.mjs +0 -3
  784. package/esm2022/megamenu/cax-design-system-megamenu.mjs +0 -5
  785. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  786. package/esm2022/megamenu/megamenu.mjs +0 -1190
  787. package/esm2022/megamenu/public_api.mjs +0 -3
  788. package/esm2022/menu/cax-design-system-menu.mjs +0 -5
  789. package/esm2022/menu/menu.mjs +0 -626
  790. package/esm2022/menu/menu.module.mjs +0 -22
  791. package/esm2022/menu/public_api.mjs +0 -3
  792. package/esm2022/menubar/cax-design-system-menubar.mjs +0 -5
  793. package/esm2022/menubar/menubar.interface.mjs +0 -2
  794. package/esm2022/menubar/menubar.mjs +0 -1249
  795. package/esm2022/menubar/public_api.mjs +0 -3
  796. package/esm2022/message/cax-design-system-message.mjs +0 -5
  797. package/esm2022/message/message.mjs +0 -112
  798. package/esm2022/message/public_api.mjs +0 -2
  799. package/esm2022/messages/cax-design-system-messages.mjs +0 -5
  800. package/esm2022/messages/messages.interface.mjs +0 -2
  801. package/esm2022/messages/messages.mjs +0 -283
  802. package/esm2022/messages/messages.module.mjs +0 -17
  803. package/esm2022/messages/public_api.mjs +0 -4
  804. package/esm2022/metergroup/cax-design-system-metergroup.mjs +0 -5
  805. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  806. package/esm2022/metergroup/metergroup.mjs +0 -280
  807. package/esm2022/metergroup/public_api.mjs +0 -3
  808. package/esm2022/multiselect/cax-design-system-multiselect.mjs +0 -5
  809. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  810. package/esm2022/multiselect/multiselect.mjs +0 -1875
  811. package/esm2022/multiselect/multiselect.module.mjs +0 -30
  812. package/esm2022/multiselect/public_api.mjs +0 -4
  813. package/esm2022/navigation/cax-design-system-navigation.mjs +0 -5
  814. package/esm2022/navigation/navigation.interface.mjs +0 -2
  815. package/esm2022/navigation/navigation.mjs +0 -399
  816. package/esm2022/navigation/navigation.module.mjs +0 -16
  817. package/esm2022/navigation/public_api.mjs +0 -3
  818. package/esm2022/orderlist/cax-design-system-orderlist.mjs +0 -5
  819. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  820. package/esm2022/orderlist/orderlist.mjs +0 -993
  821. package/esm2022/orderlist/public_api.mjs +0 -3
  822. package/esm2022/organizationchart/cax-design-system-organizationchart.mjs +0 -5
  823. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  824. package/esm2022/organizationchart/organizationchart.mjs +0 -416
  825. package/esm2022/organizationchart/public_api.mjs +0 -3
  826. package/esm2022/overlay/cax-design-system-overlay.mjs +0 -5
  827. package/esm2022/overlay/overlay.mjs +0 -579
  828. package/esm2022/overlay/overlay.module.mjs +0 -17
  829. package/esm2022/overlay/public_api.mjs +0 -3
  830. package/esm2022/overlaypanel/cax-design-system-overlaypanel.mjs +0 -5
  831. package/esm2022/overlaypanel/overlaypanel.mjs +0 -470
  832. package/esm2022/overlaypanel/overlaypanel.module.mjs +0 -17
  833. package/esm2022/overlaypanel/public_api.mjs +0 -3
  834. package/esm2022/paginator/cax-design-system-paginator.mjs +0 -5
  835. package/esm2022/paginator/paginator.interface.mjs +0 -2
  836. package/esm2022/paginator/paginator.mjs +0 -437
  837. package/esm2022/paginator/paginator.module.mjs +0 -27
  838. package/esm2022/paginator/public_api.mjs +0 -4
  839. package/esm2022/panel/cax-design-system-panel.mjs +0 -5
  840. package/esm2022/panel/panel.interface.mjs +0 -2
  841. package/esm2022/panel/panel.mjs +0 -393
  842. package/esm2022/panel/public_api.mjs +0 -3
  843. package/esm2022/panelmenu/cax-design-system-panelmenu.mjs +0 -5
  844. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  845. package/esm2022/panelmenu/panelmenu.mjs +0 -1276
  846. package/esm2022/panelmenu/public_api.mjs +0 -3
  847. package/esm2022/password/cax-design-system-password.mjs +0 -5
  848. package/esm2022/password/password.mjs +0 -1017
  849. package/esm2022/password/public_api.mjs +0 -2
  850. package/esm2022/picklist/cax-design-system-picklist.mjs +0 -5
  851. package/esm2022/picklist/picklist.interface.mjs +0 -2
  852. package/esm2022/picklist/picklist.mjs +0 -1909
  853. package/esm2022/picklist/public_api.mjs +0 -3
  854. package/esm2022/progressbar/cax-design-system-progressbar.mjs +0 -5
  855. package/esm2022/progressbar/progressbar.mjs +0 -86
  856. package/esm2022/progressbar/progressbar.module.mjs +0 -18
  857. package/esm2022/progressbar/public_api.mjs +0 -3
  858. package/esm2022/progressspinner/cax-design-system-progressspinner.mjs +0 -5
  859. package/esm2022/progressspinner/progressspinner.mjs +0 -112
  860. package/esm2022/progressspinner/progressspinner.module.mjs +0 -18
  861. package/esm2022/progressspinner/public_api.mjs +0 -3
  862. package/esm2022/public_api.mjs +0 -2
  863. package/esm2022/radiobutton/cax-design-system-radiobutton.mjs +0 -5
  864. package/esm2022/radiobutton/public_api.mjs +0 -4
  865. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  866. package/esm2022/radiobutton/radiobutton.mjs +0 -284
  867. package/esm2022/radiobutton/radiobutton.module.mjs +0 -16
  868. package/esm2022/rating/cax-design-system-rating.mjs +0 -5
  869. package/esm2022/rating/public_api.mjs +0 -3
  870. package/esm2022/rating/rating.interface.mjs +0 -2
  871. package/esm2022/rating/rating.mjs +0 -388
  872. package/esm2022/ripple/cax-design-system-ripple.mjs +0 -5
  873. package/esm2022/ripple/public_api.mjs +0 -3
  874. package/esm2022/ripple/ripple.mjs +0 -129
  875. package/esm2022/ripple/ripple.module.mjs +0 -16
  876. package/esm2022/scroller/cax-design-system-scroller.mjs +0 -5
  877. package/esm2022/scroller/public_api.mjs +0 -4
  878. package/esm2022/scroller/scroller.interface.mjs +0 -2
  879. package/esm2022/scroller/scroller.mjs +0 -981
  880. package/esm2022/scroller/scroller.module.mjs +0 -17
  881. package/esm2022/scrollpanel/cax-design-system-scrollpanel.mjs +0 -5
  882. package/esm2022/scrollpanel/public_api.mjs +0 -3
  883. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  884. package/esm2022/scrollpanel/scrollpanel.mjs +0 -501
  885. package/esm2022/scrolltop/cax-design-system-scrolltop.mjs +0 -5
  886. package/esm2022/scrolltop/public_api.mjs +0 -3
  887. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  888. package/esm2022/scrolltop/scrolltop.mjs +0 -282
  889. package/esm2022/selectbutton/cax-design-system-selectbutton.mjs +0 -5
  890. package/esm2022/selectbutton/public_api.mjs +0 -4
  891. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  892. package/esm2022/selectbutton/selectbutton.mjs +0 -303
  893. package/esm2022/selectbutton/selectbutton.module.mjs +0 -21
  894. package/esm2022/sidebar/cax-design-system-sidebar.mjs +0 -5
  895. package/esm2022/sidebar/public_api.mjs +0 -4
  896. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  897. package/esm2022/sidebar/sidebar.mjs +0 -488
  898. package/esm2022/sidebar/sidebar.module.mjs +0 -21
  899. package/esm2022/skeleton/cax-design-system-skeleton.mjs +0 -5
  900. package/esm2022/skeleton/public_api.mjs +0 -3
  901. package/esm2022/skeleton/skeleton.mjs +0 -87
  902. package/esm2022/skeleton/skeleton.module.mjs +0 -18
  903. package/esm2022/slidemenu/cax-design-system-slidemenu.mjs +0 -5
  904. package/esm2022/slidemenu/public_api.mjs +0 -3
  905. package/esm2022/slidemenu/slidemenu.interface.mjs +0 -2
  906. package/esm2022/slidemenu/slidemenu.mjs +0 -1501
  907. package/esm2022/slider/cax-design-system-slider.mjs +0 -5
  908. package/esm2022/slider/public_api.mjs +0 -3
  909. package/esm2022/slider/slider.interface.mjs +0 -2
  910. package/esm2022/slider/slider.mjs +0 -796
  911. package/esm2022/speeddial/cax-design-system-speeddial.mjs +0 -5
  912. package/esm2022/speeddial/public_api.mjs +0 -4
  913. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  914. package/esm2022/speeddial/speeddial.mjs +0 -611
  915. package/esm2022/speeddial/speeddial.module.mjs +0 -24
  916. package/esm2022/spinner/cax-design-system-spinner.mjs +0 -5
  917. package/esm2022/spinner/public_api.mjs +0 -2
  918. package/esm2022/spinner/spinner.mjs +0 -447
  919. package/esm2022/splitbutton/cax-design-system-splitbutton.mjs +0 -5
  920. package/esm2022/splitbutton/public_api.mjs +0 -4
  921. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  922. package/esm2022/splitbutton/splitbutton.mjs +0 -369
  923. package/esm2022/splitbutton/splitbutton.module.mjs +0 -23
  924. package/esm2022/splitter/cax-design-system-splitter.mjs +0 -5
  925. package/esm2022/splitter/public_api.mjs +0 -4
  926. package/esm2022/splitter/splitter.interface.mjs +0 -2
  927. package/esm2022/splitter/splitter.mjs +0 -490
  928. package/esm2022/splitter/splitter.module.mjs +0 -19
  929. package/esm2022/stepper/cax-design-system-stepper.mjs +0 -5
  930. package/esm2022/stepper/public_api.mjs +0 -3
  931. package/esm2022/stepper/stepper.interface.mjs +0 -2
  932. package/esm2022/stepper/stepper.mjs +0 -677
  933. package/esm2022/steps/cax-design-system-steps.mjs +0 -5
  934. package/esm2022/steps/public_api.mjs +0 -3
  935. package/esm2022/steps/steps.mjs +0 -207
  936. package/esm2022/steps/steps.module.mjs +0 -20
  937. package/esm2022/styleclass/cax-design-system-styleclass.mjs +0 -5
  938. package/esm2022/styleclass/public_api.mjs +0 -2
  939. package/esm2022/styleclass/styleclass.mjs +0 -316
  940. package/esm2022/table/cax-design-system-table.mjs +0 -5
  941. package/esm2022/table/columnfilter.interface.mjs +0 -2
  942. package/esm2022/table/components/cell-editor/cell-editor.mjs +0 -52
  943. package/esm2022/table/components/column-filter/column-filter.mjs +0 -865
  944. package/esm2022/table/components/column-filter-form-element/column-filter-form-element.mjs +0 -107
  945. package/esm2022/table/components/sort-icon/sort-icon.mjs +0 -78
  946. package/esm2022/table/components/table-body/table-body.mjs +0 -152
  947. package/esm2022/table/components/table-checkbox/table-checkbox.mjs +0 -83
  948. package/esm2022/table/components/table-header-checkbox/table-header-checkbox.mjs +0 -92
  949. package/esm2022/table/components/table-radio-button/table-radio-button.mjs +0 -79
  950. package/esm2022/table/directives/cancel-editable-row.directive.mjs +0 -32
  951. package/esm2022/table/directives/cell-highlight.directive.mjs +0 -42
  952. package/esm2022/table/directives/content-menu-row.directive.mjs +0 -70
  953. package/esm2022/table/directives/dynamic-column-width.directive.mjs +0 -34
  954. package/esm2022/table/directives/editable-column.directive.mjs +0 -344
  955. package/esm2022/table/directives/editable-row.directive.mjs +0 -32
  956. package/esm2022/table/directives/frozen-column.directive.mjs +0 -77
  957. package/esm2022/table/directives/init-editable-row.directive.mjs +0 -32
  958. package/esm2022/table/directives/reorderable-column.directive.mjs +0 -115
  959. package/esm2022/table/directives/reorderable-row-handle.directive.mjs +0 -25
  960. package/esm2022/table/directives/reorderable-row.directive.mjs +0 -122
  961. package/esm2022/table/directives/resizable-column.directive.mjs +0 -123
  962. package/esm2022/table/directives/row-group-header.directive.mjs +0 -26
  963. package/esm2022/table/directives/row-toggler.directive.mjs +0 -42
  964. package/esm2022/table/directives/save-editable-row.directive.mjs +0 -32
  965. package/esm2022/table/directives/selectable-row-double-click.directive.mjs +0 -71
  966. package/esm2022/table/directives/selectable-row.directive.mjs +0 -243
  967. package/esm2022/table/directives/sortable-column.directive.mjs +0 -90
  968. package/esm2022/table/public_api.mjs +0 -31
  969. package/esm2022/table/table.interface.mjs +0 -2
  970. package/esm2022/table/table.mjs +0 -2799
  971. package/esm2022/table/table.module.mjs +0 -157
  972. package/esm2022/table/table.service.mjs +0 -42
  973. package/esm2022/tableconfiguration/cax-design-system-tableconfiguration.mjs +0 -5
  974. package/esm2022/tableconfiguration/public_api.mjs +0 -3
  975. package/esm2022/tableconfiguration/tableconfiguration.mjs +0 -68
  976. package/esm2022/tableconfiguration/tableconfiguration.module.mjs +0 -16
  977. package/esm2022/tabmenu/cax-design-system-tabmenu.mjs +0 -5
  978. package/esm2022/tabmenu/public_api.mjs +0 -3
  979. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  980. package/esm2022/tabmenu/tabmenu.mjs +0 -576
  981. package/esm2022/tabview/cax-design-system-tabview.mjs +0 -5
  982. package/esm2022/tabview/public_api.mjs +0 -4
  983. package/esm2022/tabview/tabview.interface.mjs +0 -2
  984. package/esm2022/tabview/tabview.mjs +0 -913
  985. package/esm2022/tabview/tabview.module.mjs +0 -25
  986. package/esm2022/tag/cax-design-system-tag.mjs +0 -5
  987. package/esm2022/tag/public_api.mjs +0 -4
  988. package/esm2022/tag/tag.interface.mjs +0 -2
  989. package/esm2022/tag/tag.mjs +0 -95
  990. package/esm2022/tag/tag.module.mjs +0 -19
  991. package/esm2022/terminal/cax-design-system-terminal.mjs +0 -5
  992. package/esm2022/terminal/public_api.mjs +0 -3
  993. package/esm2022/terminal/terminal.mjs +0 -143
  994. package/esm2022/terminal/terminalservice.mjs +0 -25
  995. package/esm2022/tieredmenu/cax-design-system-tieredmenu.mjs +0 -5
  996. package/esm2022/tieredmenu/public_api.mjs +0 -4
  997. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  998. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1289
  999. package/esm2022/tieredmenu/tiredmenu.module.mjs +0 -23
  1000. package/esm2022/timeline/cax-design-system-timeline.mjs +0 -5
  1001. package/esm2022/timeline/public_api.mjs +0 -4
  1002. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1003. package/esm2022/timeline/timeline.mjs +0 -83
  1004. package/esm2022/timeline/timeline.module.mjs +0 -19
  1005. package/esm2022/toast/cax-design-system-toast.mjs +0 -5
  1006. package/esm2022/toast/public_api.mjs +0 -4
  1007. package/esm2022/toast/toast.interface.mjs +0 -2
  1008. package/esm2022/toast/toast.mjs +0 -324
  1009. package/esm2022/toast/toast.module.mjs +0 -18
  1010. package/esm2022/toast/toastitem.mjs +0 -170
  1011. package/esm2022/togglebutton/cax-design-system-togglebutton.mjs +0 -5
  1012. package/esm2022/togglebutton/public_api.mjs +0 -3
  1013. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1014. package/esm2022/togglebutton/togglebutton.mjs +0 -274
  1015. package/esm2022/toggleswitch/cax-design-system-toggleswitch.mjs +0 -5
  1016. package/esm2022/toggleswitch/public_api.mjs +0 -3
  1017. package/esm2022/toggleswitch/toggleswitch.mjs +0 -37
  1018. package/esm2022/toggleswitch/toggleswitch.module.mjs +0 -19
  1019. package/esm2022/toolbar/cax-design-system-toolbar.mjs +0 -5
  1020. package/esm2022/toolbar/public_api.mjs +0 -3
  1021. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1022. package/esm2022/toolbar/toolbar.mjs +0 -111
  1023. package/esm2022/tooltip/cax-design-system-tooltip.mjs +0 -5
  1024. package/esm2022/tooltip/public_api.mjs +0 -3
  1025. package/esm2022/tooltip/tooltip.mjs +0 -889
  1026. package/esm2022/tooltip/tooltip.module.mjs +0 -20
  1027. package/esm2022/tree/cax-design-system-tree.mjs +0 -5
  1028. package/esm2022/tree/public_api.mjs +0 -4
  1029. package/esm2022/tree/tree.interface.mjs +0 -2
  1030. package/esm2022/tree/tree.mjs +0 -1544
  1031. package/esm2022/tree/tree.module.mjs +0 -31
  1032. package/esm2022/treeselect/cax-design-system-treeselect.mjs +0 -5
  1033. package/esm2022/treeselect/public_api.mjs +0 -4
  1034. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1035. package/esm2022/treeselect/treeselect.mjs +0 -865
  1036. package/esm2022/treeselect/treeselect.module.mjs +0 -26
  1037. package/esm2022/treetable/cax-design-system-treetable.mjs +0 -5
  1038. package/esm2022/treetable/public_api.mjs +0 -3
  1039. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1040. package/esm2022/treetable/treetable.mjs +0 -4111
  1041. package/esm2022/tristatecheckbox/cax-design-system-tristatecheckbox.mjs +0 -5
  1042. package/esm2022/tristatecheckbox/public_api.mjs +0 -4
  1043. package/esm2022/tristatecheckbox/tristatecheckbox.interface.mjs +0 -2
  1044. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +0 -215
  1045. package/esm2022/tristatecheckbox/tristatecheckbox.module.mjs +0 -17
  1046. package/esm2022/ts-helpers/cax-design-system-ts-helpers.mjs +0 -5
  1047. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1048. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1049. package/esm2022/upload/cax-design-system-upload.mjs +0 -5
  1050. package/esm2022/upload/public_api.mjs +0 -3
  1051. package/esm2022/upload/upload.component.mjs +0 -372
  1052. package/esm2022/upload/upload.component.module.mjs +0 -21
  1053. package/esm2022/utils/cax-design-system-utils.mjs +0 -5
  1054. package/esm2022/utils/objectutils.mjs +0 -258
  1055. package/esm2022/utils/public_api.mjs +0 -5
  1056. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1057. package/esm2022/utils/zindexutils.mjs +0 -35
  1058. package/esm2022/virtualscroller/cax-design-system-virtualscroller.mjs +0 -5
  1059. package/esm2022/virtualscroller/public_api.mjs +0 -3
  1060. package/esm2022/virtualscroller/virtualscroller.interface.mjs +0 -2
  1061. package/esm2022/virtualscroller/virtualscroller.mjs +0 -215
@@ -1,968 +0,0 @@
1
- import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Inject, Input, NgModule, Output, PLATFORM_ID, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
3
- import { Footer, Header, CaxTemplate, SharedModule } from 'cax-design-system/api';
4
- import { ChevronDownIcon } from 'cax-design-system/icons/chevrondown';
5
- import { ChevronLeftIcon } from 'cax-design-system/icons/chevronleft';
6
- import { ChevronRightIcon } from 'cax-design-system/icons/chevronright';
7
- import { ChevronUpIcon } from 'cax-design-system/icons/chevronup';
8
- import { RippleModule } from 'cax-design-system/ripple';
9
- import { UniqueComponentId } from 'cax-design-system/utils';
10
- import { DomHandler } from 'cax-design-system/dom';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "cax-design-system/api";
13
- import * as i2 from "@angular/common";
14
- /**
15
- * Carousel is a content slider featuring various customization options.
16
- * @group Components
17
- */
18
- export class Carousel {
19
- el;
20
- zone;
21
- cd;
22
- renderer;
23
- document;
24
- platformId;
25
- config;
26
- /**
27
- * Index of the first item.
28
- * @defaultValue 0
29
- * @group Props
30
- */
31
- get page() {
32
- return this._page;
33
- }
34
- set page(val) {
35
- if (this.isCreated && val !== this._page) {
36
- if (this.autoplayInterval) {
37
- this.stopAutoplay();
38
- }
39
- if (val > this._page && val <= this.totalDots() - 1) {
40
- this.step(-1, val);
41
- }
42
- else if (val < this._page) {
43
- this.step(1, val);
44
- }
45
- }
46
- this._page = val;
47
- }
48
- /**
49
- * Number of items per page.
50
- * @defaultValue 1
51
- * @group Props
52
- */
53
- get numVisible() {
54
- return this._numVisible;
55
- }
56
- set numVisible(val) {
57
- this._numVisible = val;
58
- }
59
- /**
60
- * Number of items to scroll.
61
- * @defaultValue 1
62
- * @group Props
63
- */
64
- get numScroll() {
65
- return this._numVisible;
66
- }
67
- set numScroll(val) {
68
- this._numScroll = val;
69
- }
70
- /**
71
- * An array of options for responsive design.
72
- * @see {CarouselResponsiveOptions}
73
- * @group Props
74
- */
75
- responsiveOptions;
76
- /**
77
- * Specifies the layout of the component.
78
- * @group Props
79
- */
80
- orientation = 'horizontal';
81
- /**
82
- * Height of the viewport in vertical layout.
83
- * @group Props
84
- */
85
- verticalViewPortHeight = '300px';
86
- /**
87
- * Style class of main content.
88
- * @group Props
89
- */
90
- contentClass = '';
91
- /**
92
- * Style class of the indicator items.
93
- * @group Props
94
- */
95
- indicatorsContentClass = '';
96
- /**
97
- * Inline style of the indicator items.
98
- * @group Props
99
- */
100
- indicatorsContentStyle;
101
- /**
102
- * Style class of the indicators.
103
- * @group Props
104
- */
105
- indicatorStyleClass = '';
106
- /**
107
- * Style of the indicators.
108
- * @group Props
109
- */
110
- indicatorStyle;
111
- /**
112
- * An array of objects to display.
113
- * @defaultValue null
114
- * @group Props
115
- */
116
- get value() {
117
- return this._value;
118
- }
119
- set value(val) {
120
- this._value = val;
121
- }
122
- /**
123
- * Defines if scrolling would be infinite.
124
- * @group Props
125
- */
126
- circular = false;
127
- /**
128
- * Whether to display indicator container.
129
- * @group Props
130
- */
131
- showIndicators = true;
132
- /**
133
- * Whether to display navigation buttons in container.
134
- * @group Props
135
- */
136
- showNavigators = true;
137
- /**
138
- * Time in milliseconds to scroll items automatically.
139
- * @group Props
140
- */
141
- autoplayInterval = 0;
142
- /**
143
- * Inline style of the component.
144
- * @group Props
145
- */
146
- style;
147
- /**
148
- * Style class of the viewport container.
149
- * @group Props
150
- */
151
- styleClass;
152
- /**
153
- * Callback to invoke after scroll.
154
- * @param {CarouselPageEvent} event - Custom page event.
155
- * @group Emits
156
- */
157
- onPage = new EventEmitter();
158
- itemsContainer;
159
- indicatorContent;
160
- headerFacet;
161
- footerFacet;
162
- templates;
163
- _numVisible = 1;
164
- _numScroll = 1;
165
- _oldNumScroll = 0;
166
- prevState = {
167
- numScroll: 0,
168
- numVisible: 0,
169
- value: []
170
- };
171
- defaultNumScroll = 1;
172
- defaultNumVisible = 1;
173
- _page = 0;
174
- _value;
175
- carouselStyle;
176
- id;
177
- totalShiftedItems;
178
- isRemainingItemsAdded = false;
179
- animationTimeout;
180
- translateTimeout;
181
- remainingItems = 0;
182
- _items;
183
- startPos;
184
- documentResizeListener;
185
- clonedItemsForStarting;
186
- clonedItemsForFinishing;
187
- allowAutoplay;
188
- interval;
189
- isCreated;
190
- swipeThreshold = 20;
191
- itemTemplate;
192
- headerTemplate;
193
- footerTemplate;
194
- previousIconTemplate;
195
- nextIconTemplate;
196
- window;
197
- constructor(el, zone, cd, renderer, document, platformId, config) {
198
- this.el = el;
199
- this.zone = zone;
200
- this.cd = cd;
201
- this.renderer = renderer;
202
- this.document = document;
203
- this.platformId = platformId;
204
- this.config = config;
205
- this.totalShiftedItems = this.page * this.numScroll * -1;
206
- this.window = this.document.defaultView;
207
- }
208
- ngOnChanges(simpleChange) {
209
- if (isPlatformBrowser(this.platformId)) {
210
- if (simpleChange.value) {
211
- if (this.circular && this._value) {
212
- this.setCloneItems();
213
- }
214
- }
215
- if (this.isCreated) {
216
- if (simpleChange.numVisible) {
217
- if (this.responsiveOptions) {
218
- this.defaultNumVisible = this.numVisible;
219
- }
220
- if (this.isCircular()) {
221
- this.setCloneItems();
222
- }
223
- this.createStyle();
224
- this.calculatePosition();
225
- }
226
- if (simpleChange.numScroll) {
227
- if (this.responsiveOptions) {
228
- this.defaultNumScroll = this.numScroll;
229
- }
230
- }
231
- }
232
- }
233
- this.cd.markForCheck();
234
- }
235
- ngAfterContentInit() {
236
- this.id = UniqueComponentId();
237
- if (isPlatformBrowser(this.platformId)) {
238
- this.allowAutoplay = !!this.autoplayInterval;
239
- if (this.circular) {
240
- this.setCloneItems();
241
- }
242
- if (this.responsiveOptions) {
243
- this.defaultNumScroll = this._numScroll;
244
- this.defaultNumVisible = this._numVisible;
245
- }
246
- this.createStyle();
247
- this.calculatePosition();
248
- if (this.responsiveOptions) {
249
- this.bindDocumentListeners();
250
- }
251
- }
252
- this.templates?.forEach((item) => {
253
- switch (item.getType()) {
254
- case 'item':
255
- this.itemTemplate = item.template;
256
- break;
257
- case 'header':
258
- this.headerTemplate = item.template;
259
- break;
260
- case 'footer':
261
- this.footerTemplate = item.template;
262
- break;
263
- case 'previousicon':
264
- this.previousIconTemplate = item.template;
265
- break;
266
- case 'nexticon':
267
- this.nextIconTemplate = item.template;
268
- break;
269
- default:
270
- this.itemTemplate = item.template;
271
- break;
272
- }
273
- });
274
- this.cd.detectChanges();
275
- }
276
- ngAfterContentChecked() {
277
- if (isPlatformBrowser(this.platformId)) {
278
- const isCircular = this.isCircular();
279
- let totalShiftedItems = this.totalShiftedItems;
280
- if (this.value && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {
281
- if (this.autoplayInterval) {
282
- this.stopAutoplay(false);
283
- }
284
- this.remainingItems = (this.value.length - this._numVisible) % this._numScroll;
285
- let page = this._page;
286
- if (this.totalDots() !== 0 && page >= this.totalDots()) {
287
- page = this.totalDots() - 1;
288
- this._page = page;
289
- this.onPage.emit({
290
- page: this.page
291
- });
292
- }
293
- totalShiftedItems = page * this._numScroll * -1;
294
- if (isCircular) {
295
- totalShiftedItems -= this._numVisible;
296
- }
297
- if (page === this.totalDots() - 1 && this.remainingItems > 0) {
298
- totalShiftedItems += -1 * this.remainingItems + this._numScroll;
299
- this.isRemainingItemsAdded = true;
300
- }
301
- else {
302
- this.isRemainingItemsAdded = false;
303
- }
304
- if (totalShiftedItems !== this.totalShiftedItems) {
305
- this.totalShiftedItems = totalShiftedItems;
306
- }
307
- this._oldNumScroll = this._numScroll;
308
- this.prevState.numScroll = this._numScroll;
309
- this.prevState.numVisible = this._numVisible;
310
- this.prevState.value = [...this._value];
311
- if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {
312
- this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;
313
- }
314
- this.isCreated = true;
315
- if (this.autoplayInterval && this.isAutoplay()) {
316
- this.startAutoplay();
317
- }
318
- }
319
- if (isCircular) {
320
- if (this.page === 0) {
321
- totalShiftedItems = -1 * this._numVisible;
322
- }
323
- else if (totalShiftedItems === 0) {
324
- totalShiftedItems = -1 * this.value.length;
325
- if (this.remainingItems > 0) {
326
- this.isRemainingItemsAdded = true;
327
- }
328
- }
329
- if (totalShiftedItems !== this.totalShiftedItems) {
330
- this.totalShiftedItems = totalShiftedItems;
331
- }
332
- }
333
- }
334
- }
335
- createStyle() {
336
- if (!this.carouselStyle) {
337
- this.carouselStyle = this.renderer.createElement('style');
338
- this.carouselStyle.type = 'text/css';
339
- DomHandler.setAttribute(this.carouselStyle, 'nonce', this.config?.csp()?.nonce);
340
- this.renderer.appendChild(this.document.head, this.carouselStyle);
341
- }
342
- let innerHTML = `
343
- #${this.id} .p-carousel-item {
344
- flex: 1 0 ${100 / this.numVisible}%
345
- }
346
- `;
347
- if (this.responsiveOptions) {
348
- this.responsiveOptions.sort((data1, data2) => {
349
- const value1 = data1.breakpoint;
350
- const value2 = data2.breakpoint;
351
- let result = null;
352
- if (value1 == null && value2 != null)
353
- result = -1;
354
- else if (value1 != null && value2 == null)
355
- result = 1;
356
- else if (value1 == null && value2 == null)
357
- result = 0;
358
- else if (typeof value1 === 'string' && typeof value2 === 'string')
359
- result = value1.localeCompare(value2, undefined, { numeric: true });
360
- else
361
- result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;
362
- return -1 * result;
363
- });
364
- for (let i = 0; i < this.responsiveOptions.length; i++) {
365
- let res = this.responsiveOptions[i];
366
- innerHTML += `
367
- @media screen and (max-width: ${res.breakpoint}) {
368
- #${this.id} .p-carousel-item {
369
- flex: 1 0 ${100 / res.numVisible}%
370
- }
371
- }
372
- `;
373
- }
374
- }
375
- this.carouselStyle.innerHTML = innerHTML;
376
- }
377
- calculatePosition() {
378
- if (this.responsiveOptions) {
379
- let matchedResponsiveData = {
380
- numVisible: this.defaultNumVisible,
381
- numScroll: this.defaultNumScroll
382
- };
383
- if (typeof window !== 'undefined') {
384
- let windowWidth = window.innerWidth;
385
- for (let i = 0; i < this.responsiveOptions.length; i++) {
386
- let res = this.responsiveOptions[i];
387
- if (parseInt(res.breakpoint, 10) >= windowWidth) {
388
- matchedResponsiveData = res;
389
- }
390
- }
391
- }
392
- if (this._numScroll !== matchedResponsiveData.numScroll) {
393
- let page = this._page;
394
- page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);
395
- let totalShiftedItems = matchedResponsiveData.numScroll * this.page * -1;
396
- if (this.isCircular()) {
397
- totalShiftedItems -= matchedResponsiveData.numVisible;
398
- }
399
- this.totalShiftedItems = totalShiftedItems;
400
- this._numScroll = matchedResponsiveData.numScroll;
401
- this._page = page;
402
- this.onPage.emit({
403
- page: this.page
404
- });
405
- }
406
- if (this._numVisible !== matchedResponsiveData.numVisible) {
407
- this._numVisible = matchedResponsiveData.numVisible;
408
- this.setCloneItems();
409
- }
410
- this.cd.markForCheck();
411
- }
412
- }
413
- setCloneItems() {
414
- this.clonedItemsForStarting = [];
415
- this.clonedItemsForFinishing = [];
416
- if (this.isCircular()) {
417
- this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));
418
- this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));
419
- }
420
- }
421
- firstIndex() {
422
- return this.isCircular() ? -1 * (this.totalShiftedItems + this.numVisible) : this.totalShiftedItems * -1;
423
- }
424
- lastIndex() {
425
- return this.firstIndex() + this.numVisible - 1;
426
- }
427
- totalDots() {
428
- return this.value?.length ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;
429
- }
430
- totalDotsArray() {
431
- const totalDots = this.totalDots();
432
- return totalDots <= 0 ? [] : Array(totalDots).fill(0);
433
- }
434
- isVertical() {
435
- return this.orientation === 'vertical';
436
- }
437
- isCircular() {
438
- return this.circular && this.value && this.value.length >= this.numVisible;
439
- }
440
- isAutoplay() {
441
- return this.autoplayInterval && this.allowAutoplay;
442
- }
443
- isForwardNavDisabled() {
444
- return this.isEmpty() || (this._page >= this.totalDots() - 1 && !this.isCircular());
445
- }
446
- isBackwardNavDisabled() {
447
- return this.isEmpty() || (this._page <= 0 && !this.isCircular());
448
- }
449
- isEmpty() {
450
- return !this.value || this.value.length === 0;
451
- }
452
- navForward(e, index) {
453
- if (this.isCircular() || this._page < this.totalDots() - 1) {
454
- this.step(-1, index);
455
- }
456
- if (this.autoplayInterval) {
457
- this.stopAutoplay();
458
- }
459
- if (e && e.cancelable) {
460
- e.preventDefault();
461
- }
462
- }
463
- navBackward(e, index) {
464
- if (this.isCircular() || this._page !== 0) {
465
- this.step(1, index);
466
- }
467
- if (this.autoplayInterval) {
468
- this.stopAutoplay();
469
- }
470
- if (e && e.cancelable) {
471
- e.preventDefault();
472
- }
473
- }
474
- onDotClick(e, index) {
475
- let page = this._page;
476
- if (this.autoplayInterval) {
477
- this.stopAutoplay();
478
- }
479
- if (index > page) {
480
- this.navForward(e, index);
481
- }
482
- else if (index < page) {
483
- this.navBackward(e, index);
484
- }
485
- }
486
- onIndicatorKeydown(event) {
487
- switch (event.code) {
488
- case 'ArrowRight':
489
- this.onRightKey();
490
- break;
491
- case 'ArrowLeft':
492
- this.onLeftKey();
493
- break;
494
- }
495
- }
496
- onRightKey() {
497
- const indicators = [...DomHandler.find(this.indicatorContent.nativeElement, '[data-pc-section="indicator"]')];
498
- const activeIndex = this.findFocusedIndicatorIndex();
499
- this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);
500
- }
501
- onLeftKey() {
502
- const activeIndex = this.findFocusedIndicatorIndex();
503
- this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);
504
- }
505
- onHomeKey() {
506
- const activeIndex = this.findFocusedIndicatorIndex();
507
- this.changedFocusedIndicator(activeIndex, 0);
508
- }
509
- onEndKey() {
510
- const indicators = [...DomHandler.find(this.indicatorContent.nativeElement, '[data-pc-section="indicator"]r')];
511
- const activeIndex = this.findFocusedIndicatorIndex();
512
- this.changedFocusedIndicator(activeIndex, indicators.length - 1);
513
- }
514
- onTabKey() {
515
- const indicators = [...DomHandler.find(this.indicatorContent.nativeElement, '[data-pc-section="indicator"]')];
516
- const highlightedIndex = indicators.findIndex((ind) => DomHandler.getAttribute(ind, 'data-p-highlight') === true);
517
- const activeIndicator = DomHandler.findSingle(this.indicatorContent.nativeElement, '[data-pc-section="indicator"] > button[tabindex="0"]');
518
- const activeIndex = indicators.findIndex((ind) => ind === activeIndicator.parentElement);
519
- indicators[activeIndex].children[0].tabIndex = '-1';
520
- indicators[highlightedIndex].children[0].tabIndex = '0';
521
- }
522
- findFocusedIndicatorIndex() {
523
- const indicators = [...DomHandler.find(this.indicatorContent.nativeElement, '[data-pc-section="indicator"]')];
524
- const activeIndicator = DomHandler.findSingle(this.indicatorContent.nativeElement, '[data-pc-section="indicator"] > button[tabindex="0"]');
525
- return indicators.findIndex((ind) => ind === activeIndicator.parentElement);
526
- }
527
- changedFocusedIndicator(prevInd, nextInd) {
528
- const indicators = [...DomHandler.find(this.indicatorContent.nativeElement, '[data-pc-section="indicator"]')];
529
- indicators[prevInd].children[0].tabIndex = '-1';
530
- indicators[nextInd].children[0].tabIndex = '0';
531
- indicators[nextInd].children[0].focus();
532
- }
533
- step(dir, page) {
534
- let totalShiftedItems = this.totalShiftedItems;
535
- const isCircular = this.isCircular();
536
- if (page != null) {
537
- totalShiftedItems = this._numScroll * page * -1;
538
- if (isCircular) {
539
- totalShiftedItems -= this._numVisible;
540
- }
541
- this.isRemainingItemsAdded = false;
542
- }
543
- else {
544
- totalShiftedItems += this._numScroll * dir;
545
- if (this.isRemainingItemsAdded) {
546
- totalShiftedItems += this.remainingItems - this._numScroll * dir;
547
- this.isRemainingItemsAdded = false;
548
- }
549
- let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;
550
- page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));
551
- }
552
- if (isCircular && this.page === this.totalDots() - 1 && dir === -1) {
553
- totalShiftedItems = -1 * (this.value.length + this._numVisible);
554
- page = 0;
555
- }
556
- else if (isCircular && this.page === 0 && dir === 1) {
557
- totalShiftedItems = 0;
558
- page = this.totalDots() - 1;
559
- }
560
- else if (page === this.totalDots() - 1 && this.remainingItems > 0) {
561
- totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;
562
- this.isRemainingItemsAdded = true;
563
- }
564
- if (this.itemsContainer) {
565
- this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;
566
- this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';
567
- }
568
- this.totalShiftedItems = totalShiftedItems;
569
- this._page = page;
570
- this.onPage.emit({
571
- page: this.page
572
- });
573
- this.cd.markForCheck();
574
- }
575
- startAutoplay() {
576
- this.interval = setInterval(() => {
577
- if (this.totalDots() > 0) {
578
- if (this.page === this.totalDots() - 1) {
579
- this.step(-1, 0);
580
- }
581
- else {
582
- this.step(-1, this.page + 1);
583
- }
584
- }
585
- }, this.autoplayInterval);
586
- this.allowAutoplay = true;
587
- this.cd.markForCheck();
588
- }
589
- stopAutoplay(changeAllow = true) {
590
- if (this.interval) {
591
- clearInterval(this.interval);
592
- this.interval = undefined;
593
- if (changeAllow) {
594
- this.allowAutoplay = false;
595
- }
596
- }
597
- this.cd.markForCheck();
598
- }
599
- isPlaying() {
600
- return !!this.interval;
601
- }
602
- onTransitionEnd() {
603
- if (this.itemsContainer) {
604
- this.itemsContainer.nativeElement.style.transition = '';
605
- if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {
606
- this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;
607
- }
608
- }
609
- }
610
- onTouchStart(e) {
611
- let touchobj = e.changedTouches[0];
612
- this.startPos = {
613
- x: touchobj.pageX,
614
- y: touchobj.pageY
615
- };
616
- }
617
- onTouchMove(e) {
618
- if (e.cancelable) {
619
- e.preventDefault();
620
- }
621
- }
622
- onTouchEnd(e) {
623
- let touchobj = e.changedTouches[0];
624
- if (this.isVertical()) {
625
- this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);
626
- }
627
- else {
628
- this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);
629
- }
630
- }
631
- changePageOnTouch(e, diff) {
632
- if (Math.abs(diff) > this.swipeThreshold) {
633
- if (diff < 0) {
634
- this.navForward(e);
635
- }
636
- else {
637
- this.navBackward(e);
638
- }
639
- }
640
- }
641
- ariaPrevButtonLabel() {
642
- return this.config.translation.aria ? this.config.translation.aria.prevPageLabel : undefined;
643
- }
644
- ariaSlideLabel() {
645
- return this.config.translation.aria ? this.config.translation.aria.slide : undefined;
646
- }
647
- ariaNextButtonLabel() {
648
- return this.config.translation.aria ? this.config.translation.aria.nextPageLabel : undefined;
649
- }
650
- ariaSlideNumber(value) {
651
- return this.config.translation.aria ? this.config.translation.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;
652
- }
653
- ariaPageLabel(value) {
654
- return this.config.translation.aria ? this.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;
655
- }
656
- bindDocumentListeners() {
657
- if (isPlatformBrowser(this.platformId)) {
658
- if (!this.documentResizeListener) {
659
- this.documentResizeListener = this.renderer.listen(this.window, 'resize', (event) => {
660
- this.calculatePosition();
661
- });
662
- }
663
- }
664
- }
665
- unbindDocumentListeners() {
666
- if (isPlatformBrowser(this.platformId)) {
667
- if (this.documentResizeListener) {
668
- this.documentResizeListener();
669
- this.documentResizeListener = null;
670
- }
671
- }
672
- }
673
- ngOnDestroy() {
674
- if (this.responsiveOptions) {
675
- this.unbindDocumentListeners();
676
- }
677
- if (this.autoplayInterval) {
678
- this.stopAutoplay();
679
- }
680
- }
681
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Carousel, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i1.caxConfig }], target: i0.ɵɵFactoryTarget.Component });
682
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: Carousel, selector: "p-carousel", inputs: { page: "page", numVisible: "numVisible", numScroll: "numScroll", responsiveOptions: "responsiveOptions", orientation: "orientation", verticalViewPortHeight: "verticalViewPortHeight", contentClass: "contentClass", indicatorsContentClass: "indicatorsContentClass", indicatorsContentStyle: "indicatorsContentStyle", indicatorStyleClass: "indicatorStyleClass", indicatorStyle: "indicatorStyle", value: "value", circular: ["circular", "circular", booleanAttribute], showIndicators: ["showIndicators", "showIndicators", booleanAttribute], showNavigators: ["showNavigators", "showNavigators", booleanAttribute], autoplayInterval: ["autoplayInterval", "autoplayInterval", numberAttribute], style: "style", styleClass: "styleClass" }, outputs: { onPage: "onPage" }, host: { classAttribute: "cax-element" }, queries: [{ propertyName: "headerFacet", first: true, predicate: Header, descendants: true }, { propertyName: "footerFacet", first: true, predicate: Footer, descendants: true }, { propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "itemsContainer", first: true, predicate: ["itemsContainer"], descendants: true }, { propertyName: "indicatorContent", first: true, predicate: ["indicatorContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
683
- <div [attr.id]="id" [ngClass]="{ 'p-carousel p-component': true, 'p-carousel-vertical': isVertical(), 'p-carousel-horizontal': !isVertical() }" [ngStyle]="style" [class]="styleClass" role="region">
684
- <div class="p-carousel-header" *ngIf="headerFacet || headerTemplate">
685
- <ng-content select="cax-header"></ng-content>
686
- <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
687
- </div>
688
- <div [class]="contentClass" [ngClass]="'p-carousel-content'">
689
- <div class="p-carousel-container" [attr.aria-live]="allowAutoplay ? 'polite' : 'off'">
690
- <button
691
- type="button"
692
- *ngIf="showNavigators"
693
- [ngClass]="{ 'p-carousel-prev p-link': true, 'p-disabled': isBackwardNavDisabled() }"
694
- [disabled]="isBackwardNavDisabled()"
695
- [attr.aria-label]="ariaPrevButtonLabel()"
696
- (click)="navBackward($event)"
697
- pRipple
698
- >
699
- <ng-container *ngIf="!previousIconTemplate">
700
- <ChevronLeftIcon *ngIf="!isVertical()" [styleClass]="'carousel-prev-icon'" />
701
- <ChevronUpIcon *ngIf="isVertical()" [styleClass]="'carousel-prev-icon'" />
702
- </ng-container>
703
- <span *ngIf="previousIconTemplate" class="p-carousel-prev-icon">
704
- <ng-template *ngTemplateOutlet="previousIconTemplate"></ng-template>
705
- </span>
706
- </button>
707
- <div class="p-carousel-items-content" [ngStyle]="{ height: isVertical() ? verticalViewPortHeight : 'auto' }" (touchend)="onTouchEnd($event)" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)">
708
- <div #itemsContainer class="p-carousel-items-container" (transitionend)="onTransitionEnd()">
709
- <div
710
- *ngFor="let item of clonedItemsForStarting; let index = index"
711
- [ngClass]="{
712
- 'p-carousel-item p-carousel-item-cloned': true,
713
- 'p-carousel-item-active': totalShiftedItems * -1 === value.length,
714
- 'p-carousel-item-start': 0 === index,
715
- 'p-carousel-item-end': clonedItemsForStarting.length - 1 === index
716
- }"
717
- [attr.aria-hidden]="!(totalShiftedItems * -1 === value.length)"
718
- [attr.aria-label]="ariaSlideNumber(index)"
719
- [attr.aria-roledescription]="ariaSlideLabel()"
720
- >
721
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
722
- </div>
723
- <div
724
- *ngFor="let item of value; let index = index"
725
- [ngClass]="{ 'p-carousel-item': true, 'p-carousel-item-active': firstIndex() <= index && lastIndex() >= index, 'p-carousel-item-start': firstIndex() === index, 'p-carousel-item-end': lastIndex() === index }"
726
- [attr.aria-hidden]="!(totalShiftedItems * -1 === value.length)"
727
- [attr.aria-label]="ariaSlideNumber(index)"
728
- [attr.aria-roledescription]="ariaSlideLabel()"
729
- >
730
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
731
- </div>
732
- <div
733
- *ngFor="let item of clonedItemsForFinishing; let index = index"
734
- [ngClass]="{
735
- 'p-carousel-item p-carousel-item-cloned': true,
736
- 'p-carousel-item-active': totalShiftedItems * -1 === numVisible,
737
- 'p-carousel-item-start': 0 === index,
738
- 'p-carousel-item-end': clonedItemsForFinishing.length - 1 === index
739
- }"
740
- >
741
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
742
- </div>
743
- </div>
744
- </div>
745
- <button
746
- type="button"
747
- *ngIf="showNavigators"
748
- [ngClass]="{ 'p-carousel-next p-link': true, 'p-disabled': isForwardNavDisabled() }"
749
- [disabled]="isForwardNavDisabled()"
750
- (click)="navForward($event)"
751
- pRipple
752
- [attr.aria-label]="ariaNextButtonLabel()"
753
- >
754
- <ng-container *ngIf="!nextIconTemplate">
755
- <ChevronRightIcon *ngIf="!isVertical()" [styleClass]="'carousel-prev-icon'" />
756
- <ChevronDownIcon *ngIf="isVertical()" [styleClass]="'carousel-prev-icon'" />
757
- </ng-container>
758
- <span *ngIf="nextIconTemplate" class="p-carousel-prev-icon">
759
- <ng-template *ngTemplateOutlet="nextIconTemplate"></ng-template>
760
- </span>
761
- </button>
762
- </div>
763
- <ul #indicatorContent [ngClass]="'p-carousel-indicators p-reset'" [class]="indicatorsContentClass" [ngStyle]="indicatorsContentStyle" *ngIf="showIndicators" (keydown)="onIndicatorKeydown($event)">
764
- <li *ngFor="let totalDot of totalDotsArray(); let i = index" [ngClass]="{ 'p-carousel-indicator': true, 'p-highlight': _page === i }" [attr.data-pc-section]="'indicator'">
765
- <button
766
- type="button"
767
- [ngClass]="'p-link'"
768
- (click)="onDotClick($event, i)"
769
- [class]="indicatorStyleClass"
770
- [ngStyle]="indicatorStyle"
771
- [attr.aria-label]="ariaPageLabel(i + 1)"
772
- [attr.aria-current]="_page === i ? 'page' : undefined"
773
- [tabindex]="_page === i ? 0 : -1"
774
- ></button>
775
- </li>
776
- </ul>
777
- </div>
778
- <div class="p-carousel-footer" *ngIf="footerFacet || footerTemplate">
779
- <ng-content select="cax-footer"></ng-content>
780
- <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
781
- </div>
782
- </div>
783
- `, isInline: true, styles: ["@layer cax{.p-carousel{display:flex;flex-direction:column}.p-carousel-content{display:flex;flex-direction:column;overflow:auto}.p-carousel-prev,.p-carousel-next{align-self:center;flex-grow:0;flex-shrink:0;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-carousel-container{display:flex;flex-direction:row}.p-carousel-items-content{overflow:hidden;width:100%}.p-carousel-items-container{display:flex;flex-direction:row}.p-carousel-indicators{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.p-carousel-indicator>button{display:flex;align-items:center;justify-content:center}.p-carousel-vertical .p-carousel-container{flex-direction:column}.p-carousel-vertical .p-carousel-items-container{flex-direction:column;height:100%}.p-items-hidden .p-carousel-item{visibility:hidden}.p-items-hidden .p-carousel-item.p-carousel-item-active{visibility:visible}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => ChevronRightIcon), selector: "ChevronRightIcon" }, { kind: "component", type: i0.forwardRef(() => ChevronLeftIcon), selector: "ChevronLeftIcon" }, { kind: "component", type: i0.forwardRef(() => ChevronDownIcon), selector: "ChevronDownIcon" }, { kind: "component", type: i0.forwardRef(() => ChevronUpIcon), selector: "ChevronUpIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
784
- }
785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Carousel, decorators: [{
786
- type: Component,
787
- args: [{ selector: 'p-carousel', template: `
788
- <div [attr.id]="id" [ngClass]="{ 'p-carousel p-component': true, 'p-carousel-vertical': isVertical(), 'p-carousel-horizontal': !isVertical() }" [ngStyle]="style" [class]="styleClass" role="region">
789
- <div class="p-carousel-header" *ngIf="headerFacet || headerTemplate">
790
- <ng-content select="cax-header"></ng-content>
791
- <ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
792
- </div>
793
- <div [class]="contentClass" [ngClass]="'p-carousel-content'">
794
- <div class="p-carousel-container" [attr.aria-live]="allowAutoplay ? 'polite' : 'off'">
795
- <button
796
- type="button"
797
- *ngIf="showNavigators"
798
- [ngClass]="{ 'p-carousel-prev p-link': true, 'p-disabled': isBackwardNavDisabled() }"
799
- [disabled]="isBackwardNavDisabled()"
800
- [attr.aria-label]="ariaPrevButtonLabel()"
801
- (click)="navBackward($event)"
802
- pRipple
803
- >
804
- <ng-container *ngIf="!previousIconTemplate">
805
- <ChevronLeftIcon *ngIf="!isVertical()" [styleClass]="'carousel-prev-icon'" />
806
- <ChevronUpIcon *ngIf="isVertical()" [styleClass]="'carousel-prev-icon'" />
807
- </ng-container>
808
- <span *ngIf="previousIconTemplate" class="p-carousel-prev-icon">
809
- <ng-template *ngTemplateOutlet="previousIconTemplate"></ng-template>
810
- </span>
811
- </button>
812
- <div class="p-carousel-items-content" [ngStyle]="{ height: isVertical() ? verticalViewPortHeight : 'auto' }" (touchend)="onTouchEnd($event)" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)">
813
- <div #itemsContainer class="p-carousel-items-container" (transitionend)="onTransitionEnd()">
814
- <div
815
- *ngFor="let item of clonedItemsForStarting; let index = index"
816
- [ngClass]="{
817
- 'p-carousel-item p-carousel-item-cloned': true,
818
- 'p-carousel-item-active': totalShiftedItems * -1 === value.length,
819
- 'p-carousel-item-start': 0 === index,
820
- 'p-carousel-item-end': clonedItemsForStarting.length - 1 === index
821
- }"
822
- [attr.aria-hidden]="!(totalShiftedItems * -1 === value.length)"
823
- [attr.aria-label]="ariaSlideNumber(index)"
824
- [attr.aria-roledescription]="ariaSlideLabel()"
825
- >
826
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
827
- </div>
828
- <div
829
- *ngFor="let item of value; let index = index"
830
- [ngClass]="{ 'p-carousel-item': true, 'p-carousel-item-active': firstIndex() <= index && lastIndex() >= index, 'p-carousel-item-start': firstIndex() === index, 'p-carousel-item-end': lastIndex() === index }"
831
- [attr.aria-hidden]="!(totalShiftedItems * -1 === value.length)"
832
- [attr.aria-label]="ariaSlideNumber(index)"
833
- [attr.aria-roledescription]="ariaSlideLabel()"
834
- >
835
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
836
- </div>
837
- <div
838
- *ngFor="let item of clonedItemsForFinishing; let index = index"
839
- [ngClass]="{
840
- 'p-carousel-item p-carousel-item-cloned': true,
841
- 'p-carousel-item-active': totalShiftedItems * -1 === numVisible,
842
- 'p-carousel-item-start': 0 === index,
843
- 'p-carousel-item-end': clonedItemsForFinishing.length - 1 === index
844
- }"
845
- >
846
- <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
847
- </div>
848
- </div>
849
- </div>
850
- <button
851
- type="button"
852
- *ngIf="showNavigators"
853
- [ngClass]="{ 'p-carousel-next p-link': true, 'p-disabled': isForwardNavDisabled() }"
854
- [disabled]="isForwardNavDisabled()"
855
- (click)="navForward($event)"
856
- pRipple
857
- [attr.aria-label]="ariaNextButtonLabel()"
858
- >
859
- <ng-container *ngIf="!nextIconTemplate">
860
- <ChevronRightIcon *ngIf="!isVertical()" [styleClass]="'carousel-prev-icon'" />
861
- <ChevronDownIcon *ngIf="isVertical()" [styleClass]="'carousel-prev-icon'" />
862
- </ng-container>
863
- <span *ngIf="nextIconTemplate" class="p-carousel-prev-icon">
864
- <ng-template *ngTemplateOutlet="nextIconTemplate"></ng-template>
865
- </span>
866
- </button>
867
- </div>
868
- <ul #indicatorContent [ngClass]="'p-carousel-indicators p-reset'" [class]="indicatorsContentClass" [ngStyle]="indicatorsContentStyle" *ngIf="showIndicators" (keydown)="onIndicatorKeydown($event)">
869
- <li *ngFor="let totalDot of totalDotsArray(); let i = index" [ngClass]="{ 'p-carousel-indicator': true, 'p-highlight': _page === i }" [attr.data-pc-section]="'indicator'">
870
- <button
871
- type="button"
872
- [ngClass]="'p-link'"
873
- (click)="onDotClick($event, i)"
874
- [class]="indicatorStyleClass"
875
- [ngStyle]="indicatorStyle"
876
- [attr.aria-label]="ariaPageLabel(i + 1)"
877
- [attr.aria-current]="_page === i ? 'page' : undefined"
878
- [tabindex]="_page === i ? 0 : -1"
879
- ></button>
880
- </li>
881
- </ul>
882
- </div>
883
- <div class="p-carousel-footer" *ngIf="footerFacet || footerTemplate">
884
- <ng-content select="cax-footer"></ng-content>
885
- <ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
886
- </div>
887
- </div>
888
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
889
- class: 'cax-element'
890
- }, styles: ["@layer cax{.p-carousel{display:flex;flex-direction:column}.p-carousel-content{display:flex;flex-direction:column;overflow:auto}.p-carousel-prev,.p-carousel-next{align-self:center;flex-grow:0;flex-shrink:0;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-carousel-container{display:flex;flex-direction:row}.p-carousel-items-content{overflow:hidden;width:100%}.p-carousel-items-container{display:flex;flex-direction:row}.p-carousel-indicators{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.p-carousel-indicator>button{display:flex;align-items:center;justify-content:center}.p-carousel-vertical .p-carousel-container{flex-direction:column}.p-carousel-vertical .p-carousel-items-container{flex-direction:column;height:100%}.p-items-hidden .p-carousel-item{visibility:hidden}.p-items-hidden .p-carousel-item.p-carousel-item-active{visibility:visible}}\n"] }]
891
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: Document, decorators: [{
892
- type: Inject,
893
- args: [DOCUMENT]
894
- }] }, { type: undefined, decorators: [{
895
- type: Inject,
896
- args: [PLATFORM_ID]
897
- }] }, { type: i1.caxConfig }], propDecorators: { page: [{
898
- type: Input
899
- }], numVisible: [{
900
- type: Input
901
- }], numScroll: [{
902
- type: Input
903
- }], responsiveOptions: [{
904
- type: Input
905
- }], orientation: [{
906
- type: Input
907
- }], verticalViewPortHeight: [{
908
- type: Input
909
- }], contentClass: [{
910
- type: Input
911
- }], indicatorsContentClass: [{
912
- type: Input
913
- }], indicatorsContentStyle: [{
914
- type: Input
915
- }], indicatorStyleClass: [{
916
- type: Input
917
- }], indicatorStyle: [{
918
- type: Input
919
- }], value: [{
920
- type: Input
921
- }], circular: [{
922
- type: Input,
923
- args: [{ transform: booleanAttribute }]
924
- }], showIndicators: [{
925
- type: Input,
926
- args: [{ transform: booleanAttribute }]
927
- }], showNavigators: [{
928
- type: Input,
929
- args: [{ transform: booleanAttribute }]
930
- }], autoplayInterval: [{
931
- type: Input,
932
- args: [{ transform: numberAttribute }]
933
- }], style: [{
934
- type: Input
935
- }], styleClass: [{
936
- type: Input
937
- }], onPage: [{
938
- type: Output
939
- }], itemsContainer: [{
940
- type: ViewChild,
941
- args: ['itemsContainer']
942
- }], indicatorContent: [{
943
- type: ViewChild,
944
- args: ['indicatorContent']
945
- }], headerFacet: [{
946
- type: ContentChild,
947
- args: [Header]
948
- }], footerFacet: [{
949
- type: ContentChild,
950
- args: [Footer]
951
- }], templates: [{
952
- type: ContentChildren,
953
- args: [CaxTemplate]
954
- }] } });
955
- export class CarouselModule {
956
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
957
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: CarouselModule, declarations: [Carousel], imports: [CommonModule, SharedModule, RippleModule, ChevronRightIcon, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon], exports: [CommonModule, Carousel, SharedModule] });
958
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CarouselModule, imports: [CommonModule, SharedModule, RippleModule, ChevronRightIcon, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon, CommonModule, SharedModule] });
959
- }
960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CarouselModule, decorators: [{
961
- type: NgModule,
962
- args: [{
963
- imports: [CommonModule, SharedModule, RippleModule, ChevronRightIcon, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon],
964
- exports: [CommonModule, Carousel, SharedModule],
965
- declarations: [Carousel]
966
- }]
967
- }] });
968
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixNQUFNLEVBQ04sV0FBVyxFQUtYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFDbkQ7OztHQUdHO0FBZ0hILE1BQU0sT0FBTyxRQUFRO0lBa05OO0lBQ0E7SUFDQTtJQUNDO0lBQ2tCO0lBQ0c7SUFDckI7SUF2Tlo7Ozs7T0FJRztJQUNILElBQWEsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixD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RSxlQUFlLEVBQUUsYUFBYSxFQUMzRyxZQUFZLEVBQVksWUFBWTs7MkZBR3JDLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7b0JBQ3RILE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDO29CQUMvQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXIsIEhlYWRlciwgQ2F4VGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2FwaSc7XG5pbXBvcnQgeyBDaGV2cm9uRG93bkljb24gfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9pY29ucy9jaGV2cm9uZG93bic7XG5pbXBvcnQgeyBDaGV2cm9uTGVmdEljb24gfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9pY29ucy9jaGV2cm9ubGVmdCc7XG5pbXBvcnQgeyBDaGV2cm9uUmlnaHRJY29uIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vaWNvbnMvY2hldnJvbnJpZ2h0JztcbmltcG9ydCB7IENoZXZyb25VcEljb24gfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9pY29ucy9jaGV2cm9udXAnO1xuaW1wb3J0IHsgUmlwcGxlTW9kdWxlIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vcmlwcGxlJztcbmltcG9ydCB7IFVuaXF1ZUNvbXBvbmVudElkIH0gZnJvbSAnY2F4LWRlc2lnbi1zeXN0ZW0vdXRpbHMnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxQYWdlRXZlbnQsIENhcm91c2VsUmVzcG9uc2l2ZU9wdGlvbnMgfSBmcm9tICcuL2Nhcm91c2VsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjYXhDb25maWcgfSBmcm9tICdjYXgtZGVzaWduLXN5c3RlbS9hcGknO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ2NheC1kZXNpZ24tc3lzdGVtL2RvbSc7XG4vKipcbiAqIENhcm91c2VsIGlzIGEgY29udGVudCBzbGlkZXIgZmVhdHVyaW5nIHZhcmlvdXMgY3VzdG9taXphdGlvbiBvcHRpb25zLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IFthdHRyLmlkXT1cImlkXCIgW25nQ2xhc3NdPVwieyAncC1jYXJvdXNlbCBwLWNvbXBvbmVudCc6IHRydWUsICdwLWNhcm91c2VsLXZlcnRpY2FsJzogaXNWZXJ0aWNhbCgpLCAncC1jYXJvdXNlbC1ob3Jpem9udGFsJzogIWlzVmVydGljYWwoKSB9XCIgW25nU3R5bGVdPVwic3R5bGVcIiBbY2xhc3NdPVwic3R5bGVDbGFzc1wiIHJvbGU9XCJyZWdpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNhcm91c2VsLWhlYWRlclwiICpuZ0lmPVwiaGVhZGVyRmFjZXQgfHwgaGVhZGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjYXgtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjb250ZW50Q2xhc3NcIiBbbmdDbGFzc109XCIncC1jYXJvdXNlbC1jb250ZW50J1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNhcm91c2VsLWNvbnRhaW5lclwiIFthdHRyLmFyaWEtbGl2ZV09XCJhbGxvd0F1dG9wbGF5ID8gJ3BvbGl0ZScgOiAnb2ZmJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd05hdmlnYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1jYXJvdXNlbC1wcmV2IHAtbGluayc6IHRydWUsICdwLWRpc2FibGVkJzogaXNCYWNrd2FyZE5hdkRpc2FibGVkKCkgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNCYWNrd2FyZE5hdkRpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhUHJldkJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdkJhY2t3YXJkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpb3VzSWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25MZWZ0SWNvbiAqbmdJZj1cIiFpc1ZlcnRpY2FsKClcIiBbc3R5bGVDbGFzc109XCInY2Fyb3VzZWwtcHJldi1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25VcEljb24gKm5nSWY9XCJpc1ZlcnRpY2FsKClcIiBbc3R5bGVDbGFzc109XCInY2Fyb3VzZWwtcHJldi1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJldmlvdXNJY29uVGVtcGxhdGVcIiBjbGFzcz1cInAtY2Fyb3VzZWwtcHJldi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJldmlvdXNJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY2Fyb3VzZWwtaXRlbXMtY29udGVudFwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBpc1ZlcnRpY2FsKCkgPyB2ZXJ0aWNhbFZpZXdQb3J0SGVpZ2h0IDogJ2F1dG8nIH1cIiAodG91Y2hlbmQpPVwib25Ub3VjaEVuZCgkZXZlbnQpXCIgKHRvdWNoc3RhcnQpPVwib25Ub3VjaFN0YXJ0KCRldmVudClcIiAodG91Y2htb3ZlKT1cIm9uVG91Y2hNb3ZlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgI2l0ZW1zQ29udGFpbmVyIGNsYXNzPVwicC1jYXJvdXNlbC1pdGVtcy1jb250YWluZXJcIiAodHJhbnNpdGlvbmVuZCk9XCJvblRyYW5zaXRpb25FbmQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2xvbmVkSXRlbXNGb3JTdGFydGluZzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1jYXJvdXNlbC1pdGVtIHAtY2Fyb3VzZWwtaXRlbS1jbG9uZWQnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtY2Fyb3VzZWwtaXRlbS1hY3RpdmUnOiB0b3RhbFNoaWZ0ZWRJdGVtcyAqIC0xID09PSB2YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1jYXJvdXNlbC1pdGVtLXN0YXJ0JzogMCA9PT0gaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1jYXJvdXNlbC1pdGVtLWVuZCc6IGNsb25lZEl0ZW1zRm9yU3RhcnRpbmcubGVuZ3RoIC0gMSA9PT0gaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIiEodG90YWxTaGlmdGVkSXRlbXMgKiAtMSA9PT0gdmFsdWUubGVuZ3RoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYVNsaWRlTnVtYmVyKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uXT1cImFyaWFTbGlkZUxhYmVsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1jYXJvdXNlbC1pdGVtJzogdHJ1ZSwgJ3AtY2Fyb3VzZWwtaXRlbS1hY3RpdmUnOiBmaXJzdEluZGV4KCkgPD0gaW5kZXggJiYgbGFzdEluZGV4KCkgPj0gaW5kZXgsICdwLWNhcm91c2VsLWl0ZW0tc3RhcnQnOiBmaXJzdEluZGV4KCkgPT09IGluZGV4LCAncC1jYXJvdXNlbC1pdGVtLWVuZCc6IGxhc3RJbmRleCgpID09PSBpbmRleCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiISh0b3RhbFNoaWZ0ZWRJdGVtcyAqIC0xID09PSB2YWx1ZS5sZW5ndGgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhU2xpZGVOdW1iZXIoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb25dPVwiYXJpYVNsaWRlTGFiZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjbG9uZWRJdGVtc0ZvckZpbmlzaGluZzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1jYXJvdXNlbC1pdGVtIHAtY2Fyb3VzZWwtaXRlbS1jbG9uZWQnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtY2Fyb3VzZWwtaXRlbS1hY3RpdmUnOiB0b3RhbFNoaWZ0ZWRJdGVtcyAqIC0xID09PSBudW1WaXNpYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtY2Fyb3VzZWwtaXRlbS1zdGFydCc6IDAgPT09IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtY2Fyb3VzZWwtaXRlbS1lbmQnOiBjbG9uZWRJdGVtc0ZvckZpbmlzaGluZy5sZW5ndGggLSAxID09PSBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dOYXZpZ2F0b3JzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtY2Fyb3VzZWwtbmV4dCBwLWxpbmsnOiB0cnVlLCAncC1kaXNhYmxlZCc6IGlzRm9yd2FyZE5hdkRpc2FibGVkKCkgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNGb3J3YXJkTmF2RGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2Rm9yd2FyZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYU5leHRCdXR0b25MYWJlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFuZXh0SWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25SaWdodEljb24gKm5nSWY9XCIhaXNWZXJ0aWNhbCgpXCIgW3N0eWxlQ2xhc3NdPVwiJ2Nhcm91c2VsLXByZXYtaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bkljb24gKm5nSWY9XCJpc1ZlcnRpY2FsKClcIiBbc3R5bGVDbGFzc109XCInY2Fyb3VzZWwtcHJldi1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibmV4dEljb25UZW1wbGF0ZVwiIGNsYXNzPVwicC1jYXJvdXNlbC1wcmV2LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuZXh0SWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHVsICNpbmRpY2F0b3JDb250ZW50IFtuZ0NsYXNzXT1cIidwLWNhcm91c2VsLWluZGljYXRvcnMgcC1yZXNldCdcIiBbY2xhc3NdPVwiaW5kaWNhdG9yc0NvbnRlbnRDbGFzc1wiIFtuZ1N0eWxlXT1cImluZGljYXRvcnNDb250ZW50U3R5bGVcIiAqbmdJZj1cInNob3dJbmRpY2F0b3JzXCIgKGtleWRvd24pPVwib25JbmRpY2F0b3JLZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCB0b3RhbERvdCBvZiB0b3RhbERvdHNBcnJheSgpOyBsZXQgaSA9IGluZGV4XCIgW25nQ2xhc3NdPVwieyAncC1jYXJvdXNlbC1pbmRpY2F0b3InOiB0cnVlLCAncC1oaWdobGlnaHQnOiBfcGFnZSA9PT0gaSB9XCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidpbmRpY2F0b3InXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ3AtbGluaydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRvdENsaWNrKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJpbmRpY2F0b3JTdHlsZUNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJpbmRpY2F0b3JTdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhUGFnZUxhYmVsKGkgKyAxKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIl9wYWdlID09PSBpID8gJ3BhZ2UnIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiX3BhZ2UgPT09IGkgPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNhcm91c2VsLWZvb3RlclwiICpuZ0lmPVwiZm9vdGVyRmFjZXQgfHwgZm9vdGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjYXgtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnY2F4LWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBwYWdlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICAgIH1cbiAgICBzZXQgcGFnZSh2YWw6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5pc0NyZWF0ZWQgJiYgdmFsICE9PSB0aGlzLl9wYWdlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvcGxheUludGVydmFsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wQXV0b3BsYXkoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbCA+IHRoaXMuX3BhZ2UgJiYgdmFsIDw9IHRoaXMudG90YWxEb3RzKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwKC0xLCB2YWwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwgPCB0aGlzLl9wYWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwKDEsIHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wYWdlID0gdmFsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBOdW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuXG4gICAgICogQGRlZmF1bHRWYWx1ZSAxXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IG51bVZpc2libGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bVZpc2libGU7XG4gICAgfVxuICAgIHNldCBudW1WaXNpYmxlKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bVZpc2libGUgPSB2YWw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBpdGVtcyB0byBzY3JvbGwuXG4gICAgICogQGRlZmF1bHRWYWx1ZSAxXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IG51bVNjcm9sbCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtVmlzaWJsZTtcbiAgICB9XG4gICAgc2V0IG51bVNjcm9sbCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9udW1TY3JvbGwgPSB2YWw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIG9wdGlvbnMgZm9yIHJlc3BvbnNpdmUgZGVzaWduLlxuICAgICAqIEBzZWUge0Nhcm91c2VsUmVzcG9uc2l2ZU9wdGlvbnN9XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZU9wdGlvbnM6IENhcm91c2VsUmVzcG9uc2l2ZU9wdGlvbnNbXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGxheW91dCBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuICAgIC8qKlxuICAgICAqIEhlaWdodCBvZiB0aGUgdmlld3BvcnQgaW4gdmVydGljYWwgbGF5b3V0LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHZlcnRpY2FsVmlld1BvcnRIZWlnaHQ6IHN0cmluZyA9ICczMDBweCc7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgbWFpbiBjb250ZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbnRlbnRDbGFzczogc3RyaW5nID0gJyc7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGluZGljYXRvciBpdGVtcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbmRpY2F0b3JzQ29udGVudENsYXNzOiBzdHJpbmcgPSAnJztcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGluZGljYXRvciBpdGVtcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbmRpY2F0b3JzQ29udGVudFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBpbmRpY2F0b3JzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGluZGljYXRvclN0eWxlQ2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIG9mIHRoZSBpbmRpY2F0b3JzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGluZGljYXRvclN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIG9iamVjdHMgdG8gZGlzcGxheS5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIG51bGxcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgdmFsdWUoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWUgYXMgYW55W107XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2YWwpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaWYgc2Nyb2xsaW5nIHdvdWxkIGJlIGluZmluaXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaXJjdWxhcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZGlzcGxheSBpbmRpY2F0b3IgY29udGFpbmVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93SW5kaWNhdG9yczogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IG5hdmlnYXRpb24gYnV0dG9ucyBpbiBjb250YWluZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dOYXZpZ2F0b3JzOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBUaW1lIGluIG1pbGxpc2Vjb25kcyB0byBzY3JvbGwgaXRlbXMgYXV0b21hdGljYWxseS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBhdXRvcGxheUludGVydmFsOiBudW1iZXIgPSAwO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSB2aWV3cG9ydCBjb250YWluZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBhZnRlciBzY3JvbGwuXG4gICAgICogQHBhcmFtIHtDYXJvdXNlbFBhZ2VFdmVudH0gZXZlbnQgLSBDdXN0b20gcGFnZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25QYWdlOiBFdmVudEVtaXR0ZXI8Q2Fyb3VzZWxQYWdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJvdXNlbFBhZ2VFdmVudD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zQ29udGFpbmVyJykgaXRlbXNDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdpbmRpY2F0b3JDb250ZW50JykgaW5kaWNhdG9yQ29udGVudDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGQoSGVhZGVyKSBoZWFkZXJGYWNldDogUXVlcnlMaXN0PEhlYWRlcj4gfCB1bmRlZmluZWQ7XG5cbiAgICBAQ29udGVudENoaWxkKEZvb3RlcikgZm9vdGVyRmFjZXQ6IFF1ZXJ5TGlzdDxGb290ZXI+IHwgdW5kZWZpbmVkO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihDYXhUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8Q2F4VGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgX251bVZpc2libGU6IG51bWJlciA9IDE7XG5cbiAgICBfbnVtU2Nyb2xsOiBudW1iZXIgPSAxO1xuXG4gICAgX29sZE51bVNjcm9sbDogbnVtYmVyID0gMDtcblxuICAgIHByZXZTdGF0ZTogYW55ID0ge1xuICAgICAgICBudW1TY3JvbGw6IDAsXG4gICAgICAgIG51bVZpc2libGU6IDAsXG4gICAgICAgIHZhbHVlOiBbXVxuICAgIH07XG5cbiAgICBkZWZhdWx0TnVtU2Nyb2xsOiBudW1iZXIgPSAxO1xuXG4gICAgZGVmYXVsdE51bVZpc2libGU6IG51bWJlciA9IDE7XG5cbiAgICBfcGFnZTogbnVtYmVyID0gMDtcblxuICAgIF92YWx1ZTogYW55W10gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgY2Fyb3VzZWxTdHlsZTogYW55O1xuXG4gICAgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIHRvdGFsU2hpZnRlZEl0ZW1zO1xuXG4gICAgaXNSZW1haW5pbmdJdGVtc0FkZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBhbmltYXRpb25UaW1lb3V0OiBhbnk7XG5cbiAgICB0cmFuc2xhdGVUaW1lb3V0OiBhbnk7XG5cbiAgICByZW1haW5pbmdJdGVtczogbnVtYmVyID0gMDtcblxuICAgIF9pdGVtczogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBzdGFydFBvczogYW55O1xuXG4gICAgZG9jdW1lbnRSZXNpemVMaXN0ZW5lcjogYW55O1xuXG4gICAgY2xvbmVkSXRlbXNGb3JTdGFydGluZzogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBjbG9uZWRJdGVtc0ZvckZpbmlzaGluZzogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBhbGxvd0F1dG9wbGF5OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgaW50ZXJ2YWw6IGFueTtcblxuICAgIGlzQ3JlYXRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIHN3aXBlVGhyZXNob2xkOiBudW1iZXIgPSAyMDtcblxuICAgIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBwcmV2aW91c0ljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIG5leHRJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICB3aW5kb3c6IFdpbmRvdztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyB6b25lOiBOZ1pvbmUsXG4gICAgICAgIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgICAgICBwcml2YXRlIGNvbmZpZzogY2F4Q29uZmlnXG4gICAgKSB7XG4gICAgICAgIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgPSB0aGlzLnBhZ2UgKiB0aGlzLm51bVNjcm9sbCAqIC0xO1xuICAgICAgICB0aGlzLndpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgYXMgV2luZG93O1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZTogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNpcmN1bGFyICYmIHRoaXMuX3ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q2xvbmVJdGVtcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5udW1WaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3BvbnNpdmVPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHROdW1WaXNpYmxlID0gdGhpcy5udW1WaXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDaXJjdWxhcigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldENsb25lSXRlbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlU3R5bGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChzaW1wbGVDaGFuZ2UubnVtU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3BvbnNpdmVPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHROdW1TY3JvbGwgPSB0aGlzLm51bVNjcm9sbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5pZCA9IFVuaXF1ZUNvbXBvbmVudElkKCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmFsbG93QXV0b3BsYXkgPSAhIXRoaXMuYXV0b3BsYXlJbnRlcnZhbDtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2lyY3VsYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldENsb25lSXRlbXMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHROdW1TY3JvbGwgPSB0aGlzLl9udW1TY3JvbGw7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0TnVtVmlzaWJsZSA9IHRoaXMuX251bVZpc2libGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlU3R5bGUoKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudExpc3RlbmVycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zvb3Rlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXZpb3VzaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ25leHRpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0SWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgaXNDaXJjdWxhciA9IHRoaXMuaXNDaXJjdWxhcigpO1xuICAgICAgICAgICAgbGV0IHRvdGFsU2hpZnRlZEl0ZW1zID0gdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcztcblxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5pdGVtc0NvbnRhaW5lciAmJiAodGhpcy5wcmV2U3RhdGUubnVtU2Nyb2xsICE9PSB0aGlzLl9udW1TY3JvbGwgfHwgdGhpcy5wcmV2U3RhdGUubnVtVmlzaWJsZSAhPT0gdGhpcy5fbnVtVmlzaWJsZSB8fCB0aGlzLnByZXZTdGF0ZS52YWx1ZS5sZW5ndGggIT09IHRoaXMudmFsdWUubGVuZ3RoKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9wbGF5SW50ZXJ2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wQXV0b3BsYXkoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucmVtYWluaW5nSXRlbXMgPSAodGhpcy52YWx1ZS5sZW5ndGggLSB0aGlzLl9udW1WaXNpYmxlKSAlIHRoaXMuX251bVNjcm9sbDtcblxuICAgICAgICAgICAgICAgIGxldCBwYWdlID0gdGhpcy5fcGFnZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50b3RhbERvdHMoKSAhPT0gMCAmJiBwYWdlID49IHRoaXMudG90YWxEb3RzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFnZSA9IHRoaXMudG90YWxEb3RzKCkgLSAxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYWdlID0gcGFnZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblBhZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgPSBwYWdlICogdGhpcy5fbnVtU2Nyb2xsICogLTE7XG4gICAgICAgICAgICAgICAgaWYgKGlzQ2lyY3VsYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgLT0gdGhpcy5fbnVtVmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGFnZSA9PT0gdGhpcy50b3RhbERvdHMoKSAtIDEgJiYgdGhpcy5yZW1haW5pbmdJdGVtcyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgKz0gLTEgKiB0aGlzLnJlbWFpbmluZ0l0ZW1zICsgdGhpcy5fbnVtU2Nyb2xsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVtYWluaW5nSXRlbXNBZGRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlbWFpbmluZ0l0ZW1zQWRkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodG90YWxTaGlmdGVkSXRlbXMgIT09IHRoaXMudG90YWxTaGlmdGVkSXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcyA9IHRvdGFsU2hpZnRlZEl0ZW1zO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuX29sZE51bVNjcm9sbCA9IHRoaXMuX251bVNjcm9sbDtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZTdGF0ZS5udW1TY3JvbGwgPSB0aGlzLl9udW1TY3JvbGw7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2U3RhdGUubnVtVmlzaWJsZSA9IHRoaXMuX251bVZpc2libGU7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2U3RhdGUudmFsdWUgPSBbLi4uKHRoaXMuX3ZhbHVlIGFzIGFueVtdKV07XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50b3RhbERvdHMoKSA+IDAgJiYgdGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSB0aGlzLmlzVmVydGljYWwoKSA/IGB0cmFuc2xhdGUzZCgwLCAke3RvdGFsU2hpZnRlZEl0ZW1zICogKDEwMCAvIHRoaXMuX251bVZpc2libGUpfSUsIDApYCA6IGB0cmFuc2xhdGUzZCgke3RvdGFsU2hpZnRlZEl0ZW1zICogKDEwMCAvIHRoaXMuX251bVZpc2libGUpfSUsIDAsIDApYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3JlYXRlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvcGxheUludGVydmFsICYmIHRoaXMuaXNBdXRvcGxheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBdXRvcGxheSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzQ2lyY3VsYXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zID0gLTEgKiB0aGlzLl9udW1WaXNpYmxlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG90YWxTaGlmdGVkSXRlbXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgPSAtMSAqIHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZW1haW5pbmdJdGVtcyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZW1haW5pbmdJdGVtc0FkZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0b3RhbFNoaWZ0ZWRJdGVtcyAhPT0gdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsU2hpZnRlZEl0ZW1zID0gdG90YWxTaGlmdGVkSXRlbXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlU3R5bGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5jYXJvdXNlbFN0eWxlKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsU3R5bGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsU3R5bGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgICAgICBEb21IYW5kbGVyLnNldEF0dHJpYnV0ZSh0aGlzLmNhcm91c2VsU3R5bGUsICdub25jZScsIHRoaXMuY29uZmlnPy5jc3AoKT8ubm9uY2UpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIHRoaXMuY2Fyb3VzZWxTdHlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaW5uZXJIVE1MID0gYFxuICAgICAgICAgICAgIyR7dGhpcy5pZH0gLnAtY2Fyb3VzZWwtaXRlbSB7XG5cdFx0XHRcdGZsZXg6IDEgMCAkezEwMCAvIHRoaXMubnVtVmlzaWJsZX0lXG5cdFx0XHR9XG4gICAgICAgIGA7XG5cbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMuc29ydCgoZGF0YTEsIGRhdGEyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUxID0gZGF0YTEuYnJlYWtwb2ludDtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTIgPSBkYXRhMi5icmVha3BvaW50O1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiAhPSBudWxsKSByZXN1bHQgPSAtMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2YWx1ZTEgIT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUyID09PSAnc3RyaW5nJykgcmVzdWx0ID0gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBlbHNlIHJlc3VsdCA9IHZhbHVlMSA8IHZhbHVlMiA/IC0xIDogdmFsdWUxID4gdmFsdWUyID8gMSA6IDA7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gLTEgKiByZXN1bHQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlc3BvbnNpdmVPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMucmVzcG9uc2l2ZU9wdGlvbnNbaV07XG5cbiAgICAgICAgICAgICAgICBpbm5lckhUTUwgKz0gYFxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke3Jlcy5icmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgIyR7dGhpcy5pZH0gLnAtY2Fyb3VzZWwtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSAwICR7MTAwIC8gcmVzLm51bVZpc2libGV9JVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2Fyb3VzZWxTdHlsZS5pbm5lckhUTUwgPSBpbm5lckhUTUw7XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNpdmVPcHRpb25zKSB7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlZFJlc3BvbnNpdmVEYXRhID0ge1xuICAgICAgICAgICAgICAgIG51bVZpc2libGU6IHRoaXMuZGVmYXVsdE51bVZpc2libGUsXG4gICAgICAgICAgICAgICAgbnVtU2Nyb2xsOiB0aGlzLmRlZmF1bHROdW1TY3JvbGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGxldCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yZXNwb25zaXZlT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5yZXNwb25zaXZlT3B0aW9uc1tpXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQocmVzLmJyZWFrcG9pbnQsIDEwKSA+PSB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZFJlc3BvbnNpdmVEYXRhID0gcmVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fbnVtU2Nyb2xsICE9PSBtYXRjaGVkUmVzcG9uc2l2ZURhdGEubnVtU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhZ2UgPSB0aGlzLl9wYWdlO1xuICAgICAgICAgICAgICAgIHBhZ2UgPSBNYXRoLmZsb29yKChwYWdlICogdGhpcy5fbnVtU2Nyb2xsKSAvIG1hdGNoZWRSZXNwb25zaXZlRGF0YS5udW1TY3JvbGwpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsU2hpZnRlZEl0ZW1zID0gbWF0Y2hlZFJlc3BvbnNpdmVEYXRhLm51bVNjcm9sbCAqIHRoaXMucGFnZSAqIC0xO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDaXJjdWxhcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zIC09IG1hdGNoZWRSZXNwb25zaXZlRGF0YS5udW1WaXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgPSB0b3RhbFNoaWZ0ZWRJdGVtcztcbiAgICAgICAgICAgICAgICB0aGlzLl9udW1TY3JvbGwgPSBtYXRjaGVkUmVzcG9uc2l2ZURhdGEubnVtU2Nyb2xsO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcGFnZSA9IHBhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBhZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fbnVtVmlzaWJsZSAhPT0gbWF0Y2hlZFJlc3BvbnNpdmVEYXRhLm51bVZpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9udW1WaXNpYmxlID0gbWF0Y2hlZFJlc3BvbnNpdmVEYXRhLm51bVZpc2libGU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDbG9uZUl0ZW1zKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRDbG9uZUl0ZW1zKCkge1xuICAgICAgICB0aGlzLmNsb25lZEl0ZW1zRm9yU3RhcnRpbmcgPSBbXTtcbiAgICAgICAgdGhpcy5jbG9uZWRJdGVtc0ZvckZpbmlzaGluZyA9IFtdO1xuICAgICAgICBpZiAodGhpcy5pc0NpcmN1bGFyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvbmVkSXRlbXNGb3JTdGFydGluZy5wdXNoKC4uLnRoaXMudmFsdWUuc2xpY2UoLTEgKiB0aGlzLl9udW1WaXNpYmxlKSk7XG4gICAgICAgICAgICB0aGlzLmNsb25lZEl0ZW1zRm9yRmluaXNoaW5nLnB1c2goLi4udGhpcy52YWx1ZS5zbGljZSgwLCB0aGlzLl9udW1WaXNpYmxlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaXJzdEluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0NpcmN1bGFyKCkgPyAtMSAqICh0aGlzLnRvdGFsU2hpZnRlZEl0ZW1zICsgdGhpcy5udW1WaXNpYmxlKSA6IHRoaXMudG90YWxTaGlmdGVkSXRlbXMgKiAtMTtcbiAgICB9XG5cbiAgICBsYXN0SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0SW5kZXgoKSArIHRoaXMubnVtVmlzaWJsZSAtIDE7XG4gICAgfVxuXG4gICAgdG90YWxEb3RzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZT8ubGVuZ3RoID8gTWF0aC5jZWlsKCh0aGlzLnZhbHVlLmxlbmd0aCAtIHRoaXMuX251bVZpc2libGUpIC8gdGhpcy5fbnVtU2Nyb2xsKSArIDEgOiAwO1xuICAgIH1cblxuICAgIHRvdGFsRG90c0FycmF5KCkge1xuICAgICAgICBjb25zdCB0b3RhbERvdHMgPSB0aGlzLnRvdGFsRG90cygpO1xuICAgICAgICByZXR1cm4gdG90YWxEb3RzIDw9IDAgPyBbXSA6IEFycmF5KHRvdGFsRG90cykuZmlsbCgwKTtcbiAgICB9XG5cbiAgICBpc1ZlcnRpY2FsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJztcbiAgICB9XG5cbiAgICBpc0NpcmN1bGFyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jaXJjdWxhciAmJiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID49IHRoaXMubnVtVmlzaWJsZTtcbiAgICB9XG5cbiAgICBpc0F1dG9wbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvcGxheUludGVydmFsICYmIHRoaXMuYWxsb3dBdXRvcGxheTtcbiAgICB9XG5cbiAgICBpc0ZvcndhcmROYXZEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFbXB0eSgpIHx8ICh0aGlzLl9wYWdlID49IHRoaXMudG90YWxEb3RzKCkgLSAxICYmICF0aGlzLmlzQ2lyY3VsYXIoKSk7XG4gICAgfVxuXG4gICAgaXNCYWNrd2FyZE5hdkRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0VtcHR5KCkgfHwgKHRoaXMuX3BhZ2UgPD0gMCAmJiAhdGhpcy5pc0NpcmN1bGFyKCkpO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBuYXZGb3J3YXJkKGU6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBpbmRleD86IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5pc0NpcmN1bGFyKCkgfHwgdGhpcy5fcGFnZSA8IHRoaXMudG90YWxEb3RzKCkgLSAxKSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXAoLTEsIGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5SW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEF1dG9wbGF5KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZSAmJiBlLmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdkJhY2t3YXJkKGU6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBpbmRleD86IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5pc0NpcmN1bGFyKCkgfHwgdGhpcy5fcGFnZSAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zdGVwKDEsIGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5SW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEF1dG9wbGF5KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZSAmJiBlLmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRG90Q2xpY2soZTogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBsZXQgcGFnZSA9IHRoaXMuX3BhZ2U7XG5cbiAgICAgICAgaWYgKHRoaXMuYXV0b3BsYXlJbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhpcy5zdG9wQXV0b3BsYXkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbmRleCA+IHBhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMubmF2Rm9yd2FyZChlLCBpbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPCBwYWdlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdkJhY2t3YXJkKGUsIGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW5kaWNhdG9yS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25SaWdodEtleSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25MZWZ0S2V5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJpZ2h0S2V5KCkge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JzID0gWy4uLkRvbUhhbmRsZXIuZmluZCh0aGlzLmluZGljYXRvckNvbnRlbnQubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpbmRpY2F0b3JcIl0nKV07XG4gICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5maW5kRm9jdXNlZEluZGljYXRvckluZGV4KCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VkRm9jdXNlZEluZGljYXRvcihhY3RpdmVJbmRleCwgYWN0aXZlSW5kZXggKyAxID09PSBpbmRpY2F0b3JzLmxlbmd0aCA/IGluZGljYXRvcnMubGVuZ3RoIC0gMSA6IGFjdGl2ZUluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgb25MZWZ0S2V5KCkge1xuICAgICAgICBjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuZmluZEZvY3VzZWRJbmRpY2F0b3JJbmRleCgpO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlZEZvY3VzZWRJbmRpY2F0b3IoYWN0aXZlSW5kZXgsIGFjdGl2ZUluZGV4IC0gMSA8PSAwID8gMCA6IGFjdGl2ZUluZGV4IC0gMSk7XG4gICAgfVxuICAgIG9uSG9tZUtleSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmZpbmRGb2N1c2VkSW5kaWNhdG9ySW5kZXgoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZWRGb2N1c2VkSW5kaWNhdG9yKGFjdGl2ZUluZGV4LCAwKTtcbiAgICB9XG5cbiAgICBvbkVuZEtleSgpIHtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9ycyA9IFsuLi5Eb21IYW5kbGVyLmZpbmQodGhpcy5pbmRpY2F0b3JDb250ZW50Lm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaW5kaWNhdG9yXCJdcicpXTtcbiAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmZpbmRGb2N1c2VkSW5kaWNhdG9ySW5kZXgoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZWRGb2N1c2VkSW5kaWNhdG9yKGFjdGl2ZUluZGV4LCBpbmRpY2F0b3JzLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIG9uVGFiS2V5KCkge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JzID0gWy4uLkRvbUhhbmRsZXIuZmluZCh0aGlzLmluZGljYXRvckNvbnRlbnQubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpbmRpY2F0b3JcIl0nKV07XG4gICAgICAgIGNvbnN0IGhpZ2hsaWdodGVkSW5kZXggPSBpbmRpY2F0b3JzLmZpbmRJbmRleCgoaW5kKSA9PiBEb21IYW5kbGVyLmdldEF0dHJpYnV0ZShpbmQsICdkYXRhLXAtaGlnaGxpZ2h0JykgPT09IHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUluZGljYXRvciA9IERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmluZGljYXRvckNvbnRlbnQubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpbmRpY2F0b3JcIl0gPiBidXR0b25bdGFiaW5kZXg9XCIwXCJdJyk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gaW5kaWNhdG9ycy5maW5kSW5kZXgoKGluZCkgPT4gaW5kID09PSBhY3RpdmVJbmRpY2F0b3IucGFyZW50RWxlbWVudCk7XG5cbiAgICAgICAgaW5kaWNhdG9yc1thY3RpdmVJbmRleF0uY2hpbGRyZW5bMF0udGFiSW5kZXggPSAnLTEnO1xuICAgICAgICBpbmRpY2F0b3JzW2hpZ2hsaWdodGVkSW5kZXhdLmNoaWxkcmVuWzBdLnRhYkluZGV4ID0gJzAnO1xuICAgIH1cblxuICAgIGZpbmRGb2N1c2VkSW5kaWNhdG9ySW5kZXgoKSB7XG4gICAgICAgIGNvbnN0IGluZGljYXRvcnMgPSBbLi4uRG9tSGFuZGxlci5maW5kKHRoaXMuaW5kaWNhdG9yQ29udGVudC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImluZGljYXRvclwiXScpXTtcbiAgICAgICAgY29uc3QgYWN0aXZlSW5kaWNhdG9yID0gRG9tSGFuZGxlci5maW5kU2luZ2xlKHRoaXMuaW5kaWNhdG9yQ29udGVudC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImluZGljYXRvclwiXSA+IGJ1dHRvblt0YWJpbmRleD1cIjBcIl0nKTtcblxuICAgICAgICByZXR1cm4gaW5kaWNhdG9ycy5maW5kSW5kZXgoKGluZCkgPT4gaW5kID09PSBhY3RpdmVJbmRpY2F0b3IucGFyZW50RWxlbWVudCk7XG4gICAgfVxuXG4gICAgY2hhbmdlZEZvY3VzZWRJbmRpY2F0b3IocHJldkluZCwgbmV4dEluZCkge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JzID0gWy4uLkRvbUhhbmRsZXIuZmluZCh0aGlzLmluZGljYXRvckNvbnRlbnQubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpbmRpY2F0b3JcIl0nKV07XG5cbiAgICAgICAgaW5kaWNhdG9yc1twcmV2SW5kXS5jaGlsZHJlblswXS50YWJJbmRleCA9ICctMSc7XG4gICAgICAgIGluZGljYXRvcnNbbmV4dEluZF0uY2hpbGRyZW5bMF0udGFiSW5kZXggPSAnMCc7XG4gICAgICAgIGluZGljYXRvcnNbbmV4dEluZF0uY2hpbGRyZW5bMF0uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBzdGVwKGRpcjogbnVtYmVyLCBwYWdlPzogbnVtYmVyKSB7XG4gICAgICAgIGxldCB0b3RhbFNoaWZ0ZWRJdGVtcyA9IHRoaXMudG90YWxTaGlmdGVkSXRlbXM7XG4gICAgICAgIGNvbnN0IGlzQ2lyY3VsYXIgPSB0aGlzLmlzQ2lyY3VsYXIoKTtcblxuICAgICAgICBpZiAocGFnZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0b3RhbFNoaWZ0ZWRJdGVtcyA9IHRoaXMuX251bVNjcm9sbCAqIHBhZ2UgKiAtMTtcblxuICAgICAgICAgICAgaWYgKGlzQ2lyY3VsYXIpIHtcbiAgICAgICAgICAgICAgICB0b3RhbFNoaWZ0ZWRJdGVtcyAtPSB0aGlzLl9udW1WaXNpYmxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlzUmVtYWluaW5nSXRlbXNBZGRlZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgKz0gdGhpcy5fbnVtU2Nyb2xsICogZGlyO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZW1haW5pbmdJdGVtc0FkZGVkKSB7XG4gICAgICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgKz0gdGhpcy5yZW1haW5pbmdJdGVtcyAtIHRoaXMuX251bVNjcm9sbCAqIGRpcjtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVtYWluaW5nSXRlbXNBZGRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgb3JpZ2luYWxTaGlmdGVkSXRlbXMgPSBpc0NpcmN1bGFyID8gdG90YWxTaGlmdGVkSXRlbXMgKyB0aGlzLl9udW1WaXNpYmxlIDogdG90YWxTaGlmdGVkSXRlbXM7XG4gICAgICAgICAgICBwYWdlID0gTWF0aC5hYnMoTWF0aC5mbG9vcihvcmlnaW5hbFNoaWZ0ZWRJdGVtcyAvIHRoaXMuX251bVNjcm9sbCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQ2lyY3VsYXIgJiYgdGhpcy5wYWdlID09PSB0aGlzLnRvdGFsRG90cygpIC0gMSAmJiBkaXIgPT09IC0xKSB7XG4gICAgICAgICAgICB0b3RhbFNoaWZ0ZWRJdGVtcyA9IC0xICogKHRoaXMudmFsdWUubGVuZ3RoICsgdGhpcy5fbnVtVmlzaWJsZSk7XG4gICAgICAgICAgICBwYWdlID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0NpcmN1bGFyICYmIHRoaXMucGFnZSA9PT0gMCAmJiBkaXIgPT09IDEpIHtcbiAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zID0gMDtcbiAgICAgICAgICAgIHBhZ2UgPSB0aGlzLnRvdGFsRG90cygpIC0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChwYWdlID09PSB0aGlzLnRvdGFsRG90cygpIC0gMSAmJiB0aGlzLnJlbWFpbmluZ0l0ZW1zID4gMCkge1xuICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgKz0gdGhpcy5yZW1haW5pbmdJdGVtcyAqIC0xIC0gdGhpcy5fbnVtU2Nyb2xsICogZGlyO1xuICAgICAgICAgICAgdGhpcy5pc1JlbWFpbmluZ0l0ZW1zQWRkZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXRlbXNDb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSB0aGlzLmlzVmVydGljYWwoKSA/IGB0cmFuc2xhdGUzZCgwLCAke3RvdGFsU2hpZnRlZEl0ZW1zICogKDEwMCAvIHRoaXMuX251bVZpc2libGUpfSUsIDApYCA6IGB0cmFuc2xhdGUzZCgke3RvdGFsU2hpZnRlZEl0ZW1zICogKDEwMCAvIHRoaXMuX251bVZpc2libGUpfSUsIDAsIDApYDtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSA1MDBtcyBlYXNlIDBzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgPSB0b3RhbFNoaWZ0ZWRJdGVtcztcbiAgICAgICAgdGhpcy5fcGFnZSA9IHBhZ2U7XG4gICAgICAgIHRoaXMub25QYWdlLmVtaXQoe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHN0YXJ0QXV0b3BsYXkoKSB7XG4gICAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50b3RhbERvdHMoKSA+IDApIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdlID09PSB0aGlzLnRvdGFsRG90cygpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXAoLTEsIDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcCgtMSwgdGhpcy5wYWdlICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0aGlzLmF1dG9wbGF5SW50ZXJ2YWwpO1xuICAgICAgICB0aGlzLmFsbG93QXV0b3BsYXkgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHN0b3BBdXRvcGxheShjaGFuZ2VBbGxvdzogYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGNoYW5nZUFsbG93KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGxvd0F1dG9wbGF5ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBpc1BsYXlpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaW50ZXJ2YWw7XG4gICAgfVxuXG4gICAgb25UcmFuc2l0aW9uRW5kKCkge1xuICAgICAgICBpZiAodGhpcy5pdGVtc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAnJztcblxuICAgICAgICAgICAgaWYgKCh0aGlzLnBhZ2UgPT09IDAgfHwgdGhpcy5wYWdlID09PSB0aGlzLnRvdGFsRG90cygpIC0gMSkgJiYgdGhpcy5pc0NpcmN1bGFyKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gdGhpcy5pc1ZlcnRpY2FsKCkgPyBgdHJhbnNsYXRlM2QoMCwgJHt0aGlzLnRvdGFsU2hpZnRlZEl0ZW1zICogKDEwMCAvIHRoaXMuX251bVZpc2libGUpfSUsIDApYCA6IGB0cmFuc2xhdGUzZCgke3RoaXMudG90YWxTaGlmdGVkSXRlbXMgKiAoMTAwIC8gdGhpcy5fbnVtVmlzaWJsZSl9JSwgMCwgMClgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub3VjaFN0YXJ0KGU6IFRvdWNoRXZlbnQpIHtcbiAgICAgICAgbGV0IHRvdWNob2JqID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcblxuICAgICAgICB0aGlzLnN0YXJ0UG9zID0ge1xuICAgICAgICAgICAgeDogdG91Y2hvYmoucGFnZVgsXG4gICAgICAgICAgICB5OiB0b3VjaG9iai5wYWdlWVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9uVG91Y2hNb3ZlKGU6IFRvdWNoRXZlbnQgfCBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChlLmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblRvdWNoRW5kKGU6IFRvdWNoRXZlbnQpIHtcbiAgICAgICAgbGV0IHRvdWNob2JqID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcblxuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZU9uVG91Y2goZSwgdG91Y2hvYmoucGFnZVkgLSB0aGlzLnN0YXJ0UG9zLnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQYWdlT25Ub3VjaChlLCB0b3VjaG9iai5wYWdlWCAtIHRoaXMuc3RhcnRQb3MueCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VQYWdlT25Ub3VjaChlOiBUb3VjaEV2ZW50IHwgTW91c2VFdmVudCwgZGlmZjogbnVtYmVyKSB7XG4gICAgICAgIGlmIChNYXRoLmFicyhkaWZmKSA+IHRoaXMuc3dpcGVUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgIGlmIChkaWZmIDwgMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF2Rm9yd2FyZChlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZCYWNrd2FyZChlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFyaWFQcmV2QnV0dG9uTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5wcmV2UGFnZUxhYmVsIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGFyaWFTbGlkZUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEuc2xpZGUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYXJpYU5leHRCdXR0b25MYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLm5leHRQYWdlTGFiZWwgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgYXJpYVNsaWRlTnVtYmVyKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5zbGlkZU51bWJlci5yZXBsYWNlKC97c2xpZGVOdW1iZXJ9L2csIHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhcmlhUGFnZUxhYmVsKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5wYWdlTGFiZWwucmVwbGFjZSgve3BhZ2V9L2csIHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBiaW5kRG9jdW1lbnRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMud2luZG93LCAncmVzaXplJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZERvY3VtZW50TGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudW5iaW5kRG9jdW1lbnRMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hdXRvcGxheUludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BBdXRvcGxheSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZSwgUmlwcGxlTW9kdWxlLCBDaGV2cm9uUmlnaHRJY29uLCBDaGV2cm9uTGVmdEljb24sIENoZXZyb25Eb3duSWNvbiwgQ2hldnJvblVwSWNvbl0sXG4gICAgZXhwb3J0czogW0NvbW1vbk1vZHVsZSwgQ2Fyb3VzZWwsIFNoYXJlZE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbQ2Fyb3VzZWxdXG59KVxuZXhwb3J0IGNsYXNzIENhcm91c2VsTW9kdWxlIHt9XG4iXX0=