@acorex/components 18.5.16 → 18.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. package/action-sheet/lib/action-sheet.component.d.ts +26 -0
  2. package/alert/lib/alert.component.d.ts +50 -2
  3. package/audio-wave/lib/audio-wave.component.d.ts +53 -0
  4. package/avatar/lib/avatar.component.d.ts +20 -1
  5. package/badge/lib/badge.component.d.ts +8 -0
  6. package/bottom-navigation/lib/bottom-navigation.component.d.ts +16 -0
  7. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +11 -0
  8. package/breadcrumbs/lib/breadcrumbs.component.d.ts +11 -0
  9. package/button/lib/button-item-list.component.d.ts +34 -0
  10. package/button/lib/button-item.component.d.ts +47 -0
  11. package/button/lib/button.component.d.ts +36 -0
  12. package/button-group/lib/button-group.component.d.ts +56 -0
  13. package/calendar/lib/calendar-range.component.d.ts +48 -0
  14. package/calendar/lib/calendar.component.d.ts +114 -0
  15. package/check-box/lib/check-box.component.d.ts +36 -0
  16. package/chips/lib/chips.component.d.ts +13 -0
  17. package/circular-progress/lib/circular-progress.component.d.ts +51 -21
  18. package/collapse/lib/collapse-group.component.d.ts +38 -0
  19. package/collapse/lib/collapse.component.d.ts +55 -0
  20. package/color-box/lib/color-box.component.d.ts +28 -1
  21. package/color-palette/lib/color-palette-input.component.d.ts +35 -0
  22. package/color-palette/lib/color-palette-picker.component.d.ts +53 -0
  23. package/color-palette/lib/color-palette-preview.component.d.ts +17 -0
  24. package/color-palette/lib/color-palette-swatches.component.d.ts +30 -0
  25. package/color-palette/lib/color-palette.component.d.ts +8 -0
  26. package/comment/lib/comment-container/comment-container.component.d.ts +5 -0
  27. package/comment/lib/comment-item/comment-item.component.d.ts +16 -2
  28. package/comment/lib/comment-like/comment-like.component.d.ts +8 -0
  29. package/comment/lib/comment-reply/comment-reply.component.d.ts +4 -0
  30. package/comment/lib/comment-view/comment-view.component.d.ts +4 -0
  31. package/common/lib/components/base-component.class.d.ts +8 -0
  32. package/common/lib/components/button-base-component.class.d.ts +21 -0
  33. package/common/lib/components/interactive-component.class.d.ts +15 -0
  34. package/conversation/lib/conversation-container/conversation-container.component.d.ts +4 -0
  35. package/conversation/lib/conversation-input/conversation-input.component.d.ts +79 -2
  36. package/conversation/lib/conversation-message/conversation-message.component.d.ts +41 -0
  37. package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +62 -0
  38. package/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.d.ts +34 -0
  39. package/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.d.ts +21 -0
  40. package/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.d.ts +11 -0
  41. package/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.d.ts +29 -0
  42. package/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.d.ts +11 -0
  43. package/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.d.ts +72 -0
  44. package/conversation/lib/conversation-view/conversation-view.component.d.ts +22 -0
  45. package/data-pager/lib/data-pager-base.component.d.ts +9 -0
  46. package/data-pager/lib/data-pager-info.component.d.ts +14 -0
  47. package/data-pager/lib/data-pager-input-selector.component.d.ts +17 -0
  48. package/data-pager/lib/data-pager-next-buttons.components.d.ts +20 -0
  49. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +14 -0
  50. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +28 -0
  51. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +20 -0
  52. package/data-pager/lib/data-pager.component.d.ts +111 -0
  53. package/data-table/lib/columns/data-text-column.component.d.ts +58 -0
  54. package/data-table/lib/columns/row-command-column.component.d.ts +83 -0
  55. package/data-table/lib/columns/row-index-column.component.d.ts +51 -0
  56. package/data-table/lib/columns/row-select-column.component.d.ts +47 -0
  57. package/data-table/lib/data-table/data-table.component.d.ts +200 -0
  58. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +185 -0
  59. package/datetime-box/lib/datetime-box.component.d.ts +59 -1
  60. package/datetime-input/lib/datetime-input.component.d.ts +133 -0
  61. package/datetime-picker/lib/datetime-picker.component.d.ts +95 -0
  62. package/decorators/lib/components/clear-button.component.d.ts +25 -0
  63. package/decorators/lib/components/close-button.component.d.ts +22 -0
  64. package/decorators/lib/components/generic-content.component.d.ts +4 -0
  65. package/decorators/lib/components/icon.component.d.ts +12 -0
  66. package/dialog/lib/dialog.component.d.ts +20 -0
  67. package/drawer/lib/drawer-container.component.d.ts +7 -0
  68. package/drawer/lib/drawer.component.d.ts +104 -0
  69. package/dropdown/lib/dropdown-box.component.d.ts +66 -0
  70. package/dropdown/lib/dropdown-panel.component.d.ts +85 -0
  71. package/dropdown-button/lib/dropdown-button.component.d.ts +38 -0
  72. package/esm2022/action-sheet/lib/action-sheet.component.mjs +21 -1
  73. package/esm2022/alert/lib/alert.component.mjs +48 -3
  74. package/esm2022/audio-wave/lib/audio-wave.component.mjs +48 -1
  75. package/esm2022/avatar/lib/avatar.component.mjs +21 -2
  76. package/esm2022/badge/lib/badge.component.mjs +9 -1
  77. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +14 -1
  78. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +9 -1
  79. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +6 -1
  80. package/esm2022/button/lib/button-item-list.component.mjs +35 -1
  81. package/esm2022/button/lib/button-item.component.mjs +36 -1
  82. package/esm2022/button/lib/button.component.mjs +37 -1
  83. package/esm2022/button-group/lib/button-group.component.mjs +51 -1
  84. package/esm2022/calendar/lib/calendar-range.component.mjs +46 -1
  85. package/esm2022/calendar/lib/calendar.component.mjs +112 -1
  86. package/esm2022/check-box/lib/check-box.component.mjs +34 -1
  87. package/esm2022/chips/lib/chips.component.mjs +14 -1
  88. package/esm2022/circular-progress/lib/circular-progress.component.mjs +73 -74
  89. package/esm2022/collapse/lib/collapse-group.component.mjs +39 -1
  90. package/esm2022/collapse/lib/collapse.component.mjs +53 -1
  91. package/esm2022/color-box/lib/color-box.component.mjs +23 -2
  92. package/esm2022/color-palette/lib/color-palette-input.component.mjs +36 -1
  93. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +54 -1
  94. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +18 -1
  95. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +28 -1
  96. package/esm2022/color-palette/lib/color-palette.component.mjs +9 -1
  97. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +6 -1
  98. package/esm2022/comment/lib/comment-item/comment-item.component.mjs +15 -1
  99. package/esm2022/comment/lib/comment-like/comment-like.component.mjs +9 -1
  100. package/esm2022/comment/lib/comment-reply/comment-reply.component.mjs +5 -1
  101. package/esm2022/comment/lib/comment-view/comment-view.component.mjs +5 -1
  102. package/esm2022/common/lib/components/base-component.class.mjs +9 -1
  103. package/esm2022/common/lib/components/button-base-component.class.mjs +22 -1
  104. package/esm2022/common/lib/components/interactive-component.class.mjs +16 -1
  105. package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +5 -1
  106. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +75 -1
  107. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +39 -1
  108. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +63 -1
  109. package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +35 -1
  110. package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +22 -1
  111. package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +9 -1
  112. package/esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.mjs +30 -1
  113. package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +12 -1
  114. package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +70 -1
  115. package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +23 -1
  116. package/esm2022/data-pager/lib/data-pager-base.component.mjs +7 -1
  117. package/esm2022/data-pager/lib/data-pager-info.component.mjs +9 -1
  118. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +18 -1
  119. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +18 -1
  120. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +15 -1
  121. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +23 -1
  122. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +18 -1
  123. package/esm2022/data-pager/lib/data-pager.component.mjs +109 -1
  124. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +32 -1
  125. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +63 -1
  126. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +40 -1
  127. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +39 -1
  128. package/esm2022/data-table/lib/data-table/data-table.component.mjs +183 -1
  129. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +159 -1
  130. package/esm2022/datetime-box/lib/datetime-box.component.mjs +51 -2
  131. package/esm2022/datetime-input/lib/datetime-input.component.mjs +122 -1
  132. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +90 -1
  133. package/esm2022/decorators/lib/components/clear-button.component.mjs +26 -1
  134. package/esm2022/decorators/lib/components/close-button.component.mjs +23 -1
  135. package/esm2022/decorators/lib/components/generic-content.component.mjs +5 -1
  136. package/esm2022/decorators/lib/components/icon.component.mjs +13 -1
  137. package/esm2022/dialog/lib/dialog.component.mjs +18 -1
  138. package/esm2022/drawer/lib/drawer-container.component.mjs +8 -1
  139. package/esm2022/drawer/lib/drawer.component.mjs +102 -1
  140. package/esm2022/dropdown/lib/dropdown-box.component.mjs +58 -1
  141. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +77 -1
  142. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +36 -1
  143. package/esm2022/form/lib/form-field.component.mjs +40 -1
  144. package/esm2022/form/lib/form.component.mjs +59 -1
  145. package/esm2022/form/lib/validation-summary.component.mjs +41 -1
  146. package/esm2022/image/lib/image.component.mjs +47 -1
  147. package/esm2022/label/lib/label.component.mjs +32 -1
  148. package/esm2022/list/lib/list.component.mjs +84 -1
  149. package/esm2022/loading/lib/loading-spinner.component.mjs +17 -1
  150. package/esm2022/loading/lib/loading.component.mjs +27 -1
  151. package/esm2022/popup/lib/popup.component.mjs +2 -2
  152. package/esm2022/progress-bar/lib/progress-bar.component.mjs +1 -1
  153. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +20 -1
  154. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +5 -1
  155. package/esm2022/scheduler/lib/scheduler.component.mjs +10 -1
  156. package/esm2022/search-box/lib/search-box.component.mjs +19 -2
  157. package/esm2022/select-box/lib/select-box.component.mjs +50 -2
  158. package/esm2022/selection-list/lib/selection-list.component.mjs +51 -1
  159. package/esm2022/side-menu/lib/side-menu.component.mjs +5 -1
  160. package/esm2022/skeleton/lib/skeleton.component.mjs +11 -1
  161. package/esm2022/slider/lib/slider.component.mjs +52 -2
  162. package/esm2022/step-wizard/lib/step-wizard.component.mjs +23 -1
  163. package/esm2022/switch/lib/switch-content.component.mjs +5 -1
  164. package/esm2022/switch/lib/switch.component.mjs +11 -1
  165. package/esm2022/tabs/lib/tab-item.component.mjs +24 -1
  166. package/esm2022/tabs/lib/tabs.component.mjs +36 -1
  167. package/esm2022/tag/lib/tag.component.mjs +2 -1
  168. package/esm2022/text-area/lib/text-area.component.mjs +8 -1
  169. package/esm2022/text-box/lib/text-box.component.mjs +13 -1
  170. package/esm2022/toast/lib/toast.component.mjs +6 -1
  171. package/esm2022/tooltip/lib/tooltip.component.mjs +5 -1
  172. package/esm2022/uploader/index.mjs +5 -5
  173. package/esm2022/uploader/lib/{uploader-dialog-container.component.mjs → uploader-dialog-container/uploader-dialog-container.component.mjs} +17 -2
  174. package/esm2022/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.mjs +27 -0
  175. package/esm2022/uploader/lib/uploader-list/uploader-list.component.mjs +26 -0
  176. package/esm2022/uploader/lib/uploader-zone.directive.mjs +23 -16
  177. package/esm2022/uploader/lib/uploader.models.mjs +19 -1
  178. package/esm2022/uploader/lib/uploader.module.mjs +18 -13
  179. package/esm2022/uploader/lib/uploader.service.mjs +14 -7
  180. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +66 -9
  181. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +105 -43
  182. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +9 -1
  183. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +4 -1
  184. package/fesm2022/acorex-components-action-sheet.mjs +20 -0
  185. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  186. package/fesm2022/acorex-components-alert.mjs +47 -2
  187. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  188. package/fesm2022/acorex-components-audio-wave.mjs +47 -0
  189. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  190. package/fesm2022/acorex-components-avatar.mjs +20 -1
  191. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  192. package/fesm2022/acorex-components-badge.mjs +8 -0
  193. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  194. package/fesm2022/acorex-components-bottom-navigation.mjs +13 -0
  195. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  196. package/fesm2022/acorex-components-breadcrumbs.mjs +13 -0
  197. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  198. package/fesm2022/acorex-components-button-group.mjs +50 -0
  199. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  200. package/fesm2022/acorex-components-button.mjs +105 -0
  201. package/fesm2022/acorex-components-button.mjs.map +1 -1
  202. package/fesm2022/acorex-components-calendar.mjs +156 -0
  203. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  204. package/fesm2022/acorex-components-check-box.mjs +33 -0
  205. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  206. package/fesm2022/acorex-components-chips.mjs +13 -0
  207. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  208. package/fesm2022/acorex-components-circular-progress.mjs +72 -73
  209. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  210. package/fesm2022/acorex-components-collapse.mjs +90 -0
  211. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  212. package/fesm2022/acorex-components-color-box.mjs +22 -1
  213. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  214. package/fesm2022/acorex-components-color-palette.mjs +140 -0
  215. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  216. package/fesm2022/acorex-components-comment.mjs +35 -0
  217. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  218. package/fesm2022/acorex-components-common.mjs +44 -0
  219. package/fesm2022/acorex-components-common.mjs.map +1 -1
  220. package/fesm2022/acorex-components-conversation.mjs +372 -0
  221. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  222. package/fesm2022/acorex-components-data-pager.mjs +209 -0
  223. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  224. package/fesm2022/acorex-components-data-table.mjs +510 -0
  225. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  226. package/fesm2022/acorex-components-datetime-box.mjs +50 -1
  227. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  228. package/fesm2022/acorex-components-datetime-input.mjs +121 -0
  229. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  230. package/fesm2022/acorex-components-datetime-picker.mjs +89 -0
  231. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  232. package/fesm2022/acorex-components-decorators.mjs +63 -0
  233. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  234. package/fesm2022/acorex-components-dialog.mjs +17 -0
  235. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  236. package/fesm2022/acorex-components-drawer.mjs +108 -0
  237. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  238. package/fesm2022/acorex-components-dropdown-button.mjs +35 -0
  239. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  240. package/fesm2022/acorex-components-dropdown.mjs +133 -0
  241. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  242. package/fesm2022/acorex-components-form.mjs +137 -0
  243. package/fesm2022/acorex-components-form.mjs.map +1 -1
  244. package/fesm2022/acorex-components-image.mjs +46 -0
  245. package/fesm2022/acorex-components-image.mjs.map +1 -1
  246. package/fesm2022/acorex-components-label.mjs +31 -0
  247. package/fesm2022/acorex-components-label.mjs.map +1 -1
  248. package/fesm2022/acorex-components-list.mjs +83 -0
  249. package/fesm2022/acorex-components-list.mjs.map +1 -1
  250. package/fesm2022/acorex-components-loading.mjs +42 -0
  251. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  252. package/fesm2022/acorex-components-popup.mjs +1 -1
  253. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  254. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  255. package/fesm2022/acorex-components-scheduler.mjs +32 -0
  256. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  257. package/fesm2022/acorex-components-search-box.mjs +18 -1
  258. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  259. package/fesm2022/acorex-components-select-box.mjs +49 -1
  260. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  261. package/fesm2022/acorex-components-selection-list.mjs +50 -0
  262. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  263. package/fesm2022/acorex-components-side-menu.mjs +4 -0
  264. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  265. package/fesm2022/acorex-components-skeleton.mjs +10 -0
  266. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  267. package/fesm2022/acorex-components-slider.mjs +51 -1
  268. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  269. package/fesm2022/acorex-components-step-wizard.mjs +22 -0
  270. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  271. package/fesm2022/acorex-components-switch.mjs +14 -0
  272. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  273. package/fesm2022/acorex-components-tabs.mjs +58 -0
  274. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  275. package/fesm2022/acorex-components-tag.mjs +1 -0
  276. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  277. package/fesm2022/acorex-components-text-area.mjs +7 -0
  278. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  279. package/fesm2022/acorex-components-text-box.mjs +12 -0
  280. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  281. package/fesm2022/acorex-components-toast.mjs +5 -0
  282. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  283. package/fesm2022/acorex-components-tooltip.mjs +4 -0
  284. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  285. package/fesm2022/acorex-components-uploader.mjs +100 -32
  286. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  287. package/fesm2022/acorex-components-wysiwyg.mjs +179 -50
  288. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  289. package/form/lib/form-field.component.d.ts +45 -0
  290. package/form/lib/form.component.d.ts +58 -0
  291. package/form/lib/validation-summary.component.d.ts +49 -0
  292. package/image/lib/image.component.d.ts +61 -0
  293. package/label/lib/label.component.d.ts +34 -0
  294. package/list/lib/list.component.d.ts +98 -0
  295. package/loading/lib/loading-spinner.component.d.ts +20 -0
  296. package/loading/lib/loading.component.d.ts +35 -0
  297. package/package.json +58 -58
  298. package/progress-bar/lib/progress-bar.component.d.ts +0 -1
  299. package/scheduler/lib/scheduler-month-view.component.d.ts +20 -0
  300. package/scheduler/lib/scheduler-week-view.component.d.ts +4 -0
  301. package/scheduler/lib/scheduler.component.d.ts +10 -0
  302. package/search-box/lib/search-box.component.d.ts +19 -1
  303. package/select-box/lib/select-box.component.d.ts +78 -1
  304. package/selection-list/lib/selection-list.component.d.ts +55 -0
  305. package/side-menu/lib/side-menu.component.d.ts +4 -0
  306. package/skeleton/lib/skeleton.component.d.ts +10 -0
  307. package/slider/lib/slider.component.d.ts +51 -1
  308. package/step-wizard/lib/step-wizard.component.d.ts +23 -0
  309. package/switch/lib/switch-content.component.d.ts +4 -0
  310. package/switch/lib/switch.component.d.ts +14 -0
  311. package/tabs/lib/tab-item.component.d.ts +32 -0
  312. package/tabs/lib/tabs.component.d.ts +42 -0
  313. package/tag/lib/tag.component.d.ts +4 -0
  314. package/text-area/lib/text-area.component.d.ts +13 -0
  315. package/text-box/lib/text-box.component.d.ts +27 -0
  316. package/toast/lib/toast.component.d.ts +6 -0
  317. package/tooltip/lib/tooltip.component.d.ts +13 -0
  318. package/uploader/index.d.ts +4 -4
  319. package/uploader/lib/{uploader-dialog-container.component.d.ts → uploader-dialog-container/uploader-dialog-container.component.d.ts} +15 -0
  320. package/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.d.ts +12 -0
  321. package/uploader/lib/{uploader-list.component.d.ts → uploader-list/uploader-list.component.d.ts} +6 -1
  322. package/uploader/lib/uploader-zone.directive.d.ts +1 -0
  323. package/uploader/lib/uploader.models.d.ts +9 -0
  324. package/uploader/lib/uploader.module.d.ts +4 -4
  325. package/uploader/lib/uploader.service.d.ts +2 -1
  326. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +35 -6
  327. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +61 -21
  328. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +4 -0
  329. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +3 -0
  330. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +0 -14
  331. package/esm2022/uploader/lib/uploader-list.component.mjs +0 -21
  332. package/uploader/lib/uploader-drop-zone.component.d.ts +0 -6
@@ -17,31 +17,52 @@ import * as i6 from "@acorex/components/list";
17
17
  import * as i7 from "@acorex/core/translation";
18
18
  /**
19
19
  * The Button is a component which detects user interaction and triggers a corresponding event
20
- *
21
20
  * @category Components
22
21
  */
23
22
  export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent) {
24
23
  constructor() {
25
24
  super(...arguments);
25
+ /** @ignore */
26
26
  this.hotKeyService = inject(AXHotkeysService);
27
+ /** @ignore */
27
28
  this.isLoading = signal(false);
29
+ /** @ignore */
28
30
  this.renderList = false;
31
+ /** @ignore */
29
32
  this.dropdownSizes = {
30
33
  width: '100%',
31
34
  height: 'auto',
32
35
  };
36
+ /** @ignore */
33
37
  this._listDataSource = convertArrayToDataSource([], {
34
38
  key: this.valueField,
35
39
  pageSize: 10,
36
40
  });
41
+ /**
42
+ * The width of the dropdown in pixels.
43
+ * @defaultValue 260
44
+ */
37
45
  this.dropdownWidth = 260;
46
+ /** @ignore */
38
47
  this.autoHeight = false;
48
+ /**
49
+ * Service for managing selection data, injected via `AX_SELECTION_DATA_TOKEN`.
50
+ */
39
51
  this.selectionService = inject(AX_SELECTION_DATA_TOKEN);
52
+ /** @ignore */
40
53
  this._unsubscriber = inject(AXUnsubscriber);
41
54
  }
55
+ /**
56
+ * Gets the data source for the component, which can be either an `AXDataSource` or an array of items.
57
+ * @returns {AXDataSource<any> | any[]}
58
+ */
42
59
  get dataSource() {
43
60
  return this._dataSource;
44
61
  }
62
+ /**
63
+ * Sets the data source, either as an `AXDataSource` or an array.
64
+ * @param {AXDataSource<any> | any[]} v
65
+ */
45
66
  set dataSource(v) {
46
67
  this._dataSource = v;
47
68
  if (Array.isArray(v)) {
@@ -62,17 +83,24 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
62
83
  this.isLoading.set(loading);
63
84
  });
64
85
  }
86
+ /** @ignore */
65
87
  ngOnInit() {
66
88
  super.ngOnInit();
67
89
  //
68
90
  this.registerValidation();
69
91
  }
92
+ /** @ignore */
70
93
  ngAfterViewInit() {
71
94
  this.setDropdownSize();
72
95
  }
96
+ /** @ignore */
73
97
  ngOnDestroy() {
74
98
  this.searchBox?.onKeyDown.unsubscribe();
75
99
  }
100
+ /**
101
+ * Retrieves an item by its key.
102
+ * @param {any} key
103
+ */
76
104
  getItemByKey(key) {
77
105
  const startTime = Date.now();
78
106
  const check = async () => {
@@ -88,6 +116,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
88
116
  };
89
117
  return check();
90
118
  }
119
+ /** @ignore */
91
120
  _handleOnOpenedEvent(e) {
92
121
  this.renderList = true;
93
122
  this.list?.render();
@@ -98,6 +127,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
98
127
  isUserInteraction: e.isUserInteraction,
99
128
  });
100
129
  }
130
+ /** @ignore */
101
131
  _handleOnClosedEvent(e) {
102
132
  //this.input.focus();
103
133
  this.onClosed.emit({
@@ -106,6 +136,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
106
136
  });
107
137
  this._unsubscriber.unsubscribe();
108
138
  }
139
+ /** @ignore */
109
140
  _handleFocus() {
110
141
  setTimeout(() => {
111
142
  if (this.searchBox) {
@@ -129,20 +160,26 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
129
160
  }
130
161
  });
131
162
  }
163
+ /** @ignore */
132
164
  _handleBadgeRemove(e, item) {
133
165
  this.unselectItems(item);
134
166
  e.stopPropagation();
135
167
  }
168
+ /** @ignore */
136
169
  _handleValueChanged(e) {
137
170
  if (e.isUserInteraction) {
138
171
  this.commitValue(e.component.selectedItems, true);
139
172
  }
140
173
  }
174
+ /** @ignore */
141
175
  _handleOnItemClick(e) {
142
176
  if (!this.multiple) {
143
177
  this.close();
144
178
  }
145
179
  }
180
+ /**
181
+ * Handles changes to the internal value. Closes the component if not in multiple mode, and adjusts height after a short delay.
182
+ */
146
183
  internalValueChanged() {
147
184
  if (!this.multiple)
148
185
  this.close();
@@ -150,6 +187,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
150
187
  this.detectAutoHeight();
151
188
  }, 100);
152
189
  }
190
+ /** @ignore */
153
191
  detectAutoHeight() {
154
192
  const containerWidth = this.getHostElement().querySelector('.ax-select-box-selection').clientWidth;
155
193
  const itemsWidth = Array.from(this.getHostElement().querySelectorAll('.ax-selected-token')).reduce((a, i) => a + i.clientWidth, 0);
@@ -157,6 +195,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
157
195
  this.dropdown.updatePosition();
158
196
  this.cdr.markForCheck();
159
197
  }
198
+ /** @ignore */
160
199
  setDropdownSize(count = 0) {
161
200
  if (this.dropdown.isActionsheetStyle) {
162
201
  this.dropdownSizes = {
@@ -176,6 +215,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
176
215
  this.dropdown.updatePosition();
177
216
  });
178
217
  }
218
+ /** @ignore */
179
219
  _handleKeydown(e) {
180
220
  if (e.code === 'ArrowDown' || e.code === 'ArrowUp') {
181
221
  this.selectItemByNav(e.code === 'ArrowDown' ? 1 : -1);
@@ -197,6 +237,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
197
237
  // e.stopPropagation()
198
238
  // }
199
239
  }
240
+ /** @ignore */
200
241
  selectItemByNav(sign) {
201
242
  if (Array.isArray(this.dataSource) && !this.multiple) {
202
243
  const items = this.normalizeItemsList(this.dataSource);
@@ -217,6 +258,10 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
217
258
  this.open();
218
259
  }
219
260
  }
261
+ /**
262
+ * Filters the data source based on the provided search term.
263
+ * @param {string} term
264
+ */
220
265
  search(term) {
221
266
  if (term) {
222
267
  this._listDataSource.filter({
@@ -230,6 +275,9 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
230
275
  }
231
276
  this._listDataSource.refresh();
232
277
  }
278
+ /**
279
+ * Refreshes the component by resetting state, clearing selection cache, refreshing the list, and closing the component.
280
+ */
233
281
  refresh() {
234
282
  this.reset(false);
235
283
  this.clearSelectionCache();
@@ -335,4 +383,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
335
383
  type: HostListener,
336
384
  args: ['keydown', ['$event']]
337
385
  }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFHWCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7Ozs7QUFHbkM7Ozs7R0FJRztBQXdESCxNQUFNLE9BQU8sb0JBQ1gsU0FBUSxPQUFPLENBQUMsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxDQUFDO0lBeER6Rjs7UUEyRFUsa0JBQWEsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsY0FBUyxHQUE0QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixrQkFBYSxHQUFzQztZQUMzRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQztRQUVRLG9CQUFlLEdBQXNCLHdCQUF3QixDQUFDLEVBQUUsRUFBRTtZQUMxRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDcEIsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDLENBQUM7UUE4Q0gsa0JBQWEsR0FBRyxHQUFHLENBQUM7UUFhVixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXRCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBSWxELGtCQUFhLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBNkxoRDtJQTNQQyxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUNXLFVBQVUsQ0FBQyxDQUE0QjtRQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxHQUFHLHdCQUF3QixDQUFDLENBQUMsRUFBRTtnQkFDakQsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUNwQixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBK0IsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsRUFBRTtRQUNGLEVBQUU7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTBDa0IsUUFBUTtRQUN6QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsRUFBRTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBUTtRQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFN0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDO2dCQUNyQyxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3BELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztRQUNGLE9BQU8sS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVTLG9CQUFvQixDQUFDLENBQVU7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsRUFBRTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsb0JBQW9CLENBQUMsQ0FBVTtRQUN2QyxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixpQkFBaUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCO1NBQ3ZDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLFlBQVk7UUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN2QixtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxhQUFhO3FCQUNmLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7cUJBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO3FCQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2pGLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUM1RSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO3dCQUNuQixDQUFDLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNqQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQixDQUFDLENBQWEsRUFBRSxJQUFJO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxDQUFzQjtRQUNsRCxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxDQUFtQjtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRVEsb0JBQW9CO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLGNBQWMsR0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFpQiwwQkFBMEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUMzSCxNQUFNLFVBQVUsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBaUIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDeEgsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFDM0IsQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsR0FBRyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ25CLEtBQUssRUFBRSxNQUFNO2dCQUNiLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNO2FBQzFILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLDRDQUE0QztZQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ25CLEtBQUssRUFBRSxHQUFHLFNBQVMsSUFBSTtnQkFDdkIsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUk7YUFDN0QsQ0FBQztRQUNKLENBQUM7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxjQUFjLENBQUMsQ0FBZ0I7UUFDN0IsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUNELHFFQUFxRTtRQUNyRSw0Q0FBNEM7UUFDNUMsOEJBQThCO1FBQzlCLCtCQUErQjtRQUMvQixrQkFBa0I7UUFDbEIsUUFBUTtRQUNSLHFFQUFxRTtRQUNyRSw2QkFBNkI7UUFDN0IsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQixJQUFJO0lBQ04sQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUNELENBQUMsSUFBSSxJQUFJLENBQUM7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDdkMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFNLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDckIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTthQUMvQixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzs4R0E3UVUsb0JBQW9CO2tHQUFwQixvQkFBb0IsbzdCQXBCcEI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFO1lBQzNELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtZQUNwRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUU7WUFDbkUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFO1lBQ3BFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtZQUNuRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUU7WUFDckU7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFFBQVEsRUFBRSx3QkFBd0I7YUFDbkM7WUFDRCxjQUFjO1NBQ2YsaUVBd0VhLG9CQUFvQixxTEFIdkIsZUFBZSwyRUFNZixzQkFBc0IscUZDaExuQyw2eEhBbUdBOzsyRkRLYSxvQkFBb0I7a0JBdkRoQyxTQUFTOytCQUNFLGVBQWUsVUFHakI7d0JBQ04sVUFBVTt3QkFDVixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLE1BQU07d0JBQ04sSUFBSTt3QkFDSixNQUFNO3dCQUNOLE1BQU07d0JBQ04sVUFBVTt3QkFDVixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYztxQkFDZixXQUNRO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixVQUFVO3FCQUNYLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUMzRCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNwRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNuRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNwRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNuRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNyRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsUUFBUSxFQUFFLHdCQUF3Qjt5QkFDbkM7d0JBQ0QsY0FBYztxQkFDZixRQUNLLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRTs4QkF5QnRCLFVBQVU7c0JBRHBCLEtBQUs7Z0JBc0JOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUdjLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFHbEIsSUFBSTtzQkFESCxTQUFTO3VCQUFDLGVBQWU7Z0JBSTFCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTFDLFFBQVE7c0JBRGpCLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQTJJbkQsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENsb3NiYWxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhEYXRhU291cmNlLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhIb3RrZXlzU2VydmljZSxcbiAgQVhJdGVtQ2xpY2tFdmVudCxcbiAgQVhTZWFyY2hhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgTVhMb29rQ29tcG9uZW50LFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG4gIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQm94Q29tcG9uZW50LCBNWERyb3Bkb3duQm94QmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWExpc3RDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGlzdCc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmluZExhc3RJbmRleCwgbGFzdCwgbnRoIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNlbGVjdC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnbWluVmFsdWUnLFxuICAgICdtYXhWYWx1ZScsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICd0eXBlJyxcbiAgICAnbG9vaycsXG4gICAgJ211bHRpcGxlJyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3RleHRUZW1wbGF0ZScsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdvbk9wZW5lZCcsXG4gICAgJ29uQ2xvc2VkJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsZWFyYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsb3NiYWxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYU2VhcmNoYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWFNlbGVjdEJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICAgICAgdXNlQ2xhc3M6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxuICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0Qm94Q29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWERyb3Bkb3duQm94QmFzZUNvbXBvbmVudCwgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCwgTVhMb29rQ29tcG9uZW50KVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGhvdEtleVNlcnZpY2U6IEFYSG90a2V5c1NlcnZpY2UgPSBpbmplY3QoQVhIb3RrZXlzU2VydmljZSk7XG4gIHByb3RlY3RlZCBpc0xvYWRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZHJvcGRvd25TaXplczogeyB3aWR0aDogc3RyaW5nOyBoZWlnaHQ6IHN0cmluZyB9ID0ge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnYXV0bycsXG4gIH07XG5cbiAgcHJvdGVjdGVkIF9saXN0RGF0YVNvdXJjZTogQVhEYXRhU291cmNlPGFueT4gPSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UoW10sIHtcbiAgICBrZXk6IHRoaXMudmFsdWVGaWVsZCxcbiAgICBwYWdlU2l6ZTogMTAsXG4gIH0pO1xuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTxhbnk+IHwgYW55W107XG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXSkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSh2LCB7XG4gICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgQVhEYXRhU291cmNlPGFueT47XG4gICAgfVxuICAgIC8vXG4gICAgLy9cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5vbkNoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNldERyb3Bkb3duU2l6ZShkYXRhLnRvdGFsQ291bnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX2xpc3REYXRhU291cmNlLm9uTG9hZGluZ0NoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQobG9hZGluZyk7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGNhcHRpb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBkcm9wZG93bldpZHRoID0gMjYwO1xuXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsJykgcGFuZWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKEFYTGlzdENvbXBvbmVudClcbiAgbGlzdDogQVhMaXN0Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQVhTZWFyY2hCb3hDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHNlYXJjaEJveDogQVhTZWFyY2hCb3hDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChBWERyb3Bkb3duQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgZHJvcGRvd246IEFYRHJvcGRvd25Cb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9IZWlnaHQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChBWF9TRUxFQ1RJT05fREFUQV9UT0tFTik7XG5cbiAgc2VhcmNoRXZlbnQ6IE9ic2VydmFibGU8YW55PjtcblxuICBwcml2YXRlIF91bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIC8vXG4gICAgdGhpcy5yZWdpc3RlclZhbGlkYXRpb24oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNldERyb3Bkb3duU2l6ZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hCb3g/Lm9uS2V5RG93bi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0SXRlbUJ5S2V5KGtleTogYW55KTogUHJvbWlzZTxhbnk+IHwgYW55IHtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgY29uc3QgY2hlY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSA8IDIwMDApIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9saXN0RGF0YVNvdXJjZS5maW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnVGltZW91dCByZWFjaGVkIHdpdGhvdXQgZmluZGluZyB0aGUgXCJnZXRJdGVtQnlLZXlcIiBtZXRob2QnKTtcbiAgICB9O1xuICAgIHJldHVybiBjaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbk9wZW5lZEV2ZW50KGU6IEFYRXZlbnQpIHtcbiAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgdGhpcy5faGFuZGxlRm9jdXMoKTtcbiAgICAvL1xuICAgIHRoaXMub25PcGVuZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogZS5pc1VzZXJJbnRlcmFjdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25DbG9zZWRFdmVudChlOiBBWEV2ZW50KSB7XG4gICAgLy90aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiBlLmlzVXNlckludGVyYWN0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVGb2N1cygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlYXJjaEJveCkge1xuICAgICAgICB0aGlzLnNlYXJjaEJveC5mb2N1cygpO1xuICAgICAgICAvL1RPRE86IHVuc3Vic2NyaWJlXG4gICAgICAgIHRoaXMuaG90S2V5U2VydmljZVxuICAgICAgICAgIC5hZGRTaG9ydGN1dCh7IGtleXM6ICdDb250cm9sLmYnLCBlbGVtZW50OiB0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQgfSlcbiAgICAgICAgICAucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQm94LmZvY3VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VhcmNoQm94Lm9uS2V5RG93bi5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5uYXRpdmVFdmVudC5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLm5hdGl2ZUV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdD8uZm9jdXMoKTtcbiAgICAgICAgICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saXN0Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVCYWRnZVJlbW92ZShlOiBNb3VzZUV2ZW50LCBpdGVtKSB7XG4gICAgdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoZS5jb21wb25lbnQuc2VsZWN0ZWRJdGVtcywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBBWEl0ZW1DbGlja0V2ZW50KSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxWYWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB0aGlzLmNsb3NlKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRldGVjdEF1dG9IZWlnaHQoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RBdXRvSGVpZ2h0KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoOiBudW1iZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3QtYm94LXNlbGVjdGlvbicpLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGl0ZW1zV2lkdGg6IG51bWJlciA9IEFycmF5LmZyb20odGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTERpdkVsZW1lbnQ+KCcuYXgtc2VsZWN0ZWQtdG9rZW4nKSkucmVkdWNlKFxuICAgICAgKGEsIGkpID0+IGEgKyBpLmNsaWVudFdpZHRoLFxuICAgICAgMCxcbiAgICApO1xuICAgIHRoaXMuYXV0b0hlaWdodCA9IGNvbnRhaW5lcldpZHRoIC0gaXRlbXNXaWR0aCA8PSA4O1xuICAgIHRoaXMuZHJvcGRvd24udXBkYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RHJvcGRvd25TaXplKGNvdW50ID0gMCkge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6IFsnYXV0bycsICcwcHgnXS5pbmNsdWRlcyh0aGlzLmRyb3Bkb3duU2l6ZXMuaGVpZ2h0KSA/IGAke01hdGgubWluKDE1LCBjb3VudCkgKiA0MH1weGAgOiB0aGlzLmRyb3Bkb3duU2l6ZXMuaGVpZ2h0LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy9UT0RPOiBjYWxjIG1pbi13aXRoIGZyb20gZm9ybXVsYSBvciBjb25maWdcbiAgICAgIGNvbnN0IGhvc3RXaWR0aCA9IE1hdGgubWF4KHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRXaWR0aCwgdGhpcy5kcm9wZG93bldpZHRoKTtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6IGAke2hvc3RXaWR0aH1weGAsXG4gICAgICAgIGhlaWdodDogY291bnQgPT0gMCA/ICdhdXRvJyA6IGAke01hdGgubWluKDUsIGNvdW50KSAqIDQwfXB4YCxcbiAgICAgIH07XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIF9oYW5kbGVLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJykge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtQnlOYXYoZS5jb2RlID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICB0aGlzLnVuc2VsZWN0SXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zLnBvcCgpKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgLy8gaWYgKChlLmNvZGUgPT09ICdTcGFjZScgfHwgZS5jb2RlID09PSAnRW50ZXInKSAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgLy8gICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAvLyAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gICAgICAgICByZXR1cm47XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgY29uc3QgaWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdsaScpPy5kYXRhc2V0Py5pZDtcbiAgICAvLyAgICAgdGhpcy50b2dnbGVTZWxlY3QoaWQpO1xuICAgIC8vICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEl0ZW1CeU5hdihzaWduOiAxIHwgLTEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KHRoaXMuZGF0YVNvdXJjZSk7XG4gICAgICBjb25zdCBfbGFzdDogYW55ID0gbGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgbGV0IGkgPSAtMTtcbiAgICAgIGlmIChfbGFzdCkge1xuICAgICAgICBpID0gZmluZExhc3RJbmRleChpdGVtcywgW3RoaXMudmFsdWVGaWVsZCwgX2xhc3RbdGhpcy52YWx1ZUZpZWxkXV0pO1xuICAgICAgfVxuICAgICAgaSArPSBzaWduO1xuICAgICAgaWYgKGkgPCAwIHx8IGkgPj0gaXRlbXMubGVuZ3RoKSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0ID0gbnRoPGFueT4oaXRlbXMsIGkpO1xuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyhuZXh0KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoKHRlcm06IHN0cmluZykge1xuICAgIGlmICh0ZXJtKSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5maWx0ZXIoe1xuICAgICAgICBmaWVsZDogdGhpcy50ZXh0RmllbGQsXG4gICAgICAgIHZhbHVlOiB0ZXJtLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnY29udGFpbnMnIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICB9XG4gICAgdGhpcy5fbGlzdERhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNsZWFyU2VsZWN0aW9uQ2FjaGUoKTtcbiAgICB0aGlzLmxpc3Q/LnJlZnJlc2goKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxheC1kcm9wZG93bi1ib3hcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKG9uT3BlbmVkKT1cIl9oYW5kbGVPbk9wZW5lZEV2ZW50KCRldmVudClcIlxuICAob25DbG9zZWQpPVwiX2hhbmRsZU9uQ2xvc2VkRXZlbnQoJGV2ZW50KVwiXG4gIFtsb29rXT1cImxvb2tcIlxuICBbY2xhc3MuYXgtYXV0by1oZWlnaHRdPVwiYXV0b0hlaWdodFwiXG4gIChmb2N1cyk9XCJlbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxuICAoYmx1cik9XCJlbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250YWluZXIgaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb24gYXgtY29udGVudFwiIFtjbGFzcy5heC1tdWx0aXBsZV09XCJtdWx0aXBsZVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgQGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCI+XG4gICAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIHNlbGVjdGVkSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICBAaWYgKHNlbGVjdGVkVGVtcGxhdGUpIHtcbiAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RlZFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBpdGVtIH0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1zZWxlY3RlZC10b2tlblwiPlxuICAgICAgICAgICAge3sgZ2V0RGlzcGxheVRleHQoaXRlbSkgfX1cbiAgICAgICAgICAgIEBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSAmJiBtdWx0aXBsZSkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiIChjbGljayk9XCJfaGFuZGxlQmFkZ2VSZW1vdmUoJGV2ZW50LCBpdGVtKVwiPiA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYgKHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiAhZGlzYWJsZWQgJiYgIXJlYWRvbmx5KSB7XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gICAgfVxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0YWJJbmRleF09XCItMVwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgIDwhLS0gQGlmIChpc0xvYWRpbmcoKSAmJiAhaXNPcGVuKSB7XG4gICAgICAgIDxheC1sb2FkaW5nIHR5cGU9XCJzcGlubmVyXCI+PC9heC1sb2FkaW5nPlxuICAgICAgfSBAZWxzZSB7IC0tPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1sZWZ0IGF4LWFycm93LWJ1dHRvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnLXJvdGF0aW9uLTkwJzogIWlzT3BlbixcbiAgICAgICAgICAncm90YXRpb24tOTAnOiBpc09wZW4sXG4gICAgICAgIH1cIlxuICAgICAgPjwvc3Bhbj5cbiAgICAgIDwhLS0gfSAtLT5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj4gPC9uZy1jb250ZW50PlxuICAgIDxuZy10ZW1wbGF0ZSAjc2VhcmNoPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc2VhcmNoLWJveFwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgcGFuZWw+XG4gICAgPGRpdiAjcGFuZWwgY2xhc3M9XCJheC1zZWxlY3QtYm94LXBhbmVsXCIgW3N0eWxlLm1pbi13aWR0aF09XCJkcm9wZG93blNpemVzLndpZHRoXCI+XG4gICAgICBAaWYgKGRyb3Bkb3duLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtc29saWRcIj5cbiAgICAgICAgICA8YXgtdGl0bGU+e3sgY2FwdGlvbiB8fCBwbGFjZWhvbGRlciB8fCAnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRpdGxlPlxuICAgICAgICAgIDxheC1jbG9zZS1idXR0b24gW2ljb25dPVwibXVsdGlwbGUgPyAnYXgtaWNvbiBheC1pY29uLWNoZWNrICFheC10ZXh0LXByaW1hcnktNTAwJyA6ICdheC1pY29uIGF4LWljb24tY2xvc2UnXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICAgIDwvYXgtaGVhZGVyPlxuICAgICAgfVxuICAgICAgQGlmIChzZWFyY2hCb3gpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKHJlbmRlckxpc3QpIHtcbiAgICAgICAgPGF4LWxpc3RcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJfbGlzdERhdGFTb3VyY2VcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJkcm9wZG93blNpemVzLmhlaWdodFwiXG4gICAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgICAgIFt0ZXh0VGVtcGxhdGVdPVwidGV4dFRlbXBsYXRlXCJcbiAgICAgICAgICBbZW1wdHlUZW1wbGF0ZV09XCJlbXB0eVRlbXBsYXRlID8/IGVtcHR5XCJcbiAgICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgW2xvYWRpbmdUZW1wbGF0ZV09XCJsb2FkaW5nVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInaXRlbSdcIlxuICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PiB7eyAnbm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYXgtbGlzdD5cbiAgICAgIH1cblxuICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICBAaWYgKGxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtZHJvcGRvd24tYm94PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbiJdfQ==
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFHWCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFP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QUU7Z0JBbUtuRCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ2xvc2JhbGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWEhvdGtleXNTZXJ2aWNlLFxuICBBWEl0ZW1DbGlja0V2ZW50LFxuICBBWFNlYXJjaGFibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWExvb2tDb21wb25lbnQsXG4gIE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCxcbiAgY29udmVydEFycmF5VG9EYXRhU291cmNlLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4LCBsYXN0LCBudGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3QtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAndHlwZScsXG4gICAgJ2xvb2snLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICd0ZXh0RmllbGQnLFxuICAgICd0ZXh0VGVtcGxhdGUnLFxuICBdLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnb25PcGVuZWQnLFxuICAgICdvbkNsb3NlZCcsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNlYXJjaGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhTZWxlY3RCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUNsYXNzOiBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlcixcbiAgXSxcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdEJveENvbXBvbmVudFxuICBleHRlbmRzIGNsYXNzZXMoTVhEcm9wZG93bkJveEJhc2VDb21wb25lbnQsIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsIE1YTG9va0NvbXBvbmVudClcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBob3RLZXlTZXJ2aWNlOiBBWEhvdGtleXNTZXJ2aWNlID0gaW5qZWN0KEFYSG90a2V5c1NlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc0xvYWRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdCA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkcm9wZG93blNpemVzOiB7IHdpZHRoOiBzdHJpbmc7IGhlaWdodDogc3RyaW5nIH0gPSB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2xpc3REYXRhU291cmNlOiBBWERhdGFTb3VyY2U8YW55PiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSwge1xuICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgIHBhZ2VTaXplOiAxMCxcbiAgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnQsIHdoaWNoIGNhbiBiZSBlaXRoZXIgYW4gYEFYRGF0YVNvdXJjZWAgb3IgYW4gYXJyYXkgb2YgaXRlbXMuXG4gICAqIEByZXR1cm5zIHtBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdfVxuICAgKi9cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IEFYRGF0YVNvdXJjZTxhbnk+IHwgYW55W10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRhdGEgc291cmNlLCBlaXRoZXIgYXMgYW4gYEFYRGF0YVNvdXJjZWAgb3IgYW4gYXJyYXkuXG4gICAqIEBwYXJhbSB7QVhEYXRhU291cmNlPGFueT4gfCBhbnlbXX0gdlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGF0YSBzb3VyY2UsIGVpdGhlciBhcyBgQVhEYXRhU291cmNlYCBvciBhbiBhcnJheS4gQ29udmVydHMgYXJyYXlzIHRvIGBBWERhdGFTb3VyY2VgIGFuZCBzdWJzY3JpYmVzIHRvIGRhdGEgYW5kIGxvYWRpbmcgY2hhbmdlcy5cbiAgICogQHBhcmFtIHtBWERhdGFTb3VyY2U8YW55PiB8IGFueVtdfSB2XG4gICAqL1xuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPGFueT4gfCBhbnlbXSkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSh2LCB7XG4gICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgQVhEYXRhU291cmNlPGFueT47XG4gICAgfVxuICAgIC8vXG4gICAgLy9cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5vbkNoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNldERyb3Bkb3duU2l6ZShkYXRhLnRvdGFsQ291bnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX2xpc3REYXRhU291cmNlLm9uTG9hZGluZ0NoYW5nZWQucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQobG9hZGluZyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBsYWNlaG9sZGVyIHRleHQgZGlzcGxheWVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBlbXB0eS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2FwdGlvbiB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2FwdGlvblxuICAgKi9cbiAgQElucHV0KClcbiAgY2FwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBjdXN0b21pemUgdGhlIHJlbmRlcmluZyBvZiBpdGVtcy5cbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxhbnk+fSBpdGVtVGVtcGxhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gY3VzdG9taXplIHRoZSByZW5kZXJpbmcgb2Ygc2VsZWN0ZWQgaXRlbXMuXG4gICAqIEBwYXJhbSB7VGVtcGxhdGVSZWY8YW55Pn0gc2VsZWN0ZWRUZW1wbGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2VsZWN0ZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB3aGVuIHRoZXJlIGFyZSBubyBpdGVtcy5cbiAgICogQHBhcmFtIHtUZW1wbGF0ZVJlZjxhbnk+fSBlbXB0eVRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHdoaWxlIGxvYWRpbmcuXG4gICAqIEBwYXJhbSB7VGVtcGxhdGVSZWY8YW55Pn0gbG9hZGluZ1RlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgZHJvcGRvd24gaW4gcGl4ZWxzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDI2MFxuICAgKi9cbiAgQElucHV0KClcbiAgZHJvcGRvd25XaWR0aCA9IDI2MDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdwYW5lbCcpIHBhbmVsITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZChBWExpc3RDb21wb25lbnQpXG4gIGxpc3Q6IEFYTGlzdENvbXBvbmVudDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAQ29udGVudENoaWxkKEFYU2VhcmNoQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWFyY2hCb3g6IEFYU2VhcmNoQm94Q29tcG9uZW50O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duOiBBWERyb3Bkb3duQm94Q29tcG9uZW50O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBhdXRvSGVpZ2h0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIHNlbGVjdGlvbiBkYXRhLCBpbmplY3RlZCB2aWEgYEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOYC5cbiAgICovXG4gIHB1YmxpYyBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOKTtcblxuICBzZWFyY2hFdmVudDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy9cbiAgICB0aGlzLnJlZ2lzdGVyVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEJveD8ub25LZXlEb3duLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuIGl0ZW0gYnkgaXRzIGtleS5cbiAgICogQHBhcmFtIHthbnl9IGtleVxuICAgKi9cbiAgZ2V0SXRlbUJ5S2V5KGtleTogYW55KTogUHJvbWlzZTxhbnk+IHwgYW55IHtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgY29uc3QgY2hlY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSA8IDIwMDApIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9saXN0RGF0YVNvdXJjZS5maW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnVGltZW91dCByZWFjaGVkIHdpdGhvdXQgZmluZGluZyB0aGUgXCJnZXRJdGVtQnlLZXlcIiBtZXRob2QnKTtcbiAgICB9O1xuICAgIHJldHVybiBjaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbk9wZW5lZEV2ZW50KGU6IEFYRXZlbnQpIHtcbiAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgdGhpcy5faGFuZGxlRm9jdXMoKTtcbiAgICAvL1xuICAgIHRoaXMub25PcGVuZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogZS5pc1VzZXJJbnRlcmFjdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlT25DbG9zZWRFdmVudChlOiBBWEV2ZW50KSB7XG4gICAgLy90aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiBlLmlzVXNlckludGVyYWN0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVGb2N1cygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlYXJjaEJveCkge1xuICAgICAgICB0aGlzLnNlYXJjaEJveC5mb2N1cygpO1xuICAgICAgICAvL1RPRE86IHVuc3Vic2NyaWJlXG4gICAgICAgIHRoaXMuaG90S2V5U2VydmljZVxuICAgICAgICAgIC5hZGRTaG9ydGN1dCh7IGtleXM6ICdDb250cm9sLmYnLCBlbGVtZW50OiB0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQgfSlcbiAgICAgICAgICAucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQm94LmZvY3VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VhcmNoQm94Lm9uS2V5RG93bi5waXBlKHRoaXMuX3Vuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICBpZiAoZS5uYXRpdmVFdmVudC5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLm5hdGl2ZUV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdD8uZm9jdXMoKTtcbiAgICAgICAgICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saXN0Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVCYWRnZVJlbW92ZShlOiBNb3VzZUV2ZW50LCBpdGVtKSB7XG4gICAgdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoZS5jb21wb25lbnQuc2VsZWN0ZWRJdGVtcywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBBWEl0ZW1DbGlja0V2ZW50KSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2hhbmdlcyB0byB0aGUgaW50ZXJuYWwgdmFsdWUuIENsb3NlcyB0aGUgY29tcG9uZW50IGlmIG5vdCBpbiBtdWx0aXBsZSBtb2RlLCBhbmQgYWRqdXN0cyBoZWlnaHQgYWZ0ZXIgYSBzaG9ydCBkZWxheS5cbiAgICovXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgdGhpcy5jbG9zZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kZXRlY3RBdXRvSGVpZ2h0KCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZGV0ZWN0QXV0b0hlaWdodCgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aDogbnVtYmVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtc2VsZWN0LWJveC1zZWxlY3Rpb24nKS5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBpdGVtc1dpZHRoOiBudW1iZXIgPSBBcnJheS5mcm9tKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdGVkLXRva2VuJykpLnJlZHVjZShcbiAgICAgIChhLCBpKSA9PiBhICsgaS5jbGllbnRXaWR0aCxcbiAgICAgIDAsXG4gICAgKTtcbiAgICB0aGlzLmF1dG9IZWlnaHQgPSBjb250YWluZXJXaWR0aCAtIGl0ZW1zV2lkdGggPD0gODtcbiAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldERyb3Bkb3duU2l6ZShjb3VudCA9IDApIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiBbJ2F1dG8nLCAnMHB4J10uaW5jbHVkZXModGhpcy5kcm9wZG93blNpemVzLmhlaWdodCkgPyBgJHtNYXRoLm1pbigxNSwgY291bnQpICogNDB9cHhgIDogdGhpcy5kcm9wZG93blNpemVzLmhlaWdodCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vVE9ETzogY2FsYyBtaW4td2l0aCBmcm9tIGZvcm11bGEgb3IgY29uZmlnXG4gICAgICBjb25zdCBob3N0V2lkdGggPSBNYXRoLm1heCh0aGlzLmdldEhvc3RFbGVtZW50KCkub2Zmc2V0V2lkdGgsIHRoaXMuZHJvcGRvd25XaWR0aCk7XG4gICAgICB0aGlzLmRyb3Bkb3duU2l6ZXMgPSB7XG4gICAgICAgIHdpZHRoOiBgJHtob3N0V2lkdGh9cHhgLFxuICAgICAgICBoZWlnaHQ6IGNvdW50ID09IDAgPyAnYXV0bycgOiBgJHtNYXRoLm1pbig1LCBjb3VudCkgKiA0MH1weGAsXG4gICAgICB9O1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJvcGRvd24udXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0Fycm93RG93bicgfHwgZS5jb2RlID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHRoaXMuc2VsZWN0SXRlbUJ5TmF2KGUuY29kZSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZS5jb2RlID09PSAnQmFja3NwYWNlJykge1xuICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcy5wb3AoKSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIC8vIGlmICgoZS5jb2RlID09PSAnU3BhY2UnIHx8IGUuY29kZSA9PT0gJ0VudGVyJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgIC8vICAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgLy8gICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vICAgICAgICAgcmV0dXJuO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGNvbnN0IGlkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKT8uZGF0YXNldD8uaWQ7XG4gICAgLy8gICAgIHRoaXMudG9nZ2xlU2VsZWN0KGlkKTtcbiAgICAvLyAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgLy8gfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzZWxlY3RJdGVtQnlOYXYoc2lnbjogMSB8IC0xKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhU291cmNlKSAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdCh0aGlzLmRhdGFTb3VyY2UpO1xuICAgICAgY29uc3QgX2xhc3Q6IGFueSA9IGxhc3QodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgIGxldCBpID0gLTE7XG4gICAgICBpZiAoX2xhc3QpIHtcbiAgICAgICAgaSA9IGZpbmRMYXN0SW5kZXgoaXRlbXMsIFt0aGlzLnZhbHVlRmllbGQsIF9sYXN0W3RoaXMudmFsdWVGaWVsZF1dKTtcbiAgICAgIH1cbiAgICAgIGkgKz0gc2lnbjtcbiAgICAgIGlmIChpIDwgMCB8fCBpID49IGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgY29uc3QgbmV4dCA9IG50aDxhbnk+KGl0ZW1zLCBpKTtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbXMobmV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIHRoZSBkYXRhIHNvdXJjZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgc2VhcmNoIHRlcm0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXJtXG4gICAqL1xuICBzZWFyY2godGVybTogc3RyaW5nKSB7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbHRlcih7XG4gICAgICAgIGZpZWxkOiB0aGlzLnRleHRGaWVsZCxcbiAgICAgICAgdmFsdWU6IHRlcm0sXG4gICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBjb21wb25lbnQgYnkgcmVzZXR0aW5nIHN0YXRlLCBjbGVhcmluZyBzZWxlY3Rpb24gY2FjaGUsIHJlZnJlc2hpbmcgdGhlIGxpc3QsIGFuZCBjbG9zaW5nIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVzZXQoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveFxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoJGV2ZW50KVwiXG4gIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgkZXZlbnQpXCJcbiAgW2xvb2tdPVwibG9va1wiXG4gIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCJcbiAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXG4gIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBpbnB1dD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj4gPC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJheC1zZWxlY3QtYm94LXNlbGVjdGlvbiBheC1jb250ZW50XCIgW2NsYXNzLmF4LW11bHRpcGxlXT1cIm11bHRpcGxlXCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICBAaWYgKHNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wbGFjZWhvbGRlclwiIHJvbGU9XCJ0ZXh0Ym94XCIgYXJlYS1yZWFkb25seT1cInRydWVcIj5cbiAgICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBpZiAoc2VsZWN0ZWRUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGVkVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6IGl0ZW0gfSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdGVkLXRva2VuXCI+XG4gICAgICAgICAgICB7eyBnZXREaXNwbGF5VGV4dChpdGVtKSB9fVxuICAgICAgICAgICAgQGlmICghZGlzYWJsZWQgJiYgIXJlYWRvbmx5ICYmIG11bHRpcGxlKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsb3NlXCIgKGNsaWNrKT1cIl9oYW5kbGVCYWRnZVJlbW92ZSgkZXZlbnQsIGl0ZW0pXCI+IDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpIHtcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICB9XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgPCEtLSBAaWYgKGlzTG9hZGluZygpICYmICFpc09wZW4pIHtcbiAgICAgICAgPGF4LWxvYWRpbmcgdHlwZT1cInNwaW5uZXJcIj48L2F4LWxvYWRpbmc+XG4gICAgICB9IEBlbHNlIHsgLS0+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLWxlZnQgYXgtYXJyb3ctYnV0dG9uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICctcm90YXRpb24tOTAnOiAhaXNPcGVuLFxuICAgICAgICAgICdyb3RhdGlvbi05MCc6IGlzT3BlbixcbiAgICAgICAgfVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAgPCEtLSB9IC0tPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNzZWFyY2g+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zZWFyY2gtYm94XCI+IDwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICA8ZGl2ICNwYW5lbCBjbGFzcz1cImF4LXNlbGVjdC1ib3gtcGFuZWxcIiBbc3R5bGUubWluLXdpZHRoXT1cImRyb3Bkb3duU2l6ZXMud2lkdGhcIj5cbiAgICAgIEBpZiAoZHJvcGRvd24uaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICAgIDxheC1oZWFkZXIgY2xhc3M9XCJheC1zb2xpZFwiPlxuICAgICAgICAgIDxheC10aXRsZT57eyBjYXB0aW9uIHx8IHBsYWNlaG9sZGVyIHx8ICdzZWxlY3Rib3gucG9wb3Zlci50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtdGl0bGU+XG4gICAgICAgICAgPGF4LWNsb3NlLWJ1dHRvbiBbaWNvbl09XCJtdWx0aXBsZSA/ICdheC1pY29uIGF4LWljb24tY2hlY2sgIWF4LXRleHQtcHJpbWFyeS01MDAnIDogJ2F4LWljb24gYXgtaWNvbi1jbG9zZSdcIj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgICAgPC9heC1oZWFkZXI+XG4gICAgICB9XG4gICAgICBAaWYgKHNlYXJjaEJveCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWFyY2hcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAocmVuZGVyTGlzdCkge1xuICAgICAgICA8YXgtbGlzdFxuICAgICAgICAgIFtkYXRhU291cmNlXT1cIl9saXN0RGF0YVNvdXJjZVwiXG4gICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImRyb3Bkb3duU2l6ZXMuaGVpZ2h0XCJcbiAgICAgICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCJcbiAgICAgICAgICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiXG4gICAgICAgICAgW3RleHRUZW1wbGF0ZV09XCJ0ZXh0VGVtcGxhdGVcIlxuICAgICAgICAgIFtlbXB0eVRlbXBsYXRlXT1cImVtcHR5VGVtcGxhdGUgPz8gZW1wdHlcIlxuICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICBbbG9hZGluZ1RlbXBsYXRlXT1cImxvYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIidpdGVtJ1wiXG4gICAgICAgICAgKG9uSXRlbUNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHk+IHt7ICduby1yZXN1bHQtZm91bmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX0gPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9heC1saXN0PlxuICAgICAgfVxuXG4gICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgIEBpZiAobG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNFwiPlxuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9heC1kcm9wZG93bi1ib3g+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuIl19
@@ -12,48 +12,97 @@ import * as i1 from "@angular/common";
12
12
  export class AXSelectionListComponent extends MXSelectionValueComponent {
13
13
  constructor() {
14
14
  super(...arguments);
15
+ /** @ignore */
15
16
  this._direction = 'horizontal';
17
+ /** @ignore */
16
18
  this._showControl = true;
19
+ /** @ignore */
17
20
  this._items = [];
21
+ /** @ignore */
18
22
  this._hintField = 'hint';
23
+ /**
24
+ * Defines the visual appearance of the selection list.
25
+ *
26
+ * @defaultValue 'solid'
27
+ */
19
28
  this.look = 'solid';
20
29
  }
30
+ /**
31
+ * Gets or sets the direction of the component.
32
+ * @param {AXDirection} value
33
+ */
21
34
  get direction() {
22
35
  return this._direction;
23
36
  }
37
+ /**
38
+ * Sets the direction of the component.
39
+ *
40
+ * @param {AXDirection} v
41
+ */
24
42
  set direction(v) {
25
43
  this._direction = v;
26
44
  }
45
+ /**
46
+ * @param {void}
47
+ * Gets the current state of the control visibility.
48
+ */
27
49
  get showControl() {
28
50
  return this._showControl;
29
51
  }
52
+ /**
53
+ * @param {boolean} v
54
+ * Sets the visibility state of the control.
55
+ */
30
56
  set showControl(v) {
31
57
  this.setOption({
32
58
  name: 'showControl',
33
59
  value: v,
34
60
  });
35
61
  }
62
+ /**
63
+ * Gets the list of items.
64
+ * @param {void}
65
+ */
36
66
  get items() {
37
67
  return this._items;
38
68
  }
69
+ /**
70
+ * Sets the list of items.
71
+ *
72
+ * @param {any[]} v
73
+ */
39
74
  set items(v) {
40
75
  this.setOption({
41
76
  name: 'items',
42
77
  value: v,
43
78
  });
44
79
  }
80
+ /**
81
+ * Gets the field used for displaying hints.
82
+ */
45
83
  get hintField() {
46
84
  return this._hintField;
47
85
  }
86
+ /**
87
+ * Sets the field used for displaying hints.
88
+ *
89
+ * @param {string} v
90
+ */
48
91
  set hintField(v) {
49
92
  this.setOption({
50
93
  name: 'hintField',
51
94
  value: v,
52
95
  });
53
96
  }
97
+ /**
98
+ * Retrieves an item from the list by its key.
99
+ *
100
+ * @param {unknown} key - The key to search for.
101
+ */
54
102
  getItemByKey(key) {
55
103
  return this.items.find((c) => c == this.value || c[this.valueField] == key);
56
104
  }
105
+ /** @ignore */
57
106
  _handleOnItemValueChange(item, e) {
58
107
  if (this.readonly || this.disabled) {
59
108
  e.preventDefault();
@@ -63,6 +112,7 @@ export class AXSelectionListComponent extends MXSelectionValueComponent {
63
112
  e.target.checked ? this.selectItems(item) : this.unselectItems(item);
64
113
  }
65
114
  }
115
+ /** @ignore */
66
116
  get __hostClass() {
67
117
  return [`ax-look-${this.look}`, `${this.disabled ? 'ax-state-disabled' : ''}`, `${this.readonly ? 'ax-state-readonly' : ''}`];
68
118
  }
@@ -126,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
126
176
  type: HostBinding,
127
177
  args: ['class']
128
178
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0L3NyYy9saWIvc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0L3NyYy9saWIvc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzFCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUluRDs7OztHQUlHO0FBdUNILHNFQUFzRTtBQUN0RSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEseUJBQXlCO0lBdkN2RTs7UUF3Q1UsZUFBVSxHQUFnQixZQUFZLENBQUM7UUFZdkMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFZcEIsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQVluQixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBZW5CLFNBQUksR0FBd0IsT0FBTyxDQUFDO0tBZTlDO0lBakVDLElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLENBQWM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQU1ELElBQ1csV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQVcsV0FBVyxDQUFDLENBQVU7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxhQUFhO1lBQ25CLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBUTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLFNBQVMsQ0FBQyxDQUFTO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFJUyx3QkFBd0IsQ0FBQyxJQUFTLEVBQUUsQ0FBUTtRQUNwRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTCxDQUFDLENBQUMsTUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1ksV0FBVztRQUNyQixPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoSSxDQUFDOzhHQWxFVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixnbEJBakJ4QjtZQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUU7WUFDL0QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFO1lBQ3hFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRTtZQUN2RTtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUN2RCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsUUFBUSxFQUFFLHdCQUF3QjthQUNuQztTQUNGLGlEQ3RESCx3eENBc0NzRDs7MkZEb0J6Qyx3QkFBd0I7a0JBdkNwQyxTQUFTOytCQUNFLG1CQUFtQixVQUdyQjt3QkFDTixJQUFJO3dCQUNKLE1BQU07d0JBQ04sVUFBVTt3QkFDVixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsTUFBTTt3QkFDTixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixVQUFVO3FCQUNYLFdBQ1EsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3dCQUMvRCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3dCQUN4RSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3dCQUN2RTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsUUFBUSxFQUFFLHdCQUF3Qjt5QkFDbkM7cUJBQ0Y7OEJBT1UsU0FBUztzQkFEbkIsS0FBSztnQkFTTixjQUFjO3NCQURiLEtBQUs7Z0JBS0ssV0FBVztzQkFEckIsS0FBSztnQkFhSyxLQUFLO3NCQURmLEtBQUs7Z0JBMEJHLElBQUk7c0JBQVosS0FBSztnQkFZTSxXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbXBvbmVudCxcbiAgQVhEaXJlY3Rpb24sXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlLFxuICBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IHR5cGUgQVhTZWxlY3Rpb25MaXN0TG9vayA9ICdzb2xpZCcgfCAnZGl2aWRlZCcgfCAnY2FyZCc7XG5cbi8qKlxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNlbGVjdGlvbi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbXG4gICAgJ2lkJyxcbiAgICAnbmFtZScsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3NpemUnLFxuICAgICd2YWx1ZScsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICd0ZXh0RmllbGQnLFxuICAgICdoaW50RmllbGQnLFxuICAgICdkaXNhYmxlZEZpZWxkJyxcbiAgICAncmVhZG9ubHlGaWVsZCcsXG4gICAgJ211bHRpcGxlJyxcbiAgXSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCcsICdvbkJsdXInLCAnb25Gb2N1cyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdGlvbkxpc3RDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdGlvbkxpc3RDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICAgICAgdXNlQ2xhc3M6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgICB9LFxuICBdLFxufSlcblxuLy9UT0RPOiBvbiBwYXJlbnQgY2xpY2sgKGNhcmQgc3R5bGUpIC0+IGNoZWNrYm94IG9yIHJhZGlvIGNoYW5nZSB2YWx1ZVxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudCBleHRlbmRzIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQge1xuICBwcml2YXRlIF9kaXJlY3Rpb246IEFYRGlyZWN0aW9uID0gJ2hvcml6b250YWwnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpcmVjdGlvbigpOiBBWERpcmVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbjtcbiAgfVxuICBwdWJsaWMgc2V0IGRpcmVjdGlvbih2OiBBWERpcmVjdGlvbikge1xuICAgIHRoaXMuX2RpcmVjdGlvbiA9IHY7XG4gIH1cblxuICBASW5wdXQoKVxuICBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBfc2hvd0NvbnRyb2wgPSB0cnVlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNob3dDb250cm9sKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93Q29udHJvbDtcbiAgfVxuICBwdWJsaWMgc2V0IHNob3dDb250cm9sKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnc2hvd0NvbnRyb2wnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtczogYW55W10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpdGVtcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG4gIHB1YmxpYyBzZXQgaXRlbXModjogYW55W10pIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnaXRlbXMnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9oaW50RmllbGQgPSAnaGludCc7XG4gIHB1YmxpYyBnZXQgaGludEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2hpbnRGaWVsZDtcbiAgfVxuICBwdWJsaWMgc2V0IGhpbnRGaWVsZCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnaGludEZpZWxkJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0SXRlbUJ5S2V5KGtleTogdW5rbm93bik6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGMpID0+IGMgPT0gdGhpcy52YWx1ZSB8fCBjW3RoaXMudmFsdWVGaWVsZF0gPT0ga2V5KTtcbiAgfVxuXG4gIEBJbnB1dCgpIGxvb2s6IEFYU2VsZWN0aW9uTGlzdExvb2sgPSAnc29saWQnO1xuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25JdGVtVmFsdWVDaGFuZ2UoaXRlbTogYW55LCBlOiBFdmVudCkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIChlLnRhcmdldCBhcyBhbnkpLmNoZWNrZWQgPyB0aGlzLnNlbGVjdEl0ZW1zKGl0ZW0pIDogdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtgYXgtbG9vay0ke3RoaXMubG9va31gLCBgJHt0aGlzLmRpc2FibGVkID8gJ2F4LXN0YXRlLWRpc2FibGVkJyA6ICcnfWAsIGAke3RoaXMucmVhZG9ubHkgPyAnYXgtc3RhdGUtcmVhZG9ubHknIDogJyd9YF07XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cImF4LXt7IGRpcmVjdGlvbiB9fVwiPlxuICBAZm9yKGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gJGluZGV4OyB0cmFjayBpICl7XG4gIDxsaSBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiPlxuXG5cbiAgICA8bGFiZWwgW2NsYXNzLmF4LWhpZGUtY29udHJvbF09XCIhc2hvd0NvbnRyb2xcIj5cbiAgICAgIEBpZihtdWx0aXBsZSl7XG4gICAgICA8aW5wdXQgW2lkXT1cImlkICsgJy0nICsgaVwiIGNsYXNzPVwiYXgtY2hlY2tib3hcIiB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cIl9oYW5kbGVPbkl0ZW1WYWx1ZUNoYW5nZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXRlbVtkaXNhYmxlZEZpZWxkXVwiIFtyZWFkT25seV09XCJyZWFkb25seVwiIC8+XG4gICAgICB9IEBlbHNle1xuICAgICAgPGlucHV0IFtpZF09XCJpZCArICctJyArIGlcIiBjbGFzcz1cImF4LXJhZGlvXCIgdHlwZT1cInJhZGlvXCIgW2F0dHIubmFtZV09XCJpZFwiXG4gICAgICAgIChjaGFuZ2UpPVwiX2hhbmRsZU9uSXRlbVZhbHVlQ2hhbmdlKGl0ZW0sICRldmVudClcIiBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpdGVtW2Rpc2FibGVkRmllbGRdXCIgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCIgLz5cbiAgICAgIH1cblxuICAgICAgQGlmKGN1c3RvbVRlbXBsYXRlKXtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTppdGVtIH0gfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2PlxuICAgICAgICB7eyBnZXREaXNwbGF5VGV4dChpdGVtKSB9fVxuICAgICAgICBAaWYoaXRlbVtoaW50RmllbGRdKXtcbiAgICAgICAgPHAgY2xhc3M9XCJheC1oaW50LXRleHRcIj5cbiAgICAgICAgICB7eyBpdGVtW2hpbnRGaWVsZF0gfX1cbiAgICAgICAgPC9wPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cblxuXG4gICAgPC9sYWJlbD5cblxuXG4gIDwvbGk+XG4gIH1cbjwvdWw+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PiJdfQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0L3NyYy9saWIvc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdGlvbi1saXN0L3NyYy9saWIvc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzFCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUluRDs7OztHQUlHO0FBdUNILHNFQUFzRTtBQUN0RSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEseUJBQXlCO0lBdkN2RTs7UUF3Q0UsY0FBYztRQUNOLGVBQVUsR0FBZ0IsWUFBWSxDQUFDO1FBNEIvQyxjQUFjO1FBQ04saUJBQVksR0FBRyxJQUFJLENBQUM7UUFzQjVCLGNBQWM7UUFDTixXQUFNLEdBQVUsRUFBRSxDQUFDO1FBMkIzQixjQUFjO1FBQ04sZUFBVSxHQUFHLE1BQU0sQ0FBQztRQThCNUI7Ozs7V0FJRztRQUNNLFNBQUksR0FBd0IsT0FBTyxDQUFDO0tBaUI5QztJQWxJQzs7O09BR0c7SUFDSCxJQUNXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxTQUFT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d0I7a0JBdkNwQyxTQUFTOytCQUNFLG1CQUFtQixVQUdyQjt3QkFDTixJQUFJO3dCQUNKLE1BQU07d0JBQ04sVUFBVTt3QkFDVixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsTUFBTTt3QkFDTixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixVQUFVO3FCQUNYLFdBQ1EsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3dCQUMvRCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3dCQUN4RSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLDBCQUEwQixFQUFFO3dCQUN2RTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsUUFBUSxFQUFFLHdCQUF3Qjt5QkFDbkM7cUJBQ0Y7OEJBYVUsU0FBUztzQkFEbkIsS0FBSztnQkFvQk4sY0FBYztzQkFEYixLQUFLO2dCQVdLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBNEJLLEtBQUs7c0JBTGYsS0FBSztnQkF5REcsSUFBSTtzQkFBWixLQUFLO2dCQWNNLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWERpcmVjdGlvbixcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgdHlwZSBBWFNlbGVjdGlvbkxpc3RMb29rID0gJ3NvbGlkJyB8ICdkaXZpZGVkJyB8ICdjYXJkJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VsZWN0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnaWQnLFxuICAgICduYW1lJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAnc2l6ZScsXG4gICAgJ3ZhbHVlJyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ2hpbnRGaWVsZCcsXG4gICAgJ2Rpc2FibGVkRmllbGQnLFxuICAgICdyZWFkb25seUZpZWxkJyxcbiAgICAnbXVsdGlwbGUnLFxuICBdLFxuICBvdXRwdXRzOiBbJ29uVmFsdWVDaGFuZ2VkJywgJ29uQmx1cicsICdvbkZvY3VzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4sXG4gICAgICB1c2VDbGFzczogTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlLFxuICAgIH0sXG4gIF0sXG59KVxuXG4vL1RPRE86IG9uIHBhcmVudCBjbGljayAoY2FyZCBzdHlsZSkgLT4gY2hlY2tib3ggb3IgcmFkaW8gY2hhbmdlIHZhbHVlXG5leHBvcnQgY2xhc3MgQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50IGV4dGVuZHMgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2RpcmVjdGlvbjogQVhEaXJlY3Rpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7QVhEaXJlY3Rpb259IHZhbHVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpcmVjdGlvbigpOiBBWERpcmVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtBWERpcmVjdGlvbn0gdlxuICAgKi9cbiAgcHVibGljIHNldCBkaXJlY3Rpb24odjogQVhEaXJlY3Rpb24pIHtcbiAgICB0aGlzLl9kaXJlY3Rpb24gPSB2O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdGVtcGxhdGUgdXNlZCBmb3IgcmVuZGVyaW5nIGNvbnRlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7VGVtcGxhdGVSZWY8dW5rbm93bj59IGN1c3RvbVRlbXBsYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfc2hvd0NvbnRyb2wgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3ZvaWR9XG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRyb2wgdmlzaWJpbGl0eS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgc2hvd0NvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dDb250cm9sO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdlxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBjb250cm9sLlxuICAgKi9cbiAgcHVibGljIHNldCBzaG93Q29udHJvbCh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3Nob3dDb250cm9sJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXRlbXM6IGFueVtdID0gW107XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpc3Qgb2YgaXRlbXMuXG4gICAqIEBwYXJhbSB7dm9pZH1cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpc3Qgb2YgaXRlbXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbGlzdCBvZiBpdGVtcy5cbiAgICpcbiAgICogQHBhcmFtIHthbnlbXX0gdlxuICAgKi9cbiAgcHVibGljIHNldCBpdGVtcyh2OiBhbnlbXSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdpdGVtcycsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2hpbnRGaWVsZCA9ICdoaW50JztcblxuICAvKipcbiAgICogR2V0cyB0aGUgZmllbGQgdXNlZCBmb3IgZGlzcGxheWluZyBoaW50cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGludEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2hpbnRGaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmaWVsZCB1c2VkIGZvciBkaXNwbGF5aW5nIGhpbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdlxuICAgKi9cbiAgcHVibGljIHNldCBoaW50RmllbGQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2hpbnRGaWVsZCcsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGJ5IGl0cyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7dW5rbm93bn0ga2V5IC0gVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgZ2V0SXRlbUJ5S2V5KGtleTogdW5rbm93bik6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGMpID0+IGMgPT0gdGhpcy52YWx1ZSB8fCBjW3RoaXMudmFsdWVGaWVsZF0gPT0ga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSB2aXN1YWwgYXBwZWFyYW5jZSBvZiB0aGUgc2VsZWN0aW9uIGxpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgJ3NvbGlkJ1xuICAgKi9cbiAgQElucHV0KCkgbG9vazogQVhTZWxlY3Rpb25MaXN0TG9vayA9ICdzb2xpZCc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbkl0ZW1WYWx1ZUNoYW5nZShpdGVtOiBhbnksIGU6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgKGUudGFyZ2V0IGFzIGFueSkuY2hlY2tlZCA/IHRoaXMuc2VsZWN0SXRlbXMoaXRlbSkgOiB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW2BheC1sb29rLSR7dGhpcy5sb29rfWAsIGAke3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YCwgYCR7dGhpcy5yZWFkb25seSA/ICdheC1zdGF0ZS1yZWFkb25seScgOiAnJ31gXTtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwiYXgte3sgZGlyZWN0aW9uIH19XCI+XG4gIEBmb3IoaXRlbSBvZiBpdGVtczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkgKXtcbiAgPGxpIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCI+XG5cblxuICAgIDxsYWJlbCBbY2xhc3MuYXgtaGlkZS1jb250cm9sXT1cIiFzaG93Q29udHJvbFwiPlxuICAgICAgQGlmKG11bHRpcGxlKXtcbiAgICAgIDxpbnB1dCBbaWRdPVwiaWQgKyAnLScgKyBpXCIgY2xhc3M9XCJheC1jaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwiX2hhbmRsZU9uSXRlbVZhbHVlQ2hhbmdlKGl0ZW0sICRldmVudClcIlxuICAgICAgICBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpdGVtW2Rpc2FibGVkRmllbGRdXCIgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCIgLz5cbiAgICAgIH0gQGVsc2V7XG4gICAgICA8aW5wdXQgW2lkXT1cImlkICsgJy0nICsgaVwiIGNsYXNzPVwiYXgtcmFkaW9cIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5uYW1lXT1cImlkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJfaGFuZGxlT25JdGVtVmFsdWVDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiIFtjaGVja2VkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGl0ZW1bZGlzYWJsZWRGaWVsZF1cIiBbcmVhZE9ubHldPVwicmVhZG9ubHlcIiAvPlxuICAgICAgfVxuXG4gICAgICBAaWYoY3VzdG9tVGVtcGxhdGUpe1xuICAgICAgPGRpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOml0ZW0gfSB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIHt7IGdldERpc3BsYXlUZXh0KGl0ZW0pIH19XG4gICAgICAgIEBpZihpdGVtW2hpbnRGaWVsZF0pe1xuICAgICAgICA8cCBjbGFzcz1cImF4LWhpbnQtdGV4dFwiPlxuICAgICAgICAgIHt7IGl0ZW1baGludEZpZWxkXSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuXG5cbiAgICA8L2xhYmVsPlxuXG5cbiAgPC9saT5cbiAgfVxuPC91bD5cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPiA8L25nLWNvbnRlbnQ+Il19
@@ -1,6 +1,10 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
2
  import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * @category
6
+ * A component for displaying a side menu with customizable content.
7
+ */
4
8
  export class AXSideMenuComponent extends MXBaseComponent {
5
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXSideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
10
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXSideMenuComponent, selector: "ax-side-menu", usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-side-menu-item,ax-title,ng-container,ng-content\"></ng-content>", styles: ["ax-side-menu{display:flex;width:100%;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:.875rem;line-height:1.25rem;color:inherit}ax-side-menu>ax-title{margin-bottom:.5rem;display:block;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{margin-bottom:.5rem;margin-top:.5rem;display:block;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{margin-top:.25rem;margin-bottom:.25rem;display:block;height:1px;width:100%;background-color:rgba(var(--ax-color-border-default))}ax-side-menu ax-side-menu-item .ax-side-item{padding:.5rem 1rem;margin-bottom:.25rem;font-size:inherit;position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;overflow:hidden;border-radius:var(--ax-rounded-border-default);font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5!important}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled),ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-color-primary-200))!important;color:rgba(var(--ax-color-primary-fore-tint))!important}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-color-primary-fore-tint))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;line-height:1;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{transform:rotate(90deg)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-color-white))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-color-primary-500),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{overflow:hidden;padding-left:1.25rem;padding-right:1.25rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1em}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}html[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}html[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{transform:rotate(-90deg)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -9,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
9
13
  type: Component,
10
14
  args: [{ selector: 'ax-side-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"ax-side-menu-item,ax-title,ng-container,ng-content\"></ng-content>", styles: ["ax-side-menu{display:flex;width:100%;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:.875rem;line-height:1.25rem;color:inherit}ax-side-menu>ax-title{margin-bottom:.5rem;display:block;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{margin-bottom:.5rem;margin-top:.5rem;display:block;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{margin-top:.25rem;margin-bottom:.25rem;display:block;height:1px;width:100%;background-color:rgba(var(--ax-color-border-default))}ax-side-menu ax-side-menu-item .ax-side-item{padding:.5rem 1rem;margin-bottom:.25rem;font-size:inherit;position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;overflow:hidden;border-radius:var(--ax-rounded-border-default);font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5!important}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled),ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-color-primary-200))!important;color:rgba(var(--ax-color-primary-fore-tint))!important}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-color-primary-fore-tint))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;line-height:1;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{transform:rotate(90deg)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-color-white))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-color-primary-500),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{overflow:hidden;padding-left:1.25rem;padding-right:1.25rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1em}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}html[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}html[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{transform:rotate(-90deg)!important}\n"] }]
11
15
  }] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2xpYi9zaWRlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTdEYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7OEdBQTNDLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDJFQ1ZoQyx5RkFBcUY7OzJGRFV4RSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zaWRlLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFNpZGVNZW51Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxuZy1jb250YWluZXIsbmctY29udGVudFwiPjwvbmctY29udGVudD4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2xpYi9zaWRlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdEY7OztHQUdHO0FBUUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7OEdBQTNDLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDJFQ2RoQyx5RkFBcUY7OzJGRGN4RSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYSBzaWRlIG1lbnUgd2l0aCBjdXN0b21pemFibGUgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2lkZS1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGUtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc2lkZS1tZW51LWl0ZW0sYXgtdGl0bGUsbmctY29udGFpbmVyLG5nLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+Il19
@@ -1,11 +1,21 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
2
  import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * @category
6
+ * A skeleton component used for loading placeholders.
7
+ */
4
8
  export class AXSkeletonComponent extends MXBaseComponent {
5
9
  constructor() {
6
10
  super(...arguments);
11
+ /**
12
+ * Determines whether animations are enabled.
13
+ *
14
+ * @defaultValue true
15
+ */
7
16
  this.animated = true;
8
17
  }
18
+ /** @ignore */
9
19
  get __hostClass() {
10
20
  return `ax-skeleton ${this.animated ? 'ax-skeleton-animate' : ''}`;
11
21
  }
@@ -21,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
21
31
  type: HostBinding,
22
32
  args: ['class']
23
33
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NrZWxldG9uL3NyYy9saWIvc2tlbGV0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUWpGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBTnhEOztRQU9XLGFBQVEsR0FBRyxJQUFJLENBQUM7S0FNMUI7SUFKQyxJQUNJLFdBQVc7UUFDYixPQUFPLGVBQWUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3JFLENBQUM7OEdBTlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsbUtBSnBCLDJCQUEyQjs7MkZBSTFCLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLFlBQ2IsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJOzhCQUc1QixRQUFRO3NCQUFoQixLQUFLO2dCQUdGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2tlbGV0b24nLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdHlsZVVybHM6IFsnLi9za2VsZXRvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFNrZWxldG9uQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgYW5pbWF0ZWQgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LXNrZWxldG9uICR7dGhpcy5hbmltYXRlZCA/ICdheC1za2VsZXRvbi1hbmltYXRlJyA6ICcnfWA7XG4gIH1cbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NrZWxldG9uL3NyYy9saWIvc2tlbGV0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWpGOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBTnhEOztRQU9FOzs7O1dBSUc7UUFDTSxhQUFRLEdBQUcsSUFBSSxDQUFDO0tBTzFCO0lBTEMsY0FBYztJQUNkLElBQ0ksV0FBVztRQUNiLE9BQU8sZUFBZSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDckUsQ0FBQzs4R0FaVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixtS0FKcEIsMkJBQTJCOzsyRkFJMUIsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsWUFDYiwyQkFBMkIsaUJBRXRCLGlCQUFpQixDQUFDLElBQUk7OEJBUTVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBza2VsZXRvbiBjb21wb25lbnQgdXNlZCBmb3IgbG9hZGluZyBwbGFjZWhvbGRlcnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNrZWxldG9uJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3R5bGVVcmxzOiBbJy4vc2tlbGV0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTa2VsZXRvbkNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW5pbWF0aW9ucyBhcmUgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB0cnVlXG4gICAqL1xuICBASW5wdXQoKSBhbmltYXRlZCA9IHRydWU7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgYXgtc2tlbGV0b24gJHt0aGlzLmFuaW1hdGVkID8gJ2F4LXNrZWxldG9uLWFuaW1hdGUnIDogJyd9YDtcbiAgfVxufVxuIl19