cmat 0.0.7 → 0.0.8

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 (310) hide show
  1. package/components/adapter/dayjs-datetime-adapter.d.ts +1 -1
  2. package/components/breadcrumb/breadcrumb.service.d.ts +1 -1
  3. package/components/card/card.component.d.ts +1 -1
  4. package/components/cascade/cascade-list/cascade-list.component.d.ts +45 -21
  5. package/components/chip-input/chip-input.component.d.ts +39 -12
  6. package/components/custom-formly/extension/addons.extension.d.ts +2 -0
  7. package/components/custom-formly/index.d.ts +5 -0
  8. package/components/custom-formly/public-api.d.ts +21 -0
  9. package/components/custom-formly/types/button/button.component.d.ts +18 -0
  10. package/components/custom-formly/types/checklist/checklist.component.d.ts +41 -0
  11. package/components/custom-formly/types/chips/chips.component.d.ts +27 -0
  12. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +44 -0
  13. package/components/custom-formly/types/number/number.component.d.ts +20 -0
  14. package/components/custom-formly/types/radio/radio.component.d.ts +44 -0
  15. package/components/custom-formly/types/rating/rating.component.d.ts +24 -0
  16. package/components/custom-formly/types/repeat/repeat.component.d.ts +16 -0
  17. package/components/custom-formly/types/select/select.component.d.ts +54 -0
  18. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +43 -0
  19. package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +9 -0
  20. package/components/custom-formly/types/stepper/stepper.type.d.ts +6 -0
  21. package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +9 -0
  22. package/components/custom-formly/types/table/table.component.d.ts +43 -0
  23. package/components/custom-formly/types/tabs/tab.component.d.ts +8 -0
  24. package/components/custom-formly/types/tags/tags.component.d.ts +41 -0
  25. package/components/custom-formly/types/textarea/textarea.component.d.ts +13 -0
  26. package/components/custom-formly/wrappers/addons/addons.component.d.ts +10 -0
  27. package/components/custom-formly/wrappers/card/card.component.d.ts +6 -0
  28. package/components/custom-formly/wrappers/expansion/expansion.component.d.ts +6 -0
  29. package/components/custom-formly/wrappers/panel/panel.component.d.ts +6 -0
  30. package/components/date-range/date-range.component.d.ts +8 -6
  31. package/components/drawer/drawer.component.d.ts +2 -2
  32. package/components/fullscreen/fullscreen.component.d.ts +2 -9
  33. package/components/fullscreen/public-api.d.ts +0 -1
  34. package/components/material-color-picker/material-color-picker.component.d.ts +8 -4
  35. package/components/material-datetimepicker/calendar.d.ts +2 -2
  36. package/components/material-datetimepicker/clock.d.ts +1 -1
  37. package/components/material-datetimepicker/datetimepicker-input.d.ts +1 -1
  38. package/components/material-datetimepicker/datetimepicker-toggle.d.ts +1 -1
  39. package/components/material-datetimepicker/datetimepicker.d.ts +5 -10
  40. package/components/material-datetimepicker/month-view.d.ts +1 -2
  41. package/components/material-datetimepicker/multi-year-view.d.ts +1 -1
  42. package/components/material-datetimepicker/time.d.ts +2 -2
  43. package/components/material-datetimepicker/year-view.d.ts +1 -1
  44. package/components/navigation/horizontal/components/basic/basic.component.d.ts +1 -1
  45. package/components/navigation/horizontal/components/branch/branch.component.d.ts +1 -1
  46. package/components/navigation/horizontal/horizontal.component.d.ts +2 -2
  47. package/components/navigation/vertical/components/aside/aside.component.d.ts +1 -1
  48. package/components/navigation/vertical/components/basic/basic.component.d.ts +1 -7
  49. package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +1 -1
  50. package/components/navigation/vertical/components/group/group.component.d.ts +1 -1
  51. package/components/navigation/vertical/vertical.component.d.ts +5 -5
  52. package/components/popover/popover-trigger.d.ts +1 -1
  53. package/components/popover/popover.component.d.ts +3 -3
  54. package/components/rating/rating.component.d.ts +38 -9
  55. package/components/select-search/select-search.component.d.ts +4 -4
  56. package/components/select-tree/select-tree.component.d.ts +50 -21
  57. package/components/toast/toast.component.d.ts +4 -4
  58. package/components/transfer-picker/filter/filter.component.d.ts +1 -1
  59. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
  60. package/components/transfer-picker/transfer-picker.component.d.ts +1 -1
  61. package/components/upload/files.type.d.ts +22 -0
  62. package/components/upload/files.util.service.d.ts +20 -0
  63. package/components/upload/index.d.ts +5 -0
  64. package/components/upload/public-api.d.ts +4 -0
  65. package/components/upload/upload-queue/upload-queue.component.d.ts +39 -0
  66. package/components/upload/upload.component.d.ts +32 -0
  67. package/esm2022/animations/public-api.mjs +2 -2
  68. package/esm2022/components/adapter/dayjs-date-adapter.mjs +6 -6
  69. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +5 -5
  70. package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
  71. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  72. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
  73. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +5 -5
  74. package/esm2022/components/card/card.component.mjs +5 -5
  75. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +7 -7
  76. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +207 -114
  77. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +4 -4
  78. package/esm2022/components/chip-input/chip-input.component.mjs +152 -49
  79. package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +5 -0
  80. package/esm2022/components/custom-formly/extension/addons.extension.mjs +13 -0
  81. package/esm2022/components/custom-formly/public-api.mjs +22 -0
  82. package/esm2022/components/custom-formly/types/button/button.component.mjs +39 -0
  83. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +161 -0
  84. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +55 -0
  85. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +89 -0
  86. package/esm2022/components/custom-formly/types/number/number.component.mjs +27 -0
  87. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +88 -0
  88. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +27 -0
  89. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +28 -0
  90. package/esm2022/components/custom-formly/types/select/select.component.mjs +169 -0
  91. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +66 -0
  92. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +31 -0
  93. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +2 -0
  94. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +31 -0
  95. package/esm2022/components/custom-formly/types/table/table.component.mjs +116 -0
  96. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +19 -0
  97. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +149 -0
  98. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +25 -0
  99. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +92 -0
  100. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +14 -0
  101. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +14 -0
  102. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +12 -0
  103. package/esm2022/components/date-range/date-range.component.mjs +26 -17
  104. package/esm2022/components/drawer/drawer.component.mjs +5 -5
  105. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  106. package/esm2022/components/fullscreen/fullscreen.component.mjs +16 -73
  107. package/esm2022/components/fullscreen/public-api.mjs +1 -2
  108. package/esm2022/components/highlight/highlight.component.mjs +5 -5
  109. package/esm2022/components/highlight/highlight.service.mjs +3 -3
  110. package/esm2022/components/json-editor/json-editor.component.mjs +3 -3
  111. package/esm2022/components/masonry/masonry.component.mjs +5 -5
  112. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +22 -12
  113. package/esm2022/components/material-datetimepicker/calendar-body.mjs +3 -3
  114. package/esm2022/components/material-datetimepicker/calendar.mjs +11 -12
  115. package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
  116. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -5
  117. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  118. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
  119. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +17 -22
  120. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -6
  121. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +7 -8
  122. package/esm2022/components/material-datetimepicker/time.mjs +8 -8
  123. package/esm2022/components/material-datetimepicker/year-view.mjs +7 -8
  124. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +8 -8
  125. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +8 -8
  126. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +5 -5
  127. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +6 -6
  128. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +6 -6
  129. package/esm2022/components/navigation/navigation.service.mjs +3 -3
  130. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +11 -11
  131. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +7 -24
  132. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +10 -10
  133. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +5 -5
  134. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +9 -9
  135. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +6 -6
  136. package/esm2022/components/navigation/vertical/vertical.component.mjs +11 -11
  137. package/esm2022/components/pagination/pagination.component.mjs +10 -10
  138. package/esm2022/components/pagination/pagination.directive.mjs +4 -4
  139. package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
  140. package/esm2022/components/pagination/pagination.service.mjs +3 -3
  141. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +6 -6
  142. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +5 -5
  143. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +6 -6
  144. package/esm2022/components/popover/popover-trigger.mjs +5 -5
  145. package/esm2022/components/popover/popover.component.mjs +8 -9
  146. package/esm2022/components/popover/popover.target.mjs +3 -3
  147. package/esm2022/components/progress-bar/progress-bar.component.mjs +6 -6
  148. package/esm2022/components/rating/rating.component.mjs +122 -23
  149. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  150. package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
  151. package/esm2022/components/select-search/select-search.component.mjs +15 -15
  152. package/esm2022/components/select-tree/select-tree.component.mjs +281 -157
  153. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
  154. package/esm2022/components/timeline/timeline.component.mjs +5 -5
  155. package/esm2022/components/toast/toast-modal.component.mjs +5 -5
  156. package/esm2022/components/toast/toast.component.mjs +6 -6
  157. package/esm2022/components/toast/toast.service.mjs +3 -3
  158. package/esm2022/components/transfer-picker/filter/filter.component.mjs +9 -9
  159. package/esm2022/components/transfer-picker/search/search.component.mjs +6 -6
  160. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +11 -11
  161. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
  162. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +7 -7
  163. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
  164. package/esm2022/components/upload/cmat-components-upload.mjs +5 -0
  165. package/esm2022/components/upload/files.type.mjs +2 -0
  166. package/esm2022/components/upload/files.util.service.mjs +100 -0
  167. package/esm2022/components/upload/public-api.mjs +5 -0
  168. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +154 -0
  169. package/esm2022/components/upload/upload.component.mjs +118 -0
  170. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
  171. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  172. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  173. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  174. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  175. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
  176. package/esm2022/directives/digit-only/digit-only.directive.mjs +3 -3
  177. package/esm2022/directives/digit-only/mask.directive.mjs +3 -3
  178. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
  179. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +5 -5
  180. package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
  181. package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
  182. package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
  183. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
  184. package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
  185. package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
  186. package/esm2022/pipes/secure/secure-pipe.mjs +5 -5
  187. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  188. package/esm2022/public-api.mjs +1 -1
  189. package/esm2022/services/alert/alert.service.mjs +7 -7
  190. package/esm2022/services/alert/enum.mjs +2 -2
  191. package/esm2022/services/config/config.service.mjs +5 -5
  192. package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
  193. package/esm2022/services/confirmation/confirmation.service.mjs +5 -5
  194. package/esm2022/services/confirmation/dialog/dialog.component.mjs +7 -7
  195. package/esm2022/services/data/data.service.mjs +5 -5
  196. package/esm2022/services/loading/loading.interceptor.mjs +4 -4
  197. package/esm2022/services/loading/loading.service.mjs +3 -3
  198. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  199. package/esm2022/services/media-watcher/media-watcher.service.mjs +5 -5
  200. package/esm2022/services/platform/platform.service.mjs +4 -4
  201. package/esm2022/services/splash-screen/splash-screen.service.mjs +6 -6
  202. package/esm2022/services/title/title.service.mjs +4 -4
  203. package/esm2022/services/translation/translation.service.mjs +3 -3
  204. package/esm2022/services/utils/utils.service.mjs +54 -9
  205. package/fesm2022/cmat-animations.mjs +15 -15
  206. package/fesm2022/cmat-animations.mjs.map +1 -1
  207. package/fesm2022/cmat-components-adapter.mjs +11 -11
  208. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  209. package/fesm2022/cmat-components-breadcrumb.mjs +11 -11
  210. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  211. package/fesm2022/cmat-components-card.mjs +4 -4
  212. package/fesm2022/cmat-components-card.mjs.map +1 -1
  213. package/fesm2022/cmat-components-cascade.mjs +215 -123
  214. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  215. package/fesm2022/cmat-components-chip-input.mjs +153 -50
  216. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  217. package/fesm2022/cmat-components-custom-formly.mjs +1141 -0
  218. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -0
  219. package/fesm2022/cmat-components-date-range.mjs +27 -18
  220. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  221. package/fesm2022/cmat-components-drawer.mjs +8 -8
  222. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  223. package/fesm2022/cmat-components-fullscreen.mjs +16 -73
  224. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  225. package/fesm2022/cmat-components-highlight.mjs +7 -7
  226. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  227. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  228. package/fesm2022/cmat-components-masonry.mjs +4 -4
  229. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  230. package/fesm2022/cmat-components-material-color-picker.mjs +21 -11
  231. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  232. package/fesm2022/cmat-components-material-datetimepicker.mjs +189 -195
  233. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  234. package/fesm2022/cmat-components-navigation.mjs +166 -183
  235. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  236. package/fesm2022/cmat-components-pagination.mjs +20 -20
  237. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  238. package/fesm2022/cmat-components-password-strength.mjs +13 -13
  239. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  240. package/fesm2022/cmat-components-popover.mjs +13 -14
  241. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  242. package/fesm2022/cmat-components-progress-bar.mjs +6 -6
  243. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  244. package/fesm2022/cmat-components-rating.mjs +121 -22
  245. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  246. package/fesm2022/cmat-components-select-search.mjs +41 -41
  247. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  248. package/fesm2022/cmat-components-select-tree.mjs +281 -157
  249. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  250. package/fesm2022/cmat-components-timeline.mjs +12 -12
  251. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  252. package/fesm2022/cmat-components-toast.mjs +12 -12
  253. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  254. package/fesm2022/cmat-components-transfer-picker.mjs +33 -33
  255. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  256. package/fesm2022/cmat-components-upload.mjs +366 -0
  257. package/fesm2022/cmat-components-upload.mjs.map +1 -0
  258. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  259. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  260. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  261. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  262. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  263. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  264. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  265. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  266. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  267. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  268. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  269. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  270. package/fesm2022/cmat-pipes-secure.mjs +4 -4
  271. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  272. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  273. package/fesm2022/cmat-services-alert.mjs +6 -6
  274. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  275. package/fesm2022/cmat-services-config.mjs +7 -7
  276. package/fesm2022/cmat-services-config.mjs.map +1 -1
  277. package/fesm2022/cmat-services-confirmation.mjs +11 -11
  278. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  279. package/fesm2022/cmat-services-data.mjs +5 -5
  280. package/fesm2022/cmat-services-data.mjs.map +1 -1
  281. package/fesm2022/cmat-services-loading.mjs +6 -6
  282. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  283. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  284. package/fesm2022/cmat-services-media-watcher.mjs +4 -4
  285. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  286. package/fesm2022/cmat-services-platform.mjs +3 -3
  287. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  288. package/fesm2022/cmat-services-splash-screen.mjs +5 -5
  289. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  290. package/fesm2022/cmat-services-title.mjs +3 -3
  291. package/fesm2022/cmat-services-title.mjs.map +1 -1
  292. package/fesm2022/cmat-services-translation.mjs +3 -3
  293. package/fesm2022/cmat-services-utils.mjs +53 -8
  294. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  295. package/package.json +19 -7
  296. package/pipes/secure/secure-pipe.d.ts +1 -1
  297. package/services/alert/enum.d.ts +1 -1
  298. package/services/confirmation/confirmation.service.d.ts +1 -1
  299. package/services/data/data.service.d.ts +1 -1
  300. package/services/media-watcher/media-watcher.service.d.ts +1 -1
  301. package/services/title/title.service.d.ts +1 -1
  302. package/services/utils/utils.service.d.ts +1 -0
  303. package/styles/components/bundle.scss +18 -5
  304. package/styles/overrides/angular-material.scss +51 -52
  305. package/styles/tailwind.scss +2 -8
  306. package/styles/themes.scss +7 -7
  307. package/styles/user-themes.scss +1 -1
  308. package/tailwind/plugins/utilities.js +1 -1
  309. package/components/fullscreen/fullscreen.types.d.ts +0 -13
  310. package/esm2022/components/fullscreen/fullscreen.types.mjs +0 -2
@@ -0,0 +1,116 @@
1
+ import { CdkDrag } from '@angular/cdk/drag-drop';
2
+ import { NgTemplateOutlet } from '@angular/common';
3
+ import { Component, ChangeDetectionStrategy, ViewChild, ViewContainerRef, inject } from '@angular/core';
4
+ import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatDialog, MatDialogModule } from '@angular/material/dialog';
7
+ import { MatIconModule } from '@angular/material/icon';
8
+ import { MatTableModule } from '@angular/material/table';
9
+ import { MatTooltipModule } from '@angular/material/tooltip';
10
+ import { FieldArrayType, FormlyModule } from '@ngx-formly/core';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/material/button";
13
+ import * as i2 from "@angular/material/icon";
14
+ import * as i3 from "@angular/material/table";
15
+ import * as i4 from "@angular/forms";
16
+ import * as i5 from "@ngx-formly/core";
17
+ import * as i6 from "@angular/material/dialog";
18
+ import * as i7 from "@angular/material/tooltip";
19
+ export class CmatTableTypeComponent extends FieldArrayType {
20
+ constructor(_changeDetectorRef) {
21
+ super();
22
+ this._changeDetectorRef = _changeDetectorRef;
23
+ this.inlineform = new FormGroup({});
24
+ this.currentMode = {};
25
+ this.displayedColumns = [];
26
+ this.dialogType = '';
27
+ this.defaultOptions = {
28
+ props: {
29
+ addText: '新增'
30
+ },
31
+ };
32
+ this._dialog = inject(MatDialog);
33
+ this._viewContainerRef = inject(ViewContainerRef);
34
+ }
35
+ get fieldArray() {
36
+ return this.field.fieldArray.fieldGroup;
37
+ }
38
+ get key() {
39
+ return this.field.fieldArray.fieldGroup[0].id;
40
+ }
41
+ ngOnInit() {
42
+ this.columns = this.field.fieldArray.fieldGroup[0].fieldGroup.
43
+ filter(field => field.props?.showColumn).map(field => ({
44
+ key: field.key,
45
+ label: field.props?.label ?? '',
46
+ }));
47
+ if (this.props.disabled) {
48
+ this.displayedColumns = [...this.columns.map(column => column.key)];
49
+ }
50
+ else {
51
+ this.displayedColumns = [...this.columns.map(column => column.key), '_actions_'];
52
+ }
53
+ }
54
+ addRow() {
55
+ this._dialogRef = this._dialog
56
+ .open(this.dialogRef, {
57
+ panelClass: ['cmat-table-dialog-container'],
58
+ viewContainerRef: this._viewContainerRef
59
+ });
60
+ this._dialogRef.afterClosed()
61
+ .subscribe(() => { this.dialogType = ''; });
62
+ this.dialogType = 'add';
63
+ this.currentMode = {};
64
+ this.inlineform.reset();
65
+ }
66
+ editRow(item, index) {
67
+ this.currentIndex = index;
68
+ this._dialogRef = this._dialog
69
+ .open(this.dialogRef, {
70
+ panelClass: ['cmat-table-dialog-container'],
71
+ viewContainerRef: this._viewContainerRef
72
+ });
73
+ this._dialogRef.afterClosed()
74
+ .subscribe(() => { this.dialogType = ''; });
75
+ this.dialogType = 'edit';
76
+ this.currentMode = {
77
+ [this.key]: item
78
+ };
79
+ }
80
+ deleteRow(id) {
81
+ this.remove(id);
82
+ this.table.renderRows();
83
+ }
84
+ confirm() {
85
+ if (this.inlineform.invalid) {
86
+ this.inlineform.markAllAsTouched();
87
+ return;
88
+ }
89
+ if (this.dialogType == 'add' && this.currentMode[this.key]) {
90
+ this.add(this.model?.length ?? 0, this.currentMode[this.key]);
91
+ }
92
+ else if (this.dialogType == 'edit' && this.currentMode[this.key]) {
93
+ this.model[this.currentIndex] = this.currentMode[this.key];
94
+ }
95
+ this.table.renderRows();
96
+ this._changeDetectorRef.markForCheck();
97
+ this._dialogRef.close();
98
+ }
99
+ trackByFn(index) {
100
+ return index;
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTableTypeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatTableTypeComponent, isStandalone: true, selector: "cmat-table-type", viewQueries: [{ propertyName: "dialogRef", first: true, predicate: ["dialogRef"], descendants: true }, { propertyName: "table", first: true, predicate: ["table"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"relative flex flex-col sm:flex-row flex-0 sm:items-center sm:justify-between p-2 border-b mb-1\">\r\n <div>\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"flex flex-shrink-0 items-center mt-6 sm:mt-0 sm:ml-4 print:hidden\">\r\n <button class=\"ml-4\" mat-flat-button [color]=\"'primary'\" (click)=\"addRow()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:plus'\"></mat-icon>\r\n <span class=\"ml-2\">{{props.addText}}</span>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<table mat-table [dataSource]=\"model||[]\" class=\"mat-elevation-z w-full\" [tabIndex]=\"props.tabindex\" #table>\r\n @for (column of columns; track trackByFn($index)) {\r\n <ng-container [matColumnDef]=\"column.key\">\r\n <th mat-header-cell *matHeaderCellDef> {{ column.label }} </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{element[column.key]}}</td>\r\n </ng-container>\r\n }\r\n\r\n <ng-container matColumnDef=\"_actions_\">\r\n <th mat-header-cell *matHeaderCellDef class=\"print:hidden\">\u64CD\u4F5C</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\" class=\"print:hidden\">\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"editRow(element,i)\" [matTooltip]=\"'\u7F16\u8F91'\">\r\n <mat-icon class=\"icon-size-5\" color=\"primary\" [svgIcon]=\"'heroicons_solid:pencil-square'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"deleteRow(i)\" [matTooltip]=\"'\u79FB\u9664'\">\r\n <mat-icon class=\"icon-size-5\" color=\"warn\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"group\"></tr>\r\n</table>\r\n\r\n\r\n<ng-template #inlineTable>\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom w-full\">\r\n <form [formGroup]=\"inlineform\">\r\n <formly-form [fields]=\"fieldArray\" [model]=\"currentMode\" [form]=\"inlineform\"></formly-form>\r\n </form>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dialogRef>\r\n <div mat-dialog-title cdkDrag class=\"-mt-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\r\n <h2 class=\"pointer-events-none text-xl\">{{ props.label +'\u8BE6\u7EC6\u9875'}}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <ng-container *ngTemplateOutlet=\"inlineTable\"></ng-container>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions>\r\n <div class=\"w-full flex justify-end items-center\">\r\n <button mat-raised-button color=\"primary\" cdkFocusInitial (click)=\"confirm()\">\r\n \u786E\u5B9A\r\n </button>\r\n <button mat-button mat-dialog-close>\r\n \u53D6\u6D88\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n</ng-template>", styles: [":host{width:100%}.mat-column-_actions_{width:8rem;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i5.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTableTypeComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'cmat-table-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule, MatTableModule, FormsModule, FormlyModule, CdkDrag,
108
+ ReactiveFormsModule, MatDialogModule, NgTemplateOutlet, MatTooltipModule], template: "<div class=\"relative flex flex-col sm:flex-row flex-0 sm:items-center sm:justify-between p-2 border-b mb-1\">\r\n <div>\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"flex flex-shrink-0 items-center mt-6 sm:mt-0 sm:ml-4 print:hidden\">\r\n <button class=\"ml-4\" mat-flat-button [color]=\"'primary'\" (click)=\"addRow()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:plus'\"></mat-icon>\r\n <span class=\"ml-2\">{{props.addText}}</span>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<table mat-table [dataSource]=\"model||[]\" class=\"mat-elevation-z w-full\" [tabIndex]=\"props.tabindex\" #table>\r\n @for (column of columns; track trackByFn($index)) {\r\n <ng-container [matColumnDef]=\"column.key\">\r\n <th mat-header-cell *matHeaderCellDef> {{ column.label }} </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">{{element[column.key]}}</td>\r\n </ng-container>\r\n }\r\n\r\n <ng-container matColumnDef=\"_actions_\">\r\n <th mat-header-cell *matHeaderCellDef class=\"print:hidden\">\u64CD\u4F5C</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\" class=\"print:hidden\">\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"editRow(element,i)\" [matTooltip]=\"'\u7F16\u8F91'\">\r\n <mat-icon class=\"icon-size-5\" color=\"primary\" [svgIcon]=\"'heroicons_solid:pencil-square'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n mat-icon-button (click)=\"deleteRow(i)\" [matTooltip]=\"'\u79FB\u9664'\">\r\n <mat-icon class=\"icon-size-5\" color=\"warn\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"group\"></tr>\r\n</table>\r\n\r\n\r\n<ng-template #inlineTable>\r\n <div class=\"overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom w-full\">\r\n <form [formGroup]=\"inlineform\">\r\n <formly-form [fields]=\"fieldArray\" [model]=\"currentMode\" [form]=\"inlineform\"></formly-form>\r\n </form>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dialogRef>\r\n <div mat-dialog-title cdkDrag class=\"-mt-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\r\n <h2 class=\"pointer-events-none text-xl\">{{ props.label +'\u8BE6\u7EC6\u9875'}}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <ng-container *ngTemplateOutlet=\"inlineTable\"></ng-container>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions>\r\n <div class=\"w-full flex justify-end items-center\">\r\n <button mat-raised-button color=\"primary\" cdkFocusInitial (click)=\"confirm()\">\r\n \u786E\u5B9A\r\n </button>\r\n <button mat-button mat-dialog-close>\r\n \u53D6\u6D88\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n</ng-template>", styles: [":host{width:100%}.mat-column-_actions_{width:8rem;text-align:center}\n"] }]
109
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dialogRef: [{
110
+ type: ViewChild,
111
+ args: ['dialogRef']
112
+ }], table: [{
113
+ type: ViewChild,
114
+ args: ['table']
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXVCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hKLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBd0QsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztBQWdCdEgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQTJDO0lBdUJuRixZQUFvQixrQkFBcUM7UUFDckQsS0FBSyxFQUFFLENBQUM7UUFEUSx1QkFBa0IsR0FB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QVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0F6R1Esc0JBQXNCO2tHQUF0QixzQkFBc0IsMlJDekJuQyw2akhBaUZjLCtIRDNEQSxlQUFlLHdVQUFFLGFBQWEsbUxBQUUsY0FBYyxzZ0NBQUUsV0FBVyxtU0FBRSxZQUFZLDhLQUFDLE9BQU8sdWJBQ3RGLG1CQUFtQiwrS0FBRSxlQUFlLGdvQkFBRSxnQkFBZ0IsbUpBQUMsZ0JBQWdCOzsyRkFFbkUsc0JBQXNCO2tCQVRsQyxTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUMsT0FBTzt3QkFDdEYsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFDLGdCQUFnQixDQUFDO3NGQUdyRCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0YsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZGtEcmFnfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUYWJsZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRmllbGRBcnJheVR5cGUsIEZpZWxkVHlwZUNvbmZpZywgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZpZWxkUHJvcHMsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5cclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcclxuICAgIGFkZFRleHQ6IHN0cmluZztcclxuICAgIHNob3dDb2x1bW4/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC10YWJsZS10eXBlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAndGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9ybWx5TW9kdWxlLENka0RyYWcsXHJcbiAgICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCxNYXRUb29sdGlwTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFRhYmxlVHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkQXJyYXlUeXBlPEZpZWxkVHlwZUNvbmZpZzxUYWJsZVByb3BzPj4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnZGlhbG9nUmVmJykgZGlhbG9nUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgndGFibGUnKSB0YWJsZTogTWF0VGFibGU8YW55PjtcclxuXHJcbiAgICBpbmxpbmVmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICBjdXJyZW50TW9kZTogYW55ID0ge307XHJcbiAgICBjdXJyZW50SW5kZXg6IG51bWJlcjtcclxuXHJcbiAgICBjb2x1bW5zOiBBcnJheTx7IGtleTogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH0+O1xyXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBkaWFsb2dUeXBlOiAnYWRkJyB8ICdlZGl0JyB8ICcnID0gJyc7XHJcblxyXG4gICAgb3ZlcnJpZGUgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgYWRkVGV4dDogJ+aWsOWinidcclxuICAgICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBnZXQgZmllbGRBcnJheSgpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuZmllbGQuZmllbGRBcnJheSBhcyBGb3JtbHlGaWVsZENvbmZpZykuZmllbGRHcm91cCE7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGtleSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5maWVsZC5maWVsZEFycmF5IGFzIEZvcm1seUZpZWxkQ29uZmlnKS5maWVsZEdyb3VwIVswXS5pZCE7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gKHRoaXMuZmllbGQuZmllbGRBcnJheSBhcyBGb3JtbHlGaWVsZENvbmZpZykuZmllbGRHcm91cCFbMF0uZmllbGRHcm91cCEuXHJcbiAgICAgICAgICAgIGZpbHRlcihmaWVsZCA9PiBmaWVsZC5wcm9wcz8uc2hvd0NvbHVtbikubWFwKGZpZWxkID0+ICh7XHJcbiAgICAgICAgICAgICAgICBrZXk6IGZpZWxkLmtleSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogZmllbGQucHJvcHM/LmxhYmVsID8/ICcnLFxyXG4gICAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IFsuLi50aGlzLmNvbHVtbnMubWFwKGNvbHVtbiA9PiBjb2x1bW4ua2V5KV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gWy4uLnRoaXMuY29sdW1ucy5tYXAoY29sdW1uID0+IGNvbHVtbi5rZXkpLCAnX2FjdGlvbnNfJ107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFkZFJvdygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dcclxuICAgICAgICAgICAgLm9wZW4odGhpcy5kaWFsb2dSZWYsIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnY21hdC10YWJsZS1kaWFsb2ctY29udGFpbmVyJ10sXHJcbiAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLl92aWV3Q29udGFpbmVyUmVmXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB0aGlzLmRpYWxvZ1R5cGUgPSAnJzsgfSk7XHJcblxyXG5cclxuICAgICAgICB0aGlzLmRpYWxvZ1R5cGUgPSAnYWRkJztcclxuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlID0ge307XHJcbiAgICAgICAgdGhpcy5pbmxpbmVmb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdFJvdyhpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dcclxuICAgICAgICAgICAgLm9wZW4odGhpcy5kaWFsb2dSZWYsIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnY21hdC10YWJsZS1kaWFsb2ctY29udGFpbmVyJ10sXHJcbiAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLl92aWV3Q29udGFpbmVyUmVmXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB0aGlzLmRpYWxvZ1R5cGUgPSAnJzsgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nVHlwZSA9ICdlZGl0JztcclxuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlID0ge1xyXG4gICAgICAgICAgICBbdGhpcy5rZXldOiBpdGVtXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVSb3coaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlKGlkKTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5yZW5kZXJSb3dzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbmxpbmVmb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbmxpbmVmb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nVHlwZSA9PSAnYWRkJyAmJiB0aGlzLmN1cnJlbnRNb2RlW3RoaXMua2V5XSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZCh0aGlzLm1vZGVsPy5sZW5ndGggPz8gMCwgdGhpcy5jdXJyZW50TW9kZVt0aGlzLmtleV0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kaWFsb2dUeXBlID09ICdlZGl0JyAmJiB0aGlzLmN1cnJlbnRNb2RlW3RoaXMua2V5XSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsIVt0aGlzLmN1cnJlbnRJbmRleF0gPSB0aGlzLmN1cnJlbnRNb2RlW3RoaXMua2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50YWJsZS5yZW5kZXJSb3dzKCk7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBmbGV4LTAgc206aXRlbXMtY2VudGVyIHNtOmp1c3RpZnktYmV0d2VlbiBwLTIgYm9yZGVyLWIgbWItMVwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICBAaWYocHJvcHMubGFiZWwpe1xyXG4gICAgICAgIDxsZWdlbmQgY2xhc3M9XCJ0ZXh0LWxnXCI+XHJcbiAgICAgICAgICAgIHt7IHByb3BzLmxhYmVsIH19XHJcbiAgICAgICAgICAgIEBpZihwcm9wcy5yZXF1aXJlZCl7XHJcbiAgICAgICAgICAgIDxzcGFuPio8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2xlZ2VuZD5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmKHByb3BzLmRlc2NyaXB0aW9uKXtcclxuICAgICAgICA8cD57eyBwcm9wcy5kZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoIXByb3BzLmRpc2FibGVkKXtcclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtc2hyaW5rLTAgaXRlbXMtY2VudGVyIG10LTYgc206bXQtMCBzbTptbC00IHByaW50OmhpZGRlblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtbC00XCIgbWF0LWZsYXQtYnV0dG9uIFtjb2xvcl09XCIncHJpbWFyeSdcIiAoY2xpY2spPVwiYWRkUm93KClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfb3V0bGluZTpwbHVzJ1wiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMlwiPnt7cHJvcHMuYWRkVGV4dH19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG5cclxuPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtb2RlbHx8W11cIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24teiB3LWZ1bGxcIiBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIiAjdGFibGU+XHJcbiAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3sgY29sdW1uLmxhYmVsIH19IDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj57e2VsZW1lbnRbY29sdW1uLmtleV19fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIl9hY3Rpb25zX1wiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJwcmludDpoaWRkZW5cIj7mk43kvZw8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJwcmludDpoaWRkZW5cIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ3LTggbWluLWgtOCBoLTggbWF4LXctOCBsZzpvcGFjaXR5LTAgbGc6Z3JvdXAtaG92ZXI6b3BhY2l0eS0xMDBcIlxyXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0Um93KGVsZW1lbnQsaSlcIiBbbWF0VG9vbHRpcF09XCIn57yW6L6RJ1wiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTVcIiBjb2xvcj1cInByaW1hcnlcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX3NvbGlkOnBlbmNpbC1zcXVhcmUnXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidy04IG1pbi1oLTggaC04IG1heC13LTggbGc6b3BhY2l0eS0wIGxnOmdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCJcclxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlUm93KGkpXCIgW21hdFRvb2x0aXBdPVwiJ+enu+mZpCdcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgY29sb3I9XCJ3YXJuXCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDp0cmFzaCdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIGNsYXNzPVwiZ3JvdXBcIj48L3RyPlxyXG48L3RhYmxlPlxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW5saW5lVGFibGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tIHctZnVsbFwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiaW5saW5lZm9ybVwiPlxyXG4gICAgICAgICAgICA8Zm9ybWx5LWZvcm0gW2ZpZWxkc109XCJmaWVsZEFycmF5XCIgW21vZGVsXT1cImN1cnJlbnRNb2RlXCIgW2Zvcm1dPVwiaW5saW5lZm9ybVwiPjwvZm9ybWx5LWZvcm0+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RpYWxvZ1JlZj5cclxuICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjZGtEcmFnIGNsYXNzPVwiLW10LTZcIiBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuY2RrLW92ZXJsYXktcGFuZVwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSB0ZXh0LXhsXCI+e3sgcHJvcHMubGFiZWwgKyfor6bnu4bpobUnfX08L2gyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5saW5lVGFibGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNka0ZvY3VzSW5pdGlhbCAoY2xpY2spPVwiY29uZmlybSgpXCI+XHJcbiAgICAgICAgICAgICAgICDnoa7lrppcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPlxyXG4gICAgICAgICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -0,0 +1,19 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { MatTabsModule } from '@angular/material/tabs';
3
+ import { FormlyModule } from '@ngx-formly/core';
4
+ import { FieldType } from '@ngx-formly/material';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/tabs";
7
+ import * as i2 from "@ngx-formly/core";
8
+ export class CmatTabTypeComponent extends FieldType {
9
+ trackByFn(index) {
10
+ return index;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTabTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatTabTypeComponent, isStandalone: true, selector: "cmat-tab-type", usesInheritance: true, ngImport: i0, template: "<mat-tab-group [tabIndex]=\"props.tabindex\">\r\n @for (tab of field.fieldGroup; track trackByFn($index)) {\r\n <mat-tab [label]=\"tab.props?.label||''\" [disabled]=\"tab.props?.disabled\">\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"tab\"></formly-field>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTabTypeComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'cmat-tab-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatTabsModule, FormlyModule], template: "<mat-tab-group [tabIndex]=\"props.tabindex\">\r\n @for (tab of field.fieldGroup; track trackByFn($index)) {\r\n <mat-tab [label]=\"tab.props?.label||''\" [disabled]=\"tab.props?.disabled\">\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"tab\"></formly-field>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>", styles: [":host{width:100%}\n"] }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3RhYnMvdGFiLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3R5cGVzL3RhYnMvdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBbUIsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBVWpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUEwQjtJQUNoRSxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQUhRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGdHQ2JqQyxtV0FRZ0IsNEVER0YsYUFBYSwybUJBQUUsWUFBWTs7MkZBRTVCLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDSSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC10YWItdHlwZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFiLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczpbJy4vdGFiLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0VGFic01vZHVsZSwgRm9ybWx5TW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFRhYlR5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPiB7XHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bWF0LXRhYi1ncm91cCBbdGFiSW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIj5cclxuICAgIEBmb3IgKHRhYiBvZiBmaWVsZC5maWVsZEdyb3VwOyB0cmFjayB0cmFja0J5Rm4oJGluZGV4KSkge1xyXG4gICAgPG1hdC10YWIgW2xhYmVsXT1cInRhYi5wcm9wcz8ubGFiZWx8fCcnXCIgW2Rpc2FibGVkXT1cInRhYi5wcm9wcz8uZGlzYWJsZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICAgIH1cclxuPC9tYXQtdGFiLWdyb3VwPiJdfQ==
@@ -0,0 +1,149 @@
1
+ import { TemplatePortal } from '@angular/cdk/portal';
2
+ import { AsyncPipe } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
4
+ import { MatCheckboxModule } from '@angular/material/checkbox';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { FieldType } from '@ngx-formly/material/form-field';
7
+ import { isArray } from 'lodash';
8
+ import { Subject, takeUntil, BehaviorSubject } from 'rxjs';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common/http";
11
+ import * as i2 from "@angular/cdk/overlay";
12
+ import * as i3 from "@angular/material/icon";
13
+ import * as i4 from "@angular/material/checkbox";
14
+ export class CmatTagsTypeComponent extends FieldType {
15
+ constructor(_http, _overlay, _viewContainerRef, _changeDetectorRef) {
16
+ super();
17
+ this._http = _http;
18
+ this._overlay = _overlay;
19
+ this._viewContainerRef = _viewContainerRef;
20
+ this._changeDetectorRef = _changeDetectorRef;
21
+ this._filteredItems = new BehaviorSubject(null);
22
+ this._unsubscribeAll = new Subject();
23
+ }
24
+ get filteredItems$() {
25
+ return this._filteredItems.asObservable();
26
+ }
27
+ get tags() {
28
+ if (isArray(this.field.props?.options)) {
29
+ return this.urlData?.length > 0 ? this.urlData : this.field.props?.options || [];
30
+ }
31
+ else {
32
+ return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];
33
+ }
34
+ }
35
+ ngOnInit() {
36
+ if (this.field.props?.options && !isArray(this.field.props?.options)) {
37
+ this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe((data) => {
38
+ this.optionsData = data;
39
+ });
40
+ }
41
+ const url = this.field.props?.domain?.url;
42
+ if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {
43
+ this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe((data) => {
44
+ if (data) {
45
+ const datas = data.filter((i) => {
46
+ if (this.field.props?.domain?.key)
47
+ return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;
48
+ return false;
49
+ });
50
+ if (datas && this.field.props?.domain?.value) {
51
+ this.urlData = datas[0][this.field.props?.domain?.value];
52
+ }
53
+ else {
54
+ this.urlData = [];
55
+ }
56
+ }
57
+ else {
58
+ this.urlData = [];
59
+ }
60
+ this._filteredItems.next(this.tags);
61
+ });
62
+ }
63
+ else {
64
+ this.urlData = [];
65
+ this._filteredItems.next(this.tags);
66
+ }
67
+ }
68
+ ngOnDestroy() {
69
+ this._unsubscribeAll.next(void 0);
70
+ this._unsubscribeAll.complete();
71
+ }
72
+ openTagsPanel() {
73
+ this._tagsPanelOverlayRef = this._overlay.create({
74
+ backdropClass: '',
75
+ hasBackdrop: true,
76
+ scrollStrategy: this._overlay.scrollStrategies.block(),
77
+ positionStrategy: this._overlay.position()
78
+ .flexibleConnectedTo(this._tagsPanelOrigin.nativeElement)
79
+ .withFlexibleDimensions(true)
80
+ .withViewportMargin(64)
81
+ .withLockedPosition(true)
82
+ .withPositions([
83
+ {
84
+ originX: 'start',
85
+ originY: 'bottom',
86
+ overlayX: 'start',
87
+ overlayY: 'top'
88
+ }
89
+ ])
90
+ });
91
+ this._tagsPanelOverlayRef.attachments().subscribe(() => {
92
+ this._tagsPanelOverlayRef.overlayElement.querySelector('input')?.focus();
93
+ });
94
+ const templatePortal = new TemplatePortal(this._tagsPanel, this._viewContainerRef);
95
+ this._tagsPanelOverlayRef.attach(templatePortal);
96
+ // Subscribe to the backdrop click
97
+ this._tagsPanelOverlayRef.backdropClick().subscribe(() => {
98
+ // If overlay exists and attached...
99
+ if (this._tagsPanelOverlayRef && this._tagsPanelOverlayRef.hasAttached()) {
100
+ // Detach it
101
+ this._tagsPanelOverlayRef.detach();
102
+ // Reset the tag filter
103
+ this._filteredItems.next(this.tags);
104
+ }
105
+ // If template portal exists and attached...
106
+ if (templatePortal && templatePortal.isAttached) {
107
+ // Detach it
108
+ templatePortal.detach();
109
+ }
110
+ });
111
+ }
112
+ filterTags(event) {
113
+ const value = event.target.value.toLowerCase();
114
+ this._filteredItems.next(this.tags.filter(tag => tag.label.toString().toLowerCase().includes(value) || tag.value.toString().toLowerCase().includes(value)));
115
+ }
116
+ toggleTag(tag) {
117
+ if (tag.disabled)
118
+ return;
119
+ const data = this.formControl.value || [];
120
+ const existsTag = data.findIndex((i) => i.value === tag.value);
121
+ if (existsTag > -1) {
122
+ data.splice(existsTag, 1);
123
+ }
124
+ else {
125
+ data.unshift(tag);
126
+ }
127
+ this.formControl.setValue(data);
128
+ this._changeDetectorRef.markForCheck();
129
+ }
130
+ trackByFn(index) {
131
+ return index;
132
+ }
133
+ isCheck(tag) {
134
+ return this.formControl.value?.filter((i) => i.value === tag.value).length > 0;
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTagsTypeComponent, deps: [{ token: i1.HttpClient }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatTagsTypeComponent, isStandalone: true, selector: "cmat-tags-type", viewQueries: [{ propertyName: "_tagsPanelOrigin", first: true, predicate: ["tagsPanelOrigin"], descendants: true }, { propertyName: "_tagsPanel", first: true, predicate: ["tagsPanel"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"text-lg mb-2\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n</div>\r\n<div class=\"flex flex-wrap items-center -m-2\" [tabIndex]=\"props.tabindex\">\r\n <ng-container>\r\n @for (selectedItem of formControl.value; track trackByFn($index)) {\r\n <div\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700\">\r\n <span class=\"text-md font-medium whitespace-nowrap\">{{selectedItem.label}}</span>\r\n </div>\r\n }\r\n\r\n <div class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 cursor-pointer text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700 print:hidden\"\r\n (click)=\"openTagsPanel()\" role=\"presentation\" #tagsPanelOrigin>\r\n\r\n @if(formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:pencil-square'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">\u7F16\u8F91</span>\r\n }\r\n\r\n @if(!formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:plus-circle'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">\u65B0\u589E</span>\r\n }\r\n\r\n <ng-template #tagsPanel>\r\n <div class=\"w-60 rounded border shadow-md bg-card\">\r\n <div class=\"flex items-center m-3 mr-2\">\r\n <div class=\"flex items-center\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\">\r\n </mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-0\" type=\"text\" placeholder=\"\u8F93\u5165\u6807\u7B7E\u540D\"\r\n (input)=\"filterTags($event)\" [maxLength]=\"30\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col max-h-64 py-2 border-t overflow-y-auto\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (tag of filteredItems; track trackByFn($index)) {\r\n <div role=\"presentation\"\r\n class=\"flex items-center h-10 min-h-10 pl-1 pr-4 cursor-pointer hover:bg-hover\"\r\n (click)=\"toggleTag(tag)\" matRipple>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10\" [color]=\"'primary'\"\r\n [disabled]=\"tag.disabled\" [checked]=\"isCheck(tag)\">\r\n {{tag.label}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n }@else {\r\n <div class=\"flex flex-auto flex-col justify-center px-4 h-10 min-h-10\">\r\n \u65E0\u7ED3\u679C\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTagsTypeComponent, decorators: [{
140
+ type: Component,
141
+ args: [{ selector: 'cmat-tags-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, MatCheckboxModule, AsyncPipe], template: "<div class=\"text-lg mb-2\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n</div>\r\n<div class=\"flex flex-wrap items-center -m-2\" [tabIndex]=\"props.tabindex\">\r\n <ng-container>\r\n @for (selectedItem of formControl.value; track trackByFn($index)) {\r\n <div\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700\">\r\n <span class=\"text-md font-medium whitespace-nowrap\">{{selectedItem.label}}</span>\r\n </div>\r\n }\r\n\r\n <div class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 cursor-pointer text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700 print:hidden\"\r\n (click)=\"openTagsPanel()\" role=\"presentation\" #tagsPanelOrigin>\r\n\r\n @if(formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:pencil-square'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">\u7F16\u8F91</span>\r\n }\r\n\r\n @if(!formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:plus-circle'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">\u65B0\u589E</span>\r\n }\r\n\r\n <ng-template #tagsPanel>\r\n <div class=\"w-60 rounded border shadow-md bg-card\">\r\n <div class=\"flex items-center m-3 mr-2\">\r\n <div class=\"flex items-center\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\">\r\n </mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-0\" type=\"text\" placeholder=\"\u8F93\u5165\u6807\u7B7E\u540D\"\r\n (input)=\"filterTags($event)\" [maxLength]=\"30\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col max-h-64 py-2 border-t overflow-y-auto\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (tag of filteredItems; track trackByFn($index)) {\r\n <div role=\"presentation\"\r\n class=\"flex items-center h-10 min-h-10 pl-1 pr-4 cursor-pointer hover:bg-hover\"\r\n (click)=\"toggleTag(tag)\" matRipple>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10\" [color]=\"'primary'\"\r\n [disabled]=\"tag.disabled\" [checked]=\"isCheck(tag)\">\r\n {{tag.label}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n }@else {\r\n <div class=\"flex flex-auto flex-col justify-center px-4 h-10 min-h-10\">\r\n \u65E0\u7ED3\u679C\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [":host{width:100%}\n"] }]
142
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { _tagsPanelOrigin: [{
143
+ type: ViewChild,
144
+ args: ['tagsPanelOrigin']
145
+ }], _tagsPanel: [{
146
+ type: ViewChild,
147
+ args: ['tagsPanel']
148
+ }] } });
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS90eXBlcy90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQThDLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQW1CdkUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQXFDO0lBWTVFLFlBQW9CLEtBQWlCLEVBQVUsUUFBaUIsRUFBVSxpQkFBbUMsRUFBVSxrQkFBcUM7UUFDeEosS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBTHBKLG1CQUFjLEdBQWtDLElBQUksZUFBZSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBRXhGLG9CQUFlLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7SUFLM0QsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDcEY7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztTQUMzRTtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNyRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzVCLENBQUMsQ0FDSixDQUFDO1NBQ0w7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQzNHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUMvRCxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNWLElBQUksSUFBSSxFQUFFO29CQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTt3QkFDakMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRzs0QkFDN0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7d0JBRS9FLE9BQU8sS0FBSyxDQUFDO29CQUNqQixDQUFDLENBQ0EsQ0FBQztvQkFDRixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQzVEO3lCQUFNO3dCQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO3FCQUNyQjtpQkFDSjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztpQkFDckI7Z0JBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM3QyxhQUFhLEVBQUUsRUFBRTtZQUNqQixXQUFXLEVBQUUsSUFBSTtZQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDdEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7aUJBQ3JDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7aUJBQ3hELHNCQUFzQixDQUFDLElBQUksQ0FBQztpQkFDNUIsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2lCQUN0QixrQkFBa0IsQ0FBQyxJQUFJLENBQUM7aUJBQ3hCLGFBQWEsQ0FBQztnQkFDWDtvQkFDSSxPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLFFBQVE7b0JBQ2pCLFFBQVEsRUFBRSxPQUFPO29CQUNqQixRQUFRLEVBQUUsS0FBSztpQkFDbEI7YUFDSixDQUFDO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRW5GLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFakQsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBRXJELG9DQUFvQztZQUNwQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQ3RFLFlBQVk7Z0JBQ1osSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVuQyx1QkFBdUI7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QztZQUVELDRDQUE0QztZQUM1QyxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFO2dCQUM3QyxZQUFZO2dCQUNaLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRS9DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hLLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUTtRQUNkLElBQUksR0FBRyxDQUFDLFFBQVE7WUFDWixPQUFPO1FBRVgsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixJQUFJLFNBQVMsR0FBQyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzdCO2FBQ0k7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVE7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEcsQ0FBQzs4R0FySlEscUJBQXFCO2tHQUFyQixxQkFBcUIsZ1RDN0JsQywwOUdBZ0VNLDRFRHJDUSxhQUFhLG1MQUFFLGlCQUFpQix5V0FBRSxTQUFTOzsyRkFFNUMscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNJLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUM7b0tBR2hCLGdCQUFnQjtzQkFBckQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0ksVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbnRlcmZhY2UgVGFnc1Byb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XHJcbiAgICBkb21haW4/OiB7XHJcbiAgICAgICAgdXJsPzogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC10YWdzLXR5cGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFncy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBBc3luY1BpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0VGFnc1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFRhZ3NQcm9wcz4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgndGFnc1BhbmVsT3JpZ2luJykgcHJpdmF0ZSBfdGFnc1BhbmVsT3JpZ2luOiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgndGFnc1BhbmVsJykgcHJpdmF0ZSBfdGFnc1BhbmVsOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIHVybERhdGE6IFtdO1xyXG4gICAgb3B0aW9uc0RhdGE6IGFueVtdO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbHRlcmVkSXRlbXM6IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXSB8IG51bGw+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSBfdGFnc1BhbmVsT3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZpbHRlcmVkSXRlbXMkKCk6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkSXRlbXMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRhZ3MoKTogYW55W10ge1xyXG4gICAgICAgIGlmIChpc0FycmF5KHRoaXMuZmllbGQucHJvcHM/Lm9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVybERhdGE/Lmxlbmd0aCA+IDAgPyB0aGlzLnVybERhdGEgOiB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVybERhdGE/Lmxlbmd0aCA+IDAgPyB0aGlzLnVybERhdGEgOiB0aGlzLm9wdGlvbnNEYXRhIHx8IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5maWVsZC5wcm9wcz8ub3B0aW9ucyAmJiAhaXNBcnJheSh0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zKSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkLnByb3BzPy5vcHRpb25zLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNEYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy51cmw7XHJcbiAgICAgICAgaWYgKHVybCAmJiB0aGlzLmZpZWxkLnByb3BzPy5kb21haW4/LmNvZGUgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5rZXkgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9odHRwLmdldCh1cmwpLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0gZGF0YS5maWx0ZXIoKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpW3RoaXMuZmllbGQucHJvcHM/LmRvbWFpbj8ua2V5XSA9PT0gdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy5jb2RlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YXMgJiYgdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gZGF0YXNbMF1bdGhpcy5maWVsZC5wcm9wcz8uZG9tYWluPy52YWx1ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVybERhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXJsRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcy5uZXh0KHRoaXMudGFncyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy51cmxEYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuVGFnc1BhbmVsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcclxuICAgICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX3RhZ3NQYW5lbE9yaWdpbi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnModHJ1ZSlcclxuICAgICAgICAgICAgICAgIC53aXRoVmlld3BvcnRNYXJnaW4oNjQpXHJcbiAgICAgICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpXHJcbiAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIF0pXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl90YWdzUGFuZWxPdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RhZ3NQYW5lbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XHJcblxyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYXR0YWNoKHRlbXBsYXRlUG9ydGFsKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBiYWNrZHJvcCBjbGlja1xyXG4gICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiBvdmVybGF5IGV4aXN0cyBhbmQgYXR0YWNoZWQuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYgJiYgdGhpcy5fdGFnc1BhbmVsT3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBEZXRhY2ggaXRcclxuICAgICAgICAgICAgICAgIHRoaXMuX3RhZ3NQYW5lbE92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHRhZyBmaWx0ZXJcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0ZW1wbGF0ZSBwb3J0YWwgZXhpc3RzIGFuZCBhdHRhY2hlZC4uLlxyXG4gICAgICAgICAgICBpZiAodGVtcGxhdGVQb3J0YWwgJiYgdGVtcGxhdGVQb3J0YWwuaXNBdHRhY2hlZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gRGV0YWNoIGl0XHJcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVBvcnRhbC5kZXRhY2goKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlclRhZ3MoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMubmV4dCh0aGlzLnRhZ3MuZmlsdGVyKHRhZyA9PiB0YWcubGFiZWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSB8fCB0YWcudmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRhZyh0YWc6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0YWcuZGlzYWJsZWQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgfHwgW107XHJcbiAgICAgICAgY29uc3QgZXhpc3RzVGFnID0gZGF0YS5maW5kSW5kZXgoKGk6IHsgdmFsdWU6IGFueTsgfSkgPT4gaS52YWx1ZSA9PT0gdGFnLnZhbHVlKTtcclxuICAgICAgICBpZiAoZXhpc3RzVGFnPi0xKSB7XHJcbiAgICAgICAgICAgIGRhdGEuc3BsaWNlKGV4aXN0c1RhZywgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhLnVuc2hpZnQodGFnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgaXNDaGVjayh0YWc6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sLnZhbHVlPy5maWx0ZXIoKGk6IHsgdmFsdWU6IGFueTsgfSkgPT4gaS52YWx1ZSA9PT0gdGFnLnZhbHVlKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWxnIG1iLTJcIj5cclxuICAgIHt7IHByb3BzLmxhYmVsIH19XHJcbiAgICBAaWYocHJvcHMucmVxdWlyZWQpe1xyXG4gICAgPHNwYW4+Kjwvc3Bhbj5cclxuICAgIH1cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgLW0tMlwiIFt0YWJJbmRleF09XCJwcm9wcy50YWJpbmRleFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICBAZm9yIChzZWxlY3RlZEl0ZW0gb2YgZm9ybUNvbnRyb2wudmFsdWU7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgpKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTQgbS0xLjUgcm91bmRlZC1mdWxsIGxlYWRpbmctOSB0ZXh0LWdyYXktNTAwIGJnLXNsYXRlLTEwMCBkYXJrOnRleHQtZ3JheS0zMDAgZGFyazpiZy1zbGF0ZS03MDBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+e3tzZWxlY3RlZEl0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC00IG0tMS41IHJvdW5kZWQtZnVsbCBsZWFkaW5nLTkgY3Vyc29yLXBvaW50ZXIgdGV4dC1ncmF5LTUwMCBiZy1zbGF0ZS0xMDAgZGFyazp0ZXh0LWdyYXktMzAwIGRhcms6Ymctc2xhdGUtNzAwIHByaW50OmhpZGRlblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuVGFnc1BhbmVsKClcIiByb2xlPVwicHJlc2VudGF0aW9uXCIgI3RhZ3NQYW5lbE9yaWdpbj5cclxuXHJcbiAgICAgICAgICAgIEBpZihmb3JtQ29udHJvbC52YWx1ZT8ubGVuZ3RoJiYhZGlzYWJsZWQpe1xyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtNVwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6cGVuY2lsLXNxdWFyZSdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEuNSB0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+57yW6L6RPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYoIWZvcm1Db250cm9sLnZhbHVlPy5sZW5ndGgmJiFkaXNhYmxlZCl7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDpwbHVzLWNpcmNsZSdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTEuNSB0ZXh0LW1kIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+5paw5aKePC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RhZ3NQYW5lbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHJvdW5kZWQgYm9yZGVyIHNoYWRvdy1tZCBiZy1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG0tMyBtci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTVcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX3NvbGlkOm1hZ25pZnlpbmctZ2xhc3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ3LWZ1bGwgbWluLXctMCBweS0xIGJvcmRlci0wXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIui+k+WFpeagh+etvuWQjVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJmaWx0ZXJUYWdzKCRldmVudClcIiBbbWF4TGVuZ3RoXT1cIjMwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWF4LWgtNjQgcHktMiBib3JkZXItdCBvdmVyZmxvdy15LWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgoZmlsdGVyZWRJdGVtcyQgfCBhc3luYyk7IGFzIGZpbHRlcmVkSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGZpbHRlcmVkSXRlbXMubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yICh0YWcgb2YgZmlsdGVyZWRJdGVtczsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgaC0xMCBtaW4taC0xMCBwbC0xIHByLTQgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctaG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRhZyh0YWcpXCIgbWF0UmlwcGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGgtMTAgbWluLWgtMTBcIiBbY29sb3JdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGFnLmRpc2FibGVkXCIgW2NoZWNrZWRdPVwiaXNDaGVjayh0YWcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWcubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBweC00IGgtMTAgbWluLWgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIOaXoOe7k+aenFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,25 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { ReactiveFormsModule } from '@angular/forms';
3
+ import { MatInputModule } from '@angular/material/input';
4
+ import { FieldType } from '@ngx-formly/material';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/input";
7
+ import * as i2 from "@angular/forms";
8
+ export class CmatTextareaTypeComponent extends FieldType {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.defaultOptions = {
12
+ props: {
13
+ cols: 1,
14
+ rows: 3,
15
+ },
16
+ };
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTextareaTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CmatTextareaTypeComponent, isStandalone: true, selector: "cmat-textarea-type", usesInheritance: true, ngImport: i0, template: "<textarea matInput [placeholder]=\"placeholder\" \r\n [readonly]=\"props.readonly\" [errorStateMatcher]=\"errorStateMatcher\"\r\n [cols]=\"props.cols\"\r\n [rows]=\"props.rows\"\r\n [tabindex]=\"props.tabindex\"\r\n [formControl]=\"formControl\" [required]=\"required\">\r\n</textarea>", styles: [":host{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.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: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatTextareaTypeComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'cmat-textarea-type', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatInputModule, ReactiveFormsModule], template: "<textarea matInput [placeholder]=\"placeholder\" \r\n [readonly]=\"props.readonly\" [errorStateMatcher]=\"errorStateMatcher\"\r\n [cols]=\"props.cols\"\r\n [rows]=\"props.rows\"\r\n [tabindex]=\"props.tabindex\"\r\n [formControl]=\"formControl\" [required]=\"required\">\r\n</textarea>", styles: [":host{width:100%}\n"] }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvdHlwZXMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBVWpELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxTQUEwQjtJQVJ6RTs7UUFTVyxtQkFBYyxHQUFHO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0YsQ0FBQztLQUNIOzhHQVBZLHlCQUF5QjtrR0FBekIseUJBQXlCLHFHQ2R0QyxnVEFNVyw0RURNRyxjQUFjLDBXQUFDLG1CQUFtQjs7MkZBRW5DLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxjQUFjLEVBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtdGV4dGFyZWEtdHlwZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOlsnLi90ZXh0YXJlYS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdElucHV0TW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0VGV4dGFyZWFUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZz4ge1xyXG4gIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgcHJvcHM6IHtcclxuICAgICAgY29sczogMSxcclxuICAgICAgcm93czogMyxcclxuICAgIH0sXHJcbiAgfTtcclxufSIsIjx0ZXh0YXJlYSBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiAgIFxyXG4gICAgW3JlYWRvbmx5XT1cInByb3BzLnJlYWRvbmx5XCIgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImVycm9yU3RhdGVNYXRjaGVyXCJcclxuICAgIFtjb2xzXT1cInByb3BzLmNvbHNcIlxyXG4gICAgW3Jvd3NdPVwicHJvcHMucm93c1wiXHJcbiAgICBbdGFiaW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCI+XHJcbjwvdGV4dGFyZWE+Il19
@@ -0,0 +1,92 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { MatIconModule } from '@angular/material/icon';
3
+ import { FieldWrapper } from '@ngx-formly/core';
4
+ import { FormlyMaterialModule } from '@ngx-formly/material';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/icon";
7
+ export class CmatAddonsWrapperComponent extends FieldWrapper {
8
+ ngAfterViewInit() {
9
+ if (this.matPrefix) {
10
+ this.props.prefix = this.matPrefix;
11
+ }
12
+ if (this.matSuffix) {
13
+ this.props.suffix = this.matSuffix;
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatAddonsWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatAddonsWrapperComponent, isStandalone: true, selector: "cmat-addons-wrapper", viewQueries: [{ propertyName: "matPrefix", first: true, predicate: ["matPrefix"], descendants: true, static: true }, { propertyName: "matSuffix", first: true, predicate: ["matSuffix"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
18
+ <ng-template #matPrefix>
19
+ @if(props.addonLeft){
20
+ <span>
21
+ @if(props.addonLeft.icon){
22
+ <mat-icon [svgIcon]="props.addonLeft.icon"></mat-icon>
23
+ }
24
+ @if(props.addonLeft.text){
25
+ <span>{{ props.addonLeft.text }}</span>
26
+ }
27
+
28
+ </span>
29
+ }
30
+ </ng-template>
31
+
32
+ <ng-container #fieldComponent></ng-container>
33
+
34
+ <ng-template #matSuffix>
35
+ @if(props.addonRight){
36
+ <span>
37
+ @if(props.addonRight.icon){
38
+ <mat-icon [svgIcon]="props.addonRight.icon"></mat-icon>
39
+ }
40
+ @if(props.addonRight.text) {
41
+ <span>{{ props.addonRight.text }}</span>
42
+ }
43
+ </span>
44
+ }
45
+ </ng-template>
46
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormlyMaterialModule }] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatAddonsWrapperComponent, decorators: [{
49
+ type: Component,
50
+ args: [{
51
+ selector: 'cmat-addons-wrapper',
52
+ template: `
53
+ <ng-template #matPrefix>
54
+ @if(props.addonLeft){
55
+ <span>
56
+ @if(props.addonLeft.icon){
57
+ <mat-icon [svgIcon]="props.addonLeft.icon"></mat-icon>
58
+ }
59
+ @if(props.addonLeft.text){
60
+ <span>{{ props.addonLeft.text }}</span>
61
+ }
62
+
63
+ </span>
64
+ }
65
+ </ng-template>
66
+
67
+ <ng-container #fieldComponent></ng-container>
68
+
69
+ <ng-template #matSuffix>
70
+ @if(props.addonRight){
71
+ <span>
72
+ @if(props.addonRight.icon){
73
+ <mat-icon [svgIcon]="props.addonRight.icon"></mat-icon>
74
+ }
75
+ @if(props.addonRight.text) {
76
+ <span>{{ props.addonRight.text }}</span>
77
+ }
78
+ </span>
79
+ }
80
+ </ng-template>
81
+ `,
82
+ standalone: true,
83
+ imports: [MatIconModule, FormlyMaterialModule]
84
+ }]
85
+ }], propDecorators: { matPrefix: [{
86
+ type: ViewChild,
87
+ args: ['matPrefix', { static: true }]
88
+ }], matSuffix: [{
89
+ type: ViewChild,
90
+ args: ['matSuffix', { static: true }]
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3dyYXBwZXJzL2FkZG9ucy9hZGRvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFxQzVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxZQUFZO0lBSTFELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNwQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs4R0FaVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixtVUFqQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVCwyREFFUyxhQUFhLG1MQUFDLG9CQUFvQjs7MkZBRWpDLDBCQUEwQjtrQkFuQ3RDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFDLG9CQUFvQixDQUFDO2lCQUM5Qzs4QkFFMkMsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEZpZWxkV3JhcHBlciB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlNYXRlcmlhbE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY21hdC1hZGRvbnMtd3JhcHBlcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy10ZW1wbGF0ZSAjbWF0UHJlZml4PlxyXG4gICAgICBAaWYocHJvcHMuYWRkb25MZWZ0KXtcclxuICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgIEBpZihwcm9wcy5hZGRvbkxlZnQuaWNvbil7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJwcm9wcy5hZGRvbkxlZnQuaWNvblwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYocHJvcHMuYWRkb25MZWZ0LnRleHQpe1xyXG4gICAgICAgICAgICA8c3Bhbj57eyBwcm9wcy5hZGRvbkxlZnQudGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgIH0gICAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgPC9zcGFuPlxyXG4gICAgICB9ICAgXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgI2ZpZWxkQ29tcG9uZW50PjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbWF0U3VmZml4PlxyXG4gICAgQGlmKHByb3BzLmFkZG9uUmlnaHQpe1xyXG4gICAgICA8c3Bhbj5cclxuICAgICAgQGlmKHByb3BzLmFkZG9uUmlnaHQuaWNvbil7XHJcbiAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cInByb3BzLmFkZG9uUmlnaHQuaWNvblwiPjwvbWF0LWljb24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmKHByb3BzLmFkZG9uUmlnaHQudGV4dCkge1xyXG4gICAgICAgIDxzcGFuPnt7IHByb3BzLmFkZG9uUmlnaHQudGV4dCB9fTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSxGb3JtbHlNYXRlcmlhbE1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRBZGRvbnNXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRXcmFwcGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnbWF0UHJlZml4JywgeyBzdGF0aWM6IHRydWUgfSkgbWF0UHJlZml4ITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdtYXRTdWZmaXgnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXRTdWZmaXghOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tYXRQcmVmaXgpIHtcclxuICAgICAgdGhpcy5wcm9wcy5wcmVmaXggPSB0aGlzLm1hdFByZWZpeDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXRTdWZmaXgpIHtcclxuICAgICAgdGhpcy5wcm9wcy5zdWZmaXggPSB0aGlzLm1hdFN1ZmZpeDtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,14 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { MatCardModule } from '@angular/material/card';
3
+ import { FieldWrapper } from '@ngx-formly/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/card";
6
+ export class CmatCardWrapperComponent extends FieldWrapper {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatCardWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatCardWrapperComponent, isStandalone: true, selector: "cmat-card-wrapper", usesInheritance: true, ngImport: i0, template: "<mat-card class=\"dark:bg-white dark:bg-opacity-5\">\r\n @if(props.label){\r\n <mat-card-title class=\"p-4\">{{ props.label }}</mat-card-title>\r\n }\r\n \r\n <mat-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </mat-card-content> \r\n</mat-card>", dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatCardWrapperComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'cmat-card-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatCardModule], template: "<mat-card class=\"dark:bg-white dark:bg-opacity-5\">\r\n @if(props.label){\r\n <mat-card-title class=\"p-4\">{{ props.label }}</mat-card-title>\r\n }\r\n \r\n <mat-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </mat-card-content> \r\n</mat-card>" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvY3VzdG9tLWZvcm1seS93cmFwcGVycy9jYXJkL2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvd3JhcHBlcnMvY2FyZC9jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBU2hELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZOzhHQUE3Qyx3QkFBd0I7a0dBQXhCLHdCQUF3QixvR0NYckMsNlNBUVcsMkNEQ0UsYUFBYTs7MkZBRWIsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNJLG1CQUFtQixtQkFFWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ3BDLElBQUksV0FDUCxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBGaWVsZFdyYXBwZXIgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LWNhcmQtd3JhcHBlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6dHJ1ZSxcclxuICAgIGltcG9ydHM6W01hdENhcmRNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0Q2FyZFdyYXBwZXJDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFdyYXBwZXIge31cclxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZGFyazpiZy13aGl0ZSBkYXJrOmJnLW9wYWNpdHktNVwiPlxyXG4gICAgQGlmKHByb3BzLmxhYmVsKXtcclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJwLTRcIj57eyBwcm9wcy5sYWJlbCB9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICB9XHJcbiAgICBcclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgI2ZpZWxkQ29tcG9uZW50PjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PiAgICBcclxuPC9tYXQtY2FyZD4iXX0=
@@ -0,0 +1,14 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { MatExpansionModule } from '@angular/material/expansion';
3
+ import { FieldWrapper } from '@ngx-formly/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/expansion";
6
+ export class CmatExpansionWrapperComponent extends FieldWrapper {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatExpansionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CmatExpansionWrapperComponent, isStandalone: true, selector: "cmat-expansion-wrapper", usesInheritance: true, ngImport: i0, template: "<mat-expansion-panel [expanded]=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ to.label }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ to.description }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent #fieldComponent></ng-template>\r\n</mat-expansion-panel>", dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i1.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i1.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i1.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i1.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "directive", type: i1.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatExpansionWrapperComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'cmat-expansion-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatExpansionModule], template: "<mat-expansion-panel [expanded]=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ to.label }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ to.description }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent #fieldComponent></ng-template>\r\n</mat-expansion-panel>" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9jdXN0b20tZm9ybWx5L3dyYXBwZXJzL2V4cGFuc2lvbi9leHBhbnNpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2N1c3RvbS1mb3JtbHkvd3JhcHBlcnMvZXhwYW5zaW9uL2V4cGFuc2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBU2hELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxZQUFZOzhHQUFsRCw2QkFBNkI7a0dBQTdCLDZCQUE2Qix5R0NYMUMsOFpBVXNCLDJDRERULGtCQUFrQjs7MkZBRWxCLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBRWpCLHVCQUF1QixDQUFDLE1BQU0sY0FDcEMsSUFBSSxXQUNQLENBQUMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IEZpZWxkV3JhcHBlciB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtZXhwYW5zaW9uLXdyYXBwZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4cGFuc2lvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6dHJ1ZSxcclxuICAgIGltcG9ydHM6W01hdEV4cGFuc2lvbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRFeHBhbnNpb25XcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRXcmFwcGVyIHt9XHJcbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsIFtleHBhbmRlZF09XCJ0cnVlXCI+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgICAge3sgdG8ubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgICB7eyB0by5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgIDxuZy10ZW1wbGF0ZSBtYXRFeHBhbnNpb25QYW5lbENvbnRlbnQgI2ZpZWxkQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XHJcbjwvbWF0LWV4cGFuc2lvbi1wYW5lbD4iXX0=