cmat 0.0.3 → 0.0.4

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 (266) hide show
  1. package/components/breadcrumb/breadcrumb.component.d.ts +18 -20
  2. package/components/card/card.component.d.ts +0 -5
  3. package/components/cascade/cascade-list/cascade-list.component.d.ts +12 -9
  4. package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
  5. package/components/chip-input/chip-input.component.d.ts +34 -0
  6. package/components/chip-input/index.d.ts +5 -0
  7. package/components/chip-input/public-api.d.ts +1 -0
  8. package/components/date-range/date-range.component.d.ts +3 -2
  9. package/components/json-editor/index.d.ts +5 -0
  10. package/components/json-editor/json-editor.component.d.ts +25 -0
  11. package/components/json-editor/public-api.d.ts +1 -0
  12. package/components/navigation/vertical/components/aside/aside.component.d.ts +2 -5
  13. package/components/navigation/vertical/components/basic/basic.component.d.ts +2 -5
  14. package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +2 -5
  15. package/components/navigation/vertical/components/divider/divider.component.d.ts +2 -5
  16. package/components/navigation/vertical/components/group/group.component.d.ts +2 -5
  17. package/components/navigation/vertical/components/spacer/spacer.component.d.ts +2 -5
  18. package/components/navigation/vertical/vertical.component.d.ts +1 -4
  19. package/components/progress-bar/progress-bar.component.d.ts +3 -2
  20. package/components/rating/rating.component.d.ts +3 -2
  21. package/components/select-search/select-search.component.d.ts +1 -2
  22. package/components/select-tree/select-tree.component.d.ts +5 -12
  23. package/components/timeline/timeline-item/timeline-item.component.d.ts +1 -1
  24. package/components/transfer-picker/interface.d.ts +1 -1
  25. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +4 -4
  26. package/components/transfer-picker/transfer-picker.service.d.ts +2 -1
  27. package/directives/autofocus/autofocus.directive.d.ts +1 -3
  28. package/directives/debounce/debounce-keyup.directive.d.ts +1 -1
  29. package/directives/digit-only/digit-only.directive.d.ts +2 -0
  30. package/esm2022/animations/dropdown.mjs +26 -0
  31. package/esm2022/animations/public-api.mjs +2 -2
  32. package/esm2022/components/adapter/dayjs-date-adapter.mjs +3 -3
  33. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +3 -3
  34. package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
  35. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  36. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +16 -17
  37. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +4 -4
  38. package/esm2022/components/card/card.component.mjs +5 -14
  39. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -6
  40. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +65 -39
  41. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -9
  42. package/esm2022/components/chip-input/chip-input.component.mjs +144 -0
  43. package/esm2022/components/chip-input/cmat-components-chip-input.mjs +5 -0
  44. package/esm2022/components/chip-input/public-api.mjs +2 -0
  45. package/esm2022/components/date-range/date-range.component.mjs +13 -9
  46. package/esm2022/components/drawer/drawer.component.mjs +4 -4
  47. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  48. package/esm2022/components/fullscreen/fullscreen.component.mjs +3 -3
  49. package/esm2022/components/highlight/highlight.component.mjs +3 -3
  50. package/esm2022/components/highlight/highlight.service.mjs +3 -3
  51. package/esm2022/components/json-editor/cmat-components-json-editor.mjs +5 -0
  52. package/esm2022/components/json-editor/json-editor.component.mjs +176 -0
  53. package/esm2022/components/json-editor/public-api.mjs +2 -0
  54. package/esm2022/components/masonry/masonry.component.mjs +3 -3
  55. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +6 -6
  56. package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -6
  57. package/esm2022/components/material-datetimepicker/calendar.mjs +7 -8
  58. package/esm2022/components/material-datetimepicker/clock.mjs +6 -6
  59. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +3 -3
  60. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  61. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +8 -9
  62. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +7 -7
  63. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -6
  64. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +3 -3
  65. package/esm2022/components/material-datetimepicker/time.mjs +8 -9
  66. package/esm2022/components/material-datetimepicker/year-view.mjs +3 -3
  67. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +6 -6
  68. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +7 -8
  69. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
  70. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
  71. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +5 -6
  72. package/esm2022/components/navigation/navigation.service.mjs +3 -3
  73. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +8 -17
  74. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +7 -15
  75. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +8 -19
  76. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +6 -15
  77. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +9 -19
  78. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +6 -15
  79. package/esm2022/components/navigation/vertical/vertical.component.mjs +7 -18
  80. package/esm2022/components/pagination/pagination.component.mjs +6 -7
  81. package/esm2022/components/pagination/pagination.directive.mjs +3 -3
  82. package/esm2022/components/pagination/pagination.pipe.mjs +5 -5
  83. package/esm2022/components/pagination/pagination.service.mjs +3 -3
  84. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +3 -3
  85. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +6 -6
  86. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +8 -9
  87. package/esm2022/components/popover/popover.component.mjs +5 -5
  88. package/esm2022/components/progress-bar/progress-bar.component.mjs +11 -8
  89. package/esm2022/components/rating/rating.component.mjs +14 -6
  90. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  91. package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
  92. package/esm2022/components/select-search/select-search.component.mjs +8 -11
  93. package/esm2022/components/select-tree/select-tree.component.mjs +13 -29
  94. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +18 -16
  95. package/esm2022/components/timeline/timeline.component.mjs +3 -3
  96. package/esm2022/components/toast/toast-modal.component.mjs +7 -7
  97. package/esm2022/components/toast/toast.component.mjs +6 -6
  98. package/esm2022/components/toast/toast.service.mjs +3 -3
  99. package/esm2022/components/transfer-picker/filter/filter.component.mjs +17 -8
  100. package/esm2022/components/transfer-picker/interface.mjs +1 -1
  101. package/esm2022/components/transfer-picker/search/search.component.mjs +9 -5
  102. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +44 -21
  103. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +7 -6
  104. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +9 -7
  105. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +10 -7
  106. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
  107. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  108. package/esm2022/directives/autofocus/autofocus.directive.mjs +7 -7
  109. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  110. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  111. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +5 -5
  112. package/esm2022/directives/digit-only/digit-only.directive.mjs +20 -4
  113. package/esm2022/directives/digit-only/mask.directive.mjs +3 -3
  114. package/esm2022/directives/digit-only/public-api.mjs +1 -1
  115. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
  116. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +3 -3
  117. package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
  118. package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
  119. package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
  120. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
  121. package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
  122. package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
  123. package/esm2022/pipes/secure/secure-pipe.mjs +5 -5
  124. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  125. package/esm2022/services/alert/alert.service.mjs +16 -16
  126. package/esm2022/services/config/config.constants.mjs +1 -1
  127. package/esm2022/services/config/config.service.mjs +3 -3
  128. package/esm2022/services/config/urlStateConfig.service.mjs +4 -4
  129. package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
  130. package/esm2022/services/confirmation/dialog/dialog.component.mjs +6 -6
  131. package/esm2022/services/data/data.service.mjs +4 -4
  132. package/esm2022/services/loading/loading.interceptor.mjs +3 -3
  133. package/esm2022/services/loading/loading.service.mjs +3 -3
  134. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  135. package/esm2022/services/media-watcher/media-watcher.service.mjs +3 -3
  136. package/esm2022/services/platform/platform.service.mjs +3 -3
  137. package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
  138. package/esm2022/services/title/title.service.mjs +3 -3
  139. package/esm2022/services/translation/translation.service.mjs +3 -3
  140. package/esm2022/services/utils/utils.service.mjs +3 -3
  141. package/fesm2022/cmat-animations.mjs.map +1 -1
  142. package/fesm2022/cmat-components-adapter.mjs +9 -9
  143. package/fesm2022/cmat-components-breadcrumb.mjs +21 -22
  144. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  145. package/fesm2022/cmat-components-card.mjs +4 -13
  146. package/fesm2022/cmat-components-card.mjs.map +1 -1
  147. package/fesm2022/cmat-components-cascade.mjs +72 -49
  148. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  149. package/fesm2022/cmat-components-chip-input.mjs +151 -0
  150. package/fesm2022/cmat-components-chip-input.mjs.map +1 -0
  151. package/fesm2022/cmat-components-date-range.mjs +12 -8
  152. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  153. package/fesm2022/cmat-components-drawer.mjs +7 -7
  154. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  155. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  156. package/fesm2022/cmat-components-highlight.mjs +6 -6
  157. package/fesm2022/cmat-components-json-editor.mjs +183 -0
  158. package/fesm2022/cmat-components-json-editor.mjs.map +1 -0
  159. package/fesm2022/cmat-components-masonry.mjs +3 -3
  160. package/fesm2022/cmat-components-material-color-picker.mjs +5 -5
  161. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  162. package/fesm2022/cmat-components-material-datetimepicker.mjs +51 -52
  163. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  164. package/fesm2022/cmat-components-navigation.mjs +58 -125
  165. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  166. package/fesm2022/cmat-components-pagination.mjs +15 -16
  167. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  168. package/fesm2022/cmat-components-password-strength.mjs +14 -15
  169. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  170. package/fesm2022/cmat-components-popover.mjs +4 -4
  171. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  172. package/fesm2022/cmat-components-progress-bar.mjs +10 -7
  173. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  174. package/fesm2022/cmat-components-rating.mjs +13 -5
  175. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  176. package/fesm2022/cmat-components-select-search.mjs +13 -16
  177. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  178. package/fesm2022/cmat-components-select-tree.mjs +12 -28
  179. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  180. package/fesm2022/cmat-components-timeline.mjs +21 -19
  181. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  182. package/fesm2022/cmat-components-toast.mjs +13 -13
  183. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  184. package/fesm2022/cmat-components-transfer-picker.mjs +81 -45
  185. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  186. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  187. package/fesm2022/cmat-directives-autofocus.mjs +6 -6
  188. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  189. package/fesm2022/cmat-directives-debounce.mjs +10 -10
  190. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  191. package/fesm2022/cmat-directives-digit-only.mjs +22 -6
  192. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  193. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  194. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  195. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  196. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  197. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  198. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  199. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  200. package/fesm2022/cmat-pipes-secure.mjs +4 -4
  201. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  202. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  203. package/fesm2022/cmat-services-alert.mjs +15 -15
  204. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  205. package/fesm2022/cmat-services-config.mjs +6 -6
  206. package/fesm2022/cmat-services-config.mjs.map +1 -1
  207. package/fesm2022/cmat-services-confirmation.mjs +8 -8
  208. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  209. package/fesm2022/cmat-services-data.mjs +3 -3
  210. package/fesm2022/cmat-services-data.mjs.map +1 -1
  211. package/fesm2022/cmat-services-loading.mjs +6 -6
  212. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  213. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  214. package/fesm2022/cmat-services-platform.mjs +3 -3
  215. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  216. package/fesm2022/cmat-services-title.mjs +3 -3
  217. package/fesm2022/cmat-services-translation.mjs +3 -3
  218. package/fesm2022/cmat-services-utils.mjs +3 -3
  219. package/package.json +75 -65
  220. package/pipes/secure/secure-pipe.d.ts +1 -1
  221. package/services/alert/alert.service.d.ts +4 -4
  222. package/services/config/config.constants.d.ts +1 -1
  223. package/services/config/urlStateConfig.service.d.ts +3 -2
  224. package/styles/components/bundle.scss +559 -0
  225. package/styles/overrides/angular-material.scss +16 -16
  226. package/styles/styles.scss +6 -1
  227. package/styles/tailwind.scss +4 -2
  228. package/components/breadcrumb/breadcrumb.component.scss +0 -18
  229. package/components/card/card.component.scss +0 -63
  230. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.scss +0 -43
  231. package/components/cascade/cascade-list/cascade-list.component.scss +0 -22
  232. package/components/cascade/cascade-menu/cascade-menu.component.scss +0 -48
  233. package/components/date-range/date-range.component.scss +0 -232
  234. package/components/drawer/drawer.component.scss +0 -133
  235. package/components/highlight/highlight.component.scss +0 -3
  236. package/components/material-color-picker/material-color-picker.component.scss +0 -5
  237. package/components/material-datetimepicker/calendar-body.scss +0 -58
  238. package/components/material-datetimepicker/calendar.scss +0 -194
  239. package/components/material-datetimepicker/clock.scss +0 -90
  240. package/components/material-datetimepicker/datetimepicker-content.scss +0 -151
  241. package/components/material-datetimepicker/datetimepicker.scss +0 -145
  242. package/components/material-datetimepicker/time.scss +0 -82
  243. package/components/navigation/horizontal/horizontal.component.scss +0 -167
  244. package/components/navigation/vertical/styles/appearances/compact.scss +0 -103
  245. package/components/navigation/vertical/styles/appearances/default.scss +0 -550
  246. package/components/navigation/vertical/styles/appearances/dense.scss +0 -171
  247. package/components/navigation/vertical/styles/appearances/thin.scss +0 -91
  248. package/components/navigation/vertical/vertical.component.scss +0 -4
  249. package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.scss +0 -19
  250. package/components/popover/popover.component.scss +0 -174
  251. package/components/progress-bar/progress-bar.component.scss +0 -7
  252. package/components/rating/rating.component.scss +0 -33
  253. package/components/select-search/select-search.component.scss +0 -126
  254. package/components/select-tree/select-tree.component.scss +0 -54
  255. package/components/timeline/timeline-item/timeline-item.component.scss +0 -329
  256. package/components/timeline/timeline.component.scss +0 -42
  257. package/components/toast/toast-modal.component.scss +0 -119
  258. package/components/toast/toast.component.scss +0 -62
  259. package/components/transfer-picker/filter/filter.component.scss +0 -40
  260. package/components/transfer-picker/search/search.component.scss +0 -7
  261. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.scss +0 -25
  262. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.scss +0 -27
  263. package/components/transfer-picker/transfer-picker.component.scss +0 -8
  264. package/esm2022/animations/drop.mjs +0 -26
  265. package/styles/main.scss +0 -9
  266. /package/animations/{drop.d.ts → dropdown.d.ts} +0 -0
@@ -1,4 +1,3 @@
1
- import { NgFor, NgIf } from '@angular/common';
2
1
  import { ChangeDetectionStrategy, Component, Optional, ViewEncapsulation } from '@angular/core';
3
2
  import { MatIconModule } from '@angular/material/icon';
4
3
  import { MatListModule } from '@angular/material/list';
@@ -11,19 +10,16 @@ export class CmatCascadeMenuComponent {
11
10
  constructor(root) {
12
11
  this.root = root;
13
12
  }
14
- clickHandle(event) {
15
- event.stopPropagation();
16
- }
17
13
  trackByFn(index, item) {
18
14
  return index || item;
19
15
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatCascadeMenuComponent, deps: [{ token: i1.CmatCascadeListComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatCascadeMenuComponent, isStandalone: true, selector: "cmat-cascade-menu", exportAs: ["cmatCascadeMenu"], ngImport: i0, template: "<div role=\"presentation\" class=\"cmat-cascade-menu\" [@dropdown]=\"root.menuVisible\" (click)=\"clickHandle($event)\">\r\n <mat-list class=\"menu-list overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n *ngFor=\"let menuItem of root.steps; let step = index;trackBy: trackByFn\">\r\n <mat-list-item *ngFor=\"let listItem of menuItem; let i = index;trackBy: trackByFn\" class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i);\">\r\n <div matLine>{{listItem.label}}</div>\r\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"\r\n *ngIf=\"listItem.children && listItem.children.length\"></mat-icon>\r\n </mat-list-item>\r\n </mat-list>\r\n</div>", styles: [".cmat-cascade-menu{z-index:2007;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;@apply absolute left-0 whitespace-nowrap bg-dialog;}.cmat-cascade-menu .menu-list{@apply inline-block border-r box-border m-0 p-2 overflow-hidden relative;height:204px;min-width:160px;vertical-align:top}.cmat-cascade-menu .menu-list:last-child{@apply border-r-0;}.cmat-cascade-menu .menu-item{@apply leading-loose h-12 p-0 relative whitespace-nowrap overflow-hidden text-ellipsis bg-dialog box-border cursor-pointer outline-none;}.cmat-cascade-menu .menu-item.disabled{@apply text-disabled cursor-not-allowed;}.cmat-cascade-menu .menu-item.active{@apply text-primary bg-hover;}.cmat-cascade-menu .menu-item:focus:not(:active),.cmat-cascade-menu .menu-item:hover{@apply bg-hover;}.cmat-cascade-menu .menu-item.active:hover{@apply bg-hover;}.cmat-cascade-menu .menu-item.selected{@apply text-secondary bg-default;}.cmat-cascade-menu .menu-item .item-icon{@apply absolute justify-items-center inset-y-2/4 right-0;transform:translateY(-50%)}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [cmatAnimations], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCascadeMenuComponent, deps: [{ token: i1.CmatCascadeListComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatCascadeMenuComponent, isStandalone: true, selector: "cmat-cascade-menu", exportAs: ["cmatCascadeMenu"], ngImport: i0, template: "@for (menuItem of root.steps; track trackByFn(step, menuItem); let step = $index) {\n <mat-list class=\"menu-list overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\n >\n @for (listItem of menuItem; track trackByFn(i, listItem); let i = $index) {\n <mat-list-item class=\"menu-item\"\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\n (click)=\"root.selectHandle($event, step, i);\">\n <div matLine>{{listItem.label}}</div>\n @if (listItem.children && listItem.children.length) {\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"\n ></mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n}", styles: ["cmat-cascade-menu{height:200px;z-index:2007;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;white-space:nowrap}cmat-cascade-menu .menu-list{display:inline-block;border-right-width:1px;box-sizing:border-box;margin:0;padding:.5rem;overflow:hidden;position:relative;height:200px;min-width:200px;vertical-align:top}cmat-cascade-menu .menu-list:last-child{border-right-width:0px}cmat-cascade-menu .menu-item{line-height:3rem;padding:0 16px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important}cmat-cascade-menu .menu-item.disabled{cursor:not-allowed!important}cmat-cascade-menu .menu-item .item-icon{position:absolute;justify-items:center;top:50%;bottom:50%;right:0;transform:translateY(-50%)}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [cmatAnimations], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
18
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatCascadeMenuComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatCascadeMenuComponent, decorators: [{
24
20
  type: Component,
25
- args: [{ selector: 'cmat-cascade-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeMenu', animations: [cmatAnimations], standalone: true, imports: [MatListModule, MatIconModule, NgFor, NgIf], template: "<div role=\"presentation\" class=\"cmat-cascade-menu\" [@dropdown]=\"root.menuVisible\" (click)=\"clickHandle($event)\">\r\n <mat-list class=\"menu-list overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n *ngFor=\"let menuItem of root.steps; let step = index;trackBy: trackByFn\">\r\n <mat-list-item *ngFor=\"let listItem of menuItem; let i = index;trackBy: trackByFn\" class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i);\">\r\n <div matLine>{{listItem.label}}</div>\r\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"\r\n *ngIf=\"listItem.children && listItem.children.length\"></mat-icon>\r\n </mat-list-item>\r\n </mat-list>\r\n</div>", styles: [".cmat-cascade-menu{z-index:2007;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;@apply absolute left-0 whitespace-nowrap bg-dialog;}.cmat-cascade-menu .menu-list{@apply inline-block border-r box-border m-0 p-2 overflow-hidden relative;height:204px;min-width:160px;vertical-align:top}.cmat-cascade-menu .menu-list:last-child{@apply border-r-0;}.cmat-cascade-menu .menu-item{@apply leading-loose h-12 p-0 relative whitespace-nowrap overflow-hidden text-ellipsis bg-dialog box-border cursor-pointer outline-none;}.cmat-cascade-menu .menu-item.disabled{@apply text-disabled cursor-not-allowed;}.cmat-cascade-menu .menu-item.active{@apply text-primary bg-hover;}.cmat-cascade-menu .menu-item:focus:not(:active),.cmat-cascade-menu .menu-item:hover{@apply bg-hover;}.cmat-cascade-menu .menu-item.active:hover{@apply bg-hover;}.cmat-cascade-menu .menu-item.selected{@apply text-secondary bg-default;}.cmat-cascade-menu .menu-item .item-icon{@apply absolute justify-items-center inset-y-2/4 right-0;transform:translateY(-50%)}\n"] }]
21
+ args: [{ selector: 'cmat-cascade-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeMenu', animations: [cmatAnimations], standalone: true, imports: [MatListModule, MatIconModule], template: "@for (menuItem of root.steps; track trackByFn(step, menuItem); let step = $index) {\n <mat-list class=\"menu-list overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\n >\n @for (listItem of menuItem; track trackByFn(i, listItem); let i = $index) {\n <mat-list-item class=\"menu-item\"\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\n (click)=\"root.selectHandle($event, step, i);\">\n <div matLine>{{listItem.label}}</div>\n @if (listItem.children && listItem.children.length) {\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"\n ></mat-icon>\n }\n </mat-list-item>\n }\n </mat-list>\n}", styles: ["cmat-cascade-menu{height:200px;z-index:2007;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;white-space:nowrap}cmat-cascade-menu .menu-list{display:inline-block;border-right-width:1px;box-sizing:border-box;margin:0;padding:.5rem;overflow:hidden;position:relative;height:200px;min-width:200px;vertical-align:top}cmat-cascade-menu .menu-list:last-child{border-right-width:0px}cmat-cascade-menu .menu-item{line-height:3rem;padding:0 16px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important}cmat-cascade-menu .menu-item.disabled{cursor:not-allowed!important}cmat-cascade-menu .menu-item .item-icon{position:absolute;justify-items:center;top:50%;bottom:50%;right:0;transform:translateY(-50%)}\n"] }]
26
22
  }], ctorParameters: () => [{ type: i1.CmatCascadeListComponent, decorators: [{
27
23
  type: Optional
28
24
  }] }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jYXNjYWRlL2Nhc2NhZGUtbWVudS9jYXNjYWRlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2Nhc2NhZGUvY2FzY2FkZS1tZW51L2Nhc2NhZGUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQWFqRCxNQUFNLE9BQU8sd0JBQXdCO0lBRWpDLFlBQ3VCLElBQThCO1FBQTlCLFNBQUksR0FBSixJQUFJLENBQTBCO0lBR3JELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWTtRQUNwQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUM5QixPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDekIsQ0FBQzs4R0FkUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw0R0NsQnJDLDgyQkFXTSxzbENES1EsYUFBYSx1UkFBRSxhQUFhLG9MQUFFLEtBQUssbUhBQUUsSUFBSSwrRUFGdkMsQ0FBQyxjQUFjLENBQUM7OzJGQUluQix3QkFBd0I7a0JBWHBDLFNBQVM7K0JBQ0ksbUJBQW1CLGlCQUdkLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsaUJBQWlCLGNBQ2YsQ0FBQyxjQUFjLENBQUMsY0FDaEIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDOzswQkFLL0MsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT3B0aW9uYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jYXNjYWRlLWxpc3QvY2FzY2FkZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGNtYXRBbmltYXRpb25zIH0gZnJvbSAnY21hdC9hbmltYXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LWNhc2NhZGUtbWVudScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FzY2FkZS1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Nhc2NhZGUtbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0Q2FzY2FkZU1lbnUnLFxyXG4gICAgYW5pbWF0aW9uczogW2NtYXRBbmltYXRpb25zXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0TGlzdE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTmdGb3IsIE5nSWZdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FzY2FkZU1lbnVDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyByb290OiBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQsXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tIYW5kbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4IHx8IGl0ZW07XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJjbWF0LWNhc2NhZGUtbWVudVwiIFtAZHJvcGRvd25dPVwicm9vdC5tZW51VmlzaWJsZVwiIChjbGljayk9XCJjbGlja0hhbmRsZSgkZXZlbnQpXCI+XHJcbiAgICA8bWF0LWxpc3QgY2xhc3M9XCJtZW51LWxpc3Qgb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgbWVudUl0ZW0gb2Ygcm9vdC5zdGVwczsgbGV0IHN0ZXAgPSBpbmRleDt0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgbGlzdEl0ZW0gb2YgbWVudUl0ZW07IGxldCBpID0gaW5kZXg7dHJhY2tCeTogdHJhY2tCeUZuXCIgY2xhc3M9XCJtZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImxpc3RJdGVtLmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJsaXN0SXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJyb290LnNlbGVjdEhhbmRsZSgkZXZlbnQsIHN0ZXAsIGkpO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IG1hdExpbmU+e3tsaXN0SXRlbS5sYWJlbH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIml0ZW0taWNvblwiIFtzdmdJY29uXT1cIidtYXRfb3V0bGluZTpjaGV2cm9uX3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxpc3RJdGVtLmNoaWxkcmVuICYmIGxpc3RJdGVtLmNoaWxkcmVuLmxlbmd0aFwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgPC9tYXQtbGlzdD5cclxuPC9kaXY+Il19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jYXNjYWRlL2Nhc2NhZGUtbWVudS9jYXNjYWRlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2Nhc2NhZGUvY2FzY2FkZS1tZW51L2Nhc2NhZGUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFhakQsTUFBTSxPQUFPLHdCQUF3QjtJQUVqQyxZQUN1QixJQUE4QjtRQUE5QixTQUFJLEdBQUosSUFBSSxDQUEwQjtJQUdyRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQzlCLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQztJQUN6QixDQUFDOzhHQVZRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDRHQ2xCckMseXVCQWVDLG0xQkRDYSxhQUFhLHVSQUFFLGFBQWEsc0tBRjFCLENBQUMsY0FBYyxDQUFDOzsyRkFJbkIsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNJLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQixjQUNmLENBQUMsY0FBYyxDQUFDLGNBQ2hCLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7OzBCQUtsQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgQ21hdENhc2NhZGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2FzY2FkZS1saXN0L2Nhc2NhZGUtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBjbWF0QW5pbWF0aW9ucyB9IGZyb20gJ2NtYXQvYW5pbWF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1jYXNjYWRlLW1lbnUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhc2NhZGUtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXNjYWRlLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGV4cG9ydEFzOiAnY21hdENhc2NhZGVNZW51JyxcclxuICAgIGFuaW1hdGlvbnM6IFtjbWF0QW5pbWF0aW9uc10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdExpc3RNb2R1bGUsIE1hdEljb25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FzY2FkZU1lbnVDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyByb290OiBDbWF0Q2FzY2FkZUxpc3RDb21wb25lbnQsXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4IHx8IGl0ZW07XHJcbiAgICB9XHJcbn1cclxuIiwiQGZvciAobWVudUl0ZW0gb2Ygcm9vdC5zdGVwczsgdHJhY2sgdHJhY2tCeUZuKHN0ZXAsIG1lbnVJdGVtKTsgbGV0IHN0ZXAgPSAkaW5kZXgpIHtcbiAgPG1hdC1saXN0IGNsYXNzPVwibWVudS1saXN0IG92ZXJmbG93LXktYXV0byBsZzpvdmVyZmxvdy15LWhpZGRlbiBsZzpob3ZlcjpvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWN1c3RvbVwiXG4gICAgPlxuICAgIEBmb3IgKGxpc3RJdGVtIG9mIG1lbnVJdGVtOyB0cmFjayB0cmFja0J5Rm4oaSwgbGlzdEl0ZW0pOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgPG1hdC1saXN0LWl0ZW0gY2xhc3M9XCJtZW51LWl0ZW1cIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImxpc3RJdGVtLmFjdGl2ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJsaXN0SXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJyb290LnNlbGVjdEhhbmRsZSgkZXZlbnQsIHN0ZXAsIGkpO1wiPlxuICAgICAgICA8ZGl2IG1hdExpbmU+e3tsaXN0SXRlbS5sYWJlbH19PC9kaXY+XG4gICAgICAgIEBpZiAobGlzdEl0ZW0uY2hpbGRyZW4gJiYgbGlzdEl0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaXRlbS1pY29uXCIgW3N2Z0ljb25dPVwiJ21hdF9vdXRsaW5lOmNoZXZyb25fcmlnaHQnXCJcbiAgICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIH1cbiAgPC9tYXQtbGlzdD5cbn0iXX0=
@@ -0,0 +1,144 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';
2
+ import { FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
3
+ import { BehaviorSubject, Subject, debounceTime, map, startWith, takeUntil } from 'rxjs';
4
+ import { COMMA, ENTER } from '@angular/cdk/keycodes';
5
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
6
+ import { MatChipsModule } from '@angular/material/chips';
7
+ import { isArray, isEmpty, isNil } from 'lodash';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import { MatInputModule } from '@angular/material/input';
10
+ import { MatIconModule } from '@angular/material/icon';
11
+ import { AsyncPipe } from '@angular/common';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/material/form-field";
14
+ import * as i2 from "@angular/material/chips";
15
+ import * as i3 from "@angular/material/input";
16
+ import * as i4 from "@angular/material/autocomplete";
17
+ import * as i5 from "@angular/material/core";
18
+ import * as i6 from "@angular/material/icon";
19
+ import * as i7 from "@angular/forms";
20
+ export class CmatChipInputComponent {
21
+ constructor() {
22
+ this.hasAutocomplete = false;
23
+ this.outputIsString = false;
24
+ this.separatorKey = ',';
25
+ this.inputControl = new FormControl();
26
+ this.selectedOptions$ = new BehaviorSubject([]);
27
+ this.separatorKeysCodes = [ENTER, COMMA];
28
+ this._maxFilteredItems = 50;
29
+ this._unsubscribeAll = new Subject();
30
+ this._onModelChange = () => { };
31
+ this._onTouchedChange = () => { };
32
+ this.filteredOptions$ = this.inputControl.valueChanges.pipe(startWith(null), takeUntil(this._unsubscribeAll), debounceTime(100), map((value) => {
33
+ if (this.hasAutocomplete) {
34
+ const selectable = (value ? this._filter(value) : this.selectableOptions.slice());
35
+ const notSelected = !isNil(this.selectedOptions$.value) ? selectable.filter(option => !this.selectedOptions$.value.includes(option)) : selectable;
36
+ return notSelected.slice(0, this._maxFilteredItems);
37
+ }
38
+ return null;
39
+ }));
40
+ }
41
+ ngOnDestroy() {
42
+ this._unsubscribeAll.next(void 0);
43
+ this._unsubscribeAll.complete();
44
+ }
45
+ registerOnChange(fn) {
46
+ this._onModelChange = fn;
47
+ }
48
+ registerOnTouched(fn) {
49
+ this._onTouchedChange = fn;
50
+ }
51
+ writeValue(value) {
52
+ if (isArray(value) || isNil(value))
53
+ this.selectedOptions$.next(value);
54
+ else if (isEmpty(value)) {
55
+ this.selectedOptions$.next([]);
56
+ }
57
+ else {
58
+ this.selectedOptions$.next(value.split(this.separatorKey));
59
+ }
60
+ this.inputControl.setValue(null);
61
+ }
62
+ onAdd(event) {
63
+ const value = (event.value || '').trim();
64
+ if (value && (!this.hasAutocomplete || this.selectableOptions.includes(value))) {
65
+ const newValue = isNil(this.selectedOptions$.value) ? [value] : [...this.selectedOptions$.value, value];
66
+ this.selectedOptions$.next(newValue);
67
+ if (this.outputIsString) {
68
+ this._onModelChange(newValue.join(this.separatorKey));
69
+ }
70
+ else {
71
+ this._onModelChange(newValue);
72
+ }
73
+ }
74
+ event.chipInput.clear();
75
+ this.inputControl.setValue(null);
76
+ }
77
+ onRemove(option) {
78
+ const index = this.selectedOptions$.value.indexOf(option);
79
+ if (index >= 0) {
80
+ let newOptions = [...this.selectedOptions$.value];
81
+ newOptions.splice(index, 1);
82
+ newOptions = newOptions.length > 0 ? newOptions : [];
83
+ this.selectedOptions$.next(newOptions);
84
+ if (this.outputIsString && !isNil(newOptions)) {
85
+ this._onModelChange(newOptions.join(this.separatorKey));
86
+ }
87
+ else {
88
+ this._onModelChange(newOptions);
89
+ }
90
+ this.inputControl.setValue(null);
91
+ }
92
+ }
93
+ onSelected(event) {
94
+ const newValue = isNil(this.selectedOptions$.value) ? [event.option.viewValue] : [...this.selectedOptions$.value, event.option.viewValue];
95
+ this.selectedOptions$.next(newValue);
96
+ if (this.outputIsString) {
97
+ this._onModelChange(newValue.join(this.separatorKey));
98
+ }
99
+ else {
100
+ this._onModelChange(newValue);
101
+ }
102
+ this.inputElementRef.nativeElement.value = '';
103
+ this.inputControl.setValue(null);
104
+ }
105
+ trackByFn(index) {
106
+ return index;
107
+ }
108
+ _filter(value) {
109
+ const filterValue = value.toLowerCase();
110
+ return this.selectableOptions.filter(v => v.toLowerCase().includes(filterValue));
111
+ }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatChipInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatChipInputComponent, isStandalone: true, selector: "cmat-chip-input", inputs: { label: "label", selectableOptions: "selectableOptions", hasAutocomplete: "hasAutocomplete", outputIsString: "outputIsString", separatorKey: "separatorKey" }, providers: [
114
+ {
115
+ provide: NG_VALUE_ACCESSOR,
116
+ useExisting: forwardRef(() => CmatChipInputComponent),
117
+ multi: true
118
+ }
119
+ ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["input"], descendants: true }], exportAs: ["cmatChipInput"], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"w-full\">\n <mat-label>{{label}}</mat-label>\n <mat-chip-grid #chipList class=\"items-center\">\n @for (option of selectedOptions$ | async; track trackByFn($index)) {\n <mat-chip-row selectable (removed)=\"onRemove(option)\">\n {{ option }}\n <button matChipRemove>\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_solid:cancel'\"></mat-icon>\n </button>\n </mat-chip-row>\n }\n\n @if (hasAutocomplete) {\n <input #input matInput [formControl]=\"inputControl\" [placeholder]=\"'\u5F00\u59CB\u9009\u62E9...'\"\n [matAutocomplete]=\"autoComplete\" [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"onAdd($event)\" />\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"onSelected($event)\">\n @for (option of filteredOptions$ | async; track trackByFn($index)) {\n <mat-option [value]=\"option\">\n {{ option }}\n </mat-option>\n }\n </mat-autocomplete>\n } @else {\n <input #input [formControl]=\"inputControl\" [placeholder]=\"'\u5F00\u59CB\u586B\u5199...'\" [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"onAdd($event)\" />\n }\n </mat-chip-grid>\n\n </mat-form-field>\n\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i2.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i2.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i2.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
120
+ }
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatChipInputComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ selector: 'cmat-chip-input', standalone: true, providers: [
124
+ {
125
+ provide: NG_VALUE_ACCESSOR,
126
+ useExisting: forwardRef(() => CmatChipInputComponent),
127
+ multi: true
128
+ }
129
+ ], exportAs: 'cmatChipInput', imports: [MatFormFieldModule, MatChipsModule, AsyncPipe, MatInputModule, MatAutocompleteModule, MatIconModule, FormsModule, ReactiveFormsModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"w-full\">\n <mat-label>{{label}}</mat-label>\n <mat-chip-grid #chipList class=\"items-center\">\n @for (option of selectedOptions$ | async; track trackByFn($index)) {\n <mat-chip-row selectable (removed)=\"onRemove(option)\">\n {{ option }}\n <button matChipRemove>\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_solid:cancel'\"></mat-icon>\n </button>\n </mat-chip-row>\n }\n\n @if (hasAutocomplete) {\n <input #input matInput [formControl]=\"inputControl\" [placeholder]=\"'\u5F00\u59CB\u9009\u62E9...'\"\n [matAutocomplete]=\"autoComplete\" [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"onAdd($event)\" />\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"onSelected($event)\">\n @for (option of filteredOptions$ | async; track trackByFn($index)) {\n <mat-option [value]=\"option\">\n {{ option }}\n </mat-option>\n }\n </mat-autocomplete>\n } @else {\n <input #input [formControl]=\"inputControl\" [placeholder]=\"'\u5F00\u59CB\u586B\u5199...'\" [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"onAdd($event)\" />\n }\n </mat-chip-grid>\n\n </mat-form-field>\n\n" }]
130
+ }], ctorParameters: () => [], propDecorators: { inputElementRef: [{
131
+ type: ViewChild,
132
+ args: ['input']
133
+ }], label: [{
134
+ type: Input
135
+ }], selectableOptions: [{
136
+ type: Input
137
+ }], hasAutocomplete: [{
138
+ type: Input
139
+ }], outputIsString: [{
140
+ type: Input
141
+ }], separatorKey: [{
142
+ type: Input
143
+ }] } });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY2hpcC1pbnB1dC9jaGlwLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jaGlwLWlucHV0L2NoaXAtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckcsT0FBTyxFQUFxQixjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7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QU87Z0JBQ1QsS0FBSztzQkFBYixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50LCBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1jaGlwLWlucHV0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGlwLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbWF0Q2hpcElucHV0Q29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0Q2hpcElucHV0JyxcclxuICAgIGltcG9ydHM6IFtNYXRGb3JtRmllbGRNb2R1bGUsIE1hdENoaXBzTW9kdWxlLEFzeW5jUGlwZSwgTWF0SW5wdXRNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2hpcElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0RWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RhYmxlT3B0aW9uczogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBoYXNBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG91dHB1dElzU3RyaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXBhcmF0b3JLZXk6IHN0cmluZyA9ICcsJztcclxuXHJcbiAgICBpbnB1dENvbnRyb2w6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgICBmaWx0ZXJlZE9wdGlvbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdIHwgbnVsbD47XHJcbiAgICBzZWxlY3RlZE9wdGlvbnMkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XHJcbiAgICBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWF4RmlsdGVyZWRJdGVtcyA9IDUwO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyQgPSB0aGlzLmlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpLFxyXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcclxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzQXV0b2NvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9ICh2YWx1ZSA/IHRoaXMuX2ZpbHRlcih2YWx1ZSkgOiB0aGlzLnNlbGVjdGFibGVPcHRpb25zLnNsaWNlKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vdFNlbGVjdGVkID0gIWlzTmlsKHRoaXMuc2VsZWN0ZWRPcHRpb25zJC52YWx1ZSkgPyBzZWxlY3RhYmxlLmZpbHRlcihvcHRpb24gPT4gIXRoaXMuc2VsZWN0ZWRPcHRpb25zJC52YWx1ZS5pbmNsdWRlcyhvcHRpb24pKSA6IHNlbGVjdGFibGU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub3RTZWxlY3RlZC5zbGljZSgwLCB0aGlzLl9tYXhGaWx0ZXJlZEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vbk1vZGVsQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZENoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSB8fCBpc05pbCh2YWx1ZSkpXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zJC5uZXh0KHZhbHVlKTtcclxuICAgICAgICBlbHNlIGlmIChpc0VtcHR5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyQubmV4dChbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyQubmV4dCgodmFsdWUgYXMgc3RyaW5nKS5zcGxpdCh0aGlzLnNlcGFyYXRvcktleSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25BZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudmFsdWUgfHwgJycpLnRyaW0oKTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlICYmICghdGhpcy5oYXNBdXRvY29tcGxldGUgfHwgdGhpcy5zZWxlY3RhYmxlT3B0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaXNOaWwodGhpcy5zZWxlY3RlZE9wdGlvbnMkLnZhbHVlKSA/IFt2YWx1ZV0gOiBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnMkLnZhbHVlLCB2YWx1ZV07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zJC5uZXh0KG5ld1ZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm91dHB1dElzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbk1vZGVsQ2hhbmdlKG5ld1ZhbHVlLmpvaW4odGhpcy5zZXBhcmF0b3JLZXkpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uTW9kZWxDaGFuZ2UobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBldmVudC5jaGlwSW5wdXQhLmNsZWFyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVtb3ZlKG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zJC52YWx1ZS5pbmRleE9mKG9wdGlvbik7XHJcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgbGV0IG5ld09wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnMkLnZhbHVlXTtcclxuICAgICAgICAgICAgbmV3T3B0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICBuZXdPcHRpb25zID0gbmV3T3B0aW9ucy5sZW5ndGggPiAwID8gbmV3T3B0aW9ucyA6IFtdO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMkLm5leHQobmV3T3B0aW9ucyk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5vdXRwdXRJc1N0cmluZyAmJiAhaXNOaWwobmV3T3B0aW9ucykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uTW9kZWxDaGFuZ2UobmV3T3B0aW9ucy5qb2luKHRoaXMuc2VwYXJhdG9yS2V5KSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbk1vZGVsQ2hhbmdlKG5ld09wdGlvbnMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gaXNOaWwodGhpcy5zZWxlY3RlZE9wdGlvbnMkLnZhbHVlKSA/IFtldmVudC5vcHRpb24udmlld1ZhbHVlXSA6IFsuLi50aGlzLnNlbGVjdGVkT3B0aW9ucyQudmFsdWUsIGV2ZW50Lm9wdGlvbi52aWV3VmFsdWVdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zJC5uZXh0KG5ld1ZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMub3V0cHV0SXNTdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25Nb2RlbENoYW5nZShuZXdWYWx1ZS5qb2luKHRoaXMuc2VwYXJhdG9yS2V5KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fb25Nb2RlbENoYW5nZShuZXdWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vbk1vZGVsQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHsgfTtcclxuICAgIHByaXZhdGUgX29uVG91Y2hlZENoYW5nZTogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbHRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZU9wdGlvbnMuZmlsdGVyKHYgPT4gdi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XHJcbiAgICB9XHJcbn0iLCI8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiIGNsYXNzPVwidy1mdWxsXCI+XG4gIDxtYXQtbGFiZWw+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gIDxtYXQtY2hpcC1ncmlkICNjaGlwTGlzdCBjbGFzcz1cIml0ZW1zLWNlbnRlclwiPlxuICAgIEBmb3IgKG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnMkIHwgYXN5bmM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XG4gICAgICA8bWF0LWNoaXAtcm93IHNlbGVjdGFibGUgKHJlbW92ZWQpPVwib25SZW1vdmUob3B0aW9uKVwiPlxuICAgICAgICB7eyBvcHRpb24gfX1cbiAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgIFtzdmdJY29uXT1cIidtYXRfc29saWQ6Y2FuY2VsJ1wiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgfVxuXG4gICAgQGlmIChoYXNBdXRvY29tcGxldGUpIHtcbiAgICAgIDxpbnB1dCAjaW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiIFtwbGFjZWhvbGRlcl09XCIn5byA5aeL6YCJ5oupLi4uJ1wiXG4gICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCIgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXG4gICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIiAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwib25BZGQoJGV2ZW50KVwiIC8+XG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvQ29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgQGZvciAob3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucyQgfCBhc3luYzsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgICAge3sgb3B0aW9uIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGlucHV0ICNpbnB1dCBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDb250cm9sXCIgW3BsYWNlaG9sZGVyXT1cIiflvIDlp4vloavlhpkuLi4nXCIgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXG4gICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJvbkFkZCgkZXZlbnQpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtY2hpcC1ncmlkPlxuXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21hdC1jb21wb25lbnRzLWNoaXAtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY2hpcC1pbnB1dC9jbWF0LWNvbXBvbmVudHMtY2hpcC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './chip-input.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jaGlwLWlucHV0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hpcC1pbnB1dC5jb21wb25lbnQnO1xyXG4iXX0=