@koobiq/components 18.30.0 → 18.32.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.
- package/actions-panel/actions-panel-config.d.ts +2 -0
- package/actions-panel/actions-panel.d.ts +3 -57
- package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
- package/autocomplete/autocomplete.component.d.ts +1 -0
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/button-toggle/button-toggle.module.d.ts +3 -4
- package/code-block/code-block-highlight.d.ts +1 -2
- package/code-block/code-block.d.ts +57 -10
- package/core/common-behaviors/color.d.ts +3 -0
- package/core/common-behaviors/common-module.d.ts +16 -3
- package/core/common-behaviors/error-state.d.ts +18 -0
- package/core/common-behaviors/index.d.ts +1 -1
- package/core/form-field/form-field-ref.d.ts +5 -3
- package/core/option/_option-theme.scss +24 -2
- package/core/option/option.d.ts +2 -2
- package/core/public-api.d.ts +1 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +1 -1
- package/core/styles/common/_select.scss +10 -24
- package/core/styles/theming/_theming.scss +0 -4
- package/core/tokens/index.d.ts +1 -0
- package/core/tokens/window.d.ts +5 -0
- package/core/validation/validation.d.ts +23 -2
- package/datepicker/datepicker-input.directive.d.ts +14 -5
- package/datepicker/datepicker-input.scss +1 -5
- package/datepicker/datepicker-module.d.ts +1 -1
- package/datepicker/datepicker-toggle.component.d.ts +22 -0
- package/datepicker/datepicker-toggle.scss +6 -0
- package/dropdown/dropdown-trigger.directive.d.ts +1 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
- package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +16 -113
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
- package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
- package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
- package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
- package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
- package/esm2022/code-block/code-block-highlight.mjs +8 -12
- package/esm2022/code-block/code-block.mjs +60 -18
- package/esm2022/core/common-behaviors/color.mjs +4 -1
- package/esm2022/core/common-behaviors/common-module.mjs +19 -26
- package/esm2022/core/common-behaviors/error-state.mjs +28 -1
- package/esm2022/core/common-behaviors/index.mjs +2 -2
- package/esm2022/core/form-field/form-field-ref.mjs +3 -4
- package/esm2022/core/option/option.mjs +9 -7
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
- package/esm2022/core/tokens/index.mjs +2 -0
- package/esm2022/core/tokens/window.mjs +19 -0
- package/esm2022/core/utils/utils.mjs +2 -1
- package/esm2022/core/validation/validation.mjs +21 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-body.component.mjs +3 -3
- package/esm2022/datepicker/calendar-header.component.mjs +3 -3
- package/esm2022/datepicker/datepicker-input.directive.mjs +66 -6
- package/esm2022/datepicker/datepicker-module.mjs +8 -3
- package/esm2022/datepicker/datepicker-toggle.component.mjs +94 -10
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
- package/esm2022/filter-bar/filter-bar.mjs +27 -5
- package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
- package/esm2022/filter-bar/filter-search.mjs +2 -2
- package/esm2022/filter-bar/filters.mjs +3 -3
- package/esm2022/filter-bar/pipe-add.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-date.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +29 -9
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +30 -10
- package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
- package/esm2022/form-field/cleaner.mjs +11 -6
- package/esm2022/form-field/error.mjs +20 -0
- package/esm2022/form-field/fieldset.mjs +84 -0
- package/esm2022/form-field/form-field-control.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +247 -74
- package/esm2022/form-field/form-field.module.mjs +59 -47
- package/esm2022/form-field/hint.mjs +10 -18
- package/esm2022/form-field/label.mjs +19 -0
- package/esm2022/form-field/password-hint.mjs +6 -5
- package/esm2022/form-field/password-toggle.mjs +52 -27
- package/esm2022/form-field/prefix.mjs +9 -3
- package/esm2022/form-field/public-api.mjs +5 -2
- package/esm2022/form-field/reactive-password-hint.mjs +65 -0
- package/esm2022/form-field/stepper.mjs +34 -16
- package/esm2022/form-field/suffix.mjs +8 -3
- package/esm2022/form-field/validate.directive.mjs +16 -19
- package/esm2022/icon/icon-button.component.mjs +2 -2
- package/esm2022/input/input-number.mjs +7 -2
- package/esm2022/input/input.module.mjs +1 -5
- package/esm2022/list/list-selection.component.mjs +5 -4
- package/esm2022/list/list.component.mjs +2 -2
- package/esm2022/modal/modal-util.mjs +2 -1
- package/esm2022/navbar/navbar-item.component.mjs +10 -11
- package/esm2022/overflow-items/overflow-items.mjs +27 -10
- package/esm2022/radio/radio.module.mjs +4 -5
- package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
- package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
- package/esm2022/select/select.component.mjs +39 -18
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
- package/esm2022/splitter/splitter.component.mjs +5 -3
- package/esm2022/tabs/paginated-tab-header.mjs +6 -2
- package/esm2022/tabs/tabs.module.mjs +1 -5
- package/esm2022/tags/tag-list.component.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +7 -6
- package/esm2022/textarea/textarea.module.mjs +4 -5
- package/esm2022/timezone/timezone-option.component.mjs +2 -2
- package/esm2022/timezone/timezone-select.component.mjs +6 -4
- package/esm2022/toast/toast-animations.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/toggle/toggle.component.mjs +3 -3
- package/esm2022/toggle/toggle.module.mjs +4 -5
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree/padding.directive.mjs +8 -6
- package/esm2022/tree/toggle.mjs +2 -2
- package/esm2022/tree/tree-option.component.mjs +5 -4
- package/esm2022/tree/tree-selection.component.mjs +2 -2
- package/esm2022/tree/tree.mjs +2 -2
- package/esm2022/tree-select/tree-select.component.mjs +48 -24
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +5 -5
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +65 -28
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +99 -39
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +162 -14
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +5 -4
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +95 -46
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +610 -219
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +7 -5
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +6 -5
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +1 -0
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +9 -10
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +4 -4
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +39 -18
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +1 -4
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +4 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +5 -5
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +2 -2
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +9 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +7 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +3 -3
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +6 -6
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +2 -2
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +48 -24
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +17 -14
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/multiple-file-upload.component.d.ts +1 -1
- package/filter-bar/filter-bar.d.ts +7 -1
- package/filter-bar/filter-bar.types.d.ts +5 -0
- package/filter-bar/pipes/pipe-multi-select.d.ts +5 -1
- package/filter-bar/pipes/pipe-multi-tree-select.d.ts +5 -1
- package/form-field/_fiedset-theme.scss +13 -0
- package/form-field/_form-field-theme.scss +29 -13
- package/form-field/_hint-theme.scss +21 -22
- package/form-field/cleaner.d.ts +5 -1
- package/form-field/cleaner.scss +1 -4
- package/form-field/error.d.ts +8 -0
- package/form-field/fieldset-tokens.scss +5 -0
- package/form-field/fieldset.d.ts +27 -0
- package/form-field/fieldset.scss +93 -0
- package/form-field/form-field-control.d.ts +1 -1
- package/form-field/form-field-tokens.scss +13 -3
- package/form-field/form-field.d.ts +210 -22
- package/form-field/form-field.module.d.ts +14 -12
- package/form-field/form-field.scss +58 -78
- package/form-field/hint.d.ts +5 -1
- package/form-field/hint.scss +3 -5
- package/form-field/label.d.ts +6 -0
- package/form-field/password-hint.d.ts +1 -1
- package/form-field/password-toggle.d.ts +25 -11
- package/form-field/password-toggle.scss +1 -2
- package/form-field/prefix.d.ts +2 -1
- package/form-field/public-api.d.ts +4 -1
- package/form-field/reactive-password-hint.d.ts +19 -0
- package/form-field/stepper.d.ts +20 -8
- package/form-field/stepper.scss +12 -11
- package/form-field/suffix.d.ts +2 -1
- package/form-field/validate.directive.d.ts +10 -12
- package/icon/_icon-button-theme.scss +67 -85
- package/input/input-tokens.scss +2 -2
- package/input/input.module.d.ts +3 -4
- package/input/input.scss +1 -2
- package/list/_list-theme.scss +24 -2
- package/list/list-tokens.scss +5 -0
- package/navbar/navbar-item.component.d.ts +3 -1
- package/overflow-items/overflow-items.d.ts +12 -5
- package/package.json +6 -6
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.module.d.ts +1 -2
- package/schematics/ng-add/index.js +5 -5
- package/scrollbar/scrollbar.component.d.ts +1 -0
- package/select/select-tokens.scss +5 -4
- package/select/select.component.d.ts +12 -3
- package/sidepanel/sidepanel.module.d.ts +5 -6
- package/splitter/splitter.component.d.ts +1 -0
- package/tabs/paginated-tab-header.d.ts +1 -0
- package/tabs/tabs.module.d.ts +5 -6
- package/tags/tag-list.scss +8 -4
- package/textarea/textarea.component.d.ts +1 -0
- package/textarea/textarea.module.d.ts +2 -3
- package/timepicker/timepicker.scss +1 -1
- package/toast/toast.component.scss +2 -0
- package/toggle/_toggle-theme.scss +10 -2
- package/toggle/toggle-tokens.scss +7 -1
- package/toggle/toggle.module.d.ts +1 -2
- package/toggle/toggle.scss +6 -6
- package/top-bar/top-bar.scss +48 -32
- package/tree/_tree-theme.scss +30 -7
- package/tree/padding.directive.d.ts +1 -1
- package/tree/tree-option.scss +5 -2
- package/tree/tree-tokens.scss +5 -0
- package/tree-select/tree-select.component.d.ts +10 -1
- package/esm2022/form-field/form-field-errors.mjs +0 -7
- package/form-field/form-field-errors.d.ts +0 -2
|
@@ -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 { FocusMonitor } from '@angular/cdk/a11y';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\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 { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 KBQ_OPTION_ACTION_PARENT,\n KBQ_TITLE_TEXT_REF,\n KbqOptgroup,\n KbqOptionActionComponent,\n KbqTitleTextRef,\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 } 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@Component({\n selector: 'kbq-list-selection',\n exportAs: 'kbqListSelection',\n template: `\n <ng-content />\n `,\n styleUrls: ['./list.scss', 'list-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-list-selection',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class KbqListSelection implements AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor {\n protected readonly focusMonitor = inject(FocusMonitor);\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 @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 }\n }\n\n private _disabled: boolean = false;\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 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 private readonly destroyRef = inject(DestroyRef);\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode,\n @Optional() private clipboard: Clipboard\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 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(takeUntilDestroyed(this.destroyRef)).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(takeUntilDestroyed(this.destroyRef)).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), takeUntilDestroyed(this.destroyRef)).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 ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n focus(): void {\n if (this.options.length === 0) {\n return;\n }\n\n if (this.selectionModel.selected.length) {\n this.options.find((option) => option.selected)?.focus();\n } else {\n this.keyManager.setFirstItemActive();\n }\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(Array.isArray(values) ? values : [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 /** Handles keydown events on the list. */\n onKeyDown(event: KeyboardEvent): void {\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 // ctrlKey is for Windows, metaKey is for MacOS\n hasModifierKey(event, 'ctrlKey', 'metaKey')\n );\n }\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n\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 /** Handles click events on the list option. */\n handleClick($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n this.listSelection.setSelectedOptionsByClick(\n this,\n hasModifierKey($event, 'shiftKey'),\n // ctrlKey is for Windows, metaKey is for MacOS\n hasModifierKey($event, 'ctrlKey', 'metaKey')\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 [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div #kbqTitleText #text class=\"kbq-list-text\">\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":"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"}
|
|
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 { FocusMonitor } from '@angular/cdk/a11y';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\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 { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 KBQ_OPTION_ACTION_PARENT,\n KBQ_TITLE_TEXT_REF,\n KbqOptgroup,\n KbqOptionActionComponent,\n KbqTitleTextRef,\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 } 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@Component({\n selector: 'kbq-list-selection',\n exportAs: 'kbqListSelection',\n template: `\n <ng-content />\n `,\n styleUrls: ['./list.scss', 'list-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-list-selection',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [KBQ_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class KbqListSelection implements AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor {\n protected readonly focusMonitor = inject(FocusMonitor);\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 @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 }\n }\n\n private _disabled: boolean = false;\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 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 private readonly destroyRef = inject(DestroyRef);\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode,\n @Optional() private clipboard: Clipboard\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 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(takeUntilDestroyed(this.destroyRef)).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(takeUntilDestroyed(this.destroyRef)).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), takeUntilDestroyed(this.destroyRef)).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 ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n focus(): void {\n if (this.options.length === 0) {\n return;\n }\n\n if (this.selectionModel.selected.length) {\n this.options.find((option) => option.selected)?.focus();\n } else {\n this.keyManager.setFirstItemActive();\n }\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(Array.isArray(values) ? values : [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 /** Handles keydown events on the list. */\n onKeyDown(event: KeyboardEvent): void {\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 // ctrlKey is for Windows, metaKey is for MacOS\n hasModifierKey(event, 'ctrlKey', 'metaKey')\n );\n }\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n\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-list-option_multiple]': 'listSelection.multiple',\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 /** Handles click events on the list option. */\n handleClick($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n this.listSelection.setSelectedOptionsByClick(\n this,\n hasModifierKey($event, 'shiftKey'),\n // ctrlKey is for Windows, metaKey is for MacOS\n hasModifierKey($event, 'ctrlKey', 'metaKey')\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 [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n}\n\n<ng-content select=\"[kbq-icon]\" />\n\n<div #kbqTitleText #text class=\"kbq-list-text\">\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":"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"}
|