@koobiq/components 17.7.2 → 17.8.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 (39) hide show
  1. package/checkbox/checkbox.d.ts +2 -3
  2. package/core/utils/utils.d.ts +7 -2
  3. package/esm2022/checkbox/checkbox.mjs +6 -12
  4. package/esm2022/core/utils/utils.mjs +8 -3
  5. package/esm2022/core/version.mjs +2 -2
  6. package/esm2022/form-field/hint.mjs +9 -13
  7. package/esm2022/icon/icon-button.component.mjs +9 -8
  8. package/esm2022/link/link.component.mjs +24 -48
  9. package/esm2022/list/list-selection.component.mjs +16 -15
  10. package/esm2022/navbar/navbar-item.component.mjs +23 -13
  11. package/esm2022/radio/radio.component.mjs +29 -26
  12. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  13. package/fesm2022/koobiq-components-checkbox.mjs +5 -11
  14. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  15. package/fesm2022/koobiq-components-core.mjs +8 -3
  16. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  17. package/fesm2022/koobiq-components-form-field.mjs +8 -12
  18. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  19. package/fesm2022/koobiq-components-icon.mjs +8 -7
  20. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  21. package/fesm2022/koobiq-components-link.mjs +23 -47
  22. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  23. package/fesm2022/koobiq-components-list.mjs +15 -14
  24. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  25. package/fesm2022/koobiq-components-navbar.mjs +22 -12
  26. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  27. package/fesm2022/koobiq-components-radio.mjs +28 -25
  28. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  29. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  30. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  31. package/form-field/hint.d.ts +3 -3
  32. package/icon/icon-button.component.d.ts +2 -0
  33. package/link/link.component.d.ts +14 -17
  34. package/list/list-selection.component.d.ts +6 -2
  35. package/navbar/navbar-item.component.d.ts +7 -4
  36. package/package.json +4 -4
  37. package/radio/radio.component.d.ts +13 -8
  38. package/schematics/ng-add/index.js +2 -2
  39. package/tooltip/tooltip.scss +26 -0
@@ -1,8 +1,8 @@
1
1
  import * as i1 from '@angular/cdk/a11y';
2
2
  import { A11yModule } from '@angular/cdk/a11y';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, Input, ContentChild, NgModule } from '@angular/core';
5
- import { mixinTabIndex, mixinDisabled, toBoolean } from '@koobiq/components/core';
4
+ import { booleanAttribute, Directive, Input, ContentChild, NgModule } from '@angular/core';
5
+ import { mixinTabIndex, mixinDisabled } from '@koobiq/components/core';
6
6
  import { KbqIcon } from '@koobiq/components/icon';
7
7
 
8
8
  /** @docs-private */
@@ -12,46 +12,16 @@ class KbqLinkBase {
12
12
  const KbqLinkMixinBase = mixinTabIndex(mixinDisabled(KbqLinkBase));
13
13
  const baseURLRegex = /^http(s)?:\/\//;
14
14
  class KbqLink extends KbqLinkMixinBase {
15
+ /** Whether the link is disabled. */
15
16
  get disabled() {
16
17
  return this._disabled;
17
18
  }
18
19
  set disabled(value) {
19
- const newValue = toBoolean(value);
20
- if (newValue !== this._disabled) {
21
- this._disabled = newValue;
20
+ if (value !== this._disabled) {
21
+ this._disabled = value;
22
22
  this.changeDetector.markForCheck();
23
23
  }
24
24
  }
25
- get pseudo() {
26
- return this._pseudo;
27
- }
28
- set pseudo(value) {
29
- this._pseudo = toBoolean(value);
30
- }
31
- get noUnderline() {
32
- return this._noUnderline;
33
- }
34
- set noUnderline(value) {
35
- this._noUnderline = toBoolean(value);
36
- }
37
- get big() {
38
- return this._big;
39
- }
40
- set big(value) {
41
- this._big = toBoolean(value);
42
- }
43
- get compact() {
44
- return this._compact;
45
- }
46
- set compact(value) {
47
- this._compact = toBoolean(value);
48
- }
49
- get useVisited() {
50
- return this._useVisited;
51
- }
52
- set useVisited(value) {
53
- this._useVisited = toBoolean(value);
54
- }
55
25
  get hasIcon() {
56
26
  return !!this.icon;
57
27
  }
@@ -66,11 +36,11 @@ class KbqLink extends KbqLinkMixinBase {
66
36
  this.focusMonitor = focusMonitor;
67
37
  this.changeDetector = changeDetector;
68
38
  this._disabled = false;
69
- this._pseudo = false;
70
- this._noUnderline = false;
71
- this._big = false;
72
- this._compact = false;
73
- this._useVisited = false;
39
+ this.pseudo = false;
40
+ this.noUnderline = false;
41
+ this.big = false;
42
+ this.compact = false;
43
+ this.useVisited = false;
74
44
  this.focusMonitor.monitor(elementRef.nativeElement, true);
75
45
  this.updatePrintUrl();
76
46
  }
@@ -89,7 +59,7 @@ class KbqLink extends KbqLinkMixinBase {
89
59
  });
90
60
  }
91
61
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqLink, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
92
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqLink, selector: "[kbq-link]", inputs: { tabIndex: "tabIndex", disabled: "disabled", pseudo: "pseudo", noUnderline: "noUnderline", big: "big", compact: "compact", useVisited: "useVisited", print: "print" }, host: { properties: { "class.kbq-link_no-underline": "noUnderline", "class.kbq-link_use-visited": "useVisited", "class.kbq-link_big": "big", "class.kbq-link_compact": "compact", "class.kbq-link_pseudo": "pseudo", "class.kbq-link_print": "printMode", "class.kbq-text-only": "!hasIcon", "class.kbq-text-with-icon": "hasIcon", "class.kbq-disabled": "disabled || null", "attr.disabled": "disabled || null", "attr.tabindex": "tabIndex", "attr.print": "printUrl" }, classAttribute: "kbq-link" }, queries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }], exportAs: ["kbqLink"], usesInheritance: true, ngImport: i0 }); }
62
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.0", type: KbqLink, selector: "[kbq-link]", inputs: { tabIndex: "tabIndex", disabled: ["disabled", "disabled", booleanAttribute], pseudo: ["pseudo", "pseudo", booleanAttribute], noUnderline: ["noUnderline", "noUnderline", booleanAttribute], big: ["big", "big", booleanAttribute], compact: ["compact", "compact", booleanAttribute], useVisited: ["useVisited", "useVisited", booleanAttribute], print: "print" }, host: { properties: { "class.kbq-link_no-underline": "noUnderline", "class.kbq-link_use-visited": "useVisited", "class.kbq-link_big": "big", "class.kbq-link_compact": "compact", "class.kbq-link_pseudo": "pseudo", "class.kbq-link_print": "printMode", "class.kbq-text-only": "!hasIcon", "class.kbq-text-with-icon": "hasIcon", "class.kbq-disabled": "disabled || null", "attr.disabled": "disabled || null", "attr.tabindex": "tabIndex", "attr.print": "printUrl" }, classAttribute: "kbq-link" }, queries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }], exportAs: ["kbqLink"], usesInheritance: true, ngImport: i0 }); }
93
63
  }
94
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqLink, decorators: [{
95
65
  type: Directive,
@@ -114,17 +84,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
114
84
  }
115
85
  }]
116
86
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
117
- type: Input
87
+ type: Input,
88
+ args: [{ transform: booleanAttribute }]
118
89
  }], pseudo: [{
119
- type: Input
90
+ type: Input,
91
+ args: [{ transform: booleanAttribute }]
120
92
  }], noUnderline: [{
121
- type: Input
93
+ type: Input,
94
+ args: [{ transform: booleanAttribute }]
122
95
  }], big: [{
123
- type: Input
96
+ type: Input,
97
+ args: [{ transform: booleanAttribute }]
124
98
  }], compact: [{
125
- type: Input
99
+ type: Input,
100
+ args: [{ transform: booleanAttribute }]
126
101
  }], useVisited: [{
127
- type: Input
102
+ type: Input,
103
+ args: [{ transform: booleanAttribute }]
128
104
  }], print: [{
129
105
  type: Input
130
106
  }], icon: [{
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-link.mjs","sources":["../../../packages/components/link/link.component.ts","../../../packages/components/link/link.module.ts","../../../packages/components/link/koobiq-components-link.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { ChangeDetectorRef, ContentChild, Directive, ElementRef, Input, OnDestroy } from '@angular/core';\nimport {\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinDisabled,\n mixinTabIndex,\n toBoolean\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n/** @docs-private */\nexport class KbqLinkBase {}\n\n/** @docs-private */\nexport const KbqLinkMixinBase: HasTabIndexCtor & CanDisableCtor & typeof KbqLinkBase = mixinTabIndex(\n mixinDisabled(KbqLinkBase)\n);\n\nexport const baseURLRegex = /^http(s)?:\\/\\//;\n\n@Directive({\n selector: '[kbq-link]',\n exportAs: 'kbqLink',\n inputs: ['tabIndex'],\n host: {\n class: 'kbq-link',\n '[class.kbq-link_no-underline]': 'noUnderline',\n '[class.kbq-link_use-visited]': 'useVisited',\n '[class.kbq-link_big]': 'big',\n '[class.kbq-link_compact]': 'compact',\n '[class.kbq-link_pseudo]': 'pseudo',\n '[class.kbq-link_print]': 'printMode',\n '[class.kbq-text-only]': '!hasIcon',\n '[class.kbq-text-with-icon]': 'hasIcon',\n '[class.kbq-disabled]': 'disabled || null',\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'tabIndex',\n '[attr.print]': 'printUrl'\n }\n})\nexport class KbqLink extends KbqLinkMixinBase implements OnDestroy, HasTabIndex, CanDisable {\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get pseudo() {\n return this._pseudo;\n }\n\n set pseudo(value: any) {\n this._pseudo = toBoolean(value);\n }\n\n private _pseudo = false;\n\n @Input()\n get noUnderline() {\n return this._noUnderline;\n }\n\n set noUnderline(value: any) {\n this._noUnderline = toBoolean(value);\n }\n\n private _noUnderline = false;\n\n @Input()\n get big() {\n return this._big;\n }\n\n set big(value: any) {\n this._big = toBoolean(value);\n }\n\n private _big = false;\n\n @Input()\n get compact() {\n return this._compact;\n }\n\n set compact(value: any) {\n this._compact = toBoolean(value);\n }\n\n private _compact = false;\n\n @Input()\n get useVisited() {\n return this._useVisited;\n }\n\n set useVisited(value: any) {\n this._useVisited = toBoolean(value);\n }\n\n private _useVisited = false;\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n @Input()\n set print(value: any) {\n this.printMode = value !== null;\n\n this._print = value;\n\n this.updatePrintUrl();\n }\n\n private _print: string;\n\n printMode: boolean;\n\n printUrl: string;\n\n @ContentChild(KbqIcon) icon: KbqIcon;\n\n constructor(\n private elementRef: ElementRef,\n private focusMonitor: FocusMonitor,\n private changeDetector: ChangeDetectorRef\n ) {\n super();\n\n this.focusMonitor.monitor(elementRef.nativeElement, true);\n\n this.updatePrintUrl();\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(): void {\n this.getHostElement().focus();\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n private updatePrintUrl() {\n Promise.resolve().then(() => {\n this.printUrl = this._print || this.getHostElement().href?.replace(baseURLRegex, '');\n });\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqLink } from './link.component';\n\n@NgModule({\n imports: [\n A11yModule\n ],\n declarations: [KbqLink],\n exports: [KbqLink]\n})\nexport class KbqLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-link.mjs","sources":["../../../packages/components/link/link.component.ts","../../../packages/components/link/link.module.ts","../../../packages/components/link/koobiq-components-link.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n OnDestroy\n} from '@angular/core';\nimport {\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinDisabled,\n mixinTabIndex\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n/** @docs-private */\nexport class KbqLinkBase {}\n\n/** @docs-private */\nexport const KbqLinkMixinBase: HasTabIndexCtor & CanDisableCtor & typeof KbqLinkBase = mixinTabIndex(\n mixinDisabled(KbqLinkBase)\n);\n\nexport const baseURLRegex = /^http(s)?:\\/\\//;\n\n@Directive({\n selector: '[kbq-link]',\n exportAs: 'kbqLink',\n inputs: ['tabIndex'],\n host: {\n class: 'kbq-link',\n '[class.kbq-link_no-underline]': 'noUnderline',\n '[class.kbq-link_use-visited]': 'useVisited',\n '[class.kbq-link_big]': 'big',\n '[class.kbq-link_compact]': 'compact',\n '[class.kbq-link_pseudo]': 'pseudo',\n '[class.kbq-link_print]': 'printMode',\n '[class.kbq-text-only]': '!hasIcon',\n '[class.kbq-text-with-icon]': 'hasIcon',\n '[class.kbq-disabled]': 'disabled || null',\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'tabIndex',\n '[attr.print]': 'printUrl'\n }\n})\nexport class KbqLink extends KbqLinkMixinBase implements OnDestroy, HasTabIndex, CanDisable {\n /** Whether the link is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this._disabled) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input({ transform: booleanAttribute }) pseudo: boolean = false;\n\n @Input({ transform: booleanAttribute }) noUnderline: boolean = false;\n\n @Input({ transform: booleanAttribute }) big: boolean = false;\n\n @Input({ transform: booleanAttribute }) compact: boolean = false;\n\n @Input({ transform: booleanAttribute }) useVisited: boolean = false;\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n @Input()\n set print(value: any) {\n this.printMode = value !== null;\n\n this._print = value;\n\n this.updatePrintUrl();\n }\n\n private _print: string;\n\n printMode: boolean;\n\n printUrl: string;\n\n @ContentChild(KbqIcon) icon: KbqIcon;\n\n constructor(\n private elementRef: ElementRef,\n private focusMonitor: FocusMonitor,\n private changeDetector: ChangeDetectorRef\n ) {\n super();\n\n this.focusMonitor.monitor(elementRef.nativeElement, true);\n\n this.updatePrintUrl();\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(): void {\n this.getHostElement().focus();\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n private updatePrintUrl() {\n Promise.resolve().then(() => {\n this.printUrl = this._print || this.getHostElement().href?.replace(baseURLRegex, '');\n });\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqLink } from './link.component';\n\n@NgModule({\n imports: [\n A11yModule\n ],\n declarations: [KbqLink],\n exports: [KbqLink]\n})\nexport class KbqLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ import * as i1 from '@angular/cdk/clipboard';
2
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
3
  import { SelectionModel } from '@angular/cdk/collections';
4
4
  import * as i0 from '@angular/core';
5
- import { forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Attribute, Optional, ContentChildren, Output, Input, Directive, Inject, ContentChild, ViewChild, NgModule } from '@angular/core';
5
+ import { forwardRef, EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Attribute, Optional, ContentChildren, Output, Input, Directive, Inject, ContentChild, ViewChild, NgModule } from '@angular/core';
6
6
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
7
  import { FocusKeyManager } from '@koobiq/cdk/a11y';
8
8
  import { SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW, isVerticalMovement, isSelectAll, isCopy, TAB, DOWN_ARROW, UP_ARROW, HOME, END, PAGE_UP, PAGE_DOWN, hasModifierKey } from '@koobiq/cdk/keycodes';
9
9
  import * as i2 from '@koobiq/components/core';
10
- import { mixinTabIndex, mixinDisabled, MultipleMode, toBoolean, KBQ_OPTION_ACTION_PARENT, KBQ_TITLE_TEXT_REF, KbqOptionActionComponent, KbqLineSetter, KbqLine, KbqPseudoCheckboxModule, KbqLineModule, KbqOptionModule } from '@koobiq/components/core';
10
+ import { mixinTabIndex, mixinDisabled, MultipleMode, KBQ_OPTION_ACTION_PARENT, KBQ_TITLE_TEXT_REF, KbqOptionActionComponent, KbqLineSetter, KbqLine, KbqPseudoCheckboxModule, KbqLineModule, KbqOptionModule } from '@koobiq/components/core';
11
11
  import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
12
12
  import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
13
13
  import { merge, Subject } from 'rxjs';
@@ -115,7 +115,6 @@ class KbqListSelection extends KbqListSelectionMixinBase {
115
115
  this.selectionModel = new SelectionModel(this.multiple);
116
116
  }
117
117
  ngAfterContentInit() {
118
- this.horizontal = toBoolean(this.horizontal);
119
118
  this.keyManager = new FocusKeyManager(this.options)
120
119
  .withTypeAhead()
121
120
  .withVerticalOrientation(!this.horizontal)
@@ -427,7 +426,7 @@ class KbqListSelection extends KbqListSelectionMixinBase {
427
426
  option.preventBlur = false;
428
427
  }
429
428
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqListSelection, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: 'multiple', attribute: true }, { token: i1.Clipboard, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
430
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqListSelection, selector: "kbq-list-selection", inputs: { disabled: "disabled", autoSelect: "autoSelect", noUnselectLast: "noUnselectLast", horizontal: "horizontal", tabIndex: "tabIndex", compareWith: "compareWith" }, outputs: { onSelectAll: "onSelectAll", onCopy: "onCopy", selectionChange: "selectionChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:resize": "updateScrollSize()" }, properties: { "attr.tabindex": "-1", "attr.disabled": "disabled || null" }, classAttribute: "kbq-list-selection" }, providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR], queries: [{ propertyName: "options", predicate: i0.forwardRef(() => KbqListOption), descendants: true }], exportAs: ["kbqListSelection"], usesInheritance: true, ngImport: i0, template: `
429
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.0", type: KbqListSelection, selector: "kbq-list-selection", inputs: { disabled: "disabled", autoSelect: "autoSelect", noUnselectLast: "noUnselectLast", horizontal: ["horizontal", "horizontal", booleanAttribute], tabIndex: "tabIndex", compareWith: "compareWith" }, outputs: { onSelectAll: "onSelectAll", onCopy: "onCopy", selectionChange: "selectionChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:resize": "updateScrollSize()" }, properties: { "attr.tabindex": "-1", "attr.disabled": "disabled || null" }, classAttribute: "kbq-list-selection" }, providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR], queries: [{ propertyName: "options", predicate: i0.forwardRef(() => KbqListOption), descendants: true }], exportAs: ["kbqListSelection"], usesInheritance: true, ngImport: i0, template: `
431
430
  <div
432
431
  [attr.tabindex]="tabIndex"
433
432
  (focus)="focus()"
@@ -471,7 +470,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
471
470
  }], noUnselectLast: [{
472
471
  type: Input
473
472
  }], horizontal: [{
474
- type: Input
473
+ type: Input,
474
+ args: [{ transform: booleanAttribute }]
475
475
  }], tabIndex: [{
476
476
  type: Input
477
477
  }], selectionChange: [{
@@ -507,15 +507,15 @@ class KbqListOption {
507
507
  }
508
508
  this._value = newValue;
509
509
  }
510
+ /** Whether list is disabled. */
510
511
  get disabled() {
511
512
  const listSelectionDisabled = this.listSelection && this.listSelection.disabled;
512
513
  const groupDisabled = this.group && this.group.disabled;
513
514
  return listSelectionDisabled || groupDisabled || this._disabled;
514
515
  }
515
516
  set disabled(value) {
516
- const newValue = toBoolean(value);
517
- if (newValue !== this._disabled) {
518
- this._disabled = newValue;
517
+ if (value !== this._disabled) {
518
+ this._disabled = value;
519
519
  this.changeDetector.markForCheck();
520
520
  }
521
521
  }
@@ -529,9 +529,8 @@ class KbqListOption {
529
529
  return this.listSelection.selectionModel?.isSelected(this) || false;
530
530
  }
531
531
  set selected(value) {
532
- const isSelected = toBoolean(value);
533
- if (isSelected !== this._selected) {
534
- this.setSelected(isSelected);
532
+ if (value !== this._selected) {
533
+ this.setSelected(value);
535
534
  }
536
535
  }
537
536
  get tabIndex() {
@@ -656,7 +655,7 @@ class KbqListOption {
656
655
  return this.elementRef.nativeElement;
657
656
  }
658
657
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqListOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: forwardRef(() => KbqListSelection) }, { token: i2.KbqOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
659
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.0", type: KbqListOption, selector: "kbq-list-option", inputs: { checkboxPosition: "checkboxPosition", value: "value", disabled: "disabled", showCheckbox: "showCheckbox", selected: "selected" }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.kbq-selected": "selected", "class.kbq-disabled": "disabled", "class.kbq-focused": "hasFocus", "class.kbq-action-button-focused": "actionButton?.active", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "kbq-list-option" }, providers: [
658
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.0", type: KbqListOption, selector: "kbq-list-option", inputs: { checkboxPosition: "checkboxPosition", value: "value", disabled: ["disabled", "disabled", booleanAttribute], showCheckbox: "showCheckbox", selected: ["selected", "selected", booleanAttribute] }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.kbq-selected": "selected", "class.kbq-disabled": "disabled", "class.kbq-focused": "hasFocus", "class.kbq-action-button-focused": "actionButton?.active", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "kbq-list-option" }, providers: [
660
659
  { provide: KBQ_OPTION_ACTION_PARENT, useExisting: KbqListOption },
661
660
  { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqListOption }
662
661
  ], queries: [{ propertyName: "actionButton", first: true, predicate: KbqOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: KbqDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true }, { propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqListOption"], ngImport: i0, template: "@if (showCheckbox) {\n <kbq-pseudo-checkbox\n [disabled]=\"disabled\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div\n #kbqTitleText\n #text\n class=\"kbq-list-text\"\n>\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n<ng-content select=\"kbq-option-action\" />\n", dependencies: [{ kind: "component", type: i2.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["color", "big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -704,11 +703,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
704
703
  }], value: [{
705
704
  type: Input
706
705
  }], disabled: [{
707
- type: Input
706
+ type: Input,
707
+ args: [{ transform: booleanAttribute }]
708
708
  }], showCheckbox: [{
709
709
  type: Input
710
710
  }], selected: [{
711
- type: Input
711
+ type: Input,
712
+ args: [{ transform: booleanAttribute }]
712
713
  }] } });
713
714
 
714
715
  // todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-list.mjs","sources":["../../../packages/components/list/list-selection.component.ts","../../../packages/components/list/list-option.html","../../../packages/components/list/list.component.ts","../../../packages/components/list/list-item.html","../../../packages/components/list/list.module.ts","../../../packages/components/list/koobiq-components-list.ts"],"sourcesContent":["import { Clipboard } from '@angular/cdk/clipboard';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@koobiq/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n hasModifierKey,\n HOME,\n isCopy,\n isSelectAll,\n isVerticalMovement,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@koobiq/cdk/keycodes';\nimport {\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n KBQ_OPTION_ACTION_PARENT,\n KBQ_TITLE_TEXT_REF,\n KbqOptgroup,\n KbqOptionActionComponent,\n KbqTitleTextRef,\n mixinDisabled,\n mixinTabIndex,\n MultipleMode,\n toBoolean\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\nexport interface KbqOptionEvent {\n option: KbqListOption;\n}\nexport const KBQ_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqListSelection),\n multi: true\n};\n\nexport class KbqListSelectionChange {\n constructor(\n public source: KbqListSelection,\n public option: KbqListOption\n ) {}\n}\n\nexport class KbqListSelectAllEvent<T> {\n constructor(\n public source: KbqListSelection,\n public options: T[]\n ) {}\n}\n\nexport class KbqListCopyEvent<T> {\n constructor(\n public source: KbqListSelection,\n public option: T\n ) {}\n}\n\n/** @docs-private */\nexport class KbqListSelectionBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof KbqListSelectionBase = mixinTabIndex(\n mixinDisabled(KbqListSelectionBase)\n);\n\n@Component({\n selector: 'kbq-list-selection',\n exportAs: 'kbqListSelection',\n template: `\n <div\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n >\n <ng-content />\n </div>\n `,\n styleUrls: ['./list.scss', 'list-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'kbq-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class KbqListSelection\n extends KbqListSelectionMixinBase\n implements CanDisable, HasTabIndex, AfterContentInit, ControlValueAccessor, OnDestroy\n{\n keyManager: FocusKeyManager<KbqListOption>;\n\n @ContentChildren(forwardRef(() => KbqListOption), { descendants: true }) options: QueryList<KbqListOption>;\n\n @Output() readonly onSelectAll = new EventEmitter<KbqListSelectAllEvent<KbqListOption>>();\n\n @Output() readonly onCopy = new EventEmitter<KbqListCopyEvent<KbqListOption>>();\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<KbqListSelectionChange> =\n new EventEmitter<KbqListSelectionChange>();\n\n selectionModel: SelectionModel<KbqListOption>;\n\n get optionFocusChanges(): Observable<KbqOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<KbqOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode,\n @Optional() private clipboard: Clipboard\n ) {\n super(elementRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<KbqListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<KbqListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut.pipe(takeUntil(this.destroyed)).subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed.pipe(takeUntil(this.destroyed)).subscribe((event) => {\n for (const item of event.added) {\n item.selected = true;\n }\n\n for (const item of event.removed) {\n item.selected = false;\n }\n });\n\n this.options.changes.pipe(startWith(null), takeUntil(this.destroyed)).subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) {\n return;\n }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) {\n return;\n }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: KbqListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.selectActiveOptions();\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) {\n return;\n }\n\n this.selectionModel.toggle(option);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: KbqListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.selectActiveOptions();\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) {\n return;\n }\n } else if (this.autoSelect) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n\n if (shiftKey || ctrlKey || this.autoSelect) {\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n }\n\n selectActiveOptions(): void {\n const options = this.options.toArray();\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = (this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex);\n const selectedOptionState = options[fromIndex].selected;\n\n if (toIndex === fromIndex) {\n return;\n }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n options\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n if (!selectedOptionState && this.noUnselectLast && this.selectionModel.selected.length === 1) {\n return;\n }\n\n renderedOption.setSelected(selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => (option.disabled = isDisabled));\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: KbqListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n this.reportValueChange();\n }\n }\n }\n\n canDeselectLast(listOption: KbqListOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n return clientRects.length ? clientRects[0].height : 0;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: KbqListOption) {\n if (!option.hasFocus) {\n return;\n }\n\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {\n event.preventDefault();\n }\n\n if (this.multiple && isSelectAll(event)) {\n this.selectAllOptions();\n event.preventDefault();\n\n return;\n } else if (isCopy(event)) {\n this.copyActiveOption();\n event.preventDefault();\n\n return;\n } else if ([SPACE, ENTER].includes(keyCode)) {\n this.toggleFocusedOption();\n\n return;\n } else if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (keyCode === DOWN_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (keyCode === UP_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else if (keyCode === HOME) {\n this.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n this.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n this.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n this.keyManager.setNextPageItemActive();\n }\n\n if (this.keyManager.activeItem && isVerticalMovement(event)) {\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as KbqListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: KbqListOption) {\n this.selectionChange.emit(new KbqListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\n }\n\n private onCopyDefaultHandler(): void {\n this.clipboard?.copy(this.keyManager.activeItem!.value);\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): KbqListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: KbqListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n\n private selectAllOptions() {\n const optionsToSelect = this.options.filter((option) => !option.disabled);\n\n optionsToSelect.forEach((option) => option.setSelected(true));\n\n this.onSelectAll.emit(new KbqListSelectAllEvent(this, optionsToSelect));\n }\n\n private copyActiveOption() {\n if (!this.keyManager.activeItem) {\n return;\n }\n\n const option = this.keyManager.activeItem;\n\n option.preventBlur = true;\n\n if (this.onCopy.observers.length) {\n this.onCopy.emit(new KbqListCopyEvent(this, option));\n } else {\n this.onCopyDefaultHandler();\n }\n\n option.preventBlur = false;\n }\n}\n\n@Directive({\n selector: '[kbq-list-option-caption]',\n host: {\n class: 'kbq-list-option-caption'\n }\n})\nexport class KbqListOptionCaption {}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'kbqListOption',\n selector: 'kbq-list-option',\n templateUrl: './list-option.html',\n host: {\n class: 'kbq-list-option',\n\n '[class.kbq-selected]': 'selected',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-focused]': 'hasFocus',\n\n '[class.kbq-action-button-focused]': 'actionButton?.active',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)',\n '(keydown)': 'onKeydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: KBQ_OPTION_ACTION_PARENT, useExisting: KbqListOption },\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqListOption }\n ]\n})\nexport class KbqListOption implements OnDestroy, OnInit, IFocusableOption, KbqTitleTextRef {\n hasFocus: boolean = false;\n preventBlur: boolean = false;\n\n readonly onFocus = new Subject<KbqOptionEvent>();\n\n readonly onBlur = new Subject<KbqOptionEvent>();\n\n @ContentChild(KbqOptionActionComponent) actionButton: KbqOptionActionComponent;\n @ContentChild(KbqTooltipTrigger) tooltipTrigger: KbqTooltipTrigger;\n @ContentChild(KbqDropdownTrigger) dropdownTrigger: KbqDropdownTrigger;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n @Input()\n get disabled() {\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel?.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => KbqListSelection)) public listSelection: KbqListSelection,\n @Optional() readonly group: KbqOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => (this.selected = false));\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) {\n return;\n }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n return clientRects.length ? clientRects[0].height : 0;\n }\n\n handleClick($event) {\n if (this.disabled) {\n return;\n }\n\n this.listSelection.setSelectedOptionsByClick(\n this,\n hasModifierKey($event, 'shiftKey'),\n hasModifierKey($event, 'ctrlKey')\n );\n }\n\n onKeydown($event) {\n if (!this.actionButton) {\n return;\n }\n\n if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {\n this.actionButton.focus();\n\n $event.preventDefault();\n }\n }\n\n focus() {\n if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) {\n return;\n }\n\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n\n blur(): void {\n if (this.preventBlur) {\n return;\n }\n\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n if (this.actionButton?.hasFocus) {\n return;\n }\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","@if (showCheckbox) {\n <kbq-pseudo-checkbox\n [disabled]=\"disabled\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div\n #kbqTitleText\n #text\n class=\"kbq-list-text\"\n>\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n<ng-content select=\"kbq-option-action\" />\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqLine, KbqLineSetter } from '@koobiq/components/core';\n\n@Component({\n selector: 'kbq-list',\n host: { class: 'kbq-list' },\n template: '<ng-content />',\n styleUrls: ['./list.scss', 'list-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqList {}\n\n@Component({\n selector: 'kbq-list-item, a[kbq-list-item]',\n host: {\n class: 'kbq-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqListItem implements AfterContentInit {\n @ContentChildren(KbqLine) lines: QueryList<KbqLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n new KbqLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('kbq-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('kbq-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","<ng-content select=\"[kbq-list-icon], [mcListIcon]\" />\n\n<div class=\"kbq-list-text\">\n <ng-content select=\"[kbq-line], [mcLine]\" />\n</div>\n\n<ng-content />\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqLineModule, KbqOptionModule, KbqPseudoCheckboxModule } from '@koobiq/components/core';\nimport { KbqListOption, KbqListOptionCaption, KbqListSelection } from './list-selection.component';\nimport { KbqList, KbqListItem } from './list.component';\n\n@NgModule({\n imports: [\n A11yModule,\n KbqPseudoCheckboxModule,\n KbqLineModule,\n KbqOptionModule\n ],\n exports: [\n KbqList,\n KbqListSelection,\n KbqListItem,\n KbqListOption,\n KbqListOptionCaption,\n KbqOptionModule\n ],\n declarations: [\n KbqList,\n KbqListSelection,\n KbqListItem,\n KbqListOption,\n KbqListOptionCaption\n ]\n})\nexport class KbqListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAoEa,MAAA,iCAAiC,GAAQ;AAClD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,IAAA,KAAK,EAAE,IAAI;EACb;MAEW,sBAAsB,CAAA;IAC/B,WACW,CAAA,MAAwB,EACxB,MAAqB,EAAA;QADrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAC5B;AACP,CAAA;MAEY,qBAAqB,CAAA;IAC9B,WACW,CAAA,MAAwB,EACxB,OAAY,EAAA;QADZ,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAK;KACnB;AACP,CAAA;MAEY,gBAAgB,CAAA;IACzB,WACW,CAAA,MAAwB,EACxB,MAAS,EAAA;QADT,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAG;KAChB;AACP,CAAA;AAED;MACa,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;AAChD,CAAA;AAED;AACa,MAAA,yBAAyB,GAAmE,aAAa,CAClH,aAAa,CAAC,oBAAoB,CAAC,EACrC;AA8BI,MAAO,gBACT,SAAQ,yBAAyB,CAAA;AAWjC,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAED,IAAI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACnD;AAID,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAED,IAAI,cAAc,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACvD;AAMD,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;KAC9B;AAID,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;KAC9C;IAED,IAAI,QAAQ,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAMD,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC;KACtD;AAQD,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAChE;AAWD,IAAA,WAAA,CACI,UAAsB,EACd,iBAAoC,EACrB,QAAsB,EACzB,SAAoB,EAAA;QAExC,KAAK,CAAC,UAAU,CAAC,CAAC;QAJV,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAExB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AA/EzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAwC,CAAC;AAEvE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAmC,CAAC;QAWxE,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAW5B,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAQ/B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAY7B,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QAEtB,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;;AAOhB,QAAA,IAAA,CAAA,eAAe,GAC9B,IAAI,YAAY,EAA0B,CAAC;;AAe9B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AA4BjD;;;;AAIG;QACM,IAAW,CAAA,WAAA,GAAkC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAgN5E,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;;AAwJzB,QAAA,IAAA,CAAA,QAAQ,GAAyB,CAAC,CAAM,KAAI,GAAG,CAAC;AA3XpD,QAAA,IAAI,QAAQ,KAAK,YAAY,CAAC,QAAQ,IAAI,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE;AAC1E,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;AAAM,aAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1E;IASD,kBAAkB,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,OAAO,CAAC;AAC7D,aAAA,aAAa,EAAE;AACf,aAAA,uBAAuB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,aAAA,yBAAyB,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAClE,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEpB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAC1C,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC5E,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AAC5B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AAC9B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACjF,IAAI,CAAC,YAAY,EAAE,CAAC;;YAGpB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAEtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;IAED,KAAK,GAAA;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO;SACV;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;KACxC;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,gBAAgB,GAAA;QACZ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACxC,OAAO;SACV;QAED,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KACjG;AAED,IAAA,yBAAyB,CAAC,MAAqB,EAAE,QAAiB,EAAE,OAAgB,EAAA;AAChF,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;aAAM,IAAI,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO;aACV;AAED,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;aAAM;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,uBAAuB,CAAC,MAAqB,EAAE,QAAiB,EAAE,OAAgB,EAAA;AAC9E,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;aAAM,IAAI,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO;aACV;SACJ;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,YAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,IAAI,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAED,mBAAmB,GAAA;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;AAExD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,OAAO;SACV;AAED,QAAA,IAAI,SAAS,GAAG,OAAO,EAAE;YACrB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SAC/C;QAED,OAAO;AACF,aAAA,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,aAAA,OAAO,CAAC,CAAC,cAAc,KAAI;AACxB,YAAA,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1F,OAAO;aACV;AAED,YAAA,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACpD,SAAC,CAAC,CAAC;KACV;;AAGD,IAAA,UAAU,CAAC,MAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;SAC3C;KACJ;;AAGD,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;SACpE;KACJ;IAED,uBAAuB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;KACzF;;IAGD,mBAAmB,GAAA;AACf,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAErD,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACzD,MAAM,aAAa,GAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;YAE1E,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;gBACtD,aAAa,CAAC,MAAM,EAAE,CAAC;;AAGvB,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;SACJ;KACJ;AAED,IAAA,eAAe,CAAC,UAAyB,EAAA;QACrC,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;KACrG;IAED,SAAS,GAAA;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACzD;;AAMD,IAAA,oBAAoB,CAAC,MAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClB,OAAO;SACV;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;AAGhD,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC3C;AAAM,aAAA,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACvC;KACJ;AAED,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACxF,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;SACV;AAAM,aAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;SACV;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,OAAO;SACV;AAAM,aAAA,IAAI,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAE9B,OAAO;SACV;AAAM,aAAA,IAAI,OAAO,KAAK,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACvC;AAAM,aAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC3C;AAAM,aAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;SACxC;AAAM,aAAA,IAAI,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACvC;AAAM,aAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;SAC/C;AAAM,aAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC3C;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACzD,IAAI,CAAC,uBAAuB,CACxB,IAAI,CAAC,UAAU,CAAC,UAA2B,EAC3C,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,EACjC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CACnC,CAAC;SACL;KACJ;;IAGD,iBAAiB,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;KACJ;;AAGD,IAAA,eAAe,CAAC,MAAqB,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACvE;IAES,cAAc,GAAA;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9E;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC;KAC3D;IAEO,YAAY,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACvC;AAED,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACtC;KACJ;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACvE,YAAA,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAEnE,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC3C;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACrF;;IAGO,gBAAgB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;KACzD;;AAGO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;KAChE;;AAGO,IAAA,oBAAoB,CAAC,MAAgB,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM;AACD,aAAA,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC5C,MAAM,CAAC,OAAO,CAAC;AACf,aAAA,OAAO,CAAC,CAAC,MAAM,KAAK,MAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACvD;AAED;;;;AAIG;AACK,IAAA,YAAY,CAAC,KAAa,EAAA;QAC9B,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KACpD;;AAGO,IAAA,cAAc,CAAC,MAAqB,EAAA;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACjD;IAKO,gBAAgB,GAAA;AACpB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE1E,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;KAC3E;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC7B,OAAO;SACV;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAE1C,QAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;AAED,QAAA,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;KAC9B;AAhfQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,6EAsFV,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtFhB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,wgBAHd,CAAC,iCAAiC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MASZ,aAAa,CA/BrC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAiBQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA5B5B,SAAS;+BACI,oBAAoB,EAAA,QAAA,EACpB,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;KAQT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC7B,MAAA,EAAA,CAAC,UAAU,CAAC,EACd,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,oBAAoB;AAE3B,wBAAA,iBAAiB,EAAE,IAAI;AACvB,wBAAA,iBAAiB,EAAE,kBAAkB;AAErC,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,iBAAiB,EAAE,oBAAoB;AAC1C,qBAAA,EAAA,SAAA,EACU,CAAC,iCAAiC,CAAC,EAAA,mBAAA,EACzB,KAAK,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,CAAA;;0BAwFrB,SAAS;2BAAC,UAAU,CAAA;;0BACpB,QAAQ;yCAjF4D,OAAO,EAAA,CAAA;sBAA/E,eAAe;uBAAC,UAAU,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAEpD,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBAEY,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAGH,UAAU,EAAA,CAAA;sBADb,KAAK;gBAYF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAiBG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAmBa,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBAiDE,WAAW,EAAA,CAAA;sBAAnB,KAAK;;MA2YG,oBAAoB,CAAA;iIAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAApB,oBAAoB,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA;AACJ,iBAAA,CAAA;;AAGD;;;;AAIG;MA8BU,aAAa,CAAA;AAwBtB,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,QAAa,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;KAC1B;AAGD,IAAA,IACI,QAAQ,GAAA;QACR,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAExD,QAAA,OAAO,qBAAqB,IAAI,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC;KACnE;IAED,IAAI,QAAQ,CAAC,KAAU,EAAA;AACnB,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAElC,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC;KACJ;AAID,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;KAClG;IAED,IAAI,YAAY,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrD;AAID,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;KACvE;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAEpC,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAChC;KACJ;AAID,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;KACpC;IAED,WACY,CAAA,UAAmC,EACnC,cAAiC,EACjC,MAAc,EAC6B,aAA+B,EAC7D,KAAkB,EAAA;QAJ/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAC6B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC7D,IAAK,CAAA,KAAA,GAAL,KAAK,CAAa;QA1F3C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAkB,CAAC;AAExC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAkB,CAAC;AAYhD;;;AAGG;QACK,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAgC1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QA0BlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAYtB;IAEJ,QAAQ,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1B;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;;;;;;AAOnC,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;aACtC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;;;AAGf,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;SACzD;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACjD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAClC;IAED,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;KAC/D;AAED,IAAA,WAAW,CAAC,QAAiB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACnE,OAAO;SACV;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACpD;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACtC;IAED,SAAS,GAAA;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACzD;AAED,IAAA,WAAW,CAAC,MAAM,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,yBAAyB,CACxC,IAAI,EACJ,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,EAClC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CACpC,CAAC;KACL;AAED,IAAA,SAAS,CAAC,MAAM,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;AAED,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC3E,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAE1B,MAAM,CAAC,cAAc,EAAE,CAAC;SAC3B;KACJ;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;YAC/D,OAAO;SACV;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpC,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;;;;;QAMD,IAAI,CAAC,MAAM,CAAC,QAAQ;AACf,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAEtB,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;oBAC7B,OAAO;iBACV;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACV;IAED,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;AAjOQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,mGA0FV,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1FrC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EALX,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,aAAa,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE;AAC9D,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAUa,wBAAwB,EACxB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EACjB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,yQC5qBpC,wYAmBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FD+oBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBA7BzB,SAAS;+BACI,eAAe,EAAA,QAAA,EACf,iBAAiB,EAErB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,iBAAiB;AAExB,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,qBAAqB,EAAE,UAAU;AAEjC,wBAAA,mCAAmC,EAAE,sBAAsB;AAE3D,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,iBAAiB,EAAE,kBAAkB;AAErC,wBAAA,WAAW,EAAE,SAAS;AACtB,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,WAAW,EAAE,mBAAmB;qBACnC,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,mBAAA,EAChB,KAAK,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,eAAe,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,eAAe,EAAE;AAC9D,qBAAA,EAAA,QAAA,EAAA,wYAAA,EAAA,CAAA;;0BA4FI,MAAM;AAAC,oBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAA;;0BACzC,QAAQ;yCAnF2B,YAAY,EAAA,CAAA;sBAAnD,YAAY;uBAAC,wBAAwB,CAAA;gBACL,cAAc,EAAA,CAAA;sBAA9C,YAAY;uBAAC,iBAAiB,CAAA;gBACG,eAAe,EAAA,CAAA;sBAAhD,YAAY;uBAAC,kBAAkB,CAAA;gBAEM,IAAI,EAAA,CAAA;sBAAzC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACU,WAAW,EAAA,CAAA;sBAAxD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGnC,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAcF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAoBF,YAAY,EAAA,CAAA;sBADf,KAAK;gBAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;;;AEruBV;MAoBa,OAAO,CAAA;iIAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAP,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,sFALN,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKjB,OAAO,EAAA,UAAA,EAAA,CAAA;kBARnB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EACd,IAAA,EAAA,EAAE,KAAK,EAAE,UAAU,EAAE,EAAA,QAAA,EACjB,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,CAAA;;MAgB5B,WAAW,CAAA;AAGpB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;IAE9C,kBAAkB,GAAA;QACd,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAClD;IAED,WAAW,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAC9D;IAED,UAAU,GAAA;QACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KACjE;IAED,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;iIAnBQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAX,WAAW,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EACH,OAAO,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnC5B,0KAOA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FD2Ba,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EACrC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,QAAQ,EAAE,cAAc;qBAC3B,EAEc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,mBAAA,EAChB,KAAK,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0KAAA,EAAA,CAAA;+EAGrB,KAAK,EAAA,CAAA;sBAA9B,eAAe;uBAAC,OAAO,CAAA;;;MENf,aAAa,CAAA;iIAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBAPlB,OAAO;YACP,gBAAgB;YAChB,WAAW;YACX,aAAa;AACb,YAAA,oBAAoB,aAlBpB,UAAU;YACV,uBAAuB;YACvB,aAAa;AACb,YAAA,eAAe,aAGf,OAAO;YACP,gBAAgB;YAChB,WAAW;YACX,aAAa;YACb,oBAAoB;YACpB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAUV,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YArBlB,UAAU;YACV,uBAAuB;YACvB,aAAa;AACb,YAAA,eAAe,EAQf,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUV,aAAa,EAAA,UAAA,EAAA,CAAA;kBAvBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,UAAU;wBACV,uBAAuB;wBACvB,aAAa;wBACb,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,OAAO;wBACP,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,oBAAoB;wBACpB,eAAe;AAClB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,OAAO;wBACP,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,oBAAoB;AACvB,qBAAA;AACJ,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}
1
+ {"version":3,"file":"koobiq-components-list.mjs","sources":["../../../packages/components/list/list-selection.component.ts","../../../packages/components/list/list-option.html","../../../packages/components/list/list.component.ts","../../../packages/components/list/list-item.html","../../../packages/components/list/list.module.ts","../../../packages/components/list/koobiq-components-list.ts"],"sourcesContent":["import { Clipboard } from '@angular/cdk/clipboard';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@koobiq/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n hasModifierKey,\n HOME,\n isCopy,\n isSelectAll,\n isVerticalMovement,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n TAB,\n UP_ARROW\n} from '@koobiq/cdk/keycodes';\nimport {\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n KBQ_OPTION_ACTION_PARENT,\n KBQ_TITLE_TEXT_REF,\n KbqOptgroup,\n KbqOptionActionComponent,\n KbqTitleTextRef,\n mixinDisabled,\n mixinTabIndex,\n MultipleMode\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\nexport interface KbqOptionEvent {\n option: KbqListOption;\n}\nexport const KBQ_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqListSelection),\n multi: true\n};\n\nexport class KbqListSelectionChange {\n constructor(\n public source: KbqListSelection,\n public option: KbqListOption\n ) {}\n}\n\nexport class KbqListSelectAllEvent<T> {\n constructor(\n public source: KbqListSelection,\n public options: T[]\n ) {}\n}\n\nexport class KbqListCopyEvent<T> {\n constructor(\n public source: KbqListSelection,\n public option: T\n ) {}\n}\n\n/** @docs-private */\nexport class KbqListSelectionBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof KbqListSelectionBase = mixinTabIndex(\n mixinDisabled(KbqListSelectionBase)\n);\n\n@Component({\n selector: 'kbq-list-selection',\n exportAs: 'kbqListSelection',\n template: `\n <div\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\"\n >\n <ng-content />\n </div>\n `,\n styleUrls: ['./list.scss', 'list-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'kbq-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class KbqListSelection\n extends KbqListSelectionMixinBase\n implements CanDisable, HasTabIndex, AfterContentInit, ControlValueAccessor, OnDestroy\n{\n keyManager: FocusKeyManager<KbqListOption>;\n\n @ContentChildren(forwardRef(() => KbqListOption), { descendants: true }) options: QueryList<KbqListOption>;\n\n @Output() readonly onSelectAll = new EventEmitter<KbqListSelectAllEvent<KbqListOption>>();\n\n @Output() readonly onCopy = new EventEmitter<KbqListCopyEvent<KbqListOption>>();\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input({ transform: booleanAttribute }) horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<KbqListSelectionChange> =\n new EventEmitter<KbqListSelectionChange>();\n\n selectionModel: SelectionModel<KbqListOption>;\n\n get optionFocusChanges(): Observable<KbqOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<KbqOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode,\n @Optional() private clipboard: Clipboard\n ) {\n super(elementRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<KbqListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.keyManager = new FocusKeyManager<KbqListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut.pipe(takeUntil(this.destroyed)).subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed.pipe(takeUntil(this.destroyed)).subscribe((event) => {\n for (const item of event.added) {\n item.selected = true;\n }\n\n for (const item of event.removed) {\n item.selected = false;\n }\n });\n\n this.options.changes.pipe(startWith(null), takeUntil(this.destroyed)).subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) {\n return;\n }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) {\n return;\n }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: KbqListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.selectActiveOptions();\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) {\n return;\n }\n\n this.selectionModel.toggle(option);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: KbqListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.selectActiveOptions();\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) {\n return;\n }\n } else if (this.autoSelect) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n\n if (shiftKey || ctrlKey || this.autoSelect) {\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n }\n\n selectActiveOptions(): void {\n const options = this.options.toArray();\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = (this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex);\n const selectedOptionState = options[fromIndex].selected;\n\n if (toIndex === fromIndex) {\n return;\n }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n options\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n if (!selectedOptionState && this.noUnselectLast && this.selectionModel.selected.length === 1) {\n return;\n }\n\n renderedOption.setSelected(selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => (option.disabled = isDisabled));\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: KbqListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n this.reportValueChange();\n }\n }\n }\n\n canDeselectLast(listOption: KbqListOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n return clientRects.length ? clientRects[0].height : 0;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: KbqListOption) {\n if (!option.hasFocus) {\n return;\n }\n\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {\n event.preventDefault();\n }\n\n if (this.multiple && isSelectAll(event)) {\n this.selectAllOptions();\n event.preventDefault();\n\n return;\n } else if (isCopy(event)) {\n this.copyActiveOption();\n event.preventDefault();\n\n return;\n } else if ([SPACE, ENTER].includes(keyCode)) {\n this.toggleFocusedOption();\n\n return;\n } else if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (keyCode === DOWN_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (keyCode === UP_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else if (keyCode === HOME) {\n this.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n this.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n this.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n this.keyManager.setNextPageItemActive();\n }\n\n if (this.keyManager.activeItem && isVerticalMovement(event)) {\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as KbqListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: KbqListOption) {\n this.selectionChange.emit(new KbqListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\n }\n\n private onCopyDefaultHandler(): void {\n this.clipboard?.copy(this.keyManager.activeItem!.value);\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): KbqListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: KbqListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n\n private selectAllOptions() {\n const optionsToSelect = this.options.filter((option) => !option.disabled);\n\n optionsToSelect.forEach((option) => option.setSelected(true));\n\n this.onSelectAll.emit(new KbqListSelectAllEvent(this, optionsToSelect));\n }\n\n private copyActiveOption() {\n if (!this.keyManager.activeItem) {\n return;\n }\n\n const option = this.keyManager.activeItem;\n\n option.preventBlur = true;\n\n if (this.onCopy.observers.length) {\n this.onCopy.emit(new KbqListCopyEvent(this, option));\n } else {\n this.onCopyDefaultHandler();\n }\n\n option.preventBlur = false;\n }\n}\n\n@Directive({\n selector: '[kbq-list-option-caption]',\n host: {\n class: 'kbq-list-option-caption'\n }\n})\nexport class KbqListOptionCaption {}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'kbqListOption',\n selector: 'kbq-list-option',\n templateUrl: './list-option.html',\n host: {\n class: 'kbq-list-option',\n\n '[class.kbq-selected]': 'selected',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-focused]': 'hasFocus',\n\n '[class.kbq-action-button-focused]': 'actionButton?.active',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)',\n '(keydown)': 'onKeydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: KBQ_OPTION_ACTION_PARENT, useExisting: KbqListOption },\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqListOption }\n ]\n})\nexport class KbqListOption implements OnDestroy, OnInit, IFocusableOption, KbqTitleTextRef {\n hasFocus: boolean = false;\n preventBlur: boolean = false;\n\n readonly onFocus = new Subject<KbqOptionEvent>();\n\n readonly onBlur = new Subject<KbqOptionEvent>();\n\n @ContentChild(KbqOptionActionComponent) actionButton: KbqOptionActionComponent;\n @ContentChild(KbqTooltipTrigger) tooltipTrigger: KbqTooltipTrigger;\n @ContentChild(KbqDropdownTrigger) dropdownTrigger: KbqDropdownTrigger;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n /** Whether list is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this._disabled) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input({ transform: booleanAttribute })\n get selected(): boolean {\n return this.listSelection.selectionModel?.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n if (value !== this._selected) {\n this.setSelected(value);\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => KbqListSelection)) public listSelection: KbqListSelection,\n @Optional() readonly group: KbqOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => (this.selected = false));\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) {\n return;\n }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n return clientRects.length ? clientRects[0].height : 0;\n }\n\n handleClick($event) {\n if (this.disabled) {\n return;\n }\n\n this.listSelection.setSelectedOptionsByClick(\n this,\n hasModifierKey($event, 'shiftKey'),\n hasModifierKey($event, 'ctrlKey')\n );\n }\n\n onKeydown($event) {\n if (!this.actionButton) {\n return;\n }\n\n if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {\n this.actionButton.focus();\n\n $event.preventDefault();\n }\n }\n\n focus() {\n if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) {\n return;\n }\n\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n\n blur(): void {\n if (this.preventBlur) {\n return;\n }\n\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n if (this.actionButton?.hasFocus) {\n return;\n }\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","@if (showCheckbox) {\n <kbq-pseudo-checkbox\n [disabled]=\"disabled\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div\n #kbqTitleText\n #text\n class=\"kbq-list-text\"\n>\n <ng-content />\n <ng-content select=\"[kbq-list-option-caption]\" />\n</div>\n\n<ng-content select=\"kbq-option-action\" />\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqLine, KbqLineSetter } from '@koobiq/components/core';\n\n@Component({\n selector: 'kbq-list',\n host: { class: 'kbq-list' },\n template: '<ng-content />',\n styleUrls: ['./list.scss', 'list-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqList {}\n\n@Component({\n selector: 'kbq-list-item, a[kbq-list-item]',\n host: {\n class: 'kbq-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqListItem implements AfterContentInit {\n @ContentChildren(KbqLine) lines: QueryList<KbqLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n new KbqLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('kbq-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('kbq-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","<ng-content select=\"[kbq-list-icon], [mcListIcon]\" />\n\n<div class=\"kbq-list-text\">\n <ng-content select=\"[kbq-line], [mcLine]\" />\n</div>\n\n<ng-content />\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqLineModule, KbqOptionModule, KbqPseudoCheckboxModule } from '@koobiq/components/core';\nimport { KbqListOption, KbqListOptionCaption, KbqListSelection } from './list-selection.component';\nimport { KbqList, KbqListItem } from './list.component';\n\n@NgModule({\n imports: [\n A11yModule,\n KbqPseudoCheckboxModule,\n KbqLineModule,\n KbqOptionModule\n ],\n exports: [\n KbqList,\n KbqListSelection,\n KbqListItem,\n KbqListOption,\n KbqListOptionCaption,\n KbqOptionModule\n ],\n declarations: [\n KbqList,\n KbqListSelection,\n KbqListItem,\n KbqListOption,\n KbqListOptionCaption\n ]\n})\nexport class KbqListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAoEa,MAAA,iCAAiC,GAAQ;AAClD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,IAAA,KAAK,EAAE,IAAI;EACb;MAEW,sBAAsB,CAAA;IAC/B,WACW,CAAA,MAAwB,EACxB,MAAqB,EAAA;QADrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAC5B;AACP,CAAA;MAEY,qBAAqB,CAAA;IAC9B,WACW,CAAA,MAAwB,EACxB,OAAY,EAAA;QADZ,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAK;KACnB;AACP,CAAA;MAEY,gBAAgB,CAAA;IACzB,WACW,CAAA,MAAwB,EACxB,MAAS,EAAA;QADT,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAG;KAChB;AACP,CAAA;AAED;MACa,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;AAChD,CAAA;AAED;AACa,MAAA,yBAAyB,GAAmE,aAAa,CAClH,aAAa,CAAC,oBAAoB,CAAC,EACrC;AA8BI,MAAO,gBACT,SAAQ,yBAAyB,CAAA;AAWjC,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAED,IAAI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACnD;AAID,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAED,IAAI,cAAc,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACvD;AAMD,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;KAC9B;AAID,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;KAC9C;IAED,IAAI,QAAQ,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAMD,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC;KACtD;AAQD,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAChE;AAWD,IAAA,WAAA,CACI,UAAsB,EACd,iBAAoC,EACrB,QAAsB,EACzB,SAAoB,EAAA;QAExC,KAAK,CAAC,UAAU,CAAC,CAAC;QAJV,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAExB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AA/EzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAwC,CAAC;AAEvE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAmC,CAAC;QAWxE,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAW5B,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAQA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAY5D,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QAEtB,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;;AAOhB,QAAA,IAAA,CAAA,eAAe,GAC9B,IAAI,YAAY,EAA0B,CAAC;;AAe9B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AA4BjD;;;;AAIG;QACM,IAAW,CAAA,WAAA,GAAkC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AA8M5E,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;;AAwJzB,QAAA,IAAA,CAAA,QAAQ,GAAyB,CAAC,CAAM,KAAI,GAAG,CAAC;AAzXpD,QAAA,IAAI,QAAQ,KAAK,YAAY,CAAC,QAAQ,IAAI,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE;AAC1E,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;AAAM,aAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1E;IASD,kBAAkB,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,OAAO,CAAC;AAC7D,aAAA,aAAa,EAAE;AACf,aAAA,uBAAuB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,aAAA,yBAAyB,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAClE,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEpB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAC1C,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC5E,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AAC5B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;AAED,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AAC9B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACjF,IAAI,CAAC,YAAY,EAAE,CAAC;;YAGpB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAEtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;IAED,KAAK,GAAA;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO;SACV;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;KACxC;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,gBAAgB,GAAA;QACZ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACxC,OAAO;SACV;QAED,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KACjG;AAED,IAAA,yBAAyB,CAAC,MAAqB,EAAE,QAAiB,EAAE,OAAgB,EAAA;AAChF,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;aAAM,IAAI,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO;aACV;AAED,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;aAAM;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,uBAAuB,CAAC,MAAqB,EAAE,QAAiB,EAAE,OAAgB,EAAA;AAC9E,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;aAAM,IAAI,OAAO,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO;aACV;SACJ;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,YAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,IAAI,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAED,mBAAmB,GAAA;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;AAExD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,OAAO;SACV;AAED,QAAA,IAAI,SAAS,GAAG,OAAO,EAAE;YACrB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SAC/C;QAED,OAAO;AACF,aAAA,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,aAAA,OAAO,CAAC,CAAC,cAAc,KAAI;AACxB,YAAA,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1F,OAAO;aACV;AAED,YAAA,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACpD,SAAC,CAAC,CAAC;KACV;;AAGD,IAAA,UAAU,CAAC,MAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;SAC3C;KACJ;;AAGD,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;SACpE;KACJ;IAED,uBAAuB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;KACzF;;IAGD,mBAAmB,GAAA;AACf,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAErD,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACzD,MAAM,aAAa,GAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;YAE1E,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;gBACtD,aAAa,CAAC,MAAM,EAAE,CAAC;;AAGvB,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;SACJ;KACJ;AAED,IAAA,eAAe,CAAC,UAAyB,EAAA;QACrC,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;KACrG;IAED,SAAS,GAAA;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACzD;;AAMD,IAAA,oBAAoB,CAAC,MAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClB,OAAO;SACV;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;AAGhD,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC3C;AAAM,aAAA,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACvC;KACJ;AAED,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACxF,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;SACV;AAAM,aAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;SACV;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,OAAO;SACV;AAAM,aAAA,IAAI,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAE9B,OAAO;SACV;AAAM,aAAA,IAAI,OAAO,KAAK,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACvC;AAAM,aAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC3C;AAAM,aAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;SACxC;AAAM,aAAA,IAAI,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACvC;AAAM,aAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;SAC/C;AAAM,aAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;SAC3C;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACzD,IAAI,CAAC,uBAAuB,CACxB,IAAI,CAAC,UAAU,CAAC,UAA2B,EAC3C,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,EACjC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CACnC,CAAC;SACL;KACJ;;IAGD,iBAAiB,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;KACJ;;AAGD,IAAA,eAAe,CAAC,MAAqB,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACvE;IAES,cAAc,GAAA;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9E;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC;KAC3D;IAEO,YAAY,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACvC;AAED,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACtC;KACJ;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACvE,YAAA,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAEnE,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC3C;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACrF;;IAGO,gBAAgB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;KACzD;;AAGO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;KAChE;;AAGO,IAAA,oBAAoB,CAAC,MAAgB,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM;AACD,aAAA,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC5C,MAAM,CAAC,OAAO,CAAC;AACf,aAAA,OAAO,CAAC,CAAC,MAAM,KAAK,MAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACvD;AAED;;;;AAIG;AACK,IAAA,YAAY,CAAC,KAAa,EAAA;QAC9B,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KACpD;;AAGO,IAAA,cAAc,CAAC,MAAqB,EAAA;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACjD;IAKO,gBAAgB,GAAA;AACpB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE1E,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;KAC3E;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC7B,OAAO;SACV;AAED,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAE1C,QAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;AAED,QAAA,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;KAC9B;AA9eQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,6EAsFV,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAtFhB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAwCL,gBAAgB,CA3CzB,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,iCAAiC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MASZ,aAAa,CA/BrC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAiBQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA5B5B,SAAS;+BACI,oBAAoB,EAAA,QAAA,EACpB,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;KAQT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC7B,MAAA,EAAA,CAAC,UAAU,CAAC,EACd,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,oBAAoB;AAE3B,wBAAA,iBAAiB,EAAE,IAAI;AACvB,wBAAA,iBAAiB,EAAE,kBAAkB;AAErC,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,iBAAiB,EAAE,oBAAoB;AAC1C,qBAAA,EAAA,SAAA,EACU,CAAC,iCAAiC,CAAC,EAAA,mBAAA,EACzB,KAAK,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,CAAA;;0BAwFrB,SAAS;2BAAC,UAAU,CAAA;;0BACpB,QAAQ;yCAjF4D,OAAO,EAAA,CAAA;sBAA/E,eAAe;uBAAC,UAAU,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAEpD,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBAEY,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAGH,UAAU,EAAA,CAAA;sBADb,KAAK;gBAYF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAiBkC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAGlC,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAmBa,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBAiDE,WAAW,EAAA,CAAA;sBAAnB,KAAK;;MAyYG,oBAAoB,CAAA;iIAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAApB,oBAAoB,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,yBAAyB;AACnC,qBAAA;AACJ,iBAAA,CAAA;;AAGD;;;;AAIG;MA8BU,aAAa,CAAA;AAwBtB,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,QAAa,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;KAC1B;;AAID,IAAA,IACI,QAAQ,GAAA;QACR,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAExD,QAAA,OAAO,qBAAqB,IAAI,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC;KACnE;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC;KACJ;AAID,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;KAClG;IAED,IAAI,YAAY,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrD;AAID,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;KACvE;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;KACJ;AAID,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;KACpC;IAED,WACY,CAAA,UAAmC,EACnC,cAAiC,EACjC,MAAc,EAC6B,aAA+B,EAC7D,KAAkB,EAAA;QAJ/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAC6B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC7D,IAAK,CAAA,KAAA,GAAL,KAAK,CAAa;QAvF3C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAkB,CAAC;AAExC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAkB,CAAC;AAYhD;;;AAGG;QACK,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QA+B1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAwBlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAYtB;IAEJ,QAAQ,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1B;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;;;;;;AAOnC,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;aACtC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;;;AAGf,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;SACzD;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACjD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAClC;IAED,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;KAC/D;AAED,IAAA,WAAW,CAAC,QAAiB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACnE,OAAO;SACV;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACpD;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACtC;IAED,SAAS,GAAA;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACzD;AAED,IAAA,WAAW,CAAC,MAAM,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,yBAAyB,CACxC,IAAI,EACJ,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,EAClC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CACpC,CAAC;KACL;AAED,IAAA,SAAS,CAAC,MAAM,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;AAED,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC3E,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAE1B,MAAM,CAAC,cAAc,EAAE,CAAC;SAC3B;KACJ;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;YAC/D,OAAO;SACV;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpC,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;;;;;QAMD,IAAI,CAAC,MAAM,CAAC,QAAQ;AACf,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAEtB,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;oBAC7B,OAAO;iBACV;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACV;IAED,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;AA9NQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,mGAuFV,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAvFrC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAsCF,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CA4BhB,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAvEzB,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,aAAa,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE;AAC9D,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAUa,wBAAwB,EACxB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EACjB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,yQC1qBpC,wYAmBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FD6oBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBA7BzB,SAAS;+BACI,eAAe,EAAA,QAAA,EACf,iBAAiB,EAErB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,iBAAiB;AAExB,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,qBAAqB,EAAE,UAAU;AAEjC,wBAAA,mCAAmC,EAAE,sBAAsB;AAE3D,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,iBAAiB,EAAE,kBAAkB;AAErC,wBAAA,WAAW,EAAE,SAAS;AACtB,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,WAAW,EAAE,mBAAmB;qBACnC,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,mBAAA,EAChB,KAAK,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,eAAe,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,eAAe,EAAE;AAC9D,qBAAA,EAAA,QAAA,EAAA,wYAAA,EAAA,CAAA;;0BAyFI,MAAM;AAAC,oBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAA;;0BACzC,QAAQ;yCAhF2B,YAAY,EAAA,CAAA;sBAAnD,YAAY;uBAAC,wBAAwB,CAAA;gBACL,cAAc,EAAA,CAAA;sBAA9C,YAAY;uBAAC,iBAAiB,CAAA;gBACG,eAAe,EAAA,CAAA;sBAAhD,YAAY;uBAAC,kBAAkB,CAAA;gBAEM,IAAI,EAAA,CAAA;sBAAzC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACU,WAAW,EAAA,CAAA;sBAAxD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGnC,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAeF,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAkBlC,YAAY,EAAA,CAAA;sBADf,KAAK;gBAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;AEluB1C;MAoBa,OAAO,CAAA;iIAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAP,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,sFALN,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKjB,OAAO,EAAA,UAAA,EAAA,CAAA;kBARnB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EACd,IAAA,EAAA,EAAE,KAAK,EAAE,UAAU,EAAE,EAAA,QAAA,EACjB,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,mxLAAA,EAAA,69KAAA,CAAA,EAAA,CAAA;;MAgB5B,WAAW,CAAA;AAGpB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;IAE9C,kBAAkB,GAAA;QACd,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAClD;IAED,WAAW,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAC9D;IAED,UAAU,GAAA;QACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KACjE;IAED,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;iIAnBQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAX,WAAW,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EACH,OAAO,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnC5B,0KAOA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FD2Ba,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EACrC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,QAAQ,EAAE,cAAc;qBAC3B,EAEc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,mBAAA,EAChB,KAAK,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0KAAA,EAAA,CAAA;+EAGrB,KAAK,EAAA,CAAA;sBAA9B,eAAe;uBAAC,OAAO,CAAA;;;MENf,aAAa,CAAA;iIAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBAPlB,OAAO;YACP,gBAAgB;YAChB,WAAW;YACX,aAAa;AACb,YAAA,oBAAoB,aAlBpB,UAAU;YACV,uBAAuB;YACvB,aAAa;AACb,YAAA,eAAe,aAGf,OAAO;YACP,gBAAgB;YAChB,WAAW;YACX,aAAa;YACb,oBAAoB;YACpB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAUV,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YArBlB,UAAU;YACV,uBAAuB;YACvB,aAAa;AACb,YAAA,eAAe,EAQf,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUV,aAAa,EAAA,UAAA,EAAA,CAAA;kBAvBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,UAAU;wBACV,uBAAuB;wBACvB,aAAa;wBACb,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,OAAO;wBACP,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,oBAAoB;wBACpB,eAAe;AAClB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,OAAO;wBACP,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,oBAAoB;AACvB,qBAAA;AACJ,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}