cmat 0.0.86 → 0.0.88

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 (228) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs +98 -80
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +26 -34
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +467 -556
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +270 -259
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +200 -116
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +85 -38
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-color-picker.mjs +841 -0
  16. package/fesm2022/cmat-components-color-picker.mjs.map +1 -0
  17. package/fesm2022/cmat-components-custom-formly.mjs +1395 -838
  18. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  19. package/fesm2022/cmat-components-data-picker.mjs +996 -0
  20. package/fesm2022/cmat-components-data-picker.mjs.map +1 -0
  21. package/fesm2022/cmat-components-date-range.mjs +310 -264
  22. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  23. package/fesm2022/cmat-components-date-time-display.mjs +16 -20
  24. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  25. package/fesm2022/cmat-components-drawer.mjs +120 -137
  26. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  27. package/fesm2022/cmat-components-empty-state.mjs +17 -24
  28. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  29. package/fesm2022/cmat-components-file-preview.mjs +18 -24
  30. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  31. package/fesm2022/cmat-components-filter-toolbar.mjs +30 -39
  32. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  33. package/fesm2022/cmat-components-form-actions.mjs +12 -12
  34. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  35. package/fesm2022/cmat-components-fullscreen.mjs +10 -10
  36. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  37. package/fesm2022/cmat-components-highlight.mjs +48 -41
  38. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  39. package/fesm2022/cmat-components-image-viewer.mjs +104 -107
  40. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  41. package/fesm2022/cmat-components-inline-loading.mjs +12 -15
  42. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  43. package/fesm2022/cmat-components-json-editor.mjs +118 -75
  44. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  45. package/fesm2022/cmat-components-knob-input.mjs +196 -178
  46. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  47. package/fesm2022/cmat-components-masonry.mjs +26 -41
  48. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  49. package/fesm2022/cmat-components-material-color-picker.mjs +81 -80
  50. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  51. package/fesm2022/cmat-components-material-datetimepicker.mjs +1212 -1287
  52. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  53. package/fesm2022/cmat-components-navigation.mjs +467 -450
  54. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  55. package/fesm2022/cmat-components-opt-input.mjs +143 -132
  56. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  57. package/fesm2022/cmat-components-org-chart.mjs +68 -83
  58. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  59. package/fesm2022/cmat-components-page-header.mjs +18 -24
  60. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  61. package/fesm2022/cmat-components-pagination.mjs +220 -136
  62. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  63. package/fesm2022/cmat-components-password-strength.mjs +262 -215
  64. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  65. package/fesm2022/cmat-components-popover.mjs +227 -195
  66. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  67. package/fesm2022/cmat-components-progress-bar.mjs +15 -34
  68. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  69. package/fesm2022/cmat-components-qrcode.mjs +95 -88
  70. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  71. package/fesm2022/cmat-components-rating.mjs +70 -67
  72. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  73. package/fesm2022/cmat-components-rich-text-editor.mjs +23 -26
  74. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-search.mjs +190 -159
  76. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  77. package/fesm2022/cmat-components-select-table.mjs +276 -213
  78. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  79. package/fesm2022/cmat-components-select-tree.mjs +178 -128
  80. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  81. package/fesm2022/cmat-components-skeleton.mjs +44 -28
  82. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  83. package/fesm2022/cmat-components-speed-dial.mjs +107 -163
  84. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  85. package/fesm2022/cmat-components-status-tag.mjs +29 -36
  86. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  87. package/fesm2022/cmat-components-table-toolbar.mjs +14 -18
  88. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  89. package/fesm2022/cmat-components-timeline.mjs +111 -118
  90. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  91. package/fesm2022/cmat-components-toast.mjs +65 -66
  92. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  93. package/fesm2022/cmat-components-transfer-picker.mjs +130 -160
  94. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  95. package/fesm2022/cmat-components-treetable.mjs +32 -39
  96. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  97. package/fesm2022/cmat-components-upload.mjs +186 -176
  98. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  99. package/fesm2022/cmat-directives-animate-on-scroll.mjs +25 -28
  100. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  101. package/fesm2022/cmat-directives-arrow-cursor.mjs +85 -92
  102. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  103. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  104. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  105. package/fesm2022/cmat-directives-data-exporter.mjs +49 -50
  106. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  107. package/fesm2022/cmat-directives-debounce.mjs +16 -19
  108. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  109. package/fesm2022/cmat-directives-digit-only.mjs +60 -69
  110. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  111. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  112. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  113. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +31 -30
  114. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  115. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  116. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  117. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  118. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  119. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  120. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  121. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  122. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  123. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  124. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  125. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  126. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  127. package/fesm2022/cmat-pipes-secure.mjs +7 -13
  128. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  129. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  130. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  131. package/fesm2022/cmat-services-alert.mjs +26 -27
  132. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  133. package/fesm2022/cmat-services-config.mjs +14 -23
  134. package/fesm2022/cmat-services-config.mjs.map +1 -1
  135. package/fesm2022/cmat-services-confirmation.mjs +8 -8
  136. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  137. package/fesm2022/cmat-services-data.mjs +6 -10
  138. package/fesm2022/cmat-services-data.mjs.map +1 -1
  139. package/fesm2022/cmat-services-export-as.mjs +3 -3
  140. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  141. package/fesm2022/cmat-services-loading.mjs +30 -47
  142. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  143. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  144. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  145. package/fesm2022/cmat-services-media-watcher.mjs +43 -34
  146. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  147. package/fesm2022/cmat-services-platform.mjs +3 -3
  148. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  149. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  150. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  151. package/fesm2022/cmat-services-title.mjs +3 -3
  152. package/fesm2022/cmat-services-title.mjs.map +1 -1
  153. package/fesm2022/cmat-services-translation.mjs +11 -11
  154. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  155. package/fesm2022/cmat-services-utils.mjs +4 -4
  156. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  157. package/fesm2022/cmat.mjs +9229 -7508
  158. package/fesm2022/cmat.mjs.map +1 -1
  159. package/icons/material-icons/heroicons-outline.svg +3 -0
  160. package/icons/material-icons/heroicons-solid.svg +3 -0
  161. package/package.json +10 -1
  162. package/styles/components/bundle.scss +21 -0
  163. package/styles/overrides/angular-material.scss +22 -1
  164. package/tailwind/plugins/theming.js +183 -183
  165. package/types/cmat-components-breadcrumb.d.ts +40 -37
  166. package/types/cmat-components-card.d.ts +11 -13
  167. package/types/cmat-components-carousel.d.ts +87 -113
  168. package/types/cmat-components-cascade.d.ts +84 -65
  169. package/types/cmat-components-chip-input.d.ts +29 -24
  170. package/types/cmat-components-code-editor.d.ts +28 -12
  171. package/types/cmat-components-color-picker.d.ts +236 -0
  172. package/types/cmat-components-custom-formly.d.ts +316 -184
  173. package/types/cmat-components-data-picker.d.ts +372 -0
  174. package/types/cmat-components-date-range.d.ts +31 -36
  175. package/types/cmat-components-date-time-display.d.ts +8 -8
  176. package/types/cmat-components-drawer.d.ts +30 -32
  177. package/types/cmat-components-empty-state.d.ts +9 -10
  178. package/types/cmat-components-file-preview.d.ts +9 -9
  179. package/types/cmat-components-filter-toolbar.d.ts +15 -15
  180. package/types/cmat-components-form-actions.d.ts +5 -5
  181. package/types/cmat-components-fullscreen.d.ts +5 -5
  182. package/types/cmat-components-highlight.d.ts +13 -14
  183. package/types/cmat-components-image-viewer.d.ts +29 -33
  184. package/types/cmat-components-inline-loading.d.ts +6 -6
  185. package/types/cmat-components-json-editor.d.ts +15 -17
  186. package/types/cmat-components-knob-input.d.ts +58 -55
  187. package/types/cmat-components-masonry.d.ts +9 -12
  188. package/types/cmat-components-material-color-picker.d.ts +16 -21
  189. package/types/cmat-components-material-datetimepicker.d.ts +174 -216
  190. package/types/cmat-components-navigation.d.ts +34 -39
  191. package/types/cmat-components-opt-input.d.ts +35 -33
  192. package/types/cmat-components-org-chart.d.ts +8 -9
  193. package/types/cmat-components-page-header.d.ts +9 -9
  194. package/types/cmat-components-pagination.d.ts +36 -40
  195. package/types/cmat-components-password-strength.d.ts +58 -64
  196. package/types/cmat-components-popover.d.ts +22 -32
  197. package/types/cmat-components-progress-bar.d.ts +7 -10
  198. package/types/cmat-components-qrcode.d.ts +22 -22
  199. package/types/cmat-components-rating.d.ts +17 -19
  200. package/types/cmat-components-rich-text-editor.d.ts +11 -12
  201. package/types/cmat-components-select-search.d.ts +48 -36
  202. package/types/cmat-components-select-table.d.ts +38 -34
  203. package/types/cmat-components-select-tree.d.ts +17 -15
  204. package/types/cmat-components-skeleton.d.ts +27 -10
  205. package/types/cmat-components-speed-dial.d.ts +24 -33
  206. package/types/cmat-components-status-tag.d.ts +19 -9
  207. package/types/cmat-components-table-toolbar.d.ts +7 -7
  208. package/types/cmat-components-timeline.d.ts +33 -34
  209. package/types/cmat-components-toast.d.ts +26 -30
  210. package/types/cmat-components-transfer-picker.d.ts +51 -56
  211. package/types/cmat-components-treetable.d.ts +12 -13
  212. package/types/cmat-components-upload.d.ts +33 -38
  213. package/types/cmat-components-x6-angular-shape.d.ts +1 -1
  214. package/types/cmat-directives-animate-on-scroll.d.ts +7 -7
  215. package/types/cmat-directives-arrow-cursor.d.ts +18 -20
  216. package/types/cmat-directives-data-exporter.d.ts +10 -10
  217. package/types/cmat-directives-debounce.d.ts +5 -5
  218. package/types/cmat-directives-digit-only.d.ts +13 -13
  219. package/types/cmat-directives-seamless-auto-scroll.d.ts +7 -7
  220. package/types/cmat-pipes-secure.d.ts +1 -3
  221. package/types/cmat-services-alert.d.ts +11 -12
  222. package/types/cmat-services-config.d.ts +2 -7
  223. package/types/cmat-services-confirmation.d.ts +2 -2
  224. package/types/cmat-services-data.d.ts +0 -1
  225. package/types/cmat-services-loading.d.ts +14 -22
  226. package/types/cmat-services-media-watcher.d.ts +5 -5
  227. package/types/cmat-services-translation.d.ts +4 -5
  228. package/types/cmat.d.ts +2167 -1746
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-password-strength.mjs","sources":["../../../projects/cmat/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.ts","../../../projects/cmat/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.html","../../../projects/cmat/components/password-strength/enum.ts","../../../projects/cmat/components/password-strength/mat-password-strength-validator.ts","../../../projects/cmat/components/password-strength/regexp.class.ts","../../../projects/cmat/components/password-strength/mat-password-strength/mat-password-strength.component.ts","../../../projects/cmat/components/password-strength/mat-password-strength/mat-password-strength.component.html","../../../projects/cmat/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.ts","../../../projects/cmat/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.html","../../../projects/cmat/components/password-strength/cmat-components-password-strength.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\ntype Type = 'text' | 'password';\r\n\r\n@Component({\r\n selector: 'cmat-pass-toggle-visibility',\r\n templateUrl: './mat-pass-toggle-visibility.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatPassToggleVisibility',\r\n imports: [MatButtonModule, MatRippleModule, MatIconModule]\r\n})\r\nexport class CmatPassToggleVisibilityComponent {\r\n @Input()\r\n isVisible: boolean;\r\n @Input()\r\n tabindex?: string;\r\n\r\n _type: Type = 'text';\r\n\r\n get type(): string {\r\n return this.isVisible ? 'text' : 'password';\r\n }\r\n\r\n}\r\n","<button type=\"button\" class=\"matIconButton cdk-focused cdk-mouse-focused\" matIconButton \r\n matRipple [matRippleCentered]=\"true\" [attr.tabindex]=\"tabindex ? tabindex : null\" (click)=\"isVisible = !isVisible\">\r\n <mat-icon svgIcon=\"{{isVisible ? 'mat_outline:visibility' : 'mat_outline:visibility_off' }}\"></mat-icon>\r\n</button>","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport enum Colors {\r\n primary = 'primary',\r\n accent = 'accent',\r\n warn = 'warn'\r\n}\r\n\r\nexport enum Criteria {\r\n at_least_eight_chars = 'minChar',\r\n at_least_one_lower_case_char = 'lowerCase',\r\n at_least_one_upper_case_char = 'upperCase',\r\n at_least_one_digit_char = 'digit',\r\n at_least_one_special_char = ' specialChar',\r\n at_custom_chars = 'customChars'\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class CmatPasswordStrengthValidator {\r\n isUndefinedOrEmpty(control: AbstractControl): void {\r\n const value = typeof control.value === 'string' ? control.value : '';\r\n\r\n if (!value || value.length === 0) {\r\n return void 0;\r\n }\r\n }\r\n\r\n validate(criteria: string, regex: RegExp): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n this.isUndefinedOrEmpty(control);\r\n const value = typeof control.value === 'string' ? control.value : '';\r\n\r\n if (!regex.test(value)) {\r\n const failed: ValidationErrors = {};\r\n failed[criteria] = {\r\n actualValue: value,\r\n requiredPattern: regex\r\n };\r\n return failed;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n confirm(password: string): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n this.isUndefinedOrEmpty(control);\r\n const value = typeof control.value === 'string' ? control.value : '';\r\n\r\n if (value !== password) {\r\n return {\r\n notConfirmed: {\r\n password: password,\r\n passwordConfirmation: value\r\n }\r\n };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n}\r\n","// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const RegExpValidator = {\r\n 'lowerCase': RegExp(/^(?=.*?[a-z])/),\r\n 'upperCase': RegExp(/^(?=.*?[A-Z])/),\r\n 'digit': RegExp(/^(?=.*?[0-9])/),\r\n 'specialChar': RegExp(/^(?=.*?[\" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\"])/),\r\n};\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { Colors, Criteria } from '../enum';\r\nimport { CmatPasswordStrengthValidator } from '../mat-password-strength-validator';\r\nimport { RegExpValidator } from '../regexp.class';\r\n\r\n@Component({\r\n selector: 'cmat-password-strength',\r\n exportAs: 'cmatPasswordStrength',\r\n templateUrl: './mat-password-strength.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatProgressBarModule]\r\n})\r\nexport class CmatPasswordStrengthComponent implements OnInit, OnChanges {\r\n @Input() password: string;\r\n @Input() externalError: boolean;\r\n\r\n @Input() enableLengthRule = true;\r\n @Input() enableLowerCaseLetterRule = true;\r\n @Input() enableUpperCaseLetterRule = true;\r\n @Input() enableDigitRule = true;\r\n @Input() enableSpecialCharRule = true;\r\n\r\n @Input() min = 8;\r\n @Input() max = 30;\r\n @Input() customValidator: RegExp;\r\n\r\n @Input() warnThreshold = 21;\r\n @Input() accentThreshold = 81;\r\n\r\n @Output()\r\n strengthChanged = new EventEmitter<number>();\r\n\r\n criteriaMap = new Map<Criteria, RegExp>();\r\n\r\n containAtLeastMinChars: boolean | void;\r\n containAtLeastOneLowerCaseLetter: boolean | void;\r\n containAtLeastOneUpperCaseLetter: boolean | void;\r\n containAtLeastOneDigit: boolean | void;\r\n containAtLeastOneSpecialChar: boolean | void;\r\n containAtCustomChars: boolean | void;\r\n passwordFormControl: FormControl = new FormControl();\r\n passwordConfirmationFormControl: FormControl = new FormControl();\r\n\r\n validatorsArray: ValidatorFn[] = [];\r\n validators: ValidatorFn | null;\r\n cmatPasswordStrengthValidator = new CmatPasswordStrengthValidator();\r\n\r\n private _strength = 0;\r\n private _color: ThemePalette = 'warn';\r\n\r\n get strength(): number {\r\n return this._strength ? this._strength : 0;\r\n }\r\n get color(): ThemePalette {\r\n return this._color;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setRulesAndValidators();\r\n\r\n if (this.password) {\r\n this.calculatePasswordStrength();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ((changes['externalError']?.firstChange) || (changes['password']?.isFirstChange())) {\r\n return;\r\n } else if (changes['externalError']?.currentValue) {\r\n this._color = Colors.warn;\r\n return;\r\n } else if (changes['password'] && changes['password'].previousValue === changes['password'].currentValue && !changes['password'].firstChange) {\r\n this._checkPassword();\r\n } else if (this.password && this.password.length > 0) {\r\n this._checkPassword();\r\n } else {\r\n this.reset();\r\n }\r\n }\r\n\r\n parseCustomValidatorsRegex(): RegExp {\r\n if (this.customValidator instanceof RegExp) {\r\n return this.customValidator;\r\n } else {\r\n return RegExp(this.customValidator);\r\n }\r\n }\r\n\r\n setRulesAndValidators(): void {\r\n this.validatorsArray = [];\r\n this.criteriaMap = new Map<Criteria, RegExp>();\r\n this.passwordConfirmationFormControl\r\n .setValidators(Validators.compose([\r\n Validators.required, this.cmatPasswordStrengthValidator.confirm(this.password)\r\n ]));\r\n this.validatorsArray.push(Validators.required);\r\n if (this.enableLengthRule) {\r\n this.criteriaMap.set(Criteria.at_least_eight_chars, RegExp(`^.{${this.min},${this.max}}$`));\r\n this.validatorsArray.push(Validators.minLength(this.min));\r\n this.validatorsArray.push(Validators.maxLength(this.max));\r\n }\r\n if (this.enableLowerCaseLetterRule) {\r\n this.criteriaMap.set(Criteria.at_least_one_lower_case_char, RegExpValidator.lowerCase);\r\n this.validatorsArray.push(Validators.pattern(RegExpValidator.lowerCase));\r\n }\r\n if (this.enableUpperCaseLetterRule) {\r\n this.criteriaMap.set(Criteria.at_least_one_upper_case_char, RegExpValidator.upperCase);\r\n this.validatorsArray.push(Validators.pattern(RegExpValidator.upperCase));\r\n }\r\n if (this.enableDigitRule) {\r\n this.criteriaMap.set(Criteria.at_least_one_digit_char, RegExpValidator.digit);\r\n this.validatorsArray.push(Validators.pattern(RegExpValidator.digit));\r\n }\r\n if (this.enableSpecialCharRule) {\r\n this.criteriaMap.set(Criteria.at_least_one_special_char, RegExpValidator.specialChar);\r\n this.validatorsArray.push(Validators.pattern(RegExpValidator.specialChar));\r\n }\r\n if (this.customValidator) {\r\n this.criteriaMap.set(Criteria.at_custom_chars, this.parseCustomValidatorsRegex());\r\n this.validatorsArray.push(Validators.pattern(this.parseCustomValidatorsRegex()));\r\n }\r\n\r\n this.criteriaMap.forEach((value: RegExp, key: Criteria) => {\r\n this.validatorsArray.push(this.cmatPasswordStrengthValidator.validate(key, value));\r\n });\r\n\r\n this.passwordFormControl.setValidators(Validators.compose([...this.validatorsArray]));\r\n this.validators = Validators.compose([...this.validatorsArray]);\r\n\r\n }\r\n\r\n calculatePasswordStrength(): void {\r\n const requirements: boolean[] = [];\r\n const unit = 100 / this.criteriaMap.size;\r\n\r\n requirements.push(\r\n this.enableLengthRule ? this._containAtLeastMinChars() : false,\r\n this.enableLowerCaseLetterRule ? this._containAtLeastOneLowerCaseLetter() : false,\r\n this.enableUpperCaseLetterRule ? this._containAtLeastOneUpperCaseLetter() : false,\r\n this.enableDigitRule ? this._containAtLeastOneDigit() : false,\r\n this.enableSpecialCharRule ? this._containAtLeastOneSpecialChar() : false,\r\n this.customValidator ? this._containCustomChars() : false\r\n );\r\n\r\n this._strength = requirements.filter(v => v).length * unit;\r\n this.strengthChanged.emit(this.strength);\r\n this.setRulesAndValidators();\r\n\r\n if (this._strength < this.warnThreshold) {\r\n this._color = Colors.warn;\r\n } else if (this._strength < this.accentThreshold) {\r\n this._color = Colors.accent;\r\n } else {\r\n this._color = Colors.primary;\r\n }\r\n }\r\n\r\n reset(): void {\r\n this._strength = 0;\r\n this.containAtLeastMinChars =\r\n this.containAtLeastOneLowerCaseLetter =\r\n this.containAtLeastOneUpperCaseLetter =\r\n this.containAtLeastOneDigit =\r\n this.containAtCustomChars =\r\n this.containAtLeastOneSpecialChar = false;\r\n\r\n this._color = Colors.warn;\r\n this.strengthChanged.emit(this.strength);\r\n }\r\n\r\n private _containAtLeastMinChars(): boolean {\r\n this.containAtLeastMinChars = this.password.length >= this.min;\r\n return this.containAtLeastMinChars;\r\n }\r\n\r\n private _containAtLeastOneLowerCaseLetter(): boolean {\r\n this.containAtLeastOneLowerCaseLetter =\r\n this.criteriaMap\r\n .get(Criteria.at_least_one_lower_case_char)?.test(this.password);\r\n return this.containAtLeastOneLowerCaseLetter ?? false;\r\n }\r\n\r\n private _containAtLeastOneUpperCaseLetter(): boolean {\r\n this.containAtLeastOneUpperCaseLetter =\r\n this.criteriaMap\r\n .get(Criteria.at_least_one_upper_case_char)?.test(this.password);\r\n return this.containAtLeastOneUpperCaseLetter ?? false;\r\n }\r\n\r\n private _containAtLeastOneDigit(): boolean {\r\n this.containAtLeastOneDigit =\r\n this.criteriaMap\r\n .get(Criteria.at_least_one_digit_char)?.test(this.password);\r\n return this.containAtLeastOneDigit ?? false;\r\n }\r\n\r\n private _containAtLeastOneSpecialChar(): boolean {\r\n this.containAtLeastOneSpecialChar =\r\n this.criteriaMap\r\n .get(Criteria.at_least_one_special_char)?.test(this.password);\r\n return this.containAtLeastOneSpecialChar ?? false;\r\n }\r\n\r\n private _containCustomChars(): boolean {\r\n this.containAtCustomChars =\r\n this.criteriaMap\r\n .get(Criteria.at_custom_chars)?.test(this.password);\r\n return this.containAtCustomChars ?? false;\r\n }\r\n\r\n private _checkPassword(): void {\r\n this.calculatePasswordStrength();\r\n this.passwordConfirmationFormControl.updateValueAndValidity();\r\n }\r\n}\r\n","<mat-progress-bar mode=\"determinate\" [color]=\"color\" [value]=\"strength\"></mat-progress-bar>","import { AfterViewInit, Component, Input, OnInit, signal, ViewEncapsulation } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatPasswordStrengthComponent } from '../mat-password-strength/mat-password-strength.component';\r\n\r\n@Component({\r\n selector: 'cmat-password-strength-info',\r\n exportAs: 'cmatPasswordStrengthInfo',\r\n templateUrl: './mat-password-strength-info.component.html',\r\n styleUrls: ['./mat-password-strength-info.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [MatCardModule, MatIconModule]\r\n})\r\nexport class CmatPasswordStrengthInfoComponent implements OnInit, AfterViewInit {\r\n\r\n @Input()\r\n passwordComponent: CmatPasswordStrengthComponent;\r\n\r\n @Input()\r\n enableScoreInfo:boolean = false;\r\n\r\n @Input()\r\n lowerCaseCriteriaMsg: string = '包含至少一个小写字母';\r\n\r\n @Input()\r\n upperCaseCriteriaMsg: string = '包含至少一个大写字母';\r\n\r\n @Input()\r\n digitsCriteriaMsg: string = '包含至少一个数字';\r\n\r\n @Input()\r\n specialCharsCriteriaMsg: string = '包含至少一个特殊字符';\r\n\r\n @Input()\r\n customCharsCriteriaMsg: string = '包含至少一个传统字符';\r\n\r\n @Input()\r\n minCharsCriteriaMsg: string;\r\n\r\n readonly pageLoaded = signal(false);\r\n ngOnInit(): void {\r\n if (!this.minCharsCriteriaMsg) {\r\n this.minCharsCriteriaMsg = `包含至少 ${this.passwordComponent.min} 个字符`;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.pageLoaded.set(true);\r\n }, 100);\r\n }\r\n getEnterIndex(itemType: string): number {\r\n const enabledItems: string[] = [];\r\n\r\n if (this.passwordComponent.enableLowerCaseLetterRule) {\r\n enabledItems.push('lowerCase');\r\n }\r\n if (this.passwordComponent.enableUpperCaseLetterRule) {\r\n enabledItems.push('upperCase');\r\n }\r\n if (this.passwordComponent.enableDigitRule) {\r\n enabledItems.push('digit');\r\n }\r\n if (this.passwordComponent.enableSpecialCharRule) {\r\n enabledItems.push('specialChar');\r\n }\r\n if (this.passwordComponent.enableLengthRule) {\r\n enabledItems.push('length');\r\n }\r\n if (this.passwordComponent.customValidator) {\r\n enabledItems.push('custom');\r\n }\r\n if (this.enableScoreInfo) {\r\n enabledItems.push('score');\r\n }\r\n\r\n return enabledItems.findIndex(i=>i===itemType);\r\n }\r\n\r\n getLeaveIndex(itemType: string): number {\r\n const enabledItems: string[] = [];\r\n\r\n if (this.passwordComponent.enableLowerCaseLetterRule) {\r\n enabledItems.push('lowerCase');\r\n }\r\n if (this.passwordComponent.enableUpperCaseLetterRule) {\r\n enabledItems.push('upperCase');\r\n }\r\n if (this.passwordComponent.enableDigitRule) {\r\n enabledItems.push('digit');\r\n }\r\n if (this.passwordComponent.enableSpecialCharRule) {\r\n enabledItems.push('specialChar');\r\n }\r\n if (this.passwordComponent.enableLengthRule) {\r\n enabledItems.push('length');\r\n }\r\n if (this.passwordComponent.customValidator) {\r\n enabledItems.push('custom');\r\n }\r\n if (this.enableScoreInfo) {\r\n enabledItems.push('score');\r\n }\r\n\r\n return enabledItems.length - enabledItems.findIndex(j=>j===itemType) - 1;\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<mat-card class=\"info-card\">\r\n <mat-card-content>\r\n @if (passwordComponent.enableLowerCaseLetterRule) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('lowerCase')\" [style.--leave-item-index]=\"getLeaveIndex('lowerCase')\">\r\n @if (passwordComponent.containAtLeastOneLowerCaseLetter) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{lowerCaseCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableUpperCaseLetterRule) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('upperCase')\" [style.--leave-item-index]=\"getLeaveIndex('upperCase')\">\r\n @if (passwordComponent.containAtLeastOneUpperCaseLetter) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{upperCaseCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableDigitRule) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('digit')\" [style.--leave-item-index]=\"getLeaveIndex('digit')\">\r\n @if (passwordComponent.containAtLeastOneDigit) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{digitsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableSpecialCharRule) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('specialChar')\"\r\n [style.--leave-item-index]=\"getLeaveIndex('specialChar')\">\r\n @if (passwordComponent.containAtLeastOneSpecialChar) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{specialCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableLengthRule) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('length')\" [style.--leave-item-index]=\"getLeaveIndex('length')\">\r\n @if (passwordComponent.containAtLeastMinChars) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{minCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.customValidator) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('custom')\" [style.--leave-item-index]=\"getLeaveIndex('custom')\">\r\n @if (passwordComponent.containAtCustomChars) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded\"></mat-icon>\r\n }\r\n <span>{{customCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (enableScoreInfo) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('score')\" [style.--leave-item-index]=\"getLeaveIndex('score')\">\r\n @if (passwordComponent.strength === 100) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded\"></mat-icon>\r\n }\r\n <span>瀵嗙爜寮哄害= {{passwordComponent.strength}} %100</span>\r\n </div>\r\n }\r\n\r\n </mat-card-content>\r\n<!-- eslint-enable @angular-eslint/template/no-inline-styles -->\r\n</mat-card>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-password-strength.mjs","sources":["../../../projects/cmat/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.ts","../../../projects/cmat/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.html","../../../projects/cmat/components/password-strength/enum.ts","../../../projects/cmat/components/password-strength/mat-password-strength-validator.ts","../../../projects/cmat/components/password-strength/regexp.class.ts","../../../projects/cmat/components/password-strength/mat-password-strength/mat-password-strength.component.ts","../../../projects/cmat/components/password-strength/mat-password-strength/mat-password-strength.component.html","../../../projects/cmat/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.ts","../../../projects/cmat/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.html","../../../projects/cmat/components/password-strength/cmat-components-password-strength.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\ntype Type = 'text' | 'password';\r\n\r\n@Component({\r\n selector: 'cmat-pass-toggle-visibility',\r\n templateUrl: './mat-pass-toggle-visibility.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatPassToggleVisibility',\r\n imports: [MatButtonModule, MatRippleModule, MatIconModule]\r\n})\r\nexport class CmatPassToggleVisibilityComponent {\r\n readonly isVisible = input<boolean>(false);\r\n readonly isVisibleChange = output<boolean>();\r\n readonly tabindex = input<string>();\r\n\r\n private readonly _type: Type = 'text';\r\n\r\n get type(): string {\r\n return this.isVisible() ? 'text' : 'password';\r\n }\r\n\r\n toggleVisibility(): void {\r\n const newValue = !this.isVisible();\r\n this.isVisibleChange.emit(newValue);\r\n }\r\n}\r\n","<button type=\"button\" class=\"matIconButton cdk-focused cdk-mouse-focused\" matIconButton \r\n matRipple [matRippleCentered]=\"true\" [attr.tabindex]=\"tabindex() ? tabindex() : null\" (click)=\"toggleVisibility()\">\r\n <mat-icon svgIcon=\"{{isVisible() ? 'mat_outline:visibility' : 'mat_outline:visibility_off' }}\"></mat-icon>\r\n</button>\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport enum Colors {\r\n primary = 'primary',\r\n accent = 'accent',\r\n warn = 'warn'\r\n}\r\n\r\nexport enum Criteria {\r\n at_least_eight_chars = 'minChar',\r\n at_least_one_lower_case_char = 'lowerCase',\r\n at_least_one_upper_case_char = 'upperCase',\r\n at_least_one_digit_char = 'digit',\r\n at_least_one_special_char = ' specialChar',\r\n at_custom_chars = 'customChars'\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class CmatPasswordStrengthValidator {\r\n isUndefinedOrEmpty(control: AbstractControl): void {\r\n const value = typeof control.value === 'string' ? control.value : '';\r\n\r\n if (!value || value.length === 0) {\r\n return void 0;\r\n }\r\n }\r\n\r\n validate(criteria: string, regex: RegExp): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n this.isUndefinedOrEmpty(control);\r\n const value = typeof control.value === 'string' ? control.value : '';\r\n\r\n if (!regex.test(value)) {\r\n const failed: ValidationErrors = {};\r\n failed[criteria] = {\r\n actualValue: value,\r\n requiredPattern: regex\r\n };\r\n return failed;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n confirm(password: string): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n this.isUndefinedOrEmpty(control);\r\n const value = typeof control.value === 'string' ? control.value : '';\r\n\r\n if (value !== password) {\r\n return {\r\n notConfirmed: {\r\n password: password,\r\n passwordConfirmation: value\r\n }\r\n };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n}\r\n","// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const RegExpValidator = {\r\n 'lowerCase': RegExp(/^(?=.*?[a-z])/),\r\n 'upperCase': RegExp(/^(?=.*?[A-Z])/),\r\n 'digit': RegExp(/^(?=.*?[0-9])/),\r\n 'specialChar': RegExp(/^(?=.*?[\" !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\"])/),\r\n};\r\n","import { ChangeDetectionStrategy, Component, input, output, signal, computed, effect, ViewEncapsulation, untracked } from '@angular/core';\r\nimport { FormControl, ValidatorFn, Validators } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { Colors, Criteria } from '../enum';\r\nimport { CmatPasswordStrengthValidator } from '../mat-password-strength-validator';\r\nimport { RegExpValidator } from '../regexp.class';\r\n\r\n@Component({\r\n selector: 'cmat-password-strength',\r\n exportAs: 'cmatPasswordStrength',\r\n templateUrl: './mat-password-strength.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatProgressBarModule]\r\n})\r\nexport class CmatPasswordStrengthComponent {\r\n readonly password = input<string>('');\r\n readonly externalError = input<boolean>(false);\r\n\r\n readonly enableLengthRule = input<boolean>(true);\r\n readonly enableLowerCaseLetterRule = input<boolean>(true);\r\n readonly enableUpperCaseLetterRule = input<boolean>(true);\r\n readonly enableDigitRule = input<boolean>(true);\r\n readonly enableSpecialCharRule = input<boolean>(true);\r\n\r\n readonly min = input<number>(8);\r\n readonly max = input<number>(30);\r\n readonly customValidator = input<RegExp>();\r\n\r\n readonly warnThreshold = input<number>(21);\r\n readonly accentThreshold = input<number>(81);\r\n\r\n readonly strengthChanged = output<number>();\r\n\r\n readonly criteriaMap = signal(new Map<Criteria, RegExp>());\r\n\r\n readonly containAtLeastMinChars = signal<boolean | void>(false);\r\n readonly containAtLeastOneLowerCaseLetter = signal<boolean | void>(false);\r\n readonly containAtLeastOneUpperCaseLetter = signal<boolean | void>(false);\r\n readonly containAtLeastOneDigit = signal<boolean | void>(false);\r\n readonly containAtLeastOneSpecialChar = signal<boolean | void>(false);\r\n readonly containAtCustomChars = signal<boolean | void>(false);\r\n\r\n readonly passwordFormControl = new FormControl();\r\n readonly passwordConfirmationFormControl = new FormControl();\r\n\r\n readonly validatorsArray = signal<ValidatorFn[]>([]);\r\n readonly validators = signal<ValidatorFn | null>(null);\r\n\r\n readonly strength = computed(() => this._strength() || 0);\r\n readonly color = computed(() => this._color());\r\n\r\n private readonly cmatPasswordStrengthValidator = new CmatPasswordStrengthValidator();\r\n\r\n private readonly _strength = signal(0);\r\n private readonly _color = signal<ThemePalette>('warn');\r\n private _isProcessingEffect = false;\r\n\r\n constructor() {\r\n // 初始化时设置一次验证器\r\n this.setRulesAndValidators();\r\n\r\n effect(() => {\r\n if (this._isProcessingEffect) {\r\n return;\r\n }\r\n\r\n const pwd = this.password();\r\n\r\n untracked(() => {\r\n // 密码为空时重置\r\n if (!pwd || pwd.length === 0) {\r\n this.reset();\r\n return;\r\n }\r\n\r\n // 密码存在时计算强度(不重建验证器)\r\n this.calculatePasswordStrength(false);\r\n });\r\n });\r\n\r\n effect(() => {\r\n if (this._isProcessingEffect) {\r\n return;\r\n }\r\n\r\n const extError = this.externalError();\r\n\r\n if (extError) {\r\n this._color.set(Colors.warn);\r\n }\r\n });\r\n\r\n // 监听配置变化,重新构建验证器\r\n effect(() => {\r\n if (this._isProcessingEffect) {\r\n return;\r\n }\r\n\r\n // 读取所有配置项,任何一项变化都会触发此 effect\r\n this.enableLengthRule();\r\n this.enableLowerCaseLetterRule();\r\n this.enableUpperCaseLetterRule();\r\n this.enableDigitRule();\r\n this.enableSpecialCharRule();\r\n this.min();\r\n this.max();\r\n this.customValidator();\r\n\r\n untracked(() => {\r\n // 配置变化时重新构建验证器\r\n this.setRulesAndValidators();\r\n\r\n // 如果当前有密码,重新计算强度\r\n const pwd = this.password();\r\n if (pwd && pwd.length > 0) {\r\n this.calculatePasswordStrength(false);\r\n }\r\n });\r\n });\r\n }\r\n\r\n parseCustomValidatorsRegex(): RegExp {\r\n const validator = this.customValidator();\r\n if (validator instanceof RegExp) {\r\n return validator;\r\n } else {\r\n return RegExp(validator as unknown as string);\r\n }\r\n }\r\n\r\n setRulesAndValidators(): void {\r\n this.validatorsArray.set([]);\r\n this.criteriaMap.set(new Map<Criteria, RegExp>());\r\n\r\n this.passwordConfirmationFormControl\r\n .setValidators(Validators.compose([\r\n Validators.required, this.cmatPasswordStrengthValidator.confirm(this.password())\r\n ]));\r\n\r\n const validators: ValidatorFn[] = [Validators.required];\r\n\r\n if (this.enableLengthRule()) {\r\n this.criteriaMap().set(Criteria.at_least_eight_chars, RegExp(`^.{${this.min()},${this.max()}}$`));\r\n validators.push(Validators.minLength(this.min()));\r\n validators.push(Validators.maxLength(this.max()));\r\n }\r\n if (this.enableLowerCaseLetterRule()) {\r\n this.criteriaMap().set(Criteria.at_least_one_lower_case_char, RegExpValidator.lowerCase);\r\n validators.push(Validators.pattern(RegExpValidator.lowerCase));\r\n }\r\n if (this.enableUpperCaseLetterRule()) {\r\n this.criteriaMap().set(Criteria.at_least_one_upper_case_char, RegExpValidator.upperCase);\r\n validators.push(Validators.pattern(RegExpValidator.upperCase));\r\n }\r\n if (this.enableDigitRule()) {\r\n this.criteriaMap().set(Criteria.at_least_one_digit_char, RegExpValidator.digit);\r\n validators.push(Validators.pattern(RegExpValidator.digit));\r\n }\r\n if (this.enableSpecialCharRule()) {\r\n this.criteriaMap().set(Criteria.at_least_one_special_char, RegExpValidator.specialChar);\r\n validators.push(Validators.pattern(RegExpValidator.specialChar));\r\n }\r\n if (this.customValidator()) {\r\n this.criteriaMap().set(Criteria.at_custom_chars, this.parseCustomValidatorsRegex());\r\n validators.push(Validators.pattern(this.parseCustomValidatorsRegex()));\r\n }\r\n\r\n this.criteriaMap().forEach((value: RegExp, key: Criteria) => {\r\n validators.push(this.cmatPasswordStrengthValidator.validate(key, value));\r\n });\r\n\r\n this.passwordFormControl.setValidators(Validators.compose([...validators]));\r\n this.validatorsArray.set(validators);\r\n this.validators.set(Validators.compose([...validators]));\r\n }\r\n\r\n calculatePasswordStrength(rebuildValidators: boolean = false): void {\r\n try {\r\n this._isProcessingEffect = true;\r\n\r\n // 如果需要重建验证器(仅在配置变化时)\r\n if (rebuildValidators) {\r\n this.setRulesAndValidators();\r\n }\r\n\r\n const requirements: boolean[] = [];\r\n const unit = 100 / this.criteriaMap().size;\r\n\r\n requirements.push(\r\n this.enableLengthRule() ? this._containAtLeastMinChars() : false,\r\n this.enableLowerCaseLetterRule() ? this._containAtLeastOneLowerCaseLetter() : false,\r\n this.enableUpperCaseLetterRule() ? this._containAtLeastOneUpperCaseLetter() : false,\r\n this.enableDigitRule() ? this._containAtLeastOneDigit() : false,\r\n this.enableSpecialCharRule() ? this._containAtLeastOneSpecialChar() : false,\r\n this.customValidator() ? this._containCustomChars() : false\r\n );\r\n\r\n this._strength.set(requirements.filter(v => v).length * unit);\r\n this.strengthChanged.emit(this.strength());\r\n\r\n const currentStrength = this._strength();\r\n if (currentStrength < this.warnThreshold()) {\r\n this._color.set(Colors.warn);\r\n } else if (currentStrength < this.accentThreshold()) {\r\n this._color.set(Colors.accent);\r\n } else {\r\n this._color.set(Colors.primary);\r\n }\r\n } finally {\r\n this._isProcessingEffect = false;\r\n }\r\n }\r\n\r\n reset(): void {\r\n try {\r\n this._isProcessingEffect = true;\r\n\r\n this._strength.set(0);\r\n this.containAtLeastMinChars.set(false);\r\n this.containAtLeastOneLowerCaseLetter.set(false);\r\n this.containAtLeastOneUpperCaseLetter.set(false);\r\n this.containAtLeastOneDigit.set(false);\r\n this.containAtCustomChars.set(false);\r\n this.containAtLeastOneSpecialChar.set(false);\r\n\r\n this._color.set(Colors.warn);\r\n this.strengthChanged.emit(this.strength());\r\n } finally {\r\n this._isProcessingEffect = false;\r\n }\r\n }\r\n\r\n private _containAtLeastMinChars(): boolean {\r\n const result = this.password().length >= this.min();\r\n this.containAtLeastMinChars.set(result);\r\n return result;\r\n }\r\n\r\n private _containAtLeastOneLowerCaseLetter(): boolean {\r\n const result = this.criteriaMap()\r\n .get(Criteria.at_least_one_lower_case_char)?.test(this.password());\r\n this.containAtLeastOneLowerCaseLetter.set(result);\r\n return result ?? false;\r\n }\r\n\r\n private _containAtLeastOneUpperCaseLetter(): boolean {\r\n const result = this.criteriaMap()\r\n .get(Criteria.at_least_one_upper_case_char)?.test(this.password());\r\n this.containAtLeastOneUpperCaseLetter.set(result);\r\n return result ?? false;\r\n }\r\n\r\n private _containAtLeastOneDigit(): boolean {\r\n const result = this.criteriaMap()\r\n .get(Criteria.at_least_one_digit_char)?.test(this.password());\r\n this.containAtLeastOneDigit.set(result);\r\n return result ?? false;\r\n }\r\n\r\n private _containAtLeastOneSpecialChar(): boolean {\r\n const result = this.criteriaMap()\r\n .get(Criteria.at_least_one_special_char)?.test(this.password());\r\n this.containAtLeastOneSpecialChar.set(result);\r\n return result ?? false;\r\n }\r\n\r\n private _containCustomChars(): boolean {\r\n const result = this.criteriaMap()\r\n .get(Criteria.at_custom_chars)?.test(this.password());\r\n this.containAtCustomChars.set(result);\r\n return result ?? false;\r\n }\r\n\r\n private _checkPassword(): void {\r\n this.calculatePasswordStrength();\r\n this.passwordConfirmationFormControl.updateValueAndValidity();\r\n }\r\n}\r\n","<mat-progress-bar mode=\"determinate\" [color]=\"color()\" [value]=\"strength()\"></mat-progress-bar>","import { Component, input, signal, ViewEncapsulation } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatPasswordStrengthComponent } from '../mat-password-strength/mat-password-strength.component';\r\n\r\n@Component({\r\n selector: 'cmat-password-strength-info',\r\n exportAs: 'cmatPasswordStrengthInfo',\r\n templateUrl: './mat-password-strength-info.component.html',\r\n styleUrls: ['./mat-password-strength-info.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [MatCardModule, MatIconModule]\r\n})\r\nexport class CmatPasswordStrengthInfoComponent {\r\n\r\n readonly passwordComponent = input.required<CmatPasswordStrengthComponent>();\r\n readonly enableScoreInfo = input<boolean>(false);\r\n\r\n readonly lowerCaseCriteriaMsg = input<string>('包含至少一个小写字母');\r\n readonly upperCaseCriteriaMsg = input<string>('包含至少一个大写字母');\r\n readonly digitsCriteriaMsg = input<string>('包含至少一个数字');\r\n readonly specialCharsCriteriaMsg = input<string>('包含至少一个特殊字符');\r\n readonly customCharsCriteriaMsg = input<string>('包含至少一个传统字符');\r\n readonly minCharsCriteriaMsg = input<string>();\r\n\r\n readonly pageLoaded = signal(false);\r\n\r\n constructor() {\r\n setTimeout(() => {\r\n this.pageLoaded.set(true);\r\n }, 100);\r\n }\r\n\r\n getMinCharsMsg(): string {\r\n return this.minCharsCriteriaMsg() ?? `包含至少 ${this.passwordComponent().min()} 个字符`;\r\n }\r\n\r\n getEnterIndex(itemType: string): number {\r\n const enabledItems: string[] = [];\r\n\r\n if (this.passwordComponent().enableLowerCaseLetterRule()) {\r\n enabledItems.push('lowerCase');\r\n }\r\n if (this.passwordComponent().enableUpperCaseLetterRule()) {\r\n enabledItems.push('upperCase');\r\n }\r\n if (this.passwordComponent().enableDigitRule()) {\r\n enabledItems.push('digit');\r\n }\r\n if (this.passwordComponent().enableSpecialCharRule()) {\r\n enabledItems.push('specialChar');\r\n }\r\n if (this.passwordComponent().enableLengthRule()) {\r\n enabledItems.push('length');\r\n }\r\n if (this.passwordComponent().customValidator()) {\r\n enabledItems.push('custom');\r\n }\r\n if (this.enableScoreInfo()) {\r\n enabledItems.push('score');\r\n }\r\n\r\n return enabledItems.findIndex(i => i === itemType);\r\n }\r\n\r\n getLeaveIndex(itemType: string): number {\r\n const enabledItems: string[] = [];\r\n\r\n if (this.passwordComponent().enableLowerCaseLetterRule()) {\r\n enabledItems.push('lowerCase');\r\n }\r\n if (this.passwordComponent().enableUpperCaseLetterRule()) {\r\n enabledItems.push('upperCase');\r\n }\r\n if (this.passwordComponent().enableDigitRule()) {\r\n enabledItems.push('digit');\r\n }\r\n if (this.passwordComponent().enableSpecialCharRule()) {\r\n enabledItems.push('specialChar');\r\n }\r\n if (this.passwordComponent().enableLengthRule()) {\r\n enabledItems.push('length');\r\n }\r\n if (this.passwordComponent().customValidator()) {\r\n enabledItems.push('custom');\r\n }\r\n if (this.enableScoreInfo()) {\r\n enabledItems.push('score');\r\n }\r\n\r\n return enabledItems.length - enabledItems.findIndex(j => j === itemType) - 1;\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<mat-card class=\"info-card\">\r\n <mat-card-content>\r\n @if (passwordComponent().enableLowerCaseLetterRule()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('lowerCase')\" [style.--leave-item-index]=\"getLeaveIndex('lowerCase')\">\r\n @if (passwordComponent().containAtLeastOneLowerCaseLetter()) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{lowerCaseCriteriaMsg()}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent().enableUpperCaseLetterRule()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('upperCase')\" [style.--leave-item-index]=\"getLeaveIndex('upperCase')\">\r\n @if (passwordComponent().containAtLeastOneUpperCaseLetter()) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{upperCaseCriteriaMsg()}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent().enableDigitRule()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('digit')\" [style.--leave-item-index]=\"getLeaveIndex('digit')\">\r\n @if (passwordComponent().containAtLeastOneDigit()) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{digitsCriteriaMsg()}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent().enableSpecialCharRule()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('specialChar')\"\r\n [style.--leave-item-index]=\"getLeaveIndex('specialChar')\">\r\n @if (passwordComponent().containAtLeastOneSpecialChar()) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{specialCharsCriteriaMsg()}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent().enableLengthRule()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('length')\" [style.--leave-item-index]=\"getLeaveIndex('length')\">\r\n @if (passwordComponent().containAtLeastMinChars()) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{getMinCharsMsg()}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent().customValidator()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('custom')\" [style.--leave-item-index]=\"getLeaveIndex('custom')\">\r\n @if (passwordComponent().containAtCustomChars()) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>{{customCharsCriteriaMsg()}}</span>\r\n </div>\r\n }\r\n\r\n @if (enableScoreInfo()) {\r\n <div class=\"info-row info-row-enter\" animate.leave=\"info-row-leave\"\r\n [style.--enter-item-index]=\"getEnterIndex('score')\" [style.--leave-item-index]=\"getLeaveIndex('score')\">\r\n @if (passwordComponent().strength() === 100) {\r\n <mat-icon animate.enter=\"flip-in-x-animation\" color=\"primary\" svgIcon=\"mat_outline:done\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n } @else {\r\n <mat-icon animate.enter=\"shake-info-animation\" color=\"warn\" svgIcon=\"mat_outline:error\" [class.animate-none]=\"!pageLoaded()\"></mat-icon>\r\n }\r\n <span>密码强度= {{passwordComponent().strength()}} %100</span>\r\n </div>\r\n }\r\n\r\n </mat-card-content>\r\n<!-- eslint-enable @angular-eslint/template/no-inline-styles -->\r\n</mat-card>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;MAea,iCAAiC,CAAA;AAR9C,IAAA,WAAA,GAAA;QASa,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK;sFAAC;QACjC,IAAA,CAAA,eAAe,GAAG,MAAM,EAAW;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK;gGAAU;QAElB,IAAA,CAAA,KAAK,GAAS,MAAM;AAUxC,IAAA;AARG,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,GAAG,UAAU;IACjD;IAEA,gBAAgB,GAAA;AACZ,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvC;8GAdS,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,icCf9C,qWAIA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSc,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,kSAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEhD,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAR7C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,iBAExB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,0BAA0B,WAC3B,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,qWAAA,EAAA;;;AEb9D;AACA,IAAY,MAIX;AAJD,CAAA,UAAY,MAAM,EAAA;AACd,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACjB,CAAC,EAJW,MAAM,KAAN,MAAM,GAAA,EAAA,CAAA,CAAA;AAMlB,IAAY,QAOX;AAPD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,sBAAA,CAAA,GAAA,SAAgC;AAChC,IAAA,QAAA,CAAA,8BAAA,CAAA,GAAA,WAA0C;AAC1C,IAAA,QAAA,CAAA,8BAAA,CAAA,GAAA,WAA0C;AAC1C,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,OAAiC;AACjC,IAAA,QAAA,CAAA,2BAAA,CAAA,GAAA,cAA0C;AAC1C,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,aAA+B;AACnC,CAAC,EAPW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;;MCLP,6BAA6B,CAAA;AACtC,IAAA,kBAAkB,CAAC,OAAwB,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;QAEpE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;QACjB;IACJ;IAEA,QAAQ,CAAC,QAAgB,EAAE,KAAa,EAAA;QACpC,OAAO,CAAC,OAAwB,KAA6B;AACzD,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAChC,YAAA,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;YAEpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACpB,MAAM,MAAM,GAAqB,EAAE;gBACnC,MAAM,CAAC,QAAQ,CAAC,GAAG;AACf,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,eAAe,EAAE;iBACpB;AACD,gBAAA,OAAO,MAAM;YACjB;AACA,YAAA,OAAO,IAAI;AACf,QAAA,CAAC;IACL;AAEA,IAAA,OAAO,CAAC,QAAgB,EAAA;QACpB,OAAO,CAAC,OAAwB,KAA6B;AACzD,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAChC,YAAA,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;AAEpE,YAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;gBACpB,OAAO;AACH,oBAAA,YAAY,EAAE;AACV,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,oBAAoB,EAAE;AACzB;iBACJ;YACL;AACA,YAAA,OAAO,IAAI;AACf,QAAA,CAAC;IACL;AAEH;;AC7CD;AACO,MAAM,eAAe,GAAG;AAC3B,IAAA,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;AACpC,IAAA,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;AACpC,IAAA,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC;AAChC,IAAA,aAAa,EAAE,MAAM,CAAC,+CAA+C,CAAC;CACzE;;MCUY,6BAA6B,CAAA;AA2CtC,IAAA,WAAA,GAAA;QA1CS,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,EAAE;qFAAC;QAC5B,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,KAAK;0FAAC;QAErC,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAU,IAAI;6FAAC;QACvC,IAAA,CAAA,yBAAyB,GAAG,KAAK,CAAU,IAAI;sGAAC;QAChD,IAAA,CAAA,yBAAyB,GAAG,KAAK,CAAU,IAAI;sGAAC;QAChD,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,IAAI;4FAAC;QACtC,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAU,IAAI;kGAAC;QAE5C,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,CAAC;gFAAC;QACtB,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,EAAE;gFAAC;AACvB,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK;uGAAU;QAEjC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAS,EAAE;0FAAC;QACjC,IAAA,CAAA,eAAe,GAAG,KAAK,CAAS,EAAE;4FAAC;QAEnC,IAAA,CAAA,eAAe,GAAG,MAAM,EAAU;AAElC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,IAAI,GAAG,EAAoB;wFAAC;QAEjD,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAiB,KAAK;mGAAC;QACtD,IAAA,CAAA,gCAAgC,GAAG,MAAM,CAAiB,KAAK;6GAAC;QAChE,IAAA,CAAA,gCAAgC,GAAG,MAAM,CAAiB,KAAK;6GAAC;QAChE,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAiB,KAAK;mGAAC;QACtD,IAAA,CAAA,4BAA4B,GAAG,MAAM,CAAiB,KAAK;yGAAC;QAC5D,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAiB,KAAK;iGAAC;AAEpD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,WAAW,EAAE;AACvC,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,WAAW,EAAE;QAEnD,IAAA,CAAA,eAAe,GAAG,MAAM,CAAgB,EAAE;4FAAC;QAC3C,IAAA,CAAA,UAAU,GAAG,MAAM,CAAqB,IAAI;uFAAC;QAE7C,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;qFAAC;QAChD,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;kFAAC;AAE7B,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,6BAA6B,EAAE;QAEnE,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC;sFAAC;QACrB,IAAA,CAAA,MAAM,GAAG,MAAM,CAAe,MAAM;mFAAC;QAC9C,IAAA,CAAA,mBAAmB,GAAG,KAAK;;QAI/B,IAAI,CAAC,qBAAqB,EAAE;QAE5B,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B;YACJ;AAEA,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;YAE3B,SAAS,CAAC,MAAK;;gBAEX,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,IAAI,CAAC,KAAK,EAAE;oBACZ;gBACJ;;AAGA,gBAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;AACzC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B;YACJ;AAEA,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;YAErC,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B;YACJ;;YAGA,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,EAAE;YAEtB,SAAS,CAAC,MAAK;;gBAEX,IAAI,CAAC,qBAAqB,EAAE;;AAG5B,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;gBAC3B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,oBAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBACzC;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEA,0BAA0B,GAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,IAAI,SAAS,YAAY,MAAM,EAAE;AAC7B,YAAA,OAAO,SAAS;QACpB;aAAO;AACH,YAAA,OAAO,MAAM,CAAC,SAA8B,CAAC;QACjD;IACJ;IAEA,qBAAqB,GAAA;AACjB,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,EAAoB,CAAC;AAEjD,QAAA,IAAI,CAAC;AACA,aAAA,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;AAC9B,YAAA,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClF,SAAA,CAAC,CAAC;AAEP,QAAA,MAAM,UAAU,GAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC;AAEvD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACzB,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,EAAE,CAAA,EAAA,CAAI,CAAC,CAAC;AACjG,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD;AACA,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,EAAE,eAAe,CAAC,SAAS,CAAC;AACxF,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAClE;AACA,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,EAAE,eAAe,CAAC,SAAS,CAAC;AACxF,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAClE;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,EAAE,eAAe,CAAC,KAAK,CAAC;AAC/E,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9D;AACA,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,yBAAyB,EAAE,eAAe,CAAC,WAAW,CAAC;AACvF,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACpE;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACnF,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;QAC1E;QAEA,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,GAAa,KAAI;AACxD,YAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5E,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAC5D;IAEA,yBAAyB,CAAC,oBAA6B,KAAK,EAAA;AACxD,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;;YAG/B,IAAI,iBAAiB,EAAE;gBACnB,IAAI,CAAC,qBAAqB,EAAE;YAChC;YAEA,MAAM,YAAY,GAAc,EAAE;YAClC,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI;YAE1C,YAAY,CAAC,IAAI,CACb,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE,GAAG,KAAK,EAChE,IAAI,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,GAAG,KAAK,EACnF,IAAI,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,GAAG,KAAK,EACnF,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE,GAAG,KAAK,EAC/D,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC,6BAA6B,EAAE,GAAG,KAAK,EAC3E,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAC9D;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAC7D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAE1C,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC,YAAA,IAAI,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE;gBACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC;AAAO,iBAAA,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE;gBACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAClC;iBAAO;gBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC;QACJ;gBAAU;AACN,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QACpC;IACJ;IAEA,KAAK,GAAA;AACD,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAE/B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC,YAAA,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,YAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC;YAE5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9C;gBAAU;AACN,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QACpC;IACJ;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;AACnD,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;AACvC,QAAA,OAAO,MAAM;IACjB;IAEQ,iCAAiC,GAAA;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC1B,aAAA,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtE,QAAA,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,MAAM,CAAC;QACjD,OAAO,MAAM,IAAI,KAAK;IAC1B;IAEQ,iCAAiC,GAAA;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC1B,aAAA,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtE,QAAA,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,MAAM,CAAC;QACjD,OAAO,MAAM,IAAI,KAAK;IAC1B;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC1B,aAAA,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjE,QAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;QACvC,OAAO,MAAM,IAAI,KAAK;IAC1B;IAEQ,6BAA6B,GAAA;AACjC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC1B,aAAA,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnE,QAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,MAAM,CAAC;QAC7C,OAAO,MAAM,IAAI,KAAK;IAC1B;IAEQ,mBAAmB,GAAA;AACvB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;AAC1B,aAAA,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;QACrC,OAAO,MAAM,IAAI,KAAK;IAC1B;IAEQ,cAAc,GAAA;QAClB,IAAI,CAAC,yBAAyB,EAAE;AAChC,QAAA,IAAI,CAAC,+BAA+B,CAAC,sBAAsB,EAAE;IACjE;8GAtQS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB1C,uGAA+F,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDcjF,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAErB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,QAAA,EACxB,sBAAsB,EAAA,aAAA,EAEjB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,uGAAA,EAAA;;;MEDtB,iCAAiC,CAAA;AAc1C,IAAA,WAAA,GAAA;QAZS,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,QAAQ;8FAAiC;QACnE,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,KAAK;4FAAC;QAEvC,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAS,YAAY;iGAAC;QAClD,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAS,YAAY;iGAAC;QAClD,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAS,UAAU;8FAAC;QAC7C,IAAA,CAAA,uBAAuB,GAAG,KAAK,CAAS,YAAY;oGAAC;QACrD,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAS,YAAY;mGAAC;AACpD,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK;2GAAU;QAErC,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK;uFAAC;QAG/B,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B,CAAC,EAAE,GAAG,CAAC;IACX;IAEA,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAA,KAAA,EAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM;IACrF;AAEA,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC1B,MAAM,YAAY,GAAa,EAAE;QAEjC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,EAAE;AACtD,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,EAAE;AACtD,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAE,EAAE;AAC5C,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,qBAAqB,EAAE,EAAE;AAClD,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,gBAAgB,EAAE,EAAE;AAC7C,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAE,EAAE;AAC5C,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B;AAEA,QAAA,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;IACtD;AAEA,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC1B,MAAM,YAAY,GAAa,EAAE;QAEjC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,EAAE;AACtD,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,EAAE;AACtD,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAE,EAAE;AAC5C,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,qBAAqB,EAAE,EAAE;AAClD,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,gBAAgB,EAAE,EAAE;AAC7C,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B;QACA,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,EAAE,EAAE;AAC5C,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B;AAEA,QAAA,OAAO,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC;IAChF;8GA9ES,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb9C,mzKA2FA,EAAA,MAAA,EAAA,CAAA,imFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhFc,aAAa,8NAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE7B,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAR7C,SAAS;+BACI,6BAA6B,EAAA,QAAA,EAC7B,0BAA0B,EAAA,aAAA,EAGrB,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,aAAa,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,mzKAAA,EAAA,MAAA,EAAA,CAAA,imFAAA,CAAA,EAAA;;;AEX3C;;AAEG;;;;"}