cmat 0.0.15 → 0.0.17

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 (272) hide show
  1. package/README.md +2 -2
  2. package/components/custom-formly/public-api.d.ts +1 -0
  3. package/components/custom-formly/types/button/button.component.d.ts +19 -3
  4. package/components/custom-formly/types/cascade/cascade.component.d.ts +3 -2
  5. package/components/custom-formly/types/checklist/checklist.component.d.ts +3 -2
  6. package/components/custom-formly/types/chips/chips.component.d.ts +3 -2
  7. package/components/custom-formly/types/date-range/date-range.component.d.ts +3 -2
  8. package/components/custom-formly/types/datepicker/datepicker.component.d.ts +3 -2
  9. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +3 -2
  10. package/components/custom-formly/types/number/number.component.d.ts +3 -2
  11. package/components/custom-formly/types/quill/quill.component.d.ts +3 -2
  12. package/components/custom-formly/types/radio/radio.component.d.ts +3 -2
  13. package/components/custom-formly/types/rating/rating.component.d.ts +3 -2
  14. package/components/custom-formly/types/repeat/repeat.component.d.ts +3 -2
  15. package/components/custom-formly/types/select/select.component.d.ts +3 -2
  16. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +2 -2
  17. package/components/custom-formly/types/stepper/stepper.type.d.ts +2 -2
  18. package/components/custom-formly/types/table/table.component.d.ts +11 -5
  19. package/components/custom-formly/types/tags/tags.component.d.ts +3 -2
  20. package/components/custom-formly/types/upload/upload.component.d.ts +3 -2
  21. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +25 -0
  22. package/components/material-datetimepicker/datetimepicker.d.ts +4 -3
  23. package/components/select-search/select-search.component.d.ts +2 -1
  24. package/components/upload/upload-queue/upload-queue.component.d.ts +3 -2
  25. package/esm2022/animations/dropdown.mjs +1 -1
  26. package/esm2022/components/adapter/dayjs-date-adapter.mjs +4 -4
  27. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
  28. package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
  29. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +4 -4
  30. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +4 -4
  31. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +5 -5
  32. package/esm2022/components/card/card.component.mjs +5 -5
  33. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -5
  34. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +6 -6
  35. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -5
  36. package/esm2022/components/cascade/options.interface.mjs +1 -1
  37. package/esm2022/components/chip-input/chip-input.component.mjs +6 -7
  38. package/esm2022/components/custom-formly/extension/addons.extension.mjs +2 -2
  39. package/esm2022/components/custom-formly/public-api.mjs +2 -1
  40. package/esm2022/components/custom-formly/types/button/button.component.mjs +57 -15
  41. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
  42. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +4 -4
  43. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +4 -4
  44. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +4 -4
  45. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +4 -4
  46. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
  47. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -4
  48. package/esm2022/components/custom-formly/types/number/number.component.mjs +4 -4
  49. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +6 -6
  50. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +4 -4
  51. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +4 -4
  52. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +4 -4
  53. package/esm2022/components/custom-formly/types/select/select.component.mjs +16 -15
  54. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
  55. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +4 -4
  56. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +1 -1
  57. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +4 -4
  58. package/esm2022/components/custom-formly/types/table/table.component.mjs +28 -14
  59. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +4 -4
  60. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +4 -4
  61. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +4 -4
  62. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
  63. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +4 -4
  64. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +4 -4
  65. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +4 -4
  66. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +47 -0
  67. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +4 -4
  68. package/esm2022/components/date-range/date-range.component.mjs +6 -6
  69. package/esm2022/components/drawer/drawer.component.mjs +4 -4
  70. package/esm2022/components/drawer/drawer.service.mjs +4 -4
  71. package/esm2022/components/fullscreen/fullscreen.component.mjs +4 -4
  72. package/esm2022/components/highlight/highlight.component.mjs +4 -4
  73. package/esm2022/components/highlight/highlight.service.mjs +4 -4
  74. package/esm2022/components/json-editor/json-editor.component.mjs +6 -6
  75. package/esm2022/components/masonry/masonry.component.mjs +4 -4
  76. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +5 -5
  77. package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -5
  78. package/esm2022/components/material-datetimepicker/calendar.mjs +5 -5
  79. package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
  80. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -4
  81. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +4 -4
  82. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +8 -8
  83. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +14 -11
  84. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -5
  85. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +4 -4
  86. package/esm2022/components/material-datetimepicker/time.mjs +8 -8
  87. package/esm2022/components/material-datetimepicker/year-view.mjs +4 -4
  88. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
  89. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +4 -4
  90. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +4 -4
  91. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +4 -4
  92. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +4 -4
  93. package/esm2022/components/navigation/navigation.service.mjs +4 -4
  94. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +4 -4
  95. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +5 -5
  96. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
  97. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +4 -4
  98. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +4 -4
  99. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +4 -4
  100. package/esm2022/components/navigation/vertical/vertical.component.mjs +4 -4
  101. package/esm2022/components/pagination/pagination.component.mjs +5 -5
  102. package/esm2022/components/pagination/pagination.directive.mjs +4 -4
  103. package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
  104. package/esm2022/components/pagination/pagination.service.mjs +4 -4
  105. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
  106. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +4 -4
  107. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
  108. package/esm2022/components/popover/popover-trigger.mjs +4 -4
  109. package/esm2022/components/popover/popover.component.mjs +4 -4
  110. package/esm2022/components/popover/popover.target.mjs +4 -4
  111. package/esm2022/components/progress-bar/progress-bar.component.mjs +5 -5
  112. package/esm2022/components/rating/rating.component.mjs +5 -5
  113. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +4 -4
  114. package/esm2022/components/select-search/select-search-clear.directive.mjs +4 -4
  115. package/esm2022/components/select-search/select-search.component.mjs +6 -6
  116. package/esm2022/components/select-tree/select-tree.component.mjs +6 -6
  117. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
  118. package/esm2022/components/timeline/timeline.component.mjs +4 -4
  119. package/esm2022/components/toast/toast-modal.component.mjs +5 -5
  120. package/esm2022/components/toast/toast.component.mjs +4 -4
  121. package/esm2022/components/toast/toast.service.mjs +4 -4
  122. package/esm2022/components/transfer-picker/filter/filter.component.mjs +5 -5
  123. package/esm2022/components/transfer-picker/search/search.component.mjs +5 -5
  124. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +5 -5
  125. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
  126. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +5 -5
  127. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
  128. package/esm2022/components/upload/files.util.service.mjs +4 -4
  129. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +13 -12
  130. package/esm2022/components/upload/upload.component.mjs +4 -4
  131. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
  132. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +4 -4
  133. package/esm2022/directives/autofocus/autofocus.directive.mjs +4 -4
  134. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +4 -4
  135. package/esm2022/directives/debounce/debounce-click.directive.mjs +4 -4
  136. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +4 -4
  137. package/esm2022/directives/digit-only/digit-only.directive.mjs +10 -10
  138. package/esm2022/directives/digit-only/mask.directive.mjs +5 -5
  139. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
  140. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
  141. package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
  142. package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
  143. package/esm2022/pipes/date-format/date-format.pipe.mjs +7 -5
  144. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
  145. package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
  146. package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
  147. package/esm2022/pipes/secure/secure-pipe.mjs +4 -4
  148. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +4 -4
  149. package/esm2022/services/alert/alert.service.mjs +4 -4
  150. package/esm2022/services/config/config.service.mjs +4 -4
  151. package/esm2022/services/config/urlStateConfig.service.mjs +4 -4
  152. package/esm2022/services/confirmation/confirmation.service.mjs +4 -4
  153. package/esm2022/services/confirmation/dialog/dialog.component.mjs +5 -5
  154. package/esm2022/services/data/data.service.mjs +6 -6
  155. package/esm2022/services/loading/loading.interceptor.mjs +5 -5
  156. package/esm2022/services/loading/loading.service.mjs +4 -4
  157. package/esm2022/services/local-storage/local-storage.service.mjs +4 -4
  158. package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
  159. package/esm2022/services/platform/platform.service.mjs +4 -4
  160. package/esm2022/services/splash-screen/splash-screen.service.mjs +4 -4
  161. package/esm2022/services/title/title.service.mjs +4 -4
  162. package/esm2022/services/translation/translation.service.mjs +5 -5
  163. package/esm2022/services/utils/utils.service.mjs +40 -7
  164. package/fesm2022/cmat-animations.mjs.map +1 -1
  165. package/fesm2022/cmat-components-adapter.mjs +9 -9
  166. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  167. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  168. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  169. package/fesm2022/cmat-components-card.mjs +4 -4
  170. package/fesm2022/cmat-components-card.mjs.map +1 -1
  171. package/fesm2022/cmat-components-cascade.mjs +13 -13
  172. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  173. package/fesm2022/cmat-components-chip-input.mjs +5 -6
  174. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  175. package/fesm2022/cmat-components-custom-formly.mjs +235 -142
  176. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  177. package/fesm2022/cmat-components-date-range.mjs +5 -5
  178. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  179. package/fesm2022/cmat-components-drawer.mjs +6 -6
  180. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  181. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  182. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  183. package/fesm2022/cmat-components-highlight.mjs +6 -6
  184. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  185. package/fesm2022/cmat-components-json-editor.mjs +5 -5
  186. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  187. package/fesm2022/cmat-components-masonry.mjs +3 -3
  188. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  189. package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
  190. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  191. package/fesm2022/cmat-components-material-datetimepicker.mjs +55 -52
  192. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  193. package/fesm2022/cmat-components-navigation.mjs +42 -42
  194. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  195. package/fesm2022/cmat-components-pagination.mjs +13 -13
  196. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  197. package/fesm2022/cmat-components-password-strength.mjs +11 -11
  198. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  199. package/fesm2022/cmat-components-popover.mjs +9 -9
  200. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  201. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  202. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  203. package/fesm2022/cmat-components-rating.mjs +4 -4
  204. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  205. package/fesm2022/cmat-components-select-search.mjs +11 -11
  206. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  207. package/fesm2022/cmat-components-select-tree.mjs +5 -5
  208. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  209. package/fesm2022/cmat-components-timeline.mjs +13 -13
  210. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  211. package/fesm2022/cmat-components-toast.mjs +10 -10
  212. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  213. package/fesm2022/cmat-components-transfer-picker.mjs +23 -23
  214. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  215. package/fesm2022/cmat-components-upload.mjs +18 -17
  216. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  217. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  218. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  219. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  220. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  221. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  222. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  223. package/fesm2022/cmat-directives-digit-only.mjs +13 -13
  224. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  225. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  226. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  227. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  228. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  229. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  230. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  231. package/fesm2022/cmat-pipes-date-format.mjs +6 -4
  232. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  233. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  234. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  235. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  236. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  237. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  238. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  239. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  240. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  241. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  242. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  243. package/fesm2022/cmat-services-alert.mjs +3 -3
  244. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  245. package/fesm2022/cmat-services-config.mjs +6 -6
  246. package/fesm2022/cmat-services-config.mjs.map +1 -1
  247. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  248. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  249. package/fesm2022/cmat-services-data.mjs +5 -5
  250. package/fesm2022/cmat-services-data.mjs.map +1 -1
  251. package/fesm2022/cmat-services-loading.mjs +7 -7
  252. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  253. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  254. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  255. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  256. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  257. package/fesm2022/cmat-services-platform.mjs +3 -3
  258. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  259. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  260. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  261. package/fesm2022/cmat-services-title.mjs +3 -3
  262. package/fesm2022/cmat-services-title.mjs.map +1 -1
  263. package/fesm2022/cmat-services-translation.mjs +4 -4
  264. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  265. package/fesm2022/cmat-services-utils.mjs +39 -6
  266. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  267. package/icons/material-icons/material-solid.svg +3585 -3585
  268. package/package.json +67 -67
  269. package/pipes/date-format/date-format.pipe.d.ts +1 -1
  270. package/services/data/data.service.d.ts +1 -1
  271. package/services/utils/utils.service.d.ts +4 -0
  272. package/styles/overrides/angular-material.scss +6 -0
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # Cmat
2
-
1
+ # Cmat
2
+
3
3
  个人使用UI控件包,基于angular material
@@ -3,6 +3,7 @@ export * from './wrappers/addons/addons.component';
3
3
  export * from './wrappers/card/card.component';
4
4
  export * from './wrappers/expansion/expansion.component';
5
5
  export * from './wrappers/panel/panel.component';
6
+ export * from './wrappers/form-field/form-field.component';
6
7
  export * from './types/button/button.component';
7
8
  export * from './types/cascade/cascade.component';
8
9
  export * from './types/checklist/checklist.component';
@@ -1,17 +1,33 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { MatSnackBar } from '@angular/material/snack-bar';
1
3
  import { FieldTypeConfig } from '@ngx-formly/core';
2
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
4
+ import { FieldType } from '@ngx-formly/material/form-field';
5
+ import { CmatToastService } from 'cmat/components/toast';
6
+ import { CmatAlertMessage } from 'cmat/services/alert';
7
+ import { CmatMediaWatcherService } from 'cmat/services/media-watcher';
8
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
3
9
  import * as i0 from "@angular/core";
4
- interface ButtonProps extends FormlyFieldProps {
10
+ interface ButtonProps extends CustomFormFieldProps {
5
11
  color?: 'primary' | 'accent' | 'warn';
6
12
  onClick?: any;
7
13
  }
8
- export declare class CmatButtonTypeComponent extends FieldType<FieldTypeConfig<ButtonProps>> {
14
+ export declare class CmatButtonTypeComponent extends FieldType<FieldTypeConfig<ButtonProps>> implements OnInit, OnDestroy {
15
+ private _cmatToastService;
16
+ private _snackBar;
17
+ private _cmatMediaWatcherService;
9
18
  defaultOptions: {
10
19
  props: {
11
20
  color: "primary";
12
21
  };
13
22
  };
23
+ private _isPhone;
24
+ private _unsubscribeAll;
25
+ constructor(_cmatToastService: CmatToastService, _snackBar: MatSnackBar, _cmatMediaWatcherService: CmatMediaWatcherService);
26
+ ngOnInit(): void;
27
+ ngOnDestroy(): void;
14
28
  onClick($event: Event): void;
29
+ showMessage(message: CmatAlertMessage | void): void;
30
+ private _executeFunctionFromString;
15
31
  static ɵfac: i0.ɵɵFactoryDeclaration<CmatButtonTypeComponent, never>;
16
32
  static ɵcmp: i0.ɵɵComponentDeclaration<CmatButtonTypeComponent, "cmat-button-type", never, {}, {}, never, never, true, never>;
17
33
  }
@@ -1,10 +1,11 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
3
3
  import { FieldTypeConfig } from '@ngx-formly/core';
4
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
4
+ import { FieldType } from '@ngx-formly/material/form-field';
5
5
  import { CmatMediaWatcherService } from 'cmat/services/media-watcher';
6
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
6
7
  import * as i0 from "@angular/core";
7
- interface ChipsCascadeProps extends FormlyFieldProps {
8
+ interface ChipsCascadeProps extends CustomFormFieldProps {
8
9
  clearable: boolean;
9
10
  fullLevels: boolean;
10
11
  changeOnSelect: boolean;
@@ -1,10 +1,11 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { OnInit, OnDestroy } from '@angular/core';
3
3
  import { FieldTypeConfig } from '@ngx-formly/core';
4
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
4
+ import { FieldType } from '@ngx-formly/material/form-field';
5
5
  import { Observable } from 'rxjs';
6
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
6
7
  import * as i0 from "@angular/core";
7
- interface CheckListProps extends FormlyFieldProps {
8
+ interface CheckListProps extends CustomFormFieldProps {
8
9
  showAllCheck: boolean;
9
10
  controlMaxHeight: boolean;
10
11
  domain?: {
@@ -1,9 +1,10 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { OnDestroy, OnInit } from '@angular/core';
3
3
  import { FieldTypeConfig } from '@ngx-formly/core';
4
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
4
+ import { FieldType } from '@ngx-formly/material/form-field';
5
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
5
6
  import * as i0 from "@angular/core";
6
- interface ChipsInputProps extends FormlyFieldProps {
7
+ interface ChipsInputProps extends CustomFormFieldProps {
7
8
  hasAutocomplete?: boolean;
8
9
  autocompleteText?: string;
9
10
  domain?: {
@@ -1,7 +1,8 @@
1
1
  import { FieldTypeConfig } from '@ngx-formly/core';
2
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
2
+ import { FieldType } from '@ngx-formly/material/form-field';
3
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
3
4
  import * as i0 from "@angular/core";
4
- interface DateRangeProps extends FormlyFieldProps {
5
+ interface DateRangeProps extends CustomFormFieldProps {
5
6
  dateFormat: string;
6
7
  timeFormat: string;
7
8
  timeRange: boolean;
@@ -1,10 +1,11 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FieldTypeConfig } from '@ngx-formly/core';
3
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
3
+ import { FieldType } from '@ngx-formly/material/form-field';
4
4
  import { CmatCalendarView, CmatDatetimepickerMode, CmatDatetimepickerType } from 'cmat/components/material-datetimepicker';
5
5
  import { CmatMediaWatcherService } from 'cmat/services/media-watcher';
6
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
6
7
  import * as i0 from "@angular/core";
7
- interface DatepickerProps extends FormlyFieldProps {
8
+ interface DatepickerProps extends CustomFormFieldProps {
8
9
  startView: CmatCalendarView;
9
10
  mode: CmatDatetimepickerMode;
10
11
  togglePosition: 'left' | 'right';
@@ -2,10 +2,11 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { QueryList, Type, OnDestroy, OnInit } from '@angular/core';
3
3
  import { MatCheckbox } from '@angular/material/checkbox';
4
4
  import { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';
5
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
5
+ import { FieldType } from '@ngx-formly/material/form-field';
6
6
  import { Observable } from 'rxjs';
7
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
7
8
  import * as i0 from "@angular/core";
8
- interface MultiCheckboxProps extends FormlyFieldProps {
9
+ interface MultiCheckboxProps extends CustomFormFieldProps {
9
10
  labelPosition: 'before' | 'after';
10
11
  domain?: {
11
12
  url?: string;
@@ -1,7 +1,8 @@
1
1
  import { FieldTypeConfig } from '@ngx-formly/core';
2
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
2
+ import { FieldType } from '@ngx-formly/material/form-field';
3
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
3
4
  import * as i0 from "@angular/core";
4
- interface NumberProps extends FormlyFieldProps {
5
+ interface NumberProps extends CustomFormFieldProps {
5
6
  decimal: boolean;
6
7
  min: number;
7
8
  max: number;
@@ -1,11 +1,12 @@
1
1
  import { ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { FieldTypeConfig } from '@ngx-formly/core';
3
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
3
+ import { FieldType } from '@ngx-formly/material/form-field';
4
4
  import { QuillModules } from 'ngx-quill';
5
5
  import { CmatFilesUtilService } from 'cmat/components/upload';
6
6
  import { CmatUrlStateConfigService } from 'cmat/services/config';
7
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
7
8
  import * as i0 from "@angular/core";
8
- interface QuillProps extends FormlyFieldProps {
9
+ interface QuillProps extends CustomFormFieldProps {
9
10
  fileAlias: string;
10
11
  filePath: string;
11
12
  }
@@ -2,10 +2,11 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { AfterViewInit, OnDestroy, Type, OnInit } from '@angular/core';
3
3
  import { MatRadioGroup } from '@angular/material/radio';
4
4
  import { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';
5
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
5
+ import { FieldType } from '@ngx-formly/material/form-field';
6
6
  import { Observable } from 'rxjs';
7
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
7
8
  import * as i0 from "@angular/core";
8
- interface RadioProps extends FormlyFieldProps {
9
+ interface RadioProps extends CustomFormFieldProps {
9
10
  labelPosition: 'before' | 'after';
10
11
  domain?: {
11
12
  url?: string;
@@ -1,7 +1,8 @@
1
1
  import { FieldTypeConfig } from '@ngx-formly/core';
2
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
2
+ import { FieldType } from '@ngx-formly/material/form-field';
3
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
3
4
  import * as i0 from "@angular/core";
4
- interface RatingProps extends FormlyFieldProps {
5
+ interface RatingProps extends CustomFormFieldProps {
5
6
  stars: number;
6
7
  readonly: boolean;
7
8
  hover: boolean;
@@ -1,6 +1,7 @@
1
- import { FieldArrayType, FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';
1
+ import { FieldArrayType, FieldTypeConfig } from '@ngx-formly/core';
2
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
2
3
  import * as i0 from "@angular/core";
3
- interface RepeatProps extends FormlyFieldProps {
4
+ interface RepeatProps extends CustomFormFieldProps {
4
5
  addText: string;
5
6
  }
6
7
  export declare class CmatRepeatTypeComponent extends FieldArrayType<FieldTypeConfig<RepeatProps>> {
@@ -3,10 +3,11 @@ import { OnDestroy, OnInit } from '@angular/core';
3
3
  import { FormControl } from '@angular/forms';
4
4
  import { FieldTypeConfig } from '@ngx-formly/core';
5
5
  import { FormlyFieldSelectProps } from '@ngx-formly/core/select';
6
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
6
+ import { FieldType } from '@ngx-formly/material/form-field';
7
7
  import { ReplaySubject } from 'rxjs';
8
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
8
9
  import * as i0 from "@angular/core";
9
- interface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {
10
+ interface SelectProps extends CustomFormFieldProps, FormlyFieldSelectProps {
10
11
  multiple?: boolean;
11
12
  disableOptionCentering?: boolean;
12
13
  typeaheadDebounceInterval?: number;
@@ -3,9 +3,9 @@ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
3
3
  import { FieldTypeConfig } from '@ngx-formly/core';
4
4
  import { FormlyFieldSelectProps } from '@ngx-formly/core/select';
5
5
  import { FieldType } from '@ngx-formly/material';
6
- import { FormlyFieldProps } from '@ngx-formly/material/form-field';
6
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
7
7
  import * as i0 from "@angular/core";
8
- interface SelectTreeProps extends FormlyFieldProps, FormlyFieldSelectProps {
8
+ interface SelectTreeProps extends CustomFormFieldProps, FormlyFieldSelectProps {
9
9
  multiple: boolean;
10
10
  search: boolean;
11
11
  canNull: boolean;
@@ -1,5 +1,5 @@
1
- import { FormlyFieldProps } from '@ngx-formly/core';
2
- export interface StepperProps extends FormlyFieldProps {
1
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
2
+ export interface StepperProps extends CustomFormFieldProps {
3
3
  isEditable?: boolean;
4
4
  isLinear?: boolean;
5
5
  isOptional?: boolean;
@@ -1,13 +1,16 @@
1
- import { OnInit, TemplateRef, ChangeDetectorRef } from '@angular/core';
1
+ import { OnInit, TemplateRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { MatTable } from '@angular/material/table';
4
- import { FieldArrayType, FieldTypeConfig, FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core';
4
+ import { FieldArrayType, FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';
5
+ import { CmatMediaWatcherService } from 'cmat/services/media-watcher';
6
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
5
7
  import * as i0 from "@angular/core";
6
- interface TableProps extends FormlyFieldProps {
8
+ interface TableProps extends CustomFormFieldProps {
7
9
  addText: string;
8
10
  showColumn?: boolean;
9
11
  }
10
- export declare class CmatTableTypeComponent extends FieldArrayType<FieldTypeConfig<TableProps>> implements OnInit {
12
+ export declare class CmatTableTypeComponent extends FieldArrayType<FieldTypeConfig<TableProps>> implements OnInit, OnDestroy {
13
+ private _cmatMediaWatcherService;
11
14
  private _changeDetectorRef;
12
15
  dialogRef: TemplateRef<any>;
13
16
  table: MatTable<any>;
@@ -25,13 +28,16 @@ export declare class CmatTableTypeComponent extends FieldArrayType<FieldTypeConf
25
28
  addText: string;
26
29
  };
27
30
  };
31
+ isScreenSmall: boolean;
28
32
  private readonly _dialog;
29
33
  private readonly _viewContainerRef;
30
34
  private _dialogRef;
31
- constructor(_changeDetectorRef: ChangeDetectorRef);
35
+ private _unsubscribeAll;
36
+ constructor(_cmatMediaWatcherService: CmatMediaWatcherService, _changeDetectorRef: ChangeDetectorRef);
32
37
  get fieldArray(): FormlyFieldConfig[];
33
38
  get key(): string;
34
39
  ngOnInit(): void;
40
+ ngOnDestroy(): void;
35
41
  addRow(): void;
36
42
  editRow(item: any, index: number): void;
37
43
  deleteRow(id: number): void;
@@ -2,10 +2,11 @@ import { Overlay } from '@angular/cdk/overlay';
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { ChangeDetectorRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
4
4
  import { FieldTypeConfig } from '@ngx-formly/core';
5
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
5
+ import { FieldType } from '@ngx-formly/material/form-field';
6
6
  import { Observable } from 'rxjs';
7
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
7
8
  import * as i0 from "@angular/core";
8
- interface TagsProps extends FormlyFieldProps {
9
+ interface TagsProps extends CustomFormFieldProps {
9
10
  domain?: {
10
11
  url?: string;
11
12
  code?: string;
@@ -1,7 +1,8 @@
1
1
  import { FieldTypeConfig } from '@ngx-formly/core';
2
- import { FieldType, FormlyFieldProps } from '@ngx-formly/material/form-field';
2
+ import { FieldType } from '@ngx-formly/material/form-field';
3
+ import { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';
3
4
  import * as i0 from "@angular/core";
4
- interface UploadProps extends FormlyFieldProps {
5
+ interface UploadProps extends CustomFormFieldProps {
5
6
  fileAlias: string;
6
7
  filePath: string;
7
8
  fileCategory: string;
@@ -0,0 +1,25 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
2
+ import { AfterViewInit, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
3
+ import { MatFormField } from '@angular/material/form-field';
4
+ import { FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';
5
+ import { FormlyFieldProps, FormlyWrapperFormField } from '@ngx-formly/material/form-field/form-field.wrapper';
6
+ import * as i0 from "@angular/core";
7
+ interface MatFormlyFieldConfig extends FormlyFieldConfig<CustomFormFieldProps> {
8
+ _formField?: FormlyWrapperFormField;
9
+ }
10
+ export interface CustomFormFieldProps extends FormlyFieldProps {
11
+ showValidationMessage?: boolean;
12
+ }
13
+ export declare class CmatFormFieldWrapperComponent extends FieldWrapper<MatFormlyFieldConfig> implements OnInit, OnDestroy, AfterViewInit {
14
+ private renderer;
15
+ private elementRef;
16
+ private focusMonitor;
17
+ formField: MatFormField;
18
+ constructor(renderer: Renderer2, elementRef: ElementRef, focusMonitor: FocusMonitor);
19
+ ngOnInit(): void;
20
+ ngAfterViewInit(): void;
21
+ ngOnDestroy(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<CmatFormFieldWrapperComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<CmatFormFieldWrapperComponent, "cmat-form-field-wrapper", never, {}, {}, never, never, true, never>;
24
+ }
25
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { Directionality } from '@angular/cdk/bidi';
2
2
  import { Overlay, ScrollStrategy } from '@angular/cdk/overlay';
3
- import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
3
+ import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, Injector, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
4
4
  import { ThemePalette } from '@angular/material/core';
5
5
  import { Subject } from 'rxjs';
6
6
  import { DatetimeAdapter } from 'cmat/components/adapter';
@@ -47,6 +47,7 @@ export declare class CmatDatetimepickerContentComponent<D> implements OnInit, Af
47
47
  }
48
48
  export declare class CmatDatetimepickerComponent<D> implements OnDestroy {
49
49
  private _overlay;
50
+ private _injector;
50
51
  private _viewContainerRef;
51
52
  private _scrollStrategy;
52
53
  private _dateAdapter;
@@ -97,7 +98,7 @@ export declare class CmatDatetimepickerComponent<D> implements OnDestroy {
97
98
  private _disabled;
98
99
  private _timeInput;
99
100
  private _restoreFocus;
100
- constructor(_overlay: Overlay, _viewContainerRef: ViewContainerRef, _scrollStrategy: any, _dateAdapter: DatetimeAdapter<D>, _dir: Directionality, _document: any);
101
+ constructor(_overlay: Overlay, _injector: Injector, _viewContainerRef: ViewContainerRef, _scrollStrategy: any, _dateAdapter: DatetimeAdapter<D>, _dir: Directionality, _document: any);
101
102
  /** Whether to show multi-year view. */
102
103
  get multiYearSelector(): boolean;
103
104
  set multiYearSelector(value: boolean);
@@ -184,6 +185,6 @@ export declare class CmatDatetimepickerComponent<D> implements OnDestroy {
184
185
  private _setConnectedPositions;
185
186
  /** Gets an observable that will emit when the overlay is supposed to be closed. */
186
187
  private _getCloseStream;
187
- static ɵfac: i0.ɵɵFactoryDeclaration<CmatDatetimepickerComponent<any>, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
188
+ static ɵfac: i0.ɵɵFactoryDeclaration<CmatDatetimepickerComponent<any>, [null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
188
189
  static ɵcmp: i0.ɵɵComponentDeclaration<CmatDatetimepickerComponent<any>, "cmat-datetimepicker", ["cmatDatetimepicker"], { "startView": { "alias": "startView"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "timeInterval": { "alias": "timeInterval"; "required": false; }; "preventSameDateTimeSelection": { "alias": "preventSameDateTimeSelection"; "required": false; }; "xPosition": { "alias": "xPosition"; "required": false; }; "yPosition": { "alias": "yPosition"; "required": false; }; "multiYearSelector": { "alias": "multiYearSelector"; "required": false; }; "twelvehour": { "alias": "twelvehour"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "opened": { "alias": "opened"; "required": false; }; "color": { "alias": "color"; "required": false; }; "startAt": { "alias": "startAt"; "required": false; }; "type": { "alias": "type"; "required": false; }; "timeInput": { "alias": "timeInput"; "required": false; }; "touchUi": { "alias": "touchUi"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; }; }, { "selectedChanged": "selectedChanged"; "openedStream": "openedStream"; "closedStream": "closedStream"; "viewChanged": "viewChanged"; }, never, never, true, never>;
189
190
  }
@@ -5,6 +5,7 @@ import { MatOption } from '@angular/material/core';
5
5
  import { MatFormField } from '@angular/material/form-field';
6
6
  import { MatSelect } from '@angular/material/select';
7
7
  import { Observable } from 'rxjs';
8
+ import { MatSelectSearchOptions } from './default-options';
8
9
  import { CmatSelectNoEntriesFoundDirective } from './select-no-entries-found.directive';
9
10
  import { CmatSelectSearchClearDirective } from './select-search-clear.directive';
10
11
  import * as i0 from "@angular/core";
@@ -51,7 +52,7 @@ export declare class CmatSelectSearchComponent implements OnInit, OnDestroy, Con
51
52
  private _onDestroy;
52
53
  /** Reference to active descendant for ARIA Support. */
53
54
  private _activeDescendant?;
54
- constructor(matSelect: MatSelect, _changeDetectorRef: ChangeDetectorRef, _viewportRuler: ViewportRuler, _matOption?: MatOption | null, matFormField?: MatFormField | null, _defaultOptions?: Readonly<Partial<Pick<CmatSelectSearchComponent, "ariaLabel" | "clearSearchInput" | "disableInitialFocus" | "disableScrollToActiveOnOptionsChanged" | "enableClearOnEscapePressed" | "hideClearSearchButton" | "noEntriesFoundLabel" | "placeholderLabel" | "preventHomeEndKeyPropagation" | "searching">>> | undefined);
55
+ constructor(matSelect: MatSelect, _changeDetectorRef: ChangeDetectorRef, _viewportRuler: ViewportRuler, _matOption?: MatOption | null, matFormField?: MatFormField | null, _defaultOptions?: MatSelectSearchOptions | undefined);
55
56
  /** whether to show the no entries found message */
56
57
  showNoEntriesFound$: Observable<boolean>;
57
58
  get isInsideMatOption(): boolean;
@@ -1,10 +1,11 @@
1
- import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
2
2
  import { CmatMediaWatcherService } from 'cmat/services/media-watcher';
3
3
  import { CmatUploadComponent } from '../upload.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class CmatUploadQueueComponent implements OnDestroy, AfterViewInit {
6
6
  private _changeDetectorRef;
7
7
  private _cmatMediaWatcherService;
8
+ private _elementRef;
8
9
  fileUploads: QueryList<CmatUploadComponent>;
9
10
  fileAlias: string;
10
11
  filePath: string;
@@ -22,7 +23,7 @@ export declare class CmatUploadQueueComponent implements OnDestroy, AfterViewIni
22
23
  id: string;
23
24
  isHandSet: boolean;
24
25
  private _unsubscribeAll;
25
- constructor(_changeDetectorRef: ChangeDetectorRef, _cmatMediaWatcherService: CmatMediaWatcherService);
26
+ constructor(_changeDetectorRef: ChangeDetectorRef, _cmatMediaWatcherService: CmatMediaWatcherService, _elementRef: ElementRef);
26
27
  onDrop(event: any): void;
27
28
  onDropOver(event: any): void;
28
29
  ngAfterViewInit(): void;
@@ -23,4 +23,4 @@ export const dropdown = trigger('dropdown', [
23
23
  })),
24
24
  transition('* => *', animate('250ms ease-out'))
25
25
  ]);
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2FuaW1hdGlvbnMvZHJvcGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBNEIsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFekcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE2QixPQUFPLENBQ3JELFVBQVUsRUFBRTtJQUNSLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7UUFDVixVQUFVLEVBQUUsUUFBUTtLQUN2QixDQUFDLENBQUM7SUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUM7UUFDVCxPQUFPLEVBQUUsQ0FBQztRQUNWLFVBQVUsRUFBRSxRQUFRO0tBQ3ZCLENBQUMsQ0FBQztJQUNILEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFLEdBQUc7UUFDWCxNQUFNLEVBQUUsR0FBRztRQUNYLE9BQU8sRUFBRSxHQUFHO1FBQ1osVUFBVSxFQUFFLFNBQVM7S0FDeEIsQ0FBQyxDQUFDO0lBQ0gsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztDQUNsRCxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgPSB0cmlnZ2VyKFxuICAgICdkcm9wZG93bicsIFtcbiAgICAgICAgc3RhdGUoJyonLCBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICAgICAgICB9KSksXG4gICAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgIH0pKSxcbiAgICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICBib3JkZXI6ICcqJyxcbiAgICAgICAgICAgIHBhZGRpbmc6ICcqJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICdpbmhlcml0JyxcbiAgICAgICAgfSkpLFxuICAgICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBhbmltYXRlKCcyNTBtcyBlYXNlLW91dCcpKVxuICAgIF1cbik7XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2FuaW1hdGlvbnMvZHJvcGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBNEIsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFekcsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE2QixPQUFPLENBQ3JELFVBQVUsRUFBRTtJQUNSLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7UUFDVixVQUFVLEVBQUUsUUFBUTtLQUN2QixDQUFDLENBQUM7SUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUM7UUFDVCxPQUFPLEVBQUUsQ0FBQztRQUNWLFVBQVUsRUFBRSxRQUFRO0tBQ3ZCLENBQUMsQ0FBQztJQUNILEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxFQUFFLEdBQUc7UUFDWCxNQUFNLEVBQUUsR0FBRztRQUNYLE9BQU8sRUFBRSxHQUFHO1FBQ1osVUFBVSxFQUFFLFNBQVM7S0FDeEIsQ0FBQyxDQUFDO0lBQ0gsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztDQUNsRCxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBkcm9wZG93bjogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhID0gdHJpZ2dlcihcclxuICAgICdkcm9wZG93bicsIFtcclxuICAgICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgICAgaGVpZ2h0OiAwLFxyXG4gICAgICAgICAgICBib3JkZXI6IDAsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgICAgIGhlaWdodDogMCxcclxuICAgICAgICAgICAgYm9yZGVyOiAwLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgICAgIGhlaWdodDogJyonLFxyXG4gICAgICAgICAgICBib3JkZXI6ICcqJyxcclxuICAgICAgICAgICAgcGFkZGluZzogJyonLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAnaW5oZXJpdCcsXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oJyogPT4gKicsIGFuaW1hdGUoJzI1MG1zIGVhc2Utb3V0JykpXHJcbiAgICBdXHJcbik7XHJcbiJdfQ==
@@ -179,10 +179,10 @@ export class DayjsDateAdapter extends DateAdapter {
179
179
  dayjs.extend(localeData);
180
180
  this.setLocale(dateLocale);
181
181
  }
182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: CMAT_DAYJS_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
183
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDateAdapter }); }
182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: CMAT_DAYJS_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
183
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDateAdapter }); }
184
184
  }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDateAdapter, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDateAdapter, decorators: [{
186
186
  type: Injectable
187
187
  }], ctorParameters: () => [{ type: undefined, decorators: [{
188
188
  type: Optional
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
195
195
  type: Inject,
196
196
  args: [CMAT_DAYJS_DATE_ADAPTER_OPTIONS]
197
197
  }] }] });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2FkYXB0ZXIvZGF5anMtZGF0ZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8saUJBQWlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxlQUFlLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7O0FBWW5DLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLGNBQWMsQ0FDN0QsaUNBQWlDLEVBQUU7SUFDbkMsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLHVDQUF1QztDQUNuRCxDQUFDLENBQUM7QUFFSCxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLHVDQUF1QztJQUNuRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLEtBQUs7S0FDaEIsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBSSxNQUFjLEVBQUUsYUFBbUM7SUFDakUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM5QixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENB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QyxVQUFrQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0EvTFEsZ0JBQWdCLGtCQVdPLGVBQWUsNkJBQ3ZCLCtCQUErQjtrSEFaOUMsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUY1QixVQUFVOzswQkFhTSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUMxQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xyXG5pbXBvcnQgTG9jYWxpemVkRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF5SnNEYXRlQWRhcHRlck9wdGlvbnMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUdXJucyB0aGUgdXNlIG9mIHV0YyBkYXRlcyBvbiBvciBvZmYuXHJcbiAgICAgKiBDaGFuZ2luZyB0aGlzIHdpbGwgY2hhbmdlIGhvdyBBbmd1bGFyIE1hdGVyaWFsIGNvbXBvbmVudHMgbGlrZSBEYXRlUGlja2VyIG91dHB1dCBkYXRlcy5cclxuICAgICAqIHtAZGVmYXVsdCBmYWxzZX1cclxuICAgICAqL1xyXG4gICAgdXNlVXRjPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIEluamVjdGlvblRva2VuIGZvciBEYXlqcyBkYXRlIGFkYXB0ZXIgdG8gY29uZmlndXJlIG9wdGlvbnMuICovXHJcbmV4cG9ydCBjb25zdCBDTUFUX0RBWUpTX0RBVEVfQURBUFRFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPERheUpzRGF0ZUFkYXB0ZXJPcHRpb25zPihcclxuICAgICdDTUFUX0RBWUpTX0RBVEVfQURBUFRFUl9PUFRJT05TJywge1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG4gICAgZmFjdG9yeTogQ01BVF9EQVlKU19EQVRFX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZXHJcbn0pO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG5leHBvcnQgZnVuY3Rpb24gQ01BVF9EQVlKU19EQVRFX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZKCk6IERheUpzRGF0ZUFkYXB0ZXJPcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdXNlVXRjOiBmYWxzZVxyXG4gICAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcclxuICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YWx1ZXNBcnJheVtpXSA9IHZhbHVlRnVuY3Rpb24oaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzQXJyYXk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuLyoqIEFkYXB0cyBEYXlqcyBEYXRlcyBmb3IgdXNlIHdpdGggQW5ndWxhciBNYXRlcmlhbC4gKi9cclxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxEYXlqcz4ge1xyXG4gICAgcHJpdmF0ZSBfbG9jYWxlRGF0YToge1xyXG4gICAgICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXI7XHJcbiAgICAgICAgbG9uZ01vbnRoczogc3RyaW5nW107XHJcbiAgICAgICAgc2hvcnRNb250aHM6IHN0cmluZ1tdO1xyXG4gICAgICAgIGRhdGVzOiBzdHJpbmdbXTtcclxuICAgICAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW107XHJcbiAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXTtcclxuICAgICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9MT0NBTEUpIHB1YmxpYyBkYXRlTG9jYWxlOiBzdHJpbmcsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChDTUFUX0RBWUpTX0RBVEVfQURBUFRFUl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zPzogRGF5SnNEYXRlQWRhcHRlck9wdGlvbnMpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICB0aGlzLl9pbml0aWFsaXplUGFyc2VyKGRhdGVMb2NhbGUpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBnZXQgX3Nob3VsZFVzZVV0YygpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB7IHVzZVV0YyB9OiBEYXlKc0RhdGVBZGFwdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnMgPz8ge307XHJcbiAgICAgICAgcmV0dXJuICEhdXNlVXRjO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xyXG5cclxuICAgICAgICBjb25zdCBkYXlKc0xvY2FsZURhdGEgPSB0aGlzLl9kYXlKcygpLmxvY2FsZURhdGEoKTtcclxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xyXG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogZGF5SnNMb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrKCksXHJcbiAgICAgICAgICAgIGxvbmdNb250aHM6IGRheUpzTG9jYWxlRGF0YS5tb250aHMoKSxcclxuICAgICAgICAgICAgc2hvcnRNb250aHM6IGRheUpzTG9jYWxlRGF0YS5tb250aHNTaG9ydCgpLFxyXG4gICAgICAgICAgICBkYXRlczogcmFuZ2UoMzEsIGkgPT4gdGhpcy5jcmVhdGVEYXRlKDIwMTcsIDAsIGkgKyAxKS5mb3JtYXQoJ0QnKSksXHJcbiAgICAgICAgICAgIGxvbmdEYXlzT2ZXZWVrOiByYW5nZSg3LCBpID0+IHRoaXMuX2RheUpzKCkuc2V0KCdkYXknLCBpKS5mb3JtYXQoJ2RkZGQnKSksXHJcbiAgICAgICAgICAgIHNob3J0RGF5c09mV2VlazogZGF5SnNMb2NhbGVEYXRhLndlZWtkYXlzU2hvcnQoKSxcclxuICAgICAgICAgICAgbmFycm93RGF5c09mV2VlazogZGF5SnNMb2NhbGVEYXRhLndlZWtkYXlzTWluKCksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRZZWFyKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkueWVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkubW9udGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRlKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkuZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERheU9mV2VlayhkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKGRhdGUpLmRheSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gc3R5bGUgPT09ICdsb25nJyA/IHRoaXMuX2xvY2FsZURhdGEubG9uZ01vbnRocyA6IHRoaXMuX2xvY2FsZURhdGEuc2hvcnRNb250aHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5kYXRlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGlmIChzdHlsZSA9PT0gJ2xvbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmxvbmdEYXlzT2ZXZWVrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc3R5bGUgPT09ICdzaG9ydCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEuc2hvcnREYXlzT2ZXZWVrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5uYXJyb3dEYXlzT2ZXZWVrO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFllYXJOYW1lKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcclxuICAgIH1cclxuXHJcbiAgICBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKGRhdGUpLmRheXNJbk1vbnRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvbmUoZGF0ZTogRGF5anMpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIGNvbnN0IHJldHVybkRheWpzID0gdGhpcy5fZGF5SnMoKVxyXG4gICAgICAgICAgICAuc2V0KCd5ZWFyJywgeWVhcilcclxuICAgICAgICAgICAgLnNldCgnbW9udGgnLCBtb250aClcclxuICAgICAgICAgICAgLnNldCgnZGF0ZScsIGRhdGUpO1xyXG4gICAgICAgIHJldHVybiByZXR1cm5EYXlqcztcclxuICAgIH1cclxuXHJcbiAgICB0b2RheSgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2UodmFsdWU6IGFueSwgcGFyc2VGb3JtYXQ6IHN0cmluZyk6IERheWpzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKHZhbHVlLCBwYXJzZUZvcm1hdCwgdGhpcy5sb2NhbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLl9kYXlKcyh2YWx1ZSkubG9jYWxlKHRoaXMubG9jYWxlKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0KGRhdGU6IERheWpzLCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdEYXlqc0RhdGVBZGFwdGVyOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGUubG9jYWxlKHRoaXMubG9jYWxlKS5mb3JtYXQoZGlzcGxheUZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXlqcywgeWVhcnM6IG51bWJlcik6IERheWpzIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5hZGQoeWVhcnMsICd5ZWFyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF5anMsIG1vbnRoczogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChtb250aHMsICdtb250aCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXlqcywgZGF5czogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChkYXlzLCAnZGF5Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9Jc284NjAxKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxyXG4gICAgICogZGVzZXJpYWxpemUgc2hvdWxkIG9ubHkgYWNjZXB0IG5vbi1hbWJpZ3VvdXMsIGxvY2FsZS1pbmRlcGVuZGVudCBmb3JtYXRzIChlLmcuIGEgSVNPIDg2MDFcclxuICAgICAqIHN0cmluZykuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IGFueSBkZXNlcmlhbGl6YXRpb24sIGl0IHNpbXBseSBjaGVja3MgdGhhdFxyXG4gICAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLiBUaGUgYDxtYXQtZGF0ZXBpY2tlcj5gIHdpbGwgY2FsbCB0aGlzXHJcbiAgICAgKiBtZXRob2Qgb24gYWxsIG9mIGl0J3MgYEBJbnB1dCgpYCBwcm9wZXJ0aWVzIHRoYXQgYWNjZXB0IGRhdGVzLiBJdCBpcyB0aGVyZWZvcmUgcG9zc2libGUgdG9cclxuICAgICAqIHN1cHBvcnQgcGFzc2luZyB2YWx1ZXMgZnJvbSB5b3VyIGJhY2tlbmQgZGlyZWN0bHkgdG8gdGhlc2UgcHJvcGVydGllcyBieSBvdmVycmlkaW5nIHRoaXMgbWV0aG9kXHJcbiAgICAgKiB0byBhbHNvIGRlc2VyaWFsaXplIHRoZSBmb3JtYXQgdXNlZCBieSB5b3VyIGJhY2tlbmQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBiZSBkZXNlcmlhbGl6ZWQgaW50byBhIGRhdGUgb2JqZWN0LlxyXG4gICAgICogQHJldHVybnMgVGhlIGRlc2VyaWFsaXplZCBkYXRlIG9iamVjdCwgZWl0aGVyIGEgdmFsaWQgZGF0ZSwgbnVsbCBpZiB0aGUgdmFsdWUgY2FuIGJlXHJcbiAgICAgKiAgICAgZGVzZXJpYWxpemVkIGludG8gYSBudWxsIGRhdGUgKGUuZy4gdGhlIGVtcHR5IHN0cmluZyksIG9yIGFuIGludmFsaWQgZGF0ZS5cclxuICAgICAqL1xyXG4gICAgb3ZlcnJpZGUgZGVzZXJpYWxpemUodmFsdWU6IGFueSk6IERheWpzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGRhdGU6IGFueTtcclxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLl9kYXlKcyh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSkge1xyXG4gICAgICAgICAgICAvLyBOT1RFOiBhc3N1bWVzIHRoYXQgY2xvbmluZyBhbHNvIHNldHMgdGhlIGNvcnJlY3QgbG9jYWxlLlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLl9kYXlKcyh2YWx1ZSkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRhdGUgJiYgdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXlKcyhkYXRlKTsgLy8gTk9URTogSXMgdGhpcyBuZWNlc3Nhcnkgc2luY2UgRGF5anMgaXMgaW1tdXRhYmxlIGFuZCBNb21lbnQgd2FzIG5vdD9cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXlqcy5pc0RheWpzKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgaXNWYWxpZChkYXRlOiBEYXlqcyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXlKcyhkYXRlKS5pc1ZhbGlkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW52YWxpZCgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2RheUpzKGlucHV0PzogYW55LCBmb3JtYXQ/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IERheWpzIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFVzZVV0Yykge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF5anMoaW5wdXQsIHsgZm9ybWF0LCBsb2NhbGUgfSwgbG9jYWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRheWpzKGlucHV0LCB7IGZvcm1hdCwgbG9jYWxlLCB1dGM6IHRoaXMuX3Nob3VsZFVzZVV0YyB9LCBsb2NhbGUpLnV0YygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2luaXRpYWxpemVQYXJzZXIoZGF0ZUxvY2FsZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFVzZVV0Yykge1xyXG4gICAgICAgICAgICBkYXlqcy5leHRlbmQodXRjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRheWpzLmV4dGVuZChMb2NhbGl6ZWRGb3JtYXQpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLnNldExvY2FsZShkYXRlTG9jYWxlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMtZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL2FkYXB0ZXIvZGF5anMtZGF0ZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8saUJBQWlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxlQUFlLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7O0FBWW5DLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLGNBQWMsQ0FDN0QsaUNBQWlDLEVBQUU7SUFDbkMsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLHVDQUF1QztDQUNuRCxDQUFDLENBQUM7QUFFSCxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLHVDQUF1QztJQUNuRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLEtBQUs7S0FDaEIsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBSSxNQUFjLEVBQUUsYUFBbUM7SUFDakUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM5QixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENB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QyxVQUFrQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQzsrR0EvTFEsZ0JBQWdCLGtCQVdPLGVBQWUsNkJBQ3ZCLCtCQUErQjttSEFaOUMsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUY1QixVQUFVOzswQkFhTSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUMxQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xyXG5pbXBvcnQgTG9jYWxpemVkRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF5SnNEYXRlQWRhcHRlck9wdGlvbnMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUdXJucyB0aGUgdXNlIG9mIHV0YyBkYXRlcyBvbiBvciBvZmYuXHJcbiAgICAgKiBDaGFuZ2luZyB0aGlzIHdpbGwgY2hhbmdlIGhvdyBBbmd1bGFyIE1hdGVyaWFsIGNvbXBvbmVudHMgbGlrZSBEYXRlUGlja2VyIG91dHB1dCBkYXRlcy5cclxuICAgICAqIHtAZGVmYXVsdCBmYWxzZX1cclxuICAgICAqL1xyXG4gICAgdXNlVXRjPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIEluamVjdGlvblRva2VuIGZvciBEYXlqcyBkYXRlIGFkYXB0ZXIgdG8gY29uZmlndXJlIG9wdGlvbnMuICovXHJcbmV4cG9ydCBjb25zdCBDTUFUX0RBWUpTX0RBVEVfQURBUFRFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPERheUpzRGF0ZUFkYXB0ZXJPcHRpb25zPihcclxuICAgICdDTUFUX0RBWUpTX0RBVEVfQURBUFRFUl9PUFRJT05TJywge1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG4gICAgZmFjdG9yeTogQ01BVF9EQVlKU19EQVRFX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZXHJcbn0pO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG5leHBvcnQgZnVuY3Rpb24gQ01BVF9EQVlKU19EQVRFX0FEQVBURVJfT1BUSU9OU19GQUNUT1JZKCk6IERheUpzRGF0ZUFkYXB0ZXJPcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdXNlVXRjOiBmYWxzZVxyXG4gICAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcclxuICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YWx1ZXNBcnJheVtpXSA9IHZhbHVlRnVuY3Rpb24oaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzQXJyYXk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuLyoqIEFkYXB0cyBEYXlqcyBEYXRlcyBmb3IgdXNlIHdpdGggQW5ndWxhciBNYXRlcmlhbC4gKi9cclxuZXhwb3J0IGNsYXNzIERheWpzRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxEYXlqcz4ge1xyXG4gICAgcHJpdmF0ZSBfbG9jYWxlRGF0YToge1xyXG4gICAgICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXI7XHJcbiAgICAgICAgbG9uZ01vbnRoczogc3RyaW5nW107XHJcbiAgICAgICAgc2hvcnRNb250aHM6IHN0cmluZ1tdO1xyXG4gICAgICAgIGRhdGVzOiBzdHJpbmdbXTtcclxuICAgICAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW107XHJcbiAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXTtcclxuICAgICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9MT0NBTEUpIHB1YmxpYyBkYXRlTG9jYWxlOiBzdHJpbmcsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChDTUFUX0RBWUpTX0RBVEVfQURBUFRFUl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zPzogRGF5SnNEYXRlQWRhcHRlck9wdGlvbnMpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICB0aGlzLl9pbml0aWFsaXplUGFyc2VyKGRhdGVMb2NhbGUpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBnZXQgX3Nob3VsZFVzZVV0YygpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB7IHVzZVV0YyB9OiBEYXlKc0RhdGVBZGFwdGVyT3B0aW9ucyA9IHRoaXMuX29wdGlvbnMgPz8ge307XHJcbiAgICAgICAgcmV0dXJuICEhdXNlVXRjO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIHNldExvY2FsZShsb2NhbGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xyXG5cclxuICAgICAgICBjb25zdCBkYXlKc0xvY2FsZURhdGEgPSB0aGlzLl9kYXlKcygpLmxvY2FsZURhdGEoKTtcclxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xyXG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogZGF5SnNMb2NhbGVEYXRhLmZpcnN0RGF5T2ZXZWVrKCksXHJcbiAgICAgICAgICAgIGxvbmdNb250aHM6IGRheUpzTG9jYWxlRGF0YS5tb250aHMoKSxcclxuICAgICAgICAgICAgc2hvcnRNb250aHM6IGRheUpzTG9jYWxlRGF0YS5tb250aHNTaG9ydCgpLFxyXG4gICAgICAgICAgICBkYXRlczogcmFuZ2UoMzEsIGkgPT4gdGhpcy5jcmVhdGVEYXRlKDIwMTcsIDAsIGkgKyAxKS5mb3JtYXQoJ0QnKSksXHJcbiAgICAgICAgICAgIGxvbmdEYXlzT2ZXZWVrOiByYW5nZSg3LCBpID0+IHRoaXMuX2RheUpzKCkuc2V0KCdkYXknLCBpKS5mb3JtYXQoJ2RkZGQnKSksXHJcbiAgICAgICAgICAgIHNob3J0RGF5c09mV2VlazogZGF5SnNMb2NhbGVEYXRhLndlZWtkYXlzU2hvcnQoKSxcclxuICAgICAgICAgICAgbmFycm93RGF5c09mV2VlazogZGF5SnNMb2NhbGVEYXRhLndlZWtkYXlzTWluKCksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRZZWFyKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkueWVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkubW9udGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRlKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkuZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERheU9mV2VlayhkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKGRhdGUpLmRheSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gc3R5bGUgPT09ICdsb25nJyA/IHRoaXMuX2xvY2FsZURhdGEubG9uZ01vbnRocyA6IHRoaXMuX2xvY2FsZURhdGEuc2hvcnRNb250aHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5kYXRlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGlmIChzdHlsZSA9PT0gJ2xvbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmxvbmdEYXlzT2ZXZWVrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc3R5bGUgPT09ICdzaG9ydCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZURhdGEuc2hvcnREYXlzT2ZXZWVrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5uYXJyb3dEYXlzT2ZXZWVrO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFllYXJOYW1lKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF5SnMoZGF0ZSkuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcclxuICAgIH1cclxuXHJcbiAgICBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKGRhdGUpLmRheXNJbk1vbnRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvbmUoZGF0ZTogRGF5anMpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIGNvbnN0IHJldHVybkRheWpzID0gdGhpcy5fZGF5SnMoKVxyXG4gICAgICAgICAgICAuc2V0KCd5ZWFyJywgeWVhcilcclxuICAgICAgICAgICAgLnNldCgnbW9udGgnLCBtb250aClcclxuICAgICAgICAgICAgLnNldCgnZGF0ZScsIGRhdGUpO1xyXG4gICAgICAgIHJldHVybiByZXR1cm5EYXlqcztcclxuICAgIH1cclxuXHJcbiAgICB0b2RheSgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2UodmFsdWU6IGFueSwgcGFyc2VGb3JtYXQ6IHN0cmluZyk6IERheWpzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKHZhbHVlLCBwYXJzZUZvcm1hdCwgdGhpcy5sb2NhbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLl9kYXlKcyh2YWx1ZSkubG9jYWxlKHRoaXMubG9jYWxlKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0KGRhdGU6IERheWpzLCBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdEYXlqc0RhdGVBZGFwdGVyOiBDYW5ub3QgZm9ybWF0IGludmFsaWQgZGF0ZS4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGUubG9jYWxlKHRoaXMubG9jYWxlKS5mb3JtYXQoZGlzcGxheUZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXlqcywgeWVhcnM6IG51bWJlcik6IERheWpzIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5hZGQoeWVhcnMsICd5ZWFyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogRGF5anMsIG1vbnRoczogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChtb250aHMsICdtb250aCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXlqcywgZGF5czogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChkYXlzLCAnZGF5Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9Jc284NjAxKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxyXG4gICAgICogZGVzZXJpYWxpemUgc2hvdWxkIG9ubHkgYWNjZXB0IG5vbi1hbWJpZ3VvdXMsIGxvY2FsZS1pbmRlcGVuZGVudCBmb3JtYXRzIChlLmcuIGEgSVNPIDg2MDFcclxuICAgICAqIHN0cmluZykuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IGFueSBkZXNlcmlhbGl6YXRpb24sIGl0IHNpbXBseSBjaGVja3MgdGhhdFxyXG4gICAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLiBUaGUgYDxtYXQtZGF0ZXBpY2tlcj5gIHdpbGwgY2FsbCB0aGlzXHJcbiAgICAgKiBtZXRob2Qgb24gYWxsIG9mIGl0J3MgYEBJbnB1dCgpYCBwcm9wZXJ0aWVzIHRoYXQgYWNjZXB0IGRhdGVzLiBJdCBpcyB0aGVyZWZvcmUgcG9zc2libGUgdG9cclxuICAgICAqIHN1cHBvcnQgcGFzc2luZyB2YWx1ZXMgZnJvbSB5b3VyIGJhY2tlbmQgZGlyZWN0bHkgdG8gdGhlc2UgcHJvcGVydGllcyBieSBvdmVycmlkaW5nIHRoaXMgbWV0aG9kXHJcbiAgICAgKiB0byBhbHNvIGRlc2VyaWFsaXplIHRoZSBmb3JtYXQgdXNlZCBieSB5b3VyIGJhY2tlbmQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBiZSBkZXNlcmlhbGl6ZWQgaW50byBhIGRhdGUgb2JqZWN0LlxyXG4gICAgICogQHJldHVybnMgVGhlIGRlc2VyaWFsaXplZCBkYXRlIG9iamVjdCwgZWl0aGVyIGEgdmFsaWQgZGF0ZSwgbnVsbCBpZiB0aGUgdmFsdWUgY2FuIGJlXHJcbiAgICAgKiAgICAgZGVzZXJpYWxpemVkIGludG8gYSBudWxsIGRhdGUgKGUuZy4gdGhlIGVtcHR5IHN0cmluZyksIG9yIGFuIGludmFsaWQgZGF0ZS5cclxuICAgICAqL1xyXG4gICAgb3ZlcnJpZGUgZGVzZXJpYWxpemUodmFsdWU6IGFueSk6IERheWpzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGRhdGU6IGFueTtcclxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLl9kYXlKcyh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSkge1xyXG4gICAgICAgICAgICAvLyBOT1RFOiBhc3N1bWVzIHRoYXQgY2xvbmluZyBhbHNvIHNldHMgdGhlIGNvcnJlY3QgbG9jYWxlLlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLl9kYXlKcyh2YWx1ZSkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRhdGUgJiYgdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXlKcyhkYXRlKTsgLy8gTk9URTogSXMgdGhpcyBuZWNlc3Nhcnkgc2luY2UgRGF5anMgaXMgaW1tdXRhYmxlIGFuZCBNb21lbnQgd2FzIG5vdD9cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXlqcy5pc0RheWpzKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgaXNWYWxpZChkYXRlOiBEYXlqcyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXlKcyhkYXRlKS5pc1ZhbGlkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW52YWxpZCgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheUpzKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2RheUpzKGlucHV0PzogYW55LCBmb3JtYXQ/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IERheWpzIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFVzZVV0Yykge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF5anMoaW5wdXQsIHsgZm9ybWF0LCBsb2NhbGUgfSwgbG9jYWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRheWpzKGlucHV0LCB7IGZvcm1hdCwgbG9jYWxlLCB1dGM6IHRoaXMuX3Nob3VsZFVzZVV0YyB9LCBsb2NhbGUpLnV0YygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2luaXRpYWxpemVQYXJzZXIoZGF0ZUxvY2FsZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFVzZVV0Yykge1xyXG4gICAgICAgICAgICBkYXlqcy5leHRlbmQodXRjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRheWpzLmV4dGVuZChMb2NhbGl6ZWRGb3JtYXQpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLnNldExvY2FsZShkYXRlTG9jYWxlKTtcclxuICAgIH1cclxufVxyXG4iXX0=