mis-crystal-design-system 14.0.75 → 17.0.1

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 (524) 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 +1 -1
  12. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +1 -1
  13. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +1 -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 → esm2022}/action-list/action-list.component.mjs +103 -110
  19. package/{esm2020 → esm2022}/action-list/action-list.module.mjs +5 -5
  20. package/{esm2020 → esm2022}/analytics/analytics.module.mjs +5 -5
  21. package/{esm2020 → esm2022}/analytics/analytics.service.mjs +6 -6
  22. package/esm2022/async-search-dropdown/async-dropdown.component.mjs +518 -0
  23. package/{esm2020 → esm2022}/async-search-dropdown/async-dropdown.module.mjs +5 -5
  24. package/esm2022/button/button.component.mjs +88 -0
  25. package/{esm2020 → esm2022}/button/button.directive.mjs +7 -7
  26. package/{esm2020 → esm2022}/button/button.module.mjs +5 -5
  27. package/esm2022/checkbox/checkbox.component.mjs +124 -0
  28. package/{esm2020 → esm2022}/checkbox/checkbox.module.mjs +5 -5
  29. package/esm2022/chip/chip.component.mjs +82 -0
  30. package/{esm2020 → esm2022}/chip/chip.module.mjs +5 -5
  31. package/{esm2020 → esm2022}/datepicker_v2/datepicker.module.mjs +5 -5
  32. package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +183 -0
  33. package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +432 -0
  34. package/{esm2020 → esm2022}/daterangepicker_v2/daterangepicker.module.mjs +5 -5
  35. package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +156 -0
  36. package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +466 -0
  37. package/esm2022/drawer/drawer-body/drawer-body.component.mjs +59 -0
  38. package/{esm2020 → esm2022}/drawer/drawer-ref.mjs +4 -4
  39. package/{esm2020 → esm2022}/drawer/drawer.module.mjs +5 -5
  40. package/{esm2020 → esm2022}/drawer/drawer.service.mjs +5 -5
  41. package/{esm2020 → esm2022}/dropdown/calculate-container-height.directive.mjs +5 -5
  42. package/esm2022/dropdown/dropdown.component.mjs +464 -0
  43. package/{esm2020 → esm2022}/dropdown/dropdown.module.mjs +5 -5
  44. package/esm2022/dynamic-form/dynamic-form.component.mjs +1088 -0
  45. package/{esm2020 → esm2022}/dynamic-form/dynamic-form.module.mjs +13 -13
  46. package/esm2022/fab/fab.component.mjs +145 -0
  47. package/{esm2020 → esm2022}/fab/fab.module.mjs +5 -5
  48. package/esm2022/filter/filter-panel/filter-panel.component.mjs +396 -0
  49. package/{esm2020 → esm2022}/filter/filters.module.mjs +17 -17
  50. package/{esm2020 → esm2022}/filter/has-value.pipe.mjs +4 -4
  51. package/{esm2020 → esm2022}/input/directives/input/input.directive.mjs +6 -6
  52. package/{fesm2020/mis-crystal-design-system-input.mjs → esm2022/input/mis-input.component.mjs} +49 -109
  53. package/{esm2020 → esm2022}/input/mis-input.module.mjs +5 -5
  54. package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +75 -0
  55. package/{esm2020 → esm2022}/input-stepper/input-stepper.module.mjs +5 -5
  56. package/esm2022/loader/loader.component.mjs +25 -0
  57. package/{esm2020 → esm2022}/loader/loader.module.mjs +5 -5
  58. package/esm2022/menu/menu-close.directive.mjs +25 -0
  59. package/{esm2020 → esm2022}/menu/menu.directive.mjs +7 -7
  60. package/{esm2020 → esm2022}/menu/menu.module.mjs +5 -5
  61. package/esm2022/mobile-filter/mobile-filter.component.mjs +180 -0
  62. package/{esm2020 → esm2022}/mobile-filter/mobile-filter.module.mjs +5 -5
  63. package/{esm2020 → esm2022}/modal/modal.module.mjs +5 -5
  64. package/{esm2020 → esm2022}/modal/modal.service.mjs +5 -5
  65. package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +56 -0
  66. package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +489 -0
  67. package/{esm2020 → esm2022}/multi-select-dropdown/multi-select-dropdown.module.mjs +5 -5
  68. package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +516 -0
  69. package/{esm2020 → esm2022}/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +5 -5
  70. package/esm2022/phone-input/phone-input.component.mjs +72 -0
  71. package/{esm2020 → esm2022}/phone-input/phone-input.module.mjs +5 -5
  72. package/esm2022/radio-button/radio-button.component.mjs +57 -0
  73. package/{esm2020 → esm2022}/radio-button/radio-button.module.mjs +5 -5
  74. package/esm2022/ske-loader/ske-loader.component.mjs +54 -0
  75. package/{esm2020 → esm2022}/ske-loader/ske-loader.module.mjs +5 -5
  76. package/esm2022/slider/slider.component.mjs +46 -0
  77. package/{esm2020 → esm2022}/slider/slider.module.mjs +7 -7
  78. package/esm2022/snackbar/snackbar/snackbar.component.mjs +72 -0
  79. package/{esm2020 → esm2022}/snackbar/snackbar.module.mjs +5 -5
  80. package/{esm2020 → esm2022}/snackbar/snackbar.service.mjs +5 -5
  81. package/{esm2020 → esm2022}/specificdatepicker/specificdatepicker.module.mjs +5 -5
  82. package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +632 -0
  83. package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +196 -0
  84. package/esm2022/star-rating/star-rating.component.mjs +113 -0
  85. package/{esm2020 → esm2022}/star-rating/star-rating.module.mjs +5 -5
  86. package/esm2022/switch/switch.component.mjs +56 -0
  87. package/{esm2020 → esm2022}/switch/switch.module.mjs +5 -5
  88. package/esm2022/table/custom-table-cell.directive.mjs +42 -0
  89. package/esm2022/table/filter/filter.component.mjs +177 -0
  90. package/esm2022/table/sub-table/sub-table.component.mjs +192 -0
  91. package/esm2022/table/table.component.mjs +485 -0
  92. package/{esm2020 → esm2022}/table/table.module.mjs +5 -5
  93. package/esm2022/timepicker/timepicker.component.mjs +347 -0
  94. package/{esm2020 → esm2022}/timepicker/timepicker.directive.mjs +11 -11
  95. package/{esm2020 → esm2022}/timepicker/timepicker.module.mjs +5 -5
  96. package/{esm2020 → esm2022}/timerangepicker/timerangepicker.component.mjs +23 -22
  97. package/{esm2020 → esm2022}/timerangepicker/timerangepicker.module.mjs +5 -5
  98. package/esm2022/toast/toast.component.mjs +51 -0
  99. package/{esm2020 → esm2022}/toast/toast.data.service.mjs +8 -8
  100. package/{esm2020 → esm2022}/toast/toast.module.mjs +5 -5
  101. package/{esm2020 → esm2022}/toast/toast.service.mjs +5 -5
  102. package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +79 -0
  103. package/esm2022/tooltip/tooltip.directive.mjs +143 -0
  104. package/{esm2020 → esm2022}/tooltip/tooltip.module.mjs +5 -5
  105. package/esm2022/virtual-scroll/virtual-scroll.component.mjs +188 -0
  106. package/{esm2020 → esm2022}/virtual-scroll/virtual-scroll.module.mjs +7 -7
  107. package/{esm2020 → esm2022}/widgets/services/widget.service.mjs +5 -5
  108. package/{esm2020 → esm2022}/widgets/widgets.module.mjs +5 -5
  109. package/fab/fab.component.d.ts +4 -4
  110. package/{fesm2020 → fesm2022}/mis-crystal-design-system-action-list.mjs +107 -114
  111. package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -0
  112. package/{fesm2020 → fesm2022}/mis-crystal-design-system-analytics.mjs +9 -9
  113. package/{fesm2020 → fesm2022}/mis-crystal-design-system-analytics.mjs.map +1 -1
  114. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +543 -0
  115. package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
  116. package/fesm2022/mis-crystal-design-system-button.mjs +173 -0
  117. package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -0
  118. package/fesm2022/mis-crystal-design-system-checkbox.mjs +150 -0
  119. package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -0
  120. package/fesm2022/mis-crystal-design-system-chip.mjs +108 -0
  121. package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -0
  122. package/{fesm2020 → fesm2022}/mis-crystal-design-system-datepicker_v2.mjs +133 -140
  123. package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
  124. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +690 -0
  125. package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
  126. package/{fesm2020 → fesm2022}/mis-crystal-design-system-drawer.mjs +34 -33
  127. package/{fesm2020 → fesm2022}/mis-crystal-design-system-drawer.mjs.map +1 -1
  128. package/{fesm2020 → fesm2022}/mis-crystal-design-system-dropdown.mjs +177 -185
  129. package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -0
  130. package/{fesm2020 → fesm2022}/mis-crystal-design-system-dynamic-form.mjs +442 -457
  131. package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
  132. package/{fesm2020 → fesm2022}/mis-crystal-design-system-fab.mjs +49 -48
  133. package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -0
  134. package/{fesm2020 → fesm2022}/mis-crystal-design-system-filter.mjs +113 -120
  135. package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -0
  136. package/fesm2022/mis-crystal-design-system-input-stepper.mjs +104 -0
  137. package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -0
  138. package/fesm2022/mis-crystal-design-system-input.mjs +146 -0
  139. package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -0
  140. package/fesm2022/mis-crystal-design-system-loader.mjs +51 -0
  141. package/{fesm2020 → fesm2022}/mis-crystal-design-system-loader.mjs.map +1 -1
  142. package/{fesm2020 → fesm2022}/mis-crystal-design-system-menu.mjs +17 -17
  143. package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -0
  144. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +205 -0
  145. package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
  146. package/{fesm2020 → fesm2022}/mis-crystal-design-system-modal.mjs +34 -33
  147. package/{fesm2015 → fesm2022}/mis-crystal-design-system-modal.mjs.map +1 -1
  148. package/{fesm2020 → fesm2022}/mis-crystal-design-system-multi-select-dropdown.mjs +108 -110
  149. package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
  150. package/{fesm2020 → fesm2022}/mis-crystal-design-system-nested-multi-select-dropdown.mjs +129 -130
  151. package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
  152. package/{fesm2020 → fesm2022}/mis-crystal-design-system-phone-input.mjs +22 -21
  153. package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -0
  154. package/fesm2022/mis-crystal-design-system-radio-button.mjs +83 -0
  155. package/{fesm2020 → fesm2022}/mis-crystal-design-system-radio-button.mjs.map +1 -1
  156. package/fesm2022/mis-crystal-design-system-ske-loader.mjs +77 -0
  157. package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -0
  158. package/fesm2022/mis-crystal-design-system-slider.mjs +80 -0
  159. package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -0
  160. package/{fesm2020 → fesm2022}/mis-crystal-design-system-snackbar.mjs +33 -33
  161. package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -0
  162. package/{fesm2020 → fesm2022}/mis-crystal-design-system-specificdatepicker.mjs +205 -205
  163. package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
  164. package/{fesm2020 → fesm2022}/mis-crystal-design-system-star-rating.mjs +30 -29
  165. package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -0
  166. package/fesm2022/mis-crystal-design-system-switch.mjs +82 -0
  167. package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -0
  168. package/fesm2022/mis-crystal-design-system-table.mjs +912 -0
  169. package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -0
  170. package/{fesm2020 → fesm2022}/mis-crystal-design-system-timepicker.mjs +79 -75
  171. package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -0
  172. package/{fesm2020 → fesm2022}/mis-crystal-design-system-timerangepicker.mjs +27 -26
  173. package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -0
  174. package/{fesm2020 → fesm2022}/mis-crystal-design-system-toast.mjs +35 -34
  175. package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -0
  176. package/{fesm2020 → fesm2022}/mis-crystal-design-system-tooltip.mjs +48 -48
  177. package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -0
  178. package/{fesm2015 → fesm2022}/mis-crystal-design-system-utils.mjs.map +1 -1
  179. package/{fesm2020 → fesm2022}/mis-crystal-design-system-virtual-scroll.mjs +51 -53
  180. package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
  181. package/{fesm2020 → fesm2022}/mis-crystal-design-system-widgets.mjs +4 -4
  182. package/{fesm2020 → fesm2022}/mis-crystal-design-system-widgets.mjs.map +1 -1
  183. package/filter/filter-panel/filter-panel.component.d.ts +1 -1
  184. package/input/directives/input/input.directive.d.ts +1 -1
  185. package/input/mis-input.component.d.ts +1 -1
  186. package/input-stepper/input-stepper/input-stepper.component.d.ts +1 -1
  187. package/loader/loader.component.d.ts +1 -1
  188. package/menu/menu-close.directive.d.ts +1 -1
  189. package/menu/menu.directive.d.ts +1 -1
  190. package/mobile-filter/mobile-filter.component.d.ts +1 -1
  191. package/modal/module-wrapper/module-wrapper.component.d.ts +1 -1
  192. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +1 -1
  193. package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +1 -1
  194. package/package.json +128 -210
  195. package/phone-input/phone-input.component.d.ts +1 -1
  196. package/radio-button/radio-button.component.d.ts +1 -1
  197. package/ske-loader/ske-loader.component.d.ts +1 -1
  198. package/slider/slider.component.d.ts +1 -1
  199. package/snackbar/snackbar/snackbar.component.d.ts +1 -1
  200. package/specificdatepicker/models/sdp-config.model.d.ts +1 -1
  201. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
  202. package/specificdatepicker/tz-specificdatepicker.directive.d.ts +1 -1
  203. package/star-rating/star-rating.component.d.ts +1 -1
  204. package/styles/mis-old-icon-styles.scss +498 -0
  205. package/switch/switch.component.d.ts +1 -1
  206. package/table/custom-table-cell.directive.d.ts +1 -1
  207. package/table/filter/filter.component.d.ts +1 -1
  208. package/table/sub-table/sub-table.component.d.ts +1 -1
  209. package/table/table.component.d.ts +1 -1
  210. package/timepicker/timepicker.component.d.ts +1 -1
  211. package/timepicker/timepicker.directive.d.ts +1 -1
  212. package/timerangepicker/timerange.namespace.d.ts +1 -1
  213. package/timerangepicker/timerangepicker.component.d.ts +1 -1
  214. package/toast/toast.component.d.ts +1 -1
  215. package/toast/toast.service.d.ts +1 -1
  216. package/tooltip/models/tooltip.model.d.ts +1 -1
  217. package/tooltip/tooltip-container/tooltip.component.d.ts +1 -1
  218. package/tooltip/tooltip.directive.d.ts +1 -1
  219. package/virtual-scroll/virtual-scroll.component.d.ts +1 -1
  220. package/widgets/interfaces/widgets.model.d.ts +1 -1
  221. package/esm2020/async-search-dropdown/async-dropdown.component.mjs +0 -524
  222. package/esm2020/button/button.component.mjs +0 -87
  223. package/esm2020/checkbox/checkbox.component.mjs +0 -124
  224. package/esm2020/chip/chip.component.mjs +0 -82
  225. package/esm2020/datepicker_v2/tz-datepicker.directive.mjs +0 -183
  226. package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +0 -439
  227. package/esm2020/daterangepicker_v2/tz-daterangepicker.directive.mjs +0 -156
  228. package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +0 -465
  229. package/esm2020/drawer/drawer-body/drawer-body.component.mjs +0 -58
  230. package/esm2020/dropdown/dropdown.component.mjs +0 -472
  231. package/esm2020/dynamic-form/dynamic-form.component.mjs +0 -1103
  232. package/esm2020/fab/fab.component.mjs +0 -144
  233. package/esm2020/filter/filter-panel/filter-panel.component.mjs +0 -403
  234. package/esm2020/input/mis-input.component.mjs +0 -84
  235. package/esm2020/input-stepper/input-stepper/input-stepper.component.mjs +0 -74
  236. package/esm2020/loader/loader.component.mjs +0 -24
  237. package/esm2020/menu/menu-close.directive.mjs +0 -25
  238. package/esm2020/mobile-filter/mobile-filter.component.mjs +0 -181
  239. package/esm2020/modal/module-wrapper/module-wrapper.component.mjs +0 -55
  240. package/esm2020/multi-select-dropdown/multi-select-dropdown.component.mjs +0 -491
  241. package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +0 -517
  242. package/esm2020/phone-input/phone-input.component.mjs +0 -71
  243. package/esm2020/radio-button/radio-button.component.mjs +0 -56
  244. package/esm2020/ske-loader/ske-loader.component.mjs +0 -53
  245. package/esm2020/slider/slider.component.mjs +0 -45
  246. package/esm2020/snackbar/snackbar/snackbar.component.mjs +0 -72
  247. package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +0 -632
  248. package/esm2020/specificdatepicker/tz-specificdatepicker.directive.mjs +0 -196
  249. package/esm2020/star-rating/star-rating.component.mjs +0 -112
  250. package/esm2020/switch/switch.component.mjs +0 -55
  251. package/esm2020/table/custom-table-cell.directive.mjs +0 -42
  252. package/esm2020/table/filter/filter.component.mjs +0 -176
  253. package/esm2020/table/sub-table/sub-table.component.mjs +0 -193
  254. package/esm2020/table/table.component.mjs +0 -492
  255. package/esm2020/timepicker/timepicker.component.mjs +0 -343
  256. package/esm2020/toast/toast.component.mjs +0 -50
  257. package/esm2020/tooltip/tooltip-container/tooltip.component.mjs +0 -79
  258. package/esm2020/tooltip/tooltip.directive.mjs +0 -143
  259. package/esm2020/virtual-scroll/virtual-scroll.component.mjs +0 -190
  260. package/fesm2015/mis-crystal-design-system-action-list.mjs +0 -446
  261. package/fesm2015/mis-crystal-design-system-action-list.mjs.map +0 -1
  262. package/fesm2015/mis-crystal-design-system-analytics.mjs +0 -87
  263. package/fesm2015/mis-crystal-design-system-analytics.mjs.map +0 -1
  264. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs +0 -617
  265. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +0 -1
  266. package/fesm2015/mis-crystal-design-system-button.mjs +0 -189
  267. package/fesm2015/mis-crystal-design-system-button.mjs.map +0 -1
  268. package/fesm2015/mis-crystal-design-system-checkbox.mjs +0 -166
  269. package/fesm2015/mis-crystal-design-system-checkbox.mjs.map +0 -1
  270. package/fesm2015/mis-crystal-design-system-chip.mjs +0 -123
  271. package/fesm2015/mis-crystal-design-system-chip.mjs.map +0 -1
  272. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +0 -741
  273. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +0 -1
  274. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +0 -729
  275. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +0 -1
  276. package/fesm2015/mis-crystal-design-system-drawer.mjs +0 -185
  277. package/fesm2015/mis-crystal-design-system-drawer.mjs.map +0 -1
  278. package/fesm2015/mis-crystal-design-system-dropdown.mjs +0 -616
  279. package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +0 -1
  280. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +0 -1331
  281. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +0 -1
  282. package/fesm2015/mis-crystal-design-system-fab.mjs +0 -186
  283. package/fesm2015/mis-crystal-design-system-fab.mjs.map +0 -1
  284. package/fesm2015/mis-crystal-design-system-filter.mjs +0 -560
  285. package/fesm2015/mis-crystal-design-system-filter.mjs.map +0 -1
  286. package/fesm2015/mis-crystal-design-system-input-stepper.mjs +0 -110
  287. package/fesm2015/mis-crystal-design-system-input-stepper.mjs.map +0 -1
  288. package/fesm2015/mis-crystal-design-system-input.mjs +0 -165
  289. package/fesm2015/mis-crystal-design-system-input.mjs.map +0 -1
  290. package/fesm2015/mis-crystal-design-system-loader.mjs +0 -57
  291. package/fesm2015/mis-crystal-design-system-loader.mjs.map +0 -1
  292. package/fesm2015/mis-crystal-design-system-menu.mjs +0 -135
  293. package/fesm2015/mis-crystal-design-system-menu.mjs.map +0 -1
  294. package/fesm2015/mis-crystal-design-system-mobile-filter.mjs +0 -227
  295. package/fesm2015/mis-crystal-design-system-mobile-filter.mjs.map +0 -1
  296. package/fesm2015/mis-crystal-design-system-modal.mjs +0 -184
  297. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs +0 -550
  298. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs.map +0 -1
  299. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs +0 -559
  300. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +0 -1
  301. package/fesm2015/mis-crystal-design-system-phone-input.mjs +0 -107
  302. package/fesm2015/mis-crystal-design-system-phone-input.mjs.map +0 -1
  303. package/fesm2015/mis-crystal-design-system-radio-button.mjs +0 -89
  304. package/fesm2015/mis-crystal-design-system-radio-button.mjs.map +0 -1
  305. package/fesm2015/mis-crystal-design-system-ske-loader.mjs +0 -86
  306. package/fesm2015/mis-crystal-design-system-ske-loader.mjs.map +0 -1
  307. package/fesm2015/mis-crystal-design-system-slider.mjs +0 -88
  308. package/fesm2015/mis-crystal-design-system-slider.mjs.map +0 -1
  309. package/fesm2015/mis-crystal-design-system-snackbar.mjs +0 -175
  310. package/fesm2015/mis-crystal-design-system-snackbar.mjs.map +0 -1
  311. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +0 -956
  312. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +0 -1
  313. package/fesm2015/mis-crystal-design-system-star-rating.mjs +0 -145
  314. package/fesm2015/mis-crystal-design-system-star-rating.mjs.map +0 -1
  315. package/fesm2015/mis-crystal-design-system-switch.mjs +0 -88
  316. package/fesm2015/mis-crystal-design-system-switch.mjs.map +0 -1
  317. package/fesm2015/mis-crystal-design-system-table.mjs +0 -1045
  318. package/fesm2015/mis-crystal-design-system-table.mjs.map +0 -1
  319. package/fesm2015/mis-crystal-design-system-timepicker.mjs +0 -452
  320. package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +0 -1
  321. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs +0 -270
  322. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +0 -1
  323. package/fesm2015/mis-crystal-design-system-toast.mjs +0 -214
  324. package/fesm2015/mis-crystal-design-system-toast.mjs.map +0 -1
  325. package/fesm2015/mis-crystal-design-system-tooltip.mjs +0 -272
  326. package/fesm2015/mis-crystal-design-system-tooltip.mjs.map +0 -1
  327. package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs +0 -259
  328. package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs.map +0 -1
  329. package/fesm2015/mis-crystal-design-system-widgets.mjs +0 -131
  330. package/fesm2015/mis-crystal-design-system-widgets.mjs.map +0 -1
  331. package/fesm2020/mis-crystal-design-system-action-list.mjs.map +0 -1
  332. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs +0 -549
  333. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +0 -1
  334. package/fesm2020/mis-crystal-design-system-button.mjs +0 -172
  335. package/fesm2020/mis-crystal-design-system-button.mjs.map +0 -1
  336. package/fesm2020/mis-crystal-design-system-checkbox.mjs +0 -150
  337. package/fesm2020/mis-crystal-design-system-checkbox.mjs.map +0 -1
  338. package/fesm2020/mis-crystal-design-system-chip.mjs +0 -108
  339. package/fesm2020/mis-crystal-design-system-chip.mjs.map +0 -1
  340. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +0 -1
  341. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +0 -689
  342. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +0 -1
  343. package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +0 -1
  344. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +0 -1
  345. package/fesm2020/mis-crystal-design-system-fab.mjs.map +0 -1
  346. package/fesm2020/mis-crystal-design-system-filter.mjs.map +0 -1
  347. package/fesm2020/mis-crystal-design-system-input-stepper.mjs +0 -103
  348. package/fesm2020/mis-crystal-design-system-input-stepper.mjs.map +0 -1
  349. package/fesm2020/mis-crystal-design-system-input.mjs.map +0 -1
  350. package/fesm2020/mis-crystal-design-system-loader.mjs +0 -50
  351. package/fesm2020/mis-crystal-design-system-menu.mjs.map +0 -1
  352. package/fesm2020/mis-crystal-design-system-mobile-filter.mjs +0 -206
  353. package/fesm2020/mis-crystal-design-system-mobile-filter.mjs.map +0 -1
  354. package/fesm2020/mis-crystal-design-system-modal.mjs.map +0 -1
  355. package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs.map +0 -1
  356. package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +0 -1
  357. package/fesm2020/mis-crystal-design-system-phone-input.mjs.map +0 -1
  358. package/fesm2020/mis-crystal-design-system-radio-button.mjs +0 -82
  359. package/fesm2020/mis-crystal-design-system-ske-loader.mjs +0 -76
  360. package/fesm2020/mis-crystal-design-system-ske-loader.mjs.map +0 -1
  361. package/fesm2020/mis-crystal-design-system-slider.mjs +0 -79
  362. package/fesm2020/mis-crystal-design-system-slider.mjs.map +0 -1
  363. package/fesm2020/mis-crystal-design-system-snackbar.mjs.map +0 -1
  364. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +0 -1
  365. package/fesm2020/mis-crystal-design-system-star-rating.mjs.map +0 -1
  366. package/fesm2020/mis-crystal-design-system-styles.mjs +0 -4
  367. package/fesm2020/mis-crystal-design-system-styles.mjs.map +0 -1
  368. package/fesm2020/mis-crystal-design-system-switch.mjs +0 -81
  369. package/fesm2020/mis-crystal-design-system-switch.mjs.map +0 -1
  370. package/fesm2020/mis-crystal-design-system-table.mjs +0 -919
  371. package/fesm2020/mis-crystal-design-system-table.mjs.map +0 -1
  372. package/fesm2020/mis-crystal-design-system-timepicker.mjs.map +0 -1
  373. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs.map +0 -1
  374. package/fesm2020/mis-crystal-design-system-toast.mjs.map +0 -1
  375. package/fesm2020/mis-crystal-design-system-tooltip.mjs.map +0 -1
  376. package/fesm2020/mis-crystal-design-system-utils.mjs +0 -24
  377. package/fesm2020/mis-crystal-design-system-utils.mjs.map +0 -1
  378. package/fesm2020/mis-crystal-design-system-virtual-scroll.mjs.map +0 -1
  379. package/fesm2020/mis-crystal-design-system.mjs +0 -24
  380. package/fesm2020/mis-crystal-design-system.mjs.map +0 -1
  381. /package/{esm2020 → esm2022}/action-list/index.mjs +0 -0
  382. /package/{esm2020 → esm2022}/action-list/mis-crystal-design-system-action-list.mjs +0 -0
  383. /package/{esm2020 → esm2022}/action-list/public_api.mjs +0 -0
  384. /package/{esm2020 → esm2022}/analytics/index.mjs +0 -0
  385. /package/{esm2020 → esm2022}/analytics/mis-crystal-design-system-analytics.mjs +0 -0
  386. /package/{esm2020 → esm2022}/analytics/public_api.mjs +0 -0
  387. /package/{esm2020 → esm2022}/async-search-dropdown/index.mjs +0 -0
  388. /package/{esm2020 → esm2022}/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs +0 -0
  389. /package/{esm2020 → esm2022}/async-search-dropdown/public_api.mjs +0 -0
  390. /package/{esm2020 → esm2022}/button/index.mjs +0 -0
  391. /package/{esm2020 → esm2022}/button/mis-crystal-design-system-button.mjs +0 -0
  392. /package/{esm2020 → esm2022}/button/public_api.mjs +0 -0
  393. /package/{esm2020 → esm2022}/checkbox/index.mjs +0 -0
  394. /package/{esm2020 → esm2022}/checkbox/mis-crystal-design-system-checkbox.mjs +0 -0
  395. /package/{esm2020 → esm2022}/checkbox/public_api.mjs +0 -0
  396. /package/{esm2020 → esm2022}/chip/index.mjs +0 -0
  397. /package/{esm2020 → esm2022}/chip/mis-crystal-design-system-chip.mjs +0 -0
  398. /package/{esm2020 → esm2022}/chip/public_api.mjs +0 -0
  399. /package/{esm2020 → esm2022}/datepicker_v2/datepicker-constants.mjs +0 -0
  400. /package/{esm2020 → esm2022}/datepicker_v2/index.mjs +0 -0
  401. /package/{esm2020 → esm2022}/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs +0 -0
  402. /package/{esm2020 → esm2022}/datepicker_v2/models/dp-config.model.mjs +0 -0
  403. /package/{esm2020 → esm2022}/datepicker_v2/public_api.mjs +0 -0
  404. /package/{esm2020 → esm2022}/datepicker_v2/utils/index.mjs +0 -0
  405. /package/{esm2020 → esm2022}/daterangepicker_v2/daterangepicker-constants.mjs +0 -0
  406. /package/{esm2020 → esm2022}/daterangepicker_v2/index.mjs +0 -0
  407. /package/{esm2020 → esm2022}/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.mjs +0 -0
  408. /package/{esm2020 → esm2022}/daterangepicker_v2/models/drp-config.model.mjs +0 -0
  409. /package/{esm2020 → esm2022}/daterangepicker_v2/public_api.mjs +0 -0
  410. /package/{esm2020 → esm2022}/daterangepicker_v2/utils/index.mjs +0 -0
  411. /package/{esm2020 → esm2022}/drawer/drawer-constants.mjs +0 -0
  412. /package/{esm2020 → esm2022}/drawer/index.mjs +0 -0
  413. /package/{esm2020 → esm2022}/drawer/mis-crystal-design-system-drawer.mjs +0 -0
  414. /package/{esm2020 → esm2022}/drawer/public_api.mjs +0 -0
  415. /package/{esm2020 → esm2022}/dropdown/index.mjs +0 -0
  416. /package/{esm2020 → esm2022}/dropdown/mis-crystal-design-system-dropdown.mjs +0 -0
  417. /package/{esm2020 → esm2022}/dropdown/public_api.mjs +0 -0
  418. /package/{esm2020 → esm2022}/dynamic-form/dynamic-form.namespace.mjs +0 -0
  419. /package/{esm2020 → esm2022}/dynamic-form/index.mjs +0 -0
  420. /package/{esm2020 → esm2022}/dynamic-form/mis-crystal-design-system-dynamic-form.mjs +0 -0
  421. /package/{esm2020 → esm2022}/dynamic-form/public_api.mjs +0 -0
  422. /package/{esm2020 → esm2022}/fab/index.mjs +0 -0
  423. /package/{esm2020 → esm2022}/fab/mis-crystal-design-system-fab.mjs +0 -0
  424. /package/{esm2020 → esm2022}/fab/public_api.mjs +0 -0
  425. /package/{esm2020 → esm2022}/filter/animations/slideFromRight.mjs +0 -0
  426. /package/{esm2020 → esm2022}/filter/index.mjs +0 -0
  427. /package/{esm2020 → esm2022}/filter/mis-crystal-design-system-filter.mjs +0 -0
  428. /package/{esm2020 → esm2022}/filter/public_api.mjs +0 -0
  429. /package/{esm2020 → esm2022}/index.mjs +0 -0
  430. /package/{esm2020 → esm2022}/input/index.mjs +0 -0
  431. /package/{esm2020 → esm2022}/input/mis-crystal-design-system-input.mjs +0 -0
  432. /package/{esm2020 → esm2022}/input/public_api.mjs +0 -0
  433. /package/{esm2020 → esm2022}/input-stepper/index.mjs +0 -0
  434. /package/{esm2020 → esm2022}/input-stepper/mis-crystal-design-system-input-stepper.mjs +0 -0
  435. /package/{esm2020 → esm2022}/input-stepper/public_api.mjs +0 -0
  436. /package/{esm2020 → esm2022}/loader/index.mjs +0 -0
  437. /package/{esm2020 → esm2022}/loader/mis-crystal-design-system-loader.mjs +0 -0
  438. /package/{esm2020 → esm2022}/loader/public_api.mjs +0 -0
  439. /package/{esm2020 → esm2022}/menu/index.mjs +0 -0
  440. /package/{esm2020 → esm2022}/menu/mis-crystal-design-system-menu.mjs +0 -0
  441. /package/{esm2020 → esm2022}/menu/public_api.mjs +0 -0
  442. /package/{esm2020 → esm2022}/mis-crystal-design-system.mjs +0 -0
  443. /package/{esm2020 → esm2022}/mobile-filter/index.mjs +0 -0
  444. /package/{esm2020 → esm2022}/mobile-filter/mis-crystal-design-system-mobile-filter.mjs +0 -0
  445. /package/{esm2020 → esm2022}/mobile-filter/public_api.mjs +0 -0
  446. /package/{esm2020 → esm2022}/modal/index.mjs +0 -0
  447. /package/{esm2020 → esm2022}/modal/mis-crystal-design-system-modal.mjs +0 -0
  448. /package/{esm2020 → esm2022}/modal/modal-constants.mjs +0 -0
  449. /package/{esm2020 → esm2022}/modal/modal-ref.mjs +0 -0
  450. /package/{esm2020 → esm2022}/modal/public_api.mjs +0 -0
  451. /package/{esm2020 → esm2022}/multi-select-dropdown/index.mjs +0 -0
  452. /package/{esm2020 → esm2022}/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.mjs +0 -0
  453. /package/{esm2020 → esm2022}/multi-select-dropdown/public_api.mjs +0 -0
  454. /package/{esm2020 → esm2022}/nested-multi-select-dropdown/index.mjs +0 -0
  455. /package/{esm2020 → esm2022}/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.mjs +0 -0
  456. /package/{esm2020 → esm2022}/nested-multi-select-dropdown/public_api.mjs +0 -0
  457. /package/{esm2020 → esm2022}/phone-input/index.mjs +0 -0
  458. /package/{esm2020 → esm2022}/phone-input/mis-crystal-design-system-phone-input.mjs +0 -0
  459. /package/{esm2020 → esm2022}/phone-input/public_api.mjs +0 -0
  460. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  461. /package/{esm2020 → esm2022}/radio-button/index.mjs +0 -0
  462. /package/{esm2020 → esm2022}/radio-button/mis-crystal-design-system-radio-button.mjs +0 -0
  463. /package/{esm2020 → esm2022}/radio-button/public_api.mjs +0 -0
  464. /package/{esm2020 → esm2022}/ske-loader/index.mjs +0 -0
  465. /package/{esm2020 → esm2022}/ske-loader/mis-crystal-design-system-ske-loader.mjs +0 -0
  466. /package/{esm2020 → esm2022}/ske-loader/public_api.mjs +0 -0
  467. /package/{esm2020 → esm2022}/slider/index.mjs +0 -0
  468. /package/{esm2020 → esm2022}/slider/mis-crystal-design-system-slider.mjs +0 -0
  469. /package/{esm2020 → esm2022}/slider/public_api.mjs +0 -0
  470. /package/{esm2020 → esm2022}/snackbar/index.mjs +0 -0
  471. /package/{esm2020 → esm2022}/snackbar/mis-crystal-design-system-snackbar.mjs +0 -0
  472. /package/{esm2020 → esm2022}/snackbar/public_api.mjs +0 -0
  473. /package/{esm2020 → esm2022}/specificdatepicker/daterangepicker-constants.mjs +0 -0
  474. /package/{esm2020 → esm2022}/specificdatepicker/index.mjs +0 -0
  475. /package/{esm2020 → esm2022}/specificdatepicker/mis-crystal-design-system-specificdatepicker.mjs +0 -0
  476. /package/{esm2020 → esm2022}/specificdatepicker/models/sdp-config.model.mjs +0 -0
  477. /package/{esm2020 → esm2022}/specificdatepicker/public_api.mjs +0 -0
  478. /package/{esm2020 → esm2022}/specificdatepicker/utils/index.mjs +0 -0
  479. /package/{esm2020 → esm2022}/star-rating/index.mjs +0 -0
  480. /package/{esm2020 → esm2022}/star-rating/mis-crystal-design-system-star-rating.mjs +0 -0
  481. /package/{esm2020 → esm2022}/star-rating/public_api.mjs +0 -0
  482. /package/{esm2020 → esm2022}/styles/index.mjs +0 -0
  483. /package/{esm2020 → esm2022}/styles/mis-crystal-design-system-styles.mjs +0 -0
  484. /package/{esm2020 → esm2022}/styles/public_api.mjs +0 -0
  485. /package/{esm2020 → esm2022}/switch/index.mjs +0 -0
  486. /package/{esm2020 → esm2022}/switch/mis-crystal-design-system-switch.mjs +0 -0
  487. /package/{esm2020 → esm2022}/switch/public_api.mjs +0 -0
  488. /package/{esm2020 → esm2022}/table/index.mjs +0 -0
  489. /package/{esm2020 → esm2022}/table/mis-crystal-design-system-table.mjs +0 -0
  490. /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
  491. /package/{esm2020 → esm2022}/timepicker/index.mjs +0 -0
  492. /package/{esm2020 → esm2022}/timepicker/mis-crystal-design-system-timepicker.mjs +0 -0
  493. /package/{esm2020 → esm2022}/timepicker/public_api.mjs +0 -0
  494. /package/{esm2020 → esm2022}/timepicker/time.namespace.mjs +0 -0
  495. /package/{esm2020 → esm2022}/timerangepicker/index.mjs +0 -0
  496. /package/{esm2020 → esm2022}/timerangepicker/mis-crystal-design-system-timerangepicker.mjs +0 -0
  497. /package/{esm2020 → esm2022}/timerangepicker/public_api.mjs +0 -0
  498. /package/{esm2020 → esm2022}/timerangepicker/timerange.namespace.mjs +0 -0
  499. /package/{esm2020 → esm2022}/toast/index.mjs +0 -0
  500. /package/{esm2020 → esm2022}/toast/mis-crystal-design-system-toast.mjs +0 -0
  501. /package/{esm2020 → esm2022}/toast/public_api.mjs +0 -0
  502. /package/{esm2020 → esm2022}/tooltip/index.mjs +0 -0
  503. /package/{esm2020 → esm2022}/tooltip/mis-crystal-design-system-tooltip.mjs +0 -0
  504. /package/{esm2020 → esm2022}/tooltip/models/tooltip.model.mjs +0 -0
  505. /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
  506. /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
  507. /package/{esm2020 → esm2022}/utils/mis-crystal-design-system-utils.mjs +0 -0
  508. /package/{esm2020 → esm2022}/virtual-scroll/index.mjs +0 -0
  509. /package/{esm2020 → esm2022}/virtual-scroll/mis-crystal-design-system-virtual-scroll.mjs +0 -0
  510. /package/{esm2020 → esm2022}/virtual-scroll/public_api.mjs +0 -0
  511. /package/{esm2020 → esm2022}/virtual-scroll/virtual-scroll.constants.mjs +0 -0
  512. /package/{esm2020 → esm2022}/widgets/classes/async-widget.mjs +0 -0
  513. /package/{esm2020 → esm2022}/widgets/classes/base-widget.mjs +0 -0
  514. /package/{esm2020 → esm2022}/widgets/classes/sync-widget.mjs +0 -0
  515. /package/{esm2020 → esm2022}/widgets/classes/widget-group.mjs +0 -0
  516. /package/{esm2020 → esm2022}/widgets/index.mjs +0 -0
  517. /package/{esm2020 → esm2022}/widgets/interfaces/widgets.model.mjs +0 -0
  518. /package/{esm2020 → esm2022}/widgets/mis-crystal-design-system-widgets.mjs +0 -0
  519. /package/{esm2020 → esm2022}/widgets/public_api.mjs +0 -0
  520. /package/{fesm2015 → fesm2022}/mis-crystal-design-system-styles.mjs +0 -0
  521. /package/{fesm2015 → fesm2022}/mis-crystal-design-system-styles.mjs.map +0 -0
  522. /package/{fesm2015 → fesm2022}/mis-crystal-design-system-utils.mjs +0 -0
  523. /package/{fesm2015 → fesm2022}/mis-crystal-design-system.mjs +0 -0
  524. /package/{fesm2015 → fesm2022}/mis-crystal-design-system.mjs.map +0 -0
@@ -1,524 +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 = function (a0, a1) { return { "chip-md": a0, "chip-sm": a1 }; };
19
- const _c6 = function (a0, a1) { return { "h6": a0, "h8-b": a1 }; };
20
- const _c7 = function () { return { "margin-right": "4px" }; };
21
- const _c8 = function (a1) { return { "cursor": "pointer", "font-size": a1 }; };
22
- function AsyncDropdownComponent_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
23
- const _r11 = i0.ɵɵgetCurrentView();
24
- i0.ɵɵelementStart(0, "div", 11)(1, "span", 12);
25
- i0.ɵɵtext(2);
26
- i0.ɵɵelementEnd();
27
- i0.ɵɵelementStart(3, "span", 13);
28
- i0.ɵɵlistener("click", function AsyncDropdownComponent_div_2_div_1_Template_span_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r11); const item_r9 = restoredCtx.$implicit; const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.removeItem(item_r9)); })("keyup.enter", function AsyncDropdownComponent_div_2_div_1_Template_span_keyup_enter_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r11); const item_r9 = restoredCtx.$implicit; const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.removeItem(item_r9)); });
29
- i0.ɵɵelementEnd()();
30
- } if (rf & 2) {
31
- const item_r9 = ctx.$implicit;
32
- const ctx_r8 = i0.ɵɵnextContext(2);
33
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(5, _c5, ctx_r8.size === "md", ctx_r8.size === "sm"));
34
- i0.ɵɵadvance(1);
35
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(8, _c6, ctx_r8.size === "md", ctx_r8.size === "sm"))("ngStyle", i0.ɵɵpureFunction0(11, _c7));
36
- i0.ɵɵadvance(1);
37
- i0.ɵɵtextInterpolate(item_r9[ctx_r8.displayKey]);
38
- i0.ɵɵadvance(1);
39
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(12, _c8, ctx_r8.size === "sm" ? "12px" : "14px"));
40
- } }
41
- function AsyncDropdownComponent_div_2_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelementStart(0, "div", 9);
43
- i0.ɵɵtemplate(1, AsyncDropdownComponent_div_2_div_1_Template, 4, 14, "div", 10);
44
- i0.ɵɵelementEnd();
45
- } if (rf & 2) {
46
- const ctx_r1 = i0.ɵɵnextContext();
47
- i0.ɵɵadvance(1);
48
- i0.ɵɵproperty("ngForOf", ctx_r1.selectedItems);
49
- } }
50
- const _c9 = function (a0, a1) { return { "ip-md": a0, "ip-sm": a1 }; };
51
- function AsyncDropdownComponent_input_5_Template(rf, ctx) { if (rf & 1) {
52
- const _r15 = i0.ɵɵgetCurrentView();
53
- i0.ɵɵelementStart(0, "input", 14, 15);
54
- i0.ɵɵlistener("focus", function AsyncDropdownComponent_input_5_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.defaultCall()); })("keyup.enter", function AsyncDropdownComponent_input_5_Template_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.enablePopUpOnTab()); });
55
- i0.ɵɵelementEnd();
56
- } if (rf & 2) {
57
- const ctx_r2 = i0.ɵɵnextContext();
58
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(3, _c9, ctx_r2.size === "md", ctx_r2.size === "sm"))("placeholder", ctx_r2.placeholder)("formControl", ctx_r2.searchInput);
59
- } }
60
- function AsyncDropdownComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
61
- const _r19 = i0.ɵɵgetCurrentView();
62
- i0.ɵɵelementStart(0, "input", 16, 15);
63
- i0.ɵɵlistener("focus", function AsyncDropdownComponent_ng_template_6_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.defaultCall()); })("keyup.enter", function AsyncDropdownComponent_ng_template_6_Template_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.enablePopUpOnTab()); });
64
- i0.ɵɵelementEnd();
65
- } if (rf & 2) {
66
- const ctx_r4 = i0.ɵɵnextContext();
67
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(3, _c9, ctx_r4.size === "md", ctx_r4.size === "sm"))("placeholder", ctx_r4.placeholder)("formControl", ctx_r4.searchInput);
68
- } }
69
- function AsyncDropdownComponent_div_8_Template(rf, ctx) { if (rf & 1) {
70
- const _r22 = i0.ɵɵgetCurrentView();
71
- i0.ɵɵelementStart(0, "div", 17);
72
- i0.ɵɵlistener("click", function AsyncDropdownComponent_div_8_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.removeInputValue()); })("keyup.enter", function AsyncDropdownComponent_div_8_Template_div_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.removeInputValue()); });
73
- i0.ɵɵelementEnd();
74
- } }
75
- function AsyncDropdownComponent_ng_template_9_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
76
- i0.ɵɵelementContainer(0, 22);
77
- } if (rf & 2) {
78
- const ctx_r28 = i0.ɵɵnextContext(3);
79
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r28.customLoader);
80
- } }
81
- function AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_div_0_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵelementStart(0, "div", 24);
83
- i0.ɵɵelement(1, "mis-loader", 25);
84
- i0.ɵɵelementEnd();
85
- } if (rf & 2) {
86
- i0.ɵɵadvance(1);
87
- i0.ɵɵproperty("mobileView", true);
88
- } }
89
- function AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
90
- i0.ɵɵtemplate(0, AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_div_0_Template, 2, 1, "div", 23);
91
- } if (rf & 2) {
92
- const ctx_r30 = i0.ɵɵnextContext(3);
93
- i0.ɵɵproperty("ngIf", ctx_r30.loading && !ctx_r30.customLoader);
94
- } }
95
- function AsyncDropdownComponent_ng_template_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵelementContainerStart(0);
97
- i0.ɵɵtemplate(1, AsyncDropdownComponent_ng_template_9_ng_container_1_ng_container_1_Template, 1, 1, "ng-container", 20);
98
- i0.ɵɵtemplate(2, AsyncDropdownComponent_ng_template_9_ng_container_1_ng_template_2_Template, 1, 1, "ng-template", null, 21, i0.ɵɵtemplateRefExtractor);
99
- i0.ɵɵelementContainerEnd();
100
- } if (rf & 2) {
101
- const _r29 = i0.ɵɵreference(3);
102
- const ctx_r24 = i0.ɵɵnextContext(2);
103
- i0.ɵɵadvance(1);
104
- i0.ɵɵproperty("ngIf", ctx_r24.customLoader)("ngIfElse", _r29);
105
- } }
106
- function AsyncDropdownComponent_ng_template_9_ng_container_2_Template(rf, ctx) { if (rf & 1) {
107
- i0.ɵɵelementContainerStart(0);
108
- i0.ɵɵelementStart(1, "div", 24)(2, "p");
109
- i0.ɵɵtext(3, "Unknown error has occurred, ");
110
- i0.ɵɵelement(4, "br");
111
- i0.ɵɵtext(5, " Please try again later.");
112
- i0.ɵɵelementEnd()();
113
- i0.ɵɵelementContainerEnd();
114
- } }
115
- const _c10 = function (a0) { return { $implicit: a0 }; };
116
- function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_div_3_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵelementStart(0, "div", 31);
118
- i0.ɵɵelementContainer(1, 32);
119
- i0.ɵɵelementEnd();
120
- } if (rf & 2) {
121
- const item_r33 = i0.ɵɵnextContext().$implicit;
122
- const ctx_r34 = i0.ɵɵnextContext(3);
123
- i0.ɵɵproperty("tabindex", ctx_r34.openPopUpOnTab ? 0 : -1);
124
- i0.ɵɵadvance(1);
125
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r34.customItem)("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c10, item_r33));
126
- } }
127
- function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
128
- const _r40 = i0.ɵɵgetCurrentView();
129
- i0.ɵɵelement(0, "div", 28);
130
- i0.ɵɵelementStart(1, "div", 33);
131
- i0.ɵɵlistener("click", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r40); const item_r33 = i0.ɵɵnextContext().$implicit; const ctx_r38 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r38.selectData(item_r33, false)); })("keyup.enter", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template_div_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r40); const item_r33 = i0.ɵɵnextContext().$implicit; const ctx_r41 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r41.selectData(item_r33, false)); });
132
- i0.ɵɵelementStart(2, "div", 34)(3, "div", 35);
133
- i0.ɵɵtext(4);
134
- i0.ɵɵelementEnd();
135
- i0.ɵɵelementStart(5, "div", 36);
136
- i0.ɵɵtext(6);
137
- i0.ɵɵelementEnd()()();
138
- } if (rf & 2) {
139
- const item_r33 = i0.ɵɵnextContext().$implicit;
140
- const ctx_r36 = i0.ɵɵnextContext(3);
141
- i0.ɵɵadvance(1);
142
- i0.ɵɵproperty("tabindex", ctx_r36.openPopUpOnTab ? 0 : -1);
143
- i0.ɵɵadvance(3);
144
- i0.ɵɵtextInterpolate1(" ", item_r33[ctx_r36.displayKey], " ");
145
- i0.ɵɵadvance(2);
146
- i0.ɵɵtextInterpolate1(" ", item_r33[ctx_r36.secondaryDisplayKey], " ");
147
- } }
148
- function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
149
- const _r45 = i0.ɵɵgetCurrentView();
150
- i0.ɵɵelementContainerStart(0);
151
- i0.ɵɵelementStart(1, "div", 27);
152
- i0.ɵɵlistener("click", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r45); const item_r33 = restoredCtx.$implicit; const ctx_r44 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r44.selectData(item_r33, false)); })("keyup.enter", function AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template_div_keyup_enter_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r45); const item_r33 = restoredCtx.$implicit; const ctx_r46 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r46.selectData(item_r33, false)); });
153
- i0.ɵɵelement(2, "div", 28);
154
- i0.ɵɵtemplate(3, AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_div_3_Template, 2, 5, "div", 29);
155
- i0.ɵɵtemplate(4, AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_ng_template_4_Template, 7, 3, "ng-template", null, 30, i0.ɵɵtemplateRefExtractor);
156
- i0.ɵɵelementEnd();
157
- i0.ɵɵelementContainerEnd();
158
- } if (rf & 2) {
159
- const _r35 = i0.ɵɵreference(5);
160
- const ctx_r32 = i0.ɵɵnextContext(3);
161
- i0.ɵɵadvance(3);
162
- i0.ɵɵproperty("ngIf", ctx_r32.customItem)("ngIfElse", _r35);
163
- } }
164
- function AsyncDropdownComponent_ng_template_9_div_3_Template(rf, ctx) { if (rf & 1) {
165
- i0.ɵɵelementStart(0, "div");
166
- i0.ɵɵtemplate(1, AsyncDropdownComponent_ng_template_9_div_3_ng_container_1_Template, 6, 2, "ng-container", 26);
167
- i0.ɵɵelementEnd();
168
- } if (rf & 2) {
169
- const ctx_r26 = i0.ɵɵnextContext(2);
170
- i0.ɵɵadvance(1);
171
- i0.ɵɵproperty("ngForOf", ctx_r26.data);
172
- } }
173
- function AsyncDropdownComponent_ng_template_9_div_4_Template(rf, ctx) { if (rf & 1) {
174
- i0.ɵɵelementStart(0, "div")(1, "div", 37);
175
- i0.ɵɵtext(2, "No Data Available");
176
- i0.ɵɵelementEnd()();
177
- } }
178
- const _c11 = function (a0, a1) { return { "max-height": a0, "width": a1 }; };
179
- const _c12 = function (a0) { return { "dd-list-pd": a0 }; };
180
- function AsyncDropdownComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
181
- i0.ɵɵelementStart(0, "div", 18);
182
- i0.ɵɵtemplate(1, AsyncDropdownComponent_ng_template_9_ng_container_1_Template, 4, 2, "ng-container", 19);
183
- i0.ɵɵtemplate(2, AsyncDropdownComponent_ng_template_9_ng_container_2_Template, 6, 0, "ng-container", 19);
184
- i0.ɵɵtemplate(3, AsyncDropdownComponent_ng_template_9_div_3_Template, 2, 1, "div", 19);
185
- i0.ɵɵtemplate(4, AsyncDropdownComponent_ng_template_9_div_4_Template, 3, 0, "div", 19);
186
- i0.ɵɵelementEnd();
187
- } if (rf & 2) {
188
- const ctx_r7 = i0.ɵɵnextContext();
189
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(7, _c11, ctx_r7.height, ctx_r7.dropdownListWidth))("ngClass", i0.ɵɵpureFunction1(10, _c12, ctx_r7.data.length === 0))("cdkTrapFocusAutoCapture", ctx_r7.openPopUpOnTab);
190
- i0.ɵɵadvance(1);
191
- i0.ɵɵproperty("ngIf", ctx_r7.loading);
192
- i0.ɵɵadvance(1);
193
- i0.ɵɵproperty("ngIf", ctx_r7.error);
194
- i0.ɵɵadvance(1);
195
- i0.ɵɵproperty("ngIf", !ctx_r7.loading && !ctx_r7.error && ctx_r7.data.length > 0);
196
- i0.ɵɵadvance(1);
197
- i0.ɵɵproperty("ngIf", !ctx_r7.loading && !ctx_r7.error && ctx_r7.data.length === 0 && ctx_r7.searchInput.value);
198
- } }
199
- const _c13 = function (a0, a1, a2) { return { opened: a0, disabled: a1, readonly: a2 }; };
200
- export class AsyncDropdownComponent {
201
- constructor(overlay, viewContainerRef, _ngZone) {
202
- this.overlay = overlay;
203
- this.viewContainerRef = viewContainerRef;
204
- this._ngZone = _ngZone;
205
- this.size = 'md';
206
- this.placeholder = "Select"; // placeholder for input
207
- this.debounceTime = 400; // wait time till which API call is paused
208
- this.minInputLength = 2; // min length after which API call is made
209
- this.multi = false; // maintain a list or emit value
210
- this.disableCopyPaste = false;
211
- this.dropdownListPosition = "Left"; //dropdown position
212
- // tslint:disable-next-line
213
- this.onSelect = new EventEmitter(true); // emit selected values
214
- this.searchInput = new UntypedFormControl();
215
- this.data = [];
216
- this.opened = false;
217
- this.loading = false;
218
- this.error = false;
219
- this.openPopUpOnTab = false;
220
- // tslint:disable-next-line
221
- this.selections = new Map();
222
- this.httpStreamTrigger = new Subject();
223
- this.searchQueryChange = new EventEmitter();
224
- this.clear = new EventEmitter(false);
225
- this.itemSelected = new EventEmitter();
226
- this.itemRemoved = new EventEmitter();
227
- this.handleControlChanges = (values) => {
228
- values.forEach(el => {
229
- this.selectData(el, true);
230
- });
231
- // tslint:disable-next-line
232
- };
233
- }
234
- ngOnInit() {
235
- if (this.multi && !this.uniqueKey) {
236
- throw new Error("[uniqueKey] required in multi mode.");
237
- }
238
- if (this.disabled) {
239
- this.searchInput.disable();
240
- }
241
- const searchObservable = this.searchInput.valueChanges.pipe(tap((val) => this.searchQueryChange.emit(val)), debounceTime(this.debounceTime), distinctUntilChanged());
242
- this.searchSubscription = merge(searchObservable, this.httpStreamTrigger)
243
- .subscribe(res => {
244
- this._ngZone.run(() => {
245
- if (res?.length < this.minInputLength || !res?.length) {
246
- this.closeDropdown();
247
- return;
248
- }
249
- else if (res?.length > this.minInputLength && this.httpStream) {
250
- this.loading = true;
251
- this.error = false;
252
- if (!this.overlayRef?.hasAttached())
253
- this.openDropdown(this.dd, this.origin.nativeElement);
254
- this.httpStream(res).subscribe(list => {
255
- this.loading = false;
256
- this.data = list;
257
- if (!this.overlayRef?.hasAttached() && list.length > 0) {
258
- this.openDropdown(this.dd, this.origin.nativeElement);
259
- }
260
- }, error => {
261
- this.loading = false;
262
- this.error = true;
263
- });
264
- }
265
- });
266
- });
267
- if (this.control?.value) {
268
- this.handleControlChanges(this.control.value);
269
- }
270
- this.controlSubscription = this.control?.valueChanges.subscribe(this.handleControlChanges);
271
- }
272
- refreshHttpStream(query) {
273
- this.loading = true;
274
- this.httpStreamTrigger.next(query);
275
- }
276
- ngOnChanges(changes) {
277
- if (changes && changes?.searchValue?.currentValue) {
278
- this.searchInput.patchValue(changes.searchValue.currentValue);
279
- }
280
- if (changes && changes.disabled) {
281
- this.searchInput.enable();
282
- if (this.disabled) {
283
- this.searchInput.disable();
284
- }
285
- }
286
- }
287
- ngOnDestroy() {
288
- this.searchSubscription?.unsubscribe();
289
- this.defaultCallSubscription?.unsubscribe();
290
- }
291
- openDropdown(template, origin) {
292
- const positionsBottom = [
293
- new ConnectionPositionPair({ originX: "start", originY: "bottom" }, { overlayX: "start", overlayY: "top" }, 0, 4),
294
- new ConnectionPositionPair({ originX: "end", originY: "bottom" }, { overlayX: "end", overlayY: "top" }, 0, 4)
295
- ];
296
- const positionsTop = [
297
- new ConnectionPositionPair({ originX: "start", originY: "top" }, { overlayX: "start", overlayY: "bottom" }, 0, -4),
298
- new ConnectionPositionPair({ originX: "end", originY: "top" }, { overlayX: "end", overlayY: "bottom" }, 0, -4)
299
- ];
300
- const positionStrategy = this.overlay
301
- .position()
302
- .flexibleConnectedTo(origin)
303
- .withPositions([
304
- ...(this.dropdownListPosition === "Right" ? positionsBottom.reverse() : positionsBottom),
305
- ...(this.dropdownListPosition === "Right" ? positionsTop.reverse() : positionsTop)
306
- ])
307
- .withPush(true);
308
- const configs = new OverlayConfig({
309
- hasBackdrop: true,
310
- backdropClass: "cdk-overlay-transparent-backdrop",
311
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
312
- positionStrategy,
313
- width: origin.clientWidth
314
- });
315
- this.overlayRef = this.overlay.create(configs);
316
- if (this.dropdownListWidth)
317
- this.overlayRef.updateSize({ width: this.dropdownListWidth });
318
- this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
319
- this.overlayRef.backdropClick().subscribe(res => {
320
- this.closeDropdown();
321
- });
322
- }
323
- /**
324
- * closes the dropdown
325
- */
326
- closeDropdown() {
327
- this.opened = false;
328
- this.openPopUpOnTab = false;
329
- this.overlayRef?.detach();
330
- this.data = [];
331
- }
332
- enablePopUpOnTab() {
333
- this.openPopUpOnTab = true;
334
- }
335
- handleKeyDown(event) {
336
- if (event.key === 'Escape') {
337
- this.searchInput.patchValue("");
338
- this.closeDropdown();
339
- }
340
- }
341
- /**
342
- *
343
- * @param item item to select
344
- * if item property disabled is set to true, selection will be disabled
345
- * @param effectedFromOutside set to true if calling from parent component, if true will focus on search input
346
- */
347
- selectData(item, effectedFromOutside = true) {
348
- if (item.disabled) {
349
- return;
350
- }
351
- this.itemSelected.emit(item);
352
- if (!this.multi) {
353
- this.searchInput.patchValue(item[this.displayKey], { emitEvent: false });
354
- this.setControlValue(item);
355
- }
356
- else {
357
- if (!this.selections.has(item[this.uniqueKey])) {
358
- this.selections.set(item[this.uniqueKey], item);
359
- }
360
- this.setControlValue(this.selectedItems);
361
- if (!effectedFromOutside) {
362
- setTimeout(() => {
363
- this.input.nativeElement.focus();
364
- this.input.nativeElement.scrollIntoView();
365
- }, 10);
366
- }
367
- this.searchInput.patchValue("");
368
- this.data = [];
369
- }
370
- this.closeDropdown();
371
- }
372
- /**
373
- *
374
- * @param item remove item from selected list
375
- */
376
- removeItem(item) {
377
- this.itemRemoved.emit(item);
378
- this.selections.delete(item[this.uniqueKey]);
379
- this.setControlValue(this.selectedItems);
380
- // tslint:disable-next-line
381
- this.input["nativeElement"].focus();
382
- }
383
- setControlValue(value) {
384
- this.onSelect.emit(value);
385
- this.control?.patchValue(value, { emitEvent: false });
386
- }
387
- /**
388
- * @returns list of selected items
389
- */
390
- get selectedItems() {
391
- return Array.from(this.selections.values());
392
- }
393
- removeInputValue() {
394
- this.searchInput.reset();
395
- this.data = [];
396
- this.clear.emit(true);
397
- }
398
- defaultCall() {
399
- if (this.minInputLength === -1) {
400
- this.loading = true;
401
- this.defaultCallSubscription = this.httpStream(this.searchInput.value || '').subscribe(list => {
402
- this.loading = false;
403
- this.data = list;
404
- if (!this.overlayRef?.hasAttached() && this.data?.length > 0) {
405
- this.openDropdown(this.dd, this.origin.nativeElement);
406
- }
407
- }, error => {
408
- this.loading = false;
409
- this.error = true;
410
- });
411
- }
412
- }
413
- }
414
- AsyncDropdownComponent.ɵfac = function AsyncDropdownComponent_Factory(t) { return new (t || AsyncDropdownComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
415
- AsyncDropdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AsyncDropdownComponent, selectors: [["mis-async-search-dropdown"]], contentQueries: function AsyncDropdownComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
416
- i0.ɵɵcontentQuery(dirIndex, _c0, 5);
417
- i0.ɵɵcontentQuery(dirIndex, _c1, 5);
418
- } if (rf & 2) {
419
- let _t;
420
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customItem = _t.first);
421
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customLoader = _t.first);
422
- } }, viewQuery: function AsyncDropdownComponent_Query(rf, ctx) { if (rf & 1) {
423
- i0.ɵɵviewQuery(_c2, 5);
424
- i0.ɵɵviewQuery(_c3, 5);
425
- i0.ɵɵviewQuery(_c4, 5);
426
- } if (rf & 2) {
427
- let _t;
428
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.origin = _t.first);
429
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
430
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dd = _t.first);
431
- } }, hostBindings: function AsyncDropdownComponent_HostBindings(rf, ctx) { if (rf & 1) {
432
- i0.ɵɵlistener("keydown", function AsyncDropdownComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); }, false, i0.ɵɵresolveDocument);
433
- } }, 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: [[1, "dd-wrapper", 3, "ngClass"], ["ddBtn", ""], ["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"], ["enableCopyPaste", ""], ["class", "icon-ic-navigation-cancel-24 croos-icon", "tabindex", "0", 3, "click", "keyup.enter", 4, "ngIf"], ["dd", ""], [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, "ngStyle", "click", "keyup.enter"], ["oncopy", "return false;", "onpaste", "return false", "oncut", "return false", "tabindex", "0", "type", "text", 1, "black-text", "h6", 3, "ngClass", "placeholder", "formControl", "focus", "keyup.enter"], ["input", ""], ["tabindex", "0", "type", "text", 1, "black-text", "h6", 3, "ngClass", "placeholder", "formControl", "focus", "keyup.enter"], ["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"], ["defaultLoader", ""], [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"], ["standardItem", ""], [3, "tabindex"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "item", 3, "tabindex", "click", "keyup.enter"], [1, "value"], [1, "primary"], [1, "secondary"], [1, "data-not-found"]], template: function AsyncDropdownComponent_Template(rf, ctx) { if (rf & 1) {
434
- i0.ɵɵelementStart(0, "div", 0, 1);
435
- i0.ɵɵtemplate(2, AsyncDropdownComponent_div_2_Template, 2, 1, "div", 2);
436
- i0.ɵɵelementStart(3, "div", 3);
437
- i0.ɵɵelement(4, "span", 4);
438
- i0.ɵɵtemplate(5, AsyncDropdownComponent_input_5_Template, 2, 6, "input", 5);
439
- i0.ɵɵtemplate(6, AsyncDropdownComponent_ng_template_6_Template, 2, 6, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
440
- i0.ɵɵtemplate(8, AsyncDropdownComponent_div_8_Template, 1, 0, "div", 7);
441
- i0.ɵɵelementEnd()();
442
- i0.ɵɵtemplate(9, AsyncDropdownComponent_ng_template_9_Template, 5, 12, "ng-template", null, 8, i0.ɵɵtemplateRefExtractor);
443
- } if (rf & 2) {
444
- const _r3 = i0.ɵɵreference(7);
445
- i0.ɵɵstyleProp("width", ctx.width);
446
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(7, _c13, ctx.opened, ctx.disabled, ctx.readonly));
447
- i0.ɵɵadvance(2);
448
- i0.ɵɵproperty("ngIf", ctx.multi && ctx.selections.size > 0);
449
- i0.ɵɵadvance(3);
450
- i0.ɵɵproperty("ngIf", ctx.disableCopyPaste)("ngIfElse", _r3);
451
- i0.ɵɵadvance(3);
452
- i0.ɵɵproperty("ngIf", ctx.searchInput == null ? null : ctx.searchInput.value == null ? null : ctx.searchInput.value.length);
453
- } }, 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:#ffffff;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:#ffffff;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:#ffffff;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}"] });
454
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AsyncDropdownComponent, [{
455
- type: Component,
456
- 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:#ffffff;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:#ffffff;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:#ffffff;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"] }]
457
- }], function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.NgZone }]; }, { height: [{
458
- type: Input
459
- }], width: [{
460
- type: Input
461
- }], size: [{
462
- type: Input
463
- }], httpStream: [{
464
- type: Input
465
- }], displayKey: [{
466
- type: Input
467
- }], secondaryDisplayKey: [{
468
- type: Input
469
- }], placeholder: [{
470
- type: Input
471
- }], debounceTime: [{
472
- type: Input
473
- }], minInputLength: [{
474
- type: Input
475
- }], multi: [{
476
- type: Input
477
- }], uniqueKey: [{
478
- type: Input
479
- }], control: [{
480
- type: Input
481
- }], disabled: [{
482
- type: Input
483
- }], readonly: [{
484
- type: Input
485
- }], disableCopyPaste: [{
486
- type: Input
487
- }], dropdownListWidth: [{
488
- type: Input
489
- }], dropdownListPosition: [{
490
- type: Input
491
- }], origin: [{
492
- type: ViewChild,
493
- args: ["ddBtn", { static: false }]
494
- }], input: [{
495
- type: ViewChild,
496
- args: ["input", { static: false }]
497
- }], dd: [{
498
- type: ViewChild,
499
- args: ["dd", { static: false }]
500
- }], customItem: [{
501
- type: ContentChild,
502
- args: ["misCustomItem", { static: false }]
503
- }], customLoader: [{
504
- type: ContentChild,
505
- args: ["asyncCustomLoader", { static: false }]
506
- }], onSelect: [{
507
- type: Output
508
- }], selections: [{
509
- type: Input
510
- }], searchValue: [{
511
- type: Input
512
- }], searchQueryChange: [{
513
- type: Output
514
- }], clear: [{
515
- type: Output
516
- }], itemSelected: [{
517
- type: Output
518
- }], itemRemoved: [{
519
- type: Output
520
- }], handleKeyDown: [{
521
- type: HostListener,
522
- args: ['document:keydown', ['$event']]
523
- }] }); })();
524
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYXN5bmMtc2VhcmNoLWRyb3Bkb3duL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2FzeW5jLXNlYXJjaC1kcm9wZG93bi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNuQnJFLCtCQUFzSCxlQUFBO0lBQ2hCLFlBQW9CO0lBQUEsaUJBQU87SUFDL0gsZ0NBR3dDO0lBSFQscU9BQVMsZUFBQSwyQkFBZ0IsQ0FBQSxJQUFDLG9PQUE2QixlQUFBLDJCQUFnQixDQUFBLElBQTdDO0lBR2pCLGlCQUFPLEVBQUE7Ozs7SUFML0IsZ0dBQWdFO0lBQzFFLGVBQXdEO0lBQXhELGdHQUF3RCx3Q0FBQTtJQUFzQyxlQUFvQjtJQUFwQixnREFBb0I7SUFDaEIsZUFHdEc7SUFIc0csNkZBR3RHOzs7SUFOTiw4QkFB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QUFFO1lBQ0QsRUFBRTtrQkFBckMsU0FBUzttQkFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBRWxDLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBR2hELFlBQVk7a0JBRFgsWUFBWTttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7WUFHekMsUUFBUTtrQkFBakIsTUFBTTtZQVFFLFVBQVU7a0JBQWxCLEtBQUs7WUFNRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0ksaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csS0FBSztrQkFBZCxNQUFNO1lBQ0csWUFBWTtrQkFBckIsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUEwSFAsYUFBYTtrQkFEWixZQUFZO21CQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbnR5cGUgSUxpc3REYXRhID0gYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLWFzeW5jLXNlYXJjaC1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBBc3luY0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkgeyB9XG4gIEBJbnB1dCgpIGhlaWdodDtcbiAgQElucHV0KCkgd2lkdGg7XG4gIEBJbnB1dCgpIHNpemU6ICdtZCcgfCAnc20nID0gJ21kJ1xuICBASW5wdXQoKSBodHRwU3RyZWFtITogKHNlYXJjaEtleTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPElMaXN0RGF0YT47IC8vIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBodHRwb2JzZXJ2YWJsZVxuICBASW5wdXQoKSBkaXNwbGF5S2V5ITogc3RyaW5nOyAvLyBzdHJpbmcgdG8gc2hvdyB2YWx1ZSBpbiBsaXN0XG4gIEBJbnB1dCgpIHNlY29uZGFyeURpc3BsYXlLZXkhOiBzdHJpbmc7IC8vIHN0cmluZyB0byBkaXNwbGF5IHNlY29uZGFyeSB2YWx1ZVxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiU2VsZWN0XCI7IC8vIHBsYWNlaG9sZGVyIGZvciBpbnB1dFxuICBASW5wdXQoKSBkZWJvdW5jZVRpbWUgPSA0MDA7IC8vIHdhaXQgdGltZSB0aWxsIHdoaWNoIEFQSSBjYWxsIGlzIHBhdXNlZFxuICBASW5wdXQoKSBtaW5JbnB1dExlbmd0aCA9IDI7IC8vIG1pbiBsZW5ndGggYWZ0ZXIgd2hpY2ggQVBJIGNhbGwgaXMgbWFkZVxuICBASW5wdXQoKSBtdWx0aSA9IGZhbHNlOyAvLyBtYWludGFpbiBhIGxpc3Qgb3IgZW1pdCB2YWx1ZVxuICBASW5wdXQoKSB1bmlxdWVLZXk6IHN0cmluZzsgLy8gZm9yIGlkZW50aWZ5aW5nIHVuaXF1ZSB2YWx1ZXNcbiAgQElucHV0KCkgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbDsgLy8gZm9ybSBjb250cm9sIGZvciByZWFjdGl2ZSBmb3Jtc1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjsgLy8gZGlzYWJsZSBhY3Rpb25zIG9uIGNvbXBvbmVudFxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjsgLy8gbWFrZSBjb21wb25lbnQgcmVhZG9ubHlcbiAgQElucHV0KCkgZGlzYWJsZUNvcHlQYXN0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkcm9wZG93bkxpc3RXaWR0aDsgLy93aWR0aCBvZiBkcm9wZG93biBsaXN0XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdFBvc2l0aW9uOiBcIkxlZnRcIiB8IFwiUmlnaHRcIiA9IFwiTGVmdFwiOyAvL2Ryb3Bkb3duIHBvc2l0aW9uXG4gIEBWaWV3Q2hpbGQoXCJkZEJ0blwiLCB7IHN0YXRpYzogZmFsc2UgfSkgb3JpZ2luOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwiaW5wdXRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwiZGRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGRkOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgQENvbnRlbnRDaGlsZChcIm1pc0N1c3RvbUl0ZW1cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGN1c3RvbUl0ZW06IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBAQ29udGVudENoaWxkKFwiYXN5bmNDdXN0b21Mb2FkZXJcIiwgeyBzdGF0aWM6IGZhbHNlfSlcbiAgY3VzdG9tTG9hZGVyOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPElMaXN0RGF0YSB8IElMaXN0RGF0YVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIodHJ1ZSk7IC8vIGVtaXQgc2VsZWN0ZWQgdmFsdWVzXG4gIHNlYXJjaElucHV0OiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIGRhdGE6IElMaXN0RGF0YVtdID0gW107XG4gIG9wZW5lZCA9IGZhbHNlO1xuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIG9wZW5Qb3BVcE9uVGFiOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICBASW5wdXQoKSBzZWxlY3Rpb25zOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGh0dHBTdHJlYW1UcmlnZ2VyID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIHNlYXJjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRlZmF1bHRDYWxsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgY29udHJvbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZWFyY2hWYWx1ZTtcbiAgQE91dHB1dCgpIHNlYXJjaFF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcbiAgQE91dHB1dCgpIGNsZWFyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxpc3REYXRhPigpXG4gIEBPdXRwdXQoKSBpdGVtUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxpc3REYXRhPigpXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpICYmICF0aGlzLnVuaXF1ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiW3VuaXF1ZUtleV0gcmVxdWlyZWQgaW4gbXVsdGkgbW9kZS5cIik7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hPYnNlcnZhYmxlID0gdGhpcy5zZWFyY2hJbnB1dC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRhcCgodmFsKSA9PiB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlLmVtaXQodmFsKSksXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbiA9IG1lcmdlKHNlYXJjaE9ic2VydmFibGUsIHRoaXMuaHR0cFN0cmVhbVRyaWdnZXIpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChyZXM/Lmxlbmd0aCA8IHRoaXMubWluSW5wdXRMZW5ndGggfHwgIXJlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcz8ubGVuZ3RoID4gdGhpcy5taW5JbnB1dExlbmd0aCAmJiB0aGlzLmh0dHBTdHJlYW0pIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBpZighdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpKVxuICAgICAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLmRkLCB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuaHR0cFN0cmVhbShyZXMpLnN1YnNjcmliZShsaXN0ID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YSA9IGxpc3Q7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpICYmIGxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMuZGQsIHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICB0aGlzLmhhbmRsZUNvbnRyb2xDaGFuZ2VzKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0aGlzLmhhbmRsZUNvbnRyb2xDaGFuZ2VzKTtcbiAgfVxuXG4gIHJlZnJlc2hIdHRwU3RyZWFtKHF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuaHR0cFN0cmVhbVRyaWdnZXIubmV4dChxdWVyeSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcz8uc2VhcmNoVmFsdWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5wYXRjaFZhbHVlKGNoYW5nZXMuc2VhcmNoVmFsdWUuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5lbmFibGUoKTtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXQuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZGVmYXVsdENhbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbnRyb2xDaGFuZ2VzID0gKHZhbHVlczogSUxpc3REYXRhW10pID0+IHtcbiAgICB2YWx1ZXMuZm9yRWFjaChlbCA9PiB7XG4gICAgICB0aGlzLnNlbGVjdERhdGEoZWwsIHRydWUpO1xuICAgIH0pO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICB9O1xuXG4gIHByaXZhdGUgb3BlbkRyb3Bkb3duKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxFbGVtZW50Piwgb3JpZ2luOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvc2l0aW9uc0JvdHRvbSA9IFtcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJzdGFydFwiLCBvcmlnaW5ZOiBcImJvdHRvbVwiIH0sIHsgb3ZlcmxheVg6IFwic3RhcnRcIiwgb3ZlcmxheVk6IFwidG9wXCIgfSwgMCwgNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwidG9wXCIgfSwgMCwgNClcbiAgICBdO1xuICAgIGNvbnN0IHBvc2l0aW9uc1RvcCA9IFtcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJzdGFydFwiLCBvcmlnaW5ZOiBcInRvcFwiIH0sIHsgb3ZlcmxheVg6IFwic3RhcnRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpLFxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcImVuZFwiLCBvcmlnaW5ZOiBcInRvcFwiIH0sIHsgb3ZlcmxheVg6IFwiZW5kXCIsIG92ZXJsYXlZOiBcImJvdHRvbVwiIH0sIDAsIC00KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgLi4uKHRoaXMuZHJvcGRvd25MaXN0UG9zaXRpb24gPT09IFwiUmlnaHRcIiA/IHBvc2l0aW9uc0JvdHRvbS5yZXZlcnNlKCkgOiBwb3NpdGlvbnNCb3R0b20pLFxuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbiA9PT0gXCJSaWdodFwiID8gcG9zaXRpb25zVG9wLnJldmVyc2UoKSA6IHBvc2l0aW9uc1RvcClcbiAgICAgIF0pXG4gICAgICAud2l0aFB1c2godHJ1ZSk7XG5cbiAgICBjb25zdCBjb25maWdzID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHdpZHRoOiBvcmlnaW4uY2xpZW50V2lkdGhcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZ3MpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKSB0aGlzLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IHdpZHRoOiB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoIH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogY2xvc2VzIHRoZSBkcm9wZG93blxuICAgKi9cbiAgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgIHRoaXMub3BlblBvcFVwT25UYWIgPSBmYWxzZTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuZGF0YSA9IFtdO1xuICB9XG5cbiAgZW5hYmxlUG9wVXBPblRhYigpe1xuICAgIHRoaXMub3BlblBvcFVwT25UYWIgPSB0cnVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5wYXRjaFZhbHVlKFwiXCIpO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbSBpdGVtIHRvIHNlbGVjdFxuICAgKiBpZiBpdGVtIHByb3BlcnR5IGRpc2FibGVkIGlzIHNldCB0byB0cnVlLCBzZWxlY3Rpb24gd2lsbCBiZSBkaXNhYmxlZFxuICAgKiBAcGFyYW0gZWZmZWN0ZWRGcm9tT3V0c2lkZSBzZXQgdG8gdHJ1ZSBpZiBjYWxsaW5nIGZyb20gcGFyZW50IGNvbXBvbmVudCwgaWYgdHJ1ZSB3aWxsIGZvY3VzIG9uIHNlYXJjaCBpbnB1dFxuICAgKi9cbiAgc2VsZWN0RGF0YShpdGVtOiBJTGlzdERhdGEsIGVmZmVjdGVkRnJvbU91dHNpZGUgPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChpdGVtKVxuICAgIGlmICghdGhpcy5tdWx0aSkge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5wYXRjaFZhbHVlKGl0ZW1bdGhpcy5kaXNwbGF5S2V5XSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3Rpb25zLmhhcyhpdGVtW3RoaXMudW5pcXVlS2V5XSkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25zLnNldChpdGVtW3RoaXMudW5pcXVlS2V5XSwgaXRlbSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgaWYgKCFlZmZlY3RlZEZyb21PdXRzaWRlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICB9LCAxMCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoXCJcIik7XG4gICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gcmVtb3ZlIGl0ZW0gZnJvbSBzZWxlY3RlZCBsaXN0XG4gICAqL1xuICByZW1vdmVJdGVtKGl0ZW06IElMaXN0RGF0YSk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVJlbW92ZWQuZW1pdChpdGVtKVxuICAgIHRoaXMuc2VsZWN0aW9ucy5kZWxldGUoaXRlbVt0aGlzLnVuaXF1ZUtleV0pO1xuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgdGhpcy5pbnB1dFtcIm5hdGl2ZUVsZW1lbnRcIl0uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBJTGlzdERhdGEpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQodmFsdWUpO1xuICAgIHRoaXMuY29udHJvbD8ucGF0Y2hWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGxpc3Qgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAgICovXG4gIGdldCBzZWxlY3RlZEl0ZW1zKCk6IEFycmF5PElMaXN0RGF0YT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2VsZWN0aW9ucy52YWx1ZXMoKSk7XG4gIH1cblxuICByZW1vdmVJbnB1dFZhbHVlKCkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQucmVzZXQoKTtcbiAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICB0aGlzLmNsZWFyLmVtaXQodHJ1ZSk7XG4gIH1cbiAgZGVmYXVsdENhbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWluSW5wdXRMZW5ndGggPT09IC0xKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5kZWZhdWx0Q2FsbFN1YnNjcmlwdGlvbiA9IHRoaXMuaHR0cFN0cmVhbSh0aGlzLnNlYXJjaElucHV0LnZhbHVlIHx8ICcnKS5zdWJzY3JpYmUobGlzdCA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRhdGEgPSBsaXN0O1xuICAgICAgICBpZiAoIXRoaXMub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSAmJiB0aGlzLmRhdGE/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLmRkLCB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkZC13cmFwcGVyXCIgW25nQ2xhc3NdPVwieyBvcGVuZWQ6IG9wZW5lZCwgZGlzYWJsZWQ6IGRpc2FibGVkLCByZWFkb25seTogcmVhZG9ubHkgfVwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiICNkZEJ0bj5cbiAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWxpc3RcIiAqbmdJZj1cIm11bHRpICYmIHNlbGVjdGlvbnMuc2l6ZSA+IDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hpcFwiIFtuZ0NsYXNzXT1cInsnY2hpcC1tZCc6IHNpemUgPT09ICdtZCcsICdjaGlwLXNtJzogc2l6ZSA9PT0gJ3NtJ31cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7J2g2Jzogc2l6ZSA9PT0gJ21kJywgJ2g4LWInOiBzaXplID09PSAnc20nfVwiIFtuZ1N0eWxlXT1cInsgJ21hcmdpbi1yaWdodCc6ICc0cHgnfVwiPnt7aXRlbVtkaXNwbGF5S2V5XX19PC9zcGFuPlxuICAgICAgPHNwYW4gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIiB0YWJpbmRleD1cIjBcIiAoa2V5dXAuZW50ZXIpPVwicmVtb3ZlSXRlbShpdGVtKVwiIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2N1cnNvcic6ICdwb2ludGVyJyxcbiAgICAgICAgJ2ZvbnQtc2l6ZSc6IHNpemUgPT09ICdzbScgPyAnMTJweCcgOiAnMTRweCdcbiAgICAgIH1cIiBjbGFzcz1cImljb24taWMtbmF2aWdhdGlvbi1jYW5jZWwtMjRcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJpY29uLWljLWFjdGlvbi1zZWFyY2gtMjRcIj48L3NwYW4+XG4gICAgPGlucHV0ICpuZ0lmPVwiZGlzYWJsZUNvcHlQYXN0ZTsgZWxzZSBlbmFibGVDb3B5UGFzdGVcIiBbbmdDbGFzc109XCJ7J2lwLW1kJzogc2l6ZSA9PT0gJ21kJywgJ2lwLXNtJzogc2l6ZSA9PT0gJ3NtJ31cIiBvbmNvcHk9XCJyZXR1cm4gZmFsc2U7XCIgb25wYXN0ZT1cInJldHVybiBmYWxzZVwiIG9uY3V0PVwicmV0dXJuIGZhbHNlXCIgdGFiaW5kZXg9XCIwXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImJsYWNrLXRleHQgaDZcIiAjaW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaElucHV0XCIgKGZvY3VzKT1cImRlZmF1bHRDYWxsKClcIiAoa2V5dXAuZW50ZXIpPVwiZW5hYmxlUG9wVXBPblRhYigpXCIvPlxuICAgIDxuZy10ZW1wbGF0ZSAjZW5hYmxlQ29weVBhc3RlPlxuICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cInsnaXAtbWQnOiBzaXplID09PSAnbWQnLCAnaXAtc20nOiBzaXplID09PSAnc20nfVwiIHRhYmluZGV4PVwiMFwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJibGFjay10ZXh0IGg2XCIgI2lucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hJbnB1dFwiIChmb2N1cyk9XCJkZWZhdWx0Q2FsbCgpXCIgKGtleXVwLmVudGVyKT1cImVuYWJsZVBvcFVwT25UYWIoKVwiIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1pYy1uYXZpZ2F0aW9uLWNhbmNlbC0yNCBjcm9vcy1pY29uXCIgKm5nSWY9XCJzZWFyY2hJbnB1dD8udmFsdWU/Lmxlbmd0aFwiIHRhYmluZGV4PVwiMFwiIChjbGljayk9XCJyZW1vdmVJbnB1dFZhbHVlKClcIiAoa2V5dXAuZW50ZXIpPVwicmVtb3ZlSW5wdXRWYWx1ZSgpXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGQ+XG4gIDxkaXYgY2xhc3M9XCJkZC1saXN0XCIgW25nU3R5bGVdPVwieydtYXgtaGVpZ2h0JzpoZWlnaHQsICd3aWR0aCc6IGRyb3Bkb3duTGlzdFdpZHRofVwiICBbbmdDbGFzc109XCJ7J2RkLWxpc3QtcGQnOmRhdGEubGVuZ3RoID09PSAwfVwiIHRhYmluZGV4PVwiMFwiIGNka1RyYXBGb2N1cyBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwib3BlblBvcFVwT25UYWJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImN1c3RvbUxvYWRlcjsgZWxzZSBkZWZhdWx0TG9hZGVyXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tTG9hZGVyXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmcgJiYgIWN1c3RvbUxvYWRlclwiPlxuICAgICAgICAgIDxtaXMtbG9hZGVyIFttb2JpbGVWaWV3XT1cInRydWVcIj48L21pcy1sb2FkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtY29udGFpbmVyXCI+XG4gICAgICAgIDxwPlVua25vd24gZXJyb3IgaGFzIG9jY3VycmVkLCA8YnI+IFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFlcnJvciAmJiBkYXRhLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3REYXRhKGl0ZW0sIGZhbHNlKVwiIChrZXl1cC5lbnRlcik9XCJzZWxlY3REYXRhKGl0ZW0sIGZhbHNlKVwiPiBcbiAgICAgICAgICA8ZGl2IHRhYmluZGV4PVwiLTFcIiBjZGtGb2N1c0luaXRpYWw+PC9kaXY+ICBcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgW3RhYmluZGV4XT1cIm9wZW5Qb3BVcE9uVGFiID8gMCA6IC0xXCJcbiAgICAgICAgICAqbmdJZj1cImN1c3RvbUl0ZW07IGVsc2Ugc3RhbmRhcmRJdGVtXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUl0ZW1cIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGFuZGFyZEl0ZW0+XG4gICAgICAgICAgICA8ZGl2IHRhYmluZGV4PVwiLTFcIiBjZGtGb2N1c0luaXRpYWw+PC9kaXY+ICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cInNlbGVjdERhdGEoaXRlbSwgZmFsc2UpXCIgW3RhYmluZGV4XT1cIm9wZW5Qb3BVcE9uVGFiID8gMCA6IC0xXCIgKGtleXVwLmVudGVyKT1cInNlbGVjdERhdGEoaXRlbSwgZmFsc2UpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtW2Rpc3BsYXlLZXldIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbVtzZWNvbmRhcnlEaXNwbGF5S2V5XSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFlcnJvciAmJiBkYXRhLmxlbmd0aCA9PT0gMCAmJiBzZWFyY2hJbnB1dC52YWx1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRhdGEtbm90LWZvdW5kXCI+Tm8gRGF0YSBBdmFpbGFibGU8L2Rpdj5cbiAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==