mis-crystal-design-system 2.4.9 → 2.5.2

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 (308) hide show
  1. package/action-list/action-list.component.d.ts +0 -1
  2. package/action-list/index.d.ts +1 -1
  3. package/action-list/mis-crystal-design-system-action-list.metadata.json +1 -1
  4. package/action-list/public_api.d.ts +2 -2
  5. package/async-search-dropdown/async-dropdown.component.d.ts +4 -4
  6. package/async-search-dropdown/index.d.ts +1 -1
  7. package/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.metadata.json +1 -1
  8. package/async-search-dropdown/public_api.d.ts +2 -2
  9. package/bundles/mis-crystal-design-system-action-list.umd.js +3 -11
  10. package/bundles/mis-crystal-design-system-action-list.umd.js.map +1 -1
  11. package/bundles/mis-crystal-design-system-action-list.umd.min.js +1 -1
  12. package/bundles/mis-crystal-design-system-action-list.umd.min.js.map +1 -1
  13. package/bundles/mis-crystal-design-system-async-search-dropdown.umd.js +15 -15
  14. package/bundles/mis-crystal-design-system-async-search-dropdown.umd.js.map +1 -1
  15. package/bundles/mis-crystal-design-system-async-search-dropdown.umd.min.js +1 -1
  16. package/bundles/mis-crystal-design-system-async-search-dropdown.umd.min.js.map +1 -1
  17. package/bundles/mis-crystal-design-system-button.umd.js +25 -25
  18. package/bundles/mis-crystal-design-system-button.umd.js.map +1 -1
  19. package/bundles/mis-crystal-design-system-button.umd.min.js +1 -1
  20. package/bundles/mis-crystal-design-system-button.umd.min.js.map +1 -1
  21. package/bundles/mis-crystal-design-system-checkbox.umd.js +5 -6
  22. package/bundles/mis-crystal-design-system-checkbox.umd.js.map +1 -1
  23. package/bundles/mis-crystal-design-system-checkbox.umd.min.js.map +1 -1
  24. package/bundles/mis-crystal-design-system-chip.umd.js +6 -7
  25. package/bundles/mis-crystal-design-system-chip.umd.js.map +1 -1
  26. package/bundles/mis-crystal-design-system-chip.umd.min.js +1 -1
  27. package/bundles/mis-crystal-design-system-chip.umd.min.js.map +1 -1
  28. package/bundles/mis-crystal-design-system-datepicker_v2.umd.js +28 -45
  29. package/bundles/mis-crystal-design-system-datepicker_v2.umd.js.map +1 -1
  30. package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js +2 -2
  31. package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js.map +1 -1
  32. package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.js +28 -60
  33. package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.js.map +1 -1
  34. package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.min.js +1 -1
  35. package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.min.js.map +1 -1
  36. package/bundles/mis-crystal-design-system-drawer.umd.js +9 -12
  37. package/bundles/mis-crystal-design-system-drawer.umd.js.map +1 -1
  38. package/bundles/mis-crystal-design-system-drawer.umd.min.js.map +1 -1
  39. package/bundles/mis-crystal-design-system-dropdown.umd.js +384 -29
  40. package/bundles/mis-crystal-design-system-dropdown.umd.js.map +1 -1
  41. package/bundles/mis-crystal-design-system-dropdown.umd.min.js +15 -1
  42. package/bundles/mis-crystal-design-system-dropdown.umd.min.js.map +1 -1
  43. package/bundles/mis-crystal-design-system-fab.umd.js +11 -14
  44. package/bundles/mis-crystal-design-system-fab.umd.js.map +1 -1
  45. package/bundles/mis-crystal-design-system-fab.umd.min.js.map +1 -1
  46. package/bundles/mis-crystal-design-system-input.umd.js +7 -7
  47. package/bundles/mis-crystal-design-system-input.umd.js.map +1 -1
  48. package/bundles/mis-crystal-design-system-input.umd.min.js +1 -1
  49. package/bundles/mis-crystal-design-system-input.umd.min.js.map +1 -1
  50. package/bundles/mis-crystal-design-system-loader.umd.js +3 -4
  51. package/bundles/mis-crystal-design-system-loader.umd.js.map +1 -1
  52. package/bundles/mis-crystal-design-system-loader.umd.min.js +1 -1
  53. package/bundles/mis-crystal-design-system-loader.umd.min.js.map +1 -1
  54. package/bundles/mis-crystal-design-system-modal.umd.js +8 -12
  55. package/bundles/mis-crystal-design-system-modal.umd.js.map +1 -1
  56. package/bundles/mis-crystal-design-system-modal.umd.min.js.map +1 -1
  57. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js +61 -29
  58. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js.map +1 -1
  59. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js +2 -2
  60. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js.map +1 -1
  61. package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.js +71 -32
  62. package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.js.map +1 -1
  63. package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.min.js +2 -2
  64. package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.min.js.map +1 -1
  65. package/bundles/mis-crystal-design-system-radio-button.umd.js +6 -7
  66. package/bundles/mis-crystal-design-system-radio-button.umd.js.map +1 -1
  67. package/bundles/mis-crystal-design-system-radio-button.umd.min.js +1 -1
  68. package/bundles/mis-crystal-design-system-radio-button.umd.min.js.map +1 -1
  69. package/bundles/mis-crystal-design-system-switch.umd.js +3 -4
  70. package/bundles/mis-crystal-design-system-switch.umd.js.map +1 -1
  71. package/bundles/mis-crystal-design-system-switch.umd.min.js +1 -1
  72. package/bundles/mis-crystal-design-system-switch.umd.min.js.map +1 -1
  73. package/bundles/mis-crystal-design-system-table.umd.js +40 -58
  74. package/bundles/mis-crystal-design-system-table.umd.js.map +1 -1
  75. package/bundles/mis-crystal-design-system-table.umd.min.js +1 -1
  76. package/bundles/mis-crystal-design-system-table.umd.min.js.map +1 -1
  77. package/bundles/mis-crystal-design-system-toast.umd.js +28 -33
  78. package/bundles/mis-crystal-design-system-toast.umd.js.map +1 -1
  79. package/bundles/mis-crystal-design-system-toast.umd.min.js +1 -1
  80. package/bundles/mis-crystal-design-system-toast.umd.min.js.map +1 -1
  81. package/bundles/mis-crystal-design-system-tooltip.umd.js +1 -1
  82. package/bundles/mis-crystal-design-system-tooltip.umd.js.map +1 -1
  83. package/bundles/mis-crystal-design-system-tooltip.umd.min.js +1 -1
  84. package/bundles/mis-crystal-design-system-tooltip.umd.min.js.map +1 -1
  85. package/bundles/mis-crystal-design-system.umd.js.map +1 -1
  86. package/button/button.component.d.ts +4 -4
  87. package/button/button.directive.d.ts +3 -3
  88. package/button/button.directive.scss +1 -1
  89. package/button/button.module.d.ts +1 -1
  90. package/button/index.d.ts +1 -1
  91. package/button/mis-crystal-design-system-button.metadata.json +1 -1
  92. package/button/public_api.d.ts +2 -2
  93. package/checkbox/checkbox.component.d.ts +3 -3
  94. package/checkbox/checkbox.module.d.ts +1 -1
  95. package/checkbox/index.d.ts +1 -1
  96. package/checkbox/mis-crystal-design-system-checkbox.metadata.json +1 -1
  97. package/checkbox/public_api.d.ts +2 -2
  98. package/chip/chip.component.d.ts +2 -2
  99. package/chip/chip.module.d.ts +1 -1
  100. package/chip/index.d.ts +1 -1
  101. package/chip/mis-crystal-design-system-chip.metadata.json +1 -1
  102. package/chip/public_api.d.ts +2 -2
  103. package/datepicker_v2/index.d.ts +1 -1
  104. package/datepicker_v2/mis-crystal-design-system-datepicker_v2.metadata.json +1 -1
  105. package/datepicker_v2/public_api.d.ts +3 -3
  106. package/datepicker_v2/tz-datepicker.directive.d.ts +0 -2
  107. package/daterangepicker_v2/index.d.ts +1 -1
  108. package/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.metadata.json +1 -1
  109. package/daterangepicker_v2/public_api.d.ts +3 -3
  110. package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +0 -1
  111. package/drawer/index.d.ts +1 -1
  112. package/drawer/mis-crystal-design-system-drawer.metadata.json +1 -1
  113. package/drawer/public_api.d.ts +4 -4
  114. package/dropdown/dropdown.component.d.ts +10 -4
  115. package/dropdown/dropdown.module.d.ts +1 -1
  116. package/dropdown/index.d.ts +1 -1
  117. package/dropdown/mis-crystal-design-system-dropdown.metadata.json +1 -1
  118. package/dropdown/public_api.d.ts +2 -2
  119. package/esm2015/action-list/action-list.component.js +4 -12
  120. package/esm2015/action-list/action-list.module.js +3 -2
  121. package/esm2015/action-list/index.js +2 -2
  122. package/esm2015/action-list/public_api.js +3 -3
  123. package/esm2015/async-search-dropdown/async-dropdown.component.js +25 -25
  124. package/esm2015/async-search-dropdown/async-dropdown.module.js +7 -7
  125. package/esm2015/async-search-dropdown/index.js +2 -2
  126. package/esm2015/async-search-dropdown/public_api.js +3 -3
  127. package/esm2015/button/button.component.js +10 -10
  128. package/esm2015/button/button.directive.js +19 -19
  129. package/esm2015/button/button.module.js +5 -5
  130. package/esm2015/button/index.js +2 -2
  131. package/esm2015/button/public_api.js +3 -3
  132. package/esm2015/checkbox/checkbox.component.js +8 -9
  133. package/esm2015/checkbox/checkbox.module.js +5 -5
  134. package/esm2015/checkbox/index.js +2 -2
  135. package/esm2015/checkbox/public_api.js +3 -3
  136. package/esm2015/chip/chip.component.js +8 -9
  137. package/esm2015/chip/chip.module.js +4 -4
  138. package/esm2015/chip/index.js +2 -2
  139. package/esm2015/chip/public_api.js +3 -3
  140. package/esm2015/datepicker_v2/datepicker-constants.js +2 -2
  141. package/esm2015/datepicker_v2/datepicker.module.js +5 -4
  142. package/esm2015/datepicker_v2/index.js +2 -2
  143. package/esm2015/datepicker_v2/models/dp-config.model.js +1 -1
  144. package/esm2015/datepicker_v2/public_api.js +3 -3
  145. package/esm2015/datepicker_v2/tz-datepicker.directive.js +4 -24
  146. package/esm2015/datepicker_v2/tz-dp-container/tz-dp-container.component.js +12 -9
  147. package/esm2015/datepicker_v2/utils/index.js +13 -13
  148. package/esm2015/daterangepicker_v2/daterangepicker-constants.js +2 -2
  149. package/esm2015/daterangepicker_v2/daterangepicker.module.js +4 -3
  150. package/esm2015/daterangepicker_v2/index.js +2 -2
  151. package/esm2015/daterangepicker_v2/public_api.js +3 -3
  152. package/esm2015/daterangepicker_v2/tz-daterangepicker.directive.js +3 -12
  153. package/esm2015/daterangepicker_v2/tz-drp-container/tz-drp-container.component.js +15 -38
  154. package/esm2015/daterangepicker_v2/utils/index.js +13 -13
  155. package/esm2015/drawer/drawer-body/drawer-body.component.js +4 -7
  156. package/esm2015/drawer/drawer.module.js +4 -4
  157. package/esm2015/drawer/drawer.service.js +4 -4
  158. package/esm2015/drawer/index.js +2 -2
  159. package/esm2015/drawer/public_api.js +5 -5
  160. package/esm2015/dropdown/dropdown.component.js +67 -26
  161. package/esm2015/dropdown/dropdown.module.js +7 -6
  162. package/esm2015/dropdown/index.js +2 -2
  163. package/esm2015/dropdown/public_api.js +3 -3
  164. package/esm2015/fab/fab.component.js +11 -14
  165. package/esm2015/fab/fab.module.js +3 -3
  166. package/esm2015/fab/index.js +2 -2
  167. package/esm2015/fab/public_api.js +3 -3
  168. package/esm2015/index.js +2 -2
  169. package/esm2015/input/directives/input/input.directive.js +7 -7
  170. package/esm2015/input/index.js +2 -2
  171. package/esm2015/input/mis-input.component.js +8 -8
  172. package/esm2015/input/mis-input.module.js +7 -7
  173. package/esm2015/input/public_api.js +4 -4
  174. package/esm2015/loader/index.js +2 -2
  175. package/esm2015/loader/loader.component.js +5 -6
  176. package/esm2015/loader/loader.module.js +4 -4
  177. package/esm2015/loader/public_api.js +3 -3
  178. package/esm2015/menu/index.js +2 -2
  179. package/esm2015/modal/index.js +2 -2
  180. package/esm2015/modal/modal.module.js +10 -14
  181. package/esm2015/modal/modal.service.js +3 -3
  182. package/esm2015/modal/module-wrapper/module-wrapper.component.js +4 -4
  183. package/esm2015/modal/public_api.js +5 -5
  184. package/esm2015/multi-select-dropdown/index.js +2 -2
  185. package/esm2015/multi-select-dropdown/multi-select-dropdown.component.js +80 -44
  186. package/esm2015/multi-select-dropdown/multi-select-dropdown.module.js +9 -8
  187. package/esm2015/multi-select-dropdown/public_api.js +3 -3
  188. package/esm2015/nested-multi-select-dropdown/index.js +2 -2
  189. package/esm2015/nested-multi-select-dropdown/nested-multi-select-dropdown.component.js +72 -29
  190. package/esm2015/nested-multi-select-dropdown/nested-multi-select-dropdown.module.js +9 -8
  191. package/esm2015/nested-multi-select-dropdown/public_api.js +3 -3
  192. package/esm2015/public-api.js +1 -1
  193. package/esm2015/radio-button/index.js +2 -2
  194. package/esm2015/radio-button/public_api.js +3 -3
  195. package/esm2015/radio-button/radio-button.component.js +9 -10
  196. package/esm2015/radio-button/radio-button.module.js +5 -5
  197. package/esm2015/switch/index.js +2 -2
  198. package/esm2015/switch/public_api.js +3 -3
  199. package/esm2015/switch/switch.component.js +6 -7
  200. package/esm2015/switch/switch.module.js +5 -5
  201. package/esm2015/table/custom-table-cell.directive.js +3 -3
  202. package/esm2015/table/filter/filter.component.js +11 -13
  203. package/esm2015/table/index.js +2 -2
  204. package/esm2015/table/public_api.js +5 -5
  205. package/esm2015/table/sub-table/sub-table.component.js +12 -13
  206. package/esm2015/table/table.component.js +21 -22
  207. package/esm2015/table/table.module.js +7 -21
  208. package/esm2015/toast/index.js +2 -2
  209. package/esm2015/toast/toast.component.js +12 -14
  210. package/esm2015/toast/toast.data.service.js +3 -3
  211. package/esm2015/toast/toast.module.js +9 -9
  212. package/esm2015/toast/toast.service.js +23 -26
  213. package/esm2015/tooltip/tooltip.directive.js +1 -1
  214. package/esm2015/tooltip/tooltip.module.js +3 -2
  215. package/fab/index.d.ts +1 -1
  216. package/fab/mis-crystal-design-system-fab.metadata.json +1 -1
  217. package/fab/public_api.d.ts +2 -2
  218. package/fesm2015/mis-crystal-design-system-action-list.js +5 -13
  219. package/fesm2015/mis-crystal-design-system-action-list.js.map +1 -1
  220. package/fesm2015/mis-crystal-design-system-async-search-dropdown.js +20 -20
  221. package/fesm2015/mis-crystal-design-system-async-search-dropdown.js.map +1 -1
  222. package/fesm2015/mis-crystal-design-system-button.js +25 -25
  223. package/fesm2015/mis-crystal-design-system-button.js.map +1 -1
  224. package/fesm2015/mis-crystal-design-system-checkbox.js +5 -6
  225. package/fesm2015/mis-crystal-design-system-checkbox.js.map +1 -1
  226. package/fesm2015/mis-crystal-design-system-chip.js +6 -7
  227. package/fesm2015/mis-crystal-design-system-chip.js.map +1 -1
  228. package/fesm2015/mis-crystal-design-system-datepicker_v2.js +28 -45
  229. package/fesm2015/mis-crystal-design-system-datepicker_v2.js.map +1 -1
  230. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.js +32 -64
  231. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.js.map +1 -1
  232. package/fesm2015/mis-crystal-design-system-drawer.js +9 -12
  233. package/fesm2015/mis-crystal-design-system-drawer.js.map +1 -1
  234. package/fesm2015/mis-crystal-design-system-dropdown.js +67 -26
  235. package/fesm2015/mis-crystal-design-system-dropdown.js.map +1 -1
  236. package/fesm2015/mis-crystal-design-system-fab.js +11 -14
  237. package/fesm2015/mis-crystal-design-system-fab.js.map +1 -1
  238. package/fesm2015/mis-crystal-design-system-input.js +8 -8
  239. package/fesm2015/mis-crystal-design-system-input.js.map +1 -1
  240. package/fesm2015/mis-crystal-design-system-loader.js +3 -4
  241. package/fesm2015/mis-crystal-design-system-loader.js.map +1 -1
  242. package/fesm2015/mis-crystal-design-system-modal.js +8 -12
  243. package/fesm2015/mis-crystal-design-system-modal.js.map +1 -1
  244. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js +80 -44
  245. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js.map +1 -1
  246. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.js +72 -29
  247. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.js.map +1 -1
  248. package/fesm2015/mis-crystal-design-system-radio-button.js +6 -7
  249. package/fesm2015/mis-crystal-design-system-radio-button.js.map +1 -1
  250. package/fesm2015/mis-crystal-design-system-switch.js +3 -4
  251. package/fesm2015/mis-crystal-design-system-switch.js.map +1 -1
  252. package/fesm2015/mis-crystal-design-system-table.js +42 -60
  253. package/fesm2015/mis-crystal-design-system-table.js.map +1 -1
  254. package/fesm2015/mis-crystal-design-system-toast.js +28 -33
  255. package/fesm2015/mis-crystal-design-system-toast.js.map +1 -1
  256. package/fesm2015/mis-crystal-design-system-tooltip.js +2 -2
  257. package/fesm2015/mis-crystal-design-system-tooltip.js.map +1 -1
  258. package/fesm2015/mis-crystal-design-system.js.map +1 -1
  259. package/index.d.ts +1 -1
  260. package/input/directives/input/input.directive.d.ts +3 -3
  261. package/input/index.d.ts +1 -1
  262. package/input/mis-crystal-design-system-input.metadata.json +1 -1
  263. package/input/mis-input.component.d.ts +4 -4
  264. package/input/public_api.d.ts +3 -3
  265. package/loader/index.d.ts +1 -1
  266. package/loader/loader.component.d.ts +1 -1
  267. package/loader/loader.module.d.ts +1 -1
  268. package/loader/mis-crystal-design-system-loader.metadata.json +1 -1
  269. package/loader/public_api.d.ts +2 -2
  270. package/menu/index.d.ts +1 -1
  271. package/modal/index.d.ts +1 -1
  272. package/modal/mis-crystal-design-system-modal.metadata.json +1 -1
  273. package/modal/modal.module.d.ts +1 -1
  274. package/modal/public_api.d.ts +4 -4
  275. package/multi-select-dropdown/index.d.ts +1 -1
  276. package/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.metadata.json +1 -1
  277. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +9 -3
  278. package/multi-select-dropdown/multi-select-dropdown.module.d.ts +1 -1
  279. package/multi-select-dropdown/public_api.d.ts +2 -2
  280. package/nested-multi-select-dropdown/index.d.ts +1 -1
  281. package/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.metadata.json +1 -1
  282. package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +10 -4
  283. package/nested-multi-select-dropdown/nested-multi-select-dropdown.module.d.ts +1 -1
  284. package/nested-multi-select-dropdown/public_api.d.ts +2 -2
  285. package/package.json +1 -1
  286. package/radio-button/index.d.ts +1 -1
  287. package/radio-button/mis-crystal-design-system-radio-button.metadata.json +1 -1
  288. package/radio-button/public_api.d.ts +2 -2
  289. package/radio-button/radio-button.component.d.ts +2 -2
  290. package/radio-button/radio-button.module.d.ts +1 -1
  291. package/switch/index.d.ts +1 -1
  292. package/switch/mis-crystal-design-system-switch.metadata.json +1 -1
  293. package/switch/public_api.d.ts +2 -2
  294. package/switch/switch.component.d.ts +2 -2
  295. package/switch/switch.module.d.ts +1 -1
  296. package/table/custom-table-cell.directive.d.ts +1 -1
  297. package/table/filter/filter.component.d.ts +1 -1
  298. package/table/index.d.ts +1 -1
  299. package/table/mis-crystal-design-system-table.metadata.json +1 -1
  300. package/table/public_api.d.ts +7 -7
  301. package/table/sub-table/sub-table.component.d.ts +6 -6
  302. package/table/table.component.d.ts +6 -6
  303. package/toast/index.d.ts +1 -1
  304. package/toast/mis-crystal-design-system-toast.metadata.json +1 -1
  305. package/toast/toast.component.d.ts +1 -1
  306. package/toast/toast.module.d.ts +1 -1
  307. package/toast/toast.service.d.ts +3 -3
  308. package/tooltip/mis-crystal-design-system-tooltip.metadata.json +1 -1
@@ -1,33 +1,31 @@
1
- import { EventEmitter, Component, ElementRef, Input, Output, HostListener, NgModule } from '@angular/core';
1
+ import { ConnectionPositionPair, OverlayConfig, Overlay, OverlayModule } from '@angular/cdk/overlay';
2
+ import { TemplatePortal } from '@angular/cdk/portal';
3
+ import { EventEmitter, Component, ElementRef, ViewContainerRef, Input, Output, ViewChild, NgModule } from '@angular/core';
2
4
  import { CommonModule } from '@angular/common';
3
5
  import { FormsModule } from '@angular/forms';
4
6
 
5
7
  class DropdownComponent {
6
- constructor(eRef) {
8
+ constructor(eRef, overlay, viewContainerRef) {
7
9
  this.eRef = eRef;
10
+ this.overlay = overlay;
11
+ this.viewContainerRef = viewContainerRef;
8
12
  this.isOpen = false;
9
13
  this.isSearchInputFocused = false;
10
- this.searchInput = '';
14
+ this.searchInput = "";
11
15
  this.searchData = [];
12
16
  this.data = [];
13
- this.height = '';
14
- this.width = '';
15
- this.label = 'Select';
16
- this.dropdownListHeight = '';
17
- this.dropdownListWidth = '';
18
- this.dropdownListPosition = 'Left';
17
+ this.height = "";
18
+ this.width = "";
19
+ this.label = "Select";
20
+ this.dropdownListHeight = "";
21
+ this.dropdownListWidth = "";
22
+ this.dropdownListPosition = "Left";
19
23
  this.searchEnabled = true;
20
- this.selectedItem = { value: '', label: '' };
21
- this.noDataMessage = 'No Data';
24
+ this.selectedItem = { value: "", label: "" };
25
+ this.noDataMessage = "No Data";
22
26
  this.onChange = new EventEmitter();
23
27
  }
24
28
  ngOnInit() { }
25
- clickout(event) {
26
- const isClickedOutside = !this.eRef.nativeElement.contains(event.target);
27
- if (isClickedOutside) {
28
- this.onCancel();
29
- }
30
- }
31
29
  filterByValue(array, string) {
32
30
  return array.filter(o => o.label.toLowerCase().includes(string.toLowerCase()));
33
31
  }
@@ -38,7 +36,7 @@ class DropdownComponent {
38
36
  }
39
37
  else {
40
38
  this.searchData = [];
41
- this.searchInput = '';
39
+ this.searchInput = "";
42
40
  }
43
41
  }
44
42
  searchInputFocused(isFocused) {
@@ -46,31 +44,73 @@ class DropdownComponent {
46
44
  }
47
45
  searchInputCanceled(event) {
48
46
  event.stopPropagation();
49
- this.searchInput = '';
47
+ this.searchInput = "";
50
48
  this.isSearchInputFocused = false;
51
49
  }
52
50
  toggleDropdown() {
53
51
  this.isOpen = !this.isOpen;
52
+ if (this.isOpen)
53
+ this.openDropdown(this.popupContainer, this.selectElement.nativeElement);
54
+ else
55
+ this.onCancel();
56
+ }
57
+ openDropdown(template, origin) {
58
+ const positionsBottom = [
59
+ new ConnectionPositionPair({ originX: "start", originY: "bottom" }, { overlayX: "start", overlayY: "top" }, 0, 4),
60
+ new ConnectionPositionPair({ originX: "end", originY: "bottom" }, { overlayX: "end", overlayY: "top" }, 0, 4)
61
+ ];
62
+ const positionsTop = [
63
+ new ConnectionPositionPair({ originX: "start", originY: "top" }, { overlayX: "start", overlayY: "bottom" }, 0, -4),
64
+ new ConnectionPositionPair({ originX: "end", originY: "top" }, { overlayX: "end", overlayY: "bottom" }, 0, -4)
65
+ ];
66
+ const positionStrategy = this.overlay
67
+ .position()
68
+ .flexibleConnectedTo(origin)
69
+ .withPositions([
70
+ ...(this.dropdownListPosition === "Right" ? positionsBottom.reverse() : positionsBottom),
71
+ ...(this.dropdownListPosition === "Right" ? positionsTop.reverse() : positionsTop)
72
+ ])
73
+ .withPush(true);
74
+ const configs = new OverlayConfig({
75
+ hasBackdrop: true,
76
+ backdropClass: "cdk-overlay-transparent-backdrop",
77
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
78
+ positionStrategy,
79
+ width: origin.clientWidth
80
+ });
81
+ this.overlayRef = this.overlay.create(configs);
82
+ if (this.dropdownListWidth)
83
+ this.overlayRef.updateSize({ width: this.dropdownListWidth });
84
+ if (this.dropdownListHeight)
85
+ this.overlayRef.updateSize({ height: this.dropdownListHeight });
86
+ this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
87
+ this.overlayRef.backdropClick().subscribe(res => {
88
+ this.onCancel();
89
+ });
54
90
  }
55
91
  selectItem(item) {
56
92
  this.onChange.emit(item);
57
93
  this.toggleDropdown();
58
94
  }
59
95
  onCancel() {
96
+ var _a;
60
97
  this.isSearchInputFocused = false;
61
98
  this.isOpen = false;
62
- this.searchInput = '';
99
+ (_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.detach();
100
+ this.searchInput = "";
63
101
  }
64
102
  }
65
103
  DropdownComponent.decorators = [
66
104
  { type: Component, args: [{
67
- selector: 'mis-dropdown',
68
- template: "<div\n class=\"main-container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div class=\"dropdown\" (click)=\"toggleDropdown()\" [ngStyle]=\"{ background: isOpen ? '#E6EBF7' : '' }\">\n <div class=\"label\">\n <p class=\"text\">\n {{ selectedItem.label || label }}\n </p>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n <div style=\"flex-basis: 0\"></div>\n <div style=\"width: 100%; position: relative\">\n <div\n *ngIf=\"isOpen\"\n class=\"popup-container\"\n [ngStyle]=\"{\n height: dropdownListHeight,\n width: dropdownListWidth\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition === 'Left',\n 'position-right': dropdownListPosition === 'Right'\n }\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : 'Search Keyword'\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"items\">\n <div\n class=\"item\"\n [ngClass]=\"{ 'item-disabled': item.disabled }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n *ngFor=\"let item of searchInput ? searchData : data\"\n >\n <div class=\"label\" [ngStyle]=\"{ width: item.icon ? '90%' : '100%' }\">\n {{ item.label }}\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"(searchInput ? searchData : data).length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n </div>\n </div>\n</div>\n",
69
- styles: [".main-container{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container .dropdown{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;padding:0 12px}.main-container .dropdown:hover{background-color:#f5f7fc}.main-container .dropdown .label{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px)}.main-container .dropdown .label,.main-container .dropdown .label .text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .dropdown .label .text{margin:0!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.main-container .dropdown .label .count{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0}.main-container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.main-container .popup-container{position:absolute;top:4px;width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px 0 rgba(0,0,0,.12);overflow:scroll;overflow-x:hidden;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-container .popup-container::-webkit-scrollbar{width:0;height:0}.main-container .popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.main-container .popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.main-container .popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.main-container .popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.main-container .popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll;height:100%}.main-container .popup-container .items::-webkit-scrollbar{width:5px;height:0}.main-container .popup-container .items::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.main-container .popup-container .items .noData{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;height:auto;letter-spacing:.2px;color:#181f33}.main-container .popup-container .items .item:hover{background-color:#f5f7fc}.main-container .popup-container .items .item .label{width:100%;line-height:20px;font-size:14px;font-style:normal;font-weight:400}.main-container .popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.main-container .popup-container .items .item .icon-container .icon{width:20px;height:20px}.main-container .popup-container .items .item-disabled{cursor:not-allowed}.main-container .popup-container .items .item-disabled:hover{background-color:transparent}.main-container .popup-container .items .item-disabled .label{color:#929dab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.position-left{right:0}.position-right{left:0}"]
105
+ selector: "mis-dropdown",
106
+ template: "<div\n class=\"main-container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ background: isOpen ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <p class=\"text\">\n {{ selectedItem.label || label }}\n </p>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n height: dropdownListHeight,\n width: dropdownListWidth\n }\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : 'Search Keyword'\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ 'item-disabled': item.disabled }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n (keyup.enter)=\"item.disabled ? null : selectItem(item)\"\n *ngFor=\"let item of searchInput ? searchData : data\"\n >\n <div class=\"label\" [ngStyle]=\"{ width: item.icon ? '90%' : '100%' }\">\n <span>{{ item.label }}</span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"(searchInput ? searchData : data).length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>\n",
107
+ styles: [".main-container{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container .dropdown{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;padding:0 12px}.main-container .dropdown:focus-visible,.main-container .dropdown:hover{background-color:#f5f7fc;outline:none}.main-container .dropdown .label{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px)}.main-container .dropdown .label,.main-container .dropdown .label .text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .dropdown .label .text{margin:0!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.main-container .dropdown .label .count{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0}.main-container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px 0 rgba(0,0,0,.12);display:flex;flex-direction:column;overflow:hidden;justify-content:space-between}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container .items .noData{justify-content:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px}.popup-container .items .item,.popup-container .items .noData{display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container .items .item{cursor:pointer;justify-content:flex-start;gap:10px;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:focus-visible,.popup-container .items .item:hover{background-color:#f5f7fc;outline:none}.popup-container .items .item .label{width:100%;line-height:20px;font-size:14px;font-style:normal;font-weight:400;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .items .item-disabled{cursor:not-allowed}.popup-container .items .item-disabled:focus-visible,.popup-container .items .item-disabled:hover{background-color:transparent;outline:none}.popup-container .items .item-disabled .label{color:#929dab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]
70
108
  },] }
71
109
  ];
72
110
  DropdownComponent.ctorParameters = () => [
73
- { type: ElementRef }
111
+ { type: ElementRef },
112
+ { type: Overlay },
113
+ { type: ViewContainerRef }
74
114
  ];
75
115
  DropdownComponent.propDecorators = {
76
116
  data: [{ type: Input }],
@@ -84,7 +124,8 @@ DropdownComponent.propDecorators = {
84
124
  selectedItem: [{ type: Input }],
85
125
  noDataMessage: [{ type: Input }],
86
126
  onChange: [{ type: Output }],
87
- clickout: [{ type: HostListener, args: ['document:click', ['$event'],] }]
127
+ selectElement: [{ type: ViewChild, args: ["select", { static: false },] }],
128
+ popupContainer: [{ type: ViewChild, args: ["popupContainer", { static: false },] }]
88
129
  };
89
130
 
90
131
  class DropdownModule {
@@ -95,7 +136,7 @@ class DropdownModule {
95
136
  DropdownModule.decorators = [
96
137
  { type: NgModule, args: [{
97
138
  declarations: [DropdownComponent],
98
- imports: [CommonModule, FormsModule],
139
+ imports: [CommonModule, FormsModule, OverlayModule],
99
140
  exports: [DropdownComponent]
100
141
  },] }
101
142
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-dropdown.js","sources":["../../../projects/mis-components/dropdown/dropdown.component.ts","../../../projects/mis-components/dropdown/dropdown.module.ts","../../../projects/mis-components/dropdown/mis-crystal-design-system-dropdown.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output\n} from '@angular/core';\n\n@Component({\n selector: 'mis-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent implements OnInit {\n isOpen = false;\n isSearchInputFocused: boolean = false;\n searchInput: string = '';\n searchData: DropdownItem[] = [];\n\n @Input() data: DropdownItem[] = [];\n @Input() height: string = ''\n @Input() width: string = ''\n @Input() label: string = 'Select';\n\n @Input() dropdownListHeight: string = ''\n @Input() dropdownListWidth: string = ''\n @Input() dropdownListPosition: 'Left' | 'Right' = 'Left'\n\n @Input() searchEnabled: boolean = true;\n @Input() selectedItem: DropdownItem = { value: '', label: '' };\n @Input() noDataMessage: string = 'No Data';\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n constructor(private eRef: ElementRef) { }\n ngOnInit() { }\n\n @HostListener('document:click', ['$event'])\n clickout(event) {\n const isClickedOutside = !this.eRef.nativeElement.contains(event.target);\n if (isClickedOutside) {\n this.onCancel();\n }\n }\n filterByValue(array: DropdownItem[], string: string) {\n return array.filter(o =>\n o.label.toLowerCase().includes(string.toLowerCase())\n );\n }\n searchInputOnChange(newValue) {\n this.searchInput = newValue;\n if (newValue) {\n this.searchData = this.filterByValue(this.data, newValue);\n } else {\n this.searchData = [];\n this.searchInput = '';\n }\n }\n searchInputFocused(isFocused: boolean) {\n this.isSearchInputFocused = isFocused;\n }\n searchInputCanceled(event) {\n event.stopPropagation();\n this.searchInput = '';\n this.isSearchInputFocused = false;\n }\n toggleDropdown() {\n this.isOpen = !this.isOpen;\n }\n selectItem(item) {\n this.onChange.emit(item);\n this.toggleDropdown();\n }\n onCancel() {\n this.isSearchInputFocused = false;\n this.isOpen = false;\n this.searchInput = '';\n }\n}\nexport interface DropdownItem {\n label: string;\n value: string;\n icon?: string;\n disabled?: boolean;\n}\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DropdownComponent } from './dropdown.component';\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [CommonModule, FormsModule],\n exports: [DropdownComponent]\n})\nexport class DropdownModule {\n static forRoot(): ModuleWithProviders<DropdownModule> {\n return { ngModule: DropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mis-crystal-design-system-dropdown.js","sources":["../../../projects/mis-components/dropdown/dropdown.component.ts","../../../projects/mis-components/dropdown/dropdown.module.ts","../../../projects/mis-components/dropdown/mis-crystal-design-system-dropdown.ts"],"sourcesContent":["import { ConnectionPositionPair, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef } from \"@angular/core\";\n\n@Component({\n selector: \"mis-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"]\n})\nexport class DropdownComponent implements OnInit {\n isOpen = false;\n isSearchInputFocused: boolean = false;\n searchInput: string = \"\";\n searchData: DropdownItem[] = [];\n\n @Input() data: DropdownItem[] = [];\n @Input() height: string = \"\";\n @Input() width: string = \"\";\n @Input() label: string = \"Select\";\n\n @Input() dropdownListHeight: string = \"\";\n @Input() dropdownListWidth: string = \"\";\n @Input() dropdownListPosition: \"Left\" | \"Right\" = \"Left\";\n\n @Input() searchEnabled: boolean = true;\n @Input() selectedItem: DropdownItem = { value: \"\", label: \"\" };\n @Input() noDataMessage: string = \"No Data\";\n\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(\"select\", { static: false }) selectElement: ElementRef;\n @ViewChild(\"popupContainer\", { static: false }) popupContainer: TemplateRef<Element>;\n private overlayRef: OverlayRef;\n\n constructor(private eRef: ElementRef, private overlay: Overlay, private viewContainerRef: ViewContainerRef) {}\n ngOnInit() {}\n\n filterByValue(array: DropdownItem[], string: string) {\n return array.filter(o => o.label.toLowerCase().includes(string.toLowerCase()));\n }\n searchInputOnChange(newValue) {\n this.searchInput = newValue;\n if (newValue) {\n this.searchData = this.filterByValue(this.data, newValue);\n } else {\n this.searchData = [];\n this.searchInput = \"\";\n }\n }\n searchInputFocused(isFocused: boolean) {\n this.isSearchInputFocused = isFocused;\n }\n searchInputCanceled(event) {\n event.stopPropagation();\n this.searchInput = \"\";\n this.isSearchInputFocused = false;\n }\n toggleDropdown() {\n this.isOpen = !this.isOpen;\n if (this.isOpen) this.openDropdown(this.popupContainer, this.selectElement.nativeElement);\n else this.onCancel();\n }\n private openDropdown(template: TemplateRef<Element>, origin: HTMLElement): void {\n const positionsBottom = [\n new ConnectionPositionPair({ originX: \"start\", originY: \"bottom\" }, { overlayX: \"start\", overlayY: \"top\" }, 0, 4),\n new ConnectionPositionPair({ originX: \"end\", originY: \"bottom\" }, { overlayX: \"end\", overlayY: \"top\" }, 0, 4)\n ];\n const positionsTop = [\n new ConnectionPositionPair({ originX: \"start\", originY: \"top\" }, { overlayX: \"start\", overlayY: \"bottom\" }, 0, -4),\n new ConnectionPositionPair({ originX: \"end\", originY: \"top\" }, { overlayX: \"end\", overlayY: \"bottom\" }, 0, -4)\n ];\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n ...(this.dropdownListPosition === \"Right\" ? positionsBottom.reverse() : positionsBottom),\n ...(this.dropdownListPosition === \"Right\" ? positionsTop.reverse() : positionsTop)\n ])\n .withPush(true);\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n width: origin.clientWidth\n });\n this.overlayRef = this.overlay.create(configs);\n if (this.dropdownListWidth) this.overlayRef.updateSize({ width: this.dropdownListWidth });\n if (this.dropdownListHeight) this.overlayRef.updateSize({ height: this.dropdownListHeight });\n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(res => {\n this.onCancel();\n });\n }\n selectItem(item) {\n this.onChange.emit(item);\n this.toggleDropdown();\n }\n onCancel() {\n this.isSearchInputFocused = false;\n this.isOpen = false;\n this.overlayRef?.detach();\n this.searchInput = \"\";\n }\n}\nexport interface DropdownItem {\n label: string;\n value: string;\n icon?: string;\n disabled?: boolean;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { DropdownComponent } from \"./dropdown.component\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [CommonModule, FormsModule, OverlayModule],\n exports: [DropdownComponent]\n})\nexport class DropdownModule {\n static forRoot(): ModuleWithProviders<DropdownModule> {\n return { ngModule: DropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -17,10 +17,9 @@ class FabComponent {
17
17
  }
18
18
  }
19
19
  ngOnInit() {
20
- this.options = Object.assign({ size: 56, backgroundColorClosed: '#0937B2', backgroundColorOpened: '#3a5fc1' }, this.options);
21
- }
22
- ngOnDestroy() {
20
+ this.options = Object.assign({ size: 56, backgroundColorClosed: "#0937B2", backgroundColorOpened: "#3a5fc1" }, this.options);
23
21
  }
22
+ ngOnDestroy() { }
24
23
  clickItem(item) {
25
24
  this.closeFab();
26
25
  item.click();
@@ -40,18 +39,16 @@ FabComponent.decorators = [
40
39
  trigger("slideUpFab", [
41
40
  transition(":enter", [
42
41
  style({ transform: "translateY(50px)", opacity: 0 }),
43
- animate("300ms ease-out", style({ transform: "translateY(0px)", opacity: 1 })),
44
- ]),
45
- transition(":leave", [
46
- animate("200ms ease-out", style({ transform: "translateY(70px)", opacity: 0 })),
42
+ animate("300ms ease-out", style({ transform: "translateY(0px)", opacity: 1 }))
47
43
  ]),
44
+ transition(":leave", [animate("200ms ease-out", style({ transform: "translateY(70px)", opacity: 0 }))])
48
45
  ]),
49
46
  trigger("rotateButton", [
50
- state('default', style({ transform: 'rotate(0)' })),
51
- state('rotated', style({ transform: 'rotate(45deg)' })),
52
- transition('rotated => default', animate('300ms ease-out')),
53
- transition('default => rotated', animate('200ms ease-in'))
54
- ]),
47
+ state("default", style({ transform: "rotate(0)" })),
48
+ state("rotated", style({ transform: "rotate(45deg)" })),
49
+ transition("rotated => default", animate("300ms ease-out")),
50
+ transition("default => rotated", animate("200ms ease-in"))
51
+ ])
55
52
  ],
56
53
  styles: [".fab-wrapper{position:fixed;right:24px;bottom:24px;z-index:1000}.fab-wrapper .fab-item{position:relative;padding:0 0 16px 8px}.fab-wrapper .fab-item .fab-tooltip{position:absolute;background-color:#181f33;border-radius:4px;color:#fff;padding:8px;display:flex;justify-content:center;align-items:center;white-space:nowrap;right:100%;top:calc(50% - 8px);transform:translateY(-50%)}.fab-wrapper .fab-item .fab-button{width:40px;height:40px}.fab-wrapper .fab-container,.fab-wrapper .fab-item .fab-button{cursor:pointer;border-radius:50%;display:flex;justify-content:center;align-items:center}.fab-wrapper .fab-container{width:56px;height:56px}.add-img{height:24px;width:24px}"]
57
54
  },] }
@@ -63,7 +60,7 @@ FabComponent.propDecorators = {
63
60
  show: [{ type: Input }],
64
61
  options: [{ type: Input }],
65
62
  items: [{ type: Input }],
66
- clickout: [{ type: HostListener, args: ['document:click', ['$event'],] }]
63
+ clickout: [{ type: HostListener, args: ["document:click", ["$event"],] }]
67
64
  };
68
65
 
69
66
  class FabModule {
@@ -75,7 +72,7 @@ FabModule.decorators = [
75
72
  { type: NgModule, args: [{
76
73
  declarations: [FabComponent],
77
74
  imports: [CommonModule],
78
- exports: [FabComponent],
75
+ exports: [FabComponent]
79
76
  },] }
80
77
  ];
81
78
 
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-fab.js","sources":["../../../projects/mis-components/fab/fab.component.ts","../../../projects/mis-components/fab/fab.module.ts","../../../projects/mis-components/fab/mis-crystal-design-system-fab.ts"],"sourcesContent":["/** @format */\n\nimport { Component, ElementRef, HostListener, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { trigger, transition, style, animate, state } from \"@angular/animations\";\n\nexport type FabOptions = {\n backgroundColorClosed?: string;\n backgroundColorOpened?: string;\n size?: number;\n}\n\nexport type FabItem = {\n label?: string;\n icon: string;\n backgroundColor?: string;\n id?: string;\n click?: () => any;\n}\n\nexport type FabItems = FabItem[]\n\n@Component({\n selector: \"mis-fab\",\n templateUrl: \"./fab.component.html\",\n styleUrls: [\"./fab.component.scss\"],\n animations: [\n trigger(\"slideUpFab\", [\n transition(\":enter\", [\n style({ transform: \"translateY(50px)\", opacity: 0 }),\n animate(\"300ms ease-out\", style({ transform: \"translateY(0px)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n animate(\"200ms ease-out\", style({ transform: \"translateY(70px)\", opacity: 0 })),\n ]),\n ]),\n trigger(\"rotateButton\", [\n state('default', style({ transform: 'rotate(0)' })),\n state('rotated', style({ transform: 'rotate(45deg)' })),\n transition('rotated => default', animate('300ms ease-out')),\n transition('default => rotated', animate('200ms ease-in'))\n ]),\n ],\n})\nexport class FabComponent implements OnInit, OnDestroy {\n\n @Input() show: boolean = false;\n @Input() options: FabOptions = {};\n @Input() items: FabItems = []\n\n isOpen: boolean = false;\n\n\n constructor(private eRef: ElementRef) { }\n\n @HostListener('document:click', ['$event'])\n clickout(event) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeFab()\n }\n }\n\n ngOnInit(): void {\n this.options = {\n size: 56,\n backgroundColorClosed: '#0937B2',\n backgroundColorOpened: '#3a5fc1',\n ...this.options\n }\n }\n\n ngOnDestroy(): void {\n }\n\n clickItem(item: FabItem) {\n this.closeFab();\n item.click();\n }\n\n closeFab() {\n this.isOpen = false;\n }\n\n toogleFab() {\n this.isOpen = !this.isOpen;\n }\n\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FabComponent } from './fab.component';\n\n@NgModule({\n declarations: [FabComponent],\n imports: [CommonModule],\n exports: [FabComponent],\n})\nexport class FabModule {\n static forRoot(): ModuleWithProviders<FabModule> {\n return { ngModule: FabModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;MA2Ca,YAAY;IASvB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAP3B,SAAI,GAAY,KAAK,CAAC;QACtB,YAAO,GAAe,EAAE,CAAC;QACzB,UAAK,GAAa,EAAE,CAAA;QAE7B,WAAM,GAAY,KAAK,CAAC;KAGiB;IAGzC,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAA;SAChB;KACF;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,mBACV,IAAI,EAAE,EAAE,EACR,qBAAqB,EAAE,SAAS,EAChC,qBAAqB,EAAE,SAAS,IAC7B,IAAI,CAAC,OAAO,CAChB,CAAA;KACF;IAED,WAAW;KACV;IAED,SAAS,CAAC,IAAa;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;IAED,SAAS;QACP,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B;;;YA/DF,SAAS,SAAC;gBACT,QAAQ,EAAE,SAAS;gBACnB,ygDAAmC;gBAEnC,UAAU,EAAE;oBACV,OAAO,CAAC,YAAY,EAAE;wBACpB,UAAU,CAAC,QAAQ,EAAE;4BACnB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;4BACpD,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;yBAC/E,CAAC;wBACF,UAAU,CAAC,QAAQ,EAAE;4BACnB,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;yBAChF,CAAC;qBACH,CAAC;oBACF,OAAO,CAAC,cAAc,EAAE;wBACtB,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;wBACvD,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;wBAC3D,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;qBAC3D,CAAC;iBACH;;aACF;;;YAxCmB,UAAU;;;mBA2C3B,KAAK;sBACL,KAAK;oBACL,KAAK;uBAOL,YAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MC7C/B,SAAS;IACpB,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAC/C;;;YARF,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,YAAY,CAAC;aACxB;;;ACRD;;;;;;"}
1
+ {"version":3,"file":"mis-crystal-design-system-fab.js","sources":["../../../projects/mis-components/fab/fab.component.ts","../../../projects/mis-components/fab/fab.module.ts","../../../projects/mis-components/fab/mis-crystal-design-system-fab.ts"],"sourcesContent":["/** @format */\n\nimport { Component, ElementRef, HostListener, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { trigger, transition, style, animate, state } from \"@angular/animations\";\n\nexport type FabOptions = {\n backgroundColorClosed?: string;\n backgroundColorOpened?: string;\n size?: number;\n};\n\nexport type FabItem = {\n label?: string;\n icon: string;\n backgroundColor?: string;\n id?: string;\n click?: () => any;\n};\n\nexport type FabItems = FabItem[];\n\n@Component({\n selector: \"mis-fab\",\n templateUrl: \"./fab.component.html\",\n styleUrls: [\"./fab.component.scss\"],\n animations: [\n trigger(\"slideUpFab\", [\n transition(\":enter\", [\n style({ transform: \"translateY(50px)\", opacity: 0 }),\n animate(\"300ms ease-out\", style({ transform: \"translateY(0px)\", opacity: 1 }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translateY(70px)\", opacity: 0 }))])\n ]),\n trigger(\"rotateButton\", [\n state(\"default\", style({ transform: \"rotate(0)\" })),\n state(\"rotated\", style({ transform: \"rotate(45deg)\" })),\n transition(\"rotated => default\", animate(\"300ms ease-out\")),\n transition(\"default => rotated\", animate(\"200ms ease-in\"))\n ])\n ]\n})\nexport class FabComponent implements OnInit, OnDestroy {\n @Input() show: boolean = false;\n @Input() options: FabOptions = {};\n @Input() items: FabItems = [];\n\n isOpen: boolean = false;\n\n constructor(private eRef: ElementRef) {}\n\n @HostListener(\"document:click\", [\"$event\"])\n clickout(event) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeFab();\n }\n }\n\n ngOnInit(): void {\n this.options = {\n size: 56,\n backgroundColorClosed: \"#0937B2\",\n backgroundColorOpened: \"#3a5fc1\",\n ...this.options\n };\n }\n\n ngOnDestroy(): void {}\n\n clickItem(item: FabItem) {\n this.closeFab();\n item.click();\n }\n\n closeFab() {\n this.isOpen = false;\n }\n\n toogleFab() {\n this.isOpen = !this.isOpen;\n }\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FabComponent } from \"./fab.component\";\n\n@NgModule({\n declarations: [FabComponent],\n imports: [CommonModule],\n exports: [FabComponent]\n})\nexport class FabModule {\n static forRoot(): ModuleWithProviders<FabModule> {\n return { ngModule: FabModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;MAyCa,YAAY;IAOvB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAN3B,SAAI,GAAY,KAAK,CAAC;QACtB,YAAO,GAAe,EAAE,CAAC;QACzB,UAAK,GAAa,EAAE,CAAC;QAE9B,WAAM,GAAY,KAAK,CAAC;KAEgB;IAGxC,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,mBACV,IAAI,EAAE,EAAE,EACR,qBAAqB,EAAE,SAAS,EAChC,qBAAqB,EAAE,SAAS,IAC7B,IAAI,CAAC,OAAO,CAChB,CAAC;KACH;IAED,WAAW,MAAW;IAEtB,SAAS,CAAC,IAAa;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;IAED,SAAS;QACP,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B;;;YA1DF,SAAS,SAAC;gBACT,QAAQ,EAAE,SAAS;gBACnB,ygDAAmC;gBAEnC,UAAU,EAAE;oBACV,OAAO,CAAC,YAAY,EAAE;wBACpB,UAAU,CAAC,QAAQ,EAAE;4BACnB,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;4BACpD,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;yBAC/E,CAAC;wBACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBACxG,CAAC;oBACF,OAAO,CAAC,cAAc,EAAE;wBACtB,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnD,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;wBACvD,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;wBAC3D,UAAU,CAAC,oBAAoB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;qBAC3D,CAAC;iBACH;;aACF;;;YAtCmB,UAAU;;;mBAwC3B,KAAK;sBACL,KAAK;oBACL,KAAK;uBAML,YAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MCzC/B,SAAS;IACpB,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAC/C;;;YARF,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,YAAY,CAAC;gBAC5B,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,YAAY,CAAC;aACxB;;;ACRD;;;;;;"}
@@ -22,7 +22,7 @@ class MisInputDirective {
22
22
  this.validityChange.next(!((_b = this.control.control) === null || _b === void 0 ? void 0 : _b.invalid));
23
23
  }
24
24
  });
25
- this.el.nativeElement.placeholder += ' ';
25
+ this.el.nativeElement.placeholder += " ";
26
26
  }
27
27
  ngOnDestroy() {
28
28
  this.endObs.next();
@@ -32,7 +32,7 @@ class MisInputDirective {
32
32
  MisInputDirective.decorators = [
33
33
  { type: Directive, args: [{
34
34
  // tslint:disable-next-line
35
- selector: 'input[misInput]',
35
+ selector: "input[misInput]"
36
36
  },] }
37
37
  ];
38
38
  MisInputDirective.ctorParameters = () => [
@@ -42,7 +42,7 @@ MisInputDirective.ctorParameters = () => [
42
42
 
43
43
  class MisInputComponent {
44
44
  constructor() {
45
- this.type = 'floating';
45
+ this.type = "floating";
46
46
  this.noHints = false;
47
47
  this.hasError = false; // show input in error state
48
48
  this.inputValidity = true;
@@ -53,8 +53,8 @@ class MisInputComponent {
53
53
  this.placeholder = input.el.nativeElement.placeholder;
54
54
  }
55
55
  (_a = this.inputSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
56
- this.inputSubscription = input === null || input === void 0 ? void 0 : input.validity.subscribe((res) => (this.inputValidity = res));
57
- this.placeholder += ' ';
56
+ this.inputSubscription = input === null || input === void 0 ? void 0 : input.validity.subscribe(res => (this.inputValidity = res));
57
+ this.placeholder += " ";
58
58
  }
59
59
  ngOnInit() { }
60
60
  ngOnDestroy() {
@@ -64,8 +64,8 @@ class MisInputComponent {
64
64
  }
65
65
  MisInputComponent.decorators = [
66
66
  { type: Component, args: [{
67
- selector: 'mis-input',
68
- template: "<div class=\"input-container\" [ngClass]=\"{'rounded': type === 'rounded', 'floating': type === 'floating', 'has-error': !inputValidity || hasError, 'no-hint': noHints}\">\n <div class=\"input-wrapper\">\n <ng-content select=\"[mis-input-icon]\"></ng-content>\n <div class=\"mis-input\">\n <ng-content select=\"input\"></ng-content>\n <span class=\"mis-placeholder\">{{placeholder}}</span>\n </div>\n <ng-content select=\"[mis-input-act]\"></ng-content>\n </div>\n <ng-content select=\"[mis-input-hint]\"></ng-content>\n <ng-content select=\"[mis-input-error]\"></ng-content>\n</div>",
67
+ selector: "mis-input",
68
+ template: "<div\n class=\"input-container\"\n [ngClass]=\"{ rounded: type === 'rounded', floating: type === 'floating', 'has-error': !inputValidity || hasError, 'no-hint': noHints }\"\n>\n <div class=\"input-wrapper\">\n <ng-content select=\"[mis-input-icon]\"></ng-content>\n <div class=\"mis-input\">\n <ng-content select=\"input\"></ng-content>\n <span class=\"mis-placeholder\">{{ placeholder }}</span>\n </div>\n <ng-content select=\"[mis-input-act]\"></ng-content>\n </div>\n <ng-content select=\"[mis-input-hint]\"></ng-content>\n <ng-content select=\"[mis-input-error]\"></ng-content>\n</div>\n",
69
69
  styles: [".input-container{position:relative;padding-bottom:24px}.input-container .input-wrapper{box-sizing:border-box;display:flex;align-items:center;flex-direction:row;flex-wrap:nowrap;transition:all 60ms ease-in;background-color:#fff;padding:3px 16px}.input-container .input-wrapper>:not(:last-child){margin-right:16px}.input-container .input-wrapper .mis-input{flex:1 1 auto;z-index:0;position:relative;display:flex;align-items:center}.input-container .input-wrapper input{flex:1 1 auto;border:none;outline:none;height:100%;padding:0;font-family:Lato;font-style:normal;font-weight:400;font-size:16px;height:24px;color:#181f33;background-color:transparent;width:100%;vertical-align:middle}.input-container .input-wrapper input::-moz-placeholder{-moz-transition:all .1s ease-in;transition:all .1s ease-in;opacity:0;transform-origin:left center;color:transparent}.input-container .input-wrapper input:-ms-input-placeholder{-ms-transition:all .1s ease-in;transition:all .1s ease-in;opacity:0;transform-origin:left center;color:transparent}.input-container .input-wrapper input::placeholder{transition:all .1s ease-in;opacity:0;transform-origin:left center;color:transparent}.input-container .input-wrapper .mis-placeholder{position:absolute;font-family:Lato;font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#6a737d;z-index:-1;transition:all .15s ease-in}.input-container .input-wrapper:focus-within{background-color:#f5f5f5}.input-container .input-wrapper:focus-within{border:1px solid #0937b2}.input-container .input-wrapper [mis-input-act],.input-container .input-wrapper [mis-input-icon]{width:18px;height:18px;color:#6a737d;font-size:24px;line-height:18px}.input-container .input-wrapper [mis-input-act]{cursor:pointer}.input-container.no-hint{padding-bottom:0}.input-container.rounded .input-wrapper{border-radius:4px;border:1px solid #e0e0e0}.input-container.rounded .input-wrapper:focus-within,.input-container.rounded .input-wrapper:hover{background-color:#f5f5f5}.input-container.rounded .input-wrapper input:not(:-moz-placeholder-shown)+.mis-placeholder{color:transparent!important}.input-container.rounded .input-wrapper input:not(:-ms-input-placeholder)+.mis-placeholder{color:transparent!important}.input-container.rounded .input-wrapper input:not(:placeholder-shown)+.mis-placeholder{color:transparent!important}.input-container.rounded .input-wrapper .mis-placeholder{transition-duration:50ms}.input-container.rounded.has-error .input-wrapper{border:1px solid #b00020!important}.input-container.floating .input-wrapper{padding-top:24px;padding-bottom:7px;border-bottom:1px solid #e0e0e0}.input-container.floating .input-wrapper input:focus+.mis-placeholder{color:#0937b2!important}.input-container.floating .input-wrapper input:not(:-moz-placeholder-shown)+.mis-placeholder{transform:translateY(calc(-100% + 6px))!important;font-size:12px!important;letter-spacing:.2px!important}.input-container.floating .input-wrapper input:not(:-ms-input-placeholder)+.mis-placeholder{transform:translateY(calc(-100% + 6px))!important;font-size:12px!important;letter-spacing:.2px!important}.input-container.floating .input-wrapper input:focus+.mis-placeholder,.input-container.floating .input-wrapper input:not(:placeholder-shown)+.mis-placeholder{transform:translateY(calc(-100% + 6px))!important;font-size:12px!important;letter-spacing:.2px!important}.input-container.floating .input-wrapper:focus-within{border:none;border-bottom:1px solid #0937b2}.input-container.floating .input-wrapper:focus-within input::-moz-placeholder{color:#6a737d;opacity:1;font-size:16px}.input-container.floating .input-wrapper:focus-within input:-ms-input-placeholder{color:#6a737d;opacity:1;font-size:16px}.input-container.floating .input-wrapper:focus-within input::placeholder{color:#6a737d;opacity:1;font-size:16px}.input-container.floating.has-error .input-wrapper{border-bottom:1px solid #b00020!important}.input-container.floating.has-error .input-wrapper .mis-placeholder{color:#b00020!important}.input-container [mis-input-error],.input-container [mis-input-hint]{position:absolute;left:0;right:0;bottom:0;line-height:24px;height:24px;font-size:12px;color:#6a737d;letter-spacing:.2px}.input-container [mis-input-error]{color:#b00020}"]
70
70
  },] }
71
71
  ];
@@ -84,7 +84,7 @@ MisInputModule.decorators = [
84
84
  { type: NgModule, args: [{
85
85
  declarations: [MisInputComponent, MisInputDirective],
86
86
  imports: [CommonModule, FormsModule],
87
- exports: [MisInputComponent, MisInputDirective],
87
+ exports: [MisInputComponent, MisInputDirective]
88
88
  },] }
89
89
  ];
90
90
 
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-input.js","sources":["../../../projects/mis-components/input/directives/input/input.directive.ts","../../../projects/mis-components/input/mis-input.component.ts","../../../projects/mis-components/input/mis-input.module.ts","../../../projects/mis-components/input/mis-crystal-design-system-input.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n // tslint:disable-next-line\n selector: 'input[misInput]',\n})\nexport class MisInputDirective implements OnInit, OnDestroy {\n constructor(\n public el: ElementRef,\n @Self() @Optional() private control: NgControl\n ) {}\n private validityChange: ReplaySubject<boolean> = new ReplaySubject(1);\n validity = this.validityChange.asObservable();\n endObs: Subject<void> = new Subject();\n focus = false;\n hasValue = false;\n\n ngOnInit(): void {\n this.control?.control?.statusChanges\n .pipe(takeUntil(this.endObs))\n .subscribe(() => {\n if(!this.control.control?.disabled){\n this.validityChange.next(!this.control.control?.invalid);\n }\n });\n this.el.nativeElement.placeholder += ' ';\n }\n ngOnDestroy(): void {\n this.endObs.next();\n this.endObs.complete();\n }\n}\n","import {\n Component,\n ContentChild,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MisInputDirective } from './directives/input/input.directive';\n\n@Component({\n selector: 'mis-input',\n templateUrl: './mis-input.component.html',\n styleUrls: ['./mis-input.component.scss'],\n})\nexport class MisInputComponent implements OnInit, OnDestroy {\n @Input() type: 'rounded' | 'floating' = 'floating';\n @Input() placeholder: string; // floating placeholder text\n @Input() noHints = false;\n @Input() hasError = false; // show input in error state\n @ContentChild(MisInputDirective) set formInput(input: MisInputDirective) {\n if (!this.placeholder) {\n this.placeholder = input.el.nativeElement.placeholder;\n }\n this.inputSubscription?.unsubscribe();\n this.inputSubscription = input?.validity.subscribe(\n (res) => (this.inputValidity = res)\n );\n this.placeholder += ' ';\n }\n inputSubscription: Subscription | undefined;\n inputValidity: boolean = true;\n constructor() {}\n\n ngOnInit(): void {}\n ngOnDestroy(): void {\n this.inputSubscription?.unsubscribe();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MisInputDirective } from './directives/input/input.directive';\nimport { MisInputComponent } from './mis-input.component';\n\n@NgModule({\n declarations: [MisInputComponent, MisInputDirective],\n imports: [CommonModule, FormsModule],\n exports: [MisInputComponent, MisInputDirective],\n})\nexport class MisInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAgBa,iBAAiB;IAC5B,YACS,EAAc,EACO,OAAkB;QADvC,OAAE,GAAF,EAAE,CAAY;QACO,YAAO,GAAP,OAAO,CAAW;QAExC,mBAAc,GAA2B,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QACtE,aAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAC9C,WAAM,GAAkB,IAAI,OAAO,EAAE,CAAC;QACtC,UAAK,GAAG,KAAK,CAAC;QACd,aAAQ,GAAG,KAAK,CAAC;KALb;IAOJ,QAAQ;;QACN,YAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,0CAAE,aAAa,CACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,SAAS,CAAC;;YACT,IAAG,QAAC,IAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAA,EAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAC,IAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC,CAAC;aAC1D;SACF,EAAE;QACL,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,IAAI,GAAG,CAAC;KAC1C;IACD,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACxB;;;YA5BF,SAAS,SAAC;;gBAET,QAAQ,EAAE,iBAAiB;aAC5B;;;YAbC,UAAU;YAMH,SAAS,uBAWb,IAAI,YAAI,QAAQ;;;MCHR,iBAAiB;IAiB5B;QAhBS,SAAI,GAA2B,UAAU,CAAC;QAE1C,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,KAAK,CAAC;QAY1B,kBAAa,GAAY,IAAI,CAAC;KACd;IAZhB,IAAqC,SAAS,CAAC,KAAwB;;QACrE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;SACvD;QACD,MAAA,IAAI,CAAC,iBAAiB,0CAAE,WAAW,GAAG;QACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,SAAS,CAChD,CAAC,GAAG,MAAM,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CACpC,CAAC;QACF,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;KACzB;IAKD,QAAQ,MAAW;IACnB,WAAW;;QACT,MAAA,IAAI,CAAC,iBAAiB,0CAAE,WAAW,GAAG;KACvC;;;YA3BF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,6mBAAyC;;aAE1C;;;;mBAEE,KAAK;0BACL,KAAK;sBACL,KAAK;uBACL,KAAK;wBACL,YAAY,SAAC,iBAAiB;;;MCVpB,cAAc;;;YAL1B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBACpD,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;gBACpC,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;aAChD;;;ACVD;;;;;;"}
1
+ {"version":3,"file":"mis-crystal-design-system-input.js","sources":["../../../projects/mis-components/input/directives/input/input.directive.ts","../../../projects/mis-components/input/mis-input.component.ts","../../../projects/mis-components/input/mis-input.module.ts","../../../projects/mis-components/input/mis-crystal-design-system-input.ts"],"sourcesContent":["import { Directive, ElementRef, OnDestroy, OnInit, Optional, Self } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { ReplaySubject, Subject, Subscription } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Directive({\n // tslint:disable-next-line\n selector: \"input[misInput]\"\n})\nexport class MisInputDirective implements OnInit, OnDestroy {\n constructor(public el: ElementRef, @Self() @Optional() private control: NgControl) {}\n private validityChange: ReplaySubject<boolean> = new ReplaySubject(1);\n validity = this.validityChange.asObservable();\n endObs: Subject<void> = new Subject();\n focus = false;\n hasValue = false;\n\n ngOnInit(): void {\n this.control?.control?.statusChanges.pipe(takeUntil(this.endObs)).subscribe(() => {\n if (!this.control.control?.disabled) {\n this.validityChange.next(!this.control.control?.invalid);\n }\n });\n this.el.nativeElement.placeholder += \" \";\n }\n ngOnDestroy(): void {\n this.endObs.next();\n this.endObs.complete();\n }\n}\n","import { Component, ContentChild, Input, OnDestroy, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { MisInputDirective } from \"./directives/input/input.directive\";\n\n@Component({\n selector: \"mis-input\",\n templateUrl: \"./mis-input.component.html\",\n styleUrls: [\"./mis-input.component.scss\"]\n})\nexport class MisInputComponent implements OnInit, OnDestroy {\n @Input() type: \"rounded\" | \"floating\" = \"floating\";\n @Input() placeholder: string; // floating placeholder text\n @Input() noHints = false;\n @Input() hasError = false; // show input in error state\n @ContentChild(MisInputDirective) set formInput(input: MisInputDirective) {\n if (!this.placeholder) {\n this.placeholder = input.el.nativeElement.placeholder;\n }\n this.inputSubscription?.unsubscribe();\n this.inputSubscription = input?.validity.subscribe(res => (this.inputValidity = res));\n this.placeholder += \" \";\n }\n inputSubscription: Subscription | undefined;\n inputValidity: boolean = true;\n constructor() {}\n\n ngOnInit(): void {}\n ngOnDestroy(): void {\n this.inputSubscription?.unsubscribe();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MisInputDirective } from \"./directives/input/input.directive\";\nimport { MisInputComponent } from \"./mis-input.component\";\n\n@NgModule({\n declarations: [MisInputComponent, MisInputDirective],\n imports: [CommonModule, FormsModule],\n exports: [MisInputComponent, MisInputDirective]\n})\nexport class MisInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MASa,iBAAiB;IAC5B,YAAmB,EAAc,EAA8B,OAAkB;QAA9D,OAAE,GAAF,EAAE,CAAY;QAA8B,YAAO,GAAP,OAAO,CAAW;QACzE,mBAAc,GAA2B,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QACtE,aAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAC9C,WAAM,GAAkB,IAAI,OAAO,EAAE,CAAC;QACtC,UAAK,GAAG,KAAK,CAAC;QACd,aAAQ,GAAG,KAAK,CAAC;KALoE;IAOrF,QAAQ;;QACN,YAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,0CAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;;YAC1E,IAAI,QAAC,IAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAA,EAAE;gBACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAC,IAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,OAAO,CAAA,CAAC,CAAC;aAC1D;SACF,EAAE;QACH,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,IAAI,GAAG,CAAC;KAC1C;IACD,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACxB;;;YAvBF,SAAS,SAAC;;gBAET,QAAQ,EAAE,iBAAiB;aAC5B;;;YARmB,UAAU;YACrB,SAAS,uBASoB,IAAI,YAAI,QAAQ;;;MCDzC,iBAAiB;IAe5B;QAdS,SAAI,GAA2B,UAAU,CAAC;QAE1C,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,KAAK,CAAC;QAU1B,kBAAa,GAAY,IAAI,CAAC;KACd;IAVhB,IAAqC,SAAS,CAAC,KAAwB;;QACrE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;SACvD;QACD,MAAA,IAAI,CAAC,iBAAiB,0CAAE,WAAW,GAAG;QACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;KACzB;IAKD,QAAQ,MAAW;IACnB,WAAW;;QACT,MAAA,IAAI,CAAC,iBAAiB,0CAAE,WAAW,GAAG;KACvC;;;YAzBF,SAAS,SAAC;gBACT,QAAQ,EAAE,WAAW;gBACrB,unBAAyC;;aAE1C;;;;mBAEE,KAAK;0BACL,KAAK;sBACL,KAAK;uBACL,KAAK;wBACL,YAAY,SAAC,iBAAiB;;;MCHpB,cAAc;;;YAL1B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBACpD,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;gBACpC,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;aAChD;;;ACVD;;;;;;"}
@@ -6,13 +6,12 @@ class LoaderComponent {
6
6
  /** Controls loader size */
7
7
  this.mobileView = false;
8
8
  }
9
- ngOnInit() {
10
- }
9
+ ngOnInit() { }
11
10
  }
12
11
  LoaderComponent.decorators = [
13
12
  { type: Component, args: [{
14
- selector: 'mis-loader',
15
- template: "<div id=\"spinner\" [ngClass]=\"{\n 'mobile': mobileView\n}\"></div>\n",
13
+ selector: "mis-loader",
14
+ template: "<div\n id=\"spinner\"\n [ngClass]=\"{\n mobile: mobileView\n }\"\n></div>\n",
16
15
  styles: ["#spinner{-webkit-animation:frames 1s linear infinite;animation:frames 1s linear infinite;background:transparent;border-radius:100%;border:4px solid #e0e0e0;border-top-color:#6200ee;width:40px;height:40px;padding:0;position:absolute}@-webkit-keyframes frames{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes frames{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.mobile{height:20px!important;width:20px!important;border:2px solid #e0e0e0!important;border-top-color:#6200ee!important}"]
17
16
  },] }
18
17
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-loader.js","sources":["../../../projects/mis-components/loader/loader.component.ts","../../../projects/mis-components/loader/loader.module.ts","../../../projects/mis-components/loader/mis-crystal-design-system-loader.ts"],"sourcesContent":["import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'mis-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit{\n\n /** Controls loader size */\n @Input() mobileView: boolean = false\n\n constructor() {\n }\n ngOnInit(){\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LoaderComponent } from './loader.component';\n\n@NgModule({\n declarations: [LoaderComponent],\n imports: [CommonModule],\n exports: [LoaderComponent]\n})\nexport class LoaderModule {\n static forRoot(): ModuleWithProviders<LoaderModule> {\n return { ngModule: LoaderModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAOa,eAAe;IAK1B;;QAFS,eAAU,GAAY,KAAK,CAAA;KAGnC;IACD,QAAQ;KACP;;;YAbF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,mFAAsC;;aAEvC;;;;yBAIE,KAAK;;;MCAK,YAAY;IACvB,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAClD;;;YARF,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,eAAe,CAAC;aAC3B;;;ACTD;;;;;;"}
1
+ {"version":3,"file":"mis-crystal-design-system-loader.js","sources":["../../../projects/mis-components/loader/loader.component.ts","../../../projects/mis-components/loader/loader.module.ts","../../../projects/mis-components/loader/mis-crystal-design-system-loader.ts"],"sourcesContent":["import { Component, Input, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"mis-loader\",\n templateUrl: \"./loader.component.html\",\n styleUrls: [\"./loader.component.scss\"]\n})\nexport class LoaderComponent implements OnInit {\n /** Controls loader size */\n @Input() mobileView: boolean = false;\n\n constructor() {}\n ngOnInit() {}\n}\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { LoaderComponent } from \"./loader.component\";\n\n@NgModule({\n declarations: [LoaderComponent],\n imports: [CommonModule],\n exports: [LoaderComponent]\n})\nexport class LoaderModule {\n static forRoot(): ModuleWithProviders<LoaderModule> {\n return { ngModule: LoaderModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAOa,eAAe;IAI1B;;QAFS,eAAU,GAAY,KAAK,CAAC;KAErB;IAChB,QAAQ,MAAK;;;YAVd,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,6FAAsC;;aAEvC;;;;yBAGE,KAAK;;;MCCK,YAAY;IACvB,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KAClD;;;YARF,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,eAAe,CAAC;aAC3B;;;ACTD;;;;;;"}
@@ -40,10 +40,10 @@ ModuleWrapperComponent.decorators = [
40
40
  trigger("slideInOut", [
41
41
  transition(":enter", [
42
42
  style({ transform: "translateY(-30%)", opacity: 0 }),
43
- animate("200ms ease-out", style({ transform: "translatey(0%)", opacity: 1 })),
43
+ animate("200ms ease-out", style({ transform: "translatey(0%)", opacity: 1 }))
44
44
  ]),
45
- transition(":leave", [animate("200ms ease-out", style({ transform: "translatey(-30%)", opacity: 0 }))]),
46
- ]),
45
+ transition(":leave", [animate("200ms ease-out", style({ transform: "translatey(-30%)", opacity: 0 }))])
46
+ ])
47
47
  ],
48
48
  styles: [".mis-modal-body{display:block;width:100%;height:100%;background-color:transparent;border-radius:12px;box-shadow:0 12px 24px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.12);overflow:hidden}"]
49
49
  },] }
@@ -68,7 +68,7 @@ class ModalService {
68
68
  width: width,
69
69
  height,
70
70
  panelClass: "mis-modal",
71
- backdropClass: "mis-modal-overlay",
71
+ backdropClass: "mis-modal-overlay"
72
72
  });
73
73
  const overlayRef = this.overlay.create(config);
74
74
  const modalRef = new ModalRef(overlayRef);
@@ -109,7 +109,7 @@ class ModalService {
109
109
  ModalService.ɵprov = ɵɵdefineInjectable({ factory: function ModalService_Factory() { return new ModalService(ɵɵinject(Overlay), ɵɵinject(INJECTOR)); }, token: ModalService, providedIn: "root" });
110
110
  ModalService.decorators = [
111
111
  { type: Injectable, args: [{
112
- providedIn: "root",
112
+ providedIn: "root"
113
113
  },] }
114
114
  ];
115
115
  ModalService.ctorParameters = () => [
@@ -121,24 +121,20 @@ class ModalModule {
121
121
  static forRoot() {
122
122
  return {
123
123
  ngModule: ModalModule,
124
- providers: [ModalService],
124
+ providers: [ModalService]
125
125
  };
126
126
  }
127
127
  static forChild() {
128
128
  return {
129
129
  ngModule: ModalModule,
130
- providers: [ModalService],
130
+ providers: [ModalService]
131
131
  };
132
132
  }
133
133
  }
134
134
  ModalModule.decorators = [
135
135
  { type: NgModule, args: [{
136
136
  declarations: [ModuleWrapperComponent],
137
- imports: [
138
- CommonModule,
139
- OverlayModule,
140
- PortalModule
141
- ],
137
+ imports: [CommonModule, OverlayModule, PortalModule],
142
138
  entryComponents: [ModuleWrapperComponent]
143
139
  },] }
144
140
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"mis-crystal-design-system-modal.js","sources":["../../../projects/mis-components/modal/modal-constants.ts","../../../projects/mis-components/modal/modal-ref.ts","../../../projects/mis-components/modal/module-wrapper/module-wrapper.component.ts","../../../projects/mis-components/modal/modal.service.ts","../../../projects/mis-components/modal/modal.module.ts","../../../projects/mis-components/modal/mis-crystal-design-system-modal.ts"],"sourcesContent":["/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const MODAL_DATA_VAR = new InjectionToken<any>(\"MISModalDataInjectionToken\");\n","/** @format */\n\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class ModalRef {\n private afterClosed$ = new Subject<unknown>();\n afterClosed = this.afterClosed$.asObservable();\n\n constructor(public overlay: OverlayRef) {}\n\n close(data?: unknown): void {\n this.overlay.detach();\n this.overlay.dispose();\n this.afterClosed$.next(data);\n this.afterClosed$.complete();\n }\n}\n","import { trigger, transition, style, animate } from \"@angular/animations\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { Component, Injector, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { ModalRef } from \"../modal-ref\";\n\n@Component({\n selector: \"mis-module-wrapper\",\n templateUrl: \"./module-wrapper.component.html\",\n styleUrls: [\"./module-wrapper.component.scss\"],\n animations: [\n trigger(\"slideInOut\", [\n transition(\":enter\", [\n style({ transform: \"translateY(-30%)\", opacity: 0 }),\n animate(\"200ms ease-out\", style({ transform: \"translatey(0%)\", opacity: 1 })),\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translatey(-30%)\", opacity: 0 }))]),\n ]),\n ],\n})\nexport class ModuleWrapperComponent {\n modalPortal: ComponentPortal<any>;\n constructor() {}\n\n @ViewChild(\"place\", { static: false, read: ViewContainerRef }) place: ViewContainerRef;\n\n bindComponent(type: any, injector: PortalInjector) {\n this.initComponent(type, injector);\n }\n\n private initComponent(type: any, injector: PortalInjector) {\n this.modalPortal = new ComponentPortal(type, this.place, injector);\n }\n}\n","import { ComponentType, Overlay, OverlayConfig } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { ComponentRef, Injectable, Injector } from \"@angular/core\";\nimport { MODAL_DATA_VAR } from \"./modal-constants\";\nimport { ModalRef } from \"./modal-ref\";\nimport { ModuleWrapperComponent } from \"./module-wrapper/module-wrapper.component\";\n\ninterface IModalOptions {\n width?: string;\n height?: string;\n top?: string;\n right?: string;\n bottom?: string;\n left?: string;\n closeOnBackdropClick?: boolean;\n}\n@Injectable({\n providedIn: \"root\",\n})\nexport class ModalService {\n private componentInstance: ComponentRef<ModuleWrapperComponent>;\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n show<T, D>(component: ComponentType<T>, data?: D, options?: IModalOptions): ModalRef {\n const positionStrategy = this.calculatePosition(options);\n const { width, height } = options || {};\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: width,\n height,\n panelClass: \"mis-modal\",\n backdropClass: \"mis-modal-overlay\",\n });\n const overlayRef = this.overlay.create(config);\n const modalRef = new ModalRef(overlayRef);\n const injector = this.createInjector(modalRef, this.injector, data);\n const portal = new ComponentPortal(ModuleWrapperComponent, null);\n this.componentInstance = overlayRef.attach(portal);\n if (options?.closeOnBackdropClick) {\n overlayRef.backdropClick().subscribe(() => modalRef.close());\n }\n this.componentInstance.instance.bindComponent(component, injector);\n return modalRef;\n }\n private createInjector<D>(ref: ModalRef, inj: Injector, data?: D): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(ModalRef, ref);\n injectorTokens.set(MODAL_DATA_VAR, data);\n return new PortalInjector(inj, injectorTokens);\n }\n\n private calculatePosition(options: IModalOptions) {\n const position = this.overlay.position().global().centerHorizontally().centerVertically();\n if (options && screen.width > 600) {\n if (options.top) {\n position.top(options.top);\n }\n if (options.left) {\n position.left(options.left);\n }\n if (options.right) {\n position.right(options.right);\n }\n if (options.bottom) {\n position.bottom(options.bottom);\n }\n }\n return position;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ModuleWrapperComponent } from './module-wrapper/module-wrapper.component';\nimport { ModalService } from './modal.service';\n\n\n\n@NgModule({\n declarations: [ModuleWrapperComponent],\n imports: [\n CommonModule,\n OverlayModule, \n PortalModule\n ],\n entryComponents: [ModuleWrapperComponent]\n})\nexport class ModalModule { \n static forRoot(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [ModalService],\n };\n }\n\n static forChild(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [ModalService],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ModuleWrapperComponent as ɵa} from './module-wrapper/module-wrapper.component';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mis-crystal-design-system-modal.js","sources":["../../../projects/mis-components/modal/modal-constants.ts","../../../projects/mis-components/modal/modal-ref.ts","../../../projects/mis-components/modal/module-wrapper/module-wrapper.component.ts","../../../projects/mis-components/modal/modal.service.ts","../../../projects/mis-components/modal/modal.module.ts","../../../projects/mis-components/modal/mis-crystal-design-system-modal.ts"],"sourcesContent":["/** @format */\n\nimport { InjectionToken } from \"@angular/core\";\n\nexport const MODAL_DATA_VAR = new InjectionToken<any>(\"MISModalDataInjectionToken\");\n","/** @format */\n\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class ModalRef {\n private afterClosed$ = new Subject<unknown>();\n afterClosed = this.afterClosed$.asObservable();\n\n constructor(public overlay: OverlayRef) {}\n\n close(data?: unknown): void {\n this.overlay.detach();\n this.overlay.dispose();\n this.afterClosed$.next(data);\n this.afterClosed$.complete();\n }\n}\n","import { trigger, transition, style, animate } from \"@angular/animations\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { Component, Injector, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { ModalRef } from \"../modal-ref\";\n\n@Component({\n selector: \"mis-module-wrapper\",\n templateUrl: \"./module-wrapper.component.html\",\n styleUrls: [\"./module-wrapper.component.scss\"],\n animations: [\n trigger(\"slideInOut\", [\n transition(\":enter\", [\n style({ transform: \"translateY(-30%)\", opacity: 0 }),\n animate(\"200ms ease-out\", style({ transform: \"translatey(0%)\", opacity: 1 }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ transform: \"translatey(-30%)\", opacity: 0 }))])\n ])\n ]\n})\nexport class ModuleWrapperComponent {\n modalPortal: ComponentPortal<any>;\n constructor() {}\n\n @ViewChild(\"place\", { static: false, read: ViewContainerRef }) place: ViewContainerRef;\n\n bindComponent(type: any, injector: PortalInjector) {\n this.initComponent(type, injector);\n }\n\n private initComponent(type: any, injector: PortalInjector) {\n this.modalPortal = new ComponentPortal(type, this.place, injector);\n }\n}\n","import { ComponentType, Overlay, OverlayConfig } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, PortalInjector } from \"@angular/cdk/portal\";\nimport { ComponentRef, Injectable, Injector } from \"@angular/core\";\nimport { MODAL_DATA_VAR } from \"./modal-constants\";\nimport { ModalRef } from \"./modal-ref\";\nimport { ModuleWrapperComponent } from \"./module-wrapper/module-wrapper.component\";\n\ninterface IModalOptions {\n width?: string;\n height?: string;\n top?: string;\n right?: string;\n bottom?: string;\n left?: string;\n closeOnBackdropClick?: boolean;\n}\n@Injectable({\n providedIn: \"root\"\n})\nexport class ModalService {\n private componentInstance: ComponentRef<ModuleWrapperComponent>;\n\n constructor(private overlay: Overlay, private injector: Injector) {}\n\n show<T, D>(component: ComponentType<T>, data?: D, options?: IModalOptions): ModalRef {\n const positionStrategy = this.calculatePosition(options);\n const { width, height } = options || {};\n const config = new OverlayConfig({\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n width: width,\n height,\n panelClass: \"mis-modal\",\n backdropClass: \"mis-modal-overlay\"\n });\n const overlayRef = this.overlay.create(config);\n const modalRef = new ModalRef(overlayRef);\n const injector = this.createInjector(modalRef, this.injector, data);\n const portal = new ComponentPortal(ModuleWrapperComponent, null);\n this.componentInstance = overlayRef.attach(portal);\n if (options?.closeOnBackdropClick) {\n overlayRef.backdropClick().subscribe(() => modalRef.close());\n }\n this.componentInstance.instance.bindComponent(component, injector);\n return modalRef;\n }\n private createInjector<D>(ref: ModalRef, inj: Injector, data?: D): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(ModalRef, ref);\n injectorTokens.set(MODAL_DATA_VAR, data);\n return new PortalInjector(inj, injectorTokens);\n }\n\n private calculatePosition(options: IModalOptions) {\n const position = this.overlay.position().global().centerHorizontally().centerVertically();\n if (options && screen.width > 600) {\n if (options.top) {\n position.top(options.top);\n }\n if (options.left) {\n position.left(options.left);\n }\n if (options.right) {\n position.right(options.right);\n }\n if (options.bottom) {\n position.bottom(options.bottom);\n }\n }\n return position;\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { ModuleWrapperComponent } from \"./module-wrapper/module-wrapper.component\";\nimport { ModalService } from \"./modal.service\";\n\n@NgModule({\n declarations: [ModuleWrapperComponent],\n imports: [CommonModule, OverlayModule, PortalModule],\n entryComponents: [ModuleWrapperComponent]\n})\nexport class ModalModule {\n static forRoot(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [ModalService]\n };\n }\n\n static forChild(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [ModalService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ModuleWrapperComponent as ɵa} from './module-wrapper/module-wrapper.component';"],"names":[],"mappings":"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"}