cmat 0.0.6 → 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 (327) 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/breadcrumb/public-api.d.ts +2 -0
  4. package/components/card/card.component.d.ts +1 -1
  5. package/components/card/public-api.d.ts +1 -0
  6. package/components/cascade/cascade-list/cascade-list.component.d.ts +45 -21
  7. package/components/cascade/public-api.d.ts +1 -0
  8. package/components/chip-input/chip-input.component.d.ts +39 -12
  9. package/components/custom-formly/extension/addons.extension.d.ts +2 -0
  10. package/components/custom-formly/index.d.ts +5 -0
  11. package/components/custom-formly/public-api.d.ts +21 -0
  12. package/components/custom-formly/types/button/button.component.d.ts +18 -0
  13. package/components/custom-formly/types/checklist/checklist.component.d.ts +41 -0
  14. package/components/custom-formly/types/chips/chips.component.d.ts +27 -0
  15. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +44 -0
  16. package/components/custom-formly/types/number/number.component.d.ts +20 -0
  17. package/components/custom-formly/types/radio/radio.component.d.ts +44 -0
  18. package/components/custom-formly/types/rating/rating.component.d.ts +24 -0
  19. package/components/custom-formly/types/repeat/repeat.component.d.ts +16 -0
  20. package/components/custom-formly/types/select/select.component.d.ts +54 -0
  21. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +43 -0
  22. package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +9 -0
  23. package/components/custom-formly/types/stepper/stepper.type.d.ts +6 -0
  24. package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +9 -0
  25. package/components/custom-formly/types/table/table.component.d.ts +43 -0
  26. package/components/custom-formly/types/tabs/tab.component.d.ts +8 -0
  27. package/components/custom-formly/types/tags/tags.component.d.ts +41 -0
  28. package/components/custom-formly/types/textarea/textarea.component.d.ts +13 -0
  29. package/components/custom-formly/wrappers/addons/addons.component.d.ts +10 -0
  30. package/components/custom-formly/wrappers/card/card.component.d.ts +6 -0
  31. package/components/custom-formly/wrappers/expansion/expansion.component.d.ts +6 -0
  32. package/components/custom-formly/wrappers/panel/panel.component.d.ts +6 -0
  33. package/components/date-range/date-range.component.d.ts +8 -6
  34. package/components/drawer/drawer.component.d.ts +2 -2
  35. package/components/fullscreen/fullscreen.component.d.ts +2 -9
  36. package/components/fullscreen/public-api.d.ts +0 -1
  37. package/components/material-color-picker/material-color-picker.component.d.ts +8 -4
  38. package/components/material-datetimepicker/calendar.d.ts +2 -2
  39. package/components/material-datetimepicker/clock.d.ts +1 -1
  40. package/components/material-datetimepicker/datetimepicker-input.d.ts +1 -1
  41. package/components/material-datetimepicker/datetimepicker-toggle.d.ts +1 -1
  42. package/components/material-datetimepicker/datetimepicker.d.ts +5 -10
  43. package/components/material-datetimepicker/month-view.d.ts +1 -2
  44. package/components/material-datetimepicker/multi-year-view.d.ts +1 -1
  45. package/components/material-datetimepicker/public-api.d.ts +1 -0
  46. package/components/material-datetimepicker/time.d.ts +2 -2
  47. package/components/material-datetimepicker/year-view.d.ts +1 -1
  48. package/components/navigation/horizontal/components/basic/basic.component.d.ts +1 -1
  49. package/components/navigation/horizontal/components/branch/branch.component.d.ts +1 -1
  50. package/components/navigation/horizontal/horizontal.component.d.ts +2 -2
  51. package/components/navigation/vertical/components/aside/aside.component.d.ts +1 -1
  52. package/components/navigation/vertical/components/basic/basic.component.d.ts +1 -7
  53. package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +1 -1
  54. package/components/navigation/vertical/components/group/group.component.d.ts +1 -1
  55. package/components/navigation/vertical/vertical.component.d.ts +5 -5
  56. package/components/pagination/public-api.d.ts +1 -0
  57. package/components/popover/popover-trigger.d.ts +121 -0
  58. package/components/popover/popover.component.d.ts +3 -3
  59. package/components/popover/popover.target.d.ts +8 -0
  60. package/components/popover/public-api.d.ts +3 -0
  61. package/components/rating/rating.component.d.ts +38 -9
  62. package/components/select-search/select-search.component.d.ts +4 -4
  63. package/components/select-tree/public-api.d.ts +2 -0
  64. package/components/select-tree/select-tree.component.d.ts +50 -21
  65. package/components/toast/public-api.d.ts +4 -0
  66. package/components/toast/toast.component.d.ts +4 -4
  67. package/components/transfer-picker/filter/filter.component.d.ts +1 -1
  68. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
  69. package/components/transfer-picker/transfer-picker.component.d.ts +1 -1
  70. package/components/upload/files.type.d.ts +22 -0
  71. package/components/upload/files.util.service.d.ts +20 -0
  72. package/components/upload/index.d.ts +5 -0
  73. package/components/upload/public-api.d.ts +4 -0
  74. package/components/upload/upload-queue/upload-queue.component.d.ts +39 -0
  75. package/components/upload/upload.component.d.ts +32 -0
  76. package/esm2022/animations/public-api.mjs +2 -2
  77. package/esm2022/components/adapter/dayjs-date-adapter.mjs +6 -6
  78. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +5 -5
  79. package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
  80. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  81. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
  82. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +5 -5
  83. package/esm2022/components/breadcrumb/public-api.mjs +3 -1
  84. package/esm2022/components/card/card.component.mjs +5 -5
  85. package/esm2022/components/card/public-api.mjs +2 -1
  86. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +7 -7
  87. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +207 -114
  88. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +4 -4
  89. package/esm2022/components/cascade/public-api.mjs +2 -1
  90. package/esm2022/components/chip-input/chip-input.component.mjs +152 -49
  91. package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +5 -0
  92. package/esm2022/components/custom-formly/extension/addons.extension.mjs +13 -0
  93. package/esm2022/components/custom-formly/public-api.mjs +22 -0
  94. package/esm2022/components/custom-formly/types/button/button.component.mjs +39 -0
  95. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +161 -0
  96. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +55 -0
  97. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +89 -0
  98. package/esm2022/components/custom-formly/types/number/number.component.mjs +27 -0
  99. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +88 -0
  100. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +27 -0
  101. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +28 -0
  102. package/esm2022/components/custom-formly/types/select/select.component.mjs +169 -0
  103. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +66 -0
  104. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +31 -0
  105. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +2 -0
  106. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +31 -0
  107. package/esm2022/components/custom-formly/types/table/table.component.mjs +116 -0
  108. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +19 -0
  109. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +149 -0
  110. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +25 -0
  111. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +92 -0
  112. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +14 -0
  113. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +14 -0
  114. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +12 -0
  115. package/esm2022/components/date-range/date-range.component.mjs +26 -17
  116. package/esm2022/components/drawer/drawer.component.mjs +5 -5
  117. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  118. package/esm2022/components/fullscreen/fullscreen.component.mjs +16 -73
  119. package/esm2022/components/fullscreen/public-api.mjs +1 -2
  120. package/esm2022/components/highlight/highlight.component.mjs +5 -5
  121. package/esm2022/components/highlight/highlight.service.mjs +3 -3
  122. package/esm2022/components/json-editor/json-editor.component.mjs +3 -3
  123. package/esm2022/components/masonry/masonry.component.mjs +5 -5
  124. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +22 -12
  125. package/esm2022/components/material-datetimepicker/calendar-body.mjs +3 -3
  126. package/esm2022/components/material-datetimepicker/calendar.mjs +11 -12
  127. package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
  128. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -5
  129. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  130. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
  131. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +17 -22
  132. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -6
  133. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +7 -8
  134. package/esm2022/components/material-datetimepicker/public-api.mjs +2 -1
  135. package/esm2022/components/material-datetimepicker/time.mjs +8 -8
  136. package/esm2022/components/material-datetimepicker/year-view.mjs +7 -8
  137. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +8 -8
  138. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +8 -8
  139. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +5 -5
  140. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +6 -6
  141. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +6 -6
  142. package/esm2022/components/navigation/navigation.service.mjs +3 -3
  143. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +11 -11
  144. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +7 -24
  145. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +10 -10
  146. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +5 -5
  147. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +9 -9
  148. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +6 -6
  149. package/esm2022/components/navigation/vertical/vertical.component.mjs +11 -11
  150. package/esm2022/components/pagination/pagination.component.mjs +10 -10
  151. package/esm2022/components/pagination/pagination.directive.mjs +4 -4
  152. package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
  153. package/esm2022/components/pagination/pagination.service.mjs +3 -3
  154. package/esm2022/components/pagination/public-api.mjs +2 -1
  155. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +6 -6
  156. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +5 -5
  157. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +6 -6
  158. package/esm2022/components/popover/popover-trigger.mjs +444 -0
  159. package/esm2022/components/popover/popover.component.mjs +8 -9
  160. package/esm2022/components/popover/popover.target.mjs +18 -0
  161. package/esm2022/components/popover/public-api.mjs +4 -1
  162. package/esm2022/components/progress-bar/progress-bar.component.mjs +6 -6
  163. package/esm2022/components/rating/rating.component.mjs +122 -23
  164. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  165. package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
  166. package/esm2022/components/select-search/select-search.component.mjs +15 -15
  167. package/esm2022/components/select-tree/public-api.mjs +3 -1
  168. package/esm2022/components/select-tree/select-tree.component.mjs +281 -157
  169. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
  170. package/esm2022/components/timeline/timeline.component.mjs +5 -5
  171. package/esm2022/components/toast/public-api.mjs +5 -1
  172. package/esm2022/components/toast/toast-modal.component.mjs +5 -5
  173. package/esm2022/components/toast/toast.component.mjs +6 -6
  174. package/esm2022/components/toast/toast.service.mjs +3 -3
  175. package/esm2022/components/transfer-picker/filter/filter.component.mjs +9 -9
  176. package/esm2022/components/transfer-picker/search/search.component.mjs +6 -6
  177. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +11 -11
  178. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
  179. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +7 -7
  180. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
  181. package/esm2022/components/upload/cmat-components-upload.mjs +5 -0
  182. package/esm2022/components/upload/files.type.mjs +2 -0
  183. package/esm2022/components/upload/files.util.service.mjs +100 -0
  184. package/esm2022/components/upload/public-api.mjs +5 -0
  185. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +154 -0
  186. package/esm2022/components/upload/upload.component.mjs +118 -0
  187. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
  188. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  189. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  190. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  191. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  192. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
  193. package/esm2022/directives/digit-only/digit-only.directive.mjs +3 -3
  194. package/esm2022/directives/digit-only/mask.directive.mjs +3 -3
  195. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
  196. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +5 -5
  197. package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
  198. package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
  199. package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
  200. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
  201. package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
  202. package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
  203. package/esm2022/pipes/secure/secure-pipe.mjs +5 -5
  204. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  205. package/esm2022/public-api.mjs +1 -1
  206. package/esm2022/services/alert/alert.service.mjs +7 -7
  207. package/esm2022/services/alert/enum.mjs +2 -2
  208. package/esm2022/services/config/config.service.mjs +5 -5
  209. package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
  210. package/esm2022/services/confirmation/confirmation.service.mjs +5 -5
  211. package/esm2022/services/confirmation/dialog/dialog.component.mjs +7 -7
  212. package/esm2022/services/data/data.service.mjs +5 -5
  213. package/esm2022/services/loading/loading.interceptor.mjs +4 -4
  214. package/esm2022/services/loading/loading.service.mjs +3 -3
  215. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  216. package/esm2022/services/media-watcher/media-watcher.service.mjs +5 -5
  217. package/esm2022/services/platform/platform.service.mjs +4 -4
  218. package/esm2022/services/splash-screen/splash-screen.service.mjs +6 -6
  219. package/esm2022/services/title/title.service.mjs +4 -4
  220. package/esm2022/services/translation/translation.service.mjs +3 -3
  221. package/esm2022/services/utils/utils.service.mjs +54 -9
  222. package/fesm2022/cmat-animations.mjs +15 -15
  223. package/fesm2022/cmat-animations.mjs.map +1 -1
  224. package/fesm2022/cmat-components-adapter.mjs +11 -11
  225. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  226. package/fesm2022/cmat-components-breadcrumb.mjs +11 -11
  227. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  228. package/fesm2022/cmat-components-card.mjs +4 -4
  229. package/fesm2022/cmat-components-card.mjs.map +1 -1
  230. package/fesm2022/cmat-components-cascade.mjs +215 -123
  231. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  232. package/fesm2022/cmat-components-chip-input.mjs +153 -50
  233. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  234. package/fesm2022/cmat-components-custom-formly.mjs +1141 -0
  235. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -0
  236. package/fesm2022/cmat-components-date-range.mjs +27 -18
  237. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  238. package/fesm2022/cmat-components-drawer.mjs +8 -8
  239. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  240. package/fesm2022/cmat-components-fullscreen.mjs +16 -73
  241. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  242. package/fesm2022/cmat-components-highlight.mjs +7 -7
  243. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  244. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  245. package/fesm2022/cmat-components-masonry.mjs +4 -4
  246. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  247. package/fesm2022/cmat-components-material-color-picker.mjs +21 -11
  248. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  249. package/fesm2022/cmat-components-material-datetimepicker.mjs +189 -195
  250. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  251. package/fesm2022/cmat-components-navigation.mjs +166 -183
  252. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  253. package/fesm2022/cmat-components-pagination.mjs +20 -20
  254. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  255. package/fesm2022/cmat-components-password-strength.mjs +13 -13
  256. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  257. package/fesm2022/cmat-components-popover.mjs +464 -10
  258. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  259. package/fesm2022/cmat-components-progress-bar.mjs +6 -6
  260. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  261. package/fesm2022/cmat-components-rating.mjs +121 -22
  262. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  263. package/fesm2022/cmat-components-select-search.mjs +41 -41
  264. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  265. package/fesm2022/cmat-components-select-tree.mjs +285 -158
  266. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  267. package/fesm2022/cmat-components-timeline.mjs +12 -12
  268. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  269. package/fesm2022/cmat-components-toast.mjs +12 -12
  270. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  271. package/fesm2022/cmat-components-transfer-picker.mjs +33 -33
  272. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  273. package/fesm2022/cmat-components-upload.mjs +366 -0
  274. package/fesm2022/cmat-components-upload.mjs.map +1 -0
  275. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  276. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  277. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  278. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  279. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  280. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  281. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  282. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  283. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  284. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  285. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  286. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  287. package/fesm2022/cmat-pipes-secure.mjs +4 -4
  288. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  289. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  290. package/fesm2022/cmat-services-alert.mjs +6 -6
  291. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  292. package/fesm2022/cmat-services-config.mjs +7 -7
  293. package/fesm2022/cmat-services-config.mjs.map +1 -1
  294. package/fesm2022/cmat-services-confirmation.mjs +11 -11
  295. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  296. package/fesm2022/cmat-services-data.mjs +5 -5
  297. package/fesm2022/cmat-services-data.mjs.map +1 -1
  298. package/fesm2022/cmat-services-loading.mjs +6 -6
  299. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  300. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  301. package/fesm2022/cmat-services-media-watcher.mjs +4 -4
  302. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  303. package/fesm2022/cmat-services-platform.mjs +3 -3
  304. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  305. package/fesm2022/cmat-services-splash-screen.mjs +5 -5
  306. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  307. package/fesm2022/cmat-services-title.mjs +3 -3
  308. package/fesm2022/cmat-services-title.mjs.map +1 -1
  309. package/fesm2022/cmat-services-translation.mjs +3 -3
  310. package/fesm2022/cmat-services-utils.mjs +53 -8
  311. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  312. package/package.json +75 -63
  313. package/pipes/secure/secure-pipe.d.ts +1 -1
  314. package/services/alert/enum.d.ts +1 -1
  315. package/services/confirmation/confirmation.service.d.ts +1 -1
  316. package/services/data/data.service.d.ts +1 -1
  317. package/services/media-watcher/media-watcher.service.d.ts +1 -1
  318. package/services/title/title.service.d.ts +1 -1
  319. package/services/utils/utils.service.d.ts +1 -0
  320. package/styles/components/bundle.scss +18 -5
  321. package/styles/overrides/angular-material.scss +51 -52
  322. package/styles/tailwind.scss +2 -8
  323. package/styles/themes.scss +7 -7
  324. package/styles/user-themes.scss +1 -1
  325. package/tailwind/plugins/utilities.js +1 -1
  326. package/components/fullscreen/fullscreen.types.d.ts +0 -13
  327. package/esm2022/components/fullscreen/fullscreen.types.mjs +0 -2
@@ -1,10 +1,9 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */
2
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Optional, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { A11yModule } from '@angular/cdk/a11y';
3
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { throwCmatPopoverInvalidPositionEnd, throwCmatPopoverInvalidPositionStart } from './popover.errors';
5
- import { cmatAnimations } from 'cmat/animations';
6
3
  import { NgClass, NgStyle } from '@angular/common';
7
- import { A11yModule } from '@angular/cdk/a11y';
4
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Optional, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
5
+ import { cmatAnimations } from 'cmat/animations';
6
+ import { throwCmatPopoverInvalidPositionEnd, throwCmatPopoverInvalidPositionStart } from './popover.errors';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/cdk/bidi";
10
9
  import * as i2 from "@angular/cdk/a11y";
@@ -290,10 +289,10 @@ export class CmatPopoverComponent {
290
289
  this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';
291
290
  this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';
292
291
  }
293
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatPopoverComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
294
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: CmatPopoverComponent, isStandalone: true, selector: "cmat-popover", inputs: { popoverPanelStyles: "popoverPanelStyles", popoverArrowStyles: "popoverArrowStyles", popoverContentStyles: "popoverContentStyles", position: "position", triggerEvent: "triggerEvent", scrollStrategy: "scrollStrategy", enterDelay: "enterDelay", leaveDelay: "leaveDelay", xOffset: "xOffset", yOffset: "yOffset", arrowOffsetX: "arrowOffsetX", arrowOffsetY: "arrowOffsetY", arrowWidth: "arrowWidth", arrowHeight: "arrowHeight", closeOnPanelClick: "closeOnPanelClick", closeOnBackdropClick: "closeOnBackdropClick", disableAnimation: "disableAnimation", focusTrapEnabled: "focusTrapEnabled", focusTrapAutoCaptureEnabled: "focusTrapAutoCaptureEnabled", panelClass: "panelClass" }, outputs: { closed: "closed" }, host: { properties: { "attr.role": "this.role" } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["cmatPopover"], ngImport: i0, template: "<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\" (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\" [@transform]=\"'enter'\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem}.cmat-popover-panel[class*=cmat-popover-below]{margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [cmatAnimations], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatPopoverComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
293
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CmatPopoverComponent, isStandalone: true, selector: "cmat-popover", inputs: { popoverPanelStyles: "popoverPanelStyles", popoverArrowStyles: "popoverArrowStyles", popoverContentStyles: "popoverContentStyles", position: "position", triggerEvent: "triggerEvent", scrollStrategy: "scrollStrategy", enterDelay: "enterDelay", leaveDelay: "leaveDelay", xOffset: "xOffset", yOffset: "yOffset", arrowOffsetX: "arrowOffsetX", arrowOffsetY: "arrowOffsetY", arrowWidth: "arrowWidth", arrowHeight: "arrowHeight", closeOnPanelClick: "closeOnPanelClick", closeOnBackdropClick: "closeOnBackdropClick", disableAnimation: "disableAnimation", focusTrapEnabled: "focusTrapEnabled", focusTrapAutoCaptureEnabled: "focusTrapAutoCaptureEnabled", panelClass: "panelClass" }, outputs: { closed: "closed" }, host: { properties: { "attr.role": "this.role" } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["cmatPopover"], ngImport: i0, template: "<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\" (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\" [@transform]=\"'enter'\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem}.cmat-popover-panel[class*=cmat-popover-below]{margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [cmatAnimations], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
295
294
  }
296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatPopoverComponent, decorators: [{
295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatPopoverComponent, decorators: [{
297
296
  type: Component,
298
297
  args: [{ selector: 'cmat-popover', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [cmatAnimations], exportAs: 'cmatPopover', standalone: true, imports: [NgStyle, NgClass, A11yModule], template: "<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\" (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\" [@transform]=\"'enter'\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem}.cmat-popover-panel[class*=cmat-popover-below]{margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n"] }]
299
298
  }], ctorParameters: () => [{ type: i1.Directionality, decorators: [{
@@ -347,4 +346,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
347
346
  }], panelClass: [{
348
347
  type: Input
349
348
  }] } });
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTVFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQWEvQyxNQUFNLE9BQU8sb0JBQW9CO0lBc0Q3QixZQUN3QixJQUFvQixFQUNoQyxXQUF1QixFQUN4QixJQUFZO1FBRkMsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQWxEdkIsZ0RBQWdEO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSWxCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDMUMsa0VBQWtFO1FBRWxFLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4Qixr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QUs7Z0JBWUYsaUJBQWlCO3NCQURwQixLQUFLO2dCQVdGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFZRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBWUYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVlGLDJCQUEyQjtzQkFEOUIsS0FBSztnQkFhRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcblxyXG5pbXBvcnQgeyBDbWF0UG9wb3ZlclBvc2l0aW9uLCBDbWF0UG9wb3ZlclNjcm9sbFN0cmF0ZWd5LCBDbWF0UG9wb3ZlclRyaWdnZXJFdmVudCB9IGZyb20gJy4vcG9wb3Zlci50eXBlJztcclxuaW1wb3J0IHsgdGhyb3dDbWF0UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCwgdGhyb3dDbWF0UG9wb3ZlckludmFsaWRQb3NpdGlvblN0YXJ0IH0gZnJvbSAnLi9wb3BvdmVyLmVycm9ycyc7XHJcbmltcG9ydCB7IENtYXRQb3BvdmVyUGFuZWwgfSBmcm9tICcuL3BvcG92ZXIuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGNtYXRBbmltYXRpb25zIH0gZnJvbSAnY21hdC9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1wb3BvdmVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3BvcG92ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGFuaW1hdGlvbnM6IFtjbWF0QW5pbWF0aW9uc10sXHJcbiAgICBleHBvcnRBczogJ2NtYXRQb3BvdmVyJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdTdHlsZSwgTmdDbGFzcyxBMTF5TW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBDbWF0UG9wb3ZlclBhbmVsLCBPbkRlc3Ryb3kge1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NlT25QYW5lbENsaWNrOiBCb29sZWFuSW5wdXQ7XHJcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IEJvb2xlYW5JbnB1dDtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlQW5pbWF0aW9uOiBCb29sZWFuSW5wdXQ7XHJcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9jdXNUcmFwRW5hYmxlZDogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2ZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY2xvc2VkLiAqL1xyXG4gICAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSB0ZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2RpYWxvZyc7XHJcbiAgICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIGFycm93IG5nU3R5bGUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwb3BvdmVyUGFuZWxTdHlsZXMgPSB7fTtcclxuXHJcbiAgICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIGFycm93IG5nU3R5bGUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9wb3ZlckFycm93U3R5bGVzID0ge307XHJcblxyXG4gICAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBjb250ZW50IG5nU3R5bGUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9wb3ZlckNvbnRlbnRTdHlsZXMgPSB7fTtcclxuICAgIC8qKiBXaGV0aGVyIHBvcG92ZXIncyBgdGFyZ2V0RWxlbWVudGAgaXMgZGVmaW5lZCAqL1xyXG4gICAgcHVibGljIGNvbnRhaW5lclBvc2l0aW9uaW5nID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIENsb3NpbmcgZGlzYWJsZWQgb24gcG9wb3ZlciAqL1xyXG4gICAgcHVibGljIGNsb3NlRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQ29uZmlnIG9iamVjdCB0byBiZSBwYXNzZWQgaW50byB0aGUgcG9wb3ZlcidzIG5nQ2xhc3MgKi9cclxuICAgIGNsYXNzTGlzdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuXHJcbiAgICAvKiogRW1pdHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHN0YXRlIHdoZW5ldmVyIGl0IGNoYW5nZXMuICovXHJcbiAgICBfb25BbmltYXRpb25TdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uRXZlbnQ+KCk7XHJcblxyXG4gICAgLyoqIFNldHRpbmdzIGZvciBwb3BvdmVyLCB2aWV3IHNldHRlcnMgYW5kIGdldHRlcnMgZm9yIG1vcmUgZGV0YWlsICovXHJcbiAgICBwcml2YXRlIF9wb3NpdGlvbjogQ21hdFBvcG92ZXJQb3NpdGlvbiA9IFsnYmVsb3cnLCAnYWZ0ZXInXTtcclxuICAgIHByaXZhdGUgX3RyaWdnZXJFdmVudDogQ21hdFBvcG92ZXJUcmlnZ2VyRXZlbnQgPSAnaG92ZXInO1xyXG4gICAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3k6IENtYXRQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kgPSAncmVwb3NpdGlvbic7XHJcbiAgICBwcml2YXRlIF9lbnRlckRlbGF5ID0gMTAwO1xyXG4gICAgcHJpdmF0ZSBfbGVhdmVEZWxheSA9IDEwMDtcclxuICAgIHByaXZhdGUgX3BhbmVsT2Zmc2V0WCA9IDA7XHJcbiAgICBwcml2YXRlIF9wYW5lbE9mZnNldFkgPSAwO1xyXG4gICAgcHJpdmF0ZSBfY2xvc2VPblBhbmVsQ2xpY2sgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgX2Rpc2FibGVBbmltYXRpb24gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2ZvY3VzVHJhcEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgcHJpdmF0ZSBfZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgX2Fycm93T2Zmc2V0WCA9IDIwO1xyXG4gICAgcHJpdmF0ZSBfYXJyb3dPZmZzZXRZID0gMjA7XHJcbiAgICBwcml2YXRlIF9hcnJvd1dpZHRoID0gMTY7XHJcbiAgICBwcml2YXRlIF9hcnJvd0hlaWdodCA9IDE2O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwdWJsaWMgem9uZTogTmdab25lXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwb3NpdGlvbigpOiBDbWF0UG9wb3ZlclBvc2l0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XHJcbiAgICB9XHJcbiAgICAvKiogUG9zaXRpb24gb2YgdGhlIHBvcG92ZXIuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHBvc2l0aW9uKHZhbHVlOiBDbWF0UG9wb3ZlclBvc2l0aW9uKSB7XHJcbiAgICAgICAgaWYgKCFbJ2JlZm9yZScsICdhZnRlcicsICdhYm92ZScsICdiZWxvdyddLmluY2x1ZGVzKHZhbHVlWzBdKSkge1xyXG4gICAgICAgICAgICB0aHJvd0NtYXRQb3BvdmVySW52YWxpZFBvc2l0aW9uU3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFbJ2JlZm9yZScsICdhZnRlcicsICdhYm92ZScsICdiZWxvdycsICdjZW50ZXInXS5pbmNsdWRlcyh2YWx1ZVsxXSkpIHtcclxuICAgICAgICAgICAgdGhyb3dDbWF0UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgdHJpZ2dlciBldmVudCAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCB0cmlnZ2VyRXZlbnQoKTogQ21hdFBvcG92ZXJUcmlnZ2VyRXZlbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRXZlbnQ7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHRyaWdnZXJFdmVudCh2YWx1ZTogQ21hdFBvcG92ZXJUcmlnZ2VyRXZlbnQpIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBzY3JvbGwgc3RyYXRlZ3kgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgc2Nyb2xsU3RyYXRlZ3koKTogQ21hdFBvcG92ZXJTY3JvbGxTdHJhdGVneSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbFN0cmF0ZWd5O1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBzY3JvbGxTdHJhdGVneSh2YWx1ZTogQ21hdFBvcG92ZXJTY3JvbGxTdHJhdGVneSkge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbFN0cmF0ZWd5ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgZW50ZXIgZGVsYXkgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgZW50ZXJEZWxheSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9lbnRlckRlbGF5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZW50ZXJEZWxheSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fZW50ZXJEZWxheSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGxlYXZlIGRlbGF5ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGxlYXZlRGVsYXkoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVhdmVEZWxheTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGxlYXZlRGVsYXkodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2xlYXZlRGVsYXkgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciB0YXJnZXQgb2Zmc2V0IHggKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgeE9mZnNldCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYW5lbE9mZnNldFg7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHhPZmZzZXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3BhbmVsT2Zmc2V0WCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIHRhcmdldCBvZmZzZXQgeSAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCB5T2Zmc2V0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVsT2Zmc2V0WTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHlPZmZzZXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3BhbmVsT2Zmc2V0WSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGFycm93IG9mZnNldCB4ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGFycm93T2Zmc2V0WCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcnJvd09mZnNldFg7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBhcnJvd09mZnNldFgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2Fycm93T2Zmc2V0WCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGFycm93IG9mZnNldCB5ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGFycm93T2Zmc2V0WSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcnJvd09mZnNldFk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBhcnJvd09mZnNldFkodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2Fycm93T2Zmc2V0WSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGFycm93IHdpZHRoICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGFycm93V2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGFycm93V2lkdGgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2Fycm93V2lkdGggPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBhcnJvdyBoZWlnaHQgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgYXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGFycm93SGVpZ2h0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9hcnJvd0hlaWdodCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGNsb3NlIG9uIGNvbnRhaW5lciBjbGljayAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBjbG9zZU9uUGFuZWxDbGljaygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPblBhbmVsQ2xpY2s7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBjbG9zZU9uUGFuZWxDbGljayh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlT25QYW5lbENsaWNrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBjbG9zZSBvbiBiYWNrZHJvcCBjbGljayAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBjbG9zZU9uQmFja2Ryb3BDbGljaygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2s7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGNsb3NlT25CYWNrZHJvcENsaWNrKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBEaXNhYmxlIGFuaW1hdGlvbnMgb2YgcG9wb3ZlciBhbmQgYWxsIGNoaWxkIGVsZW1lbnRzICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGRpc2FibGVBbmltYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVBbmltYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkaXNhYmxlQW5pbWF0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgZm9jdXMgdHJhcCB1c2luZyBjZGtUcmFwRm9jdXMgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgZm9jdXNUcmFwRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNUcmFwRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGZvY3VzVHJhcEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9mb2N1c1RyYXBFbmFibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBmb2N1cyB0cmFwIGF1dG8gY2FwdHVyZSB1c2luZyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2ZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBjbGFzc2VzIHNldCBvbiB0aGUgaG9zdCBtZC1wb3BvdmVyIGVsZW1lbnQgYW5kIGFwcGxpZXMgdGhlbSBvbiB0aGVcclxuICAgICAqIHBvcG92ZXIgdGVtcGxhdGUgdGhhdCBkaXNwbGF5cyBpbiB0aGUgb3ZlcmxheSBjb250YWluZXIuICBPdGhlcndpc2UsIGl0J3MgZGlmZmljdWx0XHJcbiAgICAgKiB0byBzdHlsZSB0aGUgY29udGFpbmluZyBwb3BvdmVyIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjbGFzc2VzIGxpc3Qgb2YgY2xhc3MgbmFtZXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBwYW5lbENsYXNzKGNsYXNzZXM6IHN0cmluZykge1xyXG4gICAgICAgIGlmIChjbGFzc2VzICYmIGNsYXNzZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xhc3NMaXN0ID0gY2xhc3Nlcy5zcGxpdCgnICcpLnJlZHVjZSgob2JqOiBhbnksIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvYmpbY2xhc3NOYW1lXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgICAgICB9LCB7fSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb25DbGFzc2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW1pdENsb3NlRXZlbnQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlZC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBIYW5kbGUgYSBrZXlib2FyZCBldmVudCBmcm9tIHRoZSBwb3BvdmVyLCBkZWxlZ2F0aW5nIHRvIHRoZSBhcHByb3ByaWF0ZSBhY3Rpb24uICovXHJcbiAgICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDbG9zZUV2ZW50KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBlbWl0cyBhIGNsb3NlIGV2ZW50IHRvIHdoaWNoIHRoZSB0cmlnZ2VyIGlzIHN1YnNjcmliZWQuIFdoZW4gZW1pdHRlZCwgdGhlXHJcbiAgICAgKiB0cmlnZ2VyIHdpbGwgY2xvc2UgdGhlIHBvcG92ZXIuXHJcbiAgICAgKi9cclxuICAgIGVtaXRDbG9zZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2xvc2UgcG9wb3ZlciBvbiBjbGljayBpZiBjbG9zZU9uUGFuZWxDbGljayBpcyB0cnVlICovXHJcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25QYW5lbENsaWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdENsb3NlRXZlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUT0RPOiBSZWZhY3RvciB3aGVuIEBhbmd1bGFyL2NkayBpbmNsdWRlcyBmZWF0dXJlIEkgbWVudGlvbmVkIG9uIGdpdGh1YiBzZWUgbGluayBiZWxvdy5cclxuICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMi9wdWxsLzU0OTMjaXNzdWVjb21tZW50LTMxMzA4NTMyM1xyXG4gICAgICovXHJcbiAgICAvKiogRGlzYWJsZXMgY2xvc2Ugb2YgcG9wb3ZlciB3aGVuIGxlYXZpbmcgdHJpZ2dlciBlbGVtZW50IGFuZCBtb3VzZSBvdmVyIHRoZSBwb3BvdmVyICovXHJcbiAgICBvbk1vdXNlT3ZlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyRXZlbnQgPT09ICdob3ZlcicpIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZURpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgICAgICAvL2RvIHNvbWV0aW5nXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEVuYWJsZXMgY2xvc2Ugb2YgcG9wb3ZlciB3aGVuIG1vdXNlIGxlYXZpbmcgcG9wb3ZlciBlbGVtZW50ICovXHJcbiAgICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlckV2ZW50ID09PSAnaG92ZXInKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRDbG9zZUV2ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IFJlZmFjdG9yIGhvdyBzdHlsZXMgYXJlIHNldCBhbmQgdXBkYXRlZCBvbiB0aGUgY29tcG9uZW50LCB1c2UgYmVzdCBwcmFjdGljZXMuXHJcbiAgICAvLyBUT0RPOiBJZiBhcnJvdyBsZWZ0IGFuZCByaWdodCBwb3NpdGlvbmluZyBpcyByZXF1ZXN0ZWQsIHNlZSBpZiBmbGV4IGRpcmVjdGlvbiBjYW4gYmUgdXNlZCB0byB3b3JrIHdpdGggb3JkZXIuXHJcbiAgICAvKiogU2V0cyB0aGUgY3VycmVudCBzdHlsZXMgZm9yIHRoZSBwb3BvdmVyIHRvIGFsbG93IGZvciBkeW5hbWljYWxseSBjaGFuZ2luZyBzZXR0aW5ncyAqL1xyXG4gICAgc2V0Q3VycmVudFN0eWxlcyhwb3MgPSB0aGlzLnBvc2l0aW9uKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9XHJcbiAgICAgICAgICAgIHBvc1sxXSA9PT0gJ2FmdGVyJ1xyXG4gICAgICAgICAgICAgICAgPyBgJHt0aGlzLmFycm93T2Zmc2V0WCAtIHRoaXMuYXJyb3dXaWR0aCAvIDJ9cHhgXHJcbiAgICAgICAgICAgICAgICA6IHBvc1sxXSA9PT0gJ2NlbnRlcidcclxuICAgICAgICAgICAgICAgICAgICA/IGBjYWxjKDUwJSAtICR7dGhpcy5hcnJvd1dpZHRoIC8gMn1weClgXHJcbiAgICAgICAgICAgICAgICAgICAgOiAnJztcclxuICAgICAgICBjb25zdCByaWdodCA9IHBvc1sxXSA9PT0gJ2JlZm9yZScgPyBgJHt0aGlzLmFycm93T2Zmc2V0WCAtIHRoaXMuYXJyb3dXaWR0aCAvIDJ9cHhgIDogJyc7XHJcblxyXG4gICAgICAgIGNvbnN0IGJvdHRvbSA9XHJcbiAgICAgICAgICAgIHBvc1sxXSA9PT0gJ2Fib3ZlJ1xyXG4gICAgICAgICAgICAgICAgPyBgJHt0aGlzLmFycm93T2Zmc2V0WSAtIHRoaXMuYXJyb3dIZWlnaHQgLyAyfXB4YFxyXG4gICAgICAgICAgICAgICAgOiBwb3NbMV0gPT09ICdjZW50ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgPyBgY2FsYyg1MCUgLSAke3RoaXMuYXJyb3dIZWlnaHQgLyAyfXB4KWBcclxuICAgICAgICAgICAgICAgICAgICA6ICcnO1xyXG4gICAgICAgIGNvbnN0IHRvcCA9IHBvc1sxXSA9PT0gJ2JlbG93JyA/IGAke3RoaXMuYXJyb3dPZmZzZXRZIC0gdGhpcy5hcnJvd0hlaWdodCAvIDJ9cHhgIDogJyc7XHJcblxyXG4gICAgICAgIHRoaXMucG9wb3ZlckFycm93U3R5bGVzID1cclxuICAgICAgICAgICAgcG9zWzBdID09PSAnYWJvdmUnIHx8IHBvc1swXSA9PT0gJ2JlbG93J1xyXG4gICAgICAgICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogdGhpcy5fZGlyLnZhbHVlID09PSAnbHRyJyA/IGxlZnQgOiByaWdodCxcclxuICAgICAgICAgICAgICAgICAgICByaWdodDogdGhpcy5fZGlyLnZhbHVlID09PSAnbHRyJyA/IHJpZ2h0IDogbGVmdCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcCxcclxuICAgICAgICAgICAgICAgICAgICBib3R0b20sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQncyBuZWNlc3NhcnkgdG8gc2V0IHBvc2l0aW9uLWJhc2VkIGNsYXNzZXMgdG8gZW5zdXJlIHRoZSBwb3BvdmVyIHBhbmVsIGFuaW1hdGlvblxyXG4gICAgICogZm9sZHMgb3V0IGZyb20gdGhlIGNvcnJlY3QgZGlyZWN0aW9uLlxyXG4gICAgICovXHJcbiAgICBzZXRQb3NpdGlvbkNsYXNzZXMocG9zID0gdGhpcy5wb3NpdGlvbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYmVmb3JlLWFib3ZlJ10gPSBwb3NbMF0gPT09ICdiZWZvcmUnICYmIHBvc1sxXSA9PT0gJ2Fib3ZlJztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWJlZm9yZS1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2JlZm9yZScgJiYgcG9zWzFdID09PSAnY2VudGVyJztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWJlZm9yZS1iZWxvdyddID0gcG9zWzBdID09PSAnYmVmb3JlJyAmJiBwb3NbMV0gPT09ICdiZWxvdyc7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1hZnRlci1hYm92ZSddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2Fib3ZlJztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWFmdGVyLWNlbnRlciddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1hZnRlci1iZWxvdyddID0gcG9zWzBdID09PSAnYWZ0ZXInICYmIHBvc1sxXSA9PT0gJ2JlbG93JztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWFib3ZlLWJlZm9yZSddID0gcG9zWzBdID09PSAnYWJvdmUnICYmIHBvc1sxXSA9PT0gJ2JlZm9yZSc7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1hYm92ZS1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYWJvdmUtYWZ0ZXInXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdhZnRlcic7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1iZWxvdy1iZWZvcmUnXSA9IHBvc1swXSA9PT0gJ2JlbG93JyAmJiBwb3NbMV0gPT09ICdiZWZvcmUnO1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYmVsb3ctY2VudGVyJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnY2VudGVyJztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWJlbG93LWFmdGVyJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnYWZ0ZXInO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZT5cclxuICAgIDxkaXYgIGNsYXNzPVwiY21hdC1wb3BvdmVyLXBhbmVsIHNoYWRvd1wiIHJvbGU9XCJkaWFsb2dcIiBbbmdDbGFzc109XCJjbGFzc0xpc3RcIiBbbmdTdHlsZV09XCJwb3BvdmVyUGFuZWxTdHlsZXNcIlxyXG4gICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleWRvd24oJGV2ZW50KVwiIChjbGljayk9XCJvbkNsaWNrKClcIiAoZm9jdXMpPVwib25Gb2N1cygpXCIgKG1vdXNlb3Zlcik9XCJvbk1vdXNlT3ZlcigpXCIgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxyXG4gICAgICAgIFtALmRpc2FibGVkXT1cImRpc2FibGVBbmltYXRpb25cIiBbQHRyYW5zZm9ybV09XCInZW50ZXInXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNtYXQtcG9wb3Zlci1kaXJlY3Rpb24tYXJyb3dcIiBbbmdTdHlsZV09XCJwb3BvdmVyQXJyb3dTdHlsZXNcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY21hdC1wb3BvdmVyLWNvbnRlbnRcIiBbbmdTdHlsZV09XCJwb3BvdmVyQ29udGVudFN0eWxlc1wiIFtjZGtUcmFwRm9jdXNdPVwiZm9jdXNUcmFwRW5hYmxlZFwiXHJcbiAgICAgICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBZTVHLE1BQU0sT0FBTyxvQkFBb0I7SUFzRDdCLFlBQ3dCLElBQW9CLEVBQ2hDLFdBQXVCLEVBQ3hCLElBQVk7UUFGQyxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBbER2QixnREFBZ0Q7UUFDdEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFJbEIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUMxQyxrRUFBa0U7UUFFbEUsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRXhCLGtFQUFrRTtRQUUzRCx1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aUI7c0JBRHBCLEtBQUs7Z0JBV0Ysb0JBQW9CO3NCQUR2QixLQUFLO2dCQVlGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFZRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBWUYsMkJBQTJCO3NCQUQ5QixLQUFLO2dCQWFGLFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xyXG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNtYXRBbmltYXRpb25zIH0gZnJvbSAnY21hdC9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgdGhyb3dDbWF0UG9wb3ZlckludmFsaWRQb3NpdGlvbkVuZCwgdGhyb3dDbWF0UG9wb3ZlckludmFsaWRQb3NpdGlvblN0YXJ0IH0gZnJvbSAnLi9wb3BvdmVyLmVycm9ycyc7XHJcbmltcG9ydCB7IENtYXRQb3BvdmVyUGFuZWwgfSBmcm9tICcuL3BvcG92ZXIuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENtYXRQb3BvdmVyUG9zaXRpb24sIENtYXRQb3BvdmVyU2Nyb2xsU3RyYXRlZ3ksIENtYXRQb3BvdmVyVHJpZ2dlckV2ZW50IH0gZnJvbSAnLi9wb3BvdmVyLnR5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtcG9wb3ZlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBhbmltYXRpb25zOiBbY21hdEFuaW1hdGlvbnNdLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0UG9wb3ZlcicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nU3R5bGUsIE5nQ2xhc3MsQTExeU1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQ21hdFBvcG92ZXJQYW5lbCwgT25EZXN0cm95IHtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jbG9zZU9uUGFuZWxDbGljazogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NlT25CYWNrZHJvcENsaWNrOiBCb29sZWFuSW5wdXQ7XHJcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZUFuaW1hdGlvbjogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2ZvY3VzVHJhcEVuYWJsZWQ6IEJvb2xlYW5JbnB1dDtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQ6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIGlzIGNsb3NlZC4gKi9cclxuICAgIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdkaWFsb2cnO1xyXG4gICAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBhcnJvdyBuZ1N0eWxlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcG9wb3ZlclBhbmVsU3R5bGVzID0ge307XHJcblxyXG4gICAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBhcnJvdyBuZ1N0eWxlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvcG92ZXJBcnJvd1N0eWxlcyA9IHt9O1xyXG5cclxuICAgIC8qKiBDb25maWcgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBwb3BvdmVyJ3MgY29udGVudCBuZ1N0eWxlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvcG92ZXJDb250ZW50U3R5bGVzID0ge307XHJcbiAgICAvKiogV2hldGhlciBwb3BvdmVyJ3MgYHRhcmdldEVsZW1lbnRgIGlzIGRlZmluZWQgKi9cclxuICAgIHB1YmxpYyBjb250YWluZXJQb3NpdGlvbmluZyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBDbG9zaW5nIGRpc2FibGVkIG9uIHBvcG92ZXIgKi9cclxuICAgIHB1YmxpYyBjbG9zZURpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIENvbmZpZyBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIHBvcG92ZXIncyBuZ0NsYXNzICovXHJcbiAgICBjbGFzc0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcblxyXG4gICAgLyoqIEVtaXRzIHRoZSBjdXJyZW50IGFuaW1hdGlvbiBzdGF0ZSB3aGVuZXZlciBpdCBjaGFuZ2VzLiAqL1xyXG4gICAgX29uQW5pbWF0aW9uU3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFuaW1hdGlvbkV2ZW50PigpO1xyXG5cclxuICAgIC8qKiBTZXR0aW5ncyBmb3IgcG9wb3ZlciwgdmlldyBzZXR0ZXJzIGFuZCBnZXR0ZXJzIGZvciBtb3JlIGRldGFpbCAqL1xyXG4gICAgcHJpdmF0ZSBfcG9zaXRpb246IENtYXRQb3BvdmVyUG9zaXRpb24gPSBbJ2JlbG93JywgJ2FmdGVyJ107XHJcbiAgICBwcml2YXRlIF90cmlnZ2VyRXZlbnQ6IENtYXRQb3BvdmVyVHJpZ2dlckV2ZW50ID0gJ2hvdmVyJztcclxuICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiBDbWF0UG9wb3ZlclNjcm9sbFN0cmF0ZWd5ID0gJ3JlcG9zaXRpb24nO1xyXG4gICAgcHJpdmF0ZSBfZW50ZXJEZWxheSA9IDEwMDtcclxuICAgIHByaXZhdGUgX2xlYXZlRGVsYXkgPSAxMDA7XHJcbiAgICBwcml2YXRlIF9wYW5lbE9mZnNldFggPSAwO1xyXG4gICAgcHJpdmF0ZSBfcGFuZWxPZmZzZXRZID0gMDtcclxuICAgIHByaXZhdGUgX2Nsb3NlT25QYW5lbENsaWNrID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IHRydWU7XHJcbiAgICBwcml2YXRlIF9kaXNhYmxlQW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9mb2N1c1RyYXBFbmFibGVkID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgX2ZvY3VzVHJhcEF1dG9DYXB0dXJlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBwcml2YXRlIF9hcnJvd09mZnNldFggPSAyMDtcclxuICAgIHByaXZhdGUgX2Fycm93T2Zmc2V0WSA9IDIwO1xyXG4gICAgcHJpdmF0ZSBfYXJyb3dXaWR0aCA9IDE2O1xyXG4gICAgcHJpdmF0ZSBfYXJyb3dIZWlnaHQgPSAxNjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHVibGljIHpvbmU6IE5nWm9uZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbkNsYXNzZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcG9zaXRpb24oKTogQ21hdFBvcG92ZXJQb3NpdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xyXG4gICAgfVxyXG4gICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBwb3BvdmVyLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBwb3NpdGlvbih2YWx1ZTogQ21hdFBvcG92ZXJQb3NpdGlvbikge1xyXG4gICAgICAgIGlmICghWydiZWZvcmUnLCAnYWZ0ZXInLCAnYWJvdmUnLCAnYmVsb3cnXS5pbmNsdWRlcyh2YWx1ZVswXSkpIHtcclxuICAgICAgICAgICAgdGhyb3dDbWF0UG9wb3ZlckludmFsaWRQb3NpdGlvblN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghWydiZWZvcmUnLCAnYWZ0ZXInLCAnYWJvdmUnLCAnYmVsb3cnLCAnY2VudGVyJ10uaW5jbHVkZXModmFsdWVbMV0pKSB7XHJcbiAgICAgICAgICAgIHRocm93Q21hdFBvcG92ZXJJbnZhbGlkUG9zaXRpb25FbmQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIHRyaWdnZXIgZXZlbnQgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgdHJpZ2dlckV2ZW50KCk6IENtYXRQb3BvdmVyVHJpZ2dlckV2ZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckV2ZW50O1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCB0cmlnZ2VyRXZlbnQodmFsdWU6IENtYXRQb3BvdmVyVHJpZ2dlckV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgc2Nyb2xsIHN0cmF0ZWd5ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IHNjcm9sbFN0cmF0ZWd5KCk6IENtYXRQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxTdHJhdGVneTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgc2Nyb2xsU3RyYXRlZ3kodmFsdWU6IENtYXRQb3BvdmVyU2Nyb2xsU3RyYXRlZ3kpIHtcclxuICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGVudGVyIGRlbGF5ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGVudGVyRGVsYXkoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZW50ZXJEZWxheTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGVudGVyRGVsYXkodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2VudGVyRGVsYXkgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBsZWF2ZSBkZWxheSAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBsZWF2ZURlbGF5KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xlYXZlRGVsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBsZWF2ZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9sZWF2ZURlbGF5ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgdGFyZ2V0IG9mZnNldCB4ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IHhPZmZzZXQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxPZmZzZXRYO1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCB4T2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9wYW5lbE9mZnNldFggPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciB0YXJnZXQgb2Zmc2V0IHkgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgeU9mZnNldCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYW5lbE9mZnNldFk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCB5T2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9wYW5lbE9mZnNldFkgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBhcnJvdyBvZmZzZXQgeCAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBhcnJvd09mZnNldFgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dPZmZzZXRYO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgYXJyb3dPZmZzZXRYKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9hcnJvd09mZnNldFggPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBhcnJvdyBvZmZzZXQgeSAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBhcnJvd09mZnNldFkoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dPZmZzZXRZO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgYXJyb3dPZmZzZXRZKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9hcnJvd09mZnNldFkgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBhcnJvdyB3aWR0aCAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBhcnJvd1dpZHRoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fycm93V2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBhcnJvd1dpZHRoKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9hcnJvd1dpZHRoID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgYXJyb3cgaGVpZ2h0ICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGFycm93SGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fycm93SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBhcnJvd0hlaWdodCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fYXJyb3dIZWlnaHQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUG9wb3ZlciBjbG9zZSBvbiBjb250YWluZXIgY2xpY2sgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgY2xvc2VPblBhbmVsQ2xpY2soKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nsb3NlT25QYW5lbENsaWNrO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgY2xvc2VPblBhbmVsQ2xpY2sodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9jbG9zZU9uUGFuZWxDbGljayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgY2xvc2Ugb24gYmFja2Ryb3AgY2xpY2sgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgY2xvc2VPbkJhY2tkcm9wQ2xpY2soKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrO1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBjbG9zZU9uQmFja2Ryb3BDbGljayh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRGlzYWJsZSBhbmltYXRpb25zIG9mIHBvcG92ZXIgYW5kIGFsbCBjaGlsZCBlbGVtZW50cyAqL1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICAgIGdldCBkaXNhYmxlQW5pbWF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzYWJsZUFuaW1hdGlvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVBbmltYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBQb3BvdmVyIGZvY3VzIHRyYXAgdXNpbmcgY2RrVHJhcEZvY3VzICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gICAgZ2V0IGZvY3VzVHJhcEVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzVHJhcEVuYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBmb2N1c1RyYXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fZm9jdXNUcmFwRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBvcG92ZXIgZm9jdXMgdHJhcCBhdXRvIGNhcHR1cmUgdXNpbmcgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBmb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9mb2N1c1RyYXBBdXRvQ2FwdHVyZUVuYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgdGFrZXMgY2xhc3NlcyBzZXQgb24gdGhlIGhvc3QgbWQtcG9wb3ZlciBlbGVtZW50IGFuZCBhcHBsaWVzIHRoZW0gb24gdGhlXHJcbiAgICAgKiBwb3BvdmVyIHRlbXBsYXRlIHRoYXQgZGlzcGxheXMgaW4gdGhlIG92ZXJsYXkgY29udGFpbmVyLiAgT3RoZXJ3aXNlLCBpdCdzIGRpZmZpY3VsdFxyXG4gICAgICogdG8gc3R5bGUgdGhlIGNvbnRhaW5pbmcgcG9wb3ZlciBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2xhc3NlcyBsaXN0IG9mIGNsYXNzIG5hbWVzXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgcGFuZWxDbGFzcyhjbGFzc2VzOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoY2xhc3NlcyAmJiBjbGFzc2VzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsYXNzTGlzdCA9IGNsYXNzZXMuc3BsaXQoJyAnKS5yZWR1Y2UoKG9iajogYW55LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgb2JqW2NsYXNzTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcclxuICAgICAgICAgICAgfSwge30pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uQ2xhc3NlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVtaXRDbG9zZUV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogSGFuZGxlIGEga2V5Ym9hcmQgZXZlbnQgZnJvbSB0aGUgcG9wb3ZlciwgZGVsZWdhdGluZyB0byB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uLiAqL1xyXG4gICAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q2xvc2VFdmVudCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZW1pdHMgYSBjbG9zZSBldmVudCB0byB3aGljaCB0aGUgdHJpZ2dlciBpcyBzdWJzY3JpYmVkLiBXaGVuIGVtaXR0ZWQsIHRoZVxyXG4gICAgICogdHJpZ2dlciB3aWxsIGNsb3NlIHRoZSBwb3BvdmVyLlxyXG4gICAgICovXHJcbiAgICBlbWl0Q2xvc2VFdmVudCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENsb3NlIHBvcG92ZXIgb24gY2xpY2sgaWYgY2xvc2VPblBhbmVsQ2xpY2sgaXMgdHJ1ZSAqL1xyXG4gICAgb25DbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jbG9zZU9uUGFuZWxDbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRDbG9zZUV2ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVE9ETzogUmVmYWN0b3Igd2hlbiBAYW5ndWxhci9jZGsgaW5jbHVkZXMgZmVhdHVyZSBJIG1lbnRpb25lZCBvbiBnaXRodWIgc2VlIGxpbmsgYmVsb3cuXHJcbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvcHVsbC81NDkzI2lzc3VlY29tbWVudC0zMTMwODUzMjNcclxuICAgICAqL1xyXG4gICAgLyoqIERpc2FibGVzIGNsb3NlIG9mIHBvcG92ZXIgd2hlbiBsZWF2aW5nIHRyaWdnZXIgZWxlbWVudCBhbmQgbW91c2Ugb3ZlciB0aGUgcG9wb3ZlciAqL1xyXG4gICAgb25Nb3VzZU92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlckV2ZW50ID09PSAnaG92ZXInKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uRm9jdXMoKTogdm9pZCB7XHJcbiAgICAgICAgLy9kbyBzb21ldGluZ1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBFbmFibGVzIGNsb3NlIG9mIHBvcG92ZXIgd2hlbiBtb3VzZSBsZWF2aW5nIHBvcG92ZXIgZWxlbWVudCAqL1xyXG4gICAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXJFdmVudCA9PT0gJ2hvdmVyJykge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5lbWl0Q2xvc2VFdmVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPOiBSZWZhY3RvciBob3cgc3R5bGVzIGFyZSBzZXQgYW5kIHVwZGF0ZWQgb24gdGhlIGNvbXBvbmVudCwgdXNlIGJlc3QgcHJhY3RpY2VzLlxyXG4gICAgLy8gVE9ETzogSWYgYXJyb3cgbGVmdCBhbmQgcmlnaHQgcG9zaXRpb25pbmcgaXMgcmVxdWVzdGVkLCBzZWUgaWYgZmxleCBkaXJlY3Rpb24gY2FuIGJlIHVzZWQgdG8gd29yayB3aXRoIG9yZGVyLlxyXG4gICAgLyoqIFNldHMgdGhlIGN1cnJlbnQgc3R5bGVzIGZvciB0aGUgcG9wb3ZlciB0byBhbGxvdyBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgc2V0dGluZ3MgKi9cclxuICAgIHNldEN1cnJlbnRTdHlsZXMocG9zID0gdGhpcy5wb3NpdGlvbik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPVxyXG4gICAgICAgICAgICBwb3NbMV0gPT09ICdhZnRlcidcclxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5hcnJvd09mZnNldFggLSB0aGlzLmFycm93V2lkdGggLyAyfXB4YFxyXG4gICAgICAgICAgICAgICAgOiBwb3NbMV0gPT09ICdjZW50ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgPyBgY2FsYyg1MCUgLSAke3RoaXMuYXJyb3dXaWR0aCAvIDJ9cHgpYFxyXG4gICAgICAgICAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgY29uc3QgcmlnaHQgPSBwb3NbMV0gPT09ICdiZWZvcmUnID8gYCR7dGhpcy5hcnJvd09mZnNldFggLSB0aGlzLmFycm93V2lkdGggLyAyfXB4YCA6ICcnO1xyXG5cclxuICAgICAgICBjb25zdCBib3R0b20gPVxyXG4gICAgICAgICAgICBwb3NbMV0gPT09ICdhYm92ZSdcclxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5hcnJvd09mZnNldFkgLSB0aGlzLmFycm93SGVpZ2h0IC8gMn1weGBcclxuICAgICAgICAgICAgICAgIDogcG9zWzFdID09PSAnY2VudGVyJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gYGNhbGMoNTAlIC0gJHt0aGlzLmFycm93SGVpZ2h0IC8gMn1weClgXHJcbiAgICAgICAgICAgICAgICAgICAgOiAnJztcclxuICAgICAgICBjb25zdCB0b3AgPSBwb3NbMV0gPT09ICdiZWxvdycgPyBgJHt0aGlzLmFycm93T2Zmc2V0WSAtIHRoaXMuYXJyb3dIZWlnaHQgLyAyfXB4YCA6ICcnO1xyXG5cclxuICAgICAgICB0aGlzLnBvcG92ZXJBcnJvd1N0eWxlcyA9XHJcbiAgICAgICAgICAgIHBvc1swXSA9PT0gJ2Fib3ZlJyB8fCBwb3NbMF0gPT09ICdiZWxvdydcclxuICAgICAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHRoaXMuX2Rpci52YWx1ZSA9PT0gJ2x0cicgPyBsZWZ0IDogcmlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHRoaXMuX2Rpci52YWx1ZSA9PT0gJ2x0cicgPyByaWdodCA6IGxlZnQsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICB0b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0J3MgbmVjZXNzYXJ5IHRvIHNldCBwb3NpdGlvbi1iYXNlZCBjbGFzc2VzIHRvIGVuc3VyZSB0aGUgcG9wb3ZlciBwYW5lbCBhbmltYXRpb25cclxuICAgICAqIGZvbGRzIG91dCBmcm9tIHRoZSBjb3JyZWN0IGRpcmVjdGlvbi5cclxuICAgICAqL1xyXG4gICAgc2V0UG9zaXRpb25DbGFzc2VzKHBvcyA9IHRoaXMucG9zaXRpb24pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWJlZm9yZS1hYm92ZSddID0gcG9zWzBdID09PSAnYmVmb3JlJyAmJiBwb3NbMV0gPT09ICdhYm92ZSc7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1iZWZvcmUtY2VudGVyJ10gPSBwb3NbMF0gPT09ICdiZWZvcmUnICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1iZWZvcmUtYmVsb3cnXSA9IHBvc1swXSA9PT0gJ2JlZm9yZScgJiYgcG9zWzFdID09PSAnYmVsb3cnO1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYWZ0ZXItYWJvdmUnXSA9IHBvc1swXSA9PT0gJ2FmdGVyJyAmJiBwb3NbMV0gPT09ICdhYm92ZSc7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1hZnRlci1jZW50ZXInXSA9IHBvc1swXSA9PT0gJ2FmdGVyJyAmJiBwb3NbMV0gPT09ICdjZW50ZXInO1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYWZ0ZXItYmVsb3cnXSA9IHBvc1swXSA9PT0gJ2FmdGVyJyAmJiBwb3NbMV0gPT09ICdiZWxvdyc7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1hYm92ZS1iZWZvcmUnXSA9IHBvc1swXSA9PT0gJ2Fib3ZlJyAmJiBwb3NbMV0gPT09ICdiZWZvcmUnO1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYWJvdmUtY2VudGVyJ10gPSBwb3NbMF0gPT09ICdhYm92ZScgJiYgcG9zWzFdID09PSAnY2VudGVyJztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWFib3ZlLWFmdGVyJ10gPSBwb3NbMF0gPT09ICdhYm92ZScgJiYgcG9zWzFdID09PSAnYWZ0ZXInO1xyXG4gICAgICAgIHRoaXMuY2xhc3NMaXN0WydjbWF0LXBvcG92ZXItYmVsb3ctYmVmb3JlJ10gPSBwb3NbMF0gPT09ICdiZWxvdycgJiYgcG9zWzFdID09PSAnYmVmb3JlJztcclxuICAgICAgICB0aGlzLmNsYXNzTGlzdFsnY21hdC1wb3BvdmVyLWJlbG93LWNlbnRlciddID0gcG9zWzBdID09PSAnYmVsb3cnICYmIHBvc1sxXSA9PT0gJ2NlbnRlcic7XHJcbiAgICAgICAgdGhpcy5jbGFzc0xpc3RbJ2NtYXQtcG9wb3Zlci1iZWxvdy1hZnRlciddID0gcG9zWzBdID09PSAnYmVsb3cnICYmIHBvc1sxXSA9PT0gJ2FmdGVyJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGU+XHJcbiAgICA8ZGl2ICBjbGFzcz1cImNtYXQtcG9wb3Zlci1wYW5lbCBzaGFkb3dcIiByb2xlPVwiZGlhbG9nXCIgW25nQ2xhc3NdPVwiY2xhc3NMaXN0XCIgW25nU3R5bGVdPVwicG9wb3ZlclBhbmVsU3R5bGVzXCJcclxuICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlkb3duKCRldmVudClcIiAoY2xpY2spPVwib25DbGljaygpXCIgKGZvY3VzKT1cIm9uRm9jdXMoKVwiIChtb3VzZW92ZXIpPVwib25Nb3VzZU92ZXIoKVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcclxuICAgICAgICBbQC5kaXNhYmxlZF09XCJkaXNhYmxlQW5pbWF0aW9uXCIgW0B0cmFuc2Zvcm1dPVwiJ2VudGVyJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbWF0LXBvcG92ZXItZGlyZWN0aW9uLWFycm93XCIgW25nU3R5bGVdPVwicG9wb3ZlckFycm93U3R5bGVzXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNtYXQtcG9wb3Zlci1jb250ZW50XCIgW25nU3R5bGVdPVwicG9wb3ZlckNvbnRlbnRTdHlsZXNcIiBbY2RrVHJhcEZvY3VzXT1cImZvY3VzVHJhcEVuYWJsZWRcIlxyXG4gICAgICAgICAgICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwiZm9jdXNUcmFwQXV0b0NhcHR1cmVFbmFibGVkXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CmatPopoverTargetDirective {
4
+ constructor(elementRef) {
5
+ this.elementRef = elementRef;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatPopoverTargetDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.7", type: CmatPopoverTargetDirective, isStandalone: true, selector: "cmat-popover-target, [cmatPopoverTarget]", exportAs: ["cmatPopoverTarget"], ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: 'cmat-popover-target, [cmatPopoverTarget]',
14
+ standalone: true,
15
+ exportAs: 'cmatPopoverTarget',
16
+ }]
17
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci50YXJnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLnRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDOztBQU90RCxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDekMsQ0FBQzs4R0FGUSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxVQUFVLEVBQUMsSUFBSTtvQkFDZixRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtcG9wb3Zlci10YXJnZXQsIFtjbWF0UG9wb3ZlclRhcmdldF0nLFxyXG4gICAgc3RhbmRhbG9uZTp0cnVlLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0UG9wb3ZlclRhcmdldCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UG9wb3ZlclRhcmdldERpcmVjdGl2ZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,5 @@
1
1
  export * from './popover.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wb3BvdmVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcG9wb3Zlci5jb21wb25lbnQnO1xyXG4iXX0=
2
+ export * from './popover-trigger';
3
+ export * from './popover.type';
4
+ export * from './popover.target';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wb3BvdmVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcG9wb3Zlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BvcG92ZXItdHJpZ2dlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcG9wb3Zlci50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wb3BvdmVyLnRhcmdldCc7XHJcbiJdfQ==
@@ -1,8 +1,8 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
1
2
  import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
2
4
  import { Subject } from 'rxjs';
3
5
  import { takeUntil } from 'rxjs/operators';
4
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
- import { MatProgressBarModule } from '@angular/material/progress-bar';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "cmat/services/loading";
8
8
  import * as i2 from "@angular/material/progress-bar";
@@ -46,13 +46,13 @@ export class CmatProgressBarComponent {
46
46
  this._unsubscribeAll.next(null);
47
47
  this._unsubscribeAll.complete();
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatProgressBarComponent, deps: [{ token: i1.CmatLoadingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatProgressBarComponent, isStandalone: true, selector: "cmat-progress-bar", inputs: { autoMode: "autoMode" }, exportAs: ["cmatProgressBar"], usesOnChanges: true, ngImport: i0, template: "@if (show) {\n <mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"></mat-progress-bar>\n}\n", styles: ["cmat-progress-bar{position:fixed;top:0;z-index:999;width:100%;height:6px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatProgressBarComponent, deps: [{ token: i1.CmatLoadingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatProgressBarComponent, isStandalone: true, selector: "cmat-progress-bar", inputs: { autoMode: "autoMode" }, exportAs: ["cmatProgressBar"], usesOnChanges: true, ngImport: i0, template: "@if (show) {\n <mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"></mat-progress-bar>\n}\n", styles: ["cmat-progress-bar{position:fixed;top:0;z-index:999;width:100%;height:6px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatProgressBarComponent, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatProgressBarComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: 'cmat-progress-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatProgressBar', standalone: true, imports: [MatProgressBarModule], template: "@if (show) {\n <mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"></mat-progress-bar>\n}\n", styles: ["cmat-progress-bar{position:fixed;top:0;z-index:999;width:100%;height:6px}\n"] }]
55
55
  }], ctorParameters: () => [{ type: i1.CmatLoadingService }, { type: i0.ChangeDetectorRef }], propDecorators: { autoMode: [{
56
56
  type: Input
57
57
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBK0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFhdEUsTUFBTSxPQUFPLHdCQUF3QjtJQU9qQyxZQUNZLG1CQUF1QyxFQUFTLGtCQUFxQztRQUFyRix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQVMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQVB4RixhQUFRLEdBQVksSUFBSSxDQUFDO1FBRWxDLGFBQVEsR0FBa0IsQ0FBQyxDQUFDO1FBQzVCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDZCxvQkFBZSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lBTTNELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsWUFBWTtRQUNaLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUN2QixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUNqRztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUs7YUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFFbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVM7YUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFFdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUs7YUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFFbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRVgsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBbkRRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1LQ2xCckMseUdBS0Esb0lEV2Msb0JBQW9COzsyRkFFckIsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNJLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG9CQUFvQixDQUFDO3VIQUd0QixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ21hdExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnY21hdC9zZXJ2aWNlcy9sb2FkaW5nJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXByb2dyZXNzLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0UHJvZ3Jlc3NCYXInLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRQcm9ncmVzc0Jhck1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRQcm9ncmVzc0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgYXV0b01vZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbW9kZTogJ2RldGVybWluYXRlJyB8ICdpbmRldGVybWluYXRlJztcclxuICAgIHByb2dyZXNzOiBudW1iZXIgfCBudWxsID0gMDtcclxuICAgIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdExvYWRpbmdTZXJ2aWNlOiBDbWF0TG9hZGluZ1NlcnZpY2UscHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIEF1dG8gbW9kZVxyXG4gICAgICAgIGlmICgnYXV0b01vZGUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gU2V0IHRoZSBhdXRvIG1vZGUgaW4gdGhlIHNlcnZpY2VcclxuICAgICAgICAgICAgdGhpcy5fY21hdExvYWRpbmdTZXJ2aWNlLnNldEF1dG9Nb2RlKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydhdXRvTW9kZSddLmN1cnJlbnRWYWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jbWF0TG9hZGluZ1NlcnZpY2UubW9kZSRcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fY21hdExvYWRpbmdTZXJ2aWNlLnByb2dyZXNzJFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fY21hdExvYWRpbmdTZXJ2aWNlLnNob3ckXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKHNob3cpIHtcbiAgPG1hdC1wcm9ncmVzcy1iYXJcbiAgICBbbW9kZV09XCJtb2RlXCJcbiAgW3ZhbHVlXT1cInByb2dyZXNzXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxufVxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBK0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjM0MsTUFBTSxPQUFPLHdCQUF3QjtJQU9qQyxZQUNZLG1CQUF1QyxFQUFTLGtCQUFxQztRQUFyRix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQVMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQVB4RixhQUFRLEdBQVksSUFBSSxDQUFDO1FBRWxDLGFBQVEsR0FBa0IsQ0FBQyxDQUFDO1FBQzVCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDZCxvQkFBZSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lBTTNELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsWUFBWTtRQUNaLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUN2QixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUNqRztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUs7YUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFFbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVM7YUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFFdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUs7YUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFFbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRVgsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBbkRRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1LQ2xCckMseUdBS0Esb0lEV2Msb0JBQW9COzsyRkFFckIsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNJLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG9CQUFvQixDQUFDO3VIQUd0QixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDbWF0TG9hZGluZ1NlcnZpY2UgfSBmcm9tICdjbWF0L3NlcnZpY2VzL2xvYWRpbmcnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXByb2dyZXNzLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0UHJvZ3Jlc3NCYXInLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRQcm9ncmVzc0Jhck1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRQcm9ncmVzc0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgYXV0b01vZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbW9kZTogJ2RldGVybWluYXRlJyB8ICdpbmRldGVybWluYXRlJztcclxuICAgIHByb2dyZXNzOiBudW1iZXIgfCBudWxsID0gMDtcclxuICAgIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdExvYWRpbmdTZXJ2aWNlOiBDbWF0TG9hZGluZ1NlcnZpY2UscHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIEF1dG8gbW9kZVxyXG4gICAgICAgIGlmICgnYXV0b01vZGUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gU2V0IHRoZSBhdXRvIG1vZGUgaW4gdGhlIHNlcnZpY2VcclxuICAgICAgICAgICAgdGhpcy5fY21hdExvYWRpbmdTZXJ2aWNlLnNldEF1dG9Nb2RlKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydhdXRvTW9kZSddLmN1cnJlbnRWYWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jbWF0TG9hZGluZ1NlcnZpY2UubW9kZSRcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fY21hdExvYWRpbmdTZXJ2aWNlLnByb2dyZXNzJFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fY21hdExvYWRpbmdTZXJ2aWNlLnNob3ckXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3cgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKHNob3cpIHtcbiAgPG1hdC1wcm9ncmVzcy1iYXJcbiAgICBbbW9kZV09XCJtb2RlXCJcbiAgW3ZhbHVlXT1cInByb2dyZXNzXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxufVxuIl19
@@ -1,22 +1,34 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
1
+ /* eslint-disable @typescript-eslint/member-ordering */
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
3
  import { NgClass, NgStyle } from '@angular/common';
3
- import { Component, Input, Output, EventEmitter, forwardRef, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, Optional, Self, HostBinding, ViewChild } from '@angular/core';
5
+ import { MatFormFieldControl } from '@angular/material/form-field';
5
6
  import { MatIconModule } from '@angular/material/icon';
7
+ import { Subject } from 'rxjs';
6
8
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/icon";
8
- const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
9
- provide: NG_VALUE_ACCESSOR,
10
- useExisting: forwardRef(() => CmatRatingComponent),
11
- multi: true
12
- };
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "@angular/material/icon";
11
+ let NEXT_ID = 0;
13
12
  export class CmatRatingComponent {
14
- constructor() {
13
+ constructor(ngControl, _changeDetectorRef) {
14
+ this.ngControl = ngControl;
15
+ this._changeDetectorRef = _changeDetectorRef;
16
+ this.id = `cmat-chip-input-${NEXT_ID++}`;
15
17
  this.stars = 5;
18
+ this.readonly = false;
16
19
  this.showMode = 'horizontal';
17
20
  this.valueChange = new EventEmitter();
21
+ this.stateChanges = new Subject();
22
+ this.focused = false;
23
+ this.touched = false;
24
+ this.controlType = 'cmat-rating';
18
25
  this.onModelChange = () => { };
19
26
  this.onTouchedChange = () => { };
27
+ this._placeholder = '';
28
+ this._required = false;
29
+ if (this.ngControl != null) {
30
+ this.ngControl.valueAccessor = this;
31
+ }
20
32
  }
21
33
  ngOnInit() {
22
34
  this.starArray = [];
@@ -32,17 +44,86 @@ export class CmatRatingComponent {
32
44
  }
33
45
  }
34
46
  }
47
+ ngOnDestroy() {
48
+ this.stateChanges.complete();
49
+ }
50
+ onFocus() {
51
+ }
52
+ get placeholder() {
53
+ return this._placeholder;
54
+ }
55
+ set placeholder(value) {
56
+ this._placeholder = value;
57
+ this.stateChanges.next();
58
+ }
59
+ get value() {
60
+ return this._value;
61
+ }
62
+ set value(value) {
63
+ if (value !== this.value) {
64
+ this._value = value;
65
+ this.stateChanges.next();
66
+ this.onModelChange(value);
67
+ }
68
+ }
69
+ get empty() {
70
+ return !this._value;
71
+ }
72
+ get errorState() {
73
+ if (this.ngControl == null)
74
+ return false;
75
+ return (this.touched && this.ngControl?.invalid) ?? false;
76
+ }
77
+ get shouldLabelFloat() {
78
+ return this.focused || !this.empty;
79
+ }
80
+ get required() { return this._required; }
81
+ set required(value) {
82
+ this._required = coerceBooleanProperty(value);
83
+ this.stateChanges.next();
84
+ }
85
+ get disabled() {
86
+ if (this.ngControl && this.ngControl.disabled !== null) {
87
+ return this.ngControl.disabled;
88
+ }
89
+ return this.readonly;
90
+ }
91
+ set disabled(value) {
92
+ this.readonly = coerceBooleanProperty(value);
93
+ if (this.focused) {
94
+ this.focused = false;
95
+ this.stateChanges.next();
96
+ }
97
+ }
35
98
  writeValue(value) {
36
99
  if (value) {
37
100
  this.value = value;
101
+ this.currentValue = value;
102
+ this._changeDetectorRef.markForCheck();
38
103
  }
39
104
  }
105
+ setDisabledState(isDisabled) {
106
+ this.disabled = isDisabled;
107
+ }
40
108
  registerOnChange(fn) {
41
109
  this.onModelChange = fn;
42
110
  }
43
111
  registerOnTouched(fn) {
44
112
  this.onTouchedChange = fn;
45
113
  }
114
+ setDescribedByIds(ids) {
115
+ if (ids.length) {
116
+ this._ratingElementRef?.nativeElement.setAttribute('aria-describedby', ids.join(' '));
117
+ }
118
+ else {
119
+ this._ratingElementRef?.nativeElement.removeAttribute('aria-describedby');
120
+ }
121
+ }
122
+ onContainerClick() {
123
+ if (!this.focused) {
124
+ this._ratingElementRef.nativeElement.focus();
125
+ }
126
+ }
46
127
  isIn(value) {
47
128
  const ex = this.value - value;
48
129
  return ex > 0 && ex < 1;
@@ -55,8 +136,8 @@ export class CmatRatingComponent {
55
136
  this.value -= 0.5;
56
137
  }
57
138
  this.currentValue = this.value;
58
- this.valueChange.emit(this.value);
59
- this.onModelChange(this.value);
139
+ this.valueChange.emit(this.currentValue);
140
+ this.onModelChange(this.currentValue);
60
141
  }
61
142
  }
62
143
  onMouseover(event, value, half) {
@@ -69,17 +150,29 @@ export class CmatRatingComponent {
69
150
  }
70
151
  }
71
152
  onMouseleave() {
72
- this.value = this.currentValue;
73
- }
74
- onFocus() {
153
+ if (this.value !== this.currentValue) {
154
+ this.value = this.currentValue;
155
+ }
75
156
  }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: CmatRatingComponent, isStandalone: true, selector: "cmat-rating", inputs: { stars: "stars", readonly: "readonly", hover: "hover", half: "half", color: "color", value: "value", showMode: "showMode" }, outputs: { valueChange: "valueChange" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], exportAs: ["cmatRating"], usesOnChanges: true, ngImport: i0, template: "<div [class.cmat-rating-readonly]=\"readonly\" class=\"flex\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\"\n (focus)=\"onFocus()\" (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\" [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (focus)=\"onFocus()\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatRatingComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatRatingComponent, isStandalone: true, selector: "cmat-rating", inputs: { id: "id", stars: "stars", readonly: "readonly", hover: "hover", half: "half", color: "color", showMode: "showMode", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], viewQueries: [{ propertyName: "_ratingElementRef", first: true, predicate: ["rating"], descendants: true }], exportAs: ["cmatRating"], usesOnChanges: true, ngImport: i0, template: "<div [class.cmat-rating-readonly]=\"readonly||disabled\" class=\"flex\" #rating (focus)=\"onFocus()\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
159
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CmatRatingComponent, decorators: [{
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatRatingComponent, decorators: [{
80
161
  type: Component,
81
- args: [{ selector: 'cmat-rating', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatRating', standalone: true, imports: [MatIconModule, NgStyle, NgClass], template: "<div [class.cmat-rating-readonly]=\"readonly\" class=\"flex\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\"\n (focus)=\"onFocus()\" (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\" [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (focus)=\"onFocus()\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"] }]
82
- }], propDecorators: { stars: [{
162
+ args: [{ selector: 'cmat-rating', providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatRating', standalone: true, imports: [MatIconModule, NgStyle, NgClass], template: "<div [class.cmat-rating-readonly]=\"readonly||disabled\" class=\"flex\" #rating (focus)=\"onFocus()\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"] }]
163
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
164
+ type: Optional
165
+ }, {
166
+ type: Self
167
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
168
+ type: HostBinding,
169
+ args: ['attr.id']
170
+ }, {
171
+ type: Input
172
+ }], _ratingElementRef: [{
173
+ type: ViewChild,
174
+ args: ['rating', { static: false }]
175
+ }], stars: [{
83
176
  type: Input
84
177
  }], readonly: [{
85
178
  type: Input
@@ -89,11 +182,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
89
182
  type: Input
90
183
  }], color: [{
91
184
  type: Input
92
- }], value: [{
93
- type: Input
94
185
  }], showMode: [{
95
186
  type: Input
96
187
  }], valueChange: [{
97
188
  type: Output
189
+ }], placeholder: [{
190
+ type: Input
191
+ }], value: [{
192
+ type: Input
193
+ }], required: [{
194
+ type: Input
195
+ }], disabled: [{
196
+ type: Input
98
197
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUMvRixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFdkQsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBYUYsTUFBTSxPQUFPLG1CQUFtQjtJQVhoQztRQVlXLFVBQUssR0FBVyxDQUFDLENBQUM7UUFNbEIsYUFBUSxHQUE4QixZQUFZLENBQUM7UUFDbEQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUs5RCxrQkFBYSxHQUF5QixHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsb0JBQWUsR0FBYyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FrRXhDO0lBaEVDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLElBQUksQ0FB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LFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE9uSW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbmNvbnN0IENVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ21hdFJhdGluZ0NvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY21hdC1yYXRpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhdGluZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0NVU1RPTV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGV4cG9ydEFzOiAnY21hdFJhdGluZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgTmdTdHlsZSwgTmdDbGFzc11cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgc3RhcnM6IG51bWJlciA9IDU7XHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaG92ZXI6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGFsZjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc2hvd01vZGU6ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc3RhckFycmF5OiBudW1iZXJbXTtcclxuICBjdXJyZW50VmFsdWU6IG51bWJlcjtcclxuXHJcbiAgb25Nb2RlbENoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkQ2hhbmdlOiAoKSA9PiBhbnkgPSAoKSA9PiB7IH07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGFyQXJyYXkgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGFyczsgaSsrKSB7XHJcbiAgICAgIHRoaXMuc3RhckFycmF5LnB1c2goaSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICgnc3RhcnMnIGluIGNoYW5nZXMpIHtcclxuICAgICAgdGhpcy5zdGFyQXJyYXkgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YXJzOyBpKyspIHtcclxuICAgICAgICB0aGlzLnN0YXJBcnJheS5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIGlzSW4odmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZXggPSB0aGlzLnZhbHVlIC0gdmFsdWU7XHJcbiAgICByZXR1cm4gZXggPiAwICYmIGV4IDwgMTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSwgdmFsdWU6IG51bWJlciwgaGFsZj86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSArIDE7XHJcbiAgICAgIGlmIChoYWxmICYmIHRoaXMuaGFsZikge1xyXG4gICAgICAgIHRoaXMudmFsdWUgLT0gMC41O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlb3ZlcihldmVudDogYW55LCB2YWx1ZTogbnVtYmVyLCBoYWxmPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5ob3ZlciAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWUgKyAxO1xyXG4gICAgICBpZiAoaGFsZiAmJiB0aGlzLmhhbGYpIHtcclxuICAgICAgICB0aGlzLnZhbHVlIC09IDAuNTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Nb3VzZWxlYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuY3VycmVudFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IFtjbGFzcy5jbWF0LXJhdGluZy1yZWFkb25seV09XCJyZWFkb25seVwiIGNsYXNzPVwiZmxleFwiXG4gIFtuZ0NsYXNzXT1cInsnZmxleC1jb2wnOnNob3dNb2RlPT09J3ZlcnRpY2FsJywnZmxleC1yb3cnOnNob3dNb2RlPT09J2hvcml6b250YWwnfVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VsZWF2ZSgpXCI+XG4gIEBmb3IgKHN0YXIgb2Ygc3RhckFycmF5OyB0cmFjayBzdGFyOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxkaXYgY2xhc3M9XCJjbWF0LXJhdGluZy1pdGVtXCI+XG4gICAgICBAaWYgKGhhbGYpIHtcbiAgICAgICAgPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJjbWF0LXJhdGluZy1oYWxmXCIgW25nU3R5bGVdPVwieydvcGFjaXR5JzogaXNJbihpKT8xOjB9XCJcbiAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCIgKG1vdXNlb3Zlcik9XCJvbk1vdXNlb3ZlcigkZXZlbnQsIGksIHRydWUpXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCBpLCB0cnVlKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBbbmdDbGFzc109XCJ7J3RleHQtY3VycmVudCc6ICFjb2xvcn1cIiBbY29sb3JdPVwiY29sb3JcIiBbc3ZnSWNvbl09XCInbWF0X291dGxpbmU6JysoKCF2YWx1ZSB8fCBpID49IHZhbHVlKT8nc3Rhcl9ib3JkZXInOidzdGFyJylcIj5cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXYgcm9sZT1cInByZXNlbnRhdGlvblwiIChmb2N1cyk9XCJvbkZvY3VzKClcIiAobW91c2VvdmVyKT1cIm9uTW91c2VvdmVyKCRldmVudCwgaSlcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGkpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBbY29sb3JdPVwiY29sb3JcIiBbbmdDbGFzc109XCJ7J3RleHQtY3VycmVudCc6ICFjb2xvcn1cIlxuICAgICAgICAgIFtzdmdJY29uXT1cIidtYXRfb3V0bGluZTonKygoaGFsZiAmJiBpc0luKGkpKSB8fCAoIXZhbHVlIHx8IGkgPj0gdmFsdWUpPydzdGFyX2JvcmRlcic6J3N0YXInKVwiPlxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUNsRixRQUFRLEVBQ1IsSUFBSSxFQUVKLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFFL0IsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBYWhCLE1BQU0sT0FBTyxtQkFBbUI7SUF1QjlCLFlBQXVDLFNBQW9CLEVBQVUsa0JBQXFDO1FBQW5FLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBcEJuRyxPQUFFLEdBQUcsbUJBQW1CLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFJbEMsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBSTFCLGFBQVEsR0FBK0IsWUFBWSxDQUFDO1FBQ25ELGdCQUFXLEdBQXNCLElBQUks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QXBCLE1BQU07Z0JBMkNILFdBQVc7c0JBRGQsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUs7Z0JBK0JGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNlbGYsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5sZXQgTkVYVF9JRCA9IDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NtYXQtcmF0aW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYXRpbmcuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBDbWF0UmF0aW5nQ29tcG9uZW50IH1dLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZXhwb3J0QXM6ICdjbWF0UmF0aW5nJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBOZ1N0eWxlLCBOZ0NsYXNzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaWQgPSBgY21hdC1jaGlwLWlucHV0LSR7TkVYVF9JRCsrfWA7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3JhdGluZycsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIF9yYXRpbmdFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgQElucHV0KCkgc3RhcnM6IG51bWJlciA9IDU7XHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBob3ZlcjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoYWxmOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNvbG9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dNb2RlPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBzdGFyQXJyYXk6IG51bWJlcltdO1xyXG4gIGN1cnJlbnRWYWx1ZTogbnVtYmVyO1xyXG5cclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU6IHN0cmluZyA9ICdjbWF0LXJhdGluZyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLCBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Nb2RlbENoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkQ2hhbmdlOiAoKSA9PiBhbnkgPSAoKSA9PiB7IH07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGFyQXJyYXkgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGFyczsgaSsrKSB7XHJcbiAgICAgIHRoaXMuc3RhckFycmF5LnB1c2goaSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICgnc3RhcnMnIGluIGNoYW5nZXMpIHtcclxuICAgICAgdGhpcy5zdGFyQXJyYXkgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YXJzOyBpKyspIHtcclxuICAgICAgICB0aGlzLnN0YXJBcnJheS5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuXHJcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfdmFsdWU6IGFueTtcclxuXHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sID09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gKHRoaXMudG91Y2hlZCAmJiB0aGlzLm5nQ29udHJvbD8uaW52YWxpZCkgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3JlcXVpcmVkOyB9XHJcbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seTtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcclxuICAgIHRoaXMucmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgaWYgKGlkcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fcmF0aW5nRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCBpZHMuam9pbignICcpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JhdGluZ0VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgdGhpcy5fcmF0aW5nRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0luKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGV4ID0gdGhpcy52YWx1ZSAtIHZhbHVlO1xyXG4gICAgcmV0dXJuIGV4ID4gMCAmJiBleCA8IDE7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrKGV2ZW50OiBhbnksIHZhbHVlOiBudW1iZXIsIGhhbGY/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWUgKyAxO1xyXG4gICAgICBpZiAoaGFsZiAmJiB0aGlzLmhhbGYpIHtcclxuICAgICAgICB0aGlzLnZhbHVlIC09IDAuNTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlb3ZlcihldmVudDogYW55LCB2YWx1ZTogbnVtYmVyLCBoYWxmPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5ob3ZlciAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWUgKyAxO1xyXG4gICAgICBpZiAoaGFsZiAmJiB0aGlzLmhhbGYpIHtcclxuICAgICAgICB0aGlzLnZhbHVlIC09IDAuNTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Nb3VzZWxlYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgIT09IHRoaXMuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgW2NsYXNzLmNtYXQtcmF0aW5nLXJlYWRvbmx5XT1cInJlYWRvbmx5fHxkaXNhYmxlZFwiIGNsYXNzPVwiZmxleFwiICNyYXRpbmcgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gIFtuZ0NsYXNzXT1cInsnZmxleC1jb2wnOnNob3dNb2RlPT09J3ZlcnRpY2FsJywnZmxleC1yb3cnOnNob3dNb2RlPT09J2hvcml6b250YWwnfVwiIChtb3VzZWxlYXZlKT1cIm9uTW91c2VsZWF2ZSgpXCI+XG4gIEBmb3IgKHN0YXIgb2Ygc3RhckFycmF5OyB0cmFjayBzdGFyOyBsZXQgaSA9ICRpbmRleCkge1xuICA8ZGl2IGNsYXNzPVwiY21hdC1yYXRpbmctaXRlbVwiPlxuICAgIEBpZiAoaGFsZikge1xuICAgIDxkaXYgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiY21hdC1yYXRpbmctaGFsZlwiIFtuZ1N0eWxlXT1cInsnb3BhY2l0eSc6IGlzSW4oaSk/MTowfVwiIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgKG1vdXNlb3Zlcik9XCJvbk1vdXNlb3ZlcigkZXZlbnQsIGksIHRydWUpXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCBpLCB0cnVlKVwiPlxuICAgICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInsndGV4dC1jdXJyZW50JzogIWNvbG9yfVwiIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtzdmdJY29uXT1cIidtYXRfb3V0bGluZTonKygoIXZhbHVlIHx8IGkgPj0gdmFsdWUpPydzdGFyX2JvcmRlcic6J3N0YXInKVwiPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiByb2xlPVwicHJlc2VudGF0aW9uXCIgKG1vdXNlb3Zlcik9XCJvbk1vdXNlb3ZlcigkZXZlbnQsIGkpXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCBpKVwiIChmb2N1cyk9XCJvbkZvY3VzKClcIj5cbiAgICAgIDxtYXQtaWNvbiBbY29sb3JdPVwiY29sb3JcIiBbbmdDbGFzc109XCJ7J3RleHQtY3VycmVudCc6ICFjb2xvcn1cIlxuICAgICAgICBbc3ZnSWNvbl09XCInbWF0X291dGxpbmU6JysoKGhhbGYgJiYgaXNJbihpKSkgfHwgKCF2YWx1ZSB8fCBpID49IHZhbHVlKT8nc3Rhcl9ib3JkZXInOidzdGFyJylcIj5cbiAgICAgIDwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj4iXX0=