cmat 0.0.15 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +2 -2
  2. package/components/custom-formly/public-api.d.ts +1 -0
  3. package/components/custom-formly/types/button/button.component.d.ts +19 -3
  4. package/components/custom-formly/types/cascade/cascade.component.d.ts +3 -2
  5. package/components/custom-formly/types/checklist/checklist.component.d.ts +3 -2
  6. package/components/custom-formly/types/chips/chips.component.d.ts +3 -2
  7. package/components/custom-formly/types/date-range/date-range.component.d.ts +3 -2
  8. package/components/custom-formly/types/datepicker/datepicker.component.d.ts +3 -2
  9. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +3 -2
  10. package/components/custom-formly/types/number/number.component.d.ts +3 -2
  11. package/components/custom-formly/types/quill/quill.component.d.ts +3 -2
  12. package/components/custom-formly/types/radio/radio.component.d.ts +3 -2
  13. package/components/custom-formly/types/rating/rating.component.d.ts +3 -2
  14. package/components/custom-formly/types/repeat/repeat.component.d.ts +3 -2
  15. package/components/custom-formly/types/select/select.component.d.ts +3 -2
  16. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +2 -2
  17. package/components/custom-formly/types/stepper/stepper.type.d.ts +2 -2
  18. package/components/custom-formly/types/table/table.component.d.ts +11 -5
  19. package/components/custom-formly/types/tags/tags.component.d.ts +3 -2
  20. package/components/custom-formly/types/upload/upload.component.d.ts +3 -2
  21. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +25 -0
  22. package/components/material-datetimepicker/datetimepicker.d.ts +4 -3
  23. package/components/select-search/select-search.component.d.ts +2 -1
  24. package/components/upload/upload-queue/upload-queue.component.d.ts +3 -2
  25. package/esm2022/animations/dropdown.mjs +1 -1
  26. package/esm2022/components/adapter/dayjs-date-adapter.mjs +4 -4
  27. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
  28. package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
  29. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +4 -4
  30. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +4 -4
  31. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +5 -5
  32. package/esm2022/components/card/card.component.mjs +5 -5
  33. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -5
  34. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +6 -6
  35. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -5
  36. package/esm2022/components/cascade/options.interface.mjs +1 -1
  37. package/esm2022/components/chip-input/chip-input.component.mjs +6 -7
  38. package/esm2022/components/custom-formly/extension/addons.extension.mjs +2 -2
  39. package/esm2022/components/custom-formly/public-api.mjs +2 -1
  40. package/esm2022/components/custom-formly/types/button/button.component.mjs +57 -15
  41. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
  42. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +4 -4
  43. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +4 -4
  44. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +4 -4
  45. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +4 -4
  46. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
  47. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -4
  48. package/esm2022/components/custom-formly/types/number/number.component.mjs +4 -4
  49. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +6 -6
  50. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +4 -4
  51. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +4 -4
  52. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +4 -4
  53. package/esm2022/components/custom-formly/types/select/select.component.mjs +16 -15
  54. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
  55. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +4 -4
  56. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +1 -1
  57. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +4 -4
  58. package/esm2022/components/custom-formly/types/table/table.component.mjs +28 -14
  59. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +4 -4
  60. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +4 -4
  61. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +4 -4
  62. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
  63. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +4 -4
  64. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +4 -4
  65. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +4 -4
  66. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +47 -0
  67. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +4 -4
  68. package/esm2022/components/date-range/date-range.component.mjs +6 -6
  69. package/esm2022/components/drawer/drawer.component.mjs +4 -4
  70. package/esm2022/components/drawer/drawer.service.mjs +4 -4
  71. package/esm2022/components/fullscreen/fullscreen.component.mjs +4 -4
  72. package/esm2022/components/highlight/highlight.component.mjs +4 -4
  73. package/esm2022/components/highlight/highlight.service.mjs +4 -4
  74. package/esm2022/components/json-editor/json-editor.component.mjs +6 -6
  75. package/esm2022/components/masonry/masonry.component.mjs +4 -4
  76. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +5 -5
  77. package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -5
  78. package/esm2022/components/material-datetimepicker/calendar.mjs +5 -5
  79. package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
  80. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -4
  81. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +4 -4
  82. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +8 -8
  83. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +14 -11
  84. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -5
  85. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +4 -4
  86. package/esm2022/components/material-datetimepicker/time.mjs +8 -8
  87. package/esm2022/components/material-datetimepicker/year-view.mjs +4 -4
  88. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
  89. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +4 -4
  90. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +4 -4
  91. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +4 -4
  92. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +4 -4
  93. package/esm2022/components/navigation/navigation.service.mjs +4 -4
  94. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +4 -4
  95. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +5 -5
  96. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
  97. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +4 -4
  98. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +4 -4
  99. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +4 -4
  100. package/esm2022/components/navigation/vertical/vertical.component.mjs +4 -4
  101. package/esm2022/components/pagination/pagination.component.mjs +5 -5
  102. package/esm2022/components/pagination/pagination.directive.mjs +4 -4
  103. package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
  104. package/esm2022/components/pagination/pagination.service.mjs +4 -4
  105. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
  106. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +4 -4
  107. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
  108. package/esm2022/components/popover/popover-trigger.mjs +4 -4
  109. package/esm2022/components/popover/popover.component.mjs +4 -4
  110. package/esm2022/components/popover/popover.target.mjs +4 -4
  111. package/esm2022/components/progress-bar/progress-bar.component.mjs +5 -5
  112. package/esm2022/components/rating/rating.component.mjs +5 -5
  113. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +4 -4
  114. package/esm2022/components/select-search/select-search-clear.directive.mjs +4 -4
  115. package/esm2022/components/select-search/select-search.component.mjs +6 -6
  116. package/esm2022/components/select-tree/select-tree.component.mjs +6 -6
  117. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
  118. package/esm2022/components/timeline/timeline.component.mjs +4 -4
  119. package/esm2022/components/toast/toast-modal.component.mjs +5 -5
  120. package/esm2022/components/toast/toast.component.mjs +4 -4
  121. package/esm2022/components/toast/toast.service.mjs +4 -4
  122. package/esm2022/components/transfer-picker/filter/filter.component.mjs +5 -5
  123. package/esm2022/components/transfer-picker/search/search.component.mjs +5 -5
  124. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +5 -5
  125. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
  126. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +5 -5
  127. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
  128. package/esm2022/components/upload/files.util.service.mjs +4 -4
  129. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +13 -12
  130. package/esm2022/components/upload/upload.component.mjs +4 -4
  131. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
  132. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +4 -4
  133. package/esm2022/directives/autofocus/autofocus.directive.mjs +4 -4
  134. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +4 -4
  135. package/esm2022/directives/debounce/debounce-click.directive.mjs +4 -4
  136. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +4 -4
  137. package/esm2022/directives/digit-only/digit-only.directive.mjs +10 -10
  138. package/esm2022/directives/digit-only/mask.directive.mjs +5 -5
  139. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
  140. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
  141. package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
  142. package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
  143. package/esm2022/pipes/date-format/date-format.pipe.mjs +7 -5
  144. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
  145. package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
  146. package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
  147. package/esm2022/pipes/secure/secure-pipe.mjs +4 -4
  148. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +4 -4
  149. package/esm2022/services/alert/alert.service.mjs +4 -4
  150. package/esm2022/services/config/config.service.mjs +4 -4
  151. package/esm2022/services/config/urlStateConfig.service.mjs +4 -4
  152. package/esm2022/services/confirmation/confirmation.service.mjs +4 -4
  153. package/esm2022/services/confirmation/dialog/dialog.component.mjs +5 -5
  154. package/esm2022/services/data/data.service.mjs +6 -6
  155. package/esm2022/services/loading/loading.interceptor.mjs +5 -5
  156. package/esm2022/services/loading/loading.service.mjs +4 -4
  157. package/esm2022/services/local-storage/local-storage.service.mjs +4 -4
  158. package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
  159. package/esm2022/services/platform/platform.service.mjs +4 -4
  160. package/esm2022/services/splash-screen/splash-screen.service.mjs +4 -4
  161. package/esm2022/services/title/title.service.mjs +4 -4
  162. package/esm2022/services/translation/translation.service.mjs +5 -5
  163. package/esm2022/services/utils/utils.service.mjs +40 -7
  164. package/fesm2022/cmat-animations.mjs.map +1 -1
  165. package/fesm2022/cmat-components-adapter.mjs +9 -9
  166. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  167. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  168. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  169. package/fesm2022/cmat-components-card.mjs +4 -4
  170. package/fesm2022/cmat-components-card.mjs.map +1 -1
  171. package/fesm2022/cmat-components-cascade.mjs +13 -13
  172. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  173. package/fesm2022/cmat-components-chip-input.mjs +5 -6
  174. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  175. package/fesm2022/cmat-components-custom-formly.mjs +235 -142
  176. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  177. package/fesm2022/cmat-components-date-range.mjs +5 -5
  178. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  179. package/fesm2022/cmat-components-drawer.mjs +6 -6
  180. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  181. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  182. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  183. package/fesm2022/cmat-components-highlight.mjs +6 -6
  184. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  185. package/fesm2022/cmat-components-json-editor.mjs +5 -5
  186. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  187. package/fesm2022/cmat-components-masonry.mjs +3 -3
  188. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  189. package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
  190. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  191. package/fesm2022/cmat-components-material-datetimepicker.mjs +55 -52
  192. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  193. package/fesm2022/cmat-components-navigation.mjs +42 -42
  194. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  195. package/fesm2022/cmat-components-pagination.mjs +13 -13
  196. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  197. package/fesm2022/cmat-components-password-strength.mjs +11 -11
  198. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  199. package/fesm2022/cmat-components-popover.mjs +9 -9
  200. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  201. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  202. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  203. package/fesm2022/cmat-components-rating.mjs +4 -4
  204. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  205. package/fesm2022/cmat-components-select-search.mjs +11 -11
  206. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  207. package/fesm2022/cmat-components-select-tree.mjs +5 -5
  208. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  209. package/fesm2022/cmat-components-timeline.mjs +13 -13
  210. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  211. package/fesm2022/cmat-components-toast.mjs +10 -10
  212. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  213. package/fesm2022/cmat-components-transfer-picker.mjs +23 -23
  214. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  215. package/fesm2022/cmat-components-upload.mjs +18 -17
  216. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  217. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  218. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  219. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  220. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  221. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  222. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  223. package/fesm2022/cmat-directives-digit-only.mjs +13 -13
  224. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  225. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  226. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  227. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  228. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  229. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  230. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  231. package/fesm2022/cmat-pipes-date-format.mjs +6 -4
  232. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  233. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  234. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  235. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  236. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  237. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  238. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  239. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  240. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  241. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  242. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  243. package/fesm2022/cmat-services-alert.mjs +3 -3
  244. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  245. package/fesm2022/cmat-services-config.mjs +6 -6
  246. package/fesm2022/cmat-services-config.mjs.map +1 -1
  247. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  248. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  249. package/fesm2022/cmat-services-data.mjs +5 -5
  250. package/fesm2022/cmat-services-data.mjs.map +1 -1
  251. package/fesm2022/cmat-services-loading.mjs +7 -7
  252. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  253. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  254. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  255. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  256. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  257. package/fesm2022/cmat-services-platform.mjs +3 -3
  258. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  259. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  260. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  261. package/fesm2022/cmat-services-title.mjs +3 -3
  262. package/fesm2022/cmat-services-title.mjs.map +1 -1
  263. package/fesm2022/cmat-services-translation.mjs +4 -4
  264. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  265. package/fesm2022/cmat-services-utils.mjs +39 -6
  266. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  267. package/icons/material-icons/material-solid.svg +3585 -3585
  268. package/package.json +67 -67
  269. package/pipes/date-format/date-format.pipe.d.ts +1 -1
  270. package/services/data/data.service.d.ts +1 -1
  271. package/services/utils/utils.service.d.ts +4 -0
  272. package/styles/overrides/angular-material.scss +6 -0
@@ -41,6 +41,14 @@ export class CmatUtilsService {
41
41
  .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)
42
42
  .append('App-Version', CMAT_VERSION);
43
43
  }
44
+ static getRequestIdempotentHeaders() {
45
+ return new HttpHeaders()
46
+ .append('Access-Control-Allow-Origin', '*')
47
+ .append('Content-Type', 'application/json')
48
+ .append('X-Request-ID', CmatUtilsService.newGuid())
49
+ .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)
50
+ .append('App-Version', CMAT_VERSION);
51
+ }
44
52
  static getRequestBypassHeaders() {
45
53
  return new HttpHeaders()
46
54
  .append('Access-Control-Allow-Origin', '*')
@@ -49,6 +57,15 @@ export class CmatUtilsService {
49
57
  .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)
50
58
  .append('App-Version', CMAT_VERSION);
51
59
  }
60
+ static getRequestIdempotentBypassHeaders() {
61
+ return new HttpHeaders()
62
+ .append('Access-Control-Allow-Origin', '*')
63
+ .append('Content-Type', 'application/json')
64
+ .append('X-Request-ID', CmatUtilsService.newGuid())
65
+ .append('bypass', 'true')
66
+ .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)
67
+ .append('App-Version', CMAT_VERSION);
68
+ }
52
69
  static getRequestCryptoHeaders(params) {
53
70
  return new HttpHeaders()
54
71
  .append('Access-Control-Allow-Origin', '*')
@@ -62,6 +79,21 @@ export class CmatUtilsService {
62
79
  .append('bypass', 'true')
63
80
  .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());
64
81
  }
82
+ static getRequestCryptoIdempotentHeaders(params) {
83
+ return new HttpHeaders()
84
+ .append('Access-Control-Allow-Origin', '*')
85
+ .append('X-Request-ID', CmatUtilsService.newGuid())
86
+ .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)
87
+ .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());
88
+ }
89
+ static getRequestCryptoIdempotentBypassHeaders(params) {
90
+ return new HttpHeaders()
91
+ .append('Access-Control-Allow-Origin', '*')
92
+ .append('X-Request-ID', CmatUtilsService.newGuid())
93
+ .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)
94
+ .append('bypass', 'true')
95
+ .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());
96
+ }
65
97
  static getEncryptData(data) {
66
98
  const src = UTF8.parse(data);
67
99
  return AES.encrypt(src, this.key, {
@@ -132,13 +164,13 @@ export class CmatUtilsService {
132
164
  const httpMessages = this.getHttpResponseMessage(data);
133
165
  for (const message of httpMessages) {
134
166
  const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);
135
- if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) !== -1) {
167
+ if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {
136
168
  return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;
137
169
  }
138
170
  }
139
171
  if (!seachInCaptionOnly) {
140
172
  for (const message of httpMessages) {
141
- if (message.toLowerCase().indexOf(searchString) !== -1) {
173
+ if (message.toLowerCase().includes(searchString)) {
142
174
  if (includeCaptionInResult) {
143
175
  return message;
144
176
  }
@@ -350,6 +382,7 @@ export class CmatUtilsService {
350
382
  };
351
383
  // Reject the promise on error
352
384
  reader.onerror = (e) => {
385
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
353
386
  reject(e);
354
387
  };
355
388
  // Read the file as the
@@ -358,7 +391,7 @@ export class CmatUtilsService {
358
391
  }
359
392
  static dataURIToBlob(dataURI) {
360
393
  const splitDataURI = dataURI.split(',');
361
- const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);
394
+ const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);
362
395
  const mimeString = splitDataURI[0].split(':')[1].split(';')[0];
363
396
  const ia = new Uint8Array(byteString.length);
364
397
  for (let i = 0; i < byteString.length; i++) {
@@ -422,13 +455,13 @@ export class CmatUtilsService {
422
455
  }
423
456
  return id;
424
457
  }
425
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
426
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
458
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
459
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
427
460
  }
428
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatUtilsService, decorators: [{
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUtilsService, decorators: [{
429
462
  type: Injectable,
430
463
  args: [{
431
464
  providedIn: 'root'
432
465
  }]
433
466
  }] });
434
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvc2VydmljZXMvdXRpbHMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUs1QyxNQUFNLE9BQU8sZ0JBQWdCO2FBQ0YsK0JBQTBCLEdBQUcsR0FBRyxBQUFOLENBQU87YUFDakMsNEJBQXVCLEdBQUcsS0FBSyxBQUFSLENBQVM7YUFDaEMsMkJBQXNCLEdBQUcsU0FBUyxBQUFaLENBQWE7YUFDbkMsK0JBQTBCLEdBQUcsT0FBTyxBQUFWLENBQVc7YUFDckMsOEJBQXlCLEdBQUcsRUFBRSxBQUFMLENBQU07YUFDOUIsUUFBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQUFBakQsQ0FBa0QsR0FBQSxLQUFLO2FBQzFELE9BQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEFBQWpD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SSxDQUFDO0lBRUQsUUFBUSxDQUFDLGVBQXVCLEVBQUU7UUFDOUIsTUFBTSxLQUFLLEdBQUcsZ0VBQWdFLENBQUM7UUFDL0UsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRVosS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBcGZRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlLCBIdHRwUmVzcG9uc2VCYXNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IEFFUyBmcm9tICdjcnlwdG8tanMvYWVzJztcclxuaW1wb3J0IENyeXB0b0pTQ29yZSBmcm9tICdjcnlwdG8tanMvY29yZSc7XHJcbmltcG9ydCBCYXNlNjQgZnJvbSAnY3J5cHRvLWpzL2VuYy1iYXNlNjQnO1xyXG5pbXBvcnQgSGV4IGZyb20gJ2NyeXB0by1qcy9lbmMtaGV4JztcclxuaW1wb3J0IFVURjggZnJvbSAnY3J5cHRvLWpzL2VuYy11dGY4JztcclxuaW1wb3J0IFBrY3M3IGZyb20gJ2NyeXB0by1qcy9wYWQtcGtjczcnO1xyXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IHRocm93RXJyb3IsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ01BVF9WRVJTSU9OIH0gZnJvbSAnY21hdC92ZXJzaW9uJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFV0aWxzU2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGNhcHRpb25BbmRNZXNzYWdlU2VwYXJhdG9yID0gJzonO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBub05ldHdvcmtNZXNzYWdlQ2FwdGlvbiA9ICfml6DnvZHnu5wnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBub05ldHdvcmtNZXNzYWdlRGV0YWlsID0gJ+aXoOazlei/nuaOpeacjeWKoeWZqCc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjY2Vzc0RlbmllZE1lc3NhZ2VDYXB0aW9uID0gJ+aLkue7neiuv+mXriEnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY2Nlc3NEZW5pZWRNZXNzYWdlRGV0YWlsID0gJyc7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBrZXkgPSBVVEY4LnBhcnNlKCcxNDc4OTYzMjIzNjk4NzQxMTQ3ODk2MzIyMzY5ODc0MScpOy8vMzLkvY1cclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGl2ID0gVVRGOC5wYXJzZSgnMTQ3ODk2MzIyMzY5ODc0MScpOy8vMTbkvY1cclxuXHJcbiAgICBnZXQgZXhhY3RNYXRjaE9wdGlvbnMoKTogSXNBY3RpdmVNYXRjaE9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHBhdGhzOiAnZXhhY3QnLFxyXG4gICAgICAgICAgICBmcmFnbWVudDogJ2lnbm9yZWQnLFxyXG4gICAgICAgICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6ICdleGFjdCdcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzdWJzZXRNYXRjaE9wdGlvbnMoKTogSXNBY3RpdmVNYXRjaE9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHBhdGhzOiAnc3Vic2V0JyxcclxuICAgICAgICAgICAgZnJhZ21lbnQ6ICdpZ25vcmVkJyxcclxuICAgICAgICAgICAgbWF0cml4UGFyYW1zOiAnaWdub3JlZCcsXHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAnc3Vic2V0J1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJylcclxuICAgICAgICAgICAgLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2NlcHQnLCBgYXBwbGljYXRpb24vdm5kLmltYW4udiR7Q01BVF9WRVJTSU9OfStqc29uLCBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLypgKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBcHAtVmVyc2lvbicsIENNQVRfVkVSU0lPTik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0QnlwYXNzSGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJylcclxuICAgICAgICAgICAgLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdieXBhc3MnLCAndHJ1ZScpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2VwdCcsIGBhcHBsaWNhdGlvbi92bmQuaW1hbi52JHtDTUFUX1ZFUlNJT059K2pzb24sIGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmApXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FwcC1WZXJzaW9uJywgQ01BVF9WRVJTSU9OKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RDcnlwdG9IZWFkZXJzKHBhcmFtczogc3RyaW5nKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2VwdCcsIGBhcHBsaWNhdGlvbi92bmQuaW1hbi52JHtDTUFUX1ZFUlNJT059K2pzb24sIGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmApXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FwcC1WZXJzaW9uJywgdGhpcy5nZXRFbmNyeXB0RGF0YSgncGFydHltYW5hZ2VBcGknICsgcGFyYW1zKS50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RDcnlwdG9CeXBhc3NIZWFkZXJzKHBhcmFtczogc3RyaW5nKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2VwdCcsIGBhcHBsaWNhdGlvbi92bmQuaW1hbi52JHtDTUFUX1ZFUlNJT059K2pzb24sIGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmApXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ2J5cGFzcycsICd0cnVlJylcclxuICAgICAgICAgICAgLmFwcGVuZCgnQXBwLVZlcnNpb24nLCB0aGlzLmdldEVuY3J5cHREYXRhKCdwYXJ0eW1hbmFnZUFwaScgKyBwYXJhbXMpLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RW5jcnlwdERhdGEoZGF0YTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzcmMgPSBVVEY4LnBhcnNlKGRhdGEpO1xyXG5cclxuICAgICAgICByZXR1cm4gQUVTLmVuY3J5cHQoc3JjLCB0aGlzLmtleSwge1xyXG4gICAgICAgICAgICBpdjogdGhpcy5pdixcclxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlNDb3JlLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiBQa2NzN1xyXG4gICAgICAgIH0pLmNpcGhlcnRleHQudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldERlY3J5cHREYXRhKGRhdGE6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZW5jcnlwdGVkSGV4U3RyID0gSGV4LnBhcnNlKGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBBRVMuZGVjcnlwdChCYXNlNjQuc3RyaW5naWZ5KGVuY3J5cHRlZEhleFN0ciksIHRoaXMua2V5LCB7XHJcbiAgICAgICAgICAgIGl2OiB0aGlzLml2LFxyXG4gICAgICAgICAgICBtb2RlOiBDcnlwdG9KU0NvcmUubW9kZS5DQkMsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IFBrY3M3XHJcbiAgICAgICAgfSkudG9TdHJpbmcoVVRGOCkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPG5ldmVyPiB7XHJcbiAgICAgICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICAgICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuIEhhbmRsZSBpdCBhY2NvcmRpbmdseS5cclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ2xpZW50IHNpZGUgbmV0d29yayBlcnJvciBvY2N1cnJlZDonLCBlcnJvci5tZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBUaGUgYmFja2VuZCByZXR1cm5lZCBhbiB1bnN1Y2Nlc3NmdWwgcmVzcG9uc2UgY29kZS5cclxuICAgICAgICAgICAgLy8gVGhlIHJlc3BvbnNlIGJvZHkgbWF5IGNvbnRhaW4gY2x1ZXMgYXMgdG8gd2hhdCB3ZW50IHdyb25nLFxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdCYWNrZW5kIC0gJyArXHJcbiAgICAgICAgICAgICAgICBgc3RhdHVzOiAke2Vycm9yLnN0YXR1c30sIGAgK1xyXG4gICAgICAgICAgICAgICAgYHN0YXR1c1RleHQ6ICR7ZXJyb3Iuc3RhdHVzVGV4dH0sIGAgK1xyXG4gICAgICAgICAgICAgICAgYG1lc3NhZ2U6ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHJldHVybiBhbiBvYnNlcnZhYmxlIHdpdGggYSB1c2VyLWZhY2luZyBlcnJvciBtZXNzYWdlXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IgfHwgJ3NlcnZlciBlcnJvcicpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SHR0cFJlc3BvbnNlTWVzc2FnZShkYXRhOiBhbnkpOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2VCYXNlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrTm9OZXR3b3JrKGRhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZXMucHVzaChgJHt0aGlzLm5vTmV0d29ya01lc3NhZ2VDYXB0aW9ufSR7dGhpcy5jYXB0aW9uQW5kTWVzc2FnZVNlcGFyYXRvcn0gJHt0aGlzLm5vTmV0d29ya01lc3NhZ2VEZXRhaWx9YCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZU9iamVjdCA9IHRoaXMuZ2V0UmVzcG9uc2VCb2R5KGRhdGEpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZU9iamVjdCAmJiAodHlwZW9mIHJlc3BvbnNlT2JqZWN0ID09PSAnb2JqZWN0JyB8fCByZXNwb25zZU9iamVjdCBpbnN0YW5jZW9mIE9iamVjdCkpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcmVzcG9uc2VPYmplY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXNwb25zZU9iamVjdCwga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcy5wdXNoKGAke2tleX0ke3RoaXMuY2FwdGlvbkFuZE1lc3NhZ2VTZXBhcmF0b3J9ICR7cmVzcG9uc2VPYmplY3Rba2V5XX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VPYmplY3Rba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlT2JqZWN0W2tleV0udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghcmVzcG9uc2VzLmxlbmd0aCAmJiB0aGlzLmdldFJlc3BvbnNlQm9keShkYXRhKSkge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VzLnB1c2goYCR7dGhpcy5nZXRSZXNwb25zZUJvZHkoZGF0YSkudG9TdHJpbmcoKX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFyZXNwb25zZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlcy5wdXNoKGRhdGEudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja0FjY2Vzc0RlbmllZChkYXRhKSkge1xyXG4gICAgICAgICAgICByZXNwb25zZXMuc3BsaWNlKDAsIDAsIGAke3RoaXMuYWNjZXNzRGVuaWVkTWVzc2FnZUNhcHRpb259JHt0aGlzLmNhcHRpb25BbmRNZXNzYWdlU2VwYXJhdG9yfSAke3RoaXMuYWNjZXNzRGVuaWVkTWVzc2FnZURldGFpbH1gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXNwb25zZXM7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZmluZEh0dHBSZXNwb25zZU1lc3NhZ2UobWVzc2FnZVRvRmluZDogc3RyaW5nLCBkYXRhOiBhbnksIHNlYWNoSW5DYXB0aW9uT25seSA9IHRydWUsIGluY2x1ZGVDYXB0aW9uSW5SZXN1bHQgPSBmYWxzZSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IHNlYXJjaFN0cmluZyA9IG1lc3NhZ2VUb0ZpbmQudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zdCBodHRwTWVzc2FnZXMgPSB0aGlzLmdldEh0dHBSZXNwb25zZU1lc3NhZ2UoZGF0YSk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBodHRwTWVzc2FnZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgZnVsbE1lc3NhZ2UgPSBDbWF0VXRpbHNTZXJ2aWNlLnNwbGl0SW5Ud28obWVzc2FnZSwgdGhpcy5jYXB0aW9uQW5kTWVzc2FnZVNlcGFyYXRvcik7XHJcblxyXG4gICAgICAgICAgICBpZiAoZnVsbE1lc3NhZ2UuZmlyc3RQYXJ0ICYmIGZ1bGxNZXNzYWdlLmZpcnN0UGFydC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoU3RyaW5nKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpbmNsdWRlQ2FwdGlvbkluUmVzdWx0ID8gbWVzc2FnZSA6IGZ1bGxNZXNzYWdlLnNlY29uZFBhcnQgPz8gZnVsbE1lc3NhZ2UuZmlyc3RQYXJ0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXNlYWNoSW5DYXB0aW9uT25seSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgaHR0cE1lc3NhZ2VzKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFN0cmluZykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVDYXB0aW9uSW5SZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVsbE1lc3NhZ2UgPSBDbWF0VXRpbHNTZXJ2aWNlLnNwbGl0SW5Ud28obWVzc2FnZSwgdGhpcy5jYXB0aW9uQW5kTWVzc2FnZVNlcGFyYXRvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdWxsTWVzc2FnZS5zZWNvbmRQYXJ0ID8/IGZ1bGxNZXNzYWdlLmZpcnN0UGFydDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVzcG9uc2VCb2R5KHJlc3BvbnNlOiBIdHRwUmVzcG9uc2VCYXNlKTogYW55IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZXJyb3IgfHwgcmVzcG9uc2UubWVzc2FnZSB8fCByZXNwb25zZS5zdGF0dXNUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2hlY2tOb05ldHdvcmsocmVzcG9uc2U6IEh0dHBSZXNwb25zZUJhc2UpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2VCYXNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5zdGF0dXMgPT09IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBjaGVja0FjY2Vzc0RlbmllZChyZXNwb25zZTogSHR0cFJlc3BvbnNlQmFzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZUJhc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2hlY2tOb3RGb3VuZChyZXNwb25zZTogSHR0cFJlc3BvbnNlQmFzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZUJhc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2hlY2tJc0xvY2FsSG9zdCh1cmw6IHN0cmluZywgYmFzZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBuZXcgVVJMKHVybCwgYmFzZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbi5ob3N0bmFtZSA9PT0gJ2xvY2FsaG9zdCcgfHwgbG9jYXRpb24uaG9zdG5hbWUgPT09ICcxMjcuMC4wLjEnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UXVlcnlQYXJhbXNGcm9tU3RyaW5nKHBhcmFtU3RyaW5nOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiB8IG51bGwge1xyXG4gICAgICAgIGlmICghcGFyYW1TdHJpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+ID0ge307XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgcGFyYW1TdHJpbmcuc3BsaXQoJyYnKSkge1xyXG4gICAgICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IENtYXRVdGlsc1NlcnZpY2Uuc3BsaXRJblR3byhwYXJhbSwgJz0nKTtcclxuICAgICAgICAgICAgcGFyYW1zW2tleVZhbHVlLmZpcnN0UGFydF0gPSBrZXlWYWx1ZS5zZWNvbmRQYXJ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHNwbGl0SW5Ud28odGV4dDogc3RyaW5nLCBzZXBhcmF0b3I/OiBzdHJpbmcpOiB7IGZpcnN0UGFydDogc3RyaW5nOyBzZWNvbmRQYXJ0OiBzdHJpbmcgfCBudWxsIH0ge1xyXG4gICAgICAgIGNvbnN0IHNlcGFyYXRvckluZGV4ID0gc2VwYXJhdG9yID8gdGV4dC5pbmRleE9mKHNlcGFyYXRvcikgOiAtMTtcclxuXHJcbiAgICAgICAgaWYgKHNlcGFyYXRvckluZGV4ID09PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBmaXJzdFBhcnQ6IHRleHQsIHNlY29uZFBhcnQ6IG51bGwgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcnQxID0gdGV4dC5zdWJzdHJpbmcoMCwgc2VwYXJhdG9ySW5kZXgpLnRyaW0oKTtcclxuICAgICAgICBjb25zdCBwYXJ0MiA9IHRleHQuc3Vic3RyaW5nKHNlcGFyYXRvckluZGV4ICsgMSkudHJpbSgpO1xyXG5cclxuICAgICAgICByZXR1cm4geyBmaXJzdFBhcnQ6IHBhcnQxLCBzZWNvbmRQYXJ0OiBwYXJ0MiB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2FmZVN0cmluZ2lmeShvYmplY3Q6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXN1bHQgPSBKU09OLnN0cmluZ2lmeShvYmplY3QpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0gY2F0Y2ggeyAvKiBlbXB0eSAqLyB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNpbXBsZU9iamVjdDogYW55ID0ge307XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBvYmplY3QpIHtcclxuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqZWN0W3Byb3BdKSA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqZWN0W3Byb3BdKSA9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzaW1wbGVPYmplY3RbcHJvcF0gPSBvYmplY3RbcHJvcF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXN1bHQgPSAnWyoqKlNhbml0aXplZCBPYmplY3QqKipdOiAnICsgSlNPTi5zdHJpbmdpZnkoc2ltcGxlT2JqZWN0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGpzb25UcnlQYXJzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgdm9pZCB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB0b1RpdGxlQ2FzZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xcd1xcUyovZywgc3ViU3RyaW5nID0+IHN1YlN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN1YlN0cmluZy5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB0b0xvd2VyQ2FzZShpdGVtczogYW55KTogc3RyaW5nIHwgc3RyaW5nW10gfCB2b2lkIHtcclxuICAgICAgICBpZiAoaXRlbXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICBjb25zdCBsb3dlcmVkUm9sZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsb3dlcmVkUm9sZXNbaV0gPSBpdGVtc1tpXS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbG93ZXJlZFJvbGVzO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW1zID09PSAnc3RyaW5nJyB8fCBpdGVtcyBpbnN0YW5jZW9mIFN0cmluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2b2lkIDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB1bmlxdWVJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmRvbU51bWJlcigxMDAwMDAwLCA5MDAwMDAwKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmFuZG9tTnVtYmVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSArIG1pbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBiYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGJhc2U6IHN0cmluZztcclxuXHJcbiAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHtcclxuICAgICAgICAgICAgYmFzZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYmFzZSA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAod2luZG93LmxvY2F0aW9uLnBvcnQgPyAnOicgKyB3aW5kb3cubG9jYXRpb24ucG9ydCA6ICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBiYXNlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBuZXdHdWlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGMpID0+IHtcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBjb25zdCByID0gKE1hdGgucmFuZG9tKCkgKiAxNikgfCAwO1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnN0IHYgPSBjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4O1xyXG4gICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB0ZXN0SXNBYnNvbHV0ZVVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHIgPSBuZXcgUmVnRXhwKCdeKD86W2Etel0rOik/Ly8nLCAnaScpO1xyXG4gICAgICAgIHJldHVybiByLnRlc3QodXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbnZlcnRUb0Fic29sdXRlVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQ21hdFV0aWxzU2VydmljZS50ZXN0SXNBYnNvbHV0ZVVybCh1cmwpID8gdXJsIDogJy8vJyArIHVybDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHVybEJhc2U2NERlY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IG91dHB1dCA9IHN0ci5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xyXG4gICAgICAgIHN3aXRjaCAob3V0cHV0Lmxlbmd0aCAlIDQpIHtcclxuICAgICAgICAgICAgY2FzZSAwOiB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlIDI6IHtcclxuICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPT0nO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAzOiB7XHJcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJz0nO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2U2NERlY29kZVVuaWNvZGUob3V0cHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGRlY29kZVRva2VuKHRva2VuOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IHBhcnRzID0gdG9rZW4uc3BsaXQoJy4nKTtcclxuXHJcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0pXVCBtdXN0IGhhdmUgMyBwYXJ0cycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IHRoaXMudXJsQmFzZTY0RGVjb2RlKHBhcnRzWzFdKTtcclxuICAgICAgICBpZiAoIWRlY29kZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVjb2RlIHRoZSB0b2tlbicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuOiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IHRoaXMuZGVjb2RlVG9rZW4odG9rZW4pO1xyXG5cclxuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZWNvZGVkLCAnZXhwJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMCk7IC8vIFRoZSAwIGhlcmUgaXMgdGhlIGtleSwgd2hpY2ggc2V0cyB0aGUgZGF0ZSB0byB0aGUgZXBvY2hcclxuICAgICAgICBkYXRlLnNldFVUQ1NlY29uZHMoZGVjb2RlZC5leHApO1xyXG5cclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzVG9rZW5FeHBpcmVkKHRva2VuOiBzdHJpbmcsIG9mZnNldFNlY29uZHM/OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuKTtcclxuICAgICAgICBvZmZzZXRTZWNvbmRzID0gb2Zmc2V0U2Vjb25kcyA/PyAwO1xyXG5cclxuICAgICAgICBpZiAoZGF0ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFRva2VuIGV4cGlyZWQ/XHJcbiAgICAgICAgcmV0dXJuICEoZGF0ZS52YWx1ZU9mKCkgPiAobmV3IERhdGUoKS52YWx1ZU9mKCkgKyAob2Zmc2V0U2Vjb25kcyAqIDEwMDApKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWFkQXNEYXRhVVJMKGZpbGU6IEZpbGUpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIC8vIFJldHVybiBhIG5ldyBwcm9taXNlXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyByZWFkZXJcclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc29sdmUgdGhlIHByb21pc2Ugb24gc3VjY2Vzc1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlamVjdCB0aGUgcHJvbWlzZSBvbiBlcnJvclxyXG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChlKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBSZWFkIHRoZSBmaWxlIGFzIHRoZVxyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGRhdGFVUklUb0Jsb2IoZGF0YVVSSTogc3RyaW5nKTogQmxvYiB7XHJcbiAgICAgICAgY29uc3Qgc3BsaXREYXRhVVJJID0gZGF0YVVSSS5zcGxpdCgnLCcpO1xyXG5cclxuICAgICAgICBjb25zdCBieXRlU3RyaW5nID0gc3BsaXREYXRhVVJJWzBdLmluZGV4T2YoJ2Jhc2U2NCcpID49IDAgPyBhdG9iKHNwbGl0RGF0YVVSSVsxXSkgOiBkZWNvZGVVUkkoc3BsaXREYXRhVVJJWzFdKTtcclxuICAgICAgICBjb25zdCBtaW1lU3RyaW5nID0gc3BsaXREYXRhVVJJWzBdLnNwbGl0KCc6JylbMV0uc3BsaXQoJzsnKVswXTtcclxuXHJcbiAgICAgICAgY29uc3QgaWEgPSBuZXcgVWludDhBcnJheShieXRlU3RyaW5nLmxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlhW2ldID0gYnl0ZVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBCbG9iKFtpYV0sIHsgdHlwZTogbWltZVN0cmluZyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEZpbGVUeXBlKGFjY2VwdDogc3RyaW5nKTogJ2NzdicgfCAnZ2lmJyB8ICd3b3JkJyB8ICdleGNlbCcgfCAnanBnJyB8ICdvdXRsb29rJyB8ICdwZGYnIHwgJ3BuZycgfCAncHB0JyB8ICdmaWxlJyB8ICd0ZXh0JyB8ICd2aWRlbycgfCAnemlwJyB7XHJcbiAgICAgICAgbGV0IGZpbGVUeXBlID0gJ2ZpbGUnO1xyXG4gICAgICAgIHN3aXRjaCAoYWNjZXB0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOlxyXG4gICAgICAgICAgICBjYXNlICdpbWFnZS9qcGcnOlxyXG4gICAgICAgICAgICAgICAgZmlsZVR5cGUgPSAnanBnJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdpbWFnZS9wbmcnOlxyXG4gICAgICAgICAgICAgICAgZmlsZVR5cGUgPSAncG5nJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd0ZXh0L2Nzdic6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdjc3YnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdnaWYnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL21zd29yZCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ3dvcmQnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ3dvcmQnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3BkZic6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdwZGYnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nOlxyXG4gICAgICAgICAgICBjYXNlICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdwcHQnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RleHQvcGxhaW4nOlxyXG4gICAgICAgICAgICAgICAgZmlsZVR5cGUgPSAndGV4dCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndmlkZW8vbXBlZyc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvL21wNCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2F1ZGlvL21wNCc6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICd2aWRlbyc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXBsaWNhdGlvbi96aXAnOlxyXG4gICAgICAgICAgICAgICAgZmlsZVR5cGUgPSAnemlwJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbGVUeXBlIGFzICdjc3YnIHwgJ2dpZicgfCAnd29yZCcgfCAnZXhjZWwnIHwgJ2pwZycgfCAnb3V0bG9vaycgfCAncGRmJyB8ICdwbmcnIHwgJ3BwdCcgfCAnZmlsZScgfCAndGV4dCcgfCAndmlkZW8nIHwgJ3ppcCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2Jhc2U2NERlY29kZVVuaWNvZGUoc3RyOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2Ioc3RyKSwgKGM6IGFueSkgPT4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikpLmpvaW4oJycpKTtcclxuICAgIH1cclxuXHJcbiAgICByYW5kb21JZChzdHJpbmdMZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgbGV0IGlkID0gJyc7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nTGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWQgKz0gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlkO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuIl19
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvc2VydmljZXMvdXRpbHMvdXRpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUs1QyxNQUFNLE9BQU8sZ0JBQWdCO2FBQ0YsK0JBQTBCLEdBQUcsR0FBRyxBQUFOLENBQU87YUFDakMsNEJBQXVCLEdBQUcsS0FBSyxBQUFSLENBQVM7YUFDaEMsMkJBQXNCLEdBQUcsU0FBUyxBQUFaLENBQWE7YUFDbkMsK0JBQTBCLEdBQUcsT0FBTyxBQUFWLENBQVc7YUFDckMsOEJBQXlCLEdBQUcsRUFBRSxBQUFMLENBQU07YUFDOUIsUUFBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQUFBakQsQ0FBa0QsR0FBQSxLQUFLO2FBQzFELE9BQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEFBQWpD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LG9CQUFvQixDQUFDLEdBQVE7UUFDeEMsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9JLENBQUM7SUFFRCxRQUFRLENBQUMsZUFBdUIsRUFBRTtRQUM5QixNQUFNLEtBQUssR0FBRyxnRUFBZ0UsQ0FBQztRQUMvRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEMsRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzsrR0F6aEJRLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7NEZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlLCBIdHRwUmVzcG9uc2VCYXNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IEFFUyBmcm9tICdjcnlwdG8tanMvYWVzJztcclxuaW1wb3J0IENyeXB0b0pTQ29yZSBmcm9tICdjcnlwdG8tanMvY29yZSc7XHJcbmltcG9ydCBCYXNlNjQgZnJvbSAnY3J5cHRvLWpzL2VuYy1iYXNlNjQnO1xyXG5pbXBvcnQgSGV4IGZyb20gJ2NyeXB0by1qcy9lbmMtaGV4JztcclxuaW1wb3J0IFVURjggZnJvbSAnY3J5cHRvLWpzL2VuYy11dGY4JztcclxuaW1wb3J0IFBrY3M3IGZyb20gJ2NyeXB0by1qcy9wYWQtcGtjczcnO1xyXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IHRocm93RXJyb3IsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ01BVF9WRVJTSU9OIH0gZnJvbSAnY21hdC92ZXJzaW9uJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFV0aWxzU2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGNhcHRpb25BbmRNZXNzYWdlU2VwYXJhdG9yID0gJzonO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBub05ldHdvcmtNZXNzYWdlQ2FwdGlvbiA9ICfml6DnvZHnu5wnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBub05ldHdvcmtNZXNzYWdlRGV0YWlsID0gJ+aXoOazlei/nuaOpeacjeWKoeWZqCc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjY2Vzc0RlbmllZE1lc3NhZ2VDYXB0aW9uID0gJ+aLkue7neiuv+mXriEnO1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY2Nlc3NEZW5pZWRNZXNzYWdlRGV0YWlsID0gJyc7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBrZXkgPSBVVEY4LnBhcnNlKCcxNDc4OTYzMjIzNjk4NzQxMTQ3ODk2MzIyMzY5ODc0MScpOy8vMzLkvY1cclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGl2ID0gVVRGOC5wYXJzZSgnMTQ3ODk2MzIyMzY5ODc0MScpOy8vMTbkvY1cclxuXHJcbiAgICBnZXQgZXhhY3RNYXRjaE9wdGlvbnMoKTogSXNBY3RpdmVNYXRjaE9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHBhdGhzOiAnZXhhY3QnLFxyXG4gICAgICAgICAgICBmcmFnbWVudDogJ2lnbm9yZWQnLFxyXG4gICAgICAgICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6ICdleGFjdCdcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzdWJzZXRNYXRjaE9wdGlvbnMoKTogSXNBY3RpdmVNYXRjaE9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHBhdGhzOiAnc3Vic2V0JyxcclxuICAgICAgICAgICAgZnJhZ21lbnQ6ICdpZ25vcmVkJyxcclxuICAgICAgICAgICAgbWF0cml4UGFyYW1zOiAnaWdub3JlZCcsXHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiAnc3Vic2V0J1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJylcclxuICAgICAgICAgICAgLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2NlcHQnLCBgYXBwbGljYXRpb24vdm5kLmltYW4udiR7Q01BVF9WRVJTSU9OfStqc29uLCBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLypgKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBcHAtVmVyc2lvbicsIENNQVRfVkVSU0lPTik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0SWRlbXBvdGVudEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJylcclxuICAgICAgICAgICAgLmFwcGVuZCgnWC1SZXF1ZXN0LUlEJywgQ21hdFV0aWxzU2VydmljZS5uZXdHdWlkKCkpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2VwdCcsIGBhcHBsaWNhdGlvbi92bmQuaW1hbi52JHtDTUFUX1ZFUlNJT059K2pzb24sIGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmApXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FwcC1WZXJzaW9uJywgQ01BVF9WRVJTSU9OKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RCeXBhc3NIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ2J5cGFzcycsICd0cnVlJylcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXB0JywgYGFwcGxpY2F0aW9uL3ZuZC5pbWFuLnYke0NNQVRfVkVSU0lPTn0ranNvbiwgYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qYClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQXBwLVZlcnNpb24nLCBDTUFUX1ZFUlNJT04pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVxdWVzdElkZW1wb3RlbnRCeXBhc3NIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ1gtUmVxdWVzdC1JRCcsIENtYXRVdGlsc1NlcnZpY2UubmV3R3VpZCgpKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdieXBhc3MnLCAndHJ1ZScpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FjY2VwdCcsIGBhcHBsaWNhdGlvbi92bmQuaW1hbi52JHtDTUFUX1ZFUlNJT059K2pzb24sIGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKmApXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FwcC1WZXJzaW9uJywgQ01BVF9WRVJTSU9OKTtcclxuICAgIH0gICAgXHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0Q3J5cHRvSGVhZGVycyhwYXJhbXM6IHN0cmluZyk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2NlcHQnLCBgYXBwbGljYXRpb24vdm5kLmltYW4udiR7Q01BVF9WRVJTSU9OfStqc29uLCBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLypgKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBcHAtVmVyc2lvbicsIHRoaXMuZ2V0RW5jcnlwdERhdGEoJ3BhcnR5bWFuYWdlQXBpJyArIHBhcmFtcykudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0Q3J5cHRvQnlwYXNzSGVhZGVycyhwYXJhbXM6IHN0cmluZyk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2NlcHQnLCBgYXBwbGljYXRpb24vdm5kLmltYW4udiR7Q01BVF9WRVJTSU9OfStqc29uLCBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLypgKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdieXBhc3MnLCAndHJ1ZScpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FwcC1WZXJzaW9uJywgdGhpcy5nZXRFbmNyeXB0RGF0YSgncGFydHltYW5hZ2VBcGknICsgcGFyYW1zKS50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RDcnlwdG9JZGVtcG90ZW50SGVhZGVycyhwYXJhbXM6IHN0cmluZyk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgJyonKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdYLVJlcXVlc3QtSUQnLCBDbWF0VXRpbHNTZXJ2aWNlLm5ld0d1aWQoKSlcclxuICAgICAgICAgICAgLmFwcGVuZCgnQWNjZXB0JywgYGFwcGxpY2F0aW9uL3ZuZC5pbWFuLnYke0NNQVRfVkVSU0lPTn0ranNvbiwgYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qYClcclxuICAgICAgICAgICAgLmFwcGVuZCgnQXBwLVZlcnNpb24nLCB0aGlzLmdldEVuY3J5cHREYXRhKCdwYXJ0eW1hbmFnZUFwaScgKyBwYXJhbXMpLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVxdWVzdENyeXB0b0lkZW1wb3RlbnRCeXBhc3NIZWFkZXJzKHBhcmFtczogc3RyaW5nKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ1gtUmVxdWVzdC1JRCcsIENtYXRVdGlsc1NlcnZpY2UubmV3R3VpZCgpKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdBY2NlcHQnLCBgYXBwbGljYXRpb24vdm5kLmltYW4udiR7Q01BVF9WRVJTSU9OfStqc29uLCBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLypgKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCdieXBhc3MnLCAndHJ1ZScpXHJcbiAgICAgICAgICAgIC5hcHBlbmQoJ0FwcC1WZXJzaW9uJywgdGhpcy5nZXRFbmNyeXB0RGF0YSgncGFydHltYW5hZ2VBcGknICsgcGFyYW1zKS50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEVuY3J5cHREYXRhKGRhdGE6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc3JjID0gVVRGOC5wYXJzZShkYXRhKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIEFFUy5lbmNyeXB0KHNyYywgdGhpcy5rZXksIHtcclxuICAgICAgICAgICAgaXY6IHRoaXMuaXYsXHJcbiAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTQ29yZS5tb2RlLkNCQyxcclxuICAgICAgICAgICAgcGFkZGluZzogUGtjczdcclxuICAgICAgICB9KS5jaXBoZXJ0ZXh0LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXREZWNyeXB0RGF0YShkYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZEhleFN0ciA9IEhleC5wYXJzZShkYXRhKTtcclxuICAgICAgICByZXR1cm4gQUVTLmRlY3J5cHQoQmFzZTY0LnN0cmluZ2lmeShlbmNyeXB0ZWRIZXhTdHIpLCB0aGlzLmtleSwge1xyXG4gICAgICAgICAgICBpdjogdGhpcy5pdixcclxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlNDb3JlLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiBQa2NzN1xyXG4gICAgICAgIH0pLnRvU3RyaW5nKFVURjgpLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgICAgIGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgICAgICAgLy8gQSBjbGllbnQtc2lkZSBvciBuZXR3b3JrIGVycm9yIG9jY3VycmVkLiBIYW5kbGUgaXQgYWNjb3JkaW5nbHkuXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NsaWVudCBzaWRlIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQ6JywgZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gVGhlIGJhY2tlbmQgcmV0dXJuZWQgYW4gdW5zdWNjZXNzZnVsIHJlc3BvbnNlIGNvZGUuXHJcbiAgICAgICAgICAgIC8vIFRoZSByZXNwb25zZSBib2R5IG1heSBjb250YWluIGNsdWVzIGFzIHRvIHdoYXQgd2VudCB3cm9uZyxcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQmFja2VuZCAtICcgK1xyXG4gICAgICAgICAgICAgICAgYHN0YXR1czogJHtlcnJvci5zdGF0dXN9LCBgICtcclxuICAgICAgICAgICAgICAgIGBzdGF0dXNUZXh0OiAke2Vycm9yLnN0YXR1c1RleHR9LCBgICtcclxuICAgICAgICAgICAgICAgIGBtZXNzYWdlOiAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyByZXR1cm4gYW4gb2JzZXJ2YWJsZSB3aXRoIGEgdXNlci1mYWNpbmcgZXJyb3IgbWVzc2FnZVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yIHx8ICdzZXJ2ZXIgZXJyb3InKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEh0dHBSZXNwb25zZU1lc3NhZ2UoZGF0YTogYW55KTogc3RyaW5nW10ge1xyXG5cclxuICAgICAgICBjb25zdCByZXNwb25zZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlQmFzZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja05vTmV0d29yayhkYXRhKSkge1xyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VzLnB1c2goYCR7dGhpcy5ub05ldHdvcmtNZXNzYWdlQ2FwdGlvbn0ke3RoaXMuY2FwdGlvbkFuZE1lc3NhZ2VTZXBhcmF0b3J9ICR7dGhpcy5ub05ldHdvcmtNZXNzYWdlRGV0YWlsfWApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VPYmplY3QgPSB0aGlzLmdldFJlc3BvbnNlQm9keShkYXRhKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VPYmplY3QgJiYgKHR5cGVvZiByZXNwb25zZU9iamVjdCA9PT0gJ29iamVjdCcgfHwgcmVzcG9uc2VPYmplY3QgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlc3BvbnNlT2JqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzcG9uc2VPYmplY3QsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMucHVzaChgJHtrZXl9JHt0aGlzLmNhcHRpb25BbmRNZXNzYWdlU2VwYXJhdG9yfSAke3Jlc3BvbnNlT2JqZWN0W2tleV19YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlT2JqZWN0W2tleV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMucHVzaChyZXNwb25zZU9iamVjdFtrZXldLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlcy5sZW5ndGggJiYgdGhpcy5nZXRSZXNwb25zZUJvZHkoZGF0YSkpIHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlcy5wdXNoKGAke3RoaXMuZ2V0UmVzcG9uc2VCb2R5KGRhdGEpLnRvU3RyaW5nKCl9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghcmVzcG9uc2VzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXNwb25zZXMucHVzaChkYXRhLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tBY2Nlc3NEZW5pZWQoZGF0YSkpIHtcclxuICAgICAgICAgICAgcmVzcG9uc2VzLnNwbGljZSgwLCAwLCBgJHt0aGlzLmFjY2Vzc0RlbmllZE1lc3NhZ2VDYXB0aW9ufSR7dGhpcy5jYXB0aW9uQW5kTWVzc2FnZVNlcGFyYXRvcn0gJHt0aGlzLmFjY2Vzc0RlbmllZE1lc3NhZ2VEZXRhaWx9YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2VzO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGZpbmRIdHRwUmVzcG9uc2VNZXNzYWdlKG1lc3NhZ2VUb0ZpbmQ6IHN0cmluZywgZGF0YTogYW55LCBzZWFjaEluQ2FwdGlvbk9ubHkgPSB0cnVlLCBpbmNsdWRlQ2FwdGlvbkluUmVzdWx0ID0gZmFsc2UpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSBtZXNzYWdlVG9GaW5kLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgaHR0cE1lc3NhZ2VzID0gdGhpcy5nZXRIdHRwUmVzcG9uc2VNZXNzYWdlKGRhdGEpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgaHR0cE1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxNZXNzYWdlID0gQ21hdFV0aWxzU2VydmljZS5zcGxpdEluVHdvKG1lc3NhZ2UsIHRoaXMuY2FwdGlvbkFuZE1lc3NhZ2VTZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZ1bGxNZXNzYWdlLmZpcnN0UGFydD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5jbHVkZUNhcHRpb25JblJlc3VsdCA/IG1lc3NhZ2UgOiBmdWxsTWVzc2FnZS5zZWNvbmRQYXJ0ID8/IGZ1bGxNZXNzYWdlLmZpcnN0UGFydDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFzZWFjaEluQ2FwdGlvbk9ubHkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIGh0dHBNZXNzYWdlcykge1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlQ2FwdGlvbkluUmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bGxNZXNzYWdlID0gQ21hdFV0aWxzU2VydmljZS5zcGxpdEluVHdvKG1lc3NhZ2UsIHRoaXMuY2FwdGlvbkFuZE1lc3NhZ2VTZXBhcmF0b3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVsbE1lc3NhZ2Uuc2Vjb25kUGFydCA/PyBmdWxsTWVzc2FnZS5maXJzdFBhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFJlc3BvbnNlQm9keShyZXNwb25zZTogSHR0cFJlc3BvbnNlQmFzZSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmVycm9yIHx8IHJlc3BvbnNlLm1lc3NhZ2UgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrTm9OZXR3b3JrKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2VCYXNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlQmFzZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2Uuc3RhdHVzID09PSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2hlY2tBY2Nlc3NEZW5pZWQocmVzcG9uc2U6IEh0dHBSZXNwb25zZUJhc2UpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2VCYXNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5zdGF0dXMgPT09IDQwMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrTm90Rm91bmQocmVzcG9uc2U6IEh0dHBSZXNwb25zZUJhc2UpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2VCYXNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5zdGF0dXMgPT09IDQwNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrSXNMb2NhbEhvc3QodXJsOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gbmV3IFVSTCh1cmwsIGJhc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gbG9jYXRpb24uaG9zdG5hbWUgPT09ICdsb2NhbGhvc3QnIHx8IGxvY2F0aW9uLmhvc3RuYW1lID09PSAnMTI3LjAuMC4xJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFF1ZXJ5UGFyYW1zRnJvbVN0cmluZyhwYXJhbVN0cmluZzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4gfCBudWxsIHtcclxuICAgICAgICBpZiAoIXBhcmFtU3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIHBhcmFtU3RyaW5nLnNwbGl0KCcmJykpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5VmFsdWUgPSBDbWF0VXRpbHNTZXJ2aWNlLnNwbGl0SW5Ud28ocGFyYW0sICc9Jyk7XHJcbiAgICAgICAgICAgIHBhcmFtc1trZXlWYWx1ZS5maXJzdFBhcnRdID0ga2V5VmFsdWUuc2Vjb25kUGFydDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBzcGxpdEluVHdvKHRleHQ6IHN0cmluZywgc2VwYXJhdG9yPzogc3RyaW5nKTogeyBmaXJzdFBhcnQ6IHN0cmluZzsgc2Vjb25kUGFydDogc3RyaW5nIHwgbnVsbCB9IHtcclxuICAgICAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IHNlcGFyYXRvciA/IHRleHQuaW5kZXhPZihzZXBhcmF0b3IpIDogLTE7XHJcblxyXG4gICAgICAgIGlmIChzZXBhcmF0b3JJbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgZmlyc3RQYXJ0OiB0ZXh0LCBzZWNvbmRQYXJ0OiBudWxsIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJ0MSA9IHRleHQuc3Vic3RyaW5nKDAsIHNlcGFyYXRvckluZGV4KS50cmltKCk7XHJcbiAgICAgICAgY29uc3QgcGFydDIgPSB0ZXh0LnN1YnN0cmluZyhzZXBhcmF0b3JJbmRleCArIDEpLnRyaW0oKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgZmlyc3RQYXJ0OiBwYXJ0MSwgc2Vjb25kUGFydDogcGFydDIgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHNhZmVTdHJpbmdpZnkob2JqZWN0OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZztcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0KTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9IGNhdGNoIHsgLyogZW1wdHkgKi8gfVxyXG5cclxuICAgICAgICBjb25zdCBzaW1wbGVPYmplY3Q6IGFueSA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqZWN0KSB7XHJcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKG9iamVjdFtwcm9wXSkgPT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKG9iamVjdFtwcm9wXSkgPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2ltcGxlT2JqZWN0W3Byb3BdID0gb2JqZWN0W3Byb3BdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVzdWx0ID0gJ1sqKipTYW5pdGl6ZWQgT2JqZWN0KioqXTogJyArIEpTT04uc3RyaW5naWZ5KHNpbXBsZU9iamVjdCk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBqc29uVHJ5UGFyc2UodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IHZvaWQge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNhcGl0YWxpemVGaXJzdExldHRlcih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9UaXRsZUNhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC9cXHdcXFMqL2csIHN1YlN0cmluZyA9PiBzdWJTdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdWJTdHJpbmcuc3Vic3RyaW5nKDEpLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9Mb3dlckNhc2UoaXRlbXM6IGFueSk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdm9pZCB7XHJcbiAgICAgICAgaWYgKGl0ZW1zIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgY29uc3QgbG93ZXJlZFJvbGVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbG93ZXJlZFJvbGVzW2ldID0gaXRlbXNbaV0udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGxvd2VyZWRSb2xlcztcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpdGVtcyA9PT0gJ3N0cmluZycgfHwgaXRlbXMgaW5zdGFuY2VvZiBTdHJpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdm9pZCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdW5pcXVlSWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yYW5kb21OdW1iZXIoMTAwMDAwMCwgOTAwMDAwMCkudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJhbmRvbU51bWJlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgYmFzZVVybCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBiYXNlOiBzdHJpbmc7XHJcblxyXG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24ub3JpZ2luKSB7XHJcbiAgICAgICAgICAgIGJhc2UgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGJhc2UgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgKHdpbmRvdy5sb2NhdGlvbi5wb3J0ID8gJzonICsgd2luZG93LmxvY2F0aW9uLnBvcnQgOiAnJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYmFzZS5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbmV3R3VpZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgY29uc3QgciA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBjb25zdCB2ID0gYyA9PT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4ODtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdGVzdElzQWJzb2x1dGVVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCByID0gbmV3IFJlZ0V4cCgnXig/OlthLXpdKzopPy8vJywgJ2knKTtcclxuICAgICAgICByZXR1cm4gci50ZXN0KHVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBjb252ZXJ0VG9BYnNvbHV0ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIENtYXRVdGlsc1NlcnZpY2UudGVzdElzQWJzb2x1dGVVcmwodXJsKSA/IHVybCA6ICcvLycgKyB1cmw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyB1cmxCYXNlNjREZWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBvdXRwdXQgPSBzdHIucmVwbGFjZSgvLS9nLCAnKycpLnJlcGxhY2UoL18vZywgJy8nKTtcclxuICAgICAgICBzd2l0Y2ggKG91dHB1dC5sZW5ndGggJSA0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDoge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAyOiB7XHJcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJz09JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgMzoge1xyXG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc9JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9iYXNlNjREZWNvZGVVbmljb2RlKG91dHB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBkZWNvZGVUb2tlbih0b2tlbjogc3RyaW5nKTogYW55IHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IHRva2VuLnNwbGl0KCcuJyk7XHJcblxyXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdKV1QgbXVzdCBoYXZlIDMgcGFydHMnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLnVybEJhc2U2NERlY29kZShwYXJ0c1sxXSk7XHJcbiAgICAgICAgaWYgKCFkZWNvZGVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlY29kZSB0aGUgdG9rZW4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbjogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLmRlY29kZVRva2VuKHRva2VuKTtcclxuXHJcbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGVjb2RlZCwgJ2V4cCcpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDApOyAvLyBUaGUgMCBoZXJlIGlzIHRoZSBrZXksIHdoaWNoIHNldHMgdGhlIGRhdGUgdG8gdGhlIGVwb2NoXHJcbiAgICAgICAgZGF0ZS5zZXRVVENTZWNvbmRzKGRlY29kZWQuZXhwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBpc1Rva2VuRXhwaXJlZCh0b2tlbjogc3RyaW5nLCBvZmZzZXRTZWNvbmRzPzogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbik7XHJcbiAgICAgICAgb2Zmc2V0U2Vjb25kcyA9IG9mZnNldFNlY29uZHMgPz8gMDtcclxuXHJcbiAgICAgICAgaWYgKGRhdGUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBUb2tlbiBleHBpcmVkP1xyXG4gICAgICAgIHJldHVybiAhKGRhdGUudmFsdWVPZigpID4gKG5ldyBEYXRlKCkudmFsdWVPZigpICsgKG9mZnNldFNlY29uZHMgKiAxMDAwKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZEFzRGF0YVVSTChmaWxlOiBGaWxlKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICAvLyBSZXR1cm4gYSBuZXcgcHJvbWlzZVxyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcmVhZGVyXHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBwcm9taXNlIG9uIHN1Y2Nlc3NcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBSZWplY3QgdGhlIHByb21pc2Ugb24gZXJyb3JcclxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZSk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzXHJcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAvLyBSZWFkIHRoZSBmaWxlIGFzIHRoZVxyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGRhdGFVUklUb0Jsb2IoZGF0YVVSSTogc3RyaW5nKTogQmxvYiB7XHJcbiAgICAgICAgY29uc3Qgc3BsaXREYXRhVVJJID0gZGF0YVVSSS5zcGxpdCgnLCcpO1xyXG5cclxuICAgICAgICBjb25zdCBieXRlU3RyaW5nID0gc3BsaXREYXRhVVJJWzBdLmluY2x1ZGVzKCdiYXNlNjQnKSA/IGF0b2Ioc3BsaXREYXRhVVJJWzFdKSA6IGRlY29kZVVSSShzcGxpdERhdGFVUklbMV0pO1xyXG4gICAgICAgIGNvbnN0IG1pbWVTdHJpbmcgPSBzcGxpdERhdGFVUklbMF0uc3BsaXQoJzonKVsxXS5zcGxpdCgnOycpWzBdO1xyXG5cclxuICAgICAgICBjb25zdCBpYSA9IG5ldyBVaW50OEFycmF5KGJ5dGVTdHJpbmcubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbmV3IEJsb2IoW2lhXSwgeyB0eXBlOiBtaW1lU3RyaW5nIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RmlsZVR5cGUoYWNjZXB0OiBzdHJpbmcpOiAnY3N2JyB8ICdnaWYnIHwgJ3dvcmQnIHwgJ2V4Y2VsJyB8ICdqcGcnIHwgJ291dGxvb2snIHwgJ3BkZicgfCAncG5nJyB8ICdwcHQnIHwgJ2ZpbGUnIHwgJ3RleHQnIHwgJ3ZpZGVvJyB8ICd6aXAnIHtcclxuICAgICAgICBsZXQgZmlsZVR5cGUgPSAnZmlsZSc7XHJcbiAgICAgICAgc3dpdGNoIChhY2NlcHQpIHtcclxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZyc6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdqcGcnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL3BuZyc6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdwbmcnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RleHQvY3N2JzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ2Nzdic7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvZ2lmJzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ2dpZic7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vbXN3b3JkJzpcclxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnOlxyXG4gICAgICAgICAgICAgICAgZmlsZVR5cGUgPSAnd29yZCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJzpcclxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOlxyXG4gICAgICAgICAgICAgICAgZmlsZVR5cGUgPSAnd29yZCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vcGRmJzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ3BkZic7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbic6XHJcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ3BwdCc7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndGV4dC9wbGFpbic6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICd0ZXh0JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd2aWRlby9tcGVnJzpcclxuICAgICAgICAgICAgY2FzZSAndmlkZW8vbXA0JzpcclxuICAgICAgICAgICAgY2FzZSAnYXVkaW8vbXA0JzpcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ3ZpZGVvJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhcGxpY2F0aW9uL3ppcCc6XHJcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICd6aXAnO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmlsZVR5cGUgYXMgJ2NzdicgfCAnZ2lmJyB8ICd3b3JkJyB8ICdleGNlbCcgfCAnanBnJyB8ICdvdXRsb29rJyB8ICdwZGYnIHwgJ3BuZycgfCAncHB0JyB8ICdmaWxlJyB8ICd0ZXh0JyB8ICd2aWRlbycgfCAnemlwJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfYmFzZTY0RGVjb2RlVW5pY29kZShzdHI6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXRvYihzdHIpLCAoYzogYW55KSA9PiAnJScgKyAoJzAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSkuam9pbignJykpO1xyXG4gICAgfVxyXG5cclxuICAgIHJhbmRvbUlkKHN0cmluZ0xlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcclxuICAgICAgICBsZXQgaWQgPSAnJztcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmdMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZCArPSBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaWQ7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-animations.mjs","sources":["../../../projects/cmat/animations/dropdown.ts","../../../projects/cmat/animations/defaults.ts","../../../projects/cmat/animations/expand-collapse.ts","../../../projects/cmat/animations/fade.ts","../../../projects/cmat/animations/shake.ts","../../../projects/cmat/animations/slide.ts","../../../projects/cmat/animations/transform.ts","../../../projects/cmat/animations/zoom.ts","../../../projects/cmat/animations/public-api.ts","../../../projects/cmat/animations/cmat-animations.ts"],"sourcesContent":["import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\n\nexport const dropdown: AnimationTriggerMetadata = trigger(\n 'dropdown', [\n state('*', style({\n opacity: 0,\n height: 0,\n border: 0,\n padding: 0,\n visibility: 'hidden',\n })),\n state('false', style({\n opacity: 0,\n height: 0,\n border: 0,\n padding: 0,\n visibility: 'hidden',\n })),\n state('true', style({\n opacity: 1,\n height: '*',\n border: '*',\n padding: '*',\n visibility: 'inherit',\n })),\n transition('* => *', animate('250ms ease-out'))\n ]\n);\n","export class CmatAnimationCurves {\r\n static standard = 'cubic-bezier(0.4, 0.0, 0.2, 1)';\r\n static deceleration = 'cubic-bezier(0.0, 0.0, 0.2, 1)';\r\n static acceleration = 'cubic-bezier(0.4, 0.0, 1, 1)';\r\n static sharp = 'cubic-bezier(0.4, 0.0, 0.6, 1)';\r\n}\r\n\r\nexport class CmatAnimationDurations {\r\n static complex = '375ms';\r\n static entering = '225ms';\r\n static exiting = '195ms';\r\n}\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst expandCollapse = trigger('expandCollapse',\r\n [\r\n state('void, collapsed',\r\n style({\r\n height: '0'\r\n })\r\n ),\r\n\r\n state('*, expanded',\r\n style('*')\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void <=> false, collapsed <=> false, expanded <=> false', []),\r\n\r\n transition('void <=> *, collapsed <=> expanded',\r\n animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {expandCollapse};\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst fadeIn = trigger('fadeIn',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInTop = trigger('fadeInTop',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInBottom = trigger('fadeInBottom',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInLeft = trigger('fadeInLeft',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInRight = trigger('fadeInRight',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOut = trigger('fadeOut',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutTop = trigger('fadeOutTop',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutBottom = trigger('fadeOutBottom',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutLeft = trigger('fadeOutLeft',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutRight = trigger('fadeOutRight',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight, fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight};\r\n","import {animate, keyframes, style, transition, trigger} from '@angular/animations';\r\n\r\nconst shake = trigger('shake',\r\n [\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *, * => true',\r\n [\r\n animate('{{timings}}',\r\n keyframes([\r\n style({\r\n transform: 'translate3d(0, 0, 0)',\r\n offset: 0\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.1\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.2\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.3\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.4\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.5\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.6\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.7\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.8\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.9\r\n }),\r\n style({\r\n transform: 'translate3d(0, 0, 0)',\r\n offset: 1\r\n })\r\n ])\r\n )\r\n ],\r\n {\r\n params: {\r\n timings: '0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955)'\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {shake};\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst slideInTop = trigger('slideInTop',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideInBottom = trigger('slideInBottom',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideInLeft = trigger('slideInLeft',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideInRight = trigger('slideInRight',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutTop = trigger('slideOutTop',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutBottom = trigger('slideOutBottom',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutLeft = trigger('slideOutLeft',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutRight = trigger('slideOutRight',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight};\r\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\r\n\r\nexport const transform: AnimationTriggerMetadata = trigger('transform', [\r\n state(\r\n 'enter',\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n })\r\n ),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0)',\r\n }),\r\n animate('200ms cubic-bezier(0.25, 0.8, 0.25, 1)'),\r\n ]),\r\n transition('* => void', [animate('50ms 100ms linear', style({opacity: 0}))]),\r\n]);\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst zoomIn = trigger('zoomIn',\r\n [\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0.5)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst zoomOut = trigger('zoomOut',\r\n [\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0.5)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {zoomIn, zoomOut};\r\n\r\n","import { dropdown } from './dropdown';\r\nimport { expandCollapse } from './expand-collapse';\r\nimport {\r\n fadeIn,\r\n fadeInBottom,\r\n fadeInLeft,\r\n fadeInRight,\r\n fadeInTop,\r\n fadeOut,\r\n fadeOutBottom,\r\n fadeOutLeft,\r\n fadeOutRight,\r\n fadeOutTop\r\n} from './fade';\r\nimport { shake } from './shake';\r\nimport {\r\n slideInBottom,\r\n slideInLeft,\r\n slideInRight,\r\n slideInTop,\r\n slideOutBottom,\r\n slideOutLeft,\r\n slideOutRight,\r\n slideOutTop\r\n} from './slide';\r\nimport { transform } from './transform';\r\nimport { zoomIn, zoomOut } from './zoom';\r\n\r\nexport const cmatAnimations = [\r\n expandCollapse,\r\n fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight,\r\n fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight,\r\n shake,\r\n slideInTop, slideInBottom, slideInLeft, slideInRight,\r\n slideOutTop, slideOutBottom, slideOutLeft, slideOutRight,\r\n zoomIn, zoomOut,\r\n dropdown,\r\n transform\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-animations.mjs","sources":["../../../projects/cmat/animations/dropdown.ts","../../../projects/cmat/animations/defaults.ts","../../../projects/cmat/animations/expand-collapse.ts","../../../projects/cmat/animations/fade.ts","../../../projects/cmat/animations/shake.ts","../../../projects/cmat/animations/slide.ts","../../../projects/cmat/animations/transform.ts","../../../projects/cmat/animations/zoom.ts","../../../projects/cmat/animations/public-api.ts","../../../projects/cmat/animations/cmat-animations.ts"],"sourcesContent":["import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\r\n\r\nexport const dropdown: AnimationTriggerMetadata = trigger(\r\n 'dropdown', [\r\n state('*', style({\r\n opacity: 0,\r\n height: 0,\r\n border: 0,\r\n padding: 0,\r\n visibility: 'hidden',\r\n })),\r\n state('false', style({\r\n opacity: 0,\r\n height: 0,\r\n border: 0,\r\n padding: 0,\r\n visibility: 'hidden',\r\n })),\r\n state('true', style({\r\n opacity: 1,\r\n height: '*',\r\n border: '*',\r\n padding: '*',\r\n visibility: 'inherit',\r\n })),\r\n transition('* => *', animate('250ms ease-out'))\r\n ]\r\n);\r\n","export class CmatAnimationCurves {\r\n static standard = 'cubic-bezier(0.4, 0.0, 0.2, 1)';\r\n static deceleration = 'cubic-bezier(0.0, 0.0, 0.2, 1)';\r\n static acceleration = 'cubic-bezier(0.4, 0.0, 1, 1)';\r\n static sharp = 'cubic-bezier(0.4, 0.0, 0.6, 1)';\r\n}\r\n\r\nexport class CmatAnimationDurations {\r\n static complex = '375ms';\r\n static entering = '225ms';\r\n static exiting = '195ms';\r\n}\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst expandCollapse = trigger('expandCollapse',\r\n [\r\n state('void, collapsed',\r\n style({\r\n height: '0'\r\n })\r\n ),\r\n\r\n state('*, expanded',\r\n style('*')\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void <=> false, collapsed <=> false, expanded <=> false', []),\r\n\r\n transition('void <=> *, collapsed <=> expanded',\r\n animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {expandCollapse};\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst fadeIn = trigger('fadeIn',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInTop = trigger('fadeInTop',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInBottom = trigger('fadeInBottom',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInLeft = trigger('fadeInLeft',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeInRight = trigger('fadeInRight',\r\n [\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOut = trigger('fadeOut',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutTop = trigger('fadeOutTop',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutBottom = trigger('fadeOutBottom',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutLeft = trigger('fadeOutLeft',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst fadeOutRight = trigger('fadeOutRight',\r\n [\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight, fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight};\r\n","import {animate, keyframes, style, transition, trigger} from '@angular/animations';\r\n\r\nconst shake = trigger('shake',\r\n [\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *, * => true',\r\n [\r\n animate('{{timings}}',\r\n keyframes([\r\n style({\r\n transform: 'translate3d(0, 0, 0)',\r\n offset: 0\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.1\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.2\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.3\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.4\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.5\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.6\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.7\r\n }),\r\n style({\r\n transform: 'translate3d(10px, 0, 0)',\r\n offset: 0.8\r\n }),\r\n style({\r\n transform: 'translate3d(-10px, 0, 0)',\r\n offset: 0.9\r\n }),\r\n style({\r\n transform: 'translate3d(0, 0, 0)',\r\n offset: 1\r\n })\r\n ])\r\n )\r\n ],\r\n {\r\n params: {\r\n timings: '0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955)'\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {shake};\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst slideInTop = trigger('slideInTop',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideInBottom = trigger('slideInBottom',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideInLeft = trigger('slideInLeft',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideInRight = trigger('slideInRight',\r\n [\r\n state('void',\r\n style({\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutTop = trigger('slideOutTop',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, -100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutBottom = trigger('slideOutBottom',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(0, 100%, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutLeft = trigger('slideOutLeft',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(-100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst slideOutRight = trigger('slideOutRight',\r\n [\r\n state('*',\r\n style({\r\n transform: 'translate3d(0, 0, 0)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n transform: 'translate3d(100%, 0, 0)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight};\r\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\r\n\r\nexport const transform: AnimationTriggerMetadata = trigger('transform', [\r\n state(\r\n 'enter',\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n })\r\n ),\r\n transition('void => *', [\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0)',\r\n }),\r\n animate('200ms cubic-bezier(0.25, 0.8, 0.25, 1)'),\r\n ]),\r\n transition('* => void', [animate('50ms 100ms linear', style({opacity: 0}))]),\r\n]);\r\n","import {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {CmatAnimationCurves, CmatAnimationDurations} from './defaults';\r\n\r\nconst zoomIn = trigger('zoomIn',\r\n [\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0.5)'\r\n })\r\n ),\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('void => false', []),\r\n\r\n transition('void => *', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.entering} ${CmatAnimationCurves.deceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nconst zoomOut = trigger('zoomOut',\r\n [\r\n\r\n state('*',\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n })\r\n ),\r\n\r\n state('void',\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0.5)'\r\n })\r\n ),\r\n\r\n // Prevent the transition if the state is false\r\n transition('false => void', []),\r\n\r\n transition('* => void', animate('{{timings}}'),\r\n {\r\n params: {\r\n timings: `${CmatAnimationDurations.exiting} ${CmatAnimationCurves.acceleration}`\r\n }\r\n }\r\n )\r\n ]\r\n);\r\n\r\nexport {zoomIn, zoomOut};\r\n\r\n","import { dropdown } from './dropdown';\r\nimport { expandCollapse } from './expand-collapse';\r\nimport {\r\n fadeIn,\r\n fadeInBottom,\r\n fadeInLeft,\r\n fadeInRight,\r\n fadeInTop,\r\n fadeOut,\r\n fadeOutBottom,\r\n fadeOutLeft,\r\n fadeOutRight,\r\n fadeOutTop\r\n} from './fade';\r\nimport { shake } from './shake';\r\nimport {\r\n slideInBottom,\r\n slideInLeft,\r\n slideInRight,\r\n slideInTop,\r\n slideOutBottom,\r\n slideOutLeft,\r\n slideOutRight,\r\n slideOutTop\r\n} from './slide';\r\nimport { transform } from './transform';\r\nimport { zoomIn, zoomOut } from './zoom';\r\n\r\nexport const cmatAnimations = [\r\n expandCollapse,\r\n fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight,\r\n fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight,\r\n shake,\r\n slideInTop, slideInBottom, slideInLeft, slideInRight,\r\n slideOutTop, slideOutBottom, slideOutLeft, slideOutRight,\r\n zoomIn, zoomOut,\r\n dropdown,\r\n transform\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -249,10 +249,10 @@ class CNativeDatetimeAdapter extends DatetimeAdapter {
249
249
  }
250
250
  return result;
251
251
  }
252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CNativeDatetimeAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }
253
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CNativeDatetimeAdapter }); }
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CNativeDatetimeAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }
253
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CNativeDatetimeAdapter }); }
254
254
  }
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CNativeDatetimeAdapter, decorators: [{
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CNativeDatetimeAdapter, decorators: [{
256
256
  type: Injectable
257
257
  }], ctorParameters: () => [{ type: undefined, decorators: [{
258
258
  type: Optional
@@ -357,10 +357,10 @@ class DayjsDatetimeAdapter extends DatetimeAdapter {
357
357
  _getDateInNextMonth(date) {
358
358
  return super.clone(date).date(1).add(1, 'month');
359
359
  }
360
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }
361
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDatetimeAdapter }); }
360
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDatetimeAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }
361
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDatetimeAdapter }); }
362
362
  }
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDatetimeAdapter, decorators: [{
364
364
  type: Injectable
365
365
  }], ctorParameters: () => [{ type: undefined, decorators: [{
366
366
  type: Optional
@@ -563,10 +563,10 @@ class DayjsDateAdapter extends DateAdapter {
563
563
  dayjs.extend(localeData);
564
564
  this.setLocale(dateLocale);
565
565
  }
566
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: CMAT_DAYJS_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
567
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDateAdapter }); }
566
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDateAdapter, deps: [{ token: MAT_DATE_LOCALE, optional: true }, { token: CMAT_DAYJS_DATE_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
567
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDateAdapter }); }
568
568
  }
569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DayjsDateAdapter, decorators: [{
569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DayjsDateAdapter, decorators: [{
570
570
  type: Injectable
571
571
  }], ctorParameters: () => [{ type: undefined, decorators: [{
572
572
  type: Optional