mis-crystal-design-system 18.0.3 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/action-list/action-list.component.d.ts +1 -1
  2. package/analytics/analytics.service.d.ts +1 -1
  3. package/async-search-dropdown/async-dropdown.component.d.ts +2 -2
  4. package/button/button.component.d.ts +1 -1
  5. package/button/button.directive.d.ts +1 -1
  6. package/checkbox/checkbox.component.d.ts +1 -1
  7. package/chip/chip.component.d.ts +1 -1
  8. package/datepicker_v2/models/dp-config.model.d.ts +1 -1
  9. package/datepicker_v2/tz-datepicker.directive.d.ts +1 -1
  10. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +1 -1
  11. package/daterangepicker_v2/models/drp-config.model.d.ts +3 -1
  12. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -1
  13. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +3 -1
  14. package/drawer/drawer-body/drawer-body.component.d.ts +1 -1
  15. package/dropdown/calculate-container-height.directive.d.ts +1 -1
  16. package/dropdown/dropdown.component.d.ts +1 -1
  17. package/dynamic-form/dynamic-form.component.d.ts +1 -1
  18. package/esm2020/action-list/action-list.component.mjs +370 -0
  19. package/{esm2022 → esm2020}/action-list/action-list.module.mjs +5 -5
  20. package/{esm2022 → esm2020}/analytics/analytics.module.mjs +5 -5
  21. package/esm2020/analytics/analytics.service.mjs +64 -0
  22. package/esm2020/async-search-dropdown/async-dropdown.component.mjs +525 -0
  23. package/{esm2022 → esm2020}/async-search-dropdown/async-dropdown.module.mjs +5 -5
  24. package/esm2020/button/button.component.mjs +87 -0
  25. package/esm2020/button/button.directive.mjs +61 -0
  26. package/{esm2022 → esm2020}/button/button.module.mjs +5 -5
  27. package/esm2020/checkbox/checkbox.component.mjs +124 -0
  28. package/{esm2022 → esm2020}/checkbox/checkbox.module.mjs +5 -5
  29. package/esm2020/chip/chip.component.mjs +82 -0
  30. package/{esm2022 → esm2020}/chip/chip.module.mjs +5 -5
  31. package/{esm2022 → esm2020}/datepicker_v2/datepicker.module.mjs +5 -5
  32. package/esm2020/datepicker_v2/tz-datepicker.directive.mjs +183 -0
  33. package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +449 -0
  34. package/esm2020/datepicker_v2/utils/index.mjs +45 -0
  35. package/{esm2022 → esm2020}/daterangepicker_v2/daterangepicker.module.mjs +5 -5
  36. package/esm2020/daterangepicker_v2/models/drp-config.model.mjs +2 -0
  37. package/esm2020/daterangepicker_v2/tz-daterangepicker.directive.mjs +165 -0
  38. package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +502 -0
  39. package/{esm2022/datepicker_v2 → esm2020/daterangepicker_v2}/utils/index.mjs +1 -1
  40. package/esm2020/drawer/drawer-body/drawer-body.component.mjs +58 -0
  41. package/{esm2022 → esm2020}/drawer/drawer-ref.mjs +4 -4
  42. package/{esm2022 → esm2020}/drawer/drawer.module.mjs +5 -5
  43. package/{esm2022 → esm2020}/drawer/drawer.service.mjs +5 -5
  44. package/esm2020/dropdown/calculate-container-height.directive.mjs +41 -0
  45. package/esm2020/dropdown/dropdown.component.mjs +472 -0
  46. package/{esm2022 → esm2020}/dropdown/dropdown.module.mjs +5 -5
  47. package/esm2020/dynamic-form/dynamic-form.component.mjs +1108 -0
  48. package/{esm2022 → esm2020}/dynamic-form/dynamic-form.module.mjs +13 -13
  49. package/esm2020/fab/fab.component.mjs +144 -0
  50. package/{esm2022 → esm2020}/fab/fab.module.mjs +5 -5
  51. package/esm2020/filter/filter-panel/filter-panel.component.mjs +403 -0
  52. package/{esm2022 → esm2020}/filter/filters.module.mjs +17 -17
  53. package/esm2020/filter/has-value.pipe.mjs +31 -0
  54. package/{esm2022 → esm2020}/input/directives/input/input.directive.mjs +6 -6
  55. package/esm2020/input/mis-input.component.mjs +84 -0
  56. package/{esm2022 → esm2020}/input/mis-input.module.mjs +5 -5
  57. package/esm2020/input-stepper/input-stepper/input-stepper.component.mjs +88 -0
  58. package/{esm2022 → esm2020}/input-stepper/input-stepper.module.mjs +5 -5
  59. package/esm2020/loader/loader.component.mjs +24 -0
  60. package/{esm2022 → esm2020}/loader/loader.module.mjs +5 -5
  61. package/esm2020/menu/menu-close.directive.mjs +25 -0
  62. package/{esm2022 → esm2020}/menu/menu.directive.mjs +7 -7
  63. package/{esm2022 → esm2020}/menu/menu.module.mjs +5 -5
  64. package/esm2020/mobile-filter/mobile-filter.component.mjs +181 -0
  65. package/{esm2022 → esm2020}/mobile-filter/mobile-filter.module.mjs +5 -5
  66. package/{esm2022 → esm2020}/modal/modal.module.mjs +5 -5
  67. package/esm2020/modal/modal.service.mjs +70 -0
  68. package/esm2020/modal/module-wrapper/module-wrapper.component.mjs +55 -0
  69. package/esm2020/multi-select-dropdown/multi-select-dropdown.component.mjs +491 -0
  70. package/{esm2022 → esm2020}/multi-select-dropdown/multi-select-dropdown.module.mjs +5 -5
  71. package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +517 -0
  72. package/{esm2022 → esm2020}/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +5 -5
  73. package/esm2020/phone-input/phone-input.component.mjs +71 -0
  74. package/{esm2022 → esm2020}/phone-input/phone-input.module.mjs +5 -5
  75. package/esm2020/radio-button/radio-button.component.mjs +56 -0
  76. package/{esm2022 → esm2020}/radio-button/radio-button.module.mjs +5 -5
  77. package/esm2020/ske-loader/ske-loader.component.mjs +53 -0
  78. package/{esm2022 → esm2020}/ske-loader/ske-loader.module.mjs +5 -5
  79. package/esm2020/slider/slider.component.mjs +45 -0
  80. package/{esm2022 → esm2020}/slider/slider.module.mjs +7 -7
  81. package/esm2020/snackbar/snackbar/snackbar.component.mjs +72 -0
  82. package/{esm2022 → esm2020}/snackbar/snackbar.module.mjs +5 -5
  83. package/esm2020/snackbar/snackbar.service.mjs +47 -0
  84. package/{esm2022 → esm2020}/specificdatepicker/specificdatepicker.module.mjs +5 -5
  85. package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +646 -0
  86. package/esm2020/specificdatepicker/tz-specificdatepicker.directive.mjs +196 -0
  87. package/esm2020/specificdatepicker/utils/index.mjs +45 -0
  88. package/esm2020/star-rating/star-rating.component.mjs +112 -0
  89. package/{esm2022 → esm2020}/star-rating/star-rating.module.mjs +5 -5
  90. package/esm2020/switch/switch.component.mjs +55 -0
  91. package/{esm2022 → esm2020}/switch/switch.module.mjs +5 -5
  92. package/esm2020/table/custom-table-cell.directive.mjs +42 -0
  93. package/esm2020/table/filter/filter.component.mjs +176 -0
  94. package/esm2020/table/sub-table/sub-table.component.mjs +193 -0
  95. package/esm2020/table/table.component.mjs +492 -0
  96. package/{esm2022 → esm2020}/table/table.module.mjs +5 -5
  97. package/esm2020/timepicker/timepicker.component.mjs +370 -0
  98. package/esm2020/timepicker/timepicker.directive.mjs +69 -0
  99. package/{esm2022 → esm2020}/timepicker/timepicker.module.mjs +5 -5
  100. package/esm2020/timerangepicker/timerangepicker.component.mjs +236 -0
  101. package/{esm2022 → esm2020}/timerangepicker/timerangepicker.module.mjs +5 -5
  102. package/esm2020/toast/toast.component.mjs +50 -0
  103. package/{esm2022 → esm2020}/toast/toast.data.service.mjs +8 -8
  104. package/{esm2022 → esm2020}/toast/toast.module.mjs +5 -5
  105. package/esm2020/toast/toast.service.mjs +91 -0
  106. package/esm2020/tooltip/tooltip-container/tooltip.component.mjs +79 -0
  107. package/esm2020/tooltip/tooltip.directive.mjs +143 -0
  108. package/{esm2022 → esm2020}/tooltip/tooltip.module.mjs +5 -5
  109. package/esm2020/virtual-scroll/virtual-scroll.component.mjs +190 -0
  110. package/{esm2022 → esm2020}/virtual-scroll/virtual-scroll.module.mjs +7 -7
  111. package/esm2020/widgets/classes/async-widget.mjs +23 -0
  112. package/{esm2022 → esm2020}/widgets/classes/base-widget.mjs +1 -1
  113. package/esm2020/widgets/classes/sync-widget.mjs +20 -0
  114. package/{esm2022 → esm2020}/widgets/services/widget.service.mjs +5 -5
  115. package/{esm2022 → esm2020}/widgets/widgets.module.mjs +5 -5
  116. package/fab/fab.component.d.ts +4 -4
  117. package/fesm2015/mis-crystal-design-system-action-list.mjs +446 -0
  118. package/fesm2015/mis-crystal-design-system-action-list.mjs.map +1 -0
  119. package/fesm2015/mis-crystal-design-system-analytics.mjs +87 -0
  120. package/fesm2015/mis-crystal-design-system-analytics.mjs.map +1 -0
  121. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs +618 -0
  122. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
  123. package/fesm2015/mis-crystal-design-system-button.mjs +189 -0
  124. package/fesm2015/mis-crystal-design-system-button.mjs.map +1 -0
  125. package/fesm2015/mis-crystal-design-system-checkbox.mjs +166 -0
  126. package/fesm2015/mis-crystal-design-system-checkbox.mjs.map +1 -0
  127. package/fesm2015/mis-crystal-design-system-chip.mjs +123 -0
  128. package/fesm2015/mis-crystal-design-system-chip.mjs.map +1 -0
  129. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +751 -0
  130. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
  131. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +769 -0
  132. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
  133. package/fesm2015/mis-crystal-design-system-drawer.mjs +185 -0
  134. package/fesm2015/mis-crystal-design-system-drawer.mjs.map +1 -0
  135. package/fesm2015/mis-crystal-design-system-dropdown.mjs +616 -0
  136. package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -0
  137. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +1337 -0
  138. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
  139. package/fesm2015/mis-crystal-design-system-fab.mjs +186 -0
  140. package/fesm2015/mis-crystal-design-system-fab.mjs.map +1 -0
  141. package/fesm2015/mis-crystal-design-system-filter.mjs +559 -0
  142. package/fesm2015/mis-crystal-design-system-filter.mjs.map +1 -0
  143. package/fesm2015/mis-crystal-design-system-input-stepper.mjs +124 -0
  144. package/fesm2015/mis-crystal-design-system-input-stepper.mjs.map +1 -0
  145. package/fesm2015/mis-crystal-design-system-input.mjs +165 -0
  146. package/fesm2015/mis-crystal-design-system-input.mjs.map +1 -0
  147. package/fesm2015/mis-crystal-design-system-loader.mjs +57 -0
  148. package/fesm2015/mis-crystal-design-system-loader.mjs.map +1 -0
  149. package/fesm2015/mis-crystal-design-system-menu.mjs +135 -0
  150. package/fesm2015/mis-crystal-design-system-menu.mjs.map +1 -0
  151. package/fesm2015/mis-crystal-design-system-mobile-filter.mjs +227 -0
  152. package/fesm2015/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
  153. package/fesm2015/mis-crystal-design-system-modal.mjs +184 -0
  154. package/fesm2015/mis-crystal-design-system-modal.mjs.map +1 -0
  155. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs +550 -0
  156. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
  157. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs +559 -0
  158. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
  159. package/fesm2015/mis-crystal-design-system-phone-input.mjs +107 -0
  160. package/fesm2015/mis-crystal-design-system-phone-input.mjs.map +1 -0
  161. package/fesm2015/mis-crystal-design-system-radio-button.mjs +89 -0
  162. package/fesm2015/mis-crystal-design-system-radio-button.mjs.map +1 -0
  163. package/fesm2015/mis-crystal-design-system-ske-loader.mjs +86 -0
  164. package/fesm2015/mis-crystal-design-system-ske-loader.mjs.map +1 -0
  165. package/fesm2015/mis-crystal-design-system-slider.mjs +88 -0
  166. package/fesm2015/mis-crystal-design-system-slider.mjs.map +1 -0
  167. package/fesm2015/mis-crystal-design-system-snackbar.mjs +175 -0
  168. package/fesm2015/mis-crystal-design-system-snackbar.mjs.map +1 -0
  169. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +970 -0
  170. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
  171. package/fesm2015/mis-crystal-design-system-star-rating.mjs +145 -0
  172. package/fesm2015/mis-crystal-design-system-star-rating.mjs.map +1 -0
  173. package/fesm2015/mis-crystal-design-system-switch.mjs +88 -0
  174. package/fesm2015/mis-crystal-design-system-switch.mjs.map +1 -0
  175. package/fesm2015/mis-crystal-design-system-table.mjs +1045 -0
  176. package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -0
  177. package/fesm2015/mis-crystal-design-system-timepicker.mjs +484 -0
  178. package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +1 -0
  179. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs +273 -0
  180. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +1 -0
  181. package/fesm2015/mis-crystal-design-system-toast.mjs +214 -0
  182. package/fesm2015/mis-crystal-design-system-toast.mjs.map +1 -0
  183. package/fesm2015/mis-crystal-design-system-tooltip.mjs +272 -0
  184. package/fesm2015/mis-crystal-design-system-tooltip.mjs.map +1 -0
  185. package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs +259 -0
  186. package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
  187. package/fesm2015/mis-crystal-design-system-widgets.mjs +131 -0
  188. package/fesm2015/mis-crystal-design-system-widgets.mjs.map +1 -0
  189. package/{fesm2022 → fesm2020}/mis-crystal-design-system-action-list.mjs +113 -106
  190. package/fesm2020/mis-crystal-design-system-action-list.mjs.map +1 -0
  191. package/{fesm2022 → fesm2020}/mis-crystal-design-system-analytics.mjs +9 -9
  192. package/{fesm2022 → fesm2020}/mis-crystal-design-system-analytics.mjs.map +1 -1
  193. package/{fesm2022 → fesm2020}/mis-crystal-design-system-async-search-dropdown.mjs +144 -138
  194. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
  195. package/fesm2020/mis-crystal-design-system-button.mjs +172 -0
  196. package/fesm2020/mis-crystal-design-system-button.mjs.map +1 -0
  197. package/fesm2020/mis-crystal-design-system-checkbox.mjs +150 -0
  198. package/fesm2020/mis-crystal-design-system-checkbox.mjs.map +1 -0
  199. package/fesm2020/mis-crystal-design-system-chip.mjs +108 -0
  200. package/fesm2020/mis-crystal-design-system-chip.mjs.map +1 -0
  201. package/{fesm2022 → fesm2020}/mis-crystal-design-system-datepicker_v2.mjs +140 -133
  202. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
  203. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +736 -0
  204. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
  205. package/{fesm2022 → fesm2020}/mis-crystal-design-system-drawer.mjs +33 -34
  206. package/{fesm2022 → fesm2020}/mis-crystal-design-system-drawer.mjs.map +1 -1
  207. package/{fesm2022 → fesm2020}/mis-crystal-design-system-dropdown.mjs +184 -176
  208. package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -0
  209. package/{fesm2022 → fesm2020}/mis-crystal-design-system-dynamic-form.mjs +456 -441
  210. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
  211. package/{fesm2022 → fesm2020}/mis-crystal-design-system-fab.mjs +47 -48
  212. package/fesm2020/mis-crystal-design-system-fab.mjs.map +1 -0
  213. package/{fesm2022 → fesm2020}/mis-crystal-design-system-filter.mjs +140 -133
  214. package/fesm2020/mis-crystal-design-system-filter.mjs.map +1 -0
  215. package/{fesm2022 → fesm2020}/mis-crystal-design-system-input-stepper.mjs +34 -35
  216. package/{fesm2022 → fesm2020}/mis-crystal-design-system-input-stepper.mjs.map +1 -1
  217. package/{esm2022/input/mis-input.component.mjs → fesm2020/mis-crystal-design-system-input.mjs} +109 -49
  218. package/{fesm2022 → fesm2020}/mis-crystal-design-system-input.mjs.map +1 -1
  219. package/fesm2020/mis-crystal-design-system-loader.mjs +50 -0
  220. package/{fesm2022 → fesm2020}/mis-crystal-design-system-loader.mjs.map +1 -1
  221. package/{fesm2022 → fesm2020}/mis-crystal-design-system-menu.mjs +16 -16
  222. package/{fesm2022 → fesm2020}/mis-crystal-design-system-menu.mjs.map +1 -1
  223. package/fesm2020/mis-crystal-design-system-mobile-filter.mjs +206 -0
  224. package/fesm2020/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
  225. package/{fesm2022 → fesm2020}/mis-crystal-design-system-modal.mjs +33 -34
  226. package/{fesm2022 → fesm2020}/mis-crystal-design-system-modal.mjs.map +1 -1
  227. package/{fesm2022 → fesm2020}/mis-crystal-design-system-multi-select-dropdown.mjs +109 -107
  228. package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
  229. package/{fesm2022 → fesm2020}/mis-crystal-design-system-nested-multi-select-dropdown.mjs +129 -128
  230. package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
  231. package/{fesm2022 → fesm2020}/mis-crystal-design-system-phone-input.mjs +21 -22
  232. package/{fesm2022 → fesm2020}/mis-crystal-design-system-phone-input.mjs.map +1 -1
  233. package/fesm2020/mis-crystal-design-system-radio-button.mjs +82 -0
  234. package/{fesm2022 → fesm2020}/mis-crystal-design-system-radio-button.mjs.map +1 -1
  235. package/fesm2020/mis-crystal-design-system-ske-loader.mjs +76 -0
  236. package/fesm2020/mis-crystal-design-system-ske-loader.mjs.map +1 -0
  237. package/fesm2020/mis-crystal-design-system-slider.mjs +79 -0
  238. package/{fesm2022 → fesm2020}/mis-crystal-design-system-slider.mjs.map +1 -1
  239. package/{fesm2022 → fesm2020}/mis-crystal-design-system-snackbar.mjs +32 -32
  240. package/fesm2020/mis-crystal-design-system-snackbar.mjs.map +1 -0
  241. package/{fesm2022 → fesm2020}/mis-crystal-design-system-specificdatepicker.mjs +204 -204
  242. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
  243. package/{fesm2022 → fesm2020}/mis-crystal-design-system-star-rating.mjs +28 -29
  244. package/fesm2020/mis-crystal-design-system-star-rating.mjs.map +1 -0
  245. package/fesm2020/mis-crystal-design-system-styles.mjs +4 -0
  246. package/fesm2020/mis-crystal-design-system-styles.mjs.map +1 -0
  247. package/fesm2020/mis-crystal-design-system-switch.mjs +81 -0
  248. package/fesm2020/mis-crystal-design-system-switch.mjs.map +1 -0
  249. package/{fesm2022 → fesm2020}/mis-crystal-design-system-table.mjs +321 -314
  250. package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -0
  251. package/{fesm2022 → fesm2020}/mis-crystal-design-system-timepicker.mjs +74 -78
  252. package/{fesm2022 → fesm2020}/mis-crystal-design-system-timepicker.mjs.map +1 -1
  253. package/{fesm2022 → fesm2020}/mis-crystal-design-system-timerangepicker.mjs +25 -26
  254. package/{fesm2022 → fesm2020}/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  255. package/{fesm2022 → fesm2020}/mis-crystal-design-system-toast.mjs +34 -35
  256. package/{fesm2022 → fesm2020}/mis-crystal-design-system-toast.mjs.map +1 -1
  257. package/{fesm2022 → fesm2020}/mis-crystal-design-system-tooltip.mjs +47 -47
  258. package/{fesm2022 → fesm2020}/mis-crystal-design-system-tooltip.mjs.map +1 -1
  259. package/fesm2020/mis-crystal-design-system-utils.mjs +24 -0
  260. package/fesm2020/mis-crystal-design-system-utils.mjs.map +1 -0
  261. package/{fesm2022 → fesm2020}/mis-crystal-design-system-virtual-scroll.mjs +52 -50
  262. package/fesm2020/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
  263. package/{fesm2022 → fesm2020}/mis-crystal-design-system-widgets.mjs +4 -4
  264. package/{fesm2022 → fesm2020}/mis-crystal-design-system-widgets.mjs.map +1 -1
  265. package/fesm2020/mis-crystal-design-system.mjs +24 -0
  266. package/fesm2020/mis-crystal-design-system.mjs.map +1 -0
  267. package/filter/filter-panel/filter-panel.component.d.ts +4 -3
  268. package/input/directives/input/input.directive.d.ts +1 -1
  269. package/input/mis-input.component.d.ts +1 -1
  270. package/input-stepper/input-stepper/input-stepper.component.d.ts +1 -1
  271. package/loader/loader.component.d.ts +1 -1
  272. package/menu/menu-close.directive.d.ts +1 -1
  273. package/menu/menu.directive.d.ts +1 -1
  274. package/mobile-filter/mobile-filter.component.d.ts +1 -1
  275. package/modal/module-wrapper/module-wrapper.component.d.ts +1 -1
  276. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +1 -1
  277. package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +1 -1
  278. package/package.json +230 -148
  279. package/phone-input/phone-input.component.d.ts +1 -1
  280. package/radio-button/radio-button.component.d.ts +1 -1
  281. package/ske-loader/ske-loader.component.d.ts +1 -1
  282. package/slider/slider.component.d.ts +1 -1
  283. package/snackbar/snackbar/snackbar.component.d.ts +1 -1
  284. package/specificdatepicker/models/sdp-config.model.d.ts +1 -1
  285. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
  286. package/specificdatepicker/tz-specificdatepicker.directive.d.ts +1 -1
  287. package/star-rating/star-rating.component.d.ts +1 -1
  288. package/switch/switch.component.d.ts +1 -1
  289. package/table/custom-table-cell.directive.d.ts +1 -1
  290. package/table/filter/filter.component.d.ts +1 -1
  291. package/table/sub-table/sub-table.component.d.ts +1 -1
  292. package/table/table.component.d.ts +1 -1
  293. package/timepicker/timepicker.component.d.ts +1 -1
  294. package/timepicker/timepicker.directive.d.ts +1 -1
  295. package/timerangepicker/timerange.namespace.d.ts +1 -1
  296. package/timerangepicker/timerangepicker.component.d.ts +1 -1
  297. package/toast/toast.component.d.ts +1 -1
  298. package/toast/toast.service.d.ts +1 -1
  299. package/tooltip/models/tooltip.model.d.ts +1 -1
  300. package/tooltip/tooltip-container/tooltip.component.d.ts +1 -1
  301. package/tooltip/tooltip.directive.d.ts +1 -1
  302. package/virtual-scroll/virtual-scroll.component.d.ts +1 -1
  303. package/widgets/interfaces/widgets.model.d.ts +1 -1
  304. package/esm2022/action-list/action-list.component.mjs +0 -363
  305. package/esm2022/analytics/analytics.service.mjs +0 -64
  306. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +0 -519
  307. package/esm2022/button/button.component.mjs +0 -88
  308. package/esm2022/button/button.directive.mjs +0 -61
  309. package/esm2022/checkbox/checkbox.component.mjs +0 -124
  310. package/esm2022/chip/chip.component.mjs +0 -82
  311. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +0 -183
  312. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +0 -442
  313. package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +0 -2
  314. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +0 -156
  315. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +0 -473
  316. package/esm2022/daterangepicker_v2/utils/index.mjs +0 -45
  317. package/esm2022/drawer/drawer-body/drawer-body.component.mjs +0 -59
  318. package/esm2022/dropdown/calculate-container-height.directive.mjs +0 -41
  319. package/esm2022/dropdown/dropdown.component.mjs +0 -464
  320. package/esm2022/dynamic-form/dynamic-form.component.mjs +0 -1093
  321. package/esm2022/fab/fab.component.mjs +0 -145
  322. package/esm2022/filter/filter-panel/filter-panel.component.mjs +0 -396
  323. package/esm2022/filter/has-value.pipe.mjs +0 -31
  324. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +0 -89
  325. package/esm2022/loader/loader.component.mjs +0 -25
  326. package/esm2022/menu/menu-close.directive.mjs +0 -25
  327. package/esm2022/mobile-filter/mobile-filter.component.mjs +0 -180
  328. package/esm2022/modal/modal.service.mjs +0 -70
  329. package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +0 -56
  330. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +0 -489
  331. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +0 -516
  332. package/esm2022/phone-input/phone-input.component.mjs +0 -72
  333. package/esm2022/radio-button/radio-button.component.mjs +0 -57
  334. package/esm2022/ske-loader/ske-loader.component.mjs +0 -54
  335. package/esm2022/slider/slider.component.mjs +0 -46
  336. package/esm2022/snackbar/snackbar/snackbar.component.mjs +0 -72
  337. package/esm2022/snackbar/snackbar.service.mjs +0 -47
  338. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +0 -646
  339. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +0 -196
  340. package/esm2022/specificdatepicker/utils/index.mjs +0 -45
  341. package/esm2022/star-rating/star-rating.component.mjs +0 -113
  342. package/esm2022/switch/switch.component.mjs +0 -56
  343. package/esm2022/table/custom-table-cell.directive.mjs +0 -42
  344. package/esm2022/table/filter/filter.component.mjs +0 -177
  345. package/esm2022/table/sub-table/sub-table.component.mjs +0 -192
  346. package/esm2022/table/table.component.mjs +0 -485
  347. package/esm2022/timepicker/timepicker.component.mjs +0 -374
  348. package/esm2022/timepicker/timepicker.directive.mjs +0 -69
  349. package/esm2022/timerangepicker/timerangepicker.component.mjs +0 -237
  350. package/esm2022/toast/toast.component.mjs +0 -51
  351. package/esm2022/toast/toast.service.mjs +0 -91
  352. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +0 -79
  353. package/esm2022/tooltip/tooltip.directive.mjs +0 -143
  354. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +0 -188
  355. package/esm2022/widgets/classes/async-widget.mjs +0 -23
  356. package/esm2022/widgets/classes/sync-widget.mjs +0 -20
  357. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +0 -1
  358. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +0 -1
  359. package/fesm2022/mis-crystal-design-system-button.mjs +0 -173
  360. package/fesm2022/mis-crystal-design-system-button.mjs.map +0 -1
  361. package/fesm2022/mis-crystal-design-system-checkbox.mjs +0 -150
  362. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +0 -1
  363. package/fesm2022/mis-crystal-design-system-chip.mjs +0 -108
  364. package/fesm2022/mis-crystal-design-system-chip.mjs.map +0 -1
  365. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +0 -1
  366. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +0 -698
  367. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +0 -1
  368. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +0 -1
  369. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +0 -1
  370. package/fesm2022/mis-crystal-design-system-fab.mjs.map +0 -1
  371. package/fesm2022/mis-crystal-design-system-filter.mjs.map +0 -1
  372. package/fesm2022/mis-crystal-design-system-input.mjs +0 -146
  373. package/fesm2022/mis-crystal-design-system-loader.mjs +0 -51
  374. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +0 -205
  375. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +0 -1
  376. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +0 -1
  377. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +0 -1
  378. package/fesm2022/mis-crystal-design-system-radio-button.mjs +0 -83
  379. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +0 -77
  380. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +0 -1
  381. package/fesm2022/mis-crystal-design-system-slider.mjs +0 -80
  382. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +0 -1
  383. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +0 -1
  384. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +0 -1
  385. package/fesm2022/mis-crystal-design-system-switch.mjs +0 -82
  386. package/fesm2022/mis-crystal-design-system-switch.mjs.map +0 -1
  387. package/fesm2022/mis-crystal-design-system-table.mjs.map +0 -1
  388. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +0 -1
  389. /package/{esm2022 → esm2020}/action-list/index.mjs +0 -0
  390. /package/{esm2022 → esm2020}/action-list/mis-crystal-design-system-action-list.mjs +0 -0
  391. /package/{esm2022 → esm2020}/action-list/public_api.mjs +0 -0
  392. /package/{esm2022 → esm2020}/analytics/index.mjs +0 -0
  393. /package/{esm2022 → esm2020}/analytics/mis-crystal-design-system-analytics.mjs +0 -0
  394. /package/{esm2022 → esm2020}/analytics/public_api.mjs +0 -0
  395. /package/{esm2022 → esm2020}/async-search-dropdown/index.mjs +0 -0
  396. /package/{esm2022 → esm2020}/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs +0 -0
  397. /package/{esm2022 → esm2020}/async-search-dropdown/public_api.mjs +0 -0
  398. /package/{esm2022 → esm2020}/button/index.mjs +0 -0
  399. /package/{esm2022 → esm2020}/button/mis-crystal-design-system-button.mjs +0 -0
  400. /package/{esm2022 → esm2020}/button/public_api.mjs +0 -0
  401. /package/{esm2022 → esm2020}/checkbox/index.mjs +0 -0
  402. /package/{esm2022 → esm2020}/checkbox/mis-crystal-design-system-checkbox.mjs +0 -0
  403. /package/{esm2022 → esm2020}/checkbox/public_api.mjs +0 -0
  404. /package/{esm2022 → esm2020}/chip/index.mjs +0 -0
  405. /package/{esm2022 → esm2020}/chip/mis-crystal-design-system-chip.mjs +0 -0
  406. /package/{esm2022 → esm2020}/chip/public_api.mjs +0 -0
  407. /package/{esm2022 → esm2020}/datepicker_v2/datepicker-constants.mjs +0 -0
  408. /package/{esm2022 → esm2020}/datepicker_v2/index.mjs +0 -0
  409. /package/{esm2022 → esm2020}/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs +0 -0
  410. /package/{esm2022 → esm2020}/datepicker_v2/models/dp-config.model.mjs +0 -0
  411. /package/{esm2022 → esm2020}/datepicker_v2/public_api.mjs +0 -0
  412. /package/{esm2022 → esm2020}/daterangepicker_v2/daterangepicker-constants.mjs +0 -0
  413. /package/{esm2022 → esm2020}/daterangepicker_v2/index.mjs +0 -0
  414. /package/{esm2022 → esm2020}/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.mjs +0 -0
  415. /package/{esm2022 → esm2020}/daterangepicker_v2/public_api.mjs +0 -0
  416. /package/{esm2022 → esm2020}/drawer/drawer-constants.mjs +0 -0
  417. /package/{esm2022 → esm2020}/drawer/index.mjs +0 -0
  418. /package/{esm2022 → esm2020}/drawer/mis-crystal-design-system-drawer.mjs +0 -0
  419. /package/{esm2022 → esm2020}/drawer/public_api.mjs +0 -0
  420. /package/{esm2022 → esm2020}/dropdown/index.mjs +0 -0
  421. /package/{esm2022 → esm2020}/dropdown/mis-crystal-design-system-dropdown.mjs +0 -0
  422. /package/{esm2022 → esm2020}/dropdown/public_api.mjs +0 -0
  423. /package/{esm2022 → esm2020}/dynamic-form/dynamic-form.namespace.mjs +0 -0
  424. /package/{esm2022 → esm2020}/dynamic-form/index.mjs +0 -0
  425. /package/{esm2022 → esm2020}/dynamic-form/mis-crystal-design-system-dynamic-form.mjs +0 -0
  426. /package/{esm2022 → esm2020}/dynamic-form/public_api.mjs +0 -0
  427. /package/{esm2022 → esm2020}/fab/index.mjs +0 -0
  428. /package/{esm2022 → esm2020}/fab/mis-crystal-design-system-fab.mjs +0 -0
  429. /package/{esm2022 → esm2020}/fab/public_api.mjs +0 -0
  430. /package/{esm2022 → esm2020}/filter/animations/slideFromRight.mjs +0 -0
  431. /package/{esm2022 → esm2020}/filter/index.mjs +0 -0
  432. /package/{esm2022 → esm2020}/filter/mis-crystal-design-system-filter.mjs +0 -0
  433. /package/{esm2022 → esm2020}/filter/public_api.mjs +0 -0
  434. /package/{esm2022 → esm2020}/index.mjs +0 -0
  435. /package/{esm2022 → esm2020}/input/index.mjs +0 -0
  436. /package/{esm2022 → esm2020}/input/mis-crystal-design-system-input.mjs +0 -0
  437. /package/{esm2022 → esm2020}/input/public_api.mjs +0 -0
  438. /package/{esm2022 → esm2020}/input-stepper/index.mjs +0 -0
  439. /package/{esm2022 → esm2020}/input-stepper/mis-crystal-design-system-input-stepper.mjs +0 -0
  440. /package/{esm2022 → esm2020}/input-stepper/public_api.mjs +0 -0
  441. /package/{esm2022 → esm2020}/loader/index.mjs +0 -0
  442. /package/{esm2022 → esm2020}/loader/mis-crystal-design-system-loader.mjs +0 -0
  443. /package/{esm2022 → esm2020}/loader/public_api.mjs +0 -0
  444. /package/{esm2022 → esm2020}/menu/index.mjs +0 -0
  445. /package/{esm2022 → esm2020}/menu/mis-crystal-design-system-menu.mjs +0 -0
  446. /package/{esm2022 → esm2020}/menu/public_api.mjs +0 -0
  447. /package/{esm2022 → esm2020}/mis-crystal-design-system.mjs +0 -0
  448. /package/{esm2022 → esm2020}/mobile-filter/index.mjs +0 -0
  449. /package/{esm2022 → esm2020}/mobile-filter/mis-crystal-design-system-mobile-filter.mjs +0 -0
  450. /package/{esm2022 → esm2020}/mobile-filter/public_api.mjs +0 -0
  451. /package/{esm2022 → esm2020}/modal/index.mjs +0 -0
  452. /package/{esm2022 → esm2020}/modal/mis-crystal-design-system-modal.mjs +0 -0
  453. /package/{esm2022 → esm2020}/modal/modal-constants.mjs +0 -0
  454. /package/{esm2022 → esm2020}/modal/modal-ref.mjs +0 -0
  455. /package/{esm2022 → esm2020}/modal/public_api.mjs +0 -0
  456. /package/{esm2022 → esm2020}/multi-select-dropdown/index.mjs +0 -0
  457. /package/{esm2022 → esm2020}/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.mjs +0 -0
  458. /package/{esm2022 → esm2020}/multi-select-dropdown/public_api.mjs +0 -0
  459. /package/{esm2022 → esm2020}/nested-multi-select-dropdown/index.mjs +0 -0
  460. /package/{esm2022 → esm2020}/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.mjs +0 -0
  461. /package/{esm2022 → esm2020}/nested-multi-select-dropdown/public_api.mjs +0 -0
  462. /package/{esm2022 → esm2020}/phone-input/index.mjs +0 -0
  463. /package/{esm2022 → esm2020}/phone-input/mis-crystal-design-system-phone-input.mjs +0 -0
  464. /package/{esm2022 → esm2020}/phone-input/public_api.mjs +0 -0
  465. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
  466. /package/{esm2022 → esm2020}/radio-button/index.mjs +0 -0
  467. /package/{esm2022 → esm2020}/radio-button/mis-crystal-design-system-radio-button.mjs +0 -0
  468. /package/{esm2022 → esm2020}/radio-button/public_api.mjs +0 -0
  469. /package/{esm2022 → esm2020}/ske-loader/index.mjs +0 -0
  470. /package/{esm2022 → esm2020}/ske-loader/mis-crystal-design-system-ske-loader.mjs +0 -0
  471. /package/{esm2022 → esm2020}/ske-loader/public_api.mjs +0 -0
  472. /package/{esm2022 → esm2020}/slider/index.mjs +0 -0
  473. /package/{esm2022 → esm2020}/slider/mis-crystal-design-system-slider.mjs +0 -0
  474. /package/{esm2022 → esm2020}/slider/public_api.mjs +0 -0
  475. /package/{esm2022 → esm2020}/snackbar/index.mjs +0 -0
  476. /package/{esm2022 → esm2020}/snackbar/mis-crystal-design-system-snackbar.mjs +0 -0
  477. /package/{esm2022 → esm2020}/snackbar/public_api.mjs +0 -0
  478. /package/{esm2022 → esm2020}/specificdatepicker/daterangepicker-constants.mjs +0 -0
  479. /package/{esm2022 → esm2020}/specificdatepicker/index.mjs +0 -0
  480. /package/{esm2022 → esm2020}/specificdatepicker/mis-crystal-design-system-specificdatepicker.mjs +0 -0
  481. /package/{esm2022 → esm2020}/specificdatepicker/models/sdp-config.model.mjs +0 -0
  482. /package/{esm2022 → esm2020}/specificdatepicker/public_api.mjs +0 -0
  483. /package/{esm2022 → esm2020}/star-rating/index.mjs +0 -0
  484. /package/{esm2022 → esm2020}/star-rating/mis-crystal-design-system-star-rating.mjs +0 -0
  485. /package/{esm2022 → esm2020}/star-rating/public_api.mjs +0 -0
  486. /package/{esm2022 → esm2020}/styles/index.mjs +0 -0
  487. /package/{esm2022 → esm2020}/styles/mis-crystal-design-system-styles.mjs +0 -0
  488. /package/{esm2022 → esm2020}/styles/public_api.mjs +0 -0
  489. /package/{esm2022 → esm2020}/switch/index.mjs +0 -0
  490. /package/{esm2022 → esm2020}/switch/mis-crystal-design-system-switch.mjs +0 -0
  491. /package/{esm2022 → esm2020}/switch/public_api.mjs +0 -0
  492. /package/{esm2022 → esm2020}/table/index.mjs +0 -0
  493. /package/{esm2022 → esm2020}/table/mis-crystal-design-system-table.mjs +0 -0
  494. /package/{esm2022 → esm2020}/table/public_api.mjs +0 -0
  495. /package/{esm2022 → esm2020}/timepicker/index.mjs +0 -0
  496. /package/{esm2022 → esm2020}/timepicker/mis-crystal-design-system-timepicker.mjs +0 -0
  497. /package/{esm2022 → esm2020}/timepicker/public_api.mjs +0 -0
  498. /package/{esm2022 → esm2020}/timepicker/time.namespace.mjs +0 -0
  499. /package/{esm2022 → esm2020}/timerangepicker/index.mjs +0 -0
  500. /package/{esm2022 → esm2020}/timerangepicker/mis-crystal-design-system-timerangepicker.mjs +0 -0
  501. /package/{esm2022 → esm2020}/timerangepicker/public_api.mjs +0 -0
  502. /package/{esm2022 → esm2020}/timerangepicker/timerange.namespace.mjs +0 -0
  503. /package/{esm2022 → esm2020}/toast/index.mjs +0 -0
  504. /package/{esm2022 → esm2020}/toast/mis-crystal-design-system-toast.mjs +0 -0
  505. /package/{esm2022 → esm2020}/toast/public_api.mjs +0 -0
  506. /package/{esm2022 → esm2020}/tooltip/index.mjs +0 -0
  507. /package/{esm2022 → esm2020}/tooltip/mis-crystal-design-system-tooltip.mjs +0 -0
  508. /package/{esm2022 → esm2020}/tooltip/models/tooltip.model.mjs +0 -0
  509. /package/{esm2022 → esm2020}/tooltip/public_api.mjs +0 -0
  510. /package/{esm2022 → esm2020}/utils/index.mjs +0 -0
  511. /package/{esm2022 → esm2020}/utils/mis-crystal-design-system-utils.mjs +0 -0
  512. /package/{esm2022 → esm2020}/virtual-scroll/index.mjs +0 -0
  513. /package/{esm2022 → esm2020}/virtual-scroll/mis-crystal-design-system-virtual-scroll.mjs +0 -0
  514. /package/{esm2022 → esm2020}/virtual-scroll/public_api.mjs +0 -0
  515. /package/{esm2022 → esm2020}/virtual-scroll/virtual-scroll.constants.mjs +0 -0
  516. /package/{esm2022 → esm2020}/widgets/classes/widget-group.mjs +0 -0
  517. /package/{esm2022 → esm2020}/widgets/index.mjs +0 -0
  518. /package/{esm2022 → esm2020}/widgets/interfaces/widgets.model.mjs +0 -0
  519. /package/{esm2022 → esm2020}/widgets/mis-crystal-design-system-widgets.mjs +0 -0
  520. /package/{esm2022 → esm2020}/widgets/public_api.mjs +0 -0
  521. /package/{fesm2022 → fesm2015}/mis-crystal-design-system-styles.mjs +0 -0
  522. /package/{fesm2022 → fesm2015}/mis-crystal-design-system-styles.mjs.map +0 -0
  523. /package/{fesm2022 → fesm2015}/mis-crystal-design-system-utils.mjs +0 -0
  524. /package/{fesm2022 → fesm2015}/mis-crystal-design-system-utils.mjs.map +0 -0
  525. /package/{fesm2022 → fesm2015}/mis-crystal-design-system.mjs +0 -0
  526. /package/{fesm2022 → fesm2015}/mis-crystal-design-system.mjs.map +0 -0
@@ -1,519 +0,0 @@
1
- import { ConnectionPositionPair, OverlayConfig } from "@angular/cdk/overlay";
2
- import { TemplatePortal } from "@angular/cdk/portal";
3
- import { Component, ContentChild, EventEmitter, HostListener, Input, Output, ViewChild } from "@angular/core";
4
- import { UntypedFormControl } from "@angular/forms";
5
- import { merge, Subject } from "rxjs";
6
- import { debounceTime, distinctUntilChanged, tap } from "rxjs/operators";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/overlay";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "@angular/forms";
11
- import * as i4 from "mis-crystal-design-system/loader";
12
- import * as i5 from "@angular/cdk/a11y";
13
- const _c0 = ["misCustomItem"];
14
- const _c1 = ["asyncCustomLoader"];
15
- const _c2 = ["ddBtn"];
16
- const _c3 = ["input"];
17
- const _c4 = ["dd"];
18
- const _c5 = (a0, a1, a2) => ({ opened: a0, disabled: a1, readonly: a2 });
19
- const _c6 = (a0, a1) => ({ "chip-md": a0, "chip-sm": a1 });
20
- const _c7 = (a0, a1) => ({ "h6": a0, "h8-b": a1 });
21
- const _c8 = () => ({ "margin-right": "4px" });
22
- const _c9 = a0 => ({ "cursor": "pointer", "font-size": a0 });
23
- const _c10 = (a0, a1) => ({ "ip-md": a0, "ip-sm": a1 });
24
- const _c11 = (a0, a1) => ({ "max-height": a0, "width": a1 });
25
- const _c12 = a0 => ({ "dd-list-pd": a0 });
26
- const _c13 = a0 => ({ $implicit: a0 });
27
- function AsyncDropdownComponent_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
28
- const _r1 = i0.ɵɵgetCurrentView();
29
- i0.ɵɵelementStart(0, "div", 14)(1, "span", 15);
30
- i0.ɵɵtext(2);
31
- i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(3, "span", 16);
33
- i0.ɵɵlistener("click", function AsyncDropdownComponent_div_2_div_1_Template_span_click_3_listener() { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.removeItem(item_r2)); })("keyup.enter", function AsyncDropdownComponent_div_2_div_1_Template_span_keyup_enter_3_listener() { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.removeItem(item_r2)); });
34
- i0.ɵɵelementEnd()();
35
- } if (rf & 2) {
36
- const item_r2 = ctx.$implicit;
37
- const ctx_r2 = i0.ɵɵnextContext(2);
38
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(5, _c6, ctx_r2.size === "md", ctx_r2.size === "sm"));
39
- i0.ɵɵadvance();
40
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(8, _c7, ctx_r2.size === "md", ctx_r2.size === "sm"))("ngStyle", i0.ɵɵpureFunction0(11, _c8));
41
- i0.ɵɵadvance();
42
- i0.ɵɵtextInterpolate(item_r2[ctx_r2.displayKey]);
43
- i0.ɵɵadvance();
44
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(12, _c9, ctx_r2.size === "sm" ? "12px" : "14px"));
45
- } }
46
- function AsyncDropdownComponent_div_2_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementStart(0, "div", 12);
48
- i0.ɵɵtemplate(1, AsyncDropdownComponent_div_2_div_1_Template, 4, 14, "div", 13);
49
- i0.ɵɵelementEnd();
50
- } if (rf & 2) {
51
- const ctx_r2 = i0.ɵɵnextContext();
52
- i0.ɵɵadvance();
53
- i0.ɵɵproperty("ngForOf", ctx_r2.selectedItems);
54
- } }
55
- function AsyncDropdownComponent_input_5_Template(rf, ctx) { if (rf & 1) {
56
- const _r4 = i0.ɵɵgetCurrentView();
57
- i0.ɵɵelementStart(0, "input", 17, 3);
58
- i0.ɵɵlistener("focus", function AsyncDropdownComponent_input_5_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.defaultCall()); })("keyup.enter", function AsyncDropdownComponent_input_5_Template_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.enablePopUpOnTab()); });
59
- i0.ɵɵelementEnd();
60
- } if (rf & 2) {
61
- const ctx_r2 = i0.ɵɵnextContext();
62
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(3, _c10, ctx_r2.size === "md", ctx_r2.size === "sm"))("placeholder", ctx_r2.placeholder)("formControl", ctx_r2.searchInput);
63
- } }
64
- function AsyncDropdownComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
65
- const _r5 = i0.ɵɵgetCurrentView();
66
- i0.ɵɵelementStart(0, "input", 18, 3);
67
- i0.ɵɵlistener("focus", function AsyncDropdownComponent_ng_template_6_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.defaultCall()); })("keyup.enter", function AsyncDropdownComponent_ng_template_6_Template_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.enablePopUpOnTab()); });
68
- i0.ɵɵelementEnd();
69
- } if (rf & 2) {
70
- const ctx_r2 = i0.ɵɵnextContext();
71
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(3, _c10, ctx_r2.size === "md", ctx_r2.size === "sm"))("placeholder", ctx_r2.placeholder)("formControl", ctx_r2.searchInput);
72
- } }
73
- function AsyncDropdownComponent_div_8_Template(rf, ctx) { if (rf & 1) {
74
- const _r6 = i0.ɵɵgetCurrentView();
75
- i0.ɵɵelementStart(0, "div", 19);
76
- i0.ɵɵlistener("click", function AsyncDropdownComponent_div_8_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeInputValue()); })("keyup.enter", function AsyncDropdownComponent_div_8_Template_div_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeInputValue()); });
77
- i0.ɵɵelementEnd();
78
- } }
79
- function AsyncDropdownComponent_ng_template_9_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementContainer(0, 23);
81
- } if (rf & 2) {
82
- const ctx_r2 = i0.ɵɵnextContext(3);
83
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.customLoader);
84
- } }
85
- function AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_div_0_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵelementStart(0, "div", 25);
87
- i0.ɵɵelement(1, "mis-loader", 26);
88
- i0.ɵɵelementEnd();
89
- } if (rf & 2) {
90
- i0.ɵɵadvance();
91
- i0.ɵɵproperty("mobileView", true);
92
- } }
93
- function AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
94
- i0.ɵɵtemplate(0, AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_div_0_Template, 2, 1, "div", 24);
95
- } if (rf & 2) {
96
- const ctx_r2 = i0.ɵɵnextContext(3);
97
- i0.ɵɵproperty("ngIf", ctx_r2.loading && !ctx_r2.customLoader);
98
- } }
99
- function AsyncDropdownComponent_ng_template_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {
100
- i0.ɵɵelementContainerStart(0);
101
- i0.ɵɵtemplate(1, AsyncDropdownComponent_ng_template_9_ng_container_1_ng_container_1_Template, 1, 1, "ng-container", 22)(2, AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_Template, 1, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
102
- i0.ɵɵelementContainerEnd();
103
- } if (rf & 2) {
104
- const defaultLoader_r7 = i0.ɵɵreference(3);
105
- const ctx_r2 = i0.ɵɵnextContext(2);
106
- i0.ɵɵadvance();
107
- i0.ɵɵproperty("ngIf", ctx_r2.customLoader)("ngIfElse", defaultLoader_r7);
108
- } }
109
- function AsyncDropdownComponent_ng_template_9_ng_container_2_Template(rf, ctx) { if (rf & 1) {
110
- i0.ɵɵelementContainerStart(0);
111
- i0.ɵɵelementStart(1, "div", 25)(2, "p");
112
- i0.ɵɵtext(3, "Unknown error has occurred, ");
113
- i0.ɵɵelement(4, "br");
114
- i0.ɵɵtext(5, " Please try again later.");
115
- i0.ɵɵelementEnd()();
116
- i0.ɵɵelementContainerEnd();
117
- } }
118
- function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_div_3_Template(rf, ctx) { if (rf & 1) {
119
- i0.ɵɵelementStart(0, "div", 31);
120
- i0.ɵɵelementContainer(1, 32);
121
- i0.ɵɵelementEnd();
122
- } if (rf & 2) {
123
- const item_r9 = i0.ɵɵnextContext().$implicit;
124
- const ctx_r2 = i0.ɵɵnextContext(3);
125
- i0.ɵɵproperty("tabindex", ctx_r2.openPopUpOnTab ? 0 : -1);
126
- i0.ɵɵadvance();
127
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.customItem)("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c13, item_r9));
128
- } }
129
- function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
130
- const _r10 = i0.ɵɵgetCurrentView();
131
- i0.ɵɵelement(0, "div", 29);
132
- i0.ɵɵelementStart(1, "div", 33);
133
- i0.ɵɵlistener("click", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r10); const item_r9 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectData(item_r9, false)); })("keyup.enter", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template_div_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r10); const item_r9 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectData(item_r9, false)); });
134
- i0.ɵɵelementStart(2, "div", 34)(3, "div", 35);
135
- i0.ɵɵtext(4);
136
- i0.ɵɵelementEnd();
137
- i0.ɵɵelementStart(5, "div", 36);
138
- i0.ɵɵtext(6);
139
- i0.ɵɵelementEnd()()();
140
- } if (rf & 2) {
141
- const item_r9 = i0.ɵɵnextContext().$implicit;
142
- const ctx_r2 = i0.ɵɵnextContext(3);
143
- i0.ɵɵadvance();
144
- i0.ɵɵproperty("tabindex", ctx_r2.openPopUpOnTab ? 0 : -1);
145
- i0.ɵɵadvance(3);
146
- i0.ɵɵtextInterpolate1(" ", item_r9[ctx_r2.displayKey], " ");
147
- i0.ɵɵadvance(2);
148
- i0.ɵɵtextInterpolate1(" ", item_r9[ctx_r2.secondaryDisplayKey], " ");
149
- } }
150
- function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
151
- const _r8 = i0.ɵɵgetCurrentView();
152
- i0.ɵɵelementContainerStart(0);
153
- i0.ɵɵelementStart(1, "div", 28);
154
- i0.ɵɵlistener("click", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template_div_click_1_listener() { const item_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectData(item_r9, false)); })("keyup.enter", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template_div_keyup_enter_1_listener() { const item_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.selectData(item_r9, false)); });
155
- i0.ɵɵelement(2, "div", 29);
156
- i0.ɵɵtemplate(3, AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_div_3_Template, 2, 5, "div", 30)(4, AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template, 7, 3, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
157
- i0.ɵɵelementEnd();
158
- i0.ɵɵelementContainerEnd();
159
- } if (rf & 2) {
160
- const standardItem_r11 = i0.ɵɵreference(5);
161
- const ctx_r2 = i0.ɵɵnextContext(3);
162
- i0.ɵɵadvance(3);
163
- i0.ɵɵproperty("ngIf", ctx_r2.customItem)("ngIfElse", standardItem_r11);
164
- } }
165
- function AsyncDropdownComponent_ng_template_9_div_3_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵelementStart(0, "div");
167
- i0.ɵɵtemplate(1, AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template, 6, 2, "ng-container", 27);
168
- i0.ɵɵelementEnd();
169
- } if (rf & 2) {
170
- const ctx_r2 = i0.ɵɵnextContext(2);
171
- i0.ɵɵadvance();
172
- i0.ɵɵproperty("ngForOf", ctx_r2.data);
173
- } }
174
- function AsyncDropdownComponent_ng_template_9_div_4_Template(rf, ctx) { if (rf & 1) {
175
- i0.ɵɵelementStart(0, "div")(1, "div", 37);
176
- i0.ɵɵtext(2, "No Data Available");
177
- i0.ɵɵelementEnd()();
178
- } }
179
- function AsyncDropdownComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵelementStart(0, "div", 20);
181
- i0.ɵɵtemplate(1, AsyncDropdownComponent_ng_template_9_ng_container_1_Template, 4, 2, "ng-container", 21)(2, AsyncDropdownComponent_ng_template_9_ng_container_2_Template, 6, 0, "ng-container", 21)(3, AsyncDropdownComponent_ng_template_9_div_3_Template, 2, 1, "div", 21)(4, AsyncDropdownComponent_ng_template_9_div_4_Template, 3, 0, "div", 21);
182
- i0.ɵɵelementEnd();
183
- } if (rf & 2) {
184
- const ctx_r2 = i0.ɵɵnextContext();
185
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(7, _c11, ctx_r2.height, ctx_r2.dropdownListWidth))("ngClass", i0.ɵɵpureFunction1(10, _c12, ctx_r2.data.length === 0))("cdkTrapFocusAutoCapture", ctx_r2.openPopUpOnTab);
186
- i0.ɵɵadvance();
187
- i0.ɵɵproperty("ngIf", ctx_r2.loading);
188
- i0.ɵɵadvance();
189
- i0.ɵɵproperty("ngIf", ctx_r2.error);
190
- i0.ɵɵadvance();
191
- i0.ɵɵproperty("ngIf", !ctx_r2.loading && !ctx_r2.error && ctx_r2.data.length > 0);
192
- i0.ɵɵadvance();
193
- i0.ɵɵproperty("ngIf", !ctx_r2.loading && !ctx_r2.error && ctx_r2.data.length === 0 && ctx_r2.searchInput.value);
194
- } }
195
- export class AsyncDropdownComponent {
196
- constructor(overlay, viewContainerRef, _ngZone) {
197
- this.overlay = overlay;
198
- this.viewContainerRef = viewContainerRef;
199
- this._ngZone = _ngZone;
200
- this.size = 'md';
201
- this.placeholder = "Select"; // placeholder for input
202
- this.debounceTime = 400; // wait time till which API call is paused
203
- this.minInputLength = 2; // min length after which API call is made
204
- this.multi = false; // maintain a list or emit value
205
- this.disableCopyPaste = false;
206
- this.dropdownListPosition = "Left"; //dropdown position
207
- // tslint:disable-next-line
208
- this.onSelect = new EventEmitter(true); // emit selected values
209
- this.searchInput = new UntypedFormControl();
210
- this.data = [];
211
- this.opened = false;
212
- this.loading = false;
213
- this.error = false;
214
- this.openPopUpOnTab = false;
215
- // tslint:disable-next-line
216
- this.selections = new Map();
217
- this.httpStreamTrigger = new Subject();
218
- this.searchQueryChange = new EventEmitter();
219
- this.clear = new EventEmitter(false);
220
- this.itemSelected = new EventEmitter();
221
- this.itemRemoved = new EventEmitter();
222
- this.handleControlChanges = (values) => {
223
- values.forEach(el => {
224
- this.selectData(el, true);
225
- });
226
- // tslint:disable-next-line
227
- };
228
- }
229
- ngOnInit() {
230
- if (this.multi && !this.uniqueKey) {
231
- throw new Error("[uniqueKey] required in multi mode.");
232
- }
233
- if (this.disabled) {
234
- this.searchInput.disable();
235
- }
236
- const searchObservable = this.searchInput.valueChanges.pipe(tap((val) => this.searchQueryChange.emit(val)), debounceTime(this.debounceTime), distinctUntilChanged());
237
- this.searchSubscription = merge(searchObservable, this.httpStreamTrigger)
238
- .subscribe(res => {
239
- this._ngZone.run(() => {
240
- res = res?.trim() ?? '';
241
- if (res?.length < this.minInputLength || !res?.length) {
242
- this.closeDropdown();
243
- return;
244
- }
245
- else if (res?.length > this.minInputLength && this.httpStream) {
246
- this.loading = true;
247
- this.error = false;
248
- if (!this.overlayRef?.hasAttached())
249
- this.openDropdown(this.dd, this.origin.nativeElement);
250
- this.httpStream(res).subscribe(list => {
251
- this.loading = false;
252
- this.data = list;
253
- if (!this.overlayRef?.hasAttached() && list.length > 0) {
254
- this.openDropdown(this.dd, this.origin.nativeElement);
255
- }
256
- }, error => {
257
- this.loading = false;
258
- this.error = true;
259
- });
260
- }
261
- });
262
- });
263
- if (this.control?.value) {
264
- this.handleControlChanges(this.control.value);
265
- }
266
- this.controlSubscription = this.control?.valueChanges.subscribe(this.handleControlChanges);
267
- }
268
- refreshHttpStream(query) {
269
- this.loading = true;
270
- this.httpStreamTrigger.next(query);
271
- }
272
- ngOnChanges(changes) {
273
- if (changes && changes?.searchValue?.currentValue) {
274
- this.searchInput.patchValue(changes.searchValue.currentValue);
275
- }
276
- if (changes && changes.disabled) {
277
- this.searchInput.enable();
278
- if (this.disabled) {
279
- this.searchInput.disable();
280
- }
281
- }
282
- }
283
- ngOnDestroy() {
284
- this.searchSubscription?.unsubscribe();
285
- this.defaultCallSubscription?.unsubscribe();
286
- }
287
- openDropdown(template, origin) {
288
- const positionsBottom = [
289
- new ConnectionPositionPair({ originX: "start", originY: "bottom" }, { overlayX: "start", overlayY: "top" }, 0, 4),
290
- new ConnectionPositionPair({ originX: "end", originY: "bottom" }, { overlayX: "end", overlayY: "top" }, 0, 4)
291
- ];
292
- const positionsTop = [
293
- new ConnectionPositionPair({ originX: "start", originY: "top" }, { overlayX: "start", overlayY: "bottom" }, 0, -4),
294
- new ConnectionPositionPair({ originX: "end", originY: "top" }, { overlayX: "end", overlayY: "bottom" }, 0, -4)
295
- ];
296
- const positionStrategy = this.overlay
297
- .position()
298
- .flexibleConnectedTo(origin)
299
- .withPositions([
300
- ...(this.dropdownListPosition === "Right" ? positionsBottom.reverse() : positionsBottom),
301
- ...(this.dropdownListPosition === "Right" ? positionsTop.reverse() : positionsTop)
302
- ])
303
- .withPush(true);
304
- const configs = new OverlayConfig({
305
- hasBackdrop: true,
306
- backdropClass: "cdk-overlay-transparent-backdrop",
307
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
308
- positionStrategy,
309
- width: origin.clientWidth
310
- });
311
- this.overlayRef = this.overlay.create(configs);
312
- if (this.dropdownListWidth)
313
- this.overlayRef.updateSize({ width: this.dropdownListWidth });
314
- this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
315
- this.overlayRef.backdropClick().subscribe(res => {
316
- this.closeDropdown();
317
- });
318
- }
319
- /**
320
- * closes the dropdown
321
- */
322
- closeDropdown() {
323
- this.opened = false;
324
- this.openPopUpOnTab = false;
325
- this.overlayRef?.detach();
326
- this.data = [];
327
- }
328
- enablePopUpOnTab() {
329
- this.openPopUpOnTab = true;
330
- }
331
- handleKeyDown(event) {
332
- if (event.key === 'Escape') {
333
- this.searchInput.patchValue("");
334
- this.closeDropdown();
335
- }
336
- }
337
- /**
338
- *
339
- * @param item item to select
340
- * if item property disabled is set to true, selection will be disabled
341
- * @param effectedFromOutside set to true if calling from parent component, if true will focus on search input
342
- */
343
- selectData(item, effectedFromOutside = true) {
344
- if (item.disabled) {
345
- return;
346
- }
347
- this.itemSelected.emit(item);
348
- if (!this.multi) {
349
- this.searchInput.patchValue(item[this.displayKey], { emitEvent: false });
350
- this.setControlValue(item);
351
- }
352
- else {
353
- if (!this.selections.has(item[this.uniqueKey])) {
354
- this.selections.set(item[this.uniqueKey], item);
355
- }
356
- this.setControlValue(this.selectedItems);
357
- if (!effectedFromOutside) {
358
- setTimeout(() => {
359
- this.input.nativeElement.focus();
360
- this.input.nativeElement.scrollIntoView();
361
- }, 10);
362
- }
363
- this.searchInput.patchValue("");
364
- this.data = [];
365
- }
366
- this.closeDropdown();
367
- }
368
- /**
369
- *
370
- * @param item remove item from selected list
371
- */
372
- removeItem(item) {
373
- this.itemRemoved.emit(item);
374
- this.selections.delete(item[this.uniqueKey]);
375
- this.setControlValue(this.selectedItems);
376
- // tslint:disable-next-line
377
- this.input["nativeElement"].focus();
378
- }
379
- setControlValue(value) {
380
- this.onSelect.emit(value);
381
- this.control?.patchValue(value, { emitEvent: false });
382
- }
383
- /**
384
- * @returns list of selected items
385
- */
386
- get selectedItems() {
387
- return Array.from(this.selections.values());
388
- }
389
- removeInputValue() {
390
- this.searchInput.reset();
391
- this.data = [];
392
- this.clear.emit(true);
393
- }
394
- defaultCall() {
395
- if (this.minInputLength === -1) {
396
- this.loading = true;
397
- this.defaultCallSubscription = this.httpStream(this.searchInput.value || '').subscribe(list => {
398
- this.loading = false;
399
- this.data = list;
400
- if (!this.overlayRef?.hasAttached() && this.data?.length > 0) {
401
- this.openDropdown(this.dd, this.origin.nativeElement);
402
- }
403
- }, error => {
404
- this.loading = false;
405
- this.error = true;
406
- });
407
- }
408
- }
409
- static { this.ɵfac = function AsyncDropdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AsyncDropdownComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone)); }; }
410
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AsyncDropdownComponent, selectors: [["mis-async-search-dropdown"]], contentQueries: function AsyncDropdownComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
411
- i0.ɵɵcontentQuery(dirIndex, _c0, 5);
412
- i0.ɵɵcontentQuery(dirIndex, _c1, 5);
413
- } if (rf & 2) {
414
- let _t;
415
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customItem = _t.first);
416
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customLoader = _t.first);
417
- } }, viewQuery: function AsyncDropdownComponent_Query(rf, ctx) { if (rf & 1) {
418
- i0.ɵɵviewQuery(_c2, 5);
419
- i0.ɵɵviewQuery(_c3, 5);
420
- i0.ɵɵviewQuery(_c4, 5);
421
- } if (rf & 2) {
422
- let _t;
423
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.origin = _t.first);
424
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
425
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dd = _t.first);
426
- } }, hostBindings: function AsyncDropdownComponent_HostBindings(rf, ctx) { if (rf & 1) {
427
- i0.ɵɵlistener("keydown", function AsyncDropdownComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); }, false, i0.ɵɵresolveDocument);
428
- } }, inputs: { height: "height", width: "width", size: "size", httpStream: "httpStream", displayKey: "displayKey", secondaryDisplayKey: "secondaryDisplayKey", placeholder: "placeholder", debounceTime: "debounceTime", minInputLength: "minInputLength", multi: "multi", uniqueKey: "uniqueKey", control: "control", disabled: "disabled", readonly: "readonly", disableCopyPaste: "disableCopyPaste", dropdownListWidth: "dropdownListWidth", dropdownListPosition: "dropdownListPosition", selections: "selections", searchValue: "searchValue" }, outputs: { onSelect: "onSelect", searchQueryChange: "searchQueryChange", clear: "clear", itemSelected: "itemSelected", itemRemoved: "itemRemoved" }, features: [i0.ɵɵNgOnChangesFeature], decls: 11, vars: 11, consts: [["ddBtn", ""], ["enableCopyPaste", ""], ["dd", ""], ["input", ""], ["defaultLoader", ""], ["standardItem", ""], [1, "dd-wrapper", 3, "ngClass"], ["class", "selected-list", 4, "ngIf"], [1, "search-input"], [1, "icon-ic-action-search-24"], ["oncopy", "return false;", "onpaste", "return false", "oncut", "return false", "tabindex", "0", "type", "text", "class", "black-text h6", 3, "ngClass", "placeholder", "formControl", "focus", "keyup.enter", 4, "ngIf", "ngIfElse"], ["class", "icon-ic-navigation-cancel-24 croos-icon", "tabindex", "0", 3, "click", "keyup.enter", 4, "ngIf"], [1, "selected-list"], ["class", "chip", 3, "ngClass", 4, "ngFor", "ngForOf"], [1, "chip", 3, "ngClass"], [3, "ngClass", "ngStyle"], ["tabindex", "0", 1, "icon-ic-navigation-cancel-24", 2, "cursor", "pointer", 3, "click", "keyup.enter", "ngStyle"], ["oncopy", "return false;", "onpaste", "return false", "oncut", "return false", "tabindex", "0", "type", "text", 1, "black-text", "h6", 3, "focus", "keyup.enter", "ngClass", "placeholder", "formControl"], ["tabindex", "0", "type", "text", 1, "black-text", "h6", 3, "focus", "keyup.enter", "ngClass", "placeholder", "formControl"], ["tabindex", "0", 1, "icon-ic-navigation-cancel-24", "croos-icon", 3, "click", "keyup.enter"], ["tabindex", "0", "cdkTrapFocus", "", 1, "dd-list", 3, "ngStyle", "ngClass", "cdkTrapFocusAutoCapture"], [4, "ngIf"], [3, "ngTemplateOutlet", 4, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet"], ["class", "status-container", 4, "ngIf"], [1, "status-container"], [3, "mobileView"], [4, "ngFor", "ngForOf"], [3, "click", "keyup.enter"], ["tabindex", "-1", "cdkFocusInitial", ""], [3, "tabindex", 4, "ngIf", "ngIfElse"], [3, "tabindex"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "item", 3, "click", "keyup.enter", "tabindex"], [1, "value"], [1, "primary"], [1, "secondary"], [1, "data-not-found"]], template: function AsyncDropdownComponent_Template(rf, ctx) { if (rf & 1) {
429
- i0.ɵɵelementStart(0, "div", 6, 0);
430
- i0.ɵɵtemplate(2, AsyncDropdownComponent_div_2_Template, 2, 1, "div", 7);
431
- i0.ɵɵelementStart(3, "div", 8);
432
- i0.ɵɵelement(4, "span", 9);
433
- i0.ɵɵtemplate(5, AsyncDropdownComponent_input_5_Template, 2, 6, "input", 10)(6, AsyncDropdownComponent_ng_template_6_Template, 2, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(8, AsyncDropdownComponent_div_8_Template, 1, 0, "div", 11);
434
- i0.ɵɵelementEnd()();
435
- i0.ɵɵtemplate(9, AsyncDropdownComponent_ng_template_9_Template, 5, 12, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
436
- } if (rf & 2) {
437
- const enableCopyPaste_r12 = i0.ɵɵreference(7);
438
- i0.ɵɵstyleProp("width", ctx.width);
439
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(7, _c5, ctx.opened, ctx.disabled, ctx.readonly));
440
- i0.ɵɵadvance(2);
441
- i0.ɵɵproperty("ngIf", ctx.multi && ctx.selections.size > 0);
442
- i0.ɵɵadvance(3);
443
- i0.ɵɵproperty("ngIf", ctx.disableCopyPaste)("ngIfElse", enableCopyPaste_r12);
444
- i0.ɵɵadvance(3);
445
- i0.ɵɵproperty("ngIf", ctx.searchInput == null ? null : ctx.searchInput.value == null ? null : ctx.searchInput.value.length);
446
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, i4.LoaderComponent, i5.CdkTrapFocus], styles: [".dd-wrapper[_ngcontent-%COMP%]{background:#fff;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:4px;display:block;cursor:pointer;outline:none}.dd-wrapper.opened[_ngcontent-%COMP%], .dd-wrapper[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dd-wrapper[_ngcontent-%COMP%] .selected-list[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:4px;padding:8px 16px}.dd-wrapper[_ngcontent-%COMP%]:focus-within{border-color:#0937b2;background:#f5f5f5}.dd-wrapper.disabled[_ngcontent-%COMP%], .dd-wrapper.readonly[_ngcontent-%COMP%]{pointer-events:none}.search-input[_ngcontent-%COMP%]{position:relative;border-radius:8px}.search-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{box-sizing:border-box;outline:none;padding-left:40px;padding-right:24px;background-color:transparent;color:#181f33;border-radius:inherit;border:1px solid transparent;width:100%}.search-input[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);font-size:24px;line-height:24px;height:24px;left:8px}.search-input[_ngcontent-%COMP%] .croos-icon[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);font-size:16px;width:24px;line-height:16px;height:16px;right:0}.dd-list[_ngcontent-%COMP%]{padding:8px 0;max-height:200px;background:#fff;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px;min-width:100%;overflow-y:auto}.dd-list[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;border-radius:4px}.dd-list[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#fff;border-radius:4px}.dd-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#929dab;border-radius:4px}.dd-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#929dab}.dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{padding:8px 16px;cursor:pointer}.dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .disabled[_ngcontent-%COMP%]{color:#6a737d!important;pointer-events:none}.dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .primary[_ngcontent-%COMP%], .dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .secondary[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .reason[_ngcontent-%COMP%]{font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d}.dd-list[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover:not(.disabled){background:#f5f7fc}.dd-list[_ngcontent-%COMP%] .data-not-found[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;font-size:16px;padding:8px}.dd-list-pd[_ngcontent-%COMP%]{padding:unset}.chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;background:#e0e0e0;overflow-wrap:anywhere;cursor:default}.chip[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#181f33}.chip-md[_ngcontent-%COMP%]{border-radius:16px;padding:4px 12px}.chip-sm[_ngcontent-%COMP%]{border-radius:6px;padding:4px 8px;text-transform:uppercase}.ip-md[_ngcontent-%COMP%]{padding-top:8px;padding-bottom:8px}.ip-sm[_ngcontent-%COMP%]{padding-top:3px;padding-bottom:3px}.status-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:128px}.status-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center} #spinner{position:relative!important}"] }); }
447
- }
448
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AsyncDropdownComponent, [{
449
- type: Component,
450
- args: [{ selector: "mis-async-search-dropdown", template: "<div class=\"dd-wrapper\" [ngClass]=\"{ opened: opened, disabled: disabled, readonly: readonly }\" [style.width]=\"width\" #ddBtn>\n <div class=\"selected-list\" *ngIf=\"multi && selections.size > 0\">\n <div class=\"chip\" [ngClass]=\"{'chip-md': size === 'md', 'chip-sm': size === 'sm'}\" *ngFor=\"let item of selectedItems\">\n <span [ngClass]=\"{'h6': size === 'md', 'h8-b': size === 'sm'}\" [ngStyle]=\"{ 'margin-right': '4px'}\">{{item[displayKey]}}</span>\n <span style=\"cursor: pointer;\" (click)=\"removeItem(item)\" tabindex=\"0\" (keyup.enter)=\"removeItem(item)\" [ngStyle]=\"{\n 'cursor': 'pointer',\n 'font-size': size === 'sm' ? '12px' : '14px'\n }\" class=\"icon-ic-navigation-cancel-24\"></span>\n </div>\n </div>\n <div class=\"search-input\">\n <span class=\"icon-ic-action-search-24\"></span>\n <input *ngIf=\"disableCopyPaste; else enableCopyPaste\" [ngClass]=\"{'ip-md': size === 'md', 'ip-sm': size === 'sm'}\" oncopy=\"return false;\" onpaste=\"return false\" oncut=\"return false\" tabindex=\"0\" type=\"text\" class=\"black-text h6\" #input [placeholder]=\"placeholder\" [formControl]=\"searchInput\" (focus)=\"defaultCall()\" (keyup.enter)=\"enablePopUpOnTab()\"/>\n <ng-template #enableCopyPaste>\n <input [ngClass]=\"{'ip-md': size === 'md', 'ip-sm': size === 'sm'}\" tabindex=\"0\" type=\"text\" class=\"black-text h6\" #input [placeholder]=\"placeholder\" [formControl]=\"searchInput\" (focus)=\"defaultCall()\" (keyup.enter)=\"enablePopUpOnTab()\" />\n </ng-template>\n <div class=\"icon-ic-navigation-cancel-24 croos-icon\" *ngIf=\"searchInput?.value?.length\" tabindex=\"0\" (click)=\"removeInputValue()\" (keyup.enter)=\"removeInputValue()\"></div>\n </div>\n</div>\n\n<ng-template #dd>\n <div class=\"dd-list\" [ngStyle]=\"{'max-height':height, 'width': dropdownListWidth}\" [ngClass]=\"{'dd-list-pd':data.length === 0}\" tabindex=\"0\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"openPopUpOnTab\">\n <ng-container *ngIf=\"loading\">\n <ng-container\n *ngIf=\"customLoader; else defaultLoader\"\n [ngTemplateOutlet]=\"customLoader\"\n ></ng-container>\n <ng-template #defaultLoader>\n <div class=\"status-container\" *ngIf=\"loading && !customLoader\">\n <mis-loader [mobileView]=\"true\"></mis-loader>\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"error\">\n <div class=\"status-container\">\n <p>Unknown error has occurred, <br> Please try again later.</p>\n </div>\n </ng-container>\n <div *ngIf=\"!loading && !error && data.length > 0\">\n <ng-container *ngFor=\"let item of data\">\n <div (click)=\"selectData(item, false)\" (keyup.enter)=\"selectData(item, false)\"> \n <div tabindex=\"-1\" cdkFocusInitial></div> \n <div\n [tabindex]=\"openPopUpOnTab ? 0 : -1\"\n *ngIf=\"customItem; else standardItem\"\n >\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </div>\n <ng-template #standardItem>\n <div tabindex=\"-1\" cdkFocusInitial></div> \n <div class=\"item\" (click)=\"selectData(item, false)\" [tabindex]=\"openPopUpOnTab ? 0 : -1\" (keyup.enter)=\"selectData(item, false)\">\n <div class=\"value\">\n <div class=\"primary\">\n {{ item[displayKey] }}\n </div>\n <div class=\"secondary\">\n {{ item[secondaryDisplayKey] }}\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"!loading && !error && data.length === 0 && searchInput.value\">\n <div class=\"data-not-found\">No Data Available</div>\n </div>\n </div>\n</ng-template>\n", styles: [".dd-wrapper{background:#fff;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:4px;display:block;cursor:pointer;outline:none}.dd-wrapper.opened,.dd-wrapper:hover{background:#f5f5f5}.dd-wrapper .selected-list{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:4px;padding:8px 16px}.dd-wrapper:focus-within{border-color:#0937b2;background:#f5f5f5}.dd-wrapper.disabled,.dd-wrapper.readonly{pointer-events:none}.search-input{position:relative;border-radius:8px}.search-input input{box-sizing:border-box;outline:none;padding-left:40px;padding-right:24px;background-color:transparent;color:#181f33;border-radius:inherit;border:1px solid transparent;width:100%}.search-input span{position:absolute;top:50%;transform:translateY(-50%);font-size:24px;line-height:24px;height:24px;left:8px}.search-input .croos-icon{position:absolute;top:50%;transform:translateY(-50%);font-size:16px;width:24px;line-height:16px;height:16px;right:0}.dd-list{padding:8px 0;max-height:200px;background:#fff;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px;min-width:100%;overflow-y:auto}.dd-list::-webkit-scrollbar{width:8px;border-radius:4px}.dd-list::-webkit-scrollbar-track{background:#fff;border-radius:4px}.dd-list::-webkit-scrollbar-thumb{background:#929dab;border-radius:4px}.dd-list::-webkit-scrollbar-thumb:hover{background:#929dab}.dd-list .item{padding:8px 16px;cursor:pointer}.dd-list .item .disabled{color:#6a737d!important;pointer-events:none}.dd-list .item .value{display:flex;justify-content:space-between;align-items:center}.dd-list .item .value .primary,.dd-list .item .value .secondary{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.dd-list .item .reason{font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d}.dd-list .item:hover:not(.disabled){background:#f5f7fc}.dd-list .data-not-found{display:flex;justify-content:center;align-items:center;font-size:16px;padding:8px}.dd-list-pd{padding:unset}.chip{display:inline-flex;align-items:center;background:#e0e0e0;overflow-wrap:anywhere;cursor:default}.chip span{color:#181f33}.chip-md{border-radius:16px;padding:4px 12px}.chip-sm{border-radius:6px;padding:4px 8px;text-transform:uppercase}.ip-md{padding-top:8px;padding-bottom:8px}.ip-sm{padding-top:3px;padding-bottom:3px}.status-container{display:flex;justify-content:center;align-items:center;height:128px}.status-container p{text-align:center}::ng-deep #spinner{position:relative!important}\n"] }]
451
- }], () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.NgZone }], { height: [{
452
- type: Input
453
- }], width: [{
454
- type: Input
455
- }], size: [{
456
- type: Input
457
- }], httpStream: [{
458
- type: Input
459
- }], displayKey: [{
460
- type: Input
461
- }], secondaryDisplayKey: [{
462
- type: Input
463
- }], placeholder: [{
464
- type: Input
465
- }], debounceTime: [{
466
- type: Input
467
- }], minInputLength: [{
468
- type: Input
469
- }], multi: [{
470
- type: Input
471
- }], uniqueKey: [{
472
- type: Input
473
- }], control: [{
474
- type: Input
475
- }], disabled: [{
476
- type: Input
477
- }], readonly: [{
478
- type: Input
479
- }], disableCopyPaste: [{
480
- type: Input
481
- }], dropdownListWidth: [{
482
- type: Input
483
- }], dropdownListPosition: [{
484
- type: Input
485
- }], origin: [{
486
- type: ViewChild,
487
- args: ["ddBtn", { static: false }]
488
- }], input: [{
489
- type: ViewChild,
490
- args: ["input", { static: false }]
491
- }], dd: [{
492
- type: ViewChild,
493
- args: ["dd", { static: false }]
494
- }], customItem: [{
495
- type: ContentChild,
496
- args: ["misCustomItem", { static: false }]
497
- }], customLoader: [{
498
- type: ContentChild,
499
- args: ["asyncCustomLoader", { static: false }]
500
- }], onSelect: [{
501
- type: Output
502
- }], selections: [{
503
- type: Input
504
- }], searchValue: [{
505
- type: Input
506
- }], searchQueryChange: [{
507
- type: Output
508
- }], clear: [{
509
- type: Output
510
- }], itemSelected: [{
511
- type: Output
512
- }], itemRemoved: [{
513
- type: Output
514
- }], handleKeyDown: [{
515
- type: HostListener,
516
- args: ['document:keydown', ['$event']]
517
- }] }); })();
518
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AsyncDropdownComponent, { className: "AsyncDropdownComponent" }); })();
519
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYXN5bmMtc2VhcmNoLWRyb3Bkb3duL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2FzeW5jLXNlYXJjaC1kcm9wZG93bi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ2xCbkUsQUFERiwrQkFBc0gsZUFDaEI7SUFBQSxZQUFvQjtJQUFBLGlCQUFPO0lBQy9ILGdDQUd3QztJQUgrQixBQUF4QyxpTkFBUywwQkFBZ0IsS0FBQyxnTkFBNkIsMEJBQWdCLEtBQUM7SUFJekcsQUFEMEMsaUJBQU8sRUFDM0M7Ozs7SUFOWSxnR0FBZ0U7SUFDMUUsY0FBd0Q7SUFBQyxBQUF6RCxnR0FBd0Qsd0NBQXFDO0lBQUMsY0FBb0I7SUFBcEIsZ0RBQW9CO0lBQ2hCLGNBR3RHO0lBSHNHLDZGQUd0Rzs7O0lB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QU87a0JBQWYsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLO1lBQ2lDLE1BQU07a0JBQTVDLFNBQVM7bUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNFLEtBQUs7a0JBQTNDLFNBQVM7bUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNELEVBQUU7a0JBQXJDLFNBQVM7bUJBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUVsQyxVQUFVO2tCQURULFlBQVk7bUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUdoRCxZQUFZO2tCQURYLFlBQVk7bUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBR3pDLFFBQVE7a0JBQWpCLE1BQU07WUFRRSxVQUFVO2tCQUFsQixLQUFLO1lBTUcsV0FBVztrQkFBbkIsS0FBSztZQUNJLGlCQUFpQjtrQkFBMUIsTUFBTTtZQUNHLEtBQUs7a0JBQWQsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBMkhQLGFBQWE7a0JBRFosWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBdktqQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxudHlwZSBJTGlzdERhdGEgPSBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtYXN5bmMtc2VhcmNoLWRyb3Bkb3duXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYXN5bmMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEFzeW5jRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7IH1cbiAgQElucHV0KCkgaGVpZ2h0O1xuICBASW5wdXQoKSB3aWR0aDtcbiAgQElucHV0KCkgc2l6ZTogJ21kJyB8ICdzbScgPSAnbWQnXG4gIEBJbnB1dCgpIGh0dHBTdHJlYW0hOiAoc2VhcmNoS2V5OiBzdHJpbmcpID0+IE9ic2VydmFibGU8SUxpc3REYXRhPjsgLy8gZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGh0dHBvYnNlcnZhYmxlXG4gIEBJbnB1dCgpIGRpc3BsYXlLZXkhOiBzdHJpbmc7IC8vIHN0cmluZyB0byBzaG93IHZhbHVlIGluIGxpc3RcbiAgQElucHV0KCkgc2Vjb25kYXJ5RGlzcGxheUtleSE6IHN0cmluZzsgLy8gc3RyaW5nIHRvIGRpc3BsYXkgc2Vjb25kYXJ5IHZhbHVlXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJTZWxlY3RcIjsgLy8gcGxhY2Vob2xkZXIgZm9yIGlucHV0XG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDQwMDsgLy8gd2FpdCB0aW1lIHRpbGwgd2hpY2ggQVBJIGNhbGwgaXMgcGF1c2VkXG4gIEBJbnB1dCgpIG1pbklucHV0TGVuZ3RoID0gMjsgLy8gbWluIGxlbmd0aCBhZnRlciB3aGljaCBBUEkgY2FsbCBpcyBtYWRlXG4gIEBJbnB1dCgpIG11bHRpID0gZmFsc2U7IC8vIG1haW50YWluIGEgbGlzdCBvciBlbWl0IHZhbHVlXG4gIEBJbnB1dCgpIHVuaXF1ZUtleTogc3RyaW5nOyAvLyBmb3IgaWRlbnRpZnlpbmcgdW5pcXVlIHZhbHVlc1xuICBASW5wdXQoKSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsOyAvLyBmb3JtIGNvbnRyb2wgZm9yIHJlYWN0aXZlIGZvcm1zXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuOyAvLyBkaXNhYmxlIGFjdGlvbnMgb24gY29tcG9uZW50XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuOyAvLyBtYWtlIGNvbXBvbmVudCByZWFkb25seVxuICBASW5wdXQoKSBkaXNhYmxlQ29weVBhc3RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdFdpZHRoOyAvL3dpZHRoIG9mIGRyb3Bkb3duIGxpc3RcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0UG9zaXRpb246IFwiTGVmdFwiIHwgXCJSaWdodFwiID0gXCJMZWZ0XCI7IC8vZHJvcGRvd24gcG9zaXRpb25cbiAgQFZpZXdDaGlsZChcImRkQnRuXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBvcmlnaW46IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJpbnB1dFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJkZFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgZGQ6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBAQ29udGVudENoaWxkKFwibWlzQ3VzdG9tSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgY3VzdG9tSXRlbTogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIEBDb250ZW50Q2hpbGQoXCJhc3luY0N1c3RvbUxvYWRlclwiLCB7IHN0YXRpYzogZmFsc2V9KVxuICBjdXN0b21Mb2FkZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgQE91dHB1dCgpIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8SUxpc3REYXRhIHwgSUxpc3REYXRhW10+ID0gbmV3IEV2ZW50RW1pdHRlcih0cnVlKTsgLy8gZW1pdCBzZWxlY3RlZCB2YWx1ZXNcbiAgc2VhcmNoSW5wdXQ6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgZGF0YTogSUxpc3REYXRhW10gPSBbXTtcbiAgb3BlbmVkID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb3BlblBvcFVwT25UYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIEBJbnB1dCgpIHNlbGVjdGlvbnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgaHR0cFN0cmVhbVRyaWdnZXIgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZGVmYXVsdENhbGxTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBjb250cm9sU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNlYXJjaFZhbHVlO1xuICBAT3V0cHV0KCkgc2VhcmNoUXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxJTGlzdERhdGE+KClcbiAgQE91dHB1dCgpIGl0ZW1SZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxJTGlzdERhdGE+KClcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGkgJiYgIXRoaXMudW5pcXVlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJbdW5pcXVlS2V5XSByZXF1aXJlZCBpbiBtdWx0aSBtb2RlLlwiKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlYXJjaE9ic2VydmFibGUgPSB0aGlzLnNlYXJjaElucHV0LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCh2YWwpID0+IHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2UuZW1pdCh2YWwpKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcblxuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gbWVyZ2Uoc2VhcmNoT2JzZXJ2YWJsZSwgdGhpcy5odHRwU3RyZWFtVHJpZ2dlcilcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgcmVzID0gcmVzPy50cmltKCkgPz8gJyc7XG4gICAgICAgICAgaWYgKHJlcz8ubGVuZ3RoIDwgdGhpcy5taW5JbnB1dExlbmd0aCB8fCAhcmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzPy5sZW5ndGggPiB0aGlzLm1pbklucHV0TGVuZ3RoICYmIHRoaXMuaHR0cFN0cmVhbSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmKCF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpXG4gICAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMuZGQsIHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5odHRwU3RyZWFtKHJlcykuc3Vic2NyaWJlKGxpc3QgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhID0gbGlzdDtcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkgJiYgbGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5kZCwgdGhpcy5vcmlnaW4ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgaWYgKHRoaXMuY29udHJvbD8udmFsdWUpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ29udHJvbENoYW5nZXModGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5jb250cm9sU3Vic2NyaXB0aW9uID0gdGhpcy5jb250cm9sPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHRoaXMuaGFuZGxlQ29udHJvbENoYW5nZXMpO1xuICB9XG5cbiAgcmVmcmVzaEh0dHBTdHJlYW0ocXVlcnk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5odHRwU3RyZWFtVHJpZ2dlci5uZXh0KHF1ZXJ5KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzPy5zZWFyY2hWYWx1ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoY2hhbmdlcy5zZWFyY2hWYWx1ZS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LmVuYWJsZSgpO1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kZWZhdWx0Q2FsbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udHJvbENoYW5nZXMgPSAodmFsdWVzOiBJTGlzdERhdGFbXSkgPT4ge1xuICAgIHZhbHVlcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RGF0YShlbCwgdHJ1ZSk7XG4gICAgfSk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIH07XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbiA9PT0gXCJSaWdodFwiID8gcG9zaXRpb25zQm90dG9tLnJldmVyc2UoKSA6IHBvc2l0aW9uc0JvdHRvbSksXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNUb3AucmV2ZXJzZSgpIDogcG9zaXRpb25zVG9wKVxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcblxuICAgIGNvbnN0IGNvbmZpZ3MgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIixcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgd2lkdGg6IG9yaWdpbi5jbGllbnRXaWR0aFxuICAgIH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlncyk7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25MaXN0V2lkdGgpIHRoaXMub3ZlcmxheVJlZi51cGRhdGVTaXplKHsgd2lkdGg6IHRoaXMuZHJvcGRvd25MaXN0V2lkdGggfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjbG9zZXMgdGhlIGRyb3Bkb3duXG4gICAqL1xuICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgdGhpcy5vcGVuUG9wVXBPblRhYiA9IGZhbHNlO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgdGhpcy5kYXRhID0gW107XG4gIH1cblxuICBlbmFibGVQb3BVcE9uVGFiKCl7XG4gICAgdGhpcy5vcGVuUG9wVXBPblRhYiA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoXCJcIik7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIGl0ZW0gdG8gc2VsZWN0XG4gICAqIGlmIGl0ZW0gcHJvcGVydHkgZGlzYWJsZWQgaXMgc2V0IHRvIHRydWUsIHNlbGVjdGlvbiB3aWxsIGJlIGRpc2FibGVkXG4gICAqIEBwYXJhbSBlZmZlY3RlZEZyb21PdXRzaWRlIHNldCB0byB0cnVlIGlmIGNhbGxpbmcgZnJvbSBwYXJlbnQgY29tcG9uZW50LCBpZiB0cnVlIHdpbGwgZm9jdXMgb24gc2VhcmNoIGlucHV0XG4gICAqL1xuICBzZWxlY3REYXRhKGl0ZW06IElMaXN0RGF0YSwgZWZmZWN0ZWRGcm9tT3V0c2lkZSA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoaXRlbS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pXG4gICAgaWYgKCF0aGlzLm11bHRpKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoaXRlbVt0aGlzLmRpc3BsYXlLZXldLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbnMuaGFzKGl0ZW1bdGhpcy51bmlxdWVLZXldKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbnMuc2V0KGl0ZW1bdGhpcy51bmlxdWVLZXldLCBpdGVtKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICBpZiAoIWVmZmVjdGVkRnJvbU91dHNpZGUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQucGF0Y2hWYWx1ZShcIlwiKTtcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbSByZW1vdmUgaXRlbSBmcm9tIHNlbGVjdGVkIGxpc3RcbiAgICovXG4gIHJlbW92ZUl0ZW0oaXRlbTogSUxpc3REYXRhKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtUmVtb3ZlZC5lbWl0KGl0ZW0pXG4gICAgdGhpcy5zZWxlY3Rpb25zLmRlbGV0ZShpdGVtW3RoaXMudW5pcXVlS2V5XSk7XG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB0aGlzLmlucHV0W1wibmF0aXZlRWxlbWVudFwiXS5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250cm9sVmFsdWUodmFsdWU6IElMaXN0RGF0YSk6IHZvaWQge1xuICAgIHRoaXMub25TZWxlY3QuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jb250cm9sPy5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgbGlzdCBvZiBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgZ2V0IHNlbGVjdGVkSXRlbXMoKTogQXJyYXk8SUxpc3REYXRhPiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3Rpb25zLnZhbHVlcygpKTtcbiAgfVxuXG4gIHJlbW92ZUlucHV0VmFsdWUoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dC5yZXNldCgpO1xuICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgIHRoaXMuY2xlYXIuZW1pdCh0cnVlKTtcbiAgfVxuICBkZWZhdWx0Q2FsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5taW5JbnB1dExlbmd0aCA9PT0gLTEpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmRlZmF1bHRDYWxsU3Vic2NyaXB0aW9uID0gdGhpcy5odHRwU3RyZWFtKHRoaXMuc2VhcmNoSW5wdXQudmFsdWUgfHwgJycpLnN1YnNjcmliZShsaXN0ID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGF0YSA9IGxpc3Q7XG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpICYmIHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMuZGQsIHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRkLXdyYXBwZXJcIiBbbmdDbGFzc109XCJ7IG9wZW5lZDogb3BlbmVkLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRvbmx5OiByZWFkb25seSB9XCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCIgI2RkQnRuPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtbGlzdFwiICpuZ0lmPVwibXVsdGkgJiYgc2VsZWN0aW9ucy5zaXplID4gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGlwXCIgW25nQ2xhc3NdPVwieydjaGlwLW1kJzogc2l6ZSA9PT0gJ21kJywgJ2NoaXAtc20nOiBzaXplID09PSAnc20nfVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsnaDYnOiBzaXplID09PSAnbWQnLCAnaDgtYic6IHNpemUgPT09ICdzbSd9XCIgW25nU3R5bGVdPVwieyAnbWFyZ2luLXJpZ2h0JzogJzRweCd9XCI+e3tpdGVtW2Rpc3BsYXlLZXldfX08L3NwYW4+XG4gICAgICA8c3BhbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtKVwiIHRhYmluZGV4PVwiMFwiIChrZXl1cC5lbnRlcik9XCJyZW1vdmVJdGVtKGl0ZW0pXCIgW25nU3R5bGVdPVwie1xuICAgICAgICAnY3Vyc29yJzogJ3BvaW50ZXInLFxuICAgICAgICAnZm9udC1zaXplJzogc2l6ZSA9PT0gJ3NtJyA/ICcxMnB4JyA6ICcxNHB4J1xuICAgICAgfVwiIGNsYXNzPVwiaWNvbi1pYy1uYXZpZ2F0aW9uLWNhbmNlbC0yNFwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImljb24taWMtYWN0aW9uLXNlYXJjaC0yNFwiPjwvc3Bhbj5cbiAgICA8aW5wdXQgKm5nSWY9XCJkaXNhYmxlQ29weVBhc3RlOyBlbHNlIGVuYWJsZUNvcHlQYXN0ZVwiIFtuZ0NsYXNzXT1cInsnaXAtbWQnOiBzaXplID09PSAnbWQnLCAnaXAtc20nOiBzaXplID09PSAnc20nfVwiIG9uY29weT1cInJldHVybiBmYWxzZTtcIiBvbnBhc3RlPVwicmV0dXJuIGZhbHNlXCIgb25jdXQ9XCJyZXR1cm4gZmFsc2VcIiB0YWJpbmRleD1cIjBcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYmxhY2stdGV4dCBoNlwiICNpbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoSW5wdXRcIiAoZm9jdXMpPVwiZGVmYXVsdENhbGwoKVwiIChrZXl1cC5lbnRlcik9XCJlbmFibGVQb3BVcE9uVGFiKClcIi8+XG4gICAgPG5nLXRlbXBsYXRlICNlbmFibGVDb3B5UGFzdGU+XG4gICAgICA8aW5wdXQgW25nQ2xhc3NdPVwieydpcC1tZCc6IHNpemUgPT09ICdtZCcsICdpcC1zbSc6IHNpemUgPT09ICdzbSd9XCIgdGFiaW5kZXg9XCIwXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImJsYWNrLXRleHQgaDZcIiAjaW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaElucHV0XCIgKGZvY3VzKT1cImRlZmF1bHRDYWxsKClcIiAoa2V5dXAuZW50ZXIpPVwiZW5hYmxlUG9wVXBPblRhYigpXCIgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWljLW5hdmlnYXRpb24tY2FuY2VsLTI0IGNyb29zLWljb25cIiAqbmdJZj1cInNlYXJjaElucHV0Py52YWx1ZT8ubGVuZ3RoXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cInJlbW92ZUlucHV0VmFsdWUoKVwiIChrZXl1cC5lbnRlcik9XCJyZW1vdmVJbnB1dFZhbHVlKClcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZD5cbiAgPGRpdiBjbGFzcz1cImRkLWxpc3RcIiBbbmdTdHlsZV09XCJ7J21heC1oZWlnaHQnOmhlaWdodCwgJ3dpZHRoJzogZHJvcGRvd25MaXN0V2lkdGh9XCIgIFtuZ0NsYXNzXT1cInsnZGQtbGlzdC1wZCc6ZGF0YS5sZW5ndGggPT09IDB9XCIgdGFiaW5kZXg9XCIwXCIgY2RrVHJhcEZvY3VzIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJvcGVuUG9wVXBPblRhYlwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY3VzdG9tTG9hZGVyOyBlbHNlIGRlZmF1bHRMb2FkZXJcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21Mb2FkZXJcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNvbnRhaW5lclwiICpuZ0lmPVwibG9hZGluZyAmJiAhY3VzdG9tTG9hZGVyXCI+XG4gICAgICAgICAgPG1pcy1sb2FkZXIgW21vYmlsZVZpZXddPVwidHJ1ZVwiPjwvbWlzLWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jb250YWluZXJcIj5cbiAgICAgICAgPHA+VW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQsIDxicj4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIWVycm9yICYmIGRhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCI+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInNlbGVjdERhdGEoaXRlbSwgZmFsc2UpXCIgKGtleXVwLmVudGVyKT1cInNlbGVjdERhdGEoaXRlbSwgZmFsc2UpXCI+IFxuICAgICAgICAgIDxkaXYgdGFiaW5kZXg9XCItMVwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj4gIFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICBbdGFiaW5kZXhdPVwib3BlblBvcFVwT25UYWIgPyAwIDogLTFcIlxuICAgICAgICAgICpuZ0lmPVwiY3VzdG9tSXRlbTsgZWxzZSBzdGFuZGFyZEl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tSXRlbVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3N0YW5kYXJkSXRlbT5cbiAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9XCItMVwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj4gIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAoY2xpY2spPVwic2VsZWN0RGF0YShpdGVtLCBmYWxzZSlcIiBbdGFiaW5kZXhdPVwib3BlblBvcFVwT25UYWIgPyAwIDogLTFcIiAoa2V5dXAuZW50ZXIpPVwic2VsZWN0RGF0YShpdGVtLCBmYWxzZSlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW1bZGlzcGxheUtleV0gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtW3NlY29uZGFyeURpc3BsYXlLZXldIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIWVycm9yICYmIGRhdGEubGVuZ3RoID09PSAwICYmIHNlYXJjaElucHV0LnZhbHVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YS1ub3QtZm91bmRcIj5ObyBEYXRhIEF2YWlsYWJsZTwvZGl2PlxuICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19