@alauda/ui 7.2.1-beta → 7.2.1-beta.1
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/esm2022/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/drawer/component/drawer.component.mjs +3 -12
- package/esm2022/paginator/paginator.component.mjs +3 -3
- package/esm2022/paginator/paginator.module.mjs +3 -2
- package/esm2022/scrolling/virtual-for-of.directive.mjs +14 -2
- package/esm2022/select/base-select.mjs +265 -152
- package/esm2022/select/helper-directives.mjs +9 -54
- package/esm2022/select/index.mjs +3 -2
- package/esm2022/select/multi-select/multi-select.component.mjs +38 -58
- package/esm2022/select/option-group/option-group.component.mjs +16 -11
- package/esm2022/select/option-item/option-item.component.mjs +63 -0
- package/esm2022/select/option.component.mjs +48 -0
- package/esm2022/select/select.component.mjs +21 -13
- package/esm2022/select/select.module.mjs +16 -33
- package/esm2022/select/select.types.mjs +1 -1
- package/esm2022/select/validators.mjs +4 -9
- package/esm2022/tree-select/tree-select.component.mjs +3 -3
- package/fesm2022/alauda-ui.mjs +2251 -2225
- package/fesm2022/alauda-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/select/base-select.d.ts +57 -36
- package/select/helper-directives.d.ts +3 -16
- package/select/index.d.ts +2 -1
- package/select/multi-select/multi-select.component.d.ts +16 -20
- package/select/option-group/option-group.component.d.ts +4 -5
- package/select/option-item/option-item.component.d.ts +23 -0
- package/select/option.component.d.ts +16 -0
- package/select/select.component.d.ts +3 -3
- package/select/select.module.d.ts +12 -17
- package/select/select.types.d.ts +8 -2
- package/esm2022/select/option/option.component.mjs +0 -120
- package/select/option/option.component.d.ts +0 -46
package/package.json
CHANGED
package/select/base-select.d.ts
CHANGED
|
@@ -1,79 +1,100 @@
|
|
|
1
|
-
import { AfterContentInit,
|
|
2
|
-
import { BehaviorSubject, Observable
|
|
1
|
+
import { AfterContentInit, ElementRef, EventEmitter, QueryList, TemplateRef } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
3
|
import { CommonFormControl } from '../form';
|
|
4
|
+
import { VirtualScrollViewportComponent } from '../scrolling/virtual-scroll-viewport.component';
|
|
4
5
|
import { TooltipDirective } from '../tooltip';
|
|
5
6
|
import { ComponentSize } from '../types';
|
|
6
|
-
import {
|
|
7
|
-
import { OptionComponent } from './option
|
|
8
|
-
import { OptionFilterFn, SelectFilterOption, TrackFn } from './select.types';
|
|
7
|
+
import { OptionItemComponent } from './option-item/option-item.component';
|
|
8
|
+
import { OptionComponent } from './option.component';
|
|
9
|
+
import { CreateFn, DisplayOption, OptionFilterFn, SelectFilterOption, TrackFn } from './select.types';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
|
-
export declare abstract class BaseSelect<T, V = T> extends CommonFormControl<V> implements AfterContentInit
|
|
11
|
+
export declare abstract class BaseSelect<T, V = T> extends CommonFormControl<V> implements AfterContentInit {
|
|
11
12
|
get size(): ComponentSize;
|
|
12
13
|
set size(val: ComponentSize);
|
|
14
|
+
get options(): Array<SelectFilterOption<T>>;
|
|
15
|
+
set options(val: Array<SelectFilterOption<T>>);
|
|
13
16
|
filterable: boolean;
|
|
14
17
|
clearable: boolean;
|
|
15
|
-
filterFn: OptionFilterFn<T>;
|
|
16
|
-
trackFn: TrackFn<T>;
|
|
17
|
-
labelFn?: (value: T) => string;
|
|
18
18
|
allowCreate: boolean;
|
|
19
|
-
get allOptions(): OptionComponent<T>[];
|
|
20
|
-
get opened(): boolean;
|
|
21
|
-
get inputReadonly(): boolean;
|
|
22
|
-
get filterString(): string;
|
|
23
|
-
set filterString(val: string);
|
|
24
19
|
loading: boolean;
|
|
25
20
|
placeholder: string;
|
|
26
21
|
defaultFirstOption: boolean;
|
|
27
|
-
|
|
22
|
+
useVirtual: boolean;
|
|
23
|
+
itemSize: number;
|
|
24
|
+
maxItemLength: number;
|
|
25
|
+
createFn: CreateFn<T>;
|
|
26
|
+
filterFn: OptionFilterFn<T>;
|
|
27
|
+
trackFn: TrackFn<T>;
|
|
28
|
+
labelFn?: (value: T) => string;
|
|
28
29
|
filterChange: EventEmitter<string>;
|
|
29
30
|
show: EventEmitter<void>;
|
|
30
31
|
hide: EventEmitter<void>;
|
|
31
32
|
protected selectRef: ElementRef<HTMLElement>;
|
|
32
33
|
protected tooltipRef: TooltipDirective;
|
|
33
34
|
protected optionListRef: ElementRef<HTMLDivElement>;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
virtualScrollViewport: VirtualScrollViewportComponent;
|
|
36
|
+
inputItemTemplate: TemplateRef<any>;
|
|
37
|
+
contentOptionItems: QueryList<ElementRef<HTMLElement>>;
|
|
38
|
+
contentTplOptions: QueryList<OptionComponent<T>>;
|
|
39
|
+
get opened(): boolean;
|
|
40
|
+
get inputReadonly(): boolean;
|
|
41
|
+
get _itemSize(): number;
|
|
42
|
+
set filterString(val: string);
|
|
43
|
+
get filterString(): string;
|
|
44
|
+
isTemplateRef: (label: any) => label is TemplateRef<unknown>;
|
|
39
45
|
isMulti: boolean;
|
|
40
|
-
|
|
41
|
-
allOptions$: Observable<Array<OptionComponent<T>>>;
|
|
42
|
-
protected focusedOption: OptionComponent<T>;
|
|
46
|
+
protected scrolledIndex: number;
|
|
43
47
|
private _size;
|
|
48
|
+
private _options;
|
|
44
49
|
private _filterString;
|
|
45
|
-
|
|
50
|
+
selectableOptions: Array<DisplayOption<T>>;
|
|
51
|
+
abstract readonly values$: Observable<T[]>;
|
|
52
|
+
protected options$$: BehaviorSubject<DisplayOption<T>[]>;
|
|
53
|
+
protected contentOptions$: Observable<Array<DisplayOption<T>>>;
|
|
54
|
+
protected customOptions$: Observable<Array<DisplayOption<T>>>;
|
|
55
|
+
protected inputtingOption$: Observable<DisplayOption<T>>;
|
|
56
|
+
allOptions$: BehaviorSubject<DisplayOption<T>[]>;
|
|
57
|
+
filterOptions$: BehaviorSubject<DisplayOption<T>[]>;
|
|
58
|
+
containerWidth: string;
|
|
46
59
|
protected size$$: BehaviorSubject<ComponentSize>;
|
|
47
60
|
private readonly filterString$$;
|
|
48
61
|
size$: Observable<ComponentSize>;
|
|
62
|
+
options$: Observable<DisplayOption<T>[]>;
|
|
49
63
|
filterString$: Observable<string>;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
hasMatchedOption$: Observable<boolean>;
|
|
53
|
-
customCreatedOptions$: Observable<Array<SelectFilterOption<T>>>;
|
|
54
|
-
containerWidth: string;
|
|
64
|
+
focused$: BehaviorSubject<DisplayOption<T>>;
|
|
65
|
+
private readonly destroyRef;
|
|
55
66
|
ngAfterContentInit(): void;
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
private tplOptions2Data;
|
|
68
|
+
private transformOptions;
|
|
69
|
+
trackByValue: (_: number, item: SelectFilterOption<T>) => unknown;
|
|
58
70
|
openOption(): void;
|
|
59
71
|
closeOption(): void;
|
|
60
72
|
onShowOptions(): void;
|
|
61
73
|
onHideOptions(): void;
|
|
62
74
|
onInput(event: Event): void;
|
|
75
|
+
stopEvent(event: KeyboardEvent): void;
|
|
63
76
|
onKeyDown(event: KeyboardEvent): void;
|
|
64
|
-
onOptionClick(option:
|
|
77
|
+
onOptionClick(option: OptionItemComponent<T>): void;
|
|
78
|
+
updateAllOptions(option: DisplayOption<T>): void;
|
|
65
79
|
protected autoFocusFirstOption(): void;
|
|
66
80
|
protected focusOptionDir(dir: 'down' | 'up'): void;
|
|
67
|
-
|
|
68
|
-
protected
|
|
81
|
+
isFocus: (value: DisplayOption<T>['value'], focusOption?: DisplayOption<T>) => boolean;
|
|
82
|
+
protected resetFocusedOption(focusedOption?: DisplayOption<T>): void;
|
|
83
|
+
onScrolledIndexChange(index: number): void;
|
|
84
|
+
protected scrollToOption(option: DisplayOption<T>): void;
|
|
69
85
|
protected selectFocusedOption(): void;
|
|
86
|
+
getSelected(value: DisplayOption<T>['value'], values: Array<DisplayOption<T>['value']>): boolean;
|
|
87
|
+
focus(option: DisplayOption<T>): void;
|
|
88
|
+
blur(): void;
|
|
89
|
+
getLabelByValue(value: T): string;
|
|
70
90
|
protected escSelect(): void;
|
|
71
91
|
private _trackFn;
|
|
92
|
+
private _createFn;
|
|
72
93
|
private _filterFn;
|
|
73
|
-
abstract selectOption(option:
|
|
94
|
+
abstract selectOption(option: DisplayOption<T>): void;
|
|
74
95
|
abstract clearValue(event: Event): void;
|
|
75
96
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseSelect<any, any>, never>;
|
|
76
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseSelect<any, any>, never, never, { "size": { "alias": "size"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "
|
|
97
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseSelect<any, any>, never, never, { "size": { "alias": "size"; "required": false; }; "options": { "alias": "options"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "allowCreate": { "alias": "allowCreate"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "defaultFirstOption": { "alias": "defaultFirstOption"; "required": false; }; "useVirtual": { "alias": "useVirtual"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "maxItemLength": { "alias": "maxItemLength"; "required": false; }; "createFn": { "alias": "createFn"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "trackFn": { "alias": "trackFn"; "required": false; }; "labelFn": { "alias": "labelFn"; "required": false; }; }, { "filterChange": "filterChange"; "show": "show"; "hide": "hide"; }, ["inputItemTemplate", "contentTplOptions"], never, true, never>;
|
|
77
98
|
static ngAcceptInputType_filterable: unknown;
|
|
78
99
|
static ngAcceptInputType_clearable: unknown;
|
|
79
100
|
static ngAcceptInputType_allowCreate: unknown;
|
|
@@ -1,22 +1,9 @@
|
|
|
1
|
-
import { ApplicationRef, ComponentFactoryResolver, Injector, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export declare class OptionGroupTitleDirective {
|
|
4
3
|
static ɵfac: i0.ɵɵFactoryDeclaration<OptionGroupTitleDirective, never>;
|
|
5
4
|
static ɵdir: i0.ɵɵDirectiveDeclaration<OptionGroupTitleDirective, "[auiOptionGroupTitle]", ["auiOptionGroupTitle"], {}, {}, never, never, true, never>;
|
|
6
5
|
}
|
|
7
|
-
export declare class
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
private readonly viewContainerRef;
|
|
11
|
-
private readonly componentFactoryResolver;
|
|
12
|
-
private readonly injector;
|
|
13
|
-
private portal;
|
|
14
|
-
private outlet;
|
|
15
|
-
private readonly doc;
|
|
16
|
-
constructor(templateRef: TemplateRef<unknown>, appRef: ApplicationRef, viewContainerRef: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver, injector: Injector, document: any);
|
|
17
|
-
attach(context?: any): void;
|
|
18
|
-
detach(): void;
|
|
19
|
-
ngOnDestroy(): void;
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<OptionContentDirective, never>;
|
|
21
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<OptionContentDirective, "*[auiOptionContent]", ["auiOptionContent"], {}, {}, never, never, true, never>;
|
|
6
|
+
export declare class OptionItemCustomDirective {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OptionItemCustomDirective, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<OptionItemCustomDirective, "[auiOptionItemCustom]", ["auiOptionItemCustom"], {}, {}, never, never, true, never>;
|
|
22
9
|
}
|
package/select/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export * from './helper-directives';
|
|
2
2
|
export * from './multi-select/multi-select.component';
|
|
3
|
-
export * from './option
|
|
3
|
+
export * from './option.component';
|
|
4
4
|
export * from './option-group/option-group.component';
|
|
5
|
+
export * from './option-item/option-item.component';
|
|
5
6
|
export * from './option-placeholder.component';
|
|
6
7
|
export * from './select.component';
|
|
7
8
|
export * from './select.module';
|
|
@@ -1,21 +1,11 @@
|
|
|
1
|
-
import { AfterContentInit,
|
|
1
|
+
import { AfterContentInit, ChangeDetectorRef, ElementRef, Renderer2 } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { Bem } from '../../utils';
|
|
4
4
|
import { BaseSelect } from '../base-select';
|
|
5
|
-
import {
|
|
6
|
-
import { SelectAllStatus, SelectFilterOption, TagClassFn } from '../select.types';
|
|
5
|
+
import { DisplayOption, SelectAllStatus, SelectFilterOption, TagClassFn } from '../select.types';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class MultiSelectComponent<T = unknown> extends BaseSelect<T, T[]> implements AfterContentInit
|
|
7
|
+
export declare class MultiSelectComponent<T = unknown> extends BaseSelect<T, T[]> implements AfterContentInit {
|
|
9
8
|
private readonly renderer;
|
|
10
|
-
bem: Bem;
|
|
11
|
-
bemSelectAll: Bem;
|
|
12
|
-
selectedOptions$: Observable<Array<SelectFilterOption<T>>>;
|
|
13
|
-
selectAllStatus$: Observable<SelectAllStatus>;
|
|
14
|
-
selectAllStatus: SelectAllStatus;
|
|
15
|
-
hasEnabledOptions$: Observable<boolean>;
|
|
16
|
-
isMulti: boolean;
|
|
17
|
-
model: T[];
|
|
18
|
-
values$: import("rxjs").ReplaySubject<T[]>;
|
|
19
9
|
tagClassFn: TagClassFn<T>;
|
|
20
10
|
maxRowCount: number;
|
|
21
11
|
customRowHeight: number;
|
|
@@ -24,34 +14,40 @@ export declare class MultiSelectComponent<T = unknown> extends BaseSelect<T, T[]
|
|
|
24
14
|
inputValueMirror: ElementRef<HTMLElement>;
|
|
25
15
|
get hostPosition(): string;
|
|
26
16
|
get hostDisplay(): string;
|
|
27
|
-
inputValue: string;
|
|
28
|
-
hasDisabledOption: boolean;
|
|
29
17
|
get rootClass(): string;
|
|
30
18
|
get tagSize(): "medium" | "mini";
|
|
31
19
|
get inputClass(): string;
|
|
32
20
|
get displayClearBtn(): number;
|
|
33
21
|
get maxHeight(): string;
|
|
22
|
+
bem: Bem;
|
|
23
|
+
bemSelectAll: Bem;
|
|
24
|
+
selectedOptions$: Observable<Array<SelectFilterOption<T>>>;
|
|
25
|
+
selectAllStatus$: Observable<SelectAllStatus>;
|
|
26
|
+
selectAllStatus: SelectAllStatus;
|
|
27
|
+
hasEnabledOptions$: Observable<boolean>;
|
|
28
|
+
isMulti: boolean;
|
|
29
|
+
model: T[];
|
|
30
|
+
values$: import("rxjs").ReplaySubject<T[]>;
|
|
31
|
+
inputValue: string;
|
|
32
|
+
hasDisabledOption: boolean;
|
|
34
33
|
private readonly withMaxRowCount;
|
|
35
34
|
focused: boolean;
|
|
36
|
-
trackByValue: (_: number, item: SelectFilterOption<T>) => unknown;
|
|
37
35
|
constructor(cdr: ChangeDetectorRef, renderer: Renderer2);
|
|
38
36
|
ngAfterContentInit(): void;
|
|
39
|
-
ngAfterViewInit(): void;
|
|
40
37
|
onVisibleOptions(visible: boolean): void;
|
|
41
38
|
onInput(event: Event): void;
|
|
42
39
|
onInputFocus(): void;
|
|
43
40
|
onInputBlur(): void;
|
|
44
41
|
onKeyDown(event: KeyboardEvent): void;
|
|
45
|
-
selectOption(option:
|
|
42
|
+
selectOption(option: DisplayOption<T>): void;
|
|
46
43
|
addValue(value: T): void;
|
|
47
44
|
removeValue(value: T): void;
|
|
48
45
|
clearValue(event: Event): void;
|
|
49
46
|
onSelectAllClick(): void;
|
|
50
|
-
private includes;
|
|
51
47
|
protected valueIn(v: T[]): T[];
|
|
52
48
|
private resetInput;
|
|
53
49
|
private setInputWidth;
|
|
54
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent<any>, never>;
|
|
55
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent<any>, "aui-multi-select", never, { "tagClassFn": { "alias": "tagClassFn"; "required": false; }; "maxRowCount": { "alias": "maxRowCount"; "required": false; }; "customRowHeight": { "alias": "customRowHeight"; "required": false; }; "allowSelectAll": { "alias": "allowSelectAll"; "required": false; }; }, {}, never, ["
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent<any>, "aui-multi-select", never, { "tagClassFn": { "alias": "tagClassFn"; "required": false; }; "maxRowCount": { "alias": "maxRowCount"; "required": false; }; "customRowHeight": { "alias": "customRowHeight"; "required": false; }; "allowSelectAll": { "alias": "allowSelectAll"; "required": false; }; }, {}, never, ["[prefix]", "[suffix]", "aui-option-placeholder"], true, never>;
|
|
56
52
|
static ngAcceptInputType_allowSelectAll: unknown;
|
|
57
53
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { AfterContentInit, QueryList } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { OptionComponent } from '../option/option.component';
|
|
1
|
+
import { AfterContentInit, QueryList, ElementRef } from '@angular/core';
|
|
2
|
+
import { OptionComponent } from '../option.component';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class OptionGroupComponent<T> implements AfterContentInit {
|
|
6
5
|
options: QueryList<OptionComponent<T>>;
|
|
7
|
-
|
|
6
|
+
groupTitle: ElementRef;
|
|
8
7
|
ngAfterContentInit(): void;
|
|
9
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<OptionGroupComponent<any>, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<OptionGroupComponent<any>, "aui-option-group", never, {}, {}, ["options"], ["[auiOptionGroupTitle]", "*"], true, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OptionGroupComponent<any>, "aui-option-group", never, {}, {}, ["groupTitle", "options"], ["[auiOptionGroupTitle]", "*"], true, never>;
|
|
11
10
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DomPortal } from '@angular/cdk/portal';
|
|
2
|
+
import { ElementRef, TemplateRef } from '@angular/core';
|
|
3
|
+
import { Bem } from '../../utils';
|
|
4
|
+
import { BaseSelect } from '../base-select';
|
|
5
|
+
import { SelectOption } from '../select.types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class OptionItemComponent<T> {
|
|
8
|
+
readonly select: BaseSelect<T>;
|
|
9
|
+
label: SelectOption['label'];
|
|
10
|
+
value: T;
|
|
11
|
+
disabled: boolean;
|
|
12
|
+
labelContext: unknown;
|
|
13
|
+
focused: boolean;
|
|
14
|
+
selected: boolean;
|
|
15
|
+
groupTitle: ElementRef;
|
|
16
|
+
contentTemplate: TemplateRef<any>;
|
|
17
|
+
bem: Bem;
|
|
18
|
+
get groupTitlePortal(): DomPortal<any>;
|
|
19
|
+
constructor(select: BaseSelect<T>);
|
|
20
|
+
onClick(): void;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OptionItemComponent<any>, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OptionItemComponent<any>, "aui-option-item", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "labelContext": { "alias": "labelContext"; "required": false; }; "focused": { "alias": "focused"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "groupTitle": { "alias": "groupTitle"; "required": false; }; "contentTemplate": { "alias": "contentTemplate"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElementRef, OnChanges, TemplateRef } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { SelectOption } from './select.types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class OptionComponent<T> implements OnChanges {
|
|
6
|
+
label: SelectOption['label'];
|
|
7
|
+
value: T;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
labelContext: unknown;
|
|
10
|
+
contentTemplate: TemplateRef<any>;
|
|
11
|
+
changes$: Subject<unknown>;
|
|
12
|
+
groupTitle: ElementRef;
|
|
13
|
+
ngOnChanges(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OptionComponent<any>, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OptionComponent<any>, "aui-option", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "labelContext": { "alias": "labelContext"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
16
|
+
}
|
|
@@ -2,7 +2,7 @@ import { AfterContentInit } from '@angular/core';
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { InputComponent } from '../input';
|
|
4
4
|
import { BaseSelect } from './base-select';
|
|
5
|
-
import {
|
|
5
|
+
import { OptionItemComponent } from './option-item/option-item.component';
|
|
6
6
|
import { SelectOption } from './select.types';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class SelectComponent<T = unknown> extends BaseSelect<T> implements AfterContentInit {
|
|
@@ -16,8 +16,8 @@ export declare class SelectComponent<T = unknown> extends BaseSelect<T> implemen
|
|
|
16
16
|
ngAfterContentInit(): void;
|
|
17
17
|
onVisibleOptions(visible: boolean): void;
|
|
18
18
|
protected valueIn(v: T): T;
|
|
19
|
-
selectOption(option:
|
|
19
|
+
selectOption(option: OptionItemComponent<T>): void;
|
|
20
20
|
clearValue(event: Event): void;
|
|
21
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "aui-select", never, {}, {}, never, ["
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "aui-select", never, {}, {}, never, ["[prefix]", "[suffix]", "aui-option-placeholder"], true, never>;
|
|
23
23
|
}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OptionGroupTitleDirective } from './helper-directives';
|
|
2
2
|
import { MultiSelectComponent } from './multi-select/multi-select.component';
|
|
3
|
-
import { OptionComponent } from './option/option.component';
|
|
4
3
|
import { OptionGroupComponent } from './option-group/option-group.component';
|
|
5
4
|
import { OptionPlaceholderComponent } from './option-placeholder.component';
|
|
5
|
+
import { OptionComponent } from './option.component';
|
|
6
6
|
import { SelectComponent } from './select.component';
|
|
7
7
|
import { IncludesDirective } from './validators';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "
|
|
10
|
-
import * as i2 from "
|
|
11
|
-
import * as i3 from "
|
|
12
|
-
import * as i4 from "
|
|
13
|
-
import * as i5 from "
|
|
14
|
-
import * as i6 from "
|
|
15
|
-
import * as i7 from "./
|
|
16
|
-
import * as i8 from "./
|
|
17
|
-
import * as i9 from "./option-group/option-group.component";
|
|
18
|
-
import * as i10 from "./option-placeholder.component";
|
|
19
|
-
import * as i11 from "./multi-select/multi-select.component";
|
|
20
|
-
import * as i12 from "./validators";
|
|
21
|
-
import * as i13 from "./helper-directives";
|
|
9
|
+
import * as i1 from "./select.component";
|
|
10
|
+
import * as i2 from "./option.component";
|
|
11
|
+
import * as i3 from "./option-item/option-item.component";
|
|
12
|
+
import * as i4 from "./option-group/option-group.component";
|
|
13
|
+
import * as i5 from "./option-placeholder.component";
|
|
14
|
+
import * as i6 from "./multi-select/multi-select.component";
|
|
15
|
+
import * as i7 from "./validators";
|
|
16
|
+
import * as i8 from "./helper-directives";
|
|
22
17
|
export declare class SelectModule {
|
|
23
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SelectModule, never, [typeof i1.
|
|
19
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SelectModule, never, [typeof i1.SelectComponent, typeof i2.OptionComponent, typeof i3.OptionItemComponent, typeof i4.OptionGroupComponent, typeof i5.OptionPlaceholderComponent, typeof i6.MultiSelectComponent, typeof i7.IncludesDirective, typeof i8.OptionGroupTitleDirective, typeof i8.OptionItemCustomDirective], [typeof i1.SelectComponent, typeof i2.OptionComponent, typeof i3.OptionItemComponent, typeof i4.OptionGroupComponent, typeof i5.OptionPlaceholderComponent, typeof i6.MultiSelectComponent, typeof i7.IncludesDirective, typeof i8.OptionGroupTitleDirective, typeof i8.OptionItemCustomDirective]>;
|
|
25
20
|
static ɵinj: i0.ɵɵInjectorDeclaration<SelectModule>;
|
|
26
21
|
}
|
|
27
|
-
export declare const SELECT_MODULE: readonly [typeof SelectComponent, typeof OptionComponent, typeof OptionGroupComponent, typeof OptionPlaceholderComponent, typeof MultiSelectComponent, typeof IncludesDirective, typeof OptionGroupTitleDirective
|
|
22
|
+
export declare const SELECT_MODULE: readonly [typeof SelectComponent, typeof OptionComponent, typeof OptionGroupComponent, typeof OptionPlaceholderComponent, typeof MultiSelectComponent, typeof IncludesDirective, typeof OptionGroupTitleDirective];
|
package/select/select.types.d.ts
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { TemplateRef } from '@angular/core';
|
|
1
|
+
import { ElementRef, TemplateRef } from '@angular/core';
|
|
2
2
|
export interface SelectOption {
|
|
3
|
-
label
|
|
3
|
+
label?: string | TemplateRef<unknown>;
|
|
4
4
|
labelContext?: unknown;
|
|
5
5
|
}
|
|
6
6
|
export interface SelectFilterOption<T> extends SelectOption {
|
|
7
7
|
disabled?: boolean;
|
|
8
8
|
value: T;
|
|
9
9
|
}
|
|
10
|
+
export interface DisplayOption<T> extends SelectFilterOption<T> {
|
|
11
|
+
selected?: boolean;
|
|
12
|
+
groupTitle?: ElementRef;
|
|
13
|
+
contentTemplate?: TemplateRef<any>;
|
|
14
|
+
}
|
|
10
15
|
export type OptionFilterFn<T> = (filter: string, option: SelectFilterOption<T>) => boolean;
|
|
11
16
|
export type TrackFn<T, R = unknown> = (value: T) => R;
|
|
17
|
+
export type CreateFn<T> = (input: string) => DisplayOption<T>;
|
|
12
18
|
export type TagClassFn<V, T extends string | TemplateRef<unknown> = string | TemplateRef<unknown>> = (label: T, value: V) => string | string[] | Set<string> | {
|
|
13
19
|
[className: string]: unknown;
|
|
14
20
|
};
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { NgIf, AsyncPipe } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Inject, Input, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, combineLatest, distinctUntilChanged, map, tap, } from 'rxjs';
|
|
4
|
-
import { IconComponent } from '../../icon/icon.component';
|
|
5
|
-
import { ComponentSize } from '../../types';
|
|
6
|
-
import { buildBem, coerceAttrBoolean, publishRef } from '../../utils';
|
|
7
|
-
import { BaseSelect } from '../base-select';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../base-select";
|
|
10
|
-
export class OptionComponent {
|
|
11
|
-
cdr;
|
|
12
|
-
bem = buildBem('aui-option');
|
|
13
|
-
_disabled = false;
|
|
14
|
-
_label = '';
|
|
15
|
-
_labelContext = {};
|
|
16
|
-
_value;
|
|
17
|
-
label$$ = new BehaviorSubject(this.label);
|
|
18
|
-
labelContext$$ = new BehaviorSubject(this.labelContext);
|
|
19
|
-
value$$ = new BehaviorSubject(this.value);
|
|
20
|
-
disabled$$ = new BehaviorSubject(this.disabled);
|
|
21
|
-
get label() {
|
|
22
|
-
return this._label;
|
|
23
|
-
}
|
|
24
|
-
set label(val) {
|
|
25
|
-
this._label = val;
|
|
26
|
-
this.label$$.next(val);
|
|
27
|
-
}
|
|
28
|
-
get labelContext() {
|
|
29
|
-
return this._labelContext;
|
|
30
|
-
}
|
|
31
|
-
set labelContext(val) {
|
|
32
|
-
this._labelContext = val;
|
|
33
|
-
this.labelContext$$.next(val);
|
|
34
|
-
}
|
|
35
|
-
get value() {
|
|
36
|
-
return this._value;
|
|
37
|
-
}
|
|
38
|
-
set value(val) {
|
|
39
|
-
this._value = val;
|
|
40
|
-
this.value$$.next(val);
|
|
41
|
-
}
|
|
42
|
-
get disabled() {
|
|
43
|
-
return this._disabled;
|
|
44
|
-
}
|
|
45
|
-
set disabled(val) {
|
|
46
|
-
this._disabled = coerceAttrBoolean(val);
|
|
47
|
-
this.disabled$$.next(this._disabled);
|
|
48
|
-
}
|
|
49
|
-
isMulti = false;
|
|
50
|
-
elRef;
|
|
51
|
-
select;
|
|
52
|
-
selected = false;
|
|
53
|
-
visible = true;
|
|
54
|
-
size = ComponentSize.Medium;
|
|
55
|
-
focused = false;
|
|
56
|
-
value$ = this.value$$.asObservable();
|
|
57
|
-
label$ = this.label$$.asObservable();
|
|
58
|
-
labelContext$ = this.labelContext$$.asObservable();
|
|
59
|
-
disabled$ = this.disabled$$.asObservable();
|
|
60
|
-
selected$;
|
|
61
|
-
size$;
|
|
62
|
-
visible$;
|
|
63
|
-
constructor(cdr, select) {
|
|
64
|
-
this.cdr = cdr;
|
|
65
|
-
this.isMulti = select.isMulti;
|
|
66
|
-
this.select = select;
|
|
67
|
-
this.selected$ = combineLatest([this.select.values$, this.value$$]).pipe(map(([selectValue, selfValue]) => selectValue
|
|
68
|
-
?.map(this.select.trackFn)
|
|
69
|
-
.includes(this.select.trackFn(selfValue))), distinctUntilChanged(), tap(selected => {
|
|
70
|
-
this.selected = selected;
|
|
71
|
-
}), publishRef());
|
|
72
|
-
this.size$ = this.select.size$.pipe(tap(size => {
|
|
73
|
-
this.size = size;
|
|
74
|
-
}));
|
|
75
|
-
this.visible$ = combineLatest([
|
|
76
|
-
this.select.filterString$,
|
|
77
|
-
combineLatest([this.label$, this.value$, this.labelContext$]).pipe(map(([label, value, labelContext]) => ({ label, value, labelContext }))),
|
|
78
|
-
]).pipe(map(([filterString, option]) => this.select.filterFn(filterString, option)), distinctUntilChanged(), tap(visible => {
|
|
79
|
-
this.visible = visible;
|
|
80
|
-
}), publishRef());
|
|
81
|
-
}
|
|
82
|
-
onClick() {
|
|
83
|
-
if (this.disabled) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.select.onOptionClick(this);
|
|
87
|
-
}
|
|
88
|
-
focus() {
|
|
89
|
-
if (this.disabled) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
this.focused = true;
|
|
93
|
-
this.cdr.markForCheck();
|
|
94
|
-
}
|
|
95
|
-
blur() {
|
|
96
|
-
this.focused = false;
|
|
97
|
-
this.cdr.markForCheck();
|
|
98
|
-
}
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: OptionComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: forwardRef(() => BaseSelect) }], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: OptionComponent, isStandalone: true, selector: "aui-option", inputs: { label: "label", labelContext: "labelContext", value: "value", disabled: "disabled" }, viewQueries: [{ propertyName: "elRef", first: true, predicate: ["elRef"], descendants: true, static: true }], ngImport: i0, template: "<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isMulti]=\"isMulti\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <i\n *ngIf=\"isMulti\"\n class=\"aui-option__pointer\"\n >\n <aui-icon\n [hidden]=\"!(selected$ | async)\"\n icon=\"check\"\n ></aui-icon>\n </i>\n <ng-content></ng-content>\n</div>\n", styles: [".aui-option{padding:0 var(--aui-inline-padding-xs);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.aui-option--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-option--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-option:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-option:hover,.aui-option.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-option.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-option__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-option.cdk-keyboard-focused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-option.isSelected .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-option.isIndeterminate .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-option.isIndeterminate .aui-option__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-option.isSelected.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-option.isDisabled .aui-option__label{cursor:not-allowed}.aui-option.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-option:not(.isDisabled):hover .aui-option__pointer,.aui-option:not(.isDisabled).isFocused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}.aui-option__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "aui-icon", inputs: ["icon", "light", "dark", "link", "margin", "size", "color", "background", "backgroundColor"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
101
|
-
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: OptionComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ selector: 'aui-option', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, imports: [NgIf, IconComponent, AsyncPipe], template: "<div\n #elRef\n [hidden]=\"!(visible$ | async)\"\n [class]=\"bem.block(size$ | async)\"\n [class.isDisabled]=\"disabled\"\n [class.isSelected]=\"selected$ | async\"\n [class.isMulti]=\"isMulti\"\n [class.isFocused]=\"focused\"\n (click)=\"onClick()\"\n>\n <i\n *ngIf=\"isMulti\"\n class=\"aui-option__pointer\"\n >\n <aui-icon\n [hidden]=\"!(selected$ | async)\"\n icon=\"check\"\n ></aui-icon>\n </i>\n <ng-content></ng-content>\n</div>\n", styles: [".aui-option{padding:0 var(--aui-inline-padding-xs);color:rgb(var(--aui-color-main-text));font-weight:var(--aui-font-weight-normal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.aui-option--large{padding:calc((var(--aui-inline-height-l) - var(--aui-line-height-l)) / 2);line-height:var(--aui-line-height-l);font-size:var(--aui-font-size-l)}.aui-option--medium{padding:calc((var(--aui-inline-height-m) - var(--aui-line-height-m)) / 2);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--small{padding:calc((var(--aui-inline-height-s) - var(--aui-line-height-m)) / 2);line-height:var(--aui-line-height-m);font-size:var(--aui-font-size-m)}.aui-option--mini{padding:calc((var(--aui-inline-height-xs) - var(--aui-line-height-s)) / 2);line-height:var(--aui-line-height-s);font-size:var(--aui-font-size-s)}.aui-option:not(.isMulti).isSelected{color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-p-6))}.aui-option:hover,.aui-option.isFocused{background-color:rgb(var(--aui-color-p-6))}.aui-option.isDisabled{color:rgb(var(--aui-color-n-6));cursor:not-allowed}.aui-option__pointer{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:var(--aui-icon-size-m);height:var(--aui-icon-size-m);margin-right:var(--aui-spacing-m);border-radius:var(--aui-border-radius-m);border:1px solid rgb(var(--aui-color-n-7));color:#fff;background-color:rgb(var(--aui-color-main-bg));position:relative;vertical-align:middle;transition:all .3s ease}.aui-option.cdk-keyboard-focused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}:root .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}html[aui-theme-mode=light] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}}html[aui-theme-mode=dark] .aui-option.cdk-keyboard-focused .aui-option__pointer{box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.3)}.aui-option.isSelected .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-primary))}.aui-option.isIndeterminate .aui-option__pointer{border-color:rgb(var(--aui-color-primary));background-color:rgb(var(--aui-color-main-bg))}.aui-option.isIndeterminate .aui-option__pointer:before{content:\"\";display:block;width:8px;height:8px;border-radius:1px;background-color:rgb(var(--aui-color-primary))}.aui-option.isSelected.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-p-4));background-color:rgb(var(--aui-color-p-4))}.aui-option.isDisabled .aui-option__label{cursor:not-allowed}.aui-option.isDisabled .aui-option__pointer{border-color:rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-8))}.aui-option:not(.isDisabled):hover .aui-option__pointer,.aui-option:not(.isDisabled).isFocused .aui-option__pointer{border-color:rgb(var(--aui-color-primary))}.aui-option__divider{display:block;width:100%;height:1px;background-color:rgb(var(--aui-color-divider))}\n"] }]
|
|
105
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.BaseSelect, decorators: [{
|
|
106
|
-
type: Inject,
|
|
107
|
-
args: [forwardRef(() => BaseSelect)]
|
|
108
|
-
}] }]; }, propDecorators: { label: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], labelContext: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], value: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], disabled: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}], elRef: [{
|
|
117
|
-
type: ViewChild,
|
|
118
|
-
args: ['elRef', { static: true }]
|
|
119
|
-
}] } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZWxlY3Qvb3B0aW9uL29wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvc2VsZWN0L29wdGlvbi9vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBRWYsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFPLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFZNUMsTUFBTSxPQUFPLGVBQWU7SUE0RVA7SUEzRW5CLEdBQUcsR0FBUSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFMUIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixNQUFNLEdBQWtDLEVBQUUsQ0FBQztJQUMzQyxhQUFhLEdBQVksRUFBRSxDQUFDO0lBQzVCLE1BQU0sQ0FBSTtJQUNELE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUMsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENB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QyxRQUFRLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt1R0F0SVUsZUFBZSxtREE2RWhCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7MkZBN0UzQixlQUFlLG9SQ3JDNUIsMmRBcUJBLDBzR0RjWSxJQUFJLDZGQUFFLGFBQWEsdUpBQUUsU0FBUzs7MkZBRTdCLGVBQWU7a0JBVjNCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLGNBQ2QsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUM7OzBCQStFdEMsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDOzRDQTdEbEMsS0FBSztzQkFEUixLQUFLO2dCQVdGLFlBQVk7c0JBRGYsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQWFOLEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCZW0sIGJ1aWxkQmVtLCBjb2VyY2VBdHRyQm9vbGVhbiwgcHVibGlzaFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEJhc2VTZWxlY3QgfSBmcm9tICcuLi9iYXNlLXNlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIEljb25Db21wb25lbnQsIEFzeW5jUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvbkNvbXBvbmVudDxUPiB7XG4gIGJlbTogQmVtID0gYnVpbGRCZW0oJ2F1aS1vcHRpb24nKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9sYWJlbDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gPSAnJztcbiAgcHJpdmF0ZSBfbGFiZWxDb250ZXh0OiB1bmtub3duID0ge307XG4gIHByaXZhdGUgX3ZhbHVlOiBUO1xuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubGFiZWwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGFiZWxDb250ZXh0JCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubGFiZWxDb250ZXh0KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudmFsdWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzYWJsZWQkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5kaXNhYmxlZCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbDtcbiAgfVxuXG4gIHNldCBsYWJlbCh2YWwpIHtcbiAgICB0aGlzLl9sYWJlbCA9IHZhbDtcbiAgICB0aGlzLmxhYmVsJCQubmV4dCh2YWwpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxhYmVsQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxDb250ZXh0O1xuICB9XG5cbiAgc2V0IGxhYmVsQ29udGV4dCh2YWwpIHtcbiAgICB0aGlzLl9sYWJlbENvbnRleHQgPSB2YWw7XG4gICAgdGhpcy5sYWJlbENvbnRleHQkJC5uZXh0KHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbCkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgIHRoaXMudmFsdWUkJC5uZXh0KHZhbCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VBdHRyQm9vbGVhbih2YWwpO1xuICAgIHRoaXMuZGlzYWJsZWQkJC5uZXh0KHRoaXMuX2Rpc2FibGVkKTtcbiAgfVxuXG4gIGlzTXVsdGkgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdlbFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdDogQmFzZVNlbGVjdDxUPjtcbiAgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgdmlzaWJsZSA9IHRydWU7XG4gIHNpemU6IENvbXBvbmVudFNpemUgPSBDb21wb25lbnRTaXplLk1lZGl1bTtcbiAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gIHZhbHVlJCA9IHRoaXMudmFsdWUkJC5hc09ic2VydmFibGUoKTtcbiAgbGFiZWwkID0gdGhpcy5sYWJlbCQkLmFzT2JzZXJ2YWJsZSgpO1xuICBsYWJlbENvbnRleHQkID0gdGhpcy5sYWJlbENvbnRleHQkJC5hc09ic2VydmFibGUoKTtcbiAgZGlzYWJsZWQkID0gdGhpcy5kaXNhYmxlZCQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2l6ZSQ6IE9ic2VydmFibGU8Q29tcG9uZW50U2l6ZT47XG4gIHZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQmFzZVNlbGVjdCkpXG4gICAgc2VsZWN0OiBCYXNlU2VsZWN0PFQ+LFxuICApIHtcbiAgICB0aGlzLmlzTXVsdGkgPSBzZWxlY3QuaXNNdWx0aTtcbiAgICB0aGlzLnNlbGVjdCA9IHNlbGVjdDtcbiAgICB0aGlzLnNlbGVjdGVkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0LnZhbHVlcyQsIHRoaXMudmFsdWUkJF0pLnBpcGUoXG4gICAgICBtYXAoKFtzZWxlY3RWYWx1ZSwgc2VsZlZhbHVlXSkgPT5cbiAgICAgICAgc2VsZWN0VmFsdWVcbiAgICAgICAgICA/Lm1hcCh0aGlzLnNlbGVjdC50cmFja0ZuKVxuICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnNlbGVjdC50cmFja0ZuKHNlbGZWYWx1ZSkpLFxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YXAoc2VsZWN0ZWQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICB9KSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICAgIHRoaXMuc2l6ZSQgPSB0aGlzLnNlbGVjdC5zaXplJC5waXBlKFxuICAgICAgdGFwKHNpemUgPT4ge1xuICAgICAgICB0aGlzLnNpemUgPSBzaXplO1xuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLnZpc2libGUkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNlbGVjdC5maWx0ZXJTdHJpbmckLFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5sYWJlbCQsIHRoaXMudmFsdWUkLCB0aGlzLmxhYmVsQ29udGV4dCRdKS5waXBlKFxuICAgICAgICBtYXAoKFtsYWJlbCwgdmFsdWUsIGxhYmVsQ29udGV4dF0pID0+ICh7IGxhYmVsLCB2YWx1ZSwgbGFiZWxDb250ZXh0IH0pKSxcbiAgICAgICksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlclN0cmluZywgb3B0aW9uXSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3QuZmlsdGVyRm4oZmlsdGVyU3RyaW5nLCBvcHRpb24pLFxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YXAodmlzaWJsZSA9PiB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7XG4gICAgICB9KSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdC5vbk9wdGlvbkNsaWNrKHRoaXMpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGJsdXIoKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2VsUmVmXG4gIFtoaWRkZW5dPVwiISh2aXNpYmxlJCB8IGFzeW5jKVwiXG4gIFtjbGFzc109XCJiZW0uYmxvY2soc2l6ZSQgfCBhc3luYylcIlxuICBbY2xhc3MuaXNEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5pc1NlbGVjdGVkXT1cInNlbGVjdGVkJCB8IGFzeW5jXCJcbiAgW2NsYXNzLmlzTXVsdGldPVwiaXNNdWx0aVwiXG4gIFtjbGFzcy5pc0ZvY3VzZWRdPVwiZm9jdXNlZFwiXG4gIChjbGljayk9XCJvbkNsaWNrKClcIlxuPlxuICA8aVxuICAgICpuZ0lmPVwiaXNNdWx0aVwiXG4gICAgY2xhc3M9XCJhdWktb3B0aW9uX19wb2ludGVyXCJcbiAgPlxuICAgIDxhdWktaWNvblxuICAgICAgW2hpZGRlbl09XCIhKHNlbGVjdGVkJCB8IGFzeW5jKVwiXG4gICAgICBpY29uPVwiY2hlY2tcIlxuICAgID48L2F1aS1pY29uPlxuICA8L2k+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ElementRef, TemplateRef } from '@angular/core';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { ComponentSize } from '../../types';
|
|
4
|
-
import { Bem } from '../../utils';
|
|
5
|
-
import { BaseSelect } from '../base-select';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class OptionComponent<T> {
|
|
8
|
-
private readonly cdr;
|
|
9
|
-
bem: Bem;
|
|
10
|
-
private _disabled;
|
|
11
|
-
private _label;
|
|
12
|
-
private _labelContext;
|
|
13
|
-
private _value;
|
|
14
|
-
private readonly label$$;
|
|
15
|
-
private readonly labelContext$$;
|
|
16
|
-
private readonly value$$;
|
|
17
|
-
private readonly disabled$$;
|
|
18
|
-
get label(): string | TemplateRef<unknown>;
|
|
19
|
-
set label(val: string | TemplateRef<unknown>);
|
|
20
|
-
get labelContext(): unknown;
|
|
21
|
-
set labelContext(val: unknown);
|
|
22
|
-
get value(): T;
|
|
23
|
-
set value(val: T);
|
|
24
|
-
get disabled(): boolean;
|
|
25
|
-
set disabled(val: boolean | '');
|
|
26
|
-
isMulti: boolean;
|
|
27
|
-
elRef: ElementRef<HTMLDivElement>;
|
|
28
|
-
private readonly select;
|
|
29
|
-
selected: boolean;
|
|
30
|
-
visible: boolean;
|
|
31
|
-
size: ComponentSize;
|
|
32
|
-
focused: boolean;
|
|
33
|
-
value$: Observable<T>;
|
|
34
|
-
label$: Observable<string | TemplateRef<unknown>>;
|
|
35
|
-
labelContext$: Observable<unknown>;
|
|
36
|
-
disabled$: Observable<boolean>;
|
|
37
|
-
selected$: Observable<boolean>;
|
|
38
|
-
size$: Observable<ComponentSize>;
|
|
39
|
-
visible$: Observable<boolean>;
|
|
40
|
-
constructor(cdr: ChangeDetectorRef, select: BaseSelect<T>);
|
|
41
|
-
onClick(): void;
|
|
42
|
-
focus(): void;
|
|
43
|
-
blur(): void;
|
|
44
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<OptionComponent<any>, never>;
|
|
45
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<OptionComponent<any>, "aui-option", never, { "label": { "alias": "label"; "required": false; }; "labelContext": { "alias": "labelContext"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
46
|
-
}
|