@angular/material-experimental 14.0.0-rc.0 → 14.0.0

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 (247) hide show
  1. package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
  2. package/esm2020/column-resize/column-resize-directives/column-resize.mjs +4 -4
  3. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +4 -4
  4. package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +4 -4
  5. package/esm2020/column-resize/column-resize-module.mjs +13 -13
  6. package/esm2020/column-resize/overlay-handle.mjs +4 -4
  7. package/esm2020/column-resize/resizable-directives/default-enabled-resizable.mjs +4 -4
  8. package/esm2020/column-resize/resizable-directives/resizable.mjs +4 -4
  9. package/esm2020/column-resize/resize-strategy.mjs +4 -4
  10. package/esm2020/mdc-autocomplete/autocomplete-origin.mjs +4 -4
  11. package/esm2020/mdc-autocomplete/autocomplete-trigger.mjs +4 -4
  12. package/esm2020/mdc-autocomplete/autocomplete.mjs +4 -4
  13. package/esm2020/mdc-autocomplete/module.mjs +5 -5
  14. package/esm2020/mdc-button/button-base.mjs +7 -7
  15. package/esm2020/mdc-button/button.mjs +9 -9
  16. package/esm2020/mdc-button/fab.mjs +17 -17
  17. package/esm2020/mdc-button/icon-button.mjs +9 -9
  18. package/esm2020/mdc-button/module.mjs +5 -5
  19. package/esm2020/mdc-card/card.mjs +43 -43
  20. package/esm2020/mdc-card/module.mjs +5 -5
  21. package/esm2020/mdc-checkbox/checkbox.mjs +29 -283
  22. package/esm2020/mdc-checkbox/module.mjs +5 -5
  23. package/esm2020/mdc-chips/chip-action.mjs +43 -77
  24. package/esm2020/mdc-chips/chip-edit-input.mjs +4 -4
  25. package/esm2020/mdc-chips/chip-grid.mjs +59 -70
  26. package/esm2020/mdc-chips/chip-icons.mjs +27 -41
  27. package/esm2020/mdc-chips/chip-input.mjs +5 -8
  28. package/esm2020/mdc-chips/chip-listbox.mjs +24 -66
  29. package/esm2020/mdc-chips/chip-option.mjs +38 -83
  30. package/esm2020/mdc-chips/chip-row.mjs +51 -75
  31. package/esm2020/mdc-chips/chip-set.mjs +117 -118
  32. package/esm2020/mdc-chips/chip.mjs +81 -166
  33. package/esm2020/mdc-chips/module.mjs +6 -6
  34. package/esm2020/mdc-chips/public-api.mjs +2 -2
  35. package/esm2020/mdc-chips/tokens.mjs +33 -0
  36. package/esm2020/mdc-core/option/index.mjs +5 -5
  37. package/esm2020/mdc-core/option/optgroup.mjs +4 -4
  38. package/esm2020/mdc-core/option/option.mjs +4 -4
  39. package/esm2020/mdc-dialog/dialog-container.mjs +4 -4
  40. package/esm2020/mdc-dialog/dialog-content-directives.mjs +13 -13
  41. package/esm2020/mdc-dialog/dialog.mjs +4 -4
  42. package/esm2020/mdc-dialog/module.mjs +5 -5
  43. package/esm2020/mdc-form-field/directives/error.mjs +4 -4
  44. package/esm2020/mdc-form-field/directives/floating-label.mjs +26 -6
  45. package/esm2020/mdc-form-field/directives/hint.mjs +4 -4
  46. package/esm2020/mdc-form-field/directives/label.mjs +4 -4
  47. package/esm2020/mdc-form-field/directives/line-ripple.mjs +32 -11
  48. package/esm2020/mdc-form-field/directives/notched-outline.mjs +25 -46
  49. package/esm2020/mdc-form-field/directives/prefix.mjs +4 -4
  50. package/esm2020/mdc-form-field/directives/suffix.mjs +4 -4
  51. package/esm2020/mdc-form-field/form-field.mjs +11 -95
  52. package/esm2020/mdc-form-field/module.mjs +5 -5
  53. package/esm2020/mdc-input/input.mjs +4 -4
  54. package/esm2020/mdc-input/module.mjs +5 -5
  55. package/esm2020/mdc-list/action-list.mjs +5 -5
  56. package/esm2020/mdc-list/list-base.mjs +7 -15
  57. package/esm2020/mdc-list/list-item-sections.mjs +19 -19
  58. package/esm2020/mdc-list/list-option.mjs +39 -21
  59. package/esm2020/mdc-list/list.mjs +8 -8
  60. package/esm2020/mdc-list/module.mjs +5 -5
  61. package/esm2020/mdc-list/nav-list.mjs +5 -5
  62. package/esm2020/mdc-list/selection-list.mjs +124 -124
  63. package/esm2020/mdc-list/subheader.mjs +4 -4
  64. package/esm2020/mdc-menu/directives.mjs +7 -7
  65. package/esm2020/mdc-menu/menu-item.mjs +4 -4
  66. package/esm2020/mdc-menu/menu.mjs +4 -4
  67. package/esm2020/mdc-menu/module.mjs +5 -5
  68. package/esm2020/mdc-paginator/module.mjs +5 -5
  69. package/esm2020/mdc-paginator/paginator.mjs +4 -4
  70. package/esm2020/mdc-progress-bar/module.mjs +5 -5
  71. package/esm2020/mdc-progress-bar/progress-bar.mjs +39 -103
  72. package/esm2020/mdc-progress-spinner/module.mjs +5 -5
  73. package/esm2020/mdc-progress-spinner/progress-spinner.mjs +13 -60
  74. package/esm2020/mdc-radio/module.mjs +5 -5
  75. package/esm2020/mdc-radio/radio.mjs +9 -43
  76. package/esm2020/mdc-select/module.mjs +5 -5
  77. package/esm2020/mdc-select/select.mjs +7 -7
  78. package/esm2020/mdc-slide-toggle/module.mjs +5 -5
  79. package/esm2020/mdc-slide-toggle/slide-toggle.mjs +16 -178
  80. package/esm2020/mdc-slider/global-change-and-input-listener.mjs +4 -4
  81. package/esm2020/mdc-slider/module.mjs +5 -5
  82. package/esm2020/mdc-slider/slider.mjs +10 -10
  83. package/esm2020/mdc-snack-bar/module.mjs +5 -5
  84. package/esm2020/mdc-snack-bar/simple-snack-bar.mjs +4 -4
  85. package/esm2020/mdc-snack-bar/snack-bar-container.mjs +5 -5
  86. package/esm2020/mdc-snack-bar/snack-bar-content.mjs +10 -10
  87. package/esm2020/mdc-snack-bar/snack-bar.mjs +4 -4
  88. package/esm2020/mdc-table/cell.mjs +22 -22
  89. package/esm2020/mdc-table/module.mjs +5 -5
  90. package/esm2020/mdc-table/row.mjs +22 -22
  91. package/esm2020/mdc-table/table.mjs +9 -9
  92. package/esm2020/mdc-table/text-column.mjs +4 -4
  93. package/esm2020/mdc-tabs/ink-bar.mjs +93 -114
  94. package/esm2020/mdc-tabs/module.mjs +5 -5
  95. package/esm2020/mdc-tabs/tab-body.mjs +7 -7
  96. package/esm2020/mdc-tabs/tab-content.mjs +4 -4
  97. package/esm2020/mdc-tabs/tab-group.mjs +4 -4
  98. package/esm2020/mdc-tabs/tab-header.mjs +4 -4
  99. package/esm2020/mdc-tabs/tab-label-wrapper.mjs +10 -34
  100. package/esm2020/mdc-tabs/tab-label.mjs +4 -4
  101. package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +16 -25
  102. package/esm2020/mdc-tabs/tab.mjs +4 -4
  103. package/esm2020/mdc-tooltip/module.mjs +5 -5
  104. package/esm2020/mdc-tooltip/tooltip.mjs +8 -8
  105. package/esm2020/menubar/menubar-item.mjs +4 -4
  106. package/esm2020/menubar/menubar-module.mjs +5 -5
  107. package/esm2020/menubar/menubar.mjs +5 -5
  108. package/esm2020/popover-edit/lens-directives.mjs +10 -10
  109. package/esm2020/popover-edit/popover-edit-module.mjs +5 -5
  110. package/esm2020/popover-edit/table-directives.mjs +13 -13
  111. package/esm2020/selection/row-selection.mjs +4 -4
  112. package/esm2020/selection/select-all.mjs +4 -4
  113. package/esm2020/selection/selection-column.mjs +5 -5
  114. package/esm2020/selection/selection-module.mjs +5 -5
  115. package/esm2020/selection/selection-toggle.mjs +4 -4
  116. package/esm2020/selection/selection.mjs +4 -4
  117. package/esm2020/version.mjs +1 -1
  118. package/fesm2015/column-resize.mjs +36 -36
  119. package/fesm2015/column-resize.mjs.map +1 -1
  120. package/fesm2015/material-experimental.mjs +1 -1
  121. package/fesm2015/material-experimental.mjs.map +1 -1
  122. package/fesm2015/mdc-autocomplete.mjs +13 -13
  123. package/fesm2015/mdc-autocomplete.mjs.map +1 -1
  124. package/fesm2015/mdc-button.mjs +42 -42
  125. package/fesm2015/mdc-button.mjs.map +1 -1
  126. package/fesm2015/mdc-card.mjs +46 -46
  127. package/fesm2015/mdc-card.mjs.map +1 -1
  128. package/fesm2015/mdc-checkbox.mjs +34 -287
  129. package/fesm2015/mdc-checkbox.mjs.map +1 -1
  130. package/fesm2015/mdc-chips.mjs +529 -785
  131. package/fesm2015/mdc-chips.mjs.map +1 -1
  132. package/fesm2015/mdc-core.mjs +10 -10
  133. package/fesm2015/mdc-core.mjs.map +1 -1
  134. package/fesm2015/mdc-dialog.mjs +22 -22
  135. package/fesm2015/mdc-dialog.mjs.map +1 -1
  136. package/fesm2015/mdc-form-field.mjs +118 -173
  137. package/fesm2015/mdc-form-field.mjs.map +1 -1
  138. package/fesm2015/mdc-input.mjs +7 -7
  139. package/fesm2015/mdc-input.mjs.map +1 -1
  140. package/fesm2015/mdc-list.mjs +209 -395
  141. package/fesm2015/mdc-list.mjs.map +1 -1
  142. package/fesm2015/mdc-menu.mjs +16 -16
  143. package/fesm2015/mdc-menu.mjs.map +1 -1
  144. package/fesm2015/mdc-paginator.mjs +7 -7
  145. package/fesm2015/mdc-paginator.mjs.map +1 -1
  146. package/fesm2015/mdc-progress-bar.mjs +41 -105
  147. package/fesm2015/mdc-progress-bar.mjs.map +1 -1
  148. package/fesm2015/mdc-progress-spinner.mjs +16 -63
  149. package/fesm2015/mdc-progress-spinner.mjs.map +1 -1
  150. package/fesm2015/mdc-radio.mjs +13 -47
  151. package/fesm2015/mdc-radio.mjs.map +1 -1
  152. package/fesm2015/mdc-select.mjs +10 -10
  153. package/fesm2015/mdc-select.mjs.map +1 -1
  154. package/fesm2015/mdc-slide-toggle.mjs +20 -184
  155. package/fesm2015/mdc-slide-toggle.mjs.map +1 -1
  156. package/fesm2015/mdc-slider.mjs +16 -16
  157. package/fesm2015/mdc-slider.mjs.map +1 -1
  158. package/fesm2015/mdc-snack-bar.mjs +23 -23
  159. package/fesm2015/mdc-snack-bar.mjs.map +1 -1
  160. package/fesm2015/mdc-table.mjs +57 -57
  161. package/fesm2015/mdc-table.mjs.map +1 -1
  162. package/fesm2015/mdc-tabs.mjs +140 -192
  163. package/fesm2015/mdc-tabs.mjs.map +1 -1
  164. package/fesm2015/mdc-tooltip.mjs +11 -11
  165. package/fesm2015/mdc-tooltip.mjs.map +1 -1
  166. package/fesm2015/menubar.mjs +10 -10
  167. package/fesm2015/menubar.mjs.map +1 -1
  168. package/fesm2015/popover-edit.mjs +25 -25
  169. package/fesm2015/popover-edit.mjs.map +1 -1
  170. package/fesm2015/selection.mjs +20 -20
  171. package/fesm2015/selection.mjs.map +1 -1
  172. package/fesm2020/column-resize.mjs +36 -36
  173. package/fesm2020/column-resize.mjs.map +1 -1
  174. package/fesm2020/material-experimental.mjs +1 -1
  175. package/fesm2020/material-experimental.mjs.map +1 -1
  176. package/fesm2020/mdc-autocomplete.mjs +13 -13
  177. package/fesm2020/mdc-autocomplete.mjs.map +1 -1
  178. package/fesm2020/mdc-button.mjs +42 -42
  179. package/fesm2020/mdc-button.mjs.map +1 -1
  180. package/fesm2020/mdc-card.mjs +46 -46
  181. package/fesm2020/mdc-card.mjs.map +1 -1
  182. package/fesm2020/mdc-checkbox.mjs +34 -287
  183. package/fesm2020/mdc-checkbox.mjs.map +1 -1
  184. package/fesm2020/mdc-chips.mjs +442 -701
  185. package/fesm2020/mdc-chips.mjs.map +1 -1
  186. package/fesm2020/mdc-core.mjs +10 -10
  187. package/fesm2020/mdc-core.mjs.map +1 -1
  188. package/fesm2020/mdc-dialog.mjs +22 -22
  189. package/fesm2020/mdc-dialog.mjs.map +1 -1
  190. package/fesm2020/mdc-form-field.mjs +110 -172
  191. package/fesm2020/mdc-form-field.mjs.map +1 -1
  192. package/fesm2020/mdc-input.mjs +7 -7
  193. package/fesm2020/mdc-input.mjs.map +1 -1
  194. package/fesm2020/mdc-list.mjs +208 -384
  195. package/fesm2020/mdc-list.mjs.map +1 -1
  196. package/fesm2020/mdc-menu.mjs +16 -16
  197. package/fesm2020/mdc-menu.mjs.map +1 -1
  198. package/fesm2020/mdc-paginator.mjs +7 -7
  199. package/fesm2020/mdc-paginator.mjs.map +1 -1
  200. package/fesm2020/mdc-progress-bar.mjs +41 -104
  201. package/fesm2020/mdc-progress-bar.mjs.map +1 -1
  202. package/fesm2020/mdc-progress-spinner.mjs +16 -63
  203. package/fesm2020/mdc-progress-spinner.mjs.map +1 -1
  204. package/fesm2020/mdc-radio.mjs +13 -47
  205. package/fesm2020/mdc-radio.mjs.map +1 -1
  206. package/fesm2020/mdc-select.mjs +10 -10
  207. package/fesm2020/mdc-select.mjs.map +1 -1
  208. package/fesm2020/mdc-slide-toggle.mjs +20 -183
  209. package/fesm2020/mdc-slide-toggle.mjs.map +1 -1
  210. package/fesm2020/mdc-slider.mjs +16 -16
  211. package/fesm2020/mdc-slider.mjs.map +1 -1
  212. package/fesm2020/mdc-snack-bar.mjs +23 -23
  213. package/fesm2020/mdc-snack-bar.mjs.map +1 -1
  214. package/fesm2020/mdc-table.mjs +57 -57
  215. package/fesm2020/mdc-table.mjs.map +1 -1
  216. package/fesm2020/mdc-tabs.mjs +138 -190
  217. package/fesm2020/mdc-tabs.mjs.map +1 -1
  218. package/fesm2020/mdc-tooltip.mjs +11 -11
  219. package/fesm2020/mdc-tooltip.mjs.map +1 -1
  220. package/fesm2020/menubar.mjs +10 -10
  221. package/fesm2020/menubar.mjs.map +1 -1
  222. package/fesm2020/popover-edit.mjs +25 -25
  223. package/fesm2020/popover-edit.mjs.map +1 -1
  224. package/fesm2020/selection.mjs +20 -20
  225. package/fesm2020/selection.mjs.map +1 -1
  226. package/mdc-checkbox/_checkbox-private.scss +10 -3
  227. package/mdc-checkbox/_checkbox-theme.scss +3 -3
  228. package/mdc-checkbox/index.d.ts +17 -138
  229. package/mdc-chips/index.d.ts +102 -162
  230. package/mdc-form-field/index.d.ts +12 -20
  231. package/mdc-list/_list-option-theme.scss +2 -2
  232. package/mdc-list/_list-theme.scss +3 -3
  233. package/mdc-list/index.d.ts +42 -66
  234. package/mdc-progress-bar/index.d.ts +14 -17
  235. package/mdc-progress-spinner/index.d.ts +5 -18
  236. package/mdc-radio/_radio-theme.scss +8 -2
  237. package/mdc-radio/index.d.ts +1 -17
  238. package/mdc-slide-toggle/index.d.ts +12 -73
  239. package/mdc-tabs/index.d.ts +14 -62
  240. package/mdc-theming/prebuilt/deeppurple-amber.css +1 -1
  241. package/mdc-theming/prebuilt/indigo-pink.css +1 -1
  242. package/mdc-theming/prebuilt/pink-bluegrey.css +1 -1
  243. package/mdc-theming/prebuilt/purple-green.css +1 -1
  244. package/package.json +55 -55
  245. package/esm2020/mdc-chips/chip-default-options.mjs +0 -11
  246. package/esm2020/mdc-chips/emit-event.mjs +0 -27
  247. package/esm2020/mdc-list/interactive-list-base.mjs +0 -196
@@ -1 +1 @@
1
- {"version":3,"file":"mdc-chips.mjs","sources":["../../../../../../src/material-experimental/mdc-chips/emit-event.ts","../../../../../../src/material-experimental/mdc-chips/chip-action.ts","../../../../../../src/material-experimental/mdc-chips/chip-icons.ts","../../../../../../src/material-experimental/mdc-chips/chip.ts","../../../../../../src/material-experimental/mdc-chips/chip.html","../../../../../../src/material-experimental/mdc-chips/chip-option.ts","../../../../../../src/material-experimental/mdc-chips/chip-option.html","../../../../../../src/material-experimental/mdc-chips/chip-edit-input.ts","../../../../../../src/material-experimental/mdc-chips/chip-row.ts","../../../../../../src/material-experimental/mdc-chips/chip-row.html","../../../../../../src/material-experimental/mdc-chips/chip-set.ts","../../../../../../src/material-experimental/mdc-chips/chip-listbox.ts","../../../../../../src/material-experimental/mdc-chips/chip-grid.ts","../../../../../../src/material-experimental/mdc-chips/chip-default-options.ts","../../../../../../src/material-experimental/mdc-chips/chip-input.ts","../../../../../../src/material-experimental/mdc-chips/module.ts","../../../../../../src/material-experimental/mdc-chips/public-api.ts","../../../../../../src/material-experimental/mdc-chips/index.ts","../../../../../../src/material-experimental/mdc-chips/mdc-chips_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Emits a custom event from an element.\n * @param element Element from which to emit the event.\n * @param _document Document that the element is placed in.\n * @param eventName Name of the event.\n * @param data Data attached to the event.\n * @param shouldBubble Whether the event should bubble.\n */\nexport function emitCustomEvent<T>(\n element: HTMLElement,\n _document: Document,\n eventName: string,\n data: T,\n shouldBubble: boolean,\n): void {\n let event: CustomEvent<T>;\n if (typeof CustomEvent === 'function') {\n event = new CustomEvent<T>(eventName, {bubbles: shouldBubble, detail: data});\n } else {\n event = _document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, shouldBubble, false, data);\n }\n\n element.dispatchEvent(event);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {\n MDCChipActionAdapter,\n MDCChipActionFoundation,\n MDCChipActionType,\n MDCChipPrimaryActionFoundation,\n} from '@material/chips';\nimport {emitCustomEvent} from './emit-event';\nimport {\n CanDisable,\n HasTabIndex,\n mixinDisabled,\n mixinTabIndex,\n} from '@angular/material-experimental/mdc-core';\n\nconst _MatChipActionMixinBase = mixinTabIndex(mixinDisabled(class {}), -1);\n\n/**\n * Interactive element within a chip.\n * @docs-private\n */\n@Directive({\n selector: '[matChipAction]',\n inputs: ['disabled', 'tabIndex'],\n host: {\n 'class': 'mdc-evolution-chip__action mat-mdc-chip-action',\n '[class.mdc-evolution-chip__action--primary]': `_getFoundation().actionType() === ${MDCChipActionType.PRIMARY}`,\n // Note that while our actions are interactive, we have to add the `--presentational` class,\n // in order to avoid some super-specific `:hover` styles from MDC.\n '[class.mdc-evolution-chip__action--presentational]': `_getFoundation().actionType() === ${MDCChipActionType.PRIMARY}`,\n '[class.mdc-evolution-chip__action--trailing]': `_getFoundation().actionType() === ${MDCChipActionType.TRAILING}`,\n '[attr.tabindex]': '(disabled || !isInteractive) ? null : tabIndex',\n '[attr.disabled]': \"disabled ? '' : null\",\n '[attr.aria-disabled]': 'disabled',\n '(click)': '_handleClick($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class MatChipAction\n extends _MatChipActionMixinBase\n implements AfterViewInit, OnDestroy, CanDisable, HasTabIndex, OnChanges\n{\n private _document: Document;\n private _foundation: MDCChipActionFoundation;\n private _adapter: MDCChipActionAdapter = {\n focus: () => this.focus(),\n getAttribute: (name: string) => this._elementRef.nativeElement.getAttribute(name),\n setAttribute: (name: string, value: string) => {\n // MDC tries to update the tabindex directly in the DOM when navigating using the keyboard\n // which overrides our own handling. If we detect such a case, assign it to the same property\n // as the Angular binding in order to maintain consistency.\n if (name === 'tabindex') {\n this._updateTabindex(parseInt(value));\n } else {\n this._elementRef.nativeElement.setAttribute(name, value);\n }\n },\n removeAttribute: (name: string) => {\n if (name !== 'tabindex') {\n this._elementRef.nativeElement.removeAttribute(name);\n }\n },\n getElementID: () => this._elementRef.nativeElement.id,\n emitEvent: <T>(eventName: string, data: T) => {\n emitCustomEvent<T>(this._elementRef.nativeElement, this._document, eventName, data, true);\n },\n };\n\n /** Whether the action is interactive. */\n @Input() isInteractive = true;\n\n _handleClick(event: MouseEvent) {\n // Usually these events can't happen while the chip is disabled since the browser won't\n // allow them which is what MDC seems to rely on, however the event can be faked in tests.\n if (!this.disabled && this.isInteractive) {\n this._foundation.handleClick();\n event.preventDefault();\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n // Usually these events can't happen while the chip is disabled since the browser won't\n // allow them which is what MDC seems to rely on, however the event can be faked in tests.\n if (!this.disabled && this.isInteractive) {\n this._foundation.handleKeydown(event);\n }\n }\n\n protected _createFoundation(adapter: MDCChipActionAdapter): MDCChipActionFoundation {\n return new MDCChipPrimaryActionFoundation(adapter);\n }\n\n constructor(\n public _elementRef: ElementRef,\n @Inject(DOCUMENT) _document: any,\n private _changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n this._foundation = this._createFoundation(this._adapter);\n\n if (_elementRef.nativeElement.nodeName === 'BUTTON') {\n _elementRef.nativeElement.setAttribute('type', 'button');\n }\n }\n\n ngAfterViewInit() {\n this._foundation.init();\n this._foundation.setDisabled(this.disabled);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['disabled']) {\n this._foundation.setDisabled(this.disabled);\n }\n }\n\n ngOnDestroy() {\n this._foundation.destroy();\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n _getFoundation() {\n return this._foundation;\n }\n\n _updateTabindex(value: number) {\n this.tabIndex = value;\n this._changeDetectorRef.markForCheck();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, InjectionToken} from '@angular/core';\nimport {MDCChipActionAdapter, MDCChipTrailingActionFoundation} from '@material/chips';\nimport {MatChipAction} from './chip-action';\n\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_AVATAR = new InjectionToken<MatChipAvatar>('MatChipAvatar');\n\n/**\n * Directive to add CSS classes to chip leading icon.\n * @docs-private\n */\n@Directive({\n selector: 'mat-chip-avatar, [matChipAvatar]',\n host: {\n 'class': 'mat-mdc-chip-avatar mdc-evolution-chip__icon mdc-evolution-chip__icon--primary',\n 'role': 'img',\n },\n providers: [{provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar}],\n})\nexport class MatChipAvatar {}\n\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_TRAILING_ICON = new InjectionToken<MatChipTrailingIcon>(\n 'MatChipTrailingIcon',\n);\n\n/**\n * Directive to add CSS classes to and configure attributes for chip trailing icon.\n * @docs-private\n */\n@Directive({\n selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]',\n host: {\n 'class':\n 'mat-mdc-chip-trailing-icon mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n 'aria-hidden': 'true',\n },\n providers: [{provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon}],\n})\nexport class MatChipTrailingIcon extends MatChipAction {\n /**\n * MDC considers all trailing actions as a remove icon,\n * but we support non-interactive trailing icons.\n */\n override isInteractive = false;\n\n protected override _createFoundation(adapter: MDCChipActionAdapter) {\n return new MDCChipTrailingActionFoundation(adapter);\n }\n}\n\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_REMOVE = new InjectionToken<MatChipRemove>('MatChipRemove');\n\n/**\n * Directive to remove the parent chip when the trailing icon is clicked or\n * when the ENTER key is pressed on it.\n *\n * Recommended for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n * ```\n * <mat-chip>\n * <mat-icon matChipRemove>cancel</mat-icon>\n * </mat-chip>\n * ```\n */\n\n@Directive({\n selector: '[matChipRemove]',\n host: {\n 'class':\n 'mat-mdc-chip-remove mat-mdc-chip-trailing-icon mat-mdc-focus-indicator ' +\n 'mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n 'role': 'button',\n '[attr.aria-hidden]': 'null',\n },\n providers: [{provide: MAT_CHIP_REMOVE, useExisting: MatChipRemove}],\n})\nexport class MatChipRemove extends MatChipAction {\n protected override _createFoundation(adapter: MDCChipActionAdapter) {\n return new MDCChipTrailingActionFoundation(adapter);\n }\n\n override _handleClick(event: MouseEvent) {\n // Some consumers bind `click` events directly on the chip\n // which will also pick up clicks on the remove button.\n event.stopPropagation();\n super._handleClick(event);\n }\n\n override _handleKeydown(event: KeyboardEvent) {\n event.stopPropagation();\n super._handleKeydown(event);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n AfterViewInit,\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation,\n ViewChild,\n Attribute,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {\n CanColor,\n CanDisable,\n CanDisableRipple,\n HasTabIndex,\n MatRipple,\n MAT_RIPPLE_GLOBAL_OPTIONS,\n mixinColor,\n mixinDisableRipple,\n mixinTabIndex,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {\n MDCChipFoundation,\n MDCChipAdapter,\n MDCChipActionType,\n MDCChipActionFocusBehavior,\n MDCChipActionFoundation,\n MDCChipActionEvents,\n ActionInteractionEvent,\n ActionNavigationEvent,\n MDCChipActionInteractionTrigger,\n} from '@material/chips';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {Subject} from 'rxjs';\nimport {\n MatChipAvatar,\n MatChipTrailingIcon,\n MatChipRemove,\n MAT_CHIP_AVATAR,\n MAT_CHIP_TRAILING_ICON,\n MAT_CHIP_REMOVE,\n} from './chip-icons';\nimport {emitCustomEvent} from './emit-event';\nimport {MatChipAction} from './chip-action';\n\nlet uid = 0;\n\n/** Represents an event fired on an individual `mat-chip`. */\nexport interface MatChipEvent {\n /** The chip the event was fired on. */\n chip: MatChip;\n}\n\n/**\n * Boilerplate for applying mixins to MatChip.\n * @docs-private\n */\nabstract class MatChipBase {\n abstract disabled: boolean;\n constructor(public _elementRef: ElementRef) {}\n}\n\nconst _MatChipMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(MatChipBase), 'primary'), -1);\n\n/**\n * Material design styled Chip base component. Used inside the MatChipSet component.\n *\n * Extended by MatChipOption and MatChipRow for different interaction patterns.\n */\n@Component({\n selector: 'mat-basic-chip, mat-chip',\n inputs: ['color', 'disableRipple', 'tabIndex'],\n exportAs: 'matChip',\n templateUrl: 'chip.html',\n styleUrls: ['chip.css'],\n host: {\n 'class': 'mat-mdc-chip',\n '[class.mdc-evolution-chip]': '!_isBasicChip',\n '[class.mdc-evolution-chip--disabled]': 'disabled',\n '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n '[class.mdc-evolution-chip--with-primary-graphic]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-highlighted]': 'highlighted',\n '[class.mat-mdc-chip-disabled]': 'disabled',\n '[class.mat-mdc-basic-chip]': '_isBasicChip',\n '[class.mat-mdc-standard-chip]': '!_isBasicChip',\n '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n '[id]': 'id',\n '[attr.role]': 'role',\n '[attr.tabindex]': 'role ? tabIndex : null',\n '[attr.aria-label]': 'ariaLabel',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChip\n extends _MatChipMixinBase\n implements AfterViewInit, CanColor, CanDisableRipple, CanDisable, HasTabIndex, OnDestroy\n{\n protected _document: Document;\n\n /** Whether the ripple is centered on the chip. */\n readonly _isRippleCentered = false;\n\n /** Emits when the chip is focused. */\n readonly _onFocus = new Subject<MatChipEvent>();\n\n /** Emits when the chip is blurred. */\n readonly _onBlur = new Subject<MatChipEvent>();\n\n /** Whether this chip is a basic (unstyled) chip. */\n readonly _isBasicChip: boolean;\n\n /** Role for the root of the chip. */\n @Input() role: string | null = null;\n\n /** Whether the chip has focus. */\n protected _hasFocusInternal = false;\n\n /** Whether moving focus into the chip is pending. */\n private _pendingFocus: boolean;\n\n /** Whether animations for the chip are enabled. */\n _animationsDisabled: boolean;\n\n _hasFocus() {\n return this._hasFocusInternal;\n }\n\n /** A unique id for the chip. If none is supplied, it will be auto-generated. */\n @Input() id: string = `mat-mdc-chip-${uid++}`;\n\n /** ARIA label for the content of the chip. */\n @Input('aria-label') ariaLabel: string | null = null;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this.removeIcon) {\n this.removeIcon.disabled = this._disabled;\n }\n\n this._chipFoundation.setDisabled(this._disabled);\n }\n protected _disabled: boolean = false;\n\n private _textElement!: HTMLElement;\n\n /**\n * The value of the chip. Defaults to the content inside\n * the `mat-mdc-chip-action-label` element.\n */\n @Input()\n get value(): any {\n return this._value !== undefined ? this._value : this._textElement.textContent!.trim();\n }\n set value(value: any) {\n this._value = value;\n }\n protected _value: any;\n\n /**\n * Determines whether or not the chip displays the remove styling and emits (removed) events.\n */\n @Input()\n get removable(): boolean {\n return this._removable;\n }\n set removable(value: BooleanInput) {\n this._removable = coerceBooleanProperty(value);\n }\n protected _removable: boolean = true;\n\n /**\n * Colors the chip for emphasis as if it were selected.\n */\n @Input()\n get highlighted(): boolean {\n return this._highlighted;\n }\n set highlighted(value: BooleanInput) {\n this._highlighted = coerceBooleanProperty(value);\n }\n protected _highlighted: boolean = false;\n\n /** Emitted when a chip is to be removed. */\n @Output() readonly removed: EventEmitter<MatChipEvent> = new EventEmitter<MatChipEvent>();\n\n /** Emitted when the chip is destroyed. */\n @Output() readonly destroyed: EventEmitter<MatChipEvent> = new EventEmitter<MatChipEvent>();\n\n /** The MDC foundation containing business logic for MDC chip. */\n _chipFoundation: MDCChipFoundation;\n\n /** The unstyled chip selector for this component. */\n protected basicChipAttrName = 'mat-basic-chip';\n\n /** The chip's leading icon. */\n @ContentChild(MAT_CHIP_AVATAR) leadingIcon: MatChipAvatar;\n\n /** The chip's trailing icon. */\n @ContentChild(MAT_CHIP_TRAILING_ICON) trailingIcon: MatChipTrailingIcon;\n\n /** The chip's trailing remove icon. */\n @ContentChild(MAT_CHIP_REMOVE) removeIcon: MatChipRemove;\n\n /** Reference to the MatRipple instance of the chip. */\n @ViewChild(MatRipple) ripple: MatRipple;\n\n /** Action receiving the primary set of user interactions. */\n @ViewChild(MatChipAction) primaryAction: MatChipAction;\n\n /**\n * Implementation of the MDC chip adapter interface.\n * These methods are called by the chip foundation.\n */\n protected _chipAdapter: MDCChipAdapter = {\n addClass: className => this._setMdcClass(className, true),\n removeClass: className => this._setMdcClass(className, false),\n hasClass: className => this._elementRef.nativeElement.classList.contains(className),\n emitEvent: <T>(eventName: string, data: T) => {\n emitCustomEvent(this._elementRef.nativeElement, this._document, eventName, data, true);\n },\n setStyleProperty: (propertyName: string, value: string) => {\n this._elementRef.nativeElement.style.setProperty(propertyName, value);\n },\n isRTL: () => this._dir?.value === 'rtl',\n getAttribute: attributeName => this._elementRef.nativeElement.getAttribute(attributeName),\n getElementID: () => this._elementRef.nativeElement.id,\n getOffsetWidth: () => this._elementRef.nativeElement.offsetWidth,\n getActions: () => {\n const result: MDCChipActionType[] = [];\n\n if (this._getAction(MDCChipActionType.PRIMARY)) {\n result.push(MDCChipActionType.PRIMARY);\n }\n\n if (this._getAction(MDCChipActionType.TRAILING)) {\n result.push(MDCChipActionType.TRAILING);\n }\n\n return result;\n },\n isActionSelectable: (action: MDCChipActionType) => {\n return this._getAction(action)?.isSelectable() || false;\n },\n isActionSelected: (action: MDCChipActionType) => {\n return this._getAction(action)?.isSelected() || false;\n },\n isActionDisabled: (action: MDCChipActionType) => {\n return this._getAction(action)?.isDisabled() || false;\n },\n isActionFocusable: (action: MDCChipActionType) => {\n return this._getAction(action)?.isFocusable() || false;\n },\n setActionSelected: (action: MDCChipActionType, isSelected: boolean) => {\n this._getAction(action)?.setSelected(isSelected);\n },\n setActionDisabled: (action: MDCChipActionType, isDisabled: boolean) => {\n this._getAction(action)?.setDisabled(isDisabled);\n },\n setActionFocus: (action: MDCChipActionType, behavior: MDCChipActionFocusBehavior) => {\n this._getAction(action)?.setFocus(behavior);\n },\n };\n\n constructor(\n public _changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef<HTMLElement>,\n protected _ngZone: NgZone,\n private _focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) _document: any,\n @Optional() private _dir: Directionality,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional()\n @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n private _globalRippleOptions?: RippleGlobalOptions,\n @Attribute('tabindex') tabIndex?: string,\n ) {\n super(elementRef);\n const element = elementRef.nativeElement;\n this._document = _document;\n this._chipFoundation = new MDCChipFoundation(this._chipAdapter);\n this._animationsDisabled = animationMode === 'NoopAnimations';\n this._isBasicChip =\n element.hasAttribute(this.basicChipAttrName) ||\n element.tagName.toLowerCase() === this.basicChipAttrName;\n element.addEventListener(MDCChipActionEvents.INTERACTION, this._handleActionInteraction);\n element.addEventListener(MDCChipActionEvents.NAVIGATION, this._handleActionNavigation);\n _focusMonitor.monitor(elementRef, true);\n\n _ngZone.runOutsideAngular(() => {\n element.addEventListener('transitionend', this._handleTransitionend);\n element.addEventListener('animationend', this._handleAnimationend);\n });\n\n if (tabIndex != null) {\n this.tabIndex = parseInt(tabIndex) ?? this.defaultTabIndex;\n }\n }\n\n ngAfterViewInit() {\n this._chipFoundation.init();\n this._chipFoundation.setDisabled(this.disabled);\n this._textElement = this._elementRef.nativeElement.querySelector('.mat-mdc-chip-action-label');\n\n if (this._pendingFocus) {\n this._pendingFocus = false;\n this.focus();\n }\n }\n\n ngOnDestroy() {\n const element = this._elementRef.nativeElement;\n element.removeEventListener(MDCChipActionEvents.INTERACTION, this._handleActionInteraction);\n element.removeEventListener(MDCChipActionEvents.NAVIGATION, this._handleActionNavigation);\n element.removeEventListener('transitionend', this._handleTransitionend);\n element.removeEventListener('animationend', this._handleAnimationend);\n this._chipFoundation.destroy();\n this._focusMonitor.stopMonitoring(this._elementRef);\n this.destroyed.emit({chip: this});\n }\n\n /**\n * Allows for programmatic removal of the chip.\n *\n * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n */\n remove(): void {\n if (this.removable) {\n this.removed.emit({chip: this});\n }\n }\n\n /** Sets whether the given CSS class should be applied to the MDC chip. */\n private _setMdcClass(cssClass: string, active: boolean) {\n const classes = this._elementRef.nativeElement.classList;\n active ? classes.add(cssClass) : classes.remove(cssClass);\n this._changeDetectorRef.markForCheck();\n }\n\n /** Whether or not the ripple should be disabled. */\n _isRippleDisabled(): boolean {\n return (\n this.disabled ||\n this.disableRipple ||\n this._animationsDisabled ||\n this._isBasicChip ||\n !!this._globalRippleOptions?.disabled\n );\n }\n\n _getAction(type: MDCChipActionType): MDCChipActionFoundation | undefined {\n switch (type) {\n case MDCChipActionType.PRIMARY:\n return this.primaryAction?._getFoundation();\n case MDCChipActionType.TRAILING:\n return (this.removeIcon || this.trailingIcon)?._getFoundation();\n }\n\n return undefined;\n }\n\n _getFoundation() {\n return this._chipFoundation;\n }\n\n _hasTrailingIcon() {\n return !!(this.trailingIcon || this.removeIcon);\n }\n\n /** Allows for programmatic focusing of the chip. */\n focus(): void {\n if (this.disabled) {\n return;\n }\n\n // If `focus` is called before `ngAfterViewInit`, we won't have access to the primary action.\n // This can happen if the consumer tries to focus a chip immediately after it is added.\n // Queue the method to be called again on init.\n if (!this.primaryAction) {\n this._pendingFocus = true;\n return;\n }\n\n if (!this._hasFocus()) {\n this._onFocus.next({chip: this});\n this._hasFocusInternal = true;\n }\n\n this.primaryAction.focus();\n }\n\n /** Overridden by MatChipOption. */\n protected _onChipInteraction(event: ActionInteractionEvent) {\n const removeElement = this.removeIcon?._elementRef.nativeElement;\n const trigger = event.detail.trigger;\n\n // MDC's removal process requires an `animationend` event followed by a `transitionend`\n // event coming from the chip, which in turn will call `remove`. While we can stub\n // out these events in our own tests, they can be difficult to fake for consumers that are\n // testing our components or are wrapping them. We skip the entire sequence and trigger the\n // removal directly in order to make the component easier to deal with.\n if (\n removeElement &&\n (trigger === MDCChipActionInteractionTrigger.CLICK ||\n trigger === MDCChipActionInteractionTrigger.ENTER_KEY ||\n trigger === MDCChipActionInteractionTrigger.SPACEBAR_KEY) &&\n (event.target === removeElement || removeElement.contains(event.target))\n ) {\n this.remove();\n } else {\n this._chipFoundation.handleActionInteraction(event);\n }\n }\n\n private _handleActionInteraction = (event: Event) => {\n this._onChipInteraction(event as ActionInteractionEvent);\n };\n\n private _handleActionNavigation = (event: Event) => {\n this._chipFoundation.handleActionNavigation(event as ActionNavigationEvent);\n };\n\n private _handleTransitionend = (event: TransitionEvent) => {\n if (event.target === this._elementRef.nativeElement) {\n this._ngZone.run(() => this._chipFoundation.handleTransitionEnd());\n }\n };\n\n private _handleAnimationend = (event: AnimationEvent) => {\n if (event.target === this._elementRef.nativeElement) {\n this._ngZone.run(() => this._chipFoundation.handleAnimationEnd(event));\n }\n };\n}\n","<span matRipple class=\"mat-mdc-chip-ripple\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"_isRippleCentered\"\n [matRippleTrigger]=\"_elementRef.nativeElement\"></span>\n<span class=\"mat-mdc-chip-focus-overlay\"></span>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\">\n <div matChipAction [isInteractive]=\"false\">\n <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"leadingIcon\">\n <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n </span>\n <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n <ng-content></ng-content>\n <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\"></span>\n </span>\n </div>\n</span>\n\n<span\n class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n *ngIf=\"_hasTrailingIcon()\">\n <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n AfterViewInit,\n OnInit,\n} from '@angular/core';\nimport {\n ActionInteractionEvent,\n MDCChipActionInteractionTrigger,\n MDCChipActionType,\n MDCChipCssClasses,\n} from '@material/chips';\nimport {take} from 'rxjs/operators';\nimport {MatChip} from './chip';\n\n/** Event object emitted by MatChipOption when selected or deselected. */\nexport class MatChipSelectionChange {\n constructor(\n /** Reference to the chip that emitted the event. */\n public source: MatChipOption,\n /** Whether the chip that emitted the event is selected. */\n public selected: boolean,\n /** Whether the selection change was a result of a user interaction. */\n public isUserInput = false,\n ) {}\n}\n\n/**\n * An extension of the MatChip component that supports chip selection.\n * Used with MatChipListbox.\n */\n@Component({\n selector: 'mat-basic-chip-option, mat-chip-option',\n templateUrl: 'chip-option.html',\n styleUrls: ['chip.css'],\n inputs: ['color', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-mdc-chip mat-mdc-chip-option mdc-evolution-chip mdc-evolution-chip--filter',\n '[class.mat-mdc-chip-selected]': 'selected',\n '[class.mat-mdc-chip-multiple]': '_chipListMultiple',\n '[class.mat-mdc-chip-disabled]': 'disabled',\n '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n '[class.mdc-evolution-chip--selectable]': 'selectable',\n '[class.mdc-evolution-chip--disabled]': 'disabled',\n '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n '[class.mdc-evolution-chip--with-primary-graphic]': '_hasLeadingGraphic()',\n '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-highlighted]': 'highlighted',\n '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.role]': 'role',\n '[id]': 'id',\n },\n providers: [{provide: MatChip, useExisting: MatChipOption}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipOption extends MatChip implements OnInit, AfterViewInit {\n /** Whether the component is done initializing. */\n private _isInitialized: boolean;\n\n /**\n * Selected state that was assigned before the component was initializing\n * and which needs to be synced back up with the foundation.\n */\n private _pendingSelectedState: boolean | undefined;\n\n /** Whether the chip list is selectable. */\n chipListSelectable: boolean = true;\n\n /** Whether the chip list is in multi-selection mode. */\n _chipListMultiple: boolean = false;\n\n /**\n * Whether or not the chip is selectable.\n *\n * When a chip is not selectable, changes to its selected state are always\n * ignored. By default an option chip is selectable, and it becomes\n * non-selectable if its parent chip list is not selectable.\n */\n @Input()\n get selectable(): boolean {\n return this._selectable && this.chipListSelectable;\n }\n set selectable(value: BooleanInput) {\n this._selectable = coerceBooleanProperty(value);\n }\n protected _selectable: boolean = true;\n\n /** Whether the chip is selected. */\n @Input()\n get selected(): boolean {\n return (\n this._pendingSelectedState ?? this._chipFoundation.isActionSelected(MDCChipActionType.PRIMARY)\n );\n }\n set selected(value: BooleanInput) {\n if (this.selectable) {\n const coercedValue = coerceBooleanProperty(value);\n\n if (this._isInitialized) {\n this._setSelectedState(coercedValue, false);\n } else {\n this._pendingSelectedState = coercedValue;\n }\n }\n }\n\n /** The ARIA selected applied to the chip. */\n get ariaSelected(): string | null {\n // Remove the `aria-selected` when the chip is deselected in single-selection mode, because\n // it adds noise to NVDA users where \"not selected\" will be read out for each chip.\n return this.selectable && (this._chipListMultiple || this.selected)\n ? this.selected.toString()\n : null;\n }\n\n /** The unstyled chip selector for this component. */\n protected override basicChipAttrName = 'mat-basic-chip-option';\n\n /** Emitted when the chip is selected or deselected. */\n @Output() readonly selectionChange: EventEmitter<MatChipSelectionChange> =\n new EventEmitter<MatChipSelectionChange>();\n\n ngOnInit() {\n this.role = 'presentation';\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this._isInitialized = true;\n\n if (this._pendingSelectedState != null) {\n // Note that we want to clear the pending state before calling `_setSelectedState`, because\n // we want it to read the actual selected state instead falling back to the pending one.\n const selectedState = this._pendingSelectedState;\n this._pendingSelectedState = undefined;\n this._setSelectedState(selectedState, false);\n }\n }\n\n /** Selects the chip. */\n select(): void {\n if (this.selectable) {\n this._setSelectedState(true, false);\n }\n }\n\n /** Deselects the chip. */\n deselect(): void {\n if (this.selectable) {\n this._setSelectedState(false, false);\n }\n }\n\n /** Selects this chip and emits userInputSelection event */\n selectViaInteraction(): void {\n if (this.selectable) {\n this._setSelectedState(true, true);\n }\n }\n\n /** Toggles the current selected state of this chip. */\n toggleSelected(isUserInput: boolean = false): boolean {\n if (this.selectable) {\n this._setSelectedState(!this.selected, isUserInput);\n }\n\n return this.selected;\n }\n\n /** Resets the state of the chip when it loses focus. */\n _blur(): void {\n // When animations are enabled, Angular may end up removing the chip from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the chip list\n // that moves focus not the next item. To work around the issue, we defer marking the chip\n // as not focused until the next time the zone stabilizes.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._ngZone.run(() => {\n this._hasFocusInternal = false;\n this._onBlur.next({chip: this});\n });\n });\n }\n\n protected override _onChipInteraction(event: ActionInteractionEvent) {\n const {trigger, source} = event.detail;\n\n // Non-selection interactions should work the same as other chips.\n if (\n source !== MDCChipActionType.PRIMARY ||\n (trigger !== MDCChipActionInteractionTrigger.CLICK &&\n trigger !== MDCChipActionInteractionTrigger.ENTER_KEY &&\n trigger !== MDCChipActionInteractionTrigger.SPACEBAR_KEY)\n ) {\n super._onChipInteraction(event);\n } else if (this.selectable && !this.disabled) {\n // Otherwise only let the event through if the chip is enabled and selectable.\n this._chipFoundation.handleActionInteraction(event);\n this.selectionChange.emit({\n source: this,\n isUserInput: true,\n selected: this.selected,\n });\n }\n }\n\n _hasLeadingGraphic() {\n // The checkmark graphic is built in for multi-select chip lists.\n return this.leadingIcon || (this._chipListMultiple && this.selectable);\n }\n\n private _setSelectedState(isSelected: boolean, isUserInput: boolean) {\n if (isSelected !== this.selected) {\n this._chipFoundation.setActionSelected(MDCChipActionType.PRIMARY, isSelected);\n this.selectionChange.emit({\n source: this,\n isUserInput,\n selected: this.selected,\n });\n }\n\n // MDC won't assign the selected class until the animation finishes, but that may not\n // happen if animations are disabled. If we detect such a case, assign the class manually.\n if (this._animationsDisabled) {\n this._elementRef.nativeElement.classList.toggle(MDCChipCssClasses.SELECTED, isSelected);\n }\n }\n}\n","<span matRipple class=\"mat-mdc-chip-ripple\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"_isRippleCentered\"\n [matRippleTrigger]=\"_elementRef.nativeElement\"></span>\n<span class=\"mat-mdc-chip-focus-overlay\"></span>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\">\n <button\n matChipAction\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n [attr.aria-selected]=\"ariaSelected\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"option\"\n (blur)=\"_blur()\"\n (focus)=\"focus()\">\n <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"_hasLeadingGraphic()\">\n <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n <span class=\"mdc-evolution-chip__checkmark\">\n <svg class=\"mdc-evolution-chip__checkmark-svg\" viewBox=\"-2 -3 30 30\" focusable=\"false\">\n <path class=\"mdc-evolution-chip__checkmark-path\"\n fill=\"none\" stroke=\"currentColor\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\" />\n </svg>\n </span>\n </span>\n <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n <ng-content></ng-content>\n <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\"></span>\n </span>\n </button>\n</span>\n\n<span\n class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n *ngIf=\"_hasTrailingIcon()\">\n <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n/**\n * A directive that makes a span editable and exposes functions to modify and retrieve the\n * element's contents.\n */\n@Directive({\n selector: 'span[matChipEditInput]',\n host: {\n 'class': 'mat-chip-edit-input',\n 'role': 'textbox',\n 'tabindex': '-1',\n 'contenteditable': 'true',\n },\n})\nexport class MatChipEditInput {\n constructor(\n private readonly _elementRef: ElementRef,\n @Inject(DOCUMENT) private readonly _document: any,\n ) {}\n\n initialize(initialValue: string) {\n this.getNativeElement().focus();\n this.setValue(initialValue);\n }\n\n getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n setValue(value: string) {\n this.getNativeElement().textContent = value;\n this._moveCursorToEndOfInput();\n }\n\n getValue(): string {\n return this.getNativeElement().textContent || '';\n }\n\n private _moveCursorToEndOfInput() {\n const range = this._document.createRange();\n range.selectNodeContents(this.getNativeElement());\n range.collapse(false);\n const sel = window.getSelection()!;\n sel.removeAllRanges();\n sel.addRange(range);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BACKSPACE, DELETE, ENTER} from '@angular/cdk/keycodes';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipEditInput} from './chip-edit-input';\n\n/** Represents an event fired on an individual `mat-chip` when it is edited. */\nexport interface MatChipEditedEvent extends MatChipEvent {\n /** The final edit value. */\n value: string;\n}\n\n/**\n * An extension of the MatChip component used with MatChipGrid and\n * the matChipInputFor directive.\n */\n@Component({\n selector: 'mat-chip-row, mat-basic-chip-row',\n templateUrl: 'chip-row.html',\n styleUrls: ['chip.css'],\n inputs: ['color', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-mdc-chip mat-mdc-chip-row mdc-evolution-chip',\n '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-disabled]': 'disabled',\n '[class.mat-mdc-chip-editing]': '_isEditing',\n '[class.mat-mdc-chip-editable]': 'editable',\n '[class.mdc-evolution-chip--disabled]': 'disabled',\n '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n '[class.mdc-evolution-chip--with-primary-graphic]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-highlighted]': 'highlighted',\n '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n '[id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.role]': 'role',\n '(mousedown)': '_mousedown($event)',\n '(keydown)': '_keydown($event)',\n '(dblclick)': '_doubleclick()',\n '(focusin)': '_focusin($event)',\n '(focusout)': '_focusout($event)',\n },\n providers: [{provide: MatChip, useExisting: MatChipRow}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipRow extends MatChip implements AfterViewInit {\n protected override basicChipAttrName = 'mat-basic-chip-row';\n\n @Input() editable: boolean = false;\n\n /** Emitted when the chip is edited. */\n @Output() readonly edited: EventEmitter<MatChipEditedEvent> =\n new EventEmitter<MatChipEditedEvent>();\n\n /** The default chip edit input that is used if none is projected into this chip row. */\n @ViewChild(MatChipEditInput) defaultEditInput?: MatChipEditInput;\n\n /** The projected chip edit input. */\n @ContentChild(MatChipEditInput) contentEditInput?: MatChipEditInput;\n\n _isEditing = false;\n\n /**\n * Timeout used to give some time between `focusin` and `focusout`\n * in order to determine whether focus has left the chip.\n */\n private _focusoutTimeout: number | null;\n\n constructor(\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef,\n ngZone: NgZone,\n focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) _document: any,\n @Optional() dir: Directionality,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional()\n @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n globalRippleOptions?: RippleGlobalOptions,\n @Attribute('tabindex') tabIndex?: string,\n ) {\n super(\n changeDetectorRef,\n elementRef,\n ngZone,\n focusMonitor,\n _document,\n dir,\n animationMode,\n globalRippleOptions,\n tabIndex,\n );\n\n this.role = 'row';\n }\n\n override _hasTrailingIcon() {\n // The trailing icon is hidden while editing.\n return !this._isEditing && super._hasTrailingIcon();\n }\n\n /**\n * Emits a blur event when one of the gridcells loses focus, unless focus moved\n * to the other gridcell.\n */\n _focusout() {\n if (this._focusoutTimeout) {\n clearTimeout(this._focusoutTimeout);\n }\n\n // Wait to see if focus moves to the other gridcell\n this._focusoutTimeout = window.setTimeout(() => {\n if (this._isEditing) {\n this._onEditFinish();\n }\n\n this._hasFocusInternal = false;\n this._onBlur.next({chip: this});\n });\n }\n\n /** Records that the chip has focus when one of the gridcells is focused. */\n _focusin() {\n if (this._focusoutTimeout) {\n clearTimeout(this._focusoutTimeout);\n this._focusoutTimeout = null;\n }\n\n this._hasFocusInternal = true;\n }\n\n /** Sends focus to the first gridcell when the user clicks anywhere inside the chip. */\n _mousedown(event: MouseEvent) {\n if (!this._isEditing) {\n if (!this.disabled) {\n this.focus();\n }\n\n event.preventDefault();\n }\n }\n\n /** Handles custom key presses. */\n _keydown(event: KeyboardEvent): void {\n if (this.disabled) {\n return;\n }\n\n switch (event.keyCode) {\n case ENTER:\n if (this._isEditing) {\n event.preventDefault();\n // Wrap in a timeout so the timing is consistent as when it is emitted in `focusout`.\n setTimeout(() => this._onEditFinish());\n } else if (this.editable) {\n this._startEditing();\n }\n break;\n case DELETE:\n case BACKSPACE:\n if (!this._isEditing) {\n // Remove the focused chip\n this.remove();\n // Always prevent so page navigation does not occur\n event.preventDefault();\n }\n break;\n }\n }\n\n _doubleclick() {\n if (!this.disabled && this.editable) {\n this._startEditing();\n }\n }\n\n private _startEditing() {\n // The value depends on the DOM so we need to extract it before we flip the flag.\n const value = this.value;\n\n // Make the primary action non-interactive so that it doesn't\n // navigate when the user presses the arrow keys while editing.\n this.primaryAction.isInteractive = false;\n this._isEditing = true;\n\n // Defer initializing the input so it has time to be added to the DOM.\n setTimeout(() => this._getEditInput().initialize(value));\n }\n\n private _onEditFinish() {\n // If the edit input is still focused or focus was returned to the body after it was destroyed,\n // return focus to the chip contents.\n if (\n this._document.activeElement === this._getEditInput().getNativeElement() ||\n this._document.activeElement === this._document.body\n ) {\n this.primaryAction.focus();\n }\n this.edited.emit({chip: this, value: this._getEditInput().getValue()});\n this.primaryAction.isInteractive = true;\n this._isEditing = false;\n }\n\n /**\n * Gets the projected chip edit input, or the default input if none is projected in. One of these\n * two values is guaranteed to be defined.\n */\n private _getEditInput(): MatChipEditInput {\n return this.contentEditInput || this.defaultEditInput!;\n }\n}\n","<ng-container *ngIf=\"!_isEditing\">\n <span matRipple class=\"mat-mdc-chip-ripple\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"_isRippleCentered\"\n [matRippleTrigger]=\"_elementRef.nativeElement\"></span>\n <span class=\"mat-mdc-chip-focus-overlay\"></span>\n</ng-container>\n\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\" role=\"gridcell\">\n <button\n matChipAction\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel\">\n <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"leadingIcon\">\n <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n </span>\n <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\" [ngSwitch]=\"_isEditing\">\n <ng-container *ngSwitchCase=\"false\"><ng-content></ng-content></ng-container>\n\n <ng-container *ngSwitchCase=\"true\">\n <ng-content *ngIf=\"contentEditInput; else defaultMatChipEditInput\"\n select=\"[matChipEditInput]\"></ng-content>\n <ng-template #defaultMatChipEditInput><span matChipEditInput></span></ng-template>\n </ng-container>\n\n <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\"></span>\n </span>\n </button>\n</span>\n\n<span\n class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n *ngIf=\"_hasTrailingIcon()\">\n <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LiveAnnouncer} from '@angular/cdk/a11y';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {HasTabIndex, mixinTabIndex} from '@angular/material-experimental/mdc-core';\nimport {\n MDCChipSetFoundation,\n MDCChipSetAdapter,\n MDCChipFoundation,\n MDCChipEvents,\n ChipAnimationEvent,\n ChipInteractionEvent,\n ChipNavigationEvent,\n MDCChipActionType,\n} from '@material/chips';\nimport {merge, Observable, Subject} from 'rxjs';\nimport {startWith, switchMap, takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {emitCustomEvent} from './emit-event';\n\n/**\n * Boilerplate for applying mixins to MatChipSet.\n * @docs-private\n */\nabstract class MatChipSetBase {\n abstract disabled: boolean;\n constructor(_elementRef: ElementRef) {}\n}\nconst _MatChipSetMixinBase = mixinTabIndex(MatChipSetBase);\n\n/**\n * Basic container component for the MatChip component.\n *\n * Extended by MatChipListbox and MatChipGrid for different interaction patterns.\n */\n@Component({\n selector: 'mat-chip-set',\n template: `\n <span class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n <ng-content></ng-content>\n </span>\n `,\n styleUrls: ['chip-set.css'],\n host: {\n 'class': 'mat-mdc-chip-set mdc-evolution-chip-set',\n '[attr.role]': 'role',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipSet\n extends _MatChipSetMixinBase\n implements AfterContentInit, AfterViewInit, HasTabIndex, OnDestroy\n{\n /**\n * When a chip is destroyed, we store the index of the destroyed chip until the chips\n * query list notifies about the update. This is necessary because we cannot determine an\n * appropriate chip that should receive focus until the array of chips updated completely.\n */\n protected _lastDestroyedChipIndex: number | null = null;\n\n /** The MDC foundation containing business logic for MDC chip-set. */\n protected _chipSetFoundation: MDCChipSetFoundation;\n\n /** Subject that emits when the component has been destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Role to use if it hasn't been overwritten by the user. */\n protected _defaultRole = 'presentation';\n\n /** Combined stream of all of the child chips' remove events. */\n get chipDestroyedChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip.destroyed);\n }\n\n /**\n * Implementation of the MDC chip-set adapter interface.\n * These methods are called by the chip set foundation.\n */\n protected _chipSetAdapter: MDCChipSetAdapter = {\n announceMessage: message => this._liveAnnouncer.announce(message),\n emitEvent: (eventName, eventDetail) => {\n emitCustomEvent(this._elementRef.nativeElement, this._document, eventName, eventDetail, true);\n },\n getAttribute: name => this._elementRef.nativeElement.getAttribute(name),\n getChipActionsAtIndex: index => this._chipFoundation(index)?.getActions() || [],\n getChipCount: () => this._chips.length,\n getChipIdAtIndex: index => this._chipFoundation(index)?.getElementID() || '',\n getChipIndexById: id => {\n return this._chips.toArray().findIndex(chip => chip._getFoundation().getElementID() === id);\n },\n isChipFocusableAtIndex: (index, actionType) => {\n return this._chipFoundation(index)?.isActionFocusable(actionType) || false;\n },\n isChipSelectableAtIndex: (index, actionType) => {\n return this._chipFoundation(index)?.isActionSelectable(actionType) || false;\n },\n isChipSelectedAtIndex: (index, actionType) => {\n return this._chipFoundation(index)?.isActionSelected(actionType) || false;\n },\n removeChipAtIndex: index => this._chips.toArray()[index]?.remove(),\n setChipFocusAtIndex: (index, action, behavior) => {\n this._chipFoundation(index)?.setActionFocus(action, behavior);\n },\n setChipSelectedAtIndex: (index, actionType, isSelected) => {\n // Setting the trailing action as deselected ends up deselecting the entire chip.\n // This is working as expected, but it's not something we want so we only apply the\n // selected state to the primary chip.\n if (actionType === MDCChipActionType.PRIMARY) {\n this._chipFoundation(index)?.setActionSelected(actionType, isSelected);\n }\n },\n startChipAnimationAtIndex: (index, animation) => {\n this._chipFoundation(index)?.startAnimation(animation);\n },\n };\n\n /**\n * Map from class to whether the class is enabled.\n * Enabled classes are set on the MDC chip-set div.\n */\n _mdcClasses: {[key: string]: boolean} = {};\n\n /** Whether the chip set is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n protected _disabled: boolean = false;\n\n /** Whether the chip list contains chips or not. */\n get empty(): boolean {\n return this._chips.length === 0;\n }\n\n /** The ARIA role applied to the chip set. */\n @Input()\n get role(): string | null {\n if (this._explicitRole) {\n return this._explicitRole;\n }\n\n return this.empty ? null : this._defaultRole;\n }\n\n set role(value: string | null) {\n this._explicitRole = value;\n }\n private _explicitRole: string | null = null;\n\n /** Whether any of the chips inside of this chip-set has focus. */\n get focused(): boolean {\n return this._hasFocusedChip();\n }\n\n /** The chips that are part of this chip set. */\n @ContentChildren(MatChip, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true,\n })\n _chips: QueryList<MatChip>;\n\n constructor(\n private _liveAnnouncer: LiveAnnouncer,\n @Inject(DOCUMENT) private _document: any,\n protected _elementRef: ElementRef<HTMLElement>,\n protected _changeDetectorRef: ChangeDetectorRef,\n ) {\n super(_elementRef);\n const element = _elementRef.nativeElement;\n this._chipSetFoundation = new MDCChipSetFoundation(this._chipSetAdapter);\n element.addEventListener(MDCChipEvents.ANIMATION, this._handleChipAnimation);\n element.addEventListener(MDCChipEvents.INTERACTION, this._handleChipInteraction);\n element.addEventListener(MDCChipEvents.NAVIGATION, this._handleChipNavigation);\n }\n\n ngAfterViewInit() {\n this._chipSetFoundation.init();\n }\n\n ngAfterContentInit() {\n this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n if (this.disabled) {\n // Since this happens after the content has been\n // checked, we need to defer it to the next tick.\n Promise.resolve().then(() => {\n this._syncChipsState();\n });\n }\n });\n\n this.chipDestroyedChanges.pipe(takeUntil(this._destroyed)).subscribe((event: MatChipEvent) => {\n const chip = event.chip;\n const chipIndex = this._chips.toArray().indexOf(event.chip);\n\n // In case the chip that will be removed is currently focused, we temporarily store\n // the index in order to be able to determine an appropriate sibling chip that will\n // receive focus.\n if (this._isValidIndex(chipIndex) && chip._hasFocus()) {\n this._lastDestroyedChipIndex = chipIndex;\n }\n });\n }\n\n ngOnDestroy() {\n const element = this._elementRef.nativeElement;\n element.removeEventListener(MDCChipEvents.ANIMATION, this._handleChipAnimation);\n element.removeEventListener(MDCChipEvents.INTERACTION, this._handleChipInteraction);\n element.removeEventListener(MDCChipEvents.NAVIGATION, this._handleChipNavigation);\n this._destroyed.next();\n this._destroyed.complete();\n this._chipSetFoundation.destroy();\n }\n\n /** Checks whether any of the chips is focused. */\n protected _hasFocusedChip() {\n return this._chips && this._chips.some(chip => chip._hasFocus());\n }\n\n /** Syncs the chip-set's state with the individual chips. */\n protected _syncChipsState() {\n if (this._chips) {\n this._chips.forEach(chip => {\n chip.disabled = this._disabled;\n chip._changeDetectorRef.markForCheck();\n });\n }\n }\n\n /** Dummy method for subclasses to override. Base chip set cannot be focused. */\n focus() {}\n\n /**\n * Utility to ensure all indexes are valid.\n *\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of chips.\n */\n protected _isValidIndex(index: number): boolean {\n return index >= 0 && index < this._chips.length;\n }\n\n /** Checks whether an event comes from inside a chip element. */\n protected _originatesFromChip(event: Event): boolean {\n return this._checkForClassInHierarchy(event, 'mdc-evolution-chip');\n }\n\n /**\n * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the\n * user to tab out of it. This prevents the grid from capturing focus and redirecting\n * it back to the first chip, creating a focus trap, if it user tries to tab away.\n */\n protected _allowFocusEscape() {\n const previousTabIndex = this.tabIndex;\n\n if (this.tabIndex !== -1) {\n this.tabIndex = -1;\n\n setTimeout(() => {\n this.tabIndex = previousTabIndex;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n /**\n * Gets a stream of events from all the chips within the set.\n * The stream will automatically incorporate any newly-added chips.\n */\n protected _getChipStream<T, C extends MatChip = MatChip>(\n mappingFunction: (chip: C) => Observable<T>,\n ): Observable<T> {\n return this._chips.changes.pipe(\n startWith(null),\n switchMap(() => merge(...(this._chips as QueryList<C>).map(mappingFunction))),\n );\n }\n\n protected _checkForClassInHierarchy(event: Event, className: string) {\n let currentElement = event.target as HTMLElement | null;\n\n while (currentElement && currentElement !== this._elementRef.nativeElement) {\n // Null check the classList, because IE and Edge don't support it on all elements.\n if (currentElement.classList && currentElement.classList.contains(className)) {\n return true;\n }\n\n currentElement = currentElement.parentElement;\n }\n\n return false;\n }\n\n private _chipFoundation(index: number): MDCChipFoundation | undefined {\n return this._chips.toArray()[index]?._getFoundation();\n }\n\n private _handleChipAnimation = (event: Event) => {\n this._chipSetFoundation.handleChipAnimation(event as ChipAnimationEvent);\n };\n\n private _handleChipInteraction = (event: Event) => {\n this._chipSetFoundation.handleChipInteraction(event as ChipInteractionEvent);\n };\n\n private _handleChipNavigation = (event: Event) => {\n this._chipSetFoundation.handleChipNavigation(event as ChipNavigationEvent);\n };\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {TAB} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {MDCChipActionType} from '@material/chips';\nimport {Observable} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipOption, MatChipSelectionChange} from './chip-option';\nimport {MatChipSet} from './chip-set';\n\n/** Change event object that is emitted when the chip listbox value has changed. */\nexport class MatChipListboxChange {\n constructor(\n /** Chip listbox that emitted the event. */\n public source: MatChipListbox,\n /** Value of the chip listbox when the event was emitted. */\n public value: any,\n ) {}\n}\n\n/**\n * Provider Expression that allows mat-chip-listbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatChipListbox),\n multi: true,\n};\n\n/**\n * An extension of the MatChipSet component that supports chip selection.\n * Used with MatChipOption chips.\n */\n@Component({\n selector: 'mat-chip-listbox',\n template: `\n <span class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n <ng-content></ng-content>\n </span>\n `,\n styleUrls: ['chip-set.css'],\n inputs: ['tabIndex'],\n host: {\n 'class': 'mdc-evolution-chip-set mat-mdc-chip-listbox',\n '[attr.role]': 'role',\n '[tabIndex]': 'empty ? -1 : tabIndex',\n // TODO: replace this binding with use of AriaDescriber\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-required]': 'role ? required : null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-orientation]': 'ariaOrientation',\n '[class.mat-mdc-chip-list-disabled]': 'disabled',\n '[class.mat-mdc-chip-list-required]': 'required',\n '(focus)': 'focus()',\n '(blur)': '_blur()',\n '(keydown)': '_keydown($event)',\n },\n providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipListbox\n extends MatChipSet\n implements AfterContentInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Function when touched. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onTouched = () => {};\n\n /**\n * Function when changed. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onChange: (value: any) => void = () => {};\n\n // TODO: MDC uses `grid` here\n protected override _defaultRole = 'listbox';\n\n /** Whether the user should be allowed to select multiple chips. */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: BooleanInput) {\n this._multiple = coerceBooleanProperty(value);\n this._syncListboxProperties();\n }\n private _multiple: boolean = false;\n\n /** The array of selected chips inside the chip listbox. */\n get selected(): MatChipOption[] | MatChipOption {\n const selectedChips = this._chips.toArray().filter(chip => chip.selected);\n return this.multiple ? selectedChips : selectedChips[0];\n }\n\n /** Orientation of the chip list. */\n @Input('aria-orientation') ariaOrientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Whether or not this chip listbox is selectable.\n *\n * When a chip listbox is not selectable, the selected states for all\n * the chips inside the chip listbox are always ignored.\n */\n @Input()\n get selectable(): boolean {\n return this._selectable;\n }\n set selectable(value: BooleanInput) {\n this._selectable = coerceBooleanProperty(value);\n this._syncListboxProperties();\n }\n protected _selectable: boolean = true;\n\n /**\n * A function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith(): (o1: any, o2: any) => boolean {\n return this._compareWith;\n }\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n this._compareWith = fn;\n this._initializeSelection();\n }\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n\n /** Whether this chip listbox is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required: boolean = false;\n\n /** Combined stream of all of the child chips' selection change events. */\n get chipSelectionChanges(): Observable<MatChipSelectionChange> {\n return this._getChipStream<MatChipSelectionChange, MatChipOption>(chip => chip.selectionChange);\n }\n\n /** Combined stream of all of the child chips' focus events. */\n get chipFocusChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onFocus);\n }\n\n /** Combined stream of all of the child chips' blur events. */\n get chipBlurChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onBlur);\n }\n\n /** The value of the listbox, which is the combined value of the selected chips. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n this.writeValue(value);\n this._value = value;\n }\n protected _value: any;\n\n /** Event emitted when the selected chip listbox value has been changed by the user. */\n @Output() readonly change: EventEmitter<MatChipListboxChange> =\n new EventEmitter<MatChipListboxChange>();\n\n @ContentChildren(MatChipOption, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true,\n })\n override _chips: QueryList<MatChipOption>;\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n // Update listbox selectable/multiple properties on chips\n this._syncListboxProperties();\n\n // Reset chips selected/deselected status\n this._initializeSelection();\n\n // Check to see if we have a destroyed chip and need to refocus\n this._updateFocusForDestroyedChips();\n });\n\n this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._blur());\n this.chipSelectionChanges.pipe(takeUntil(this._destroyed)).subscribe(event => {\n if (event.isUserInput) {\n this._propagateChanges();\n }\n });\n }\n\n /**\n * Focuses the first selected chip in this chip listbox, or the first non-disabled chip when there\n * are no selected chips.\n */\n override focus(): void {\n if (this.disabled) {\n return;\n }\n\n const firstSelectedChip = this._getFirstSelectedChip();\n\n if (firstSelectedChip) {\n firstSelectedChip.focus();\n } else if (this._chips.length > 0) {\n // MDC sets the tabindex directly on the DOM node when the user is navigating which means\n // that we may end up with a `0` value from a previous interaction. We reset it manually\n // here to ensure that the state is correct.\n this._chips.forEach(chip => chip.primaryAction._updateTabindex(-1));\n this._chips.first.primaryAction.focus();\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n writeValue(value: any): void {\n if (this._chips) {\n this._setSelectionByValue(value, false);\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Selects all chips with value. */\n _setSelectionByValue(value: any, isUserInput: boolean = true) {\n this._clearSelection();\n\n if (Array.isArray(value)) {\n value.forEach(currentValue => this._selectValue(currentValue, isUserInput));\n } else {\n this._selectValue(value, isUserInput);\n }\n }\n\n /** When blurred, marks the field as touched when focus moved outside the chip listbox. */\n _blur() {\n if (!this.disabled) {\n // Wait to see if focus moves to an individual chip.\n setTimeout(() => {\n if (!this.focused) {\n this._propagateChanges();\n this._markAsTouched();\n }\n });\n }\n }\n\n _keydown(event: KeyboardEvent) {\n if (event.keyCode === TAB) {\n super._allowFocusEscape();\n }\n }\n\n /** Marks the field as touched */\n private _markAsTouched() {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n\n /** Emits change event to set the model value. */\n private _propagateChanges(): void {\n let valueToEmit: any = null;\n\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map(chip => chip.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : undefined;\n }\n this._value = valueToEmit;\n this.change.emit(new MatChipListboxChange(this, valueToEmit));\n this._onChange(valueToEmit);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Initializes the chip listbox selection state to reflect any chips that were preselected.\n */\n private _initializeSelection() {\n setTimeout(() => {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n this._chips.forEach((chip, index) => {\n if (chip.selected) {\n this._chipSetFoundation.setChipSelected(index, MDCChipActionType.PRIMARY, true);\n }\n });\n });\n }\n\n /**\n * Deselects every chip in the listbox.\n * @param skip Chip that should not be deselected.\n */\n private _clearSelection(skip?: MatChip): void {\n this._chips.forEach(chip => {\n if (chip !== skip) {\n chip.deselect();\n }\n });\n }\n\n /**\n * Finds and selects the chip based on its value.\n * @returns Chip that has the corresponding value.\n */\n private _selectValue(value: any, isUserInput: boolean = true): MatChip | undefined {\n const correspondingChip = this._chips.find(chip => {\n return chip.value != null && this._compareWith(chip.value, value);\n });\n\n if (correspondingChip) {\n isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();\n }\n\n return correspondingChip;\n }\n\n /** Syncs the chip-listbox selection state with the individual chips. */\n private _syncListboxProperties() {\n if (this._chips) {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this._chips.forEach(chip => {\n chip._chipListMultiple = this.multiple;\n chip.chipListSelectable = this._selectable;\n chip._changeDetectorRef.markForCheck();\n });\n });\n }\n }\n\n /** Returns the first selected chip in this listbox, or undefined if no chips are selected. */\n private _getFirstSelectedChip(): MatChipOption | undefined {\n if (Array.isArray(this.selected)) {\n return this.selected.length ? this.selected[0] : undefined;\n } else {\n return this.selected;\n }\n }\n\n /**\n * If the amount of chips changed, we need to update the\n * key manager state and focus the next closest chip.\n */\n private _updateFocusForDestroyedChips() {\n // Move focus to the closest chip. If no other chips remain, focus the chip-listbox itself.\n if (this._lastDestroyedChipIndex != null) {\n if (this._chips.length) {\n const newChipIndex = Math.min(this._lastDestroyedChipIndex, this._chips.length - 1);\n this._chips.toArray()[newChipIndex].focus();\n } else {\n this.focus();\n }\n }\n\n this._lastDestroyedChipIndex = null;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {TAB} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroupDirective,\n NgControl,\n NgForm,\n Validators,\n} from '@angular/forms';\nimport {DOCUMENT} from '@angular/common';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n mixinErrorState,\n} from '@angular/material-experimental/mdc-core';\nimport {MatFormFieldControl} from '@angular/material-experimental/mdc-form-field';\nimport {LiveAnnouncer} from '@angular/cdk/a11y';\nimport {MatChipTextControl} from './chip-text-control';\nimport {Observable, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {MatChipEvent} from './chip';\nimport {MatChipRow} from './chip-row';\nimport {MatChipSet} from './chip-set';\n\n/** Change event object that is emitted when the chip grid value has changed. */\nexport class MatChipGridChange {\n constructor(\n /** Chip grid that emitted the event. */\n public source: MatChipGrid,\n /** Value of the chip grid when the event was emitted. */\n public value: any,\n ) {}\n}\n\n/**\n * Boilerplate for applying mixins to MatChipGrid.\n * @docs-private\n */\nclass MatChipGridBase extends MatChipSet {\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n constructor(\n liveAnnouncer: LiveAnnouncer,\n document: any,\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n public ngControl: NgControl,\n ) {\n super(liveAnnouncer, document, elementRef, changeDetectorRef);\n }\n}\nconst _MatChipGridMixinBase = mixinErrorState(MatChipGridBase);\n\n/**\n * An extension of the MatChipSet component used with MatChipRow chips and\n * the matChipInputFor directive.\n */\n@Component({\n selector: 'mat-chip-grid',\n template: `\n <span class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n <ng-content></ng-content>\n </span>\n `,\n styleUrls: ['chip-set.css'],\n inputs: ['tabIndex'],\n host: {\n 'class': 'mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set',\n '[attr.role]': 'role',\n '[tabIndex]': '_chips && _chips.length === 0 ? -1 : tabIndex',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.mat-mdc-chip-list-disabled]': 'disabled',\n '[class.mat-mdc-chip-list-invalid]': 'errorState',\n '[class.mat-mdc-chip-list-required]': 'required',\n '(focus)': 'focus()',\n '(blur)': '_blur()',\n '(keydown)': '_keydown($event)',\n },\n providers: [{provide: MatFormFieldControl, useExisting: MatChipGrid}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipGrid\n extends _MatChipGridMixinBase\n implements\n AfterContentInit,\n AfterViewInit,\n CanUpdateErrorState,\n ControlValueAccessor,\n DoCheck,\n MatFormFieldControl<any>,\n OnDestroy\n{\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n readonly controlType: string = 'mat-chip-grid';\n\n /** The chip input to add more chips */\n protected _chipInput: MatChipTextControl;\n\n protected override _defaultRole = 'grid';\n\n /**\n * List of element ids to propagate to the chipInput's aria-describedby attribute.\n */\n private _ariaDescribedbyIds: string[] = [];\n\n /**\n * Function when touched. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onTouched = () => {};\n\n /**\n * Function when changed. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onChange: (value: any) => void = () => {};\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n override get disabled(): boolean {\n return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n }\n override set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id(): string {\n return this._chipInput.id;\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n override get empty(): boolean {\n return (\n (!this._chipInput || this._chipInput.empty) && (!this._chips || this._chips.length === 0)\n );\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n protected _placeholder: string;\n\n /** Whether any chips or the matChipInput inside of this chip-grid has focus. */\n override get focused(): boolean {\n return this._chipInput.focused || this._hasFocusedChip();\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n protected _required: boolean | undefined;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n return !this.empty || this.focused;\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n this._value = value;\n }\n protected _value: any[] = [];\n\n /** An object used to control when error messages are shown. */\n @Input() override errorStateMatcher: ErrorStateMatcher;\n\n /** Combined stream of all of the child chips' blur events. */\n get chipBlurChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onBlur);\n }\n\n /** Combined stream of all of the child chips' focus events. */\n get chipFocusChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onFocus);\n }\n\n /** Emits when the chip grid value has been changed by the user. */\n @Output() readonly change: EventEmitter<MatChipGridChange> =\n new EventEmitter<MatChipGridChange>();\n\n /**\n * Emits whenever the raw value of the chip-grid changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(MatChipRow, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true,\n })\n override _chips: QueryList<MatChipRow>;\n\n constructor(\n liveAnnouncer: LiveAnnouncer,\n @Inject(DOCUMENT) document: any,\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() ngControl: NgControl,\n ) {\n super(\n liveAnnouncer,\n document,\n elementRef,\n changeDetectorRef,\n defaultErrorStateMatcher,\n parentForm,\n parentFormGroup,\n ngControl,\n );\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n\n this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n // Check to see if we have a destroyed chip and need to refocus\n this._updateFocusForDestroyedChips();\n this.stateChanges.next();\n });\n\n this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._blur();\n this.stateChanges.next();\n });\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n if (!this._chipInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('mat-chip-grid must be used in combination with matChipInputFor.');\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.stateChanges.complete();\n }\n\n /** Associates an HTML input element with this chip grid. */\n registerInput(inputElement: MatChipTextControl): void {\n this._chipInput = inputElement;\n this._chipInput.setDescribedByIds(this._ariaDescribedbyIds);\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick(event: MouseEvent) {\n if (!this.disabled && !this._originatesFromChip(event)) {\n this.focus();\n }\n }\n\n /**\n * Focuses the first chip in this chip grid, or the associated input when there\n * are no eligible chips.\n */\n override focus(): void {\n if (this.disabled || this._chipInput.focused) {\n return;\n }\n\n if (this._chips.length > 0) {\n // MDC sets the tabindex directly on the DOM node when the user is navigating which means\n // that we may end up with a `0` value from a previous interaction. We reset it manually\n // here to ensure that the state is correct.\n this._chips.forEach(chip => chip.primaryAction._updateTabindex(-1));\n this._chips.first.focus();\n } else {\n // Delay until the next tick, because this can cause a \"changed after checked\"\n // error if the input does something on focus (e.g. opens an autocomplete).\n Promise.resolve().then(() => this._chipInput.focus());\n }\n\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n // We must keep this up to date to handle the case where ids are set\n // before the chip input is registered.\n this._ariaDescribedbyIds = ids;\n\n if (this._chipInput) {\n // Use a setTimeout in case this is being run during change detection\n // and the chip input has already determined its host binding for\n // aria-describedBy.\n setTimeout(() => {\n this._chipInput.setDescribedByIds(ids);\n }, 0);\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n writeValue(value: any): void {\n // The user is responsible for creating the child chips, so we just store the value.\n this._value = value;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n /** When blurred, mark the field as touched when focus moved outside the chip grid. */\n _blur() {\n if (this.disabled) {\n return;\n }\n\n // Check whether the focus moved to chip input.\n // If the focus is not moved to chip input, mark the field as touched. If the focus moved\n // to chip input, do nothing.\n // Timeout is needed to wait for the focus() event trigger on chip input.\n setTimeout(() => {\n if (!this.focused) {\n this._propagateChanges();\n this._markAsTouched();\n }\n });\n }\n\n /**\n * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the\n * user to tab out of it. This prevents the grid from capturing focus and redirecting\n * it back to the first chip, creating a focus trap, if it user tries to tab away.\n */\n protected override _allowFocusEscape() {\n if (!this._chipInput.focused) {\n super._allowFocusEscape();\n }\n }\n\n /** Handles custom keyboard events. */\n _keydown(event: KeyboardEvent) {\n if (event.keyCode === TAB && (event.target as HTMLElement).id !== this._chipInput.id) {\n this._allowFocusEscape();\n }\n\n this.stateChanges.next();\n }\n\n _focusLastChip() {\n if (this._chips.length) {\n this._chips.last.primaryAction.focus();\n }\n }\n\n /** Emits change event to set the model value. */\n private _propagateChanges(): void {\n const valueToEmit = this._chips.length ? this._chips.toArray().map(chip => chip.value) : [];\n this._value = valueToEmit;\n this.change.emit(new MatChipGridChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this._changeDetectorRef.markForCheck();\n }\n\n /** Mark the field as touched */\n private _markAsTouched() {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n /**\n * If the amount of chips changed, we need to focus the next closest chip.\n */\n private _updateFocusForDestroyedChips() {\n // Move focus to the closest chip. If no other chips remain, focus the chip-grid itself.\n if (this._lastDestroyedChipIndex != null) {\n if (this._chips.length) {\n const newChipIndex = Math.min(this._lastDestroyedChipIndex, this._chips.length - 1);\n this._chips.toArray()[newChipIndex].focus();\n } else {\n this.focus();\n }\n }\n\n this._lastDestroyedChipIndex = null;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/** Default options, for the chips module, that can be overridden. */\nexport interface MatChipsDefaultOptions {\n /** The list of key codes that will trigger a chipEnd event. */\n separatorKeyCodes: readonly number[] | ReadonlySet<number>;\n}\n\n/** Injection token to be used to override the default options for the chips module. */\nexport const MAT_CHIPS_DEFAULT_OPTIONS = new InjectionToken<MatChipsDefaultOptions>(\n 'mat-chips-default-options',\n);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BACKSPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n} from '@angular/core';\nimport {MatFormField, MAT_FORM_FIELD} from '@angular/material-experimental/mdc-form-field';\nimport {MatChipsDefaultOptions, MAT_CHIPS_DEFAULT_OPTIONS} from './chip-default-options';\nimport {MatChipGrid} from './chip-grid';\nimport {MatChipTextControl} from './chip-text-control';\n\n/** Represents an input event on a `matChipInput`. */\nexport interface MatChipInputEvent {\n /**\n * The native `<input>` element that the event is being fired for.\n * @deprecated Use `MatChipInputEvent#chipInput.inputElement` instead.\n * @breaking-change 13.0.0 This property will be removed.\n */\n input: HTMLInputElement;\n\n /** The value of the input. */\n value: string;\n\n /** Reference to the chip input that emitted the event. */\n chipInput: MatChipInput;\n}\n\n// Increasing integer for generating unique ids.\nlet nextUniqueId = 0;\n\n/**\n * Directive that adds chip-specific behaviors to an input element inside `<mat-form-field>`.\n * May be placed inside or outside of a `<mat-chip-grid>`.\n */\n@Directive({\n selector: 'input[matChipInputFor]',\n exportAs: 'matChipInput, matChipInputFor',\n host: {\n // TODO: eventually we should remove `mat-input-element` from here since it comes from the\n // non-MDC version of the input. It's currently being kept for backwards compatibility, because\n // the MDC chips were landed initially with it.\n 'class': 'mat-mdc-chip-input mat-mdc-input-element mdc-text-field__input mat-input-element',\n '(keydown)': '_keydown($event)',\n '(keyup)': '_keyup($event)',\n '(blur)': '_blur()',\n '(focus)': '_focus()',\n '(input)': '_onInput()',\n '[id]': 'id',\n '[attr.disabled]': 'disabled || null',\n '[attr.placeholder]': 'placeholder || null',\n '[attr.aria-invalid]': '_chipGrid && _chipGrid.ngControl ? _chipGrid.ngControl.invalid : null',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-required]': '_chipGrid && _chipGrid.required || null',\n '[attr.required]': '_chipGrid && _chipGrid.required || null',\n },\n})\nexport class MatChipInput implements MatChipTextControl, AfterContentInit, OnChanges, OnDestroy {\n /** Used to prevent focus moving to chips while user is holding backspace */\n private _focusLastChipOnBackspace: boolean;\n\n /** Value for ariaDescribedby property */\n _ariaDescribedby?: string;\n\n /** Whether the control is focused. */\n focused: boolean = false;\n _chipGrid: MatChipGrid;\n\n /** Register input for chip list */\n @Input('matChipInputFor')\n set chipGrid(value: MatChipGrid) {\n if (value) {\n this._chipGrid = value;\n this._chipGrid.registerInput(this);\n }\n }\n\n /**\n * Whether or not the chipEnd event will be emitted when the input is blurred.\n */\n @Input('matChipInputAddOnBlur')\n get addOnBlur(): boolean {\n return this._addOnBlur;\n }\n set addOnBlur(value: BooleanInput) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n _addOnBlur: boolean = false;\n\n /**\n * The list of key codes that will trigger a chipEnd event.\n *\n * Defaults to `[ENTER]`.\n */\n @Input('matChipInputSeparatorKeyCodes')\n separatorKeyCodes: readonly number[] | ReadonlySet<number> =\n this._defaultOptions.separatorKeyCodes;\n\n /** Emitted when a chip is to be added. */\n @Output('matChipInputTokenEnd')\n readonly chipEnd: EventEmitter<MatChipInputEvent> = new EventEmitter<MatChipInputEvent>();\n\n /** The input's placeholder text. */\n @Input() placeholder: string = '';\n\n /** Unique id for the input. */\n @Input() id: string = `mat-mdc-chip-list-input-${nextUniqueId++}`;\n\n /** Whether the input is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this._chipGrid && this._chipGrid.disabled);\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean = false;\n\n /** Whether the input is empty. */\n get empty(): boolean {\n return !this.inputElement.value;\n }\n\n /** The native input element to which this directive is attached. */\n readonly inputElement!: HTMLInputElement;\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement>,\n @Inject(MAT_CHIPS_DEFAULT_OPTIONS) private _defaultOptions: MatChipsDefaultOptions,\n @Optional() @Inject(MAT_FORM_FIELD) formField?: MatFormField,\n ) {\n this.inputElement = this._elementRef.nativeElement as HTMLInputElement;\n\n if (formField) {\n this.inputElement.classList.add('mat-mdc-form-field-input-control');\n }\n }\n\n ngOnChanges() {\n this._chipGrid.stateChanges.next();\n }\n\n ngOnDestroy(): void {\n this.chipEnd.complete();\n }\n\n ngAfterContentInit(): void {\n this._focusLastChipOnBackspace = this.empty;\n }\n\n /** Utility method to make host definition/tests more clear. */\n _keydown(event?: KeyboardEvent) {\n if (event) {\n // To prevent the user from accidentally deleting chips when pressing BACKSPACE continuously,\n // We focus the last chip on backspace only after the user has released the backspace button,\n // And the input is empty (see behaviour in _keyup)\n if (event.keyCode === BACKSPACE && this._focusLastChipOnBackspace) {\n this._chipGrid._focusLastChip();\n event.preventDefault();\n return;\n } else {\n this._focusLastChipOnBackspace = false;\n }\n }\n\n this._emitChipEnd(event);\n }\n\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n _keyup(event: KeyboardEvent) {\n // Allow user to move focus to chips next time he presses backspace\n if (!this._focusLastChipOnBackspace && event.keyCode === BACKSPACE && this.empty) {\n this._focusLastChipOnBackspace = true;\n event.preventDefault();\n }\n }\n\n /** Checks to see if the blur should emit the (chipEnd) event. */\n _blur() {\n if (this.addOnBlur) {\n this._emitChipEnd();\n }\n this.focused = false;\n // Blur the chip list if it is not focused\n if (!this._chipGrid.focused) {\n this._chipGrid._blur();\n }\n this._chipGrid.stateChanges.next();\n }\n\n _focus() {\n this.focused = true;\n this._focusLastChipOnBackspace = this.empty;\n this._chipGrid.stateChanges.next();\n }\n\n /** Checks to see if the (chipEnd) event needs to be emitted. */\n _emitChipEnd(event?: KeyboardEvent) {\n if (!this.inputElement.value && !!event) {\n this._chipGrid._keydown(event);\n }\n\n if (!event || this._isSeparatorKey(event)) {\n this.chipEnd.emit({\n input: this.inputElement,\n value: this.inputElement.value,\n chipInput: this,\n });\n\n event?.preventDefault();\n }\n }\n\n _onInput() {\n // Let chip list know whenever the value changes.\n this._chipGrid.stateChanges.next();\n }\n\n /** Focuses the input. */\n focus(): void {\n this.inputElement.focus();\n }\n\n /** Clears the input */\n clear(): void {\n this.inputElement.value = '';\n this._focusLastChipOnBackspace = true;\n }\n\n setDescribedByIds(ids: string[]): void {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Checks whether a keycode is one of the configured separators. */\n private _isSeparatorKey(event: KeyboardEvent) {\n return !hasModifierKey(event) && new Set(this.separatorKeyCodes).has(event.keyCode);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n ErrorStateMatcher,\n MatCommonModule,\n MatRippleModule,\n} from '@angular/material-experimental/mdc-core';\nimport {MatChip} from './chip';\nimport {MAT_CHIPS_DEFAULT_OPTIONS, MatChipsDefaultOptions} from './chip-default-options';\nimport {MatChipEditInput} from './chip-edit-input';\nimport {MatChipGrid} from './chip-grid';\nimport {MatChipAvatar, MatChipRemove, MatChipTrailingIcon} from './chip-icons';\nimport {MatChipInput} from './chip-input';\nimport {MatChipListbox} from './chip-listbox';\nimport {MatChipRow} from './chip-row';\nimport {MatChipOption} from './chip-option';\nimport {MatChipSet} from './chip-set';\nimport {MatChipAction} from './chip-action';\n\nconst CHIP_DECLARATIONS = [\n MatChip,\n MatChipAvatar,\n MatChipEditInput,\n MatChipGrid,\n MatChipInput,\n MatChipListbox,\n MatChipOption,\n MatChipRemove,\n MatChipRow,\n MatChipSet,\n MatChipTrailingIcon,\n];\n\n@NgModule({\n imports: [MatCommonModule, CommonModule, MatRippleModule],\n exports: [MatCommonModule, CHIP_DECLARATIONS],\n declarations: [MatChipAction, CHIP_DECLARATIONS],\n providers: [\n ErrorStateMatcher,\n {\n provide: MAT_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n separatorKeyCodes: [ENTER],\n } as MatChipsDefaultOptions,\n },\n ],\n})\nexport class MatChipsModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './chip';\nexport * from './chip-option';\nexport * from './chip-row';\nexport * from './chip-set';\nexport * from './chip-listbox';\nexport * from './chip-grid';\nexport * from './module';\nexport * from './chip-input';\nexport * from './chip-default-options';\nexport * from './chip-icons';\nexport * from './chip-text-control';\nexport * from './chip-edit-input';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5.MatChipAction","i1","i2","i3.MatChipAction","i6.MatChipEditInput","i3"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAMG;AAEH;;;;;;;AAOG;AACG,SAAU,eAAe,CAC7B,OAAoB,EACpB,SAAmB,EACnB,SAAiB,EACjB,IAAO,EACP,YAAqB,EAAA;AAErB,IAAA,IAAI,KAAqB,CAAC;AAC1B,IAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AACrC,QAAA,KAAK,GAAG,IAAI,WAAW,CAAI,SAAS,EAAE,EAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9E,KAAA;AAAM,SAAA;AACL,QAAA,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7C,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAA;AAED,IAAA,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/B;;AChCA;;;;;;AAMG;AA4BH,MAAM,uBAAuB,GAAG,aAAa,CAAC,aAAa,CAAC,MAAA;AAAQ,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE3E;;;AAGG;AAkBG,MAAO,aACX,SAAQ,uBAAuB,CAAA;AAqD/B,IAAA,WAAA,CACS,WAAuB,EACZ,SAAc,EACxB,kBAAqC,EAAA;AAE7C,QAAA,KAAK,EAAE,CAAC;AAJD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AAEtB,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QAnDvC,IAAA,CAAA,QAAQ,GAAyB;AACvC,YAAA,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,YAAY,EAAE,CAAC,IAAY,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;AACjF,YAAA,YAAY,EAAE,CAAC,IAAY,EAAE,KAAa,KAAI;;;;gBAI5C,IAAI,IAAI,KAAK,UAAU,EAAE;oBACvB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,iBAAA;aACF;AACD,YAAA,eAAe,EAAE,CAAC,IAAY,KAAI;gBAChC,IAAI,IAAI,KAAK,UAAU,EAAE;oBACvB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtD,iBAAA;aACF;YACD,YAAY,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;AACrD,YAAA,SAAS,EAAE,CAAI,SAAiB,EAAE,IAAO,KAAI;AAC3C,gBAAA,eAAe,CAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC3F;SACF,CAAC;;AAGO,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QA6B5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEzD,QAAA,IAAI,WAAW,CAAC,aAAa,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACnD,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1D,SAAA;KACF;AAhCD,IAAA,YAAY,CAAC,KAAiB,EAAA;;;QAG5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAoB,EAAA;;;QAGjC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;KACF;AAES,IAAA,iBAAiB,CAAC,OAA6B,EAAA;AACvD,QAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAC;KACpD;IAeD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7C;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC5B;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACxC;IAED,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;AA7FU,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,4CAwDd,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAxDP,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2CAAA,EAAA,qCAAA,EAAA,kDAAA,EAAA,qCAAA,EAAA,4CAAA,EAAA,qCAAA,EAAA,eAAA,EAAA,gDAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,gDAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;mGAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAjBzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,gDAAgD;AACzD,wBAAA,6CAA6C,EAAE,CAAA,kCAAA,EAAqC,iBAAiB,CAAC,OAAO,CAAE,CAAA;;;AAG/G,wBAAA,oDAAoD,EAAE,CAAA,kCAAA,EAAqC,iBAAiB,CAAC,OAAO,CAAE,CAAA;AACtH,wBAAA,8CAA8C,EAAE,CAAA,kCAAA,EAAqC,iBAAiB,CAAC,QAAQ,CAAE,CAAA;AACjH,wBAAA,iBAAiB,EAAE,gDAAgD;AACnE,wBAAA,iBAAiB,EAAE,sBAAsB;AACzC,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,SAAS,EAAE,sBAAsB;AACjC,wBAAA,WAAW,EAAE,wBAAwB;AACtC,qBAAA;iBACF,CAAA;;;8BAyDI,MAAM;+BAAC,QAAQ,CAAA;;yBAzBT,aAAa,EAAA,CAAA;sBAArB,KAAK;;;ACxFR;;;;;;AAMG;AAMH;;;;AAIG;MACU,eAAe,GAAG,IAAI,cAAc,CAAgB,eAAe,EAAE;AAElF;;;AAGG;MASU,aAAa,CAAA;;kHAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAAb,aAAa,EAAA,QAAA,EAAA,kCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,KAAA,EAAA,EAAA,cAAA,EAAA,gFAAA,EAAA,EAAA,SAAA,EAFb,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;mGAExD,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,gFAAgF;AACzF,wBAAA,MAAM,EAAE,KAAK;AACd,qBAAA;oBACD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAe,aAAA,EAAC,CAAC;iBACpE,CAAA;;AAGD;;;;AAIG;MACU,sBAAsB,GAAG,IAAI,cAAc,CACtD,qBAAqB,EACrB;AAEF;;;AAGG;AAUG,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AATtD,IAAA,WAAA,GAAA;;AAUE;;;AAGG;AACM,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;KAKhC;AAHoB,IAAA,iBAAiB,CAAC,OAA6B,EAAA;AAChE,QAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAC;KACrD;;wHATU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAAnB,mBAAmB,EAAA,QAAA,EAAA,+CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,wFAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,EAAC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,mBAAmB,EAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;mGAErE,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+CAA+C;AACzD,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EACL,wFAAwF;AAC1F,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA;oBACD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAqB,mBAAA,EAAC,CAAC;iBACjF,CAAA;;AAaD;;;;AAIG;MACU,eAAe,GAAG,IAAI,cAAc,CAAgB,eAAe,EAAE;AAElF;;;;;;;;;;;;;;AAcG;AAaG,MAAO,aAAc,SAAQ,aAAa,CAAA;AAC3B,IAAA,iBAAiB,CAAC,OAA6B,EAAA;AAChE,QAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAC;KACrD;AAEQ,IAAA,YAAY,CAAC,KAAiB,EAAA;;;QAGrC,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC3B;AAEQ,IAAA,cAAc,CAAC,KAAoB,EAAA;QAC1C,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC7B;;kHAfU,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAAb,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,oIAAA,EAAA,EAAA,SAAA,EAFb,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;mGAExD,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EACL,yEAAyE;4BACzE,6DAA6D;AAC/D,wBAAA,MAAM,EAAE,QAAQ;AAChB,wBAAA,oBAAoB,EAAE,MAAM;AAC7B,qBAAA;oBACD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAe,aAAA,EAAC,CAAC;iBACpE,CAAA;;;AClCD,IAAI,GAAG,GAAG,CAAC,CAAC;AAQZ;;;AAGG;AACH,MAAe,WAAW,CAAA;AAExB,IAAA,WAAA,CAAmB,WAAuB,EAAA;AAAvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;KAAI;AAC/C,CAAA;AAED,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEpG;;;;AAIG;AA8BG,MAAO,OACX,SAAQ,iBAAiB,CAAA;AA8KzB,IAAA,WAAA,CACS,kBAAqC,EAC5C,UAAmC,EACzB,OAAe,EACjB,aAA2B,EACjB,SAAc,EACZ,IAAoB,EACG,aAAsB,EAGzD,oBAA0C,EAC3B,QAAiB,EAAA;;QAExC,KAAK,CAAC,UAAU,CAAC,CAAC;AAZX,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;AAElC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AACjB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AAEf,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAgB;AAIhC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;;AAlL3C,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;AAG1B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAgB,CAAC;;AAGvC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAgB,CAAC;;AAMtC,QAAA,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;;AAG1B,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;AAa3B,QAAA,IAAA,CAAA,EAAE,GAAW,gBAAgB,GAAG,EAAE,EAAE,CAAC;;AAGzB,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;AAe3C,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AA2B3B,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAY3B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;;AAGrB,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB,CAAC;;AAGvE,QAAA,IAAA,CAAA,SAAS,GAA+B,IAAI,YAAY,EAAgB,CAAC;;AAMlF,QAAA,IAAiB,CAAA,iBAAA,GAAG,gBAAgB,CAAC;AAiB/C;;;AAGG;QACO,IAAA,CAAA,YAAY,GAAmB;AACvC,YAAA,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;AACzD,YAAA,WAAW,EAAE,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;AAC7D,YAAA,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACnF,YAAA,SAAS,EAAE,CAAI,SAAiB,EAAE,IAAO,KAAI;AAC3C,gBAAA,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACxF;AACD,YAAA,gBAAgB,EAAE,CAAC,YAAoB,EAAE,KAAa,KAAI;AACxD,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aACvE;AACD,YAAA,KAAK,EAAE,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAK,KAAK,CAAA,EAAA;AACvC,YAAA,YAAY,EAAE,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC;YACzF,YAAY,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;YACrD,cAAc,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW;YAChE,UAAU,EAAE,MAAK;gBACf,MAAM,MAAM,GAAwB,EAAE,CAAC;gBAEvC,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;AAC9C,oBAAA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACxC,iBAAA;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;AAC/C,oBAAA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACzC,iBAAA;AAED,gBAAA,OAAO,MAAM,CAAC;aACf;AACD,YAAA,kBAAkB,EAAE,CAAC,MAAyB,KAAI;;AAChD,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE,KAAI,KAAK,CAAC;aACzD;AACD,YAAA,gBAAgB,EAAE,CAAC,MAAyB,KAAI;;AAC9C,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,KAAI,KAAK,CAAC;aACvD;AACD,YAAA,gBAAgB,EAAE,CAAC,MAAyB,KAAI;;AAC9C,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,KAAI,KAAK,CAAC;aACvD;AACD,YAAA,iBAAiB,EAAE,CAAC,MAAyB,KAAI;;AAC/C,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,KAAI,KAAK,CAAC;aACxD;AACD,YAAA,iBAAiB,EAAE,CAAC,MAAyB,EAAE,UAAmB,KAAI;;gBACpE,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,UAAU,CAAC,CAAC;aAClD;AACD,YAAA,iBAAiB,EAAE,CAAC,MAAyB,EAAE,UAAmB,KAAI;;gBACpE,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,UAAU,CAAC,CAAC;aAClD;AACD,YAAA,cAAc,EAAE,CAAC,MAAyB,EAAE,QAAoC,KAAI;;gBAClF,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC7C;SACF,CAAC;AAwJM,QAAA,IAAA,CAAA,wBAAwB,GAAG,CAAC,KAAY,KAAI;AAClD,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAA+B,CAAC,CAAC;AAC3D,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,KAAY,KAAI;AACjD,YAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,KAA8B,CAAC,CAAC;AAC9E,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAsB,KAAI;YACxD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AACnD,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACpE,aAAA;AACH,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAqB,KAAI;YACtD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AACnD,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,aAAA;AACH,SAAC,CAAC;AA1JA,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,mBAAmB,GAAG,aAAa,KAAK,gBAAgB,CAAC;AAC9D,QAAA,IAAI,CAAC,YAAY;AACf,YAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAC5C,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC;QAC3D,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACzF,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACvF,QAAA,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAExC,QAAA,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAC7B,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACrE,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACrE,SAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC;AAC5D,SAAA;KACF;IAlLD,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;AAQD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3C,SAAA;QAED,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClD;AAKD;;;AAGG;AACH,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC;KACxF;IACD,IAAI,KAAK,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AAGD;;AAEG;AACH,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IAAI,SAAS,CAAC,KAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChD;AAGD;;AAEG;AACH,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IACD,IAAI,WAAW,CAAC,KAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;IAuHD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAE/F,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC/C,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC5F,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1F,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxE,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;KACnC;AAED;;;;AAIG;IACH,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AACjC,SAAA;KACF;;IAGO,YAAY,CAAC,QAAgB,EAAE,MAAe,EAAA;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;AACzD,QAAA,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;IAGD,iBAAiB,GAAA;;QACf,QACE,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,aAAa;AAClB,YAAA,IAAI,CAAC,mBAAmB;AACxB,YAAA,IAAI,CAAC,YAAY;YACjB,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EACrC;KACH;AAED,IAAA,UAAU,CAAC,IAAuB,EAAA;;AAChC,QAAA,QAAQ,IAAI;YACV,KAAK,iBAAiB,CAAC,OAAO;AAC5B,gBAAA,OAAO,MAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE,CAAC;YAC9C,KAAK,iBAAiB,CAAC,QAAQ;AAC7B,gBAAA,OAAO,CAAA,EAAA,IAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE,CAAC;AACnE,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;IAED,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAED,gBAAgB,GAAA;QACd,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;KACjD;;IAGD,KAAK,GAAA;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;AACR,SAAA;;;;AAKD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC5B;;AAGS,IAAA,kBAAkB,CAAC,KAA6B,EAAA;;QACxD,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAC,aAAa,CAAC;AACjE,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;AAOrC,QAAA,IACE,aAAa;AACb,aAAC,OAAO,KAAK,+BAA+B,CAAC,KAAK;gBAChD,OAAO,KAAK,+BAA+B,CAAC,SAAS;AACrD,gBAAA,OAAO,KAAK,+BAA+B,CAAC,YAAY,CAAC;AAC3D,aAAC,KAAK,CAAC,MAAM,KAAK,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACxE;YACA,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACrD,SAAA;KACF;;AAnUU,OAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,+HAoLR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAEI,qBAAqB,EAEjC,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,yBAAyB,6BAEtB,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGA1LZ,OAAO,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,gDAAA,EAAA,oBAAA,EAAA,gDAAA,EAAA,aAAA,EAAA,6CAAA,EAAA,aAAA,EAAA,uCAAA,EAAA,aAAA,EAAA,gCAAA,EAAA,aAAA,EAAA,gCAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,eAAA,EAAA,uCAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,MAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA2GJ,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGf,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGtB,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGlB,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGT,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9O1B,0gCAuBA,EAAA,MAAA,EAAA,CAAA,05mBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGDgGa,OAAO,EAAA,UAAA,EAAA,CAAA;kBA7BnB,SAAS;+BACE,0BAA0B,EAAA,MAAA,EAC5B,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EACpC,QAAA,EAAA,SAAS,EAGb,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,cAAc;AACvB,wBAAA,4BAA4B,EAAE,eAAe;AAC7C,wBAAA,sCAAsC,EAAE,UAAU;AAClD,wBAAA,kDAAkD,EAAE,oBAAoB;AACxE,wBAAA,kDAAkD,EAAE,aAAa;AACjE,wBAAA,+CAA+C,EAAE,aAAa;AAC9D,wBAAA,yCAAyC,EAAE,aAAa;AACxD,wBAAA,kCAAkC,EAAE,aAAa;AACjD,wBAAA,kCAAkC,EAAE,aAAa;AACjD,wBAAA,+BAA+B,EAAE,UAAU;AAC3C,wBAAA,4BAA4B,EAAE,cAAc;AAC5C,wBAAA,+BAA+B,EAAE,eAAe;AAChD,wBAAA,yCAAyC,EAAE,oBAAoB;AAC/D,wBAAA,iCAAiC,EAAE,qBAAqB;AACxD,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,iBAAiB,EAAE,wBAAwB;AAC3C,wBAAA,mBAAmB,EAAE,WAAW;qBACjC,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0gCAAA,EAAA,MAAA,EAAA,CAAA,05mBAAA,CAAA,EAAA,CAAA;;;8BAsL5C,MAAM;+BAAC,QAAQ,CAAA;;8BACf,QAAQ;;8BACR,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;8BACxC,QAAQ;;8BACR,MAAM;+BAAC,yBAAyB,CAAA;;8BAEhC,SAAS;+BAAC,UAAU,CAAA;;yBAvKd,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAgBG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAGf,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAsBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAaF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAaF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAUa,OAAO,EAAA,CAAA;sBAAzB,MAAM;gBAGY,SAAS,EAAA,CAAA;sBAA3B,MAAM;gBASwB,WAAW,EAAA,CAAA;sBAAzC,YAAY;uBAAC,eAAe,CAAA;gBAGS,YAAY,EAAA,CAAA;sBAAjD,YAAY;uBAAC,sBAAsB,CAAA;gBAGL,UAAU,EAAA,CAAA;sBAAxC,YAAY;uBAAC,eAAe,CAAA;gBAGP,MAAM,EAAA,CAAA;sBAA3B,SAAS;uBAAC,SAAS,CAAA;gBAGM,aAAa,EAAA,CAAA;sBAAtC,SAAS;uBAAC,aAAa,CAAA;;;AE9O1B;;;;;;AAMG;AAsBH;MACa,sBAAsB,CAAA;AACjC,IAAA,WAAA;;IAES,MAAqB;;IAErB,QAAiB;;AAEjB,IAAA,WAAA,GAAc,KAAK,EAAA;AAJnB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AAErB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;AAEjB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;KACxB;AACL,CAAA;AAED;;;AAGG;AA6BG,MAAO,aAAc,SAAQ,OAAO,CAAA;AA5B1C,IAAA,WAAA,GAAA;;;AAuCE,QAAA,IAAkB,CAAA,kBAAA,GAAY,IAAI,CAAC;;AAGnC,QAAA,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAgBzB,QAAA,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;;AA+BnB,QAAA,IAAiB,CAAA,iBAAA,GAAG,uBAAuB,CAAC;;AAG5C,QAAA,IAAA,CAAA,eAAe,GAChC,IAAI,YAAY,EAA0B,CAAC;KA0G9C;AA3JC;;;;;;AAMG;AACH,IAAA,IACI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC;KACpD;IACD,IAAI,UAAU,CAAC,KAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACjD;;AAID,IAAA,IACI,QAAQ,GAAA;;AACV,QAAA,QACE,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,mCAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAC9F;KACH;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;QAC9B,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC7C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC;AAC3C,aAAA;AACF,SAAA;KACF;;AAGD,IAAA,IAAI,YAAY,GAAA;;;AAGd,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC;AACjE,cAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;cACxB,IAAI,CAAC;KACV;IASD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;KAC5B;IAEQ,eAAe,GAAA;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;;;AAGtC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;AACjD,YAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;AACvC,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC9C,SAAA;KACF;;IAGD,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrC,SAAA;KACF;;IAGD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,SAAA;KACF;;IAGD,oBAAoB,GAAA;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,SAAA;KACF;;IAGD,cAAc,CAAC,cAAuB,KAAK,EAAA;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACrD,SAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;IAGD,KAAK,GAAA;;;;;AAKH,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACjD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAK;AACpB,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAClC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAEkB,IAAA,kBAAkB,CAAC,KAA6B,EAAA;QACjE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC,MAAM,CAAC;;AAGvC,QAAA,IACE,MAAM,KAAK,iBAAiB,CAAC,OAAO;AACpC,aAAC,OAAO,KAAK,+BAA+B,CAAC,KAAK;gBAChD,OAAO,KAAK,+BAA+B,CAAC,SAAS;AACrD,gBAAA,OAAO,KAAK,+BAA+B,CAAC,YAAY,CAAC,EAC3D;AACA,YAAA,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;aAAM,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;AAE5C,YAAA,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,kBAAkB,GAAA;;AAEhB,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;KACxE;IAEO,iBAAiB,CAAC,UAAmB,EAAE,WAAoB,EAAA;AACjE,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,gBAAA,MAAM,EAAE,IAAI;gBACZ,WAAW;gBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;;;QAID,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACzF,SAAA;KACF;;kHA1KU,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,aAAa,EAJb,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,gCAAA,EAAA,aAAA,EAAA,sCAAA,EAAA,YAAA,EAAA,oCAAA,EAAA,UAAA,EAAA,gDAAA,EAAA,oBAAA,EAAA,gDAAA,EAAA,sBAAA,EAAA,6CAAA,EAAA,aAAA,EAAA,uCAAA,EAAA,aAAA,EAAA,gCAAA,EAAA,aAAA,EAAA,uCAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,gFAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC,iDCpE7D,+iDAqCA,EAAA,MAAA,EAAA,CAAA,05mBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGDmCa,aAAa,EAAA,UAAA,EAAA,CAAA;kBA5BzB,SAAS;+BACE,wCAAwC,EAAA,MAAA,EAG1C,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EACxC,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,gFAAgF;AACzF,wBAAA,+BAA+B,EAAE,UAAU;AAC3C,wBAAA,+BAA+B,EAAE,mBAAmB;AACpD,wBAAA,+BAA+B,EAAE,UAAU;AAC3C,wBAAA,kCAAkC,EAAE,aAAa;AACjD,wBAAA,wCAAwC,EAAE,YAAY;AACtD,wBAAA,sCAAsC,EAAE,UAAU;AAClD,wBAAA,kDAAkD,EAAE,oBAAoB;AACxE,wBAAA,kDAAkD,EAAE,sBAAsB;AAC1E,wBAAA,+CAA+C,EAAE,aAAa;AAC9D,wBAAA,yCAAyC,EAAE,aAAa;AACxD,wBAAA,kCAAkC,EAAE,aAAa;AACjD,wBAAA,yCAAyC,EAAE,oBAAoB;AAC/D,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,EAAA,SAAA,EACU,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAA,aAAe,EAAC,CAAC,iBAC5C,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+iDAAA,EAAA,MAAA,EAAA,CAAA,05mBAAA,CAAA,EAAA,CAAA;8BA0B3C,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBA+Ba,eAAe,EAAA,CAAA;sBAAjC,MAAM;;;AExIT;;;;;;AAMG;AAKH;;;AAGG;MAUU,gBAAgB,CAAA;IAC3B,WACmB,CAAA,WAAuB,EACL,SAAc,EAAA;AADhC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AACL,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;KAC/C;AAEJ,IAAA,UAAU,CAAC,YAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;KACvC;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC;KAClD;IAEO,uBAAuB,GAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC3C,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAClD,QAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAG,CAAC;QACnC,GAAG,CAAC,eAAe,EAAE,CAAC;AACtB,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACrB;;AA/BU,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,4CAGjB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAHP,gBAAgB,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,qBAAqB;AAC9B,wBAAA,MAAM,EAAE,SAAS;AACjB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,iBAAiB,EAAE,MAAM;AAC1B,qBAAA;iBACF,CAAA;;;8BAII,MAAM;+BAAC,QAAQ,CAAA;;;;ACgBpB;;;AAGG;AAiCG,MAAO,UAAW,SAAQ,OAAO,CAAA;AAuBrC,IAAA,WAAA,CACE,iBAAoC,EACpC,UAAsB,EACtB,MAAc,EACd,YAA0B,EACR,SAAc,EACpB,GAAmB,EACY,aAAsB,EAGjE,mBAAyC,EAClB,QAAiB,EAAA;AAExC,QAAA,KAAK,CACH,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,SAAS,EACT,GAAG,EACH,aAAa,EACb,mBAAmB,EACnB,QAAQ,CACT,CAAC;AA7Ce,QAAA,IAAiB,CAAA,iBAAA,GAAG,oBAAoB,CAAC;AAEnD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;;AAGhB,QAAA,IAAA,CAAA,MAAM,GACvB,IAAI,YAAY,EAAsB,CAAC;AAQzC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAiCjB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IAEQ,gBAAgB,GAAA;;QAEvB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;KACrD;AAED;;;AAGG;IACH,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrC,SAAA;;QAGD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;YAC7C,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAA;AAED,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;KACJ;;IAGD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;;AAGD,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;YAED,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;;AAGD,IAAA,QAAQ,CAAC,KAAoB,EAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;AACR,SAAA;QAED,QAAQ,KAAK,CAAC,OAAO;AACnB,YAAA,KAAK,KAAK;gBACR,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,KAAK,CAAC,cAAc,EAAE,CAAC;;oBAEvB,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACxC,iBAAA;qBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACxB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,iBAAA;gBACD,MAAM;AACR,YAAA,KAAK,MAAM,CAAC;AACZ,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;;oBAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;;oBAEd,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,iBAAA;gBACD,MAAM;AACT,SAAA;KACF;IAED,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;IAEO,aAAa,GAAA;;AAEnB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;;AAIzB,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;AAGvB,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1D;IAEO,aAAa,GAAA;;;AAGnB,QAAA,IACE,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE;YACxE,IAAI,CAAC,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EACpD;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAA;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AAED;;;AAGG;IACK,aAAa,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAiB,CAAC;KACxD;;AApKU,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,+HA4BX,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAEI,qBAAqB,EAEjC,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,yBAAyB,6BAEtB,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAlCZ,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,UAAU,wnCAJV,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiB1C,gBAAgB,EAHnB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,uECzF7B,ijDAqCA,EAAA,MAAA,EAAA,CAAA,05mBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,gBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGD0Ca,UAAU,EAAA,UAAA,EAAA,CAAA;kBAhCtB,SAAS;+BACE,kCAAkC,EAAA,MAAA,EAGpC,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EACxC,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,kDAAkD;AAC3D,wBAAA,kCAAkC,EAAE,aAAa;AACjD,wBAAA,+BAA+B,EAAE,UAAU;AAC3C,wBAAA,8BAA8B,EAAE,YAAY;AAC5C,wBAAA,+BAA+B,EAAE,UAAU;AAC3C,wBAAA,sCAAsC,EAAE,UAAU;AAClD,wBAAA,kDAAkD,EAAE,oBAAoB;AACxE,wBAAA,kDAAkD,EAAE,aAAa;AACjE,wBAAA,+CAA+C,EAAE,aAAa;AAC9D,wBAAA,yCAAyC,EAAE,aAAa;AACxD,wBAAA,kCAAkC,EAAE,aAAa;AACjD,wBAAA,yCAAyC,EAAE,oBAAoB;AAC/D,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,aAAa,EAAE,oBAAoB;AACnC,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,YAAY,EAAE,gBAAgB;AAC9B,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,YAAY,EAAE,mBAAmB;AAClC,qBAAA,EAAA,SAAA,EACU,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAA,UAAY,EAAC,CAAC,iBACzC,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ijDAAA,EAAA,MAAA,EAAA,CAAA,05mBAAA,CAAA,EAAA,CAAA;;;8BA8B5C,MAAM;+BAAC,QAAQ,CAAA;;8BACf,QAAQ;;8BACR,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;8BACxC,QAAQ;;8BACR,MAAM;+BAAC,yBAAyB,CAAA;;8BAEhC,SAAS;+BAAC,UAAU,CAAA;;yBA/Bd,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGa,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAIsB,gBAAgB,EAAA,CAAA;sBAA5C,SAAS;uBAAC,gBAAgB,CAAA;gBAGK,gBAAgB,EAAA,CAAA;sBAA/C,YAAY;uBAAC,gBAAgB,CAAA;;;AEnDhC;;;AAGG;AACH,MAAe,cAAc,CAAA;IAE3B,WAAY,CAAA,WAAuB,KAAI;AACxC,CAAA;AACD,MAAM,oBAAoB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAE3D;;;;AAIG;AAgBG,MAAO,UACX,SAAQ,oBAAoB,CAAA;AAoH5B,IAAA,WAAA,CACU,cAA6B,EACX,SAAc,EAC9B,WAAoC,EACpC,kBAAqC,EAAA;QAE/C,KAAK,CAAC,WAAW,CAAC,CAAC;AALX,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;AACX,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;AAC9B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;AACpC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;AArHjD;;;;AAIG;AACO,QAAA,IAAuB,CAAA,uBAAA,GAAkB,IAAI,CAAC;;AAM9C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAGjC,QAAA,IAAY,CAAA,YAAA,GAAG,cAAc,CAAC;AAOxC;;;AAGG;QACO,IAAA,CAAA,eAAe,GAAsB;AAC7C,YAAA,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;AACjE,YAAA,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,KAAI;AACpC,gBAAA,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;aAC/F;AACD,YAAA,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;YACvE,qBAAqB,EAAE,KAAK,cAAI,OAAA,CAAA,MAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,KAAI,EAAE,CAAA,EAAA;YAC/E,YAAY,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;YACtC,gBAAgB,EAAE,KAAK,cAAI,OAAA,CAAA,MAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE,KAAI,EAAE,CAAA,EAAA;YAC5E,gBAAgB,EAAE,EAAE,IAAG;gBACrB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;aAC7F;AACD,YAAA,sBAAsB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAI;;AAC5C,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,iBAAiB,CAAC,UAAU,CAAC,KAAI,KAAK,CAAC;aAC5E;AACD,YAAA,uBAAuB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAI;;AAC7C,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,kBAAkB,CAAC,UAAU,CAAC,KAAI,KAAK,CAAC;aAC7E;AACD,YAAA,qBAAqB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAI;;AAC3C,gBAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,CAAC,UAAU,CAAC,KAAI,KAAK,CAAC;aAC3E;YACD,iBAAiB,EAAE,KAAK,cAAI,OAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,0CAAE,MAAM,EAAE,CAAA,EAAA;YAClE,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,KAAI;;AAC/C,gBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aAC/D;YACD,sBAAsB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,KAAI;;;;;AAIxD,gBAAA,IAAI,UAAU,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC5C,oBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxE,iBAAA;aACF;AACD,YAAA,yBAAyB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAI;;gBAC9C,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC,SAAS,CAAC,CAAC;aACxD;SACF,CAAC;AAEF;;;AAGG;AACH,QAAA,IAAW,CAAA,WAAA,GAA6B,EAAE,CAAC;AAWjC,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAoB7B,QAAA,IAAa,CAAA,aAAA,GAAkB,IAAI,CAAC;AAsJpC,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAY,KAAI;AAC9C,YAAA,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,KAA2B,CAAC,CAAC;AAC3E,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,KAAY,KAAI;AAChD,YAAA,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,KAA6B,CAAC,CAAC;AAC/E,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,KAAY,KAAI;AAC/C,YAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,KAA4B,CAAC,CAAC;AAC7E,SAAC,CAAC;AA1IA,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzE,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7E,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjF,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAChF;;AA5GD,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;KACpD;;AAmDD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;;AAID,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;KACjC;;AAGD,IAAA,IACI,IAAI,GAAA;QACN,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;KAC9C;IAED,IAAI,IAAI,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;;AAID,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;KAC/B;IAwBD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACnF,IAAI,IAAI,CAAC,QAAQ,EAAE;;;AAGjB,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;oBAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;AAC3F,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;;;YAK5D,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACrD,gBAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;AAC1C,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC/C,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChF,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpF,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;KACnC;;IAGS,eAAe,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAClE;;IAGS,eAAe,GAAA;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAG;AACzB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACzC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;;AAGD,IAAA,KAAK,MAAK;AAEV;;;;;AAKG;AACO,IAAA,aAAa,CAAC,KAAa,EAAA;QACnC,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;KACjD;;AAGS,IAAA,mBAAmB,CAAC,KAAY,EAAA;QACxC,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;KACpE;AAED;;;;AAIG;IACO,iBAAiB,GAAA;AACzB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAEnB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AACjC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACzC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED;;;AAGG;AACO,IAAA,cAAc,CACtB,eAA2C,EAAA;AAE3C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAC7B,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,MAAM,KAAK,CAAC,GAAI,IAAI,CAAC,MAAuB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAC9E,CAAC;KACH;IAES,yBAAyB,CAAC,KAAY,EAAE,SAAiB,EAAA;AACjE,QAAA,IAAI,cAAc,GAAG,KAAK,CAAC,MAA4B,CAAC;QAExD,OAAO,cAAc,IAAI,cAAc,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;;AAE1E,YAAA,IAAI,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC5E,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAED,YAAA,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC;AAC/C,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;;AACnC,QAAA,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE,CAAC;KACvD;;AA1PU,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,+CAuHX,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAvHP,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,yCAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EA8GJ,OAAO,EA3Hd,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;GAIT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yjCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGASU,UAAU,EAAA,UAAA,EAAA,CAAA;kBAftB,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAEK,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,yCAAyC;AAClD,wBAAA,aAAa,EAAE,MAAM;AACtB,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,yjCAAA,CAAA,EAAA,CAAA;;;8BAyH5C,MAAM;+BAAC,QAAQ,CAAA;;yBA5Cd,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAiBF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAyBN,MAAM,EAAA,CAAA;sBALL,eAAe;gBAAC,IAAA,EAAA,CAAA,OAAO,EAAE;;;AAGxB,wBAAA,WAAW,EAAE,IAAI;qBAClB,CAAA;;;ACzLH;;;;;;AAMG;AAyBH;MACa,oBAAoB,CAAA;AAC/B,IAAA,WAAA;;IAES,MAAsB;;IAEtB,KAAU,EAAA;AAFV,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;AAEtB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;KACf;AACL,CAAA;AAED;;;;AAIG;AACU,MAAA,uCAAuC,GAAQ;AAC1D,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,IAAA,KAAK,EAAE,IAAI;EACX;AAEF;;;AAGG;AA8BG,MAAO,cACX,SAAQ,UAAU,CAAA;AA9BpB,IAAA,WAAA,GAAA;;AAiCE;;;AAGG;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,GAAG,CAAC;AAEtB;;;AAGG;AACH,QAAA,IAAA,CAAA,SAAS,GAAyB,MAAK,GAAG,CAAC;;AAGxB,QAAA,IAAY,CAAA,YAAA,GAAG,SAAS,CAAC;AAWpC,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;;AASR,QAAA,IAAe,CAAA,eAAA,GAA8B,YAAY,CAAC;AAgB3E,QAAA,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;AAe9B,QAAA,IAAY,CAAA,YAAA,GAAG,CAAC,EAAO,EAAE,EAAO,KAAK,EAAE,KAAK,EAAE,CAAC;AAU7C,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;;AA6BlB,QAAA,IAAA,CAAA,MAAM,GACvB,IAAI,YAAY,EAAwB,CAAC;KA8N5C;;AAtTC,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;AAID,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1E,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;KACzD;AAKD;;;;;AAKG;AACH,IAAA,IACI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IACD,IAAI,UAAU,CAAC,KAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAGD;;;;AAIG;AACH,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IACD,IAAI,WAAW,CAAC,EAAiC,EAAA;AAC/C,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;;AAID,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;;AAID,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAwC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;KACjG;;AAGD,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnD;;AAGD,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KAClD;;AAGD,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;IAcQ,kBAAkB,GAAA;QACzB,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;YAEnF,IAAI,CAAC,sBAAsB,EAAE,CAAC;;YAG9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;;YAG5B,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACvC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;YAC3E,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;IACM,KAAK,GAAA;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAEvD,QAAA,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;;;;AAIjC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACzC,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;;AAGD,IAAA,oBAAoB,CAAC,KAAU,EAAE,WAAA,GAAuB,IAAI,EAAA;QAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AAC7E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACvC,SAAA;KACF;;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;YAElB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzB,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,EAAE;YACzB,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAA;KACF;;IAGO,cAAc,GAAA;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;IAGO,iBAAiB,GAAA;QACvB,IAAI,WAAW,GAAQ,IAAI,CAAC;QAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChC,YAAA,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;AAC/D,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;AAED;;AAEG;IACK,oBAAoB,GAAA;QAC1B,UAAU,CAAC,MAAK;;;YAGd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjF,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;AACK,IAAA,eAAe,CAAC,IAAc,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAG;YACzB,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;AACK,IAAA,YAAY,CAAC,KAAU,EAAE,WAAA,GAAuB,IAAI,EAAA;QAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAG;AAChD,YAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpE,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,WAAW,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;AACrF,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAC;KAC1B;;IAGO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;;;AAGf,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC1B,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAG;AACzB,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;AACvC,oBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;AAC3C,oBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACzC,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;;IAGO,qBAAqB,GAAA;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC5D,SAAA;AAAM,aAAA;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,SAAA;KACF;AAED;;;AAGG;IACK,6BAA6B,GAAA;;AAEnC,QAAA,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;KACrC;;mHAzUU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,cAAc,u0BAJd,CAAC,uCAAuC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAkHnC,aAAa,EAzIpB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;GAIT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yjCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGAuBU,cAAc,EAAA,UAAA,EAAA,CAAA;kBA7B1B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAEO,MAAA,EAAA,CAAC,UAAU,CAAC,EACd,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,6CAA6C;AACtD,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,YAAY,EAAE,uBAAuB;;AAErC,wBAAA,yBAAyB,EAAE,0BAA0B;AACrD,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,6BAA6B,EAAE,UAAU;AACzC,wBAAA,yBAAyB,EAAE,iBAAiB;AAC5C,wBAAA,oCAAoC,EAAE,UAAU;AAChD,wBAAA,oCAAoC,EAAE,UAAU;AAChD,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,WAAW,EAAE,kBAAkB;qBAChC,EACU,SAAA,EAAA,CAAC,uCAAuC,CAAC,EACrC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,yjCAAA,CAAA,EAAA,CAAA;8BAuB3C,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAiBqB,eAAe,EAAA,CAAA;sBAAzC,KAAK;uBAAC,kBAAkB,CAAA;gBASrB,UAAU,EAAA,CAAA;sBADb,KAAK;gBAgBF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBA0BF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAWa,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAQE,MAAM,EAAA,CAAA;sBALd,eAAe;gBAAC,IAAA,EAAA,CAAA,aAAa,EAAE;;;AAG9B,wBAAA,WAAW,EAAE,IAAI;qBAClB,CAAA;;;ACvMH;;;;;;AAMG;AA6CH;MACa,iBAAiB,CAAA;AAC5B,IAAA,WAAA;;IAES,MAAmB;;IAEnB,KAAU,EAAA;AAFV,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAa;AAEnB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;KACf;AACL,CAAA;AAED;;;AAGG;AACH,MAAM,wBAAwB,UAAU,CAAA;AAQtC,IAAA,WAAA,CACE,aAA4B,EAC5B,QAAa,EACb,UAAsB,EACtB,iBAAoC,EAC7B,yBAA4C,EAC5C,WAAmB,EACnB,gBAAoC;AAC3C;;;;AAIG;IACI,SAAoB,EAAA;QAE3B,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAVvD,QAAA,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAAmB;AAC5C,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;AACnB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAoB;AAMpC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AApB7B;;;;AAIG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;KAkB3C;AACF,CAAA;AACD,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;AAE/D;;;AAGG;AA2BG,MAAO,WACX,SAAQ,qBAAqB,CAAA;AA0J7B,IAAA,WAAA,CACE,aAA4B,EACV,QAAa,EAC/B,UAAsB,EACtB,iBAAoC,EACxB,UAAkB,EAClB,eAAmC,EAC/C,wBAA2C,EACvB,SAAoB,EAAA;AAExC,QAAA,KAAK,CACH,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,eAAe,EACf,SAAS,CACV,CAAC;AAnKJ;;;AAGG;AACM,QAAA,IAAW,CAAA,WAAA,GAAW,eAAe,CAAC;AAK5B,QAAA,IAAY,CAAA,YAAA,GAAG,MAAM,CAAC;AAEzC;;AAEG;AACK,QAAA,IAAmB,CAAA,mBAAA,GAAa,EAAE,CAAC;AAE3C;;;AAGG;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,GAAG,CAAC;AAEtB;;;AAGG;AACH,QAAA,IAAA,CAAA,SAAS,GAAyB,MAAK,GAAG,CAAC;AAqFjC,QAAA,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;;AAgBV,QAAA,IAAA,CAAA,MAAM,GACvB,IAAI,YAAY,EAAqB,CAAC;AAExC;;;;AAIG;AACgB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;QA6B1E,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;KACF;AA3ID;;;AAGG;AACH,IAAA,IACa,QAAQ,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;KACpE;IACD,IAAa,QAAQ,CAAC,KAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED;;;AAGG;AACH,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;KAC3B;AAED;;;AAGG;AACH,IAAA,IAAa,KAAK,GAAA;AAChB,QAAA,QACE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EACzF;KACH;AAED;;;AAGG;AACH,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;KAC1E;IACD,IAAI,WAAW,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;;AAID,IAAA,IAAa,OAAO,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1D;AAED;;;AAGG;AACH,IAAA,IACI,QAAQ,GAAA;;QACV,OAAO,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,SAAS,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAAC;KAC9F;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAGD;;;AAGG;AACH,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC;KACpC;AAED;;;AAGG;AACH,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;;AAOD,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KAClD;;AAGD,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnD;IA6CQ,kBAAkB,GAAA;QACzB,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;YAEnF,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACnE,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;IAEQ,eAAe,GAAA;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,EAAE;AACvE,YAAA,MAAM,KAAK,CAAC,iEAAiE,CAAC,CAAC;AAChF,SAAA;KACF;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;;;;YAIlB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAEQ,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;;AAGD,IAAA,aAAa,CAAC,YAAgC,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAC7D;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACtD,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAED;;;AAGG;IACM,KAAK,GAAA;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5C,OAAO;AACR,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;;;;AAI1B,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;AAAM,aAAA;;;AAGL,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,GAAa,EAAA;;;AAG7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAE/B,IAAI,IAAI,CAAC,UAAU,EAAE;;;;YAInB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;aACxC,EAAE,CAAC,CAAC,CAAC;AACP,SAAA;KACF;AAED;;;AAGG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;;AAEnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;;IAGD,KAAK,GAAA;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;AACR,SAAA;;;;;QAMD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;IACgB,iBAAiB,GAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAA;KACF;;AAGD,IAAA,QAAQ,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,IAAK,KAAK,CAAC,MAAsB,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,SAAA;KACF;;IAGO,iBAAiB,GAAA;AACvB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC5F,QAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACxC;;IAGO,cAAc,GAAA;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAED;;AAEG;IACK,6BAA6B,GAAA;;AAEnC,QAAA,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;KACrC;;AAjYU,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,+CA6JZ,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA7JP,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,WAAW,EAJX,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,+CAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,iCAAA,EAAA,YAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,2DAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAwJpD,UAAU,EA5KjB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;GAIT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yjCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGAoBU,WAAW,EAAA,UAAA,EAAA,CAAA;kBA1BvB,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EACf,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAEO,MAAA,EAAA,CAAC,UAAU,CAAC,EACd,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,2DAA2D;AACpE,wBAAA,aAAa,EAAE,MAAM;AACrB,wBAAA,YAAY,EAAE,+CAA+C;AAC7D,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,oCAAoC,EAAE,UAAU;AAChD,wBAAA,mCAAmC,EAAE,YAAY;AACjD,wBAAA,oCAAoC,EAAE,UAAU;AAChD,wBAAA,SAAS,EAAE,SAAS;AACpB,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,WAAW,EAAE,kBAAkB;AAChC,qBAAA,EAAA,SAAA,EACU,CAAC,EAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,WAAa,EAAC,CAAC,iBACtD,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,yjCAAA,CAAA,EAAA,CAAA;;;8BA+J5C,MAAM;+BAAC,QAAQ,CAAA;;8BAGf,QAAQ;;8BACR,QAAQ;;8BAER,QAAQ;;8BAAI,IAAI;;yBAvHN,QAAQ,EAAA,CAAA;sBADpB,KAAK;gBAgCF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAoBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAuBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAUY,iBAAiB,EAAA,CAAA;sBAAlC,KAAK;gBAaa,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAQY,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBAOE,MAAM,EAAA,CAAA;sBALd,eAAe;gBAAC,IAAA,EAAA,CAAA,UAAU,EAAE;;;AAG3B,wBAAA,WAAW,EAAE,IAAI;qBAClB,CAAA;;;ACnRH;;;;;;AAMG;AAUH;MACa,yBAAyB,GAAG,IAAI,cAAc,CACzD,2BAA2B;;AClB7B;;;;;;AAMG;AAqCH;AACA,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;AAGG;MAuBU,YAAY,CAAA;AAqEvB,IAAA,WAAA,CACY,WAAyC,EACR,eAAuC,EAC9C,SAAwB,EAAA;AAFlD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAA8B;AACR,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAwB;;AA/DpF,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAsBzB,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAE5B;;;;AAIG;QAEH,IAAA,CAAA,iBAAiB,GACf,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;;AAIhC,QAAA,IAAA,CAAA,OAAO,GAAoC,IAAI,YAAY,EAAqB,CAAC;;AAGjF,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;;AAGzB,QAAA,IAAA,CAAA,EAAE,GAAW,2BAA2B,YAAY,EAAE,EAAE,CAAC;AAU1D,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAejC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAiC,CAAC;AAEvE,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AACrE,SAAA;KACF;;IAnED,IACI,QAAQ,CAAC,KAAkB,EAAA;AAC7B,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;KACF;AAED;;AAEG;AACH,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,IAAI,SAAS,CAAC,KAAmB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChD;;AAuBD,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACtE;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;;AAID,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;KACjC;IAiBD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACpC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACzB;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;KAC7C;;AAGD,IAAA,QAAQ,CAAC,KAAqB,EAAA;AAC5B,QAAA,IAAI,KAAK,EAAE;;;;YAIT,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,yBAAyB,EAAE;AACjE,gBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;gBAChC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;AACR,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACxC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,KAAoB,EAAA;;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;AAChF,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;;IAGD,KAAK,GAAA;QACH,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;AAErB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACpC;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACpC;;AAGD,IAAA,YAAY,CAAC,KAAqB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,YAAY;AACxB,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;AAC9B,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CAAC;AAEH,YAAA,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,cAAc,EAAE,CAAC;AACzB,SAAA;KACF;IAED,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACpC;;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC3B;;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACvC;AAED,IAAA,iBAAiB,CAAC,GAAa,EAAA;QAC7B,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvC;;AAGO,IAAA,eAAe,CAAC,KAAoB,EAAA;QAC1C,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACrF;;iHArLU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAuEb,yBAAyB,EAAA,EAAA,EAAA,KAAA,EACb,cAAc,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAxEzB,YAAY,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,EAAA,WAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,+BAAA,EAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,uEAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,yCAAA,EAAA,eAAA,EAAA,yCAAA,EAAA,EAAA,cAAA,EAAA,kFAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAtBxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,IAAI,EAAE;;;;AAIJ,wBAAA,OAAO,EAAE,kFAAkF;AAC3F,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,SAAS,EAAE,YAAY;AACvB,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,iBAAiB,EAAE,kBAAkB;AACrC,wBAAA,oBAAoB,EAAE,qBAAqB;AAC3C,wBAAA,qBAAqB,EAAE,uEAAuE;AAC9F,wBAAA,yBAAyB,EAAE,0BAA0B;AACrD,wBAAA,sBAAsB,EAAE,yCAAyC;AACjE,wBAAA,iBAAiB,EAAE,yCAAyC;AAC7D,qBAAA;iBACF,CAAA;;;8BAwEI,MAAM;+BAAC,yBAAyB,CAAA;;8BAChC,QAAQ;;8BAAI,MAAM;+BAAC,cAAc,CAAA;;yBA3DhC,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,iBAAiB,CAAA;gBAYpB,SAAS,EAAA,CAAA;sBADZ,KAAK;uBAAC,uBAAuB,CAAA;gBAe9B,iBAAiB,EAAA,CAAA;sBADhB,KAAK;uBAAC,+BAA+B,CAAA;gBAM7B,OAAO,EAAA,CAAA;sBADf,MAAM;uBAAC,sBAAsB,CAAA;gBAIrB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAIF,QAAQ,EAAA,CAAA;sBADX,KAAK;;;AC5HR;;;;;;AAMG;AAsBH,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,cAAc;IACd,aAAa;IACb,aAAa;IACb,UAAU;IACV,UAAU;IACV,mBAAmB;CACpB,CAAC;MAgBW,cAAc,CAAA;;mHAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;oHAAd,cAAc,EAAA,YAAA,EAAA,CAXV,aAAa,EAhB5B,OAAO;QACP,aAAa;QACb,gBAAgB;QAChB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa;QACb,aAAa;QACb,UAAU;QACV,UAAU;AACV,QAAA,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAIT,eAAe,EAAE,YAAY,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAC9C,eAAe,EAfzB,OAAO;QACP,aAAa;QACb,gBAAgB;QAChB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa;QACb,aAAa;QACb,UAAU;QACV,UAAU;QACV,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAiBR,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAVd,SAAA,EAAA;QACT,iBAAiB;AACjB,QAAA;AACE,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE;gBACR,iBAAiB,EAAE,CAAC,KAAK,CAAC;AACD,aAAA;AAC5B,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAXS,eAAe,EAAE,YAAY,EAAE,eAAe,EAC9C,eAAe,CAAA,EAAA,CAAA,CAAA;mGAYd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAd1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC;AACzD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC;AAC7C,oBAAA,YAAY,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;AAChD,oBAAA,SAAS,EAAE;wBACT,iBAAiB;AACjB,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE;gCACR,iBAAiB,EAAE,CAAC,KAAK,CAAC;AACD,6BAAA;AAC5B,yBAAA;AACF,qBAAA;iBACF,CAAA;;;ACvDD;;;;;;AAMG;;ACNH;;;;;;AAMG;;ACNH;;AAEG;;;;"}
1
+ {"version":3,"file":"mdc-chips.mjs","sources":["../../../../../../src/material-experimental/mdc-chips/tokens.ts","../../../../../../src/material-experimental/mdc-chips/chip-action.ts","../../../../../../src/material-experimental/mdc-chips/chip.ts","../../../../../../src/material-experimental/mdc-chips/chip.html","../../../../../../src/material-experimental/mdc-chips/chip-option.ts","../../../../../../src/material-experimental/mdc-chips/chip-option.html","../../../../../../src/material-experimental/mdc-chips/chip-edit-input.ts","../../../../../../src/material-experimental/mdc-chips/chip-row.ts","../../../../../../src/material-experimental/mdc-chips/chip-row.html","../../../../../../src/material-experimental/mdc-chips/chip-set.ts","../../../../../../src/material-experimental/mdc-chips/chip-listbox.ts","../../../../../../src/material-experimental/mdc-chips/chip-grid.ts","../../../../../../src/material-experimental/mdc-chips/chip-icons.ts","../../../../../../src/material-experimental/mdc-chips/chip-input.ts","../../../../../../src/material-experimental/mdc-chips/module.ts","../../../../../../src/material-experimental/mdc-chips/public-api.ts","../../../../../../src/material-experimental/mdc-chips/index.ts","../../../../../../src/material-experimental/mdc-chips/mdc-chips_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/** Default options, for the chips module, that can be overridden. */\nexport interface MatChipsDefaultOptions {\n /** The list of key codes that will trigger a chipEnd event. */\n separatorKeyCodes: readonly number[] | ReadonlySet<number>;\n}\n\n/** Injection token to be used to override the default options for the chips module. */\nexport const MAT_CHIPS_DEFAULT_OPTIONS = new InjectionToken<MatChipsDefaultOptions>(\n 'mat-chips-default-options',\n);\n\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_AVATAR = new InjectionToken('MatChipAvatar');\n\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_TRAILING_ICON = new InjectionToken('MatChipTrailingIcon');\n\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_REMOVE = new InjectionToken('MatChipRemove');\n\n/**\n * Injection token used to avoid a circular dependency between the `MatChip` and `MatChipAction`.\n */\nexport const MAT_CHIP = new InjectionToken('MatChip');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {HasTabIndex, mixinTabIndex} from '@angular/material-experimental/mdc-core';\nimport {MAT_CHIP} from './tokens';\n\nabstract class _MatChipActionBase {\n abstract disabled: boolean;\n}\n\nconst _MatChipActionMixinBase = mixinTabIndex(_MatChipActionBase, -1);\n\n/**\n * Section within a chip.\n * @docs-private\n */\n@Directive({\n selector: '[matChipAction]',\n inputs: ['disabled', 'tabIndex'],\n host: {\n 'class': 'mdc-evolution-chip__action mat-mdc-chip-action',\n '[class.mdc-evolution-chip__action--primary]': '_isPrimary',\n // Note that while our actions are interactive, we have to add the `--presentational` class,\n // in order to avoid some super-specific `:hover` styles from MDC.\n '[class.mdc-evolution-chip__action--presentational]': '_isPrimary',\n '[class.mdc-evolution-chip__action--trailing]': '!_isPrimary',\n '[attr.tabindex]': '(disabled || !isInteractive) ? null : tabIndex',\n '[attr.disabled]': \"disabled ? '' : null\",\n '[attr.aria-disabled]': 'disabled',\n '(click)': '_handleClick($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class MatChipAction extends _MatChipActionMixinBase implements HasTabIndex {\n /** Whether the action is interactive. */\n @Input() isInteractive = true;\n\n /** Whether this is the primary action in the chip. */\n _isPrimary = true;\n\n /** Whether the action is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || this._parentChip.disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n constructor(\n public _elementRef: ElementRef<HTMLElement>,\n @Inject(MAT_CHIP)\n protected _parentChip: {\n _handlePrimaryActionInteraction(): void;\n remove(): void;\n disabled: boolean;\n },\n ) {\n super();\n\n if (_elementRef.nativeElement.nodeName === 'BUTTON') {\n _elementRef.nativeElement.setAttribute('type', 'button');\n }\n }\n\n focus() {\n this._elementRef.nativeElement.focus();\n }\n\n _handleClick(event: MouseEvent) {\n if (!this.disabled && this.isInteractive && this._isPrimary) {\n event.preventDefault();\n this._parentChip._handlePrimaryActionInteraction();\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (\n (event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this.disabled &&\n this.isInteractive &&\n this._isPrimary\n ) {\n event.preventDefault();\n this._parentChip._handlePrimaryActionInteraction();\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n AfterViewInit,\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation,\n ViewChild,\n Attribute,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {\n CanColor,\n CanDisable,\n CanDisableRipple,\n HasTabIndex,\n MatRipple,\n MAT_RIPPLE_GLOBAL_OPTIONS,\n mixinColor,\n mixinDisableRipple,\n mixinTabIndex,\n mixinDisabled,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {Subject} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {MatChipAvatar, MatChipTrailingIcon, MatChipRemove} from './chip-icons';\nimport {MatChipAction} from './chip-action';\nimport {BACKSPACE, DELETE} from '@angular/cdk/keycodes';\nimport {MAT_CHIP, MAT_CHIP_AVATAR, MAT_CHIP_REMOVE, MAT_CHIP_TRAILING_ICON} from './tokens';\n\nlet uid = 0;\n\n/** Represents an event fired on an individual `mat-chip`. */\nexport interface MatChipEvent {\n /** The chip the event was fired on. */\n chip: MatChip;\n}\n\n/**\n * Boilerplate for applying mixins to MatChip.\n * @docs-private\n */\nconst _MatChipMixinBase = mixinTabIndex(\n mixinColor(\n mixinDisableRipple(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef<HTMLElement>) {}\n },\n ),\n ),\n 'primary',\n ),\n -1,\n);\n\n/**\n * Material design styled Chip base component. Used inside the MatChipSet component.\n *\n * Extended by MatChipOption and MatChipRow for different interaction patterns.\n */\n@Component({\n selector: 'mat-basic-chip, mat-chip',\n inputs: ['color', 'disabled', 'disableRipple', 'tabIndex'],\n exportAs: 'matChip',\n templateUrl: 'chip.html',\n styleUrls: ['chip.css'],\n host: {\n 'class': 'mat-mdc-chip',\n '[class.mdc-evolution-chip]': '!_isBasicChip',\n '[class.mdc-evolution-chip--disabled]': 'disabled',\n '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n '[class.mdc-evolution-chip--with-primary-graphic]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-highlighted]': 'highlighted',\n '[class.mat-mdc-chip-disabled]': 'disabled',\n '[class.mat-mdc-basic-chip]': '_isBasicChip',\n '[class.mat-mdc-standard-chip]': '!_isBasicChip',\n '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n '[id]': 'id',\n '[attr.role]': 'role',\n '[attr.tabindex]': 'role ? tabIndex : null',\n '[attr.aria-label]': 'ariaLabel',\n '(keydown)': '_handleKeydown($event)',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: MAT_CHIP, useExisting: MatChip}],\n})\nexport class MatChip\n extends _MatChipMixinBase\n implements AfterViewInit, CanColor, CanDisableRipple, CanDisable, HasTabIndex, OnDestroy\n{\n protected _document: Document;\n\n /** Whether the ripple is centered on the chip. */\n readonly _isRippleCentered = false;\n\n /** Emits when the chip is focused. */\n readonly _onFocus = new Subject<MatChipEvent>();\n\n /** Emits when the chip is blurred. */\n readonly _onBlur = new Subject<MatChipEvent>();\n\n /** Whether this chip is a basic (unstyled) chip. */\n readonly _isBasicChip: boolean;\n\n /** Role for the root of the chip. */\n @Input() role: string | null = null;\n\n /** Whether the chip has focus. */\n private _hasFocusInternal = false;\n\n /** Whether moving focus into the chip is pending. */\n private _pendingFocus: boolean;\n\n /** Whether animations for the chip are enabled. */\n _animationsDisabled: boolean;\n\n _hasFocus() {\n return this._hasFocusInternal;\n }\n\n /** A unique id for the chip. If none is supplied, it will be auto-generated. */\n @Input() id: string = `mat-mdc-chip-${uid++}`;\n\n /** ARIA label for the content of the chip. */\n @Input('aria-label') ariaLabel: string | null = null;\n\n private _textElement!: HTMLElement;\n\n /**\n * The value of the chip. Defaults to the content inside\n * the `mat-mdc-chip-action-label` element.\n */\n @Input()\n get value(): any {\n return this._value !== undefined ? this._value : this._textElement.textContent!.trim();\n }\n set value(value: any) {\n this._value = value;\n }\n protected _value: any;\n\n /**\n * Determines whether or not the chip displays the remove styling and emits (removed) events.\n */\n @Input()\n get removable(): boolean {\n return this._removable;\n }\n set removable(value: BooleanInput) {\n this._removable = coerceBooleanProperty(value);\n }\n protected _removable: boolean = true;\n\n /**\n * Colors the chip for emphasis as if it were selected.\n */\n @Input()\n get highlighted(): boolean {\n return this._highlighted;\n }\n set highlighted(value: BooleanInput) {\n this._highlighted = coerceBooleanProperty(value);\n }\n protected _highlighted: boolean = false;\n\n /** Emitted when a chip is to be removed. */\n @Output() readonly removed: EventEmitter<MatChipEvent> = new EventEmitter<MatChipEvent>();\n\n /** Emitted when the chip is destroyed. */\n @Output() readonly destroyed: EventEmitter<MatChipEvent> = new EventEmitter<MatChipEvent>();\n\n /** The unstyled chip selector for this component. */\n protected basicChipAttrName = 'mat-basic-chip';\n\n /** The chip's leading icon. */\n @ContentChild(MAT_CHIP_AVATAR) leadingIcon: MatChipAvatar;\n\n /** The chip's trailing icon. */\n @ContentChild(MAT_CHIP_TRAILING_ICON) trailingIcon: MatChipTrailingIcon;\n\n /** The chip's trailing remove icon. */\n @ContentChild(MAT_CHIP_REMOVE) removeIcon: MatChipRemove;\n\n /** Reference to the MatRipple instance of the chip. */\n @ViewChild(MatRipple) ripple: MatRipple;\n\n /** Action receiving the primary set of user interactions. */\n @ViewChild(MatChipAction) primaryAction: MatChipAction;\n\n constructor(\n public _changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef<HTMLElement>,\n protected _ngZone: NgZone,\n private _focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) _document: any,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional()\n @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n private _globalRippleOptions?: RippleGlobalOptions,\n @Attribute('tabindex') tabIndex?: string,\n ) {\n super(elementRef);\n const element = elementRef.nativeElement;\n this._document = _document;\n this._animationsDisabled = animationMode === 'NoopAnimations';\n this._isBasicChip =\n element.hasAttribute(this.basicChipAttrName) ||\n element.tagName.toLowerCase() === this.basicChipAttrName;\n if (tabIndex != null) {\n this.tabIndex = parseInt(tabIndex) ?? this.defaultTabIndex;\n }\n this._monitorFocus();\n }\n\n ngAfterViewInit() {\n this._textElement = this._elementRef.nativeElement.querySelector('.mat-mdc-chip-action-label')!;\n\n if (this._pendingFocus) {\n this._pendingFocus = false;\n this.focus();\n }\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this.destroyed.emit({chip: this});\n this.destroyed.complete();\n }\n\n /**\n * Allows for programmatic removal of the chip.\n *\n * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n */\n remove(): void {\n if (this.removable) {\n this.removed.emit({chip: this});\n }\n }\n\n /** Whether or not the ripple should be disabled. */\n _isRippleDisabled(): boolean {\n return (\n this.disabled ||\n this.disableRipple ||\n this._animationsDisabled ||\n this._isBasicChip ||\n !!this._globalRippleOptions?.disabled\n );\n }\n\n /** Returns whether the chip has a trailing icon. */\n _hasTrailingIcon() {\n return !!(this.trailingIcon || this.removeIcon);\n }\n\n /** Handles keyboard events on the chip. */\n _handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === BACKSPACE || event.keyCode === DELETE) {\n event.preventDefault();\n this.remove();\n }\n }\n\n /** Allows for programmatic focusing of the chip. */\n focus(): void {\n if (!this.disabled) {\n // If `focus` is called before `ngAfterViewInit`, we won't have access to the primary action.\n // This can happen if the consumer tries to focus a chip immediately after it is added.\n // Queue the method to be called again on init.\n if (this.primaryAction) {\n this.primaryAction.focus();\n } else {\n this._pendingFocus = true;\n }\n }\n }\n\n /** Gets the action that contains a specific target node. */\n _getSourceAction(target: Node): MatChipAction | undefined {\n return this._getActions().find(action => {\n const element = action._elementRef.nativeElement;\n return element === target || element.contains(target);\n });\n }\n\n /** Gets all of the actions within the chip. */\n _getActions(): MatChipAction[] {\n const result: MatChipAction[] = [];\n\n if (this.primaryAction) {\n result.push(this.primaryAction);\n }\n\n if (this.removeIcon) {\n result.push(this.removeIcon);\n }\n\n if (this.trailingIcon) {\n result.push(this.trailingIcon);\n }\n\n return result;\n }\n\n /** Handles interactions with the primary action of the chip. */\n _handlePrimaryActionInteraction() {\n // Empty here, but is overwritten in child classes.\n }\n\n /** Starts the focus monitoring process on the chip. */\n private _monitorFocus() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(origin => {\n const hasFocus = origin !== null;\n\n if (hasFocus !== this._hasFocusInternal) {\n this._hasFocusInternal = hasFocus;\n\n if (hasFocus) {\n this._onFocus.next({chip: this});\n } else {\n // When animations are enabled, Angular may end up removing the chip from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the chip list\n // that moves focus not the next item. To work around the issue, we defer marking the chip\n // as not focused until the next time the zone stabilizes.\n this._ngZone.onStable\n .pipe(take(1))\n .subscribe(() => this._ngZone.run(() => this._onBlur.next({chip: this})));\n }\n }\n });\n }\n}\n","<span matRipple class=\"mat-mdc-chip-ripple\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"_isRippleCentered\"\n [matRippleTrigger]=\"_elementRef.nativeElement\"></span>\n<span class=\"mat-mdc-chip-focus-overlay\"></span>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\">\n <div matChipAction [isInteractive]=\"false\">\n <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"leadingIcon\">\n <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n </span>\n <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n <ng-content></ng-content>\n <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\"></span>\n </span>\n </div>\n</span>\n\n<span\n class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n *ngIf=\"_hasTrailingIcon()\">\n <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n OnInit,\n} from '@angular/core';\nimport {MatChip} from './chip';\nimport {MAT_CHIP} from './tokens';\n\n/** Event object emitted by MatChipOption when selected or deselected. */\nexport class MatChipSelectionChange {\n constructor(\n /** Reference to the chip that emitted the event. */\n public source: MatChipOption,\n /** Whether the chip that emitted the event is selected. */\n public selected: boolean,\n /** Whether the selection change was a result of a user interaction. */\n public isUserInput = false,\n ) {}\n}\n\n/**\n * An extension of the MatChip component that supports chip selection.\n * Used with MatChipListbox.\n */\n@Component({\n selector: 'mat-basic-chip-option, mat-chip-option',\n templateUrl: 'chip-option.html',\n styleUrls: ['chip.css'],\n inputs: ['color', 'disabled', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-mdc-chip mat-mdc-chip-option mdc-evolution-chip mdc-evolution-chip--filter',\n '[class.mat-mdc-chip-selected]': 'selected',\n '[class.mat-mdc-chip-multiple]': '_chipListMultiple',\n '[class.mat-mdc-chip-disabled]': 'disabled',\n '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n '[class.mdc-evolution-chip--selectable]': 'selectable',\n '[class.mdc-evolution-chip--disabled]': 'disabled',\n '[class.mdc-evolution-chip--selected]': 'selected',\n // This class enables the transition on the checkmark. Usually MDC adds it when selection\n // starts and removes it once the animation is finished. We don't need to go through all\n // the trouble, because we only care about the selection animation. MDC needs to do it,\n // because they also have an exit animation that we don't care about.\n '[class.mdc-evolution-chip--selecting]': '!_animationsDisabled',\n '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n '[class.mdc-evolution-chip--with-primary-graphic]': '_hasLeadingGraphic()',\n '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-highlighted]': 'highlighted',\n '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.role]': 'role',\n '[id]': 'id',\n },\n providers: [\n {provide: MatChip, useExisting: MatChipOption},\n {provide: MAT_CHIP, useExisting: MatChipOption},\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipOption extends MatChip implements OnInit {\n /** Whether the chip list is selectable. */\n chipListSelectable: boolean = true;\n\n /** Whether the chip list is in multi-selection mode. */\n _chipListMultiple: boolean = false;\n\n /**\n * Whether or not the chip is selectable.\n *\n * When a chip is not selectable, changes to its selected state are always\n * ignored. By default an option chip is selectable, and it becomes\n * non-selectable if its parent chip list is not selectable.\n */\n @Input()\n get selectable(): boolean {\n return this._selectable && this.chipListSelectable;\n }\n set selectable(value: BooleanInput) {\n this._selectable = coerceBooleanProperty(value);\n }\n protected _selectable: boolean = true;\n\n /** Whether the chip is selected. */\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: BooleanInput) {\n this._setSelectedState(coerceBooleanProperty(value), false, true);\n }\n private _selected = false;\n\n /** The ARIA selected applied to the chip. */\n get ariaSelected(): string | null {\n // Remove the `aria-selected` when the chip is deselected in single-selection mode, because\n // it adds noise to NVDA users where \"not selected\" will be read out for each chip.\n return this.selectable && (this._chipListMultiple || this.selected)\n ? this.selected.toString()\n : null;\n }\n\n /** The unstyled chip selector for this component. */\n protected override basicChipAttrName = 'mat-basic-chip-option';\n\n /** Emitted when the chip is selected or deselected. */\n @Output() readonly selectionChange: EventEmitter<MatChipSelectionChange> =\n new EventEmitter<MatChipSelectionChange>();\n\n ngOnInit() {\n this.role = 'presentation';\n }\n\n /** Selects the chip. */\n select(): void {\n this._setSelectedState(true, false, true);\n }\n\n /** Deselects the chip. */\n deselect(): void {\n this._setSelectedState(false, false, true);\n }\n\n /** Selects this chip and emits userInputSelection event */\n selectViaInteraction(): void {\n this._setSelectedState(true, true, true);\n }\n\n /** Toggles the current selected state of this chip. */\n toggleSelected(isUserInput: boolean = false): boolean {\n this._setSelectedState(!this.selected, isUserInput, true);\n return this.selected;\n }\n\n override _handlePrimaryActionInteraction() {\n if (this.selectable && !this.disabled) {\n this.toggleSelected(true);\n }\n }\n\n _hasLeadingGraphic() {\n // The checkmark graphic is built in for multi-select chip lists.\n return this.leadingIcon || (this._chipListMultiple && this.selectable);\n }\n\n _setSelectedState(isSelected: boolean, isUserInput: boolean, emitEvent: boolean) {\n if (isSelected !== this.selected) {\n this._selected = isSelected;\n\n if (emitEvent) {\n this.selectionChange.emit({\n source: this,\n isUserInput,\n selected: this.selected,\n });\n }\n }\n }\n}\n","<span matRipple class=\"mat-mdc-chip-ripple\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"_isRippleCentered\"\n [matRippleTrigger]=\"_elementRef.nativeElement\"></span>\n<span class=\"mat-mdc-chip-focus-overlay\"></span>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\">\n <button\n matChipAction\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n [attr.aria-selected]=\"ariaSelected\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"option\">\n <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"_hasLeadingGraphic()\">\n <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n <span class=\"mdc-evolution-chip__checkmark\">\n <svg class=\"mdc-evolution-chip__checkmark-svg\" viewBox=\"-2 -3 30 30\" focusable=\"false\">\n <path class=\"mdc-evolution-chip__checkmark-path\"\n fill=\"none\" stroke=\"currentColor\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\" />\n </svg>\n </span>\n </span>\n <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n <ng-content></ng-content>\n <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\"></span>\n </span>\n </button>\n</span>\n\n<span\n class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n *ngIf=\"_hasTrailingIcon()\">\n <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n/**\n * A directive that makes a span editable and exposes functions to modify and retrieve the\n * element's contents.\n */\n@Directive({\n selector: 'span[matChipEditInput]',\n host: {\n 'class': 'mat-chip-edit-input',\n 'role': 'textbox',\n 'tabindex': '-1',\n 'contenteditable': 'true',\n },\n})\nexport class MatChipEditInput {\n constructor(\n private readonly _elementRef: ElementRef,\n @Inject(DOCUMENT) private readonly _document: any,\n ) {}\n\n initialize(initialValue: string) {\n this.getNativeElement().focus();\n this.setValue(initialValue);\n }\n\n getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n setValue(value: string) {\n this.getNativeElement().textContent = value;\n this._moveCursorToEndOfInput();\n }\n\n getValue(): string {\n return this.getNativeElement().textContent || '';\n }\n\n private _moveCursorToEndOfInput() {\n const range = this._document.createRange();\n range.selectNodeContents(this.getNativeElement());\n range.collapse(false);\n const sel = window.getSelection()!;\n sel.removeAllRanges();\n sel.addRange(range);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipEditInput} from './chip-edit-input';\nimport {takeUntil} from 'rxjs/operators';\nimport {MAT_CHIP} from './tokens';\n\n/** Represents an event fired on an individual `mat-chip` when it is edited. */\nexport interface MatChipEditedEvent extends MatChipEvent {\n /** The final edit value. */\n value: string;\n}\n\n/**\n * An extension of the MatChip component used with MatChipGrid and\n * the matChipInputFor directive.\n */\n@Component({\n selector: 'mat-chip-row, mat-basic-chip-row',\n templateUrl: 'chip-row.html',\n styleUrls: ['chip.css'],\n inputs: ['color', 'disabled', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-mdc-chip mat-mdc-chip-row mdc-evolution-chip',\n '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-disabled]': 'disabled',\n '[class.mat-mdc-chip-editing]': '_isEditing',\n '[class.mat-mdc-chip-editable]': 'editable',\n '[class.mdc-evolution-chip--disabled]': 'disabled',\n '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n '[class.mdc-evolution-chip--with-primary-graphic]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n '[class.mat-mdc-chip-highlighted]': 'highlighted',\n '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n '[id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.role]': 'role',\n '(mousedown)': '_mousedown($event)',\n '(dblclick)': '_doubleclick($event)',\n },\n providers: [\n {provide: MatChip, useExisting: MatChipRow},\n {provide: MAT_CHIP, useExisting: MatChipRow},\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipRow extends MatChip implements AfterViewInit {\n protected override basicChipAttrName = 'mat-basic-chip-row';\n\n @Input() editable: boolean = false;\n\n /** Emitted when the chip is edited. */\n @Output() readonly edited: EventEmitter<MatChipEditedEvent> =\n new EventEmitter<MatChipEditedEvent>();\n\n /** The default chip edit input that is used if none is projected into this chip row. */\n @ViewChild(MatChipEditInput) defaultEditInput?: MatChipEditInput;\n\n /** The projected chip edit input. */\n @ContentChild(MatChipEditInput) contentEditInput?: MatChipEditInput;\n\n _isEditing = false;\n\n constructor(\n changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef,\n ngZone: NgZone,\n focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) _document: any,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional()\n @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n globalRippleOptions?: RippleGlobalOptions,\n @Attribute('tabindex') tabIndex?: string,\n ) {\n super(\n changeDetectorRef,\n elementRef,\n ngZone,\n focusMonitor,\n _document,\n animationMode,\n globalRippleOptions,\n tabIndex,\n );\n\n this.role = 'row';\n this._onBlur.pipe(takeUntil(this.destroyed)).subscribe(() => {\n if (this._isEditing) {\n this._onEditFinish();\n }\n });\n }\n\n override _hasTrailingIcon() {\n // The trailing icon is hidden while editing.\n return !this._isEditing && super._hasTrailingIcon();\n }\n\n /** Sends focus to the first gridcell when the user clicks anywhere inside the chip. */\n _mousedown(event: MouseEvent) {\n if (!this._isEditing) {\n if (!this.disabled) {\n this.focus();\n }\n\n event.preventDefault();\n }\n }\n\n override _handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER && !this.disabled) {\n if (this._isEditing) {\n event.preventDefault();\n this._onEditFinish();\n } else if (this.editable) {\n this._startEditing(event);\n }\n } else if (this._isEditing) {\n // Stop the event from reaching the chip set in order to avoid navigating.\n event.stopPropagation();\n } else {\n super._handleKeydown(event);\n }\n }\n\n _doubleclick(event: MouseEvent) {\n if (!this.disabled && this.editable) {\n this._startEditing(event);\n }\n }\n\n private _startEditing(event: Event) {\n if (\n !this.primaryAction ||\n (this.removeIcon && this._getSourceAction(event.target as Node) === this.removeIcon)\n ) {\n return;\n }\n\n // The value depends on the DOM so we need to extract it before we flip the flag.\n const value = this.value;\n\n // Make the primary action non-interactive so that it doesn't\n // navigate when the user presses the arrow keys while editing.\n this.primaryAction.isInteractive = false;\n this._isEditing = true;\n\n // Defer initializing the input so it has time to be added to the DOM.\n setTimeout(() => this._getEditInput().initialize(value));\n }\n\n private _onEditFinish() {\n this._isEditing = false;\n this.primaryAction.isInteractive = true;\n this.edited.emit({chip: this, value: this._getEditInput().getValue()});\n\n // If the edit input is still focused or focus was returned to the body after it was destroyed,\n // return focus to the chip contents.\n if (\n this._document.activeElement === this._getEditInput().getNativeElement() ||\n this._document.activeElement === this._document.body\n ) {\n this.primaryAction.focus();\n }\n }\n\n /**\n * Gets the projected chip edit input, or the default input if none is projected in. One of these\n * two values is guaranteed to be defined.\n */\n private _getEditInput(): MatChipEditInput {\n return this.contentEditInput || this.defaultEditInput!;\n }\n}\n","<ng-container *ngIf=\"!_isEditing\">\n <span matRipple class=\"mat-mdc-chip-ripple\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"_isRippleCentered\"\n [matRippleTrigger]=\"_elementRef.nativeElement\"></span>\n <span class=\"mat-mdc-chip-focus-overlay\"></span>\n</ng-container>\n\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\" role=\"gridcell\">\n <button\n matChipAction\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel\">\n <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"leadingIcon\">\n <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n </span>\n <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\" [ngSwitch]=\"_isEditing\">\n <ng-container *ngSwitchCase=\"false\"><ng-content></ng-content></ng-container>\n\n <ng-container *ngSwitchCase=\"true\">\n <ng-content *ngIf=\"contentEditInput; else defaultMatChipEditInput\"\n select=\"[matChipEditInput]\"></ng-content>\n <ng-template #defaultMatChipEditInput><span matChipEditInput></span></ng-template>\n </ng-container>\n\n <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\"></span>\n </span>\n </button>\n</span>\n\n<span\n class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n *ngIf=\"_hasTrailingIcon()\">\n <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {HasTabIndex, mixinTabIndex} from '@angular/material-experimental/mdc-core';\nimport {merge, Observable, Subject} from 'rxjs';\nimport {startWith, switchMap, takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipAction} from './chip-action';\n\n/**\n * Boilerplate for applying mixins to MatChipSet.\n * @docs-private\n */\nabstract class MatChipSetBase {\n abstract disabled: boolean;\n constructor(_elementRef: ElementRef) {}\n}\nconst _MatChipSetMixinBase = mixinTabIndex(MatChipSetBase);\n\n/**\n * Basic container component for the MatChip component.\n *\n * Extended by MatChipListbox and MatChipGrid for different interaction patterns.\n */\n@Component({\n selector: 'mat-chip-set',\n template: `\n <span class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n <ng-content></ng-content>\n </span>\n `,\n styleUrls: ['chip-set.css'],\n host: {\n 'class': 'mat-mdc-chip-set mdc-evolution-chip-set',\n '(keydown)': '_handleKeydown($event)',\n '[attr.role]': 'role',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipSet\n extends _MatChipSetMixinBase\n implements AfterViewInit, HasTabIndex, OnDestroy\n{\n /** Index of the last destroyed chip that had focus. */\n private _lastDestroyedFocusedChipIndex: number | null = null;\n\n /** Used to manage focus within the chip list. */\n protected _keyManager: FocusKeyManager<MatChipAction>;\n\n /** Subject that emits when the component has been destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Role to use if it hasn't been overwritten by the user. */\n protected _defaultRole = 'presentation';\n\n /** Combined stream of all of the child chips' focus events. */\n get chipFocusChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onFocus);\n }\n\n /** Combined stream of all of the child chips' remove events. */\n get chipDestroyedChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip.destroyed);\n }\n\n /** Whether the chip set is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n protected _disabled: boolean = false;\n\n /** Whether the chip list contains chips or not. */\n get empty(): boolean {\n return this._chips.length === 0;\n }\n\n /** The ARIA role applied to the chip set. */\n @Input()\n get role(): string | null {\n if (this._explicitRole) {\n return this._explicitRole;\n }\n\n return this.empty ? null : this._defaultRole;\n }\n\n set role(value: string | null) {\n this._explicitRole = value;\n }\n private _explicitRole: string | null = null;\n\n /** Whether any of the chips inside of this chip-set has focus. */\n get focused(): boolean {\n return this._hasFocusedChip();\n }\n\n /** The chips that are part of this chip set. */\n @ContentChildren(MatChip, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true,\n })\n _chips: QueryList<MatChip>;\n\n /** Flat list of all the actions contained within the chips. */\n _chipActions = new QueryList<MatChipAction>();\n\n constructor(\n protected _elementRef: ElementRef<HTMLElement>,\n protected _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _dir: Directionality,\n ) {\n super(_elementRef);\n }\n\n ngAfterViewInit() {\n this._setUpFocusManagement();\n this._trackChipSetChanges();\n this._trackDestroyedFocusedChip();\n }\n\n ngOnDestroy() {\n this._chipActions.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /** Checks whether any of the chips is focused. */\n protected _hasFocusedChip() {\n return this._chips && this._chips.some(chip => chip._hasFocus());\n }\n\n /** Syncs the chip-set's state with the individual chips. */\n protected _syncChipsState() {\n if (this._chips) {\n this._chips.forEach(chip => {\n chip.disabled = this._disabled;\n chip._changeDetectorRef.markForCheck();\n });\n }\n }\n\n /** Dummy method for subclasses to override. Base chip set cannot be focused. */\n focus() {}\n\n /** Handles keyboard events on the chip set. */\n _handleKeydown(event: KeyboardEvent) {\n if (this._originatesFromChip(event)) {\n this._keyManager.onKeydown(event);\n }\n }\n\n /**\n * Utility to ensure all indexes are valid.\n *\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of chips.\n */\n protected _isValidIndex(index: number): boolean {\n return index >= 0 && index < this._chips.length;\n }\n\n /**\n * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the\n * user to tab out of it. This prevents the grid from capturing focus and redirecting\n * it back to the first chip, creating a focus trap, if it user tries to tab away.\n */\n protected _allowFocusEscape() {\n const previousTabIndex = this.tabIndex;\n\n if (this.tabIndex !== -1) {\n this.tabIndex = -1;\n\n setTimeout(() => {\n this.tabIndex = previousTabIndex;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n /**\n * Gets a stream of events from all the chips within the set.\n * The stream will automatically incorporate any newly-added chips.\n */\n protected _getChipStream<T, C extends MatChip = MatChip>(\n mappingFunction: (chip: C) => Observable<T>,\n ): Observable<T> {\n return this._chips.changes.pipe(\n startWith(null),\n switchMap(() => merge(...(this._chips as QueryList<C>).map(mappingFunction))),\n );\n }\n\n /** Checks whether an event comes from inside a chip element. */\n protected _originatesFromChip(event: Event): boolean {\n let currentElement = event.target as HTMLElement | null;\n\n while (currentElement && currentElement !== this._elementRef.nativeElement) {\n // Null check the classList, because IE and Edge don't support it on all elements.\n if (currentElement.classList && currentElement.classList.contains('mdc-evolution-chip')) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n return false;\n }\n\n /** Sets up the chip set's focus management logic. */\n private _setUpFocusManagement() {\n // Create a flat `QueryList` containing the actions of all of the chips.\n // This allows us to navigate both within the chip and move to the next/previous\n // one using the existing `ListKeyManager`.\n this._chips.changes.pipe(startWith(this._chips)).subscribe((chips: QueryList<MatChip>) => {\n const actions: MatChipAction[] = [];\n chips.forEach(chip => chip._getActions().forEach(action => actions.push(action)));\n this._chipActions.reset(actions);\n this._chipActions.notifyOnChanges();\n });\n\n this._keyManager = new FocusKeyManager(this._chipActions)\n .withVerticalOrientation()\n .withHorizontalOrientation(this._dir ? this._dir.value : 'ltr')\n .withHomeAndEnd()\n // Skip non-interactive and disabled actions since the user can't do anything with them.\n .skipPredicate(action => !action.isInteractive || action.disabled);\n\n // Keep the manager active index in sync so that navigation picks\n // up from the current chip if the user clicks into the list directly.\n this.chipFocusChanges.pipe(takeUntil(this._destroyed)).subscribe(({chip}) => {\n const action = chip._getSourceAction(document.activeElement as Element);\n\n if (action) {\n this._keyManager.updateActiveItem(action);\n }\n });\n\n this._dir?.change\n .pipe(takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n }\n\n /** Listens to changes in the chip set and syncs up the state of the individual chips. */\n private _trackChipSetChanges() {\n this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n if (this.disabled) {\n // Since this happens after the content has been\n // checked, we need to defer it to the next tick.\n Promise.resolve().then(() => this._syncChipsState());\n }\n\n this._redirectDestroyedChipFocus();\n });\n }\n\n /** Starts tracking the destroyed chips in order to capture the focused one. */\n private _trackDestroyedFocusedChip() {\n this.chipDestroyedChanges.pipe(takeUntil(this._destroyed)).subscribe((event: MatChipEvent) => {\n const chipArray = this._chips.toArray();\n const chipIndex = chipArray.indexOf(event.chip);\n\n // If the focused chip is destroyed, save its index so that we can move focus to the next\n // chip. We only save the index here, rather than move the focus immediately, because we want\n // to wait until the chip is removed from the chip list before focusing the next one. This\n // allows us to keep focus on the same index if the chip gets swapped out.\n if (this._isValidIndex(chipIndex) && event.chip._hasFocus()) {\n this._lastDestroyedFocusedChipIndex = chipIndex;\n }\n });\n }\n\n /**\n * Finds the next appropriate chip to move focus to,\n * if the currently-focused chip is destroyed.\n */\n private _redirectDestroyedChipFocus() {\n if (this._lastDestroyedFocusedChipIndex == null) {\n return;\n }\n\n if (this._chips.length) {\n const newIndex = Math.min(this._lastDestroyedFocusedChipIndex, this._chips.length - 1);\n const chipToFocus = this._chips.toArray()[newIndex];\n\n if (chipToFocus.disabled) {\n // If we're down to one disabled chip, move focus back to the set.\n if (this._chips.length === 1) {\n this.focus();\n } else {\n this._keyManager.setPreviousItemActive();\n }\n } else {\n chipToFocus.focus();\n }\n } else {\n this.focus();\n }\n\n this._lastDestroyedFocusedChipIndex = null;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {TAB} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipOption, MatChipSelectionChange} from './chip-option';\nimport {MatChipSet} from './chip-set';\n\n/** Change event object that is emitted when the chip listbox value has changed. */\nexport class MatChipListboxChange {\n constructor(\n /** Chip listbox that emitted the event. */\n public source: MatChipListbox,\n /** Value of the chip listbox when the event was emitted. */\n public value: any,\n ) {}\n}\n\n/**\n * Provider Expression that allows mat-chip-listbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatChipListbox),\n multi: true,\n};\n\n/**\n * An extension of the MatChipSet component that supports chip selection.\n * Used with MatChipOption chips.\n */\n@Component({\n selector: 'mat-chip-listbox',\n template: `\n <span class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n <ng-content></ng-content>\n </span>\n `,\n styleUrls: ['chip-set.css'],\n inputs: ['tabIndex'],\n host: {\n 'class': 'mdc-evolution-chip-set mat-mdc-chip-listbox',\n '[attr.role]': 'role',\n '[tabIndex]': 'empty ? -1 : tabIndex',\n // TODO: replace this binding with use of AriaDescriber\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-required]': 'role ? required : null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-orientation]': 'ariaOrientation',\n '[class.mat-mdc-chip-list-disabled]': 'disabled',\n '[class.mat-mdc-chip-list-required]': 'required',\n '(focus)': 'focus()',\n '(blur)': '_blur()',\n '(keydown)': '_keydown($event)',\n },\n providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipListbox\n extends MatChipSet\n implements AfterContentInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Function when touched. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onTouched = () => {};\n\n /**\n * Function when changed. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onChange: (value: any) => void = () => {};\n\n // TODO: MDC uses `grid` here\n protected override _defaultRole = 'listbox';\n\n /** Whether the user should be allowed to select multiple chips. */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: BooleanInput) {\n this._multiple = coerceBooleanProperty(value);\n this._syncListboxProperties();\n }\n private _multiple: boolean = false;\n\n /** The array of selected chips inside the chip listbox. */\n get selected(): MatChipOption[] | MatChipOption {\n const selectedChips = this._chips.toArray().filter(chip => chip.selected);\n return this.multiple ? selectedChips : selectedChips[0];\n }\n\n /** Orientation of the chip list. */\n @Input('aria-orientation') ariaOrientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Whether or not this chip listbox is selectable.\n *\n * When a chip listbox is not selectable, the selected states for all\n * the chips inside the chip listbox are always ignored.\n */\n @Input()\n get selectable(): boolean {\n return this._selectable;\n }\n set selectable(value: BooleanInput) {\n this._selectable = coerceBooleanProperty(value);\n this._syncListboxProperties();\n }\n protected _selectable: boolean = true;\n\n /**\n * A function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (o1: any, o2: any) => o1 === o2;\n\n /** Whether this chip listbox is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required: boolean = false;\n\n /** Combined stream of all of the child chips' selection change events. */\n get chipSelectionChanges(): Observable<MatChipSelectionChange> {\n return this._getChipStream<MatChipSelectionChange, MatChipOption>(chip => chip.selectionChange);\n }\n\n /** Combined stream of all of the child chips' blur events. */\n get chipBlurChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onBlur);\n }\n\n /** The value of the listbox, which is the combined value of the selected chips. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n this.writeValue(value);\n this._value = value;\n }\n protected _value: any;\n\n /** Event emitted when the selected chip listbox value has been changed by the user. */\n @Output() readonly change: EventEmitter<MatChipListboxChange> =\n new EventEmitter<MatChipListboxChange>();\n\n @ContentChildren(MatChipOption, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true,\n })\n override _chips: QueryList<MatChipOption>;\n\n ngAfterContentInit() {\n this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n // Update listbox selectable/multiple properties on chips\n this._syncListboxProperties();\n });\n\n this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._blur());\n this.chipSelectionChanges.pipe(takeUntil(this._destroyed)).subscribe(event => {\n if (!this.multiple) {\n this._chips.forEach(chip => {\n if (chip !== event.source) {\n chip._setSelectedState(false, false, false);\n }\n });\n }\n\n if (event.isUserInput) {\n this._propagateChanges();\n }\n });\n }\n\n /**\n * Focuses the first selected chip in this chip listbox, or the first non-disabled chip when there\n * are no selected chips.\n */\n override focus(): void {\n if (this.disabled) {\n return;\n }\n\n const firstSelectedChip = this._getFirstSelectedChip();\n\n if (firstSelectedChip && !firstSelectedChip.disabled) {\n firstSelectedChip.focus();\n } else if (this._chips.length > 0) {\n this._keyManager.setFirstItemActive();\n } else {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n writeValue(value: any): void {\n if (this._chips) {\n this._setSelectionByValue(value, false);\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Selects all chips with value. */\n _setSelectionByValue(value: any, isUserInput: boolean = true) {\n this._clearSelection();\n\n if (Array.isArray(value)) {\n value.forEach(currentValue => this._selectValue(currentValue, isUserInput));\n } else {\n this._selectValue(value, isUserInput);\n }\n }\n\n /** When blurred, marks the field as touched when focus moved outside the chip listbox. */\n _blur() {\n if (!this.disabled) {\n // Wait to see if focus moves to an individual chip.\n setTimeout(() => {\n if (!this.focused) {\n this._propagateChanges();\n this._markAsTouched();\n }\n });\n }\n }\n\n _keydown(event: KeyboardEvent) {\n if (event.keyCode === TAB) {\n super._allowFocusEscape();\n }\n }\n\n /** Marks the field as touched */\n private _markAsTouched() {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n }\n\n /** Emits change event to set the model value. */\n private _propagateChanges(): void {\n let valueToEmit: any = null;\n\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map(chip => chip.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : undefined;\n }\n this._value = valueToEmit;\n this.change.emit(new MatChipListboxChange(this, valueToEmit));\n this._onChange(valueToEmit);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Deselects every chip in the listbox.\n * @param skip Chip that should not be deselected.\n */\n private _clearSelection(skip?: MatChip): void {\n this._chips.forEach(chip => {\n if (chip !== skip) {\n chip.deselect();\n }\n });\n }\n\n /**\n * Finds and selects the chip based on its value.\n * @returns Chip that has the corresponding value.\n */\n private _selectValue(value: any, isUserInput: boolean): MatChip | undefined {\n const correspondingChip = this._chips.find(chip => {\n return chip.value != null && this.compareWith(chip.value, value);\n });\n\n if (correspondingChip) {\n isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();\n }\n\n return correspondingChip;\n }\n\n /** Syncs the chip-listbox selection state with the individual chips. */\n private _syncListboxProperties() {\n if (this._chips) {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this._chips.forEach(chip => {\n chip._chipListMultiple = this.multiple;\n chip.chipListSelectable = this._selectable;\n chip._changeDetectorRef.markForCheck();\n });\n });\n }\n }\n\n /** Returns the first selected chip in this listbox, or undefined if no chips are selected. */\n private _getFirstSelectedChip(): MatChipOption | undefined {\n if (Array.isArray(this.selected)) {\n return this.selected.length ? this.selected[0] : undefined;\n } else {\n return this.selected;\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {hasModifierKey, TAB} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n Self,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormGroupDirective,\n NgControl,\n NgForm,\n Validators,\n} from '@angular/forms';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n mixinErrorState,\n} from '@angular/material-experimental/mdc-core';\nimport {MatFormFieldControl} from '@angular/material-experimental/mdc-form-field';\nimport {MatChipTextControl} from './chip-text-control';\nimport {Observable, Subject, merge} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {MatChipEvent} from './chip';\nimport {MatChipRow} from './chip-row';\nimport {MatChipSet} from './chip-set';\nimport {Directionality} from '@angular/cdk/bidi';\n\n/** Change event object that is emitted when the chip grid value has changed. */\nexport class MatChipGridChange {\n constructor(\n /** Chip grid that emitted the event. */\n public source: MatChipGrid,\n /** Value of the chip grid when the event was emitted. */\n public value: any,\n ) {}\n}\n\n/**\n * Boilerplate for applying mixins to MatChipGrid.\n * @docs-private\n */\nclass MatChipGridBase extends MatChipSet {\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n dir: Directionality,\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n public ngControl: NgControl,\n ) {\n super(elementRef, changeDetectorRef, dir);\n }\n}\nconst _MatChipGridMixinBase = mixinErrorState(MatChipGridBase);\n\n/**\n * An extension of the MatChipSet component used with MatChipRow chips and\n * the matChipInputFor directive.\n */\n@Component({\n selector: 'mat-chip-grid',\n template: `\n <span class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n <ng-content></ng-content>\n </span>\n `,\n styleUrls: ['chip-set.css'],\n inputs: ['tabIndex'],\n host: {\n 'class': 'mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set',\n '[attr.role]': 'role',\n '[tabIndex]': '_chips && _chips.length === 0 ? -1 : tabIndex',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[class.mat-mdc-chip-list-disabled]': 'disabled',\n '[class.mat-mdc-chip-list-invalid]': 'errorState',\n '[class.mat-mdc-chip-list-required]': 'required',\n '(focus)': 'focus()',\n '(blur)': '_blur()',\n },\n providers: [{provide: MatFormFieldControl, useExisting: MatChipGrid}],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipGrid\n extends _MatChipGridMixinBase\n implements\n AfterContentInit,\n AfterViewInit,\n CanUpdateErrorState,\n ControlValueAccessor,\n DoCheck,\n MatFormFieldControl<any>,\n OnDestroy\n{\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n readonly controlType: string = 'mat-chip-grid';\n\n /** The chip input to add more chips */\n protected _chipInput: MatChipTextControl;\n\n protected override _defaultRole = 'grid';\n\n /**\n * List of element ids to propagate to the chipInput's aria-describedby attribute.\n */\n private _ariaDescribedbyIds: string[] = [];\n\n /**\n * Function when touched. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onTouched = () => {};\n\n /**\n * Function when changed. Set as part of ControlValueAccessor implementation.\n * @docs-private\n */\n _onChange: (value: any) => void = () => {};\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n override get disabled(): boolean {\n return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n }\n override set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id(): string {\n return this._chipInput.id;\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n override get empty(): boolean {\n return (\n (!this._chipInput || this._chipInput.empty) && (!this._chips || this._chips.length === 0)\n );\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n protected _placeholder: string;\n\n /** Whether any chips or the matChipInput inside of this chip-grid has focus. */\n override get focused(): boolean {\n return this._chipInput.focused || this._hasFocusedChip();\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n protected _required: boolean | undefined;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n return !this.empty || this.focused;\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n this._value = value;\n }\n protected _value: any[] = [];\n\n /** An object used to control when error messages are shown. */\n @Input() override errorStateMatcher: ErrorStateMatcher;\n\n /** Combined stream of all of the child chips' blur events. */\n get chipBlurChanges(): Observable<MatChipEvent> {\n return this._getChipStream(chip => chip._onBlur);\n }\n\n /** Emits when the chip grid value has been changed by the user. */\n @Output() readonly change: EventEmitter<MatChipGridChange> =\n new EventEmitter<MatChipGridChange>();\n\n /**\n * Emits whenever the raw value of the chip-grid changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(MatChipRow, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true,\n })\n override _chips: QueryList<MatChipRow>;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n @Optional() dir: Directionality,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() ngControl: NgControl,\n ) {\n super(\n elementRef,\n changeDetectorRef,\n dir,\n defaultErrorStateMatcher,\n parentForm,\n parentFormGroup,\n ngControl,\n );\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngAfterContentInit() {\n this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._blur();\n this.stateChanges.next();\n });\n\n merge(this.chipFocusChanges, this._chips.changes)\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this.stateChanges.next());\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (!this._chipInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('mat-chip-grid must be used in combination with matChipInputFor.');\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.stateChanges.complete();\n }\n\n /** Associates an HTML input element with this chip grid. */\n registerInput(inputElement: MatChipTextControl): void {\n this._chipInput = inputElement;\n this._chipInput.setDescribedByIds(this._ariaDescribedbyIds);\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick(event: MouseEvent) {\n if (!this.disabled && !this._originatesFromChip(event)) {\n this.focus();\n }\n }\n\n /**\n * Focuses the first chip in this chip grid, or the associated input when there\n * are no eligible chips.\n */\n override focus(): void {\n if (this.disabled || this._chipInput.focused) {\n return;\n }\n\n if (!this._chips.length || this._chips.first.disabled) {\n // Delay until the next tick, because this can cause a \"changed after checked\"\n // error if the input does something on focus (e.g. opens an autocomplete).\n Promise.resolve().then(() => this._chipInput.focus());\n } else if (this._chips.length) {\n this._keyManager.setFirstItemActive();\n }\n\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n // We must keep this up to date to handle the case where ids are set\n // before the chip input is registered.\n this._ariaDescribedbyIds = ids;\n\n if (this._chipInput) {\n // Use a setTimeout in case this is being run during change detection\n // and the chip input has already determined its host binding for\n // aria-describedBy.\n setTimeout(() => {\n this._chipInput.setDescribedByIds(ids);\n }, 0);\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n writeValue(value: any): void {\n // The user is responsible for creating the child chips, so we just store the value.\n this._value = value;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n * @docs-private\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n /** When blurred, mark the field as touched when focus moved outside the chip grid. */\n _blur() {\n if (!this.disabled) {\n // Check whether the focus moved to chip input.\n // If the focus is not moved to chip input, mark the field as touched. If the focus moved\n // to chip input, do nothing.\n // Timeout is needed to wait for the focus() event trigger on chip input.\n setTimeout(() => {\n if (!this.focused) {\n this._propagateChanges();\n this._markAsTouched();\n }\n });\n }\n }\n\n /**\n * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the\n * user to tab out of it. This prevents the grid from capturing focus and redirecting\n * it back to the first chip, creating a focus trap, if it user tries to tab away.\n */\n protected override _allowFocusEscape() {\n if (!this._chipInput.focused) {\n super._allowFocusEscape();\n }\n }\n\n /** Handles custom keyboard events. */\n override _handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === TAB) {\n if (\n this._chipInput.focused &&\n hasModifierKey(event, 'shiftKey') &&\n this._chips.length &&\n !this._chips.last.disabled\n ) {\n event.preventDefault();\n\n if (this._keyManager.activeItem) {\n this._keyManager.setActiveItem(this._keyManager.activeItem);\n } else {\n this._focusLastChip();\n }\n } else {\n // Use the super method here since it doesn't check for the input\n // focused state. This allows focus to escape if there's only one\n // disabled chip left in the list.\n super._allowFocusEscape();\n }\n } else if (!this._chipInput.focused) {\n super._handleKeydown(event);\n }\n\n this.stateChanges.next();\n }\n\n _focusLastChip() {\n if (this._chips.length) {\n this._chips.last.focus();\n }\n }\n\n /** Emits change event to set the model value. */\n private _propagateChanges(): void {\n const valueToEmit = this._chips.length ? this._chips.toArray().map(chip => chip.value) : [];\n this._value = valueToEmit;\n this.change.emit(new MatChipGridChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this._changeDetectorRef.markForCheck();\n }\n\n /** Mark the field as touched */\n private _markAsTouched() {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {Directive} from '@angular/core';\nimport {MatChipAction} from './chip-action';\nimport {MAT_CHIP_AVATAR, MAT_CHIP_REMOVE, MAT_CHIP_TRAILING_ICON} from './tokens';\n\n/**\n * Directive to add CSS classes to chip leading icon.\n * @docs-private\n */\n@Directive({\n selector: 'mat-chip-avatar, [matChipAvatar]',\n host: {\n 'class': 'mat-mdc-chip-avatar mdc-evolution-chip__icon mdc-evolution-chip__icon--primary',\n 'role': 'img',\n },\n providers: [{provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar}],\n})\nexport class MatChipAvatar {}\n\n/**\n * Directive to add CSS classes to and configure attributes for chip trailing icon.\n * @docs-private\n */\n@Directive({\n selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]',\n host: {\n 'class':\n 'mat-mdc-chip-trailing-icon mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n 'aria-hidden': 'true',\n },\n providers: [{provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon}],\n})\nexport class MatChipTrailingIcon extends MatChipAction {\n /**\n * MDC considers all trailing actions as a remove icon,\n * but we support non-interactive trailing icons.\n */\n override isInteractive = false;\n\n override _isPrimary = false;\n}\n\n/**\n * Directive to remove the parent chip when the trailing icon is clicked or\n * when the ENTER key is pressed on it.\n *\n * Recommended for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n * ```\n * <mat-chip>\n * <mat-icon matChipRemove>cancel</mat-icon>\n * </mat-chip>\n * ```\n */\n\n@Directive({\n selector: '[matChipRemove]',\n host: {\n 'class':\n 'mat-mdc-chip-remove mat-mdc-chip-trailing-icon mat-mdc-focus-indicator ' +\n 'mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n 'role': 'button',\n '[attr.aria-hidden]': 'null',\n },\n providers: [{provide: MAT_CHIP_REMOVE, useExisting: MatChipRemove}],\n})\nexport class MatChipRemove extends MatChipAction {\n override _isPrimary = false;\n\n override _handleClick(event: MouseEvent): void {\n if (!this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n this._parentChip.remove();\n }\n }\n\n override _handleKeydown(event: KeyboardEvent) {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n this._parentChip.remove();\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BACKSPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n} from '@angular/core';\nimport {MatFormField, MAT_FORM_FIELD} from '@angular/material-experimental/mdc-form-field';\nimport {MatChipsDefaultOptions, MAT_CHIPS_DEFAULT_OPTIONS} from './tokens';\nimport {MatChipGrid} from './chip-grid';\nimport {MatChipTextControl} from './chip-text-control';\n\n/** Represents an input event on a `matChipInput`. */\nexport interface MatChipInputEvent {\n /**\n * The native `<input>` element that the event is being fired for.\n * @deprecated Use `MatChipInputEvent#chipInput.inputElement` instead.\n * @breaking-change 13.0.0 This property will be removed.\n */\n input: HTMLInputElement;\n\n /** The value of the input. */\n value: string;\n\n /** Reference to the chip input that emitted the event. */\n chipInput: MatChipInput;\n}\n\n// Increasing integer for generating unique ids.\nlet nextUniqueId = 0;\n\n/**\n * Directive that adds chip-specific behaviors to an input element inside `<mat-form-field>`.\n * May be placed inside or outside of a `<mat-chip-grid>`.\n */\n@Directive({\n selector: 'input[matChipInputFor]',\n exportAs: 'matChipInput, matChipInputFor',\n host: {\n // TODO: eventually we should remove `mat-input-element` from here since it comes from the\n // non-MDC version of the input. It's currently being kept for backwards compatibility, because\n // the MDC chips were landed initially with it.\n 'class': 'mat-mdc-chip-input mat-mdc-input-element mdc-text-field__input mat-input-element',\n '(keydown)': '_keydown($event)',\n '(keyup)': '_keyup($event)',\n '(blur)': '_blur()',\n '(focus)': '_focus()',\n '(input)': '_onInput()',\n '[id]': 'id',\n '[attr.disabled]': 'disabled || null',\n '[attr.placeholder]': 'placeholder || null',\n '[attr.aria-invalid]': '_chipGrid && _chipGrid.ngControl ? _chipGrid.ngControl.invalid : null',\n '[attr.aria-describedby]': '_ariaDescribedby || null',\n '[attr.aria-required]': '_chipGrid && _chipGrid.required || null',\n '[attr.required]': '_chipGrid && _chipGrid.required || null',\n },\n})\nexport class MatChipInput implements MatChipTextControl, AfterContentInit, OnChanges, OnDestroy {\n /** Used to prevent focus moving to chips while user is holding backspace */\n private _focusLastChipOnBackspace: boolean;\n\n /** Value for ariaDescribedby property */\n _ariaDescribedby?: string;\n\n /** Whether the control is focused. */\n focused: boolean = false;\n _chipGrid: MatChipGrid;\n\n /** Register input for chip list */\n @Input('matChipInputFor')\n set chipGrid(value: MatChipGrid) {\n if (value) {\n this._chipGrid = value;\n this._chipGrid.registerInput(this);\n }\n }\n\n /**\n * Whether or not the chipEnd event will be emitted when the input is blurred.\n */\n @Input('matChipInputAddOnBlur')\n get addOnBlur(): boolean {\n return this._addOnBlur;\n }\n set addOnBlur(value: BooleanInput) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n _addOnBlur: boolean = false;\n\n /**\n * The list of key codes that will trigger a chipEnd event.\n *\n * Defaults to `[ENTER]`.\n */\n @Input('matChipInputSeparatorKeyCodes')\n separatorKeyCodes: readonly number[] | ReadonlySet<number> =\n this._defaultOptions.separatorKeyCodes;\n\n /** Emitted when a chip is to be added. */\n @Output('matChipInputTokenEnd')\n readonly chipEnd: EventEmitter<MatChipInputEvent> = new EventEmitter<MatChipInputEvent>();\n\n /** The input's placeholder text. */\n @Input() placeholder: string = '';\n\n /** Unique id for the input. */\n @Input() id: string = `mat-mdc-chip-list-input-${nextUniqueId++}`;\n\n /** Whether the input is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this._chipGrid && this._chipGrid.disabled);\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean = false;\n\n /** Whether the input is empty. */\n get empty(): boolean {\n return !this.inputElement.value;\n }\n\n /** The native input element to which this directive is attached. */\n readonly inputElement!: HTMLInputElement;\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement>,\n @Inject(MAT_CHIPS_DEFAULT_OPTIONS) private _defaultOptions: MatChipsDefaultOptions,\n @Optional() @Inject(MAT_FORM_FIELD) formField?: MatFormField,\n ) {\n this.inputElement = this._elementRef.nativeElement as HTMLInputElement;\n\n if (formField) {\n this.inputElement.classList.add('mat-mdc-form-field-input-control');\n }\n }\n\n ngOnChanges() {\n this._chipGrid.stateChanges.next();\n }\n\n ngOnDestroy(): void {\n this.chipEnd.complete();\n }\n\n ngAfterContentInit(): void {\n this._focusLastChipOnBackspace = this.empty;\n }\n\n /** Utility method to make host definition/tests more clear. */\n _keydown(event?: KeyboardEvent) {\n if (event) {\n // To prevent the user from accidentally deleting chips when pressing BACKSPACE continuously,\n // We focus the last chip on backspace only after the user has released the backspace button,\n // And the input is empty (see behaviour in _keyup)\n if (event.keyCode === BACKSPACE && this._focusLastChipOnBackspace) {\n this._chipGrid._focusLastChip();\n event.preventDefault();\n return;\n } else {\n this._focusLastChipOnBackspace = false;\n }\n }\n\n this._emitChipEnd(event);\n }\n\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n _keyup(event: KeyboardEvent) {\n // Allow user to move focus to chips next time he presses backspace\n if (!this._focusLastChipOnBackspace && event.keyCode === BACKSPACE && this.empty) {\n this._focusLastChipOnBackspace = true;\n event.preventDefault();\n }\n }\n\n /** Checks to see if the blur should emit the (chipEnd) event. */\n _blur() {\n if (this.addOnBlur) {\n this._emitChipEnd();\n }\n this.focused = false;\n // Blur the chip list if it is not focused\n if (!this._chipGrid.focused) {\n this._chipGrid._blur();\n }\n this._chipGrid.stateChanges.next();\n }\n\n _focus() {\n this.focused = true;\n this._focusLastChipOnBackspace = this.empty;\n this._chipGrid.stateChanges.next();\n }\n\n /** Checks to see if the (chipEnd) event needs to be emitted. */\n _emitChipEnd(event?: KeyboardEvent) {\n if (!event || this._isSeparatorKey(event)) {\n this.chipEnd.emit({\n input: this.inputElement,\n value: this.inputElement.value,\n chipInput: this,\n });\n\n event?.preventDefault();\n }\n }\n\n _onInput() {\n // Let chip list know whenever the value changes.\n this._chipGrid.stateChanges.next();\n }\n\n /** Focuses the input. */\n focus(): void {\n this.inputElement.focus();\n }\n\n /** Clears the input */\n clear(): void {\n this.inputElement.value = '';\n this._focusLastChipOnBackspace = true;\n }\n\n setDescribedByIds(ids: string[]): void {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Checks whether a keycode is one of the configured separators. */\n private _isSeparatorKey(event: KeyboardEvent) {\n return !hasModifierKey(event) && new Set(this.separatorKeyCodes).has(event.keyCode);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n ErrorStateMatcher,\n MatCommonModule,\n MatRippleModule,\n} from '@angular/material-experimental/mdc-core';\nimport {MatChip} from './chip';\nimport {MAT_CHIPS_DEFAULT_OPTIONS, MatChipsDefaultOptions} from './tokens';\nimport {MatChipEditInput} from './chip-edit-input';\nimport {MatChipGrid} from './chip-grid';\nimport {MatChipAvatar, MatChipRemove, MatChipTrailingIcon} from './chip-icons';\nimport {MatChipInput} from './chip-input';\nimport {MatChipListbox} from './chip-listbox';\nimport {MatChipRow} from './chip-row';\nimport {MatChipOption} from './chip-option';\nimport {MatChipSet} from './chip-set';\nimport {MatChipAction} from './chip-action';\n\nconst CHIP_DECLARATIONS = [\n MatChip,\n MatChipAvatar,\n MatChipEditInput,\n MatChipGrid,\n MatChipInput,\n MatChipListbox,\n MatChipOption,\n MatChipRemove,\n MatChipRow,\n MatChipSet,\n MatChipTrailingIcon,\n];\n\n@NgModule({\n imports: [MatCommonModule, CommonModule, MatRippleModule],\n exports: [MatCommonModule, CHIP_DECLARATIONS],\n declarations: [MatChipAction, CHIP_DECLARATIONS],\n providers: [\n ErrorStateMatcher,\n {\n provide: MAT_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n separatorKeyCodes: [ENTER],\n } as MatChipsDefaultOptions,\n },\n ],\n})\nexport class MatChipsModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './chip';\nexport * from './chip-option';\nexport * from './chip-row';\nexport * from './chip-set';\nexport * from './chip-listbox';\nexport * from './chip-grid';\nexport * from './module';\nexport * from './chip-input';\nexport * from './tokens';\nexport * from './chip-icons';\nexport * from './chip-text-control';\nexport * from './chip-edit-input';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.MatChipAction","i1","i2","i3.MatChipAction","i5.MatChipEditInput"],"mappings":"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"}