@acorex/components 18.5.17 → 18.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +5 -0
  2. package/button-group/lib/button-group.component.d.ts +5 -2
  3. package/calendar/lib/calendar-range.component.d.ts +1 -1
  4. package/calendar/lib/calendar.component.d.ts +1 -1
  5. package/circular-progress/lib/circular-progress.component.d.ts +21 -57
  6. package/color-box/lib/color-box.component.d.ts +1 -1
  7. package/conversation/lib/conversation-input/conversation-input.component.d.ts +1 -1
  8. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +28 -0
  9. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +20 -0
  10. package/data-pager/lib/data-pager.component.d.ts +111 -0
  11. package/data-table/lib/columns/data-text-column.component.d.ts +58 -0
  12. package/data-table/lib/columns/row-command-column.component.d.ts +83 -0
  13. package/data-table/lib/columns/row-index-column.component.d.ts +51 -0
  14. package/data-table/lib/columns/row-select-column.component.d.ts +47 -0
  15. package/data-table/lib/data-table/data-table.component.d.ts +200 -0
  16. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +185 -0
  17. package/datetime-box/lib/datetime-box.component.d.ts +60 -2
  18. package/datetime-input/lib/datetime-input.component.d.ts +133 -0
  19. package/datetime-picker/lib/datetime-picker.component.d.ts +96 -1
  20. package/decorators/lib/components/clear-button.component.d.ts +25 -0
  21. package/decorators/lib/components/close-button.component.d.ts +22 -0
  22. package/decorators/lib/components/generic-content.component.d.ts +4 -0
  23. package/decorators/lib/components/icon.component.d.ts +12 -0
  24. package/dialog/lib/dialog.component.d.ts +20 -0
  25. package/drawer/lib/drawer-container.component.d.ts +7 -0
  26. package/drawer/lib/drawer.component.d.ts +104 -0
  27. package/dropdown/lib/dropdown-box.component.d.ts +66 -0
  28. package/dropdown/lib/dropdown-panel.component.d.ts +85 -0
  29. package/dropdown-button/lib/dropdown-button.component.d.ts +38 -0
  30. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  31. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  32. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  33. package/esm2022/alert/lib/alert.component.mjs +3 -3
  34. package/esm2022/alert/lib/alert.module.mjs +4 -4
  35. package/esm2022/audio-wave/lib/audio-wave.component.mjs +9 -4
  36. package/esm2022/audio-wave/lib/audio-wave.module.mjs +4 -4
  37. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  38. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  39. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  40. package/esm2022/badge/lib/badge.component.mjs +3 -3
  41. package/esm2022/badge/lib/badge.module.mjs +4 -4
  42. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +3 -3
  43. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +3 -3
  44. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +4 -4
  45. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  46. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  47. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  48. package/esm2022/button/lib/button-item-list.component.mjs +3 -3
  49. package/esm2022/button/lib/button-item.component.mjs +3 -3
  50. package/esm2022/button/lib/button.component.mjs +3 -3
  51. package/esm2022/button/lib/button.module.mjs +4 -4
  52. package/esm2022/button-group/lib/button-group.component.mjs +9 -6
  53. package/esm2022/button-group/lib/button-group.module.mjs +4 -4
  54. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  55. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  56. package/esm2022/calendar/lib/calendar.component.mjs +3 -3
  57. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  58. package/esm2022/check-box/lib/check-box.component.mjs +3 -3
  59. package/esm2022/check-box/lib/check-box.module.mjs +4 -4
  60. package/esm2022/chips/lib/chips.component.mjs +3 -3
  61. package/esm2022/chips/lib/chips.module.mjs +4 -4
  62. package/esm2022/circular-progress/lib/circular-progress.component.mjs +46 -115
  63. package/esm2022/circular-progress/lib/circular-progress.module.mjs +4 -4
  64. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  65. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  66. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  67. package/esm2022/color-box/lib/color-box.component.mjs +3 -3
  68. package/esm2022/color-box/lib/color-box.module.mjs +4 -4
  69. package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
  70. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +4 -4
  71. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  72. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  73. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  74. package/esm2022/color-palette/lib/color-palette.component.mjs +3 -3
  75. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  76. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +3 -3
  77. package/esm2022/comment/lib/comment-item/comment-item.component.mjs +3 -3
  78. package/esm2022/comment/lib/comment-like/comment-like.component.mjs +3 -3
  79. package/esm2022/comment/lib/comment-reply/comment-reply.component.mjs +3 -3
  80. package/esm2022/comment/lib/comment-reply-text/comment-reply-text.component.mjs +3 -3
  81. package/esm2022/comment/lib/comment-view/comment-view.component.mjs +3 -3
  82. package/esm2022/comment/lib/comment.module.mjs +4 -4
  83. package/esm2022/comment/lib/services/comment.service.mjs +3 -3
  84. package/esm2022/common/lib/classes/components.class.mjs +21 -21
  85. package/esm2022/common/lib/common.module.mjs +4 -4
  86. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  87. package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
  88. package/esm2022/common/lib/components/look-component.class.mjs +3 -3
  89. package/esm2022/common/lib/components/selection-base.component.class.mjs +6 -6
  90. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  91. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  92. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
  93. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  94. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  95. package/esm2022/common/lib/directives/inverted-color.directive.mjs +3 -3
  96. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  97. package/esm2022/common/lib/directives/ripple.directive.mjs +3 -3
  98. package/esm2022/common/lib/services/dom.service.mjs +3 -3
  99. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  100. package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +3 -3
  101. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +3 -3
  102. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +3 -3
  103. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +3 -3
  104. package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +3 -3
  105. package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +3 -3
  106. package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +3 -3
  107. package/esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.mjs +3 -3
  108. package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +3 -3
  109. package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +3 -3
  110. package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +3 -3
  111. package/esm2022/conversation/lib/conversation.module.mjs +4 -4
  112. package/esm2022/conversation/lib/conversation.types.mjs +3 -3
  113. package/esm2022/conversation/lib/services/conversation-message-type-registry.service.mjs +3 -3
  114. package/esm2022/conversation/lib/services/conversation.service.mjs +3 -3
  115. package/esm2022/conversation/lib/services/recording.service.mjs +3 -3
  116. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  117. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  118. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  119. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  120. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  121. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +26 -4
  122. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +21 -4
  123. package/esm2022/data-pager/lib/data-pager.component.mjs +112 -4
  124. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  125. package/esm2022/data-table/lib/base-data-table.class.mjs +3 -3
  126. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +3 -3
  127. package/esm2022/data-table/lib/columns/data-table-column.mjs +3 -3
  128. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +35 -4
  129. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +69 -7
  130. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +43 -4
  131. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +42 -4
  132. package/esm2022/data-table/lib/data-table/data-table.component.mjs +187 -5
  133. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  134. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +162 -4
  135. package/esm2022/datetime-box/lib/datetime-box.component.mjs +54 -5
  136. package/esm2022/datetime-box/lib/datetime-box.module.mjs +4 -4
  137. package/esm2022/datetime-input/lib/datetime-input.component.mjs +125 -4
  138. package/esm2022/datetime-input/lib/datetime-input.module.mjs +4 -4
  139. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +93 -4
  140. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +4 -4
  141. package/esm2022/decorators/lib/components/clear-button.component.mjs +29 -4
  142. package/esm2022/decorators/lib/components/close-button.component.mjs +26 -4
  143. package/esm2022/decorators/lib/components/generic-content.component.mjs +8 -4
  144. package/esm2022/decorators/lib/components/icon.component.mjs +16 -4
  145. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  146. package/esm2022/dialog/lib/dialog.component.mjs +22 -5
  147. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  148. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  149. package/esm2022/drawer/lib/drawer-container.component.mjs +11 -4
  150. package/esm2022/drawer/lib/drawer.component.mjs +105 -4
  151. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  152. package/esm2022/dropdown/lib/dropdown-box.class.mjs +3 -3
  153. package/esm2022/dropdown/lib/dropdown-box.component.mjs +61 -4
  154. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +80 -4
  155. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  156. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +39 -4
  157. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +4 -4
  158. package/esm2022/form/lib/form-field.component.mjs +43 -4
  159. package/esm2022/form/lib/form.component.mjs +62 -4
  160. package/esm2022/form/lib/form.module.mjs +4 -4
  161. package/esm2022/form/lib/validation-rule.directive.mjs +3 -3
  162. package/esm2022/form/lib/validation-summary.component.mjs +44 -4
  163. package/esm2022/image/lib/image.component.mjs +50 -4
  164. package/esm2022/image/lib/image.module.mjs +4 -4
  165. package/esm2022/label/lib/label.component.mjs +35 -4
  166. package/esm2022/label/lib/label.module.mjs +4 -4
  167. package/esm2022/list/lib/list.component.mjs +87 -4
  168. package/esm2022/list/lib/list.module.mjs +4 -4
  169. package/esm2022/loading/lib/loading-spinner.component.mjs +20 -4
  170. package/esm2022/loading/lib/loading.component.mjs +30 -4
  171. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  172. package/esm2022/loading/lib/loading.module.mjs +4 -4
  173. package/esm2022/loading/lib/loading.service.mjs +3 -3
  174. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +42 -5
  175. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +4 -4
  176. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +3 -3
  177. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +50 -4
  178. package/esm2022/menu/lib/menu.component.mjs +10 -4
  179. package/esm2022/menu/lib/menu.module.mjs +4 -4
  180. package/esm2022/menu/lib/menu.service.mjs +3 -3
  181. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +26 -4
  182. package/esm2022/nav/lib/nav.component.mjs +8 -4
  183. package/esm2022/nav/lib/nav.module.mjs +4 -4
  184. package/esm2022/navbar/lib/navbar.component.mjs +9 -4
  185. package/esm2022/navbar/lib/navbar.module.mjs +4 -4
  186. package/esm2022/notification/lib/notification.component.mjs +13 -4
  187. package/esm2022/notification/lib/notification.module.mjs +4 -4
  188. package/esm2022/notification/lib/notification.service.mjs +3 -3
  189. package/esm2022/number-box/lib/number-box.component.mjs +77 -8
  190. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  191. package/esm2022/otp/lib/otp.component.mjs +38 -4
  192. package/esm2022/otp/lib/otp.module.mjs +4 -4
  193. package/esm2022/page/lib/base-page.class.mjs +3 -3
  194. package/esm2022/page/lib/page.component.mjs +18 -4
  195. package/esm2022/page/lib/page.module.mjs +4 -4
  196. package/esm2022/paint/acorex-components-paint.mjs +5 -0
  197. package/esm2022/paint/index.mjs +8 -0
  198. package/esm2022/paint/lib/paint/paint-container/paint-container.component.mjs +38 -0
  199. package/esm2022/paint/lib/paint/paint-toolbar/paint-toolbar.component.mjs +15 -0
  200. package/esm2022/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.mjs +46 -0
  201. package/esm2022/paint/lib/paint/paint-tools/paint-pen-cap/paint-pen-cap.component.mjs +37 -0
  202. package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +55 -0
  203. package/esm2022/paint/lib/paint/paint-view/paint-view.component.mjs +104 -0
  204. package/esm2022/paint/lib/paint/paint.service.mjs +17 -0
  205. package/esm2022/paint/lib/paint.module.mjs +50 -0
  206. package/esm2022/password-box/lib/password-box.component.mjs +13 -4
  207. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  208. package/esm2022/phone-box/lib/phone-box.component.mjs +38 -4
  209. package/esm2022/phone-box/lib/phone-box.module.mjs +4 -4
  210. package/esm2022/picker/lib/picker-column.directive.mjs +3 -3
  211. package/esm2022/picker/lib/picker.component.mjs +29 -4
  212. package/esm2022/picker/lib/picker.module.mjs +4 -4
  213. package/esm2022/popover/lib/popover.component.mjs +118 -4
  214. package/esm2022/popover/lib/popover.module.mjs +4 -4
  215. package/esm2022/popup/lib/popup.component.mjs +34 -9
  216. package/esm2022/popup/lib/popup.module.mjs +4 -4
  217. package/esm2022/popup/lib/popup.service.mjs +3 -3
  218. package/esm2022/progress-bar/lib/progress-bar.component.mjs +33 -4
  219. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  220. package/esm2022/radio/lib/radio.component.mjs +8 -5
  221. package/esm2022/radio/lib/radio.module.mjs +4 -4
  222. package/esm2022/range-slider/lib/range-slider.component.mjs +8 -4
  223. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  224. package/esm2022/result/lib/result.component.mjs +18 -4
  225. package/esm2022/result/lib/result.module.mjs +4 -4
  226. package/esm2022/routing-progress/lib/routing-progress.component.mjs +19 -4
  227. package/esm2022/routing-progress/lib/routing-progress.module.mjs +4 -4
  228. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +3 -3
  229. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +3 -3
  230. package/esm2022/scheduler/lib/scheduler.component.mjs +6 -4
  231. package/esm2022/scheduler/lib/scheduler.module.mjs +4 -4
  232. package/esm2022/scss/lib/scss.module.mjs +4 -4
  233. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  234. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  235. package/esm2022/select-box/lib/select-box.component.mjs +5 -5
  236. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  237. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  238. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  239. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +3 -3
  240. package/esm2022/side-menu/lib/side-menu.component.mjs +3 -3
  241. package/esm2022/side-menu/lib/side-menu.module.mjs +4 -4
  242. package/esm2022/skeleton/lib/skeleton.component.mjs +3 -3
  243. package/esm2022/skeleton/lib/skeleton.module.mjs +4 -4
  244. package/esm2022/slider/lib/slider.component.mjs +3 -3
  245. package/esm2022/slider/lib/slider.module.mjs +4 -4
  246. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +3 -3
  247. package/esm2022/step-wizard/lib/step-wizard.component.mjs +17 -4
  248. package/esm2022/step-wizard/lib/step-wizard.directive.mjs +3 -3
  249. package/esm2022/step-wizard/lib/step-wizard.module.mjs +4 -4
  250. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  251. package/esm2022/switch/lib/switch.component.mjs +3 -3
  252. package/esm2022/switch/lib/switch.module.mjs +4 -4
  253. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  254. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  255. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  256. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  257. package/esm2022/tag/lib/tag.component.mjs +8 -4
  258. package/esm2022/tag/lib/tag.module.mjs +4 -4
  259. package/esm2022/text-area/lib/text-area.component.mjs +8 -4
  260. package/esm2022/text-area/lib/text-area.module.mjs +4 -4
  261. package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
  262. package/esm2022/text-box/lib/text-box.component.mjs +3 -3
  263. package/esm2022/text-box/lib/text-box.module.mjs +4 -4
  264. package/esm2022/toast/lib/toast.component.mjs +3 -3
  265. package/esm2022/toast/lib/toast.module.mjs +4 -4
  266. package/esm2022/toast/lib/toast.service.mjs +3 -3
  267. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  268. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  269. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  270. package/esm2022/uploader/index.mjs +5 -5
  271. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +3 -3
  272. package/esm2022/uploader/lib/{uploader-dialog-container.component.mjs → uploader-dialog-container/uploader-dialog-container.component.mjs} +5 -5
  273. package/esm2022/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.mjs +27 -0
  274. package/esm2022/uploader/lib/uploader-list/uploader-list.component.mjs +24 -0
  275. package/esm2022/uploader/lib/uploader-zone.directive.mjs +26 -19
  276. package/esm2022/uploader/lib/uploader.models.mjs +26 -11
  277. package/esm2022/uploader/lib/uploader.module.mjs +22 -17
  278. package/esm2022/uploader/lib/uploader.service.mjs +54 -25
  279. package/esm2022/wysiwyg/index.mjs +7 -1
  280. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +56 -24
  281. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +7 -267
  282. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +59 -0
  283. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +53 -0
  284. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.mjs +156 -0
  285. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.mjs +36 -0
  286. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +49 -0
  287. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.mjs +67 -0
  288. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +9 -8
  289. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +4 -5
  290. package/esm2022/wysiwyg/lib/wysiwyg.module.mjs +38 -6
  291. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  292. package/fesm2022/acorex-components-alert.mjs +7 -7
  293. package/fesm2022/acorex-components-audio-wave.mjs +12 -7
  294. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  295. package/fesm2022/acorex-components-avatar.mjs +10 -10
  296. package/fesm2022/acorex-components-badge.mjs +7 -7
  297. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  298. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  299. package/fesm2022/acorex-components-button-group.mjs +12 -9
  300. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  301. package/fesm2022/acorex-components-button.mjs +13 -13
  302. package/fesm2022/acorex-components-calendar.mjs +13 -13
  303. package/fesm2022/acorex-components-check-box.mjs +7 -7
  304. package/fesm2022/acorex-components-chips.mjs +7 -7
  305. package/fesm2022/acorex-components-circular-progress.mjs +49 -118
  306. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  307. package/fesm2022/acorex-components-collapse.mjs +10 -10
  308. package/fesm2022/acorex-components-color-box.mjs +7 -7
  309. package/fesm2022/acorex-components-color-palette.mjs +26 -26
  310. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  311. package/fesm2022/acorex-components-comment.mjs +25 -25
  312. package/fesm2022/acorex-components-common.mjs +70 -70
  313. package/fesm2022/acorex-components-conversation.mjs +49 -49
  314. package/fesm2022/acorex-components-data-pager.mjs +178 -31
  315. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  316. package/fesm2022/acorex-components-data-table.mjs +545 -35
  317. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  318. package/fesm2022/acorex-components-datetime-box.mjs +57 -8
  319. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  320. package/fesm2022/acorex-components-datetime-input.mjs +128 -7
  321. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  322. package/fesm2022/acorex-components-datetime-picker.mjs +96 -7
  323. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  324. package/fesm2022/acorex-components-decorators.mjs +79 -16
  325. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  326. package/fesm2022/acorex-components-dialog.mjs +28 -11
  327. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  328. package/fesm2022/acorex-components-drawer.mjs +118 -10
  329. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  330. package/fesm2022/acorex-components-dropdown-button.mjs +42 -7
  331. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  332. package/fesm2022/acorex-components-dropdown.mjs +146 -13
  333. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  334. package/fesm2022/acorex-components-form.mjs +153 -16
  335. package/fesm2022/acorex-components-form.mjs.map +1 -1
  336. package/fesm2022/acorex-components-image.mjs +53 -7
  337. package/fesm2022/acorex-components-image.mjs.map +1 -1
  338. package/fesm2022/acorex-components-label.mjs +38 -7
  339. package/fesm2022/acorex-components-label.mjs.map +1 -1
  340. package/fesm2022/acorex-components-list.mjs +90 -7
  341. package/fesm2022/acorex-components-list.mjs.map +1 -1
  342. package/fesm2022/acorex-components-loading-dialog.mjs +48 -11
  343. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  344. package/fesm2022/acorex-components-loading.mjs +58 -16
  345. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  346. package/fesm2022/acorex-components-menu.mjs +65 -13
  347. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  348. package/fesm2022/acorex-components-nav.mjs +36 -10
  349. package/fesm2022/acorex-components-nav.mjs.map +1 -1
  350. package/fesm2022/acorex-components-navbar.mjs +12 -7
  351. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  352. package/fesm2022/acorex-components-notification.mjs +19 -10
  353. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  354. package/fesm2022/acorex-components-number-box.mjs +80 -11
  355. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  356. package/fesm2022/acorex-components-otp.mjs +41 -7
  357. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  358. package/fesm2022/acorex-components-page.mjs +24 -10
  359. package/fesm2022/acorex-components-page.mjs.map +1 -1
  360. package/fesm2022/acorex-components-paint.mjs +336 -0
  361. package/fesm2022/acorex-components-paint.mjs.map +1 -0
  362. package/fesm2022/acorex-components-password-box.mjs +16 -7
  363. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  364. package/fesm2022/acorex-components-phone-box.mjs +41 -7
  365. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  366. package/fesm2022/acorex-components-picker.mjs +35 -10
  367. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  368. package/fesm2022/acorex-components-popover.mjs +121 -7
  369. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  370. package/fesm2022/acorex-components-popup.mjs +40 -15
  371. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  372. package/fesm2022/acorex-components-progress-bar.mjs +36 -7
  373. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  374. package/fesm2022/acorex-components-radio.mjs +11 -8
  375. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  376. package/fesm2022/acorex-components-range-slider.mjs +11 -7
  377. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  378. package/fesm2022/acorex-components-result.mjs +21 -7
  379. package/fesm2022/acorex-components-result.mjs.map +1 -1
  380. package/fesm2022/acorex-components-routing-progress.mjs +22 -7
  381. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  382. package/fesm2022/acorex-components-scheduler.mjs +15 -13
  383. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  384. package/fesm2022/acorex-components-scss.mjs +4 -4
  385. package/fesm2022/acorex-components-search-box.mjs +7 -7
  386. package/fesm2022/acorex-components-select-box.mjs +8 -8
  387. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  388. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  389. package/fesm2022/acorex-components-side-menu.mjs +10 -10
  390. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  391. package/fesm2022/acorex-components-slider.mjs +7 -7
  392. package/fesm2022/acorex-components-step-wizard.mjs +26 -13
  393. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  394. package/fesm2022/acorex-components-switch.mjs +10 -10
  395. package/fesm2022/acorex-components-tabs.mjs +13 -13
  396. package/fesm2022/acorex-components-tag.mjs +11 -7
  397. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  398. package/fesm2022/acorex-components-text-area.mjs +11 -7
  399. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  400. package/fesm2022/acorex-components-text-box.mjs +10 -10
  401. package/fesm2022/acorex-components-toast.mjs +10 -10
  402. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  403. package/fesm2022/acorex-components-uploader.mjs +141 -82
  404. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  405. package/fesm2022/acorex-components-wysiwyg.mjs +365 -178
  406. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  407. package/form/lib/form-field.component.d.ts +45 -0
  408. package/form/lib/form.component.d.ts +58 -0
  409. package/form/lib/validation-summary.component.d.ts +49 -0
  410. package/image/lib/image.component.d.ts +61 -0
  411. package/label/lib/label.component.d.ts +34 -0
  412. package/list/lib/list.component.d.ts +98 -0
  413. package/loading/lib/loading-spinner.component.d.ts +20 -0
  414. package/loading/lib/loading.component.d.ts +35 -0
  415. package/loading-dialog/lib/loading-dialog.component.d.ts +39 -1
  416. package/menu/lib/menu-item/menu-item.component.d.ts +52 -0
  417. package/menu/lib/menu.component.d.ts +7 -0
  418. package/nav/lib/nav-item/nav-item.component.d.ts +22 -0
  419. package/nav/lib/nav.component.d.ts +4 -0
  420. package/navbar/lib/navbar.component.d.ts +5 -0
  421. package/notification/lib/notification.component.d.ts +11 -0
  422. package/number-box/lib/number-box.component.d.ts +74 -1
  423. package/otp/lib/otp.component.d.ts +35 -1
  424. package/package.json +74 -68
  425. package/page/lib/page.component.d.ts +15 -0
  426. package/paint/README.md +3 -0
  427. package/paint/index.d.ts +7 -0
  428. package/paint/lib/paint/paint-container/paint-container.component.d.ts +16 -0
  429. package/paint/lib/paint/paint-toolbar/paint-toolbar.component.d.ts +9 -0
  430. package/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.d.ts +27 -0
  431. package/paint/lib/paint/paint-tools/paint-pen-cap/paint-pen-cap.component.d.ts +20 -0
  432. package/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.d.ts +33 -0
  433. package/paint/lib/paint/paint-view/paint-view.component.d.ts +42 -0
  434. package/paint/lib/paint/paint.service.d.ts +10 -0
  435. package/paint/lib/paint.module.d.ts +19 -0
  436. package/password-box/lib/password-box.component.d.ts +14 -1
  437. package/phone-box/lib/phone-box.component.d.ts +39 -1
  438. package/picker/lib/picker.component.d.ts +29 -0
  439. package/popover/lib/popover.component.d.ts +129 -0
  440. package/popup/lib/popup.component.d.ts +39 -4
  441. package/progress-bar/lib/progress-bar.component.d.ts +30 -1
  442. package/radio/lib/radio.component.d.ts +7 -1
  443. package/range-slider/lib/range-slider.component.d.ts +4 -0
  444. package/result/lib/result.component.d.ts +14 -0
  445. package/routing-progress/lib/routing-progress.component.d.ts +16 -0
  446. package/scheduler/lib/scheduler.component.d.ts +2 -0
  447. package/search-box/lib/search-box.component.d.ts +1 -1
  448. package/select-box/lib/select-box.component.d.ts +1 -1
  449. package/slider/lib/slider.component.d.ts +1 -1
  450. package/step-wizard/lib/step-wizard.component.d.ts +13 -0
  451. package/switch/lib/switch.component.d.ts +1 -1
  452. package/tag/lib/tag.component.d.ts +4 -0
  453. package/text-area/lib/text-area.component.d.ts +6 -1
  454. package/text-box/lib/text-box.component.d.ts +1 -1
  455. package/uploader/index.d.ts +4 -4
  456. package/uploader/lib/{uploader-drop-zone.component.d.ts → uploader-drop-zone/uploader-drop-zone.component.d.ts} +3 -1
  457. package/uploader/lib/{uploader-list.component.d.ts → uploader-list/uploader-list.component.d.ts} +2 -3
  458. package/uploader/lib/uploader-zone.directive.d.ts +1 -0
  459. package/uploader/lib/uploader.models.d.ts +14 -4
  460. package/uploader/lib/uploader.module.d.ts +4 -4
  461. package/uploader/lib/uploader.service.d.ts +6 -1
  462. package/wysiwyg/index.d.ts +6 -0
  463. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +20 -15
  464. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +1 -100
  465. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.d.ts +31 -0
  466. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +35 -0
  467. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.d.ts +37 -0
  468. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.d.ts +21 -0
  469. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.d.ts +35 -0
  470. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.d.ts +23 -0
  471. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +3 -1
  472. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +0 -1
  473. package/wysiwyg/lib/wysiwyg.module.d.ts +14 -8
  474. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +0 -18
  475. package/esm2022/uploader/lib/uploader-list.component.mjs +0 -26
  476. /package/uploader/lib/{uploader-dialog-container.component.d.ts → uploader-dialog-container/uploader-dialog-container.component.d.ts} +0 -0
@@ -5,40 +5,83 @@ import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
5
5
  import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
6
6
  import { delay, fromEvent } from 'rxjs';
7
7
  import * as i0 from "@angular/core";
8
+ /**
9
+ * @category Components
10
+ * A popover component with custom encapsulation and change detection settings.
11
+ */
8
12
  export class AXPopoverComponent extends MXBaseComponent {
9
13
  constructor() {
10
14
  super(...arguments);
15
+ /** @ignore */
11
16
  this._platform = inject(AXPlatform);
17
+ /** @ignore */
12
18
  this._overlay = inject(Overlay);
19
+ /** @ignore */
13
20
  this._isMouseOverButton = false;
21
+ /** @ignore */
14
22
  this._isMouseOverTooltip = false;
23
+ /** @ignore */
15
24
  this._targetEvents = {};
25
+ /** @ignore */
16
26
  this._overlayEvents = {};
17
27
  //
28
+ /** @ignore */
18
29
  this._offsetX = 0;
19
30
  //
31
+ /** @ignore */
20
32
  this._offsetY = 0;
21
33
  //
34
+ /** @ignore */
22
35
  this._defautPlacements = convertToPlacement('bottom-start');
36
+ /** @ignore */
23
37
  this._placements = [...this._defautPlacements];
38
+ /** @ignore */
24
39
  this._placement = this._placements;
25
40
  //
41
+ /** @ignore */
26
42
  this._openOn = 'toggle';
27
43
  //
44
+ /** @ignore */
28
45
  this._closeOn = 'clickOut';
29
46
  //
47
+ /**
48
+ * Determines if a backdrop should be displayed behind the popover.
49
+ */
30
50
  this.hasBackdrop = false;
31
51
  //
52
+ /**
53
+ * Delay in milliseconds before the popover opens after a trigger event.
54
+ */
32
55
  this.openAfter = 200;
56
+ /**
57
+ * Delay in milliseconds before the popover closes after a trigger event.
58
+ */
33
59
  this.closeAfter = 200;
60
+ /**
61
+ * Enables or disables adaptivity.
62
+ */
34
63
  this.adaptivityEnabled = false;
35
64
  //
65
+ /**
66
+ * Emits when the component is opened.
67
+ * @event
68
+ */
36
69
  this.onOpened = new EventEmitter();
70
+ /**
71
+ * Emits when the component is closed.
72
+ * @event
73
+ */
37
74
  this.onClosed = new EventEmitter();
38
75
  }
76
+ /**
77
+ * Gets or sets the horizontal offset and updates it accordingly.
78
+ */
39
79
  get offsetX() {
40
80
  return this._offsetX;
41
81
  }
82
+ /**
83
+ * Sets the horizontal offset and updates it with a callback.
84
+ */
42
85
  set offsetX(v) {
43
86
  this.setOption({
44
87
  name: 'offsetX',
@@ -48,9 +91,15 @@ export class AXPopoverComponent extends MXBaseComponent {
48
91
  },
49
92
  });
50
93
  }
94
+ /**
95
+ * Vertical offset with update callback.
96
+ */
51
97
  get offsetY() {
52
98
  return this._offsetY;
53
99
  }
100
+ /**
101
+ * Sets the vertical offset and updates the component position.
102
+ */
54
103
  set offsetY(v) {
55
104
  this.setOption({
56
105
  name: 'offsetY',
@@ -60,9 +109,15 @@ export class AXPopoverComponent extends MXBaseComponent {
60
109
  },
61
110
  });
62
111
  }
112
+ /**
113
+ * Gets or sets the target element, supporting HTMLElement, ElementRef, or MXBaseComponent.
114
+ */
63
115
  get target() {
64
116
  return this._target;
65
117
  }
118
+ /**
119
+ * Sets the target element and updates event bindings.
120
+ */
66
121
  set target(v) {
67
122
  this.removeTargetEvents();
68
123
  if (v instanceof HTMLElement)
@@ -74,9 +129,15 @@ export class AXPopoverComponent extends MXBaseComponent {
74
129
  //
75
130
  this.bindTargetEvents();
76
131
  }
132
+ /**
133
+ * Gets or sets the component's placement and updates position settings.
134
+ */
77
135
  get placement() {
78
136
  return this._placement;
79
137
  }
138
+ /**
139
+ * Sets the component's placement and updates its position settings.
140
+ */
80
141
  set placement(v) {
81
142
  this.setOption({
82
143
  name: 'placement',
@@ -89,12 +150,21 @@ export class AXPopoverComponent extends MXBaseComponent {
89
150
  },
90
151
  });
91
152
  }
153
+ /**
154
+ * Gets the reference to the component.
155
+ */
92
156
  get componentRef() {
93
157
  return this._componentRef;
94
158
  }
159
+ /**
160
+ * Gets or sets the trigger for opening the popover and updates target events.
161
+ */
95
162
  get openOn() {
96
163
  return this._openOn;
97
164
  }
165
+ /**
166
+ * Sets the trigger for opening the popover and updates target events.
167
+ */
98
168
  set openOn(v) {
99
169
  this.setOption({
100
170
  name: 'openOn',
@@ -104,9 +174,16 @@ export class AXPopoverComponent extends MXBaseComponent {
104
174
  },
105
175
  });
106
176
  }
177
+ /**
178
+ * Gets or sets the trigger for closing the popover.
179
+ */
107
180
  get closeOn() {
108
181
  return this._closeOn;
109
182
  }
183
+ /**
184
+ * Sets the trigger for closing the popover and rebinds target events.
185
+ * @param v
186
+ */
110
187
  set closeOn(v) {
111
188
  this.setOption({
112
189
  name: 'closeOn',
@@ -116,12 +193,14 @@ export class AXPopoverComponent extends MXBaseComponent {
116
193
  },
117
194
  });
118
195
  }
196
+ /** @ignore */
119
197
  _emitOnOpenedEvent() {
120
198
  this.onOpened.emit({
121
199
  component: this,
122
200
  htmlElement: this.getHostElement(),
123
201
  });
124
202
  }
203
+ /** @ignore */
125
204
  _emitOnClosedEvent() {
126
205
  this.onClosed.emit({
127
206
  component: this,
@@ -129,9 +208,11 @@ export class AXPopoverComponent extends MXBaseComponent {
129
208
  });
130
209
  }
131
210
  //
211
+ /** @ignore */
132
212
  _handleMouseEnter(e) {
133
213
  this._isMouseOverTooltip = true;
134
214
  }
215
+ /** @ignore */
135
216
  _handleMouseLeave(e) {
136
217
  this._isMouseOverTooltip = false;
137
218
  setTimeout(() => {
@@ -140,11 +221,13 @@ export class AXPopoverComponent extends MXBaseComponent {
140
221
  }
141
222
  }, 250);
142
223
  }
224
+ /** @ignore */
143
225
  removeTargetEvents() {
144
226
  Object.entries(this._targetEvents).forEach((e) => {
145
227
  e[1].unsubscribe();
146
228
  });
147
229
  }
230
+ /** @ignore */
148
231
  bindTargetEvents() {
149
232
  this.removeTargetEvents();
150
233
  if (!this._target)
@@ -173,6 +256,7 @@ export class AXPopoverComponent extends MXBaseComponent {
173
256
  }
174
257
  }
175
258
  //
259
+ /** @ignore */
176
260
  bindOverlayEvents() {
177
261
  this.removeOverlayEvents();
178
262
  this._overlayEvents.attach = this._overlayRef.attachments().subscribe(() => {
@@ -208,6 +292,7 @@ export class AXPopoverComponent extends MXBaseComponent {
208
292
  });
209
293
  });
210
294
  }
295
+ /** @ignore */
211
296
  removeOverlayEvents() {
212
297
  this._overlayRef?.overlayElement.removeEventListener('mouseenter', this._handleMouseEnter.bind(this));
213
298
  this._overlayRef?.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));
@@ -216,10 +301,16 @@ export class AXPopoverComponent extends MXBaseComponent {
216
301
  });
217
302
  }
218
303
  //
304
+ /**
305
+ * Toggles the component's open state.
306
+ */
219
307
  toggle() {
220
308
  this.isOpen ? this.close() : this.open();
221
309
  }
222
310
  //
311
+ /**
312
+ * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.
313
+ */
223
314
  close() {
224
315
  if (!this.isOpen) {
225
316
  return;
@@ -229,6 +320,9 @@ export class AXPopoverComponent extends MXBaseComponent {
229
320
  this._emitOnClosedEvent();
230
321
  }
231
322
  //
323
+ /**
324
+ * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.
325
+ */
232
326
  open() {
233
327
  if (this.isOpen) {
234
328
  return;
@@ -237,16 +331,19 @@ export class AXPopoverComponent extends MXBaseComponent {
237
331
  this.openOverlayInternal();
238
332
  this._emitOnOpenedEvent();
239
333
  }
334
+ /** @ignore */
240
335
  saveFocus() {
241
336
  if (isBrowser()) {
242
337
  this._lastActiveElement = document.activeElement;
243
338
  }
244
339
  }
340
+ /** @ignore */
245
341
  restoreFocus() {
246
342
  if (this._lastActiveElement?.focus) {
247
343
  this._lastActiveElement.focus();
248
344
  }
249
345
  }
346
+ /** @ignore */
250
347
  openOverlayInternal() {
251
348
  const targetRef = this._target;
252
349
  if (!targetRef)
@@ -297,12 +394,21 @@ export class AXPopoverComponent extends MXBaseComponent {
297
394
  this._overlayRef?.attach(this._portal);
298
395
  }
299
396
  }
397
+ /**
398
+ * Checks if the overlay is currently open.
399
+ * @returns {boolean}
400
+ */
300
401
  get isOpen() {
301
402
  return this._overlayRef ? this._overlayRef.hasAttached() : false;
302
403
  }
404
+ /**
405
+ * Determines if the actionsheet style should be applied.
406
+ * @returns {boolean}
407
+ */
303
408
  get isActionsheetStyle() {
304
409
  return this._platform.is('SM') && this.adaptivityEnabled;
305
410
  }
411
+ /** @ignore */
306
412
  updatePositionStrategy() {
307
413
  const targetRef = this._target;
308
414
  if (!targetRef)
@@ -316,6 +422,7 @@ export class AXPopoverComponent extends MXBaseComponent {
316
422
  }
317
423
  this._overlayRef?.updatePositionStrategy(strategy);
318
424
  }
425
+ /** @ignore */
319
426
  updateOffset() {
320
427
  this._placements?.forEach((p) => {
321
428
  if (this.offsetY != null)
@@ -324,24 +431,31 @@ export class AXPopoverComponent extends MXBaseComponent {
324
431
  p.offsetX = this.offsetX;
325
432
  });
326
433
  }
434
+ /**
435
+ * Updates the position of the overlay and focuses on it.
436
+ */
327
437
  updatePosition() {
328
438
  this._overlayRef?.updatePosition();
329
439
  this.focus();
330
440
  }
441
+ /**
442
+ * Focuses the overlay element.
443
+ */
331
444
  focus() {
332
445
  //TODO: need this??
333
446
  }
334
447
  //
448
+ /** @ignore */
335
449
  ngOnDestroy() {
336
450
  this.removeTargetEvents();
337
451
  this.removeOverlayEvents();
338
452
  this._overlayRef?.detach();
339
453
  this._overlayRef?.dispose();
340
454
  }
341
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
342
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPopoverComponent, selector: "ax-popover", inputs: { offsetX: "offsetX", offsetY: "offsetY", target: "target", placement: "placement", content: "content", openOn: "openOn", closeOn: "closeOn", hasBackdrop: "hasBackdrop", openAfter: "openAfter", closeAfter: "closeAfter", backdropClass: "backdropClass", adaptivityEnabled: "adaptivityEnabled" }, outputs: { onOpened: "onOpened", onClosed: "onClosed" }, providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }], viewQueries: [{ propertyName: "_baseTemplate", first: true, predicate: ["baseTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
455
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
456
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPopoverComponent, selector: "ax-popover", inputs: { offsetX: "offsetX", offsetY: "offsetY", target: "target", placement: "placement", content: "content", openOn: "openOn", closeOn: "closeOn", hasBackdrop: "hasBackdrop", openAfter: "openAfter", closeAfter: "closeAfter", backdropClass: "backdropClass", adaptivityEnabled: "adaptivityEnabled" }, outputs: { onOpened: "onOpened", onClosed: "onClosed" }, providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }], viewQueries: [{ propertyName: "_baseTemplate", first: true, predicate: ["baseTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
343
457
  }
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPopoverComponent, decorators: [{
458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopoverComponent, decorators: [{
345
459
  type: Component,
346
460
  args: [{ selector: 'ax-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }], template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>" }]
347
461
  }], propDecorators: { offsetX: [{
@@ -376,4 +490,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
376
490
  }], onClosed: [{
377
491
  type: Output
378
492
  }] } });
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUF5QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFhdEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFQdkQ7O1FBUVUsY0FBUyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxhQUFRLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsa0JBQWEsR0FJakIsRUFBRSxDQUFDO1FBQ0MsbUJBQWMsR0FLbEIsRUFBRSxDQUFDO1FBRVAsRUFBRTtRQUNNLGFB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QUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBdFlVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDRZQUZsQixDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLDhLQ25DakYsMEVBRWM7OzJGRG1DRCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsWUFBWSxpQkFFUCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxvQkFBb0IsRUFBRSxDQUFDOzhCQXdCcEUsT0FBTztzQkFEakIsS0FBSztnQkFnQkssT0FBTztzQkFEakIsS0FBSztnQkFpQkssTUFBTTtzQkFEaEIsS0FBSztnQkFtQkssU0FBUztzQkFEbkIsS0FBSztnQkE0Qk4sYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTNDLE9BQU87c0JBRE4sS0FBSztnQkFNSyxNQUFNO3NCQURoQixLQUFLO2dCQWdCSyxPQUFPO3NCQURqQixLQUFLO2dCQWdCTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFHUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbm5lY3RlZFBvc2l0aW9uLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhQbGFjZW1lbnRUeXBlLFxuICBNWEJhc2VDb21wb25lbnQsXG4gIGNvbnZlcnRUb1BsYWNlbWVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBsYXRmb3JtLCBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgUG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkZWxheSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2snIHwgJ2hvdmVyJyB8ICd0b2dnbGUnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJDbG9zZVRyaWdnZXIgPSAnbWFudWFsJyB8ICdjbGlja091dCcgfCAnbGVhdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wb3ZlckNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfcGxhdGZvcm06IEFYUGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xuICBwcml2YXRlIF9pc01vdXNlT3ZlckJ1dHRvbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pc01vdXNlT3ZlclRvb2x0aXAgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGFzdEFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90YXJnZXRFdmVudHM6IHtcbiAgICBtb3VzZWVudGVyPzogU3Vic2NyaXB0aW9uO1xuICAgIG1vdXNlbGVhdmU/OiBTdWJzY3JpcHRpb247XG4gICAgY2xpY2s/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUV2ZW50czoge1xuICAgIGF0dGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBkZXRhY2g/OiBTdWJzY3JpcHRpb247XG4gICAgc2Nyb2xsPzogU3Vic2NyaXB0aW9uO1xuICAgIG91dHNpZGU/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvL1xuICBwcml2YXRlIF9vZmZzZXRYID0gMDtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvZmZzZXRYKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFg7XG4gIH1cbiAgcHVibGljIHNldCBvZmZzZXRYKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvZmZzZXRYJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuICBwcml2YXRlIF9vZmZzZXRZID0gMDtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvZmZzZXRZKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFk7XG4gIH1cbiAgcHVibGljIHNldCBvZmZzZXRZKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvZmZzZXRZJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIHByaXZhdGUgX3RhcmdldCE6IEhUTUxFbGVtZW50O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBNWEJhc2VDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gIH1cbiAgcHVibGljIHNldCB0YXJnZXQodjogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgTVhCYXNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAodiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB0aGlzLl90YXJnZXQgPSB2O1xuICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB0aGlzLl90YXJnZXQgPSB2Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxzZSBpZiAodHlwZW9mIHY/LmdldEhvc3RFbGVtZW50ID09ICdmdW5jdGlvbicpIHRoaXMuX3RhcmdldCA9IHYuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAvL1xuICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICB9XG4gIC8vXG4gIHByaXZhdGUgX2RlZmF1dFBsYWNlbWVudHM6IEFYQ29ubmVjdGVkUG9zaXRpb25bXSA9IGNvbnZlcnRUb1BsYWNlbWVudCgnYm90dG9tLXN0YXJ0Jyk7XG5cbiAgcHJpdmF0ZSBfcGxhY2VtZW50czogQVhDb25uZWN0ZWRQb3NpdGlvbltdID0gWy4uLnRoaXMuX2RlZmF1dFBsYWNlbWVudHNdO1xuXG4gIHByaXZhdGUgX3BsYWNlbWVudDogQVhQbGFjZW1lbnRUeXBlID0gdGhpcy5fcGxhY2VtZW50cztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwbGFjZW1lbnQoKTogQVhQbGFjZW1lbnRUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2VtZW50O1xuICB9XG4gIHB1YmxpYyBzZXQgcGxhY2VtZW50KHY6IEFYUGxhY2VtZW50VHlwZSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdwbGFjZW1lbnQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAobywgbikgPT4ge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWQgPSBjb252ZXJ0VG9QbGFjZW1lbnQobik7XG4gICAgICAgIHRoaXMuX3BsYWNlbWVudHMgPSBjb252ZXJ0ZWQubGVuZ3RoID8gY29udmVydGVkIDogdGhpcy5fZGVmYXV0UGxhY2VtZW50cztcbiAgICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG4gIHByaXZhdGUgX3BvcnRhbDogUG9ydGFsPHVua25vd24+O1xuXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+O1xuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFJlZigpOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY7XG4gIH1cblxuICBwdWJsaWMgY29udGV4dDogdW5rbm93bjtcblxuICAvL1xuICBAVmlld0NoaWxkKCdiYXNlVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYmFzZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgLy9cbiAgQElucHV0KClcbiAgY29udGVudDogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBDb21wb25lbnRUeXBlPHVua25vd24+O1xuICAvL1xuICBwcml2YXRlIF9vcGVuT246IEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ3RvZ2dsZSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvcGVuT24oKTogQVhQb3BvdmVyT3BlblRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9vcGVuT247XG4gIH1cbiAgcHVibGljIHNldCBvcGVuT24odjogQVhQb3BvdmVyT3BlblRyaWdnZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnb3Blbk9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cbiAgcHJpdmF0ZSBfY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyID0gJ2NsaWNrT3V0JztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjbG9zZU9uKCk6IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlT247XG4gIH1cbiAgcHVibGljIHNldCBjbG9zZU9uKHY6IEFYUG9wb3ZlckNsb3NlVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjbG9zZU9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1xuICBASW5wdXQoKVxuICBoYXNCYWNrZHJvcCA9IGZhbHNlO1xuICAvL1xuICBASW5wdXQoKVxuICBvcGVuQWZ0ZXIgPSAyMDA7XG4gIEBJbnB1dCgpXG4gIGNsb3NlQWZ0ZXIgPSAyMDA7XG5cbiAgQElucHV0KClcbiAgYmFja2Ryb3BDbGFzczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGFkYXB0aXZpdHlFbmFibGVkID0gZmFsc2U7XG4gIC8vXG4gIEBPdXRwdXQoKVxuICBvbk9wZW5lZDogRXZlbnRFbWl0dGVyPEFYRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEV2ZW50PigpO1xuICBAT3V0cHV0KClcbiAgb25DbG9zZWQ6IEV2ZW50RW1pdHRlcjxBWEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhFdmVudD4oKTtcblxuICBwcml2YXRlIF9lbWl0T25PcGVuZWRFdmVudCgpIHtcbiAgICB0aGlzLm9uT3BlbmVkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRPbkNsb3NlZEV2ZW50KCkge1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVNb3VzZUVudGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9pc01vdXNlT3ZlclRvb2x0aXAgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVNb3VzZUxlYXZlKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9pc01vdXNlT3ZlclRvb2x0aXAgPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gJiYgdGhpcy5jbG9zZU9uID09ICdsZWF2ZScpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0sIDI1MCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVRhcmdldEV2ZW50cygpOiB2b2lkIHtcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLl90YXJnZXRFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFRhcmdldEV2ZW50cygpIHtcbiAgICB0aGlzLnJlbW92ZVRhcmdldEV2ZW50cygpO1xuICAgIGlmICghdGhpcy5fdGFyZ2V0KSByZXR1cm47XG4gICAgY29uc3QgdGFyZ2V0TW91c2VFbnRlciQgPSBmcm9tRXZlbnQodGhpcy5fdGFyZ2V0LCAnbW91c2VlbnRlcicpO1xuICAgIGNvbnN0IHRhcmdldE1vdXNlTGVhdmUkID0gZnJvbUV2ZW50KHRoaXMuX3RhcmdldCwgJ21vdXNlbGVhdmUnKTtcblxuICAgIGlmICh0aGlzLm9wZW5PbiA9PSAnaG92ZXInKSB7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMubW91c2VlbnRlciA9IHRhcmdldE1vdXNlRW50ZXIkLnBpcGUoZGVsYXkodGhpcy5vcGVuQWZ0ZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMubW91c2VsZWF2ZSA9IHRhcmdldE1vdXNlTGVhdmUkLnBpcGUoZGVsYXkodGhpcy5jbG9zZUFmdGVyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLl9pc01vdXNlT3ZlclRvb2x0aXApIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wZW5PbiA9PT0gJ2NsaWNrJyB8fCB0aGlzLm9wZW5PbiA9PT0gJ3RvZ2dsZScpIHtcbiAgICAgIGNvbnN0IGNsaWNrJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl90YXJnZXQsICdjbGljaycpO1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLmNsaWNrID0gY2xpY2skLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICB0aGlzLm9wZW5PbiA9PSAndG9nZ2xlJyA/IHRoaXMudG9nZ2xlKCkgOiB0aGlzLm9wZW4oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvL1xuICBwcml2YXRlIGJpbmRPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMucmVtb3ZlT3ZlcmxheUV2ZW50cygpO1xuICAgIHRoaXMuX292ZXJsYXlFdmVudHMuYXR0YWNoID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vcGVuT24gPT0gJ2hvdmVyJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX2hhbmRsZU1vdXNlTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5vdXRzaWRlID0gdGhpcy5fb3ZlcmxheVJlZi5fb3V0c2lkZVBvaW50ZXJFdmVudHMuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2NsaWNrT3V0JyAmJiB0aGlzLmlzT3BlbiAmJiAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJiAhdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKGVsKSkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvL1xuXG4gICAgICB0aGlzLl9vdmVybGF5RXZlbnRzLnNjcm9sbCA9IHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgLy9fX2F4Q29udGV4dF9fXG4gICAgICAgIGNvbnN0IGVsID0gYy5uYXRpdmVFdmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgICAgICBpZiAoZWwgPT0gKGRvY3VtZW50IGFzIGFueSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZWw/LmNsb3Nlc3QgJiZcbiAgICAgICAgICAgICFlbC5jbG9zZXN0KCcuYXgtb3ZlcmxheS1wYW5lJykgJiZcbiAgICAgICAgICAgICF0aGlzLl90YXJnZXQuY29udGFpbnMoZWwpICYmXG4gICAgICAgICAgICAhdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKGVsKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlFdmVudHMoKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuX2hhbmRsZU1vdXNlRW50ZXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX2hhbmRsZU1vdXNlTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5fb3ZlcmxheUV2ZW50cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZVsxXS51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy9cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMuaXNPcGVuID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gIH1cbiAgLy9cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLnJlc3RvcmVGb2N1cygpO1xuICAgIHRoaXMuX2VtaXRPbkNsb3NlZEV2ZW50KCk7XG4gIH1cblxuICAvL1xuICBvcGVuKCkge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNhdmVGb2N1cygpO1xuICAgIHRoaXMub3Blbk92ZXJsYXlJbnRlcm5hbCgpO1xuICAgIHRoaXMuX2VtaXRPbk9wZW5lZEV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVGb2N1cygpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpIHtcbiAgICBpZiAodGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQ/LmZvY3VzKSB7XG4gICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3Blbk92ZXJsYXlJbnRlcm5hbCgpIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcblxuICAgIC8vaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuYm90dG9tKCkuY2VudGVySG9yaXpvbnRhbGx5KCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgcGFuZWxDbGFzczogWydheC1hY3Rpb25zaGVldC1iYXNlJywgJ2F4LWFuaW1hdGUtc2xpZGVJblVwJywgJ2F4LWFuaW1hdGUtZmFzdGVyJ10sXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZikud2l0aFBvc2l0aW9ucyh0aGlzLl9wbGFjZW1lbnRzKS53aXRoUHVzaChmYWxzZSksXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxuICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtZmFkZUluJywgJ2F4LWFuaW1hdGUtZmFzdGVyJ10sXG4gICAgICAgIG1heEhlaWdodDogJ3Vuc2V0JyxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuaGFzQmFja2Ryb3AsXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6IFt0aGlzLmJhY2tkcm9wQ2xhc3MgfHwgJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJ10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmJpbmRPdmVybGF5RXZlbnRzKCk7XG4gICAgLy99XG4gICAgLy9cbiAgICBpZiAodGhpcy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnQsIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpLCB7XG4gICAgICAgICRpbXBsaWNpdDogdGhpcy5jb250ZXh0LFxuICAgICAgICByZWY6IHRoaXMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbnRlbnQpO1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5jb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX2Jhc2VUZW1wbGF0ZSwgdGhpcy5nZXRWaWV3Q29udGFpbmVyKCksIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiA/IHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGlzQWN0aW9uc2hlZXRTdHlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJykgJiYgdGhpcy5hZGFwdGl2aXR5RW5hYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25TdHJhdGVneSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcbiAgICBsZXQgc3RyYXRlZ3k6IFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5ib3R0b20oKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0YXJnZXRSZWYpLndpdGhQb3NpdGlvbnModGhpcy5fcGxhY2VtZW50cykud2l0aFB1c2goZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLl9vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlT2Zmc2V0KCkge1xuICAgIHRoaXMuX3BsYWNlbWVudHM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIGlmICh0aGlzLm9mZnNldFkgIT0gbnVsbCkgcC5vZmZzZXRZID0gdGhpcy5vZmZzZXRZO1xuICAgICAgaWYgKHRoaXMub2Zmc2V0WCAhPSBudWxsKSBwLm9mZnNldFggPSB0aGlzLm9mZnNldFg7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgLy9UT0RPOiBuZWVkIHRoaXM/P1xuICB9XG4gIC8vXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgdGhpcy5yZW1vdmVPdmVybGF5RXZlbnRzKCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2Jhc2VUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUF5QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNdEQ7OztHQUdHO0FBUUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFQdkQ7O1FBU0UsY0FBYztRQUNOLGNBQVMsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkQsY0FBYztRQUNOLGFBQVEsR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFLNUMsY0FBYztRQUNOLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUVuQyxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBS3BDLGNBQWM7UUFDTixrQkFB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b0IsRUFBRSxDQUFDOzhCQWtEcEUsT0FBTztzQkFMakIsS0FBSztnQkFrQ0ssT0FBTztzQkFMakIsS0FBSztnQkFtQ0ssTUFBTTtzQkFMaEIsS0FBSztnQkF1Q0ssU0FBUztzQkFMbkIsS0FBSztnQkFnRE4sYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUTNDLE9BQU87c0JBRE4sS0FBSztnQkFlSyxNQUFNO3NCQUxoQixLQUFLO2dCQWtDSyxPQUFPO3NCQUxqQixLQUFLO2dCQTZCTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixLQUFLO2dCQVNOLFFBQVE7c0JBRFAsTUFBTTtnQkFRUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbm5lY3RlZFBvc2l0aW9uLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhQbGFjZW1lbnRUeXBlLFxuICBNWEJhc2VDb21wb25lbnQsXG4gIGNvbnZlcnRUb1BsYWNlbWVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBsYXRmb3JtLCBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgUG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkZWxheSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2snIHwgJ2hvdmVyJyB8ICd0b2dnbGUnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJDbG9zZVRyaWdnZXIgPSAnbWFudWFsJyB8ICdjbGlja091dCcgfCAnbGVhdmUnO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKiBBIHBvcG92ZXIgY29tcG9uZW50IHdpdGggY3VzdG9tIGVuY2Fwc3VsYXRpb24gYW5kIGNoYW5nZSBkZXRlY3Rpb24gc2V0dGluZ3MuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQb3BvdmVyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXNNb3VzZU92ZXJCdXR0b24gPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9pc01vdXNlT3ZlclRvb2x0aXAgPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGFyZ2V0RXZlbnRzOiB7XG4gICAgbW91c2VlbnRlcj86IFN1YnNjcmlwdGlvbjtcbiAgICBtb3VzZWxlYXZlPzogU3Vic2NyaXB0aW9uO1xuICAgIGNsaWNrPzogU3Vic2NyaXB0aW9uO1xuICB9ID0ge307XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheUV2ZW50czoge1xuICAgIGF0dGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBkZXRhY2g/OiBTdWJzY3JpcHRpb247XG4gICAgc2Nyb2xsPzogU3Vic2NyaXB0aW9uO1xuICAgIG91dHNpZGU/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29mZnNldFggPSAwO1xuXG4vKipcbiAqIEdldHMgb3Igc2V0cyB0aGUgaG9yaXpvbnRhbCBvZmZzZXQgYW5kIHVwZGF0ZXMgaXQgYWNjb3JkaW5nbHkuXG4gKi9cbiAgQElucHV0KClcblxuICAvKipcbiAqIEdldHMgdGhlIGhvcml6b250YWwgb2Zmc2V0IHZhbHVlLlxuICovXG4gIHB1YmxpYyBnZXQgb2Zmc2V0WCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vZmZzZXRYO1xuICB9XG5cbiAgLyoqXG4gKiBTZXRzIHRoZSBob3Jpem9udGFsIG9mZnNldCBhbmQgdXBkYXRlcyBpdCB3aXRoIGEgY2FsbGJhY2suXG4gKi9cbiAgcHVibGljIHNldCBvZmZzZXRYKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvZmZzZXRYJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29mZnNldFkgPSAwO1xuXG4vKipcbiAqIFZlcnRpY2FsIG9mZnNldCB3aXRoIHVwZGF0ZSBjYWxsYmFjay5cbiAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgdmVydGljYWwgb2Zmc2V0IG9mIHRoZSBjb21wb25lbnQuXG4gKi9cbiAgcHVibGljIGdldCBvZmZzZXRZKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFk7XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIHZlcnRpY2FsIG9mZnNldCBhbmQgdXBkYXRlcyB0aGUgY29tcG9uZW50IHBvc2l0aW9uLlxuICovXG4gIHB1YmxpYyBzZXQgb2Zmc2V0WSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnb2Zmc2V0WScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3RhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4vKipcbiAqIEdldHMgb3Igc2V0cyB0aGUgdGFyZ2V0IGVsZW1lbnQsIHN1cHBvcnRpbmcgSFRNTEVsZW1lbnQsIEVsZW1lbnRSZWYsIG9yIE1YQmFzZUNvbXBvbmVudC5cbiAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgY3VycmVudCB0YXJnZXQgZWxlbWVudC5cbiAqL1xuICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBNWEJhc2VDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIHRhcmdldCBlbGVtZW50IGFuZCB1cGRhdGVzIGV2ZW50IGJpbmRpbmdzLlxuICovXG4gIHB1YmxpYyBzZXQgdGFyZ2V0KHY6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IE1YQmFzZUNvbXBvbmVudCkge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgaWYgKHYgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgdGhpcy5fdGFyZ2V0ID0gdjtcbiAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgRWxlbWVudFJlZikgdGhpcy5fdGFyZ2V0ID0gdi5uYXRpdmVFbGVtZW50O1xuICAgIGVsc2UgaWYgKHR5cGVvZiB2Py5nZXRIb3N0RWxlbWVudCA9PSAnZnVuY3Rpb24nKSB0aGlzLl90YXJnZXQgPSB2LmdldEhvc3RFbGVtZW50KCk7XG4gICAgLy9cbiAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2RlZmF1dFBsYWNlbWVudHM6IEFYQ29ubmVjdGVkUG9zaXRpb25bXSA9IGNvbnZlcnRUb1BsYWNlbWVudCgnYm90dG9tLXN0YXJ0Jyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfcGxhY2VtZW50czogQVhDb25uZWN0ZWRQb3NpdGlvbltdID0gWy4uLnRoaXMuX2RlZmF1dFBsYWNlbWVudHNdO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BsYWNlbWVudDogQVhQbGFjZW1lbnRUeXBlID0gdGhpcy5fcGxhY2VtZW50cztcblxuLyoqXG4gKiBHZXRzIG9yIHNldHMgdGhlIGNvbXBvbmVudCdzIHBsYWNlbWVudCBhbmQgdXBkYXRlcyBwb3NpdGlvbiBzZXR0aW5ncy5cbiAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgY3VycmVudCBwbGFjZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBBWFBsYWNlbWVudFR5cGUge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZW1lbnQ7XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIGNvbXBvbmVudCdzIHBsYWNlbWVudCBhbmQgdXBkYXRlcyBpdHMgcG9zaXRpb24gc2V0dGluZ3MuXG4gKi9cbiAgcHVibGljIHNldCBwbGFjZW1lbnQodjogQVhQbGFjZW1lbnRUeXBlKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRUb1BsYWNlbWVudChuKTtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50cyA9IGNvbnZlcnRlZC5sZW5ndGggPyBjb252ZXJ0ZWQgOiB0aGlzLl9kZWZhdXRQbGFjZW1lbnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuLyoqXG4gKiBHZXRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudC5cbiAqL1xuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFJlZigpOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY7XG4gIH1cblxuICAvKipcbiAqIEhvbGRzIHRoZSBjb250ZXh0IGRhdGEgZm9yIHRoZSBjb21wb25lbnQuXG4gKi9cbiAgcHVibGljIGNvbnRleHQ6IHVua25vd247XG5cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdiYXNlVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYmFzZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgLy9cblxuICAvKipcbiAqIERlZmluZXMgdGhlIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkLCB3aGljaCBjYW4gYmUgYSB0ZW1wbGF0ZSBvciBhIGNvbXBvbmVudC5cbiAqL1xuICBASW5wdXQoKVxuICBjb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3Blbk9uOiBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICd0b2dnbGUnO1xuXG4gIC8qKlxuICogR2V0cyBvciBzZXRzIHRoZSB0cmlnZ2VyIGZvciBvcGVuaW5nIHRoZSBwb3BvdmVyIGFuZCB1cGRhdGVzIHRhcmdldCBldmVudHMuXG4gKi9cbiAgQElucHV0KClcblxuICAvKipcbiAqIEdldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIuXG4gKi9cbiAgcHVibGljIGdldCBvcGVuT24oKTogQVhQb3BvdmVyT3BlblRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9vcGVuT247XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIgYW5kIHVwZGF0ZXMgdGFyZ2V0IGV2ZW50cy5cbiAqL1xuICBwdWJsaWMgc2V0IG9wZW5Pbih2OiBBWFBvcG92ZXJPcGVuVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvcGVuT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2Nsb3NlT246IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciA9ICdjbGlja091dCc7XG5cbiAgLyoqXG4gKiBHZXRzIG9yIHNldHMgdGhlIHRyaWdnZXIgZm9yIGNsb3NpbmcgdGhlIHBvcG92ZXIuXG4gKi9cbiAgQElucHV0KClcblxuLyoqXG4gKiBHZXRzIHRoZSB0cmlnZ2VyIGZvciBjbG9zaW5nIHRoZSBwb3BvdmVyLlxuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VPbigpOiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZU9uO1xuICB9XG5cbi8qKlxuICogU2V0cyB0aGUgdHJpZ2dlciBmb3IgY2xvc2luZyB0aGUgcG9wb3ZlciBhbmQgcmViaW5kcyB0YXJnZXQgZXZlbnRzLlxuICogQHBhcmFtIHZcbiAqL1xuICBwdWJsaWMgc2V0IGNsb3NlT24odjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Nsb3NlT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG5cbiAgLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgYmFja2Ryb3Agc2hvdWxkIGJlIGRpc3BsYXllZCBiZWhpbmQgdGhlIHBvcG92ZXIuXG4gKi9cbiAgQElucHV0KClcbiAgaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgLy9cblxuLyoqXG4gKiBEZWxheSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBwb3BvdmVyIG9wZW5zIGFmdGVyIGEgdHJpZ2dlciBldmVudC5cbiAqL1xuICBASW5wdXQoKVxuICBvcGVuQWZ0ZXIgPSAyMDA7XG5cbi8qKlxuICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgcG9wb3ZlciBjbG9zZXMgYWZ0ZXIgYSB0cmlnZ2VyIGV2ZW50LlxuICovXG4gIEBJbnB1dCgpXG4gIGNsb3NlQWZ0ZXIgPSAyMDA7XG5cbi8qKlxuICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBiYWNrZHJvcCBlbGVtZW50LlxuICovXG4gIEBJbnB1dCgpXG4gIGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcblxuLyoqXG4gKiBFbmFibGVzIG9yIGRpc2FibGVzIGFkYXB0aXZpdHkuXG4gKi9cbiAgQElucHV0KClcbiAgYWRhcHRpdml0eUVuYWJsZWQgPSBmYWxzZTtcbiAgLy9cblxuLyoqXG4gKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLlxuICogQGV2ZW50XG4gKi9cbiAgQE91dHB1dCgpXG4gIG9uT3BlbmVkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbi8qKlxuICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqIEBldmVudFxuICovXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEV2ZW50PigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2VtaXRPbk9wZW5lZEV2ZW50KCkge1xuICAgIHRoaXMub25PcGVuZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdE9uQ2xvc2VkRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU1vdXNlRW50ZXIoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCA9IHRydWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU1vdXNlTGVhdmUoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiAmJiB0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVtb3ZlVGFyZ2V0RXZlbnRzKCk6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX3RhcmdldEV2ZW50cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZVsxXS51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBiaW5kVGFyZ2V0RXZlbnRzKCkge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgaWYgKCF0aGlzLl90YXJnZXQpIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXRNb3VzZUVudGVyJCA9IGZyb21FdmVudCh0aGlzLl90YXJnZXQsICdtb3VzZWVudGVyJyk7XG4gICAgY29uc3QgdGFyZ2V0TW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fdGFyZ2V0LCAnbW91c2VsZWF2ZScpO1xuXG4gICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5tb3VzZWVudGVyID0gdGFyZ2V0TW91c2VFbnRlciQucGlwZShkZWxheSh0aGlzLm9wZW5BZnRlcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzTW91c2VPdmVyQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uID09ICdsZWF2ZScpIHtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5tb3VzZWxlYXZlID0gdGFyZ2V0TW91c2VMZWF2ZSQucGlwZShkZWxheSh0aGlzLmNsb3NlQWZ0ZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk9uID09PSAnY2xpY2snIHx8IHRoaXMub3Blbk9uID09PSAndG9nZ2xlJykge1xuICAgICAgY29uc3QgY2xpY2skID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX3RhcmdldCwgJ2NsaWNrJyk7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMuY2xpY2sgPSBjbGljayQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMub3Blbk9uID09ICd0b2dnbGUnID8gdGhpcy50b2dnbGUoKSA6IHRoaXMub3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBiaW5kT3ZlcmxheUV2ZW50cygpIHtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5RXZlbnRzLmF0dGFjaCA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5faGFuZGxlTW91c2VFbnRlci5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMub3V0c2lkZSA9IHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5jbG9zZU9uID09ICdjbGlja091dCcgJiYgdGhpcy5pc09wZW4gJiYgIXRoaXMuX3RhcmdldC5jb250YWlucyhlbCkgJiYgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbCkpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy9cblxuICAgICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5zY3JvbGwgPSB0aGlzLl9wbGF0Zm9ybS5zY3JvbGwuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIC8vX19heENvbnRleHRfX1xuICAgICAgICBjb25zdCBlbCA9IGMubmF0aXZlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICAgICAgaWYgKGVsID09IChkb2N1bWVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsPy5jbG9zZXN0ICYmXG4gICAgICAgICAgICAhZWwuY2xvc2VzdCgnLmF4LW92ZXJsYXktcGFuZScpICYmXG4gICAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX292ZXJsYXlFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICogVG9nZ2xlcyB0aGUgY29tcG9uZW50J3Mgb3BlbiBzdGF0ZS5cbiAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIC8vXG4vKipcbiAqIENsb3NlcyB0aGUgY29tcG9uZW50IGlmIGl0J3Mgb3BlbiwgZGV0YWNoZXMgdGhlIG92ZXJsYXksIHJlc3RvcmVzIGZvY3VzLCBhbmQgZW1pdHMgdGhlIGNsb3NlZCBldmVudC5cbiAqL1xuICBjbG9zZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgdGhpcy5fZW1pdE9uQ2xvc2VkRXZlbnQoKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICogT3BlbnMgdGhlIGNvbXBvbmVudCBpZiBpdCdzIG5vdCBhbHJlYWR5IG9wZW4sIHNhdmVzIGZvY3VzLCBvcGVucyB0aGUgb3ZlcmxheSwgYW5kIGVtaXRzIHRoZSBvcGVuZWQgZXZlbnQuXG4gKi9cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zYXZlRm9jdXMoKTtcbiAgICB0aGlzLm9wZW5PdmVybGF5SW50ZXJuYWwoKTtcbiAgICB0aGlzLl9lbWl0T25PcGVuZWRFdmVudCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzYXZlRm9jdXMoKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50Py5mb2N1cykge1xuICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIG9wZW5PdmVybGF5SW50ZXJuYWwoKSB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICghdGFyZ2V0UmVmKSByZXR1cm47XG5cbiAgICAvL2lmICghdGhpcy5fb3ZlcmxheVJlZikge1xuICAgIGlmICh0aGlzLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmJvdHRvbSgpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYWN0aW9uc2hlZXQtYmFzZScsICdheC1hbmltYXRlLXNsaWRlSW5VcCcsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0YXJnZXRSZWYpLndpdGhQb3NpdGlvbnModGhpcy5fcGxhY2VtZW50cykud2l0aFB1c2goZmFsc2UpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgICBtYXhIZWlnaHQ6ICd1bnNldCcsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiBbdGhpcy5iYWNrZHJvcENsYXNzIHx8ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5iaW5kT3ZlcmxheUV2ZW50cygpO1xuICAgIC8vfVxuICAgIC8vXG4gICAgaWYgKHRoaXMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5jb250ZW50LCB0aGlzLmdldFZpZXdDb250YWluZXIoKSwge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb250ZW50KTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UsIHRoaXMuY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9iYXNlVGVtcGxhdGUsIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpLCB7XG4gICAgICAgICRpbXBsaWNpdDogdGhpcy5jb250ZXh0LFxuICAgICAgICByZWY6IHRoaXMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICogQ2hlY2tzIGlmIHRoZSBvdmVybGF5IGlzIGN1cnJlbnRseSBvcGVuLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiA/IHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSA6IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBhY3Rpb25zaGVldCBzdHlsZSBzaG91bGQgYmUgYXBwbGllZC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG4gIGdldCBpc0FjdGlvbnNoZWV0U3R5bGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtLmlzKCdTTScpICYmIHRoaXMuYWRhcHRpdml0eUVuYWJsZWQ7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICghdGFyZ2V0UmVmKSByZXR1cm47XG4gICAgbGV0IHN0cmF0ZWd5OiBQb3NpdGlvblN0cmF0ZWd5O1xuICAgIGlmICh0aGlzLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuYm90dG9tKCkuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKS53aXRoUG9zaXRpb25zKHRoaXMuX3BsYWNlbWVudHMpLndpdGhQdXNoKGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLl9wbGFjZW1lbnRzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAodGhpcy5vZmZzZXRZICE9IG51bGwpIHAub2Zmc2V0WSA9IHRoaXMub2Zmc2V0WTtcbiAgICAgIGlmICh0aGlzLm9mZnNldFggIT0gbnVsbCkgcC5vZmZzZXRYID0gdGhpcy5vZmZzZXRYO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gKiBVcGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgb3ZlcmxheSBhbmQgZm9jdXNlcyBvbiBpdC5cbiAqL1xuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAqIEZvY3VzZXMgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgLy9UT0RPOiBuZWVkIHRoaXM/P1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjYmFzZVRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -3,11 +3,11 @@ import { NgModule } from '@angular/core';
3
3
  import { AXPopoverComponent } from './popover.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class AXPopoverModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPopoverModule, declarations: [AXPopoverComponent], imports: [CommonModule], exports: [AXPopoverComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPopoverModule, imports: [CommonModule] }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPopoverModule, declarations: [AXPopoverComponent], imports: [CommonModule], exports: [AXPopoverComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopoverModule, imports: [CommonModule] }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPopoverModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopoverModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [AXPopoverComponent],