@taiga-ui/core 4.31.0 → 4.32.0-canary.5a34d15
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/components/data-list/data-list.tokens.d.ts +6 -0
- package/components/data-list/option/option-content.d.ts +8 -0
- package/components/fullscreen/fullscreen.component.d.ts +14 -0
- package/components/fullscreen/index.d.ts +1 -0
- package/components/index.d.ts +1 -0
- package/components/root/root.component.d.ts +6 -2
- package/components/textfield/index.d.ts +1 -0
- package/components/textfield/select-like.directive.d.ts +2 -0
- package/components/textfield/textfield-accessor.d.ts +6 -0
- package/components/textfield/textfield-auxiliary.d.ts +1 -1
- package/components/textfield/textfield.component.d.ts +13 -11
- package/components/textfield/textfield.directive.d.ts +4 -1
- package/directives/dropdown/dropdown-open.directive.d.ts +3 -2
- package/directives/index.d.ts +1 -0
- package/directives/items-handlers/index.d.ts +2 -0
- package/directives/items-handlers/items-handlers.directive.d.ts +18 -0
- package/directives/items-handlers/items-handlers.tokens.d.ts +13 -0
- package/directives/popup/index.d.ts +1 -0
- package/directives/popup/popups.component.d.ts +6 -0
- package/esm2022/components/data-list/data-list.component.mjs +19 -4
- package/esm2022/components/data-list/data-list.tokens.mjs +1 -1
- package/esm2022/components/data-list/option/option-content.mjs +26 -1
- package/esm2022/components/dialog/dialog-close.service.mjs +7 -4
- package/esm2022/components/dialog/dialog.component.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +67 -0
- package/esm2022/components/fullscreen/index.mjs +2 -0
- package/esm2022/components/fullscreen/taiga-ui-core-components-fullscreen.mjs +5 -0
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/link/link.directive.mjs +2 -2
- package/esm2022/components/root/root.component.mjs +32 -12
- package/esm2022/components/textfield/index.mjs +2 -1
- package/esm2022/components/textfield/select-like.directive.mjs +18 -3
- package/esm2022/components/textfield/select.directive.mjs +6 -6
- package/esm2022/components/textfield/textfield-accessor.mjs +6 -0
- package/esm2022/components/textfield/textfield-auxiliary.mjs +1 -1
- package/esm2022/components/textfield/textfield.component.mjs +29 -27
- package/esm2022/components/textfield/textfield.directive.mjs +7 -3
- package/esm2022/directives/appearance/appearance.directive.mjs +2 -2
- package/esm2022/directives/dropdown/dropdown-open.directive.mjs +16 -9
- package/esm2022/directives/dropdown/dropdown.directive.mjs +7 -2
- package/esm2022/directives/hint/hint.component.mjs +4 -4
- package/esm2022/directives/index.mjs +2 -1
- package/esm2022/directives/items-handlers/index.mjs +3 -0
- package/esm2022/directives/items-handlers/items-handlers.directive.mjs +63 -0
- package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +26 -0
- package/esm2022/directives/items-handlers/taiga-ui-core-directives-items-handlers.mjs +5 -0
- package/esm2022/directives/popup/index.mjs +2 -1
- package/esm2022/directives/popup/popups.component.mjs +20 -0
- package/fesm2022/taiga-ui-core-components-data-list.mjs +41 -5
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-dialog.mjs +8 -5
- package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-fullscreen.mjs +73 -0
- package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +31 -11
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +58 -36
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components.mjs +1 -0
- package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +2 -2
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +20 -8
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-hint.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +91 -0
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-directives-popup.mjs +18 -3
- package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives.mjs +1 -0
- package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
- package/package.json +16 -4
- package/styles/components/appearance.less +1 -1
- package/styles/components/link.less +14 -2
- package/styles/components/textfield.less +80 -29
- package/styles/theme/appearance/table.less +1 -1
- package/styles/theme/palette.less +2 -2
|
@@ -7,7 +7,13 @@ export interface TuiDataListAccessor<T = unknown> {
|
|
|
7
7
|
export interface TuiDataListHost<T> {
|
|
8
8
|
checkOption?(option: T): void;
|
|
9
9
|
handleOption?(option: T): void;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use `inject(TuiItemsHandlersDirective<T>).identityMatcher` instead
|
|
12
|
+
*/
|
|
10
13
|
readonly identityMatcher?: TuiIdentityMatcher<T>;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use `inject(TuiItemsHandlersDirective<T>).stringify` instead
|
|
16
|
+
*/
|
|
11
17
|
readonly stringify?: TuiStringHandler<T>;
|
|
12
18
|
readonly size?: TuiSizeL | TuiSizeS;
|
|
13
19
|
}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { Provider, TemplateRef, Type } from '@angular/core';
|
|
2
2
|
import type { TuiContext } from '@taiga-ui/cdk/types';
|
|
3
3
|
import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Content for tuiOption component
|
|
6
7
|
*/
|
|
7
8
|
export declare const TUI_OPTION_CONTENT: import("@angular/core").InjectionToken<PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> | Type<any>>;
|
|
8
9
|
export declare function tuiAsOptionContent(useValue: PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> | Type<any>): Provider;
|
|
10
|
+
export declare class TuiWithOptionContent {
|
|
11
|
+
protected readonly localContent: Type<any> | null;
|
|
12
|
+
protected readonly globalContent: Type<any> | null;
|
|
13
|
+
get content(): Type<any> | null;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiWithOptionContent, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWithOptionContent, never, never, {}, {}, ["localContent"], never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class TuiFullscreen {
|
|
4
|
+
private readonly root?;
|
|
5
|
+
private readonly doc;
|
|
6
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
7
|
+
readonly opened: EventEmitter<boolean>;
|
|
8
|
+
options?: FullscreenOptions;
|
|
9
|
+
set fullscreen(open: boolean);
|
|
10
|
+
protected closedByEscape(event: Event): void;
|
|
11
|
+
private fullscreenState;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiFullscreen, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiFullscreen, "[tuiFullscreen]", never, { "options": { "alias": "tuiFullscreenOptions"; "required": false; }; "fullscreen": { "alias": "tuiFullscreen"; "required": false; }; }, { "opened": "tuiFullscreenChange"; }, never, ["*"], true, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fullscreen.component';
|
package/components/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from '@taiga-ui/core/components/data-list';
|
|
|
5
5
|
export * from '@taiga-ui/core/components/dialog';
|
|
6
6
|
export * from '@taiga-ui/core/components/error';
|
|
7
7
|
export * from '@taiga-ui/core/components/expand';
|
|
8
|
+
export * from '@taiga-ui/core/components/fullscreen';
|
|
8
9
|
export * from '@taiga-ui/core/components/icon';
|
|
9
10
|
export * from '@taiga-ui/core/components/label';
|
|
10
11
|
export * from '@taiga-ui/core/components/link';
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import { TuiPortals } from '@taiga-ui/cdk/classes';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
import * as i1 from "@taiga-ui/cdk/directives/platform";
|
|
4
3
|
import * as i2 from "@taiga-ui/cdk/directives/visual-viewport";
|
|
5
4
|
import * as i3 from "@taiga-ui/cdk/directives/font-size";
|
|
6
|
-
export declare class TuiRoot
|
|
5
|
+
export declare class TuiRoot {
|
|
6
|
+
private readonly doc;
|
|
7
|
+
private readonly el;
|
|
7
8
|
protected readonly reducedMotion: boolean;
|
|
8
9
|
protected readonly duration: number;
|
|
10
|
+
protected readonly isChildRoot: boolean;
|
|
11
|
+
protected readonly top: import("@angular/core").WritableSignal<boolean>;
|
|
9
12
|
protected readonly isMobileRes: import("@angular/core").Signal<boolean>;
|
|
10
13
|
protected readonly nativeScrollbar: boolean;
|
|
11
14
|
protected readonly scrollbars: boolean;
|
|
12
15
|
constructor();
|
|
16
|
+
protected get isTopLayer(): boolean;
|
|
13
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiRoot, never>;
|
|
14
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<TuiRoot, "tui-root", never, {}, {}, never, ["*", "tuiOverContent", "tuiOverDialogs", "tuiOverAlerts", "tuiOverDropdowns", "tuiOverHints"], true, [{ directive: typeof i1.TuiPlatform; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiVisualViewport; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiFontSize; inputs: {}; outputs: {}; }]>;
|
|
15
19
|
}
|
|
@@ -3,6 +3,7 @@ export * from './textfield';
|
|
|
3
3
|
export * from './textfield.component';
|
|
4
4
|
export * from './textfield.directive';
|
|
5
5
|
export * from './textfield.options';
|
|
6
|
+
export * from './textfield-accessor';
|
|
6
7
|
export * from './textfield-auxiliary';
|
|
7
8
|
export * from './textfield-content.directive';
|
|
8
9
|
export * from './textfield-dropdown.directive';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class TuiSelectLike {
|
|
3
|
+
private readonly isAndroid;
|
|
3
4
|
protected clear(element: HTMLInputElement): void;
|
|
5
|
+
protected prevent(event: MouseEvent, element: HTMLInputElement): void;
|
|
4
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelectLike, never>;
|
|
5
7
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiSelectLike, never, never, {}, {}, never, never, true, never>;
|
|
6
8
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Provider, Type } from '@angular/core';
|
|
2
|
+
export interface TuiTextfieldAccessor<T = unknown> {
|
|
3
|
+
setValue(value: T | null): void;
|
|
4
|
+
}
|
|
5
|
+
export declare const TUI_TEXTFIELD_ACCESSOR: import("@angular/core").InjectionToken<TuiTextfieldAccessor<unknown>>;
|
|
6
|
+
export declare function tuiAsTextfieldAccessor(accessor: Type<TuiTextfieldAccessor>): Provider;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Provider, Signal, Type } from '@angular/core';
|
|
2
2
|
export declare const TUI_AUXILIARY: import("@angular/core").InjectionToken<null>;
|
|
3
3
|
export declare function tuiAsAuxiliary(x: Type<unknown>): Provider;
|
|
4
|
-
export declare function tuiInjectAuxiliary<T>(predicate: (auxiliary:
|
|
4
|
+
export declare function tuiInjectAuxiliary<T>(predicate: (auxiliary: any, index: number) => boolean): Signal<T | null>;
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import type { AfterContentInit, QueryList
|
|
1
|
+
import type { AfterContentInit, QueryList } from '@angular/core';
|
|
2
2
|
import { ElementRef, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { NgControl } from '@angular/forms';
|
|
4
|
-
import type { TuiContext
|
|
4
|
+
import type { TuiContext } from '@taiga-ui/cdk/types';
|
|
5
5
|
import type { TuiDataListHost } from '@taiga-ui/core/components/data-list';
|
|
6
6
|
import type { TuiSizeL, TuiSizeS } from '@taiga-ui/core/types';
|
|
7
7
|
import type { PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
8
|
-
import {
|
|
8
|
+
import type { TuiTextfieldAccessor } from './textfield-accessor';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@taiga-ui/core/directives/dropdown";
|
|
11
|
-
import * as i2 from "
|
|
12
|
-
import * as i3 from "@taiga-ui/core/directives/
|
|
11
|
+
import * as i2 from "@taiga-ui/core/directives/icons";
|
|
12
|
+
import * as i3 from "@taiga-ui/core/directives/items-handlers";
|
|
13
|
+
import * as i4 from "@taiga-ui/core/components/data-list";
|
|
14
|
+
import * as i5 from "./textfield-dropdown.directive";
|
|
13
15
|
export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, AfterContentInit {
|
|
14
16
|
private readonly filler;
|
|
15
17
|
private readonly autoId;
|
|
16
18
|
private readonly open;
|
|
17
19
|
private readonly focusedIn;
|
|
18
|
-
private readonly
|
|
20
|
+
private readonly contentReady$;
|
|
19
21
|
protected readonly label?: ElementRef<HTMLElement>;
|
|
20
22
|
protected readonly control?: NgControl;
|
|
21
|
-
protected readonly auxiliaryQuery: QueryList<
|
|
23
|
+
protected readonly auxiliaryQuery: QueryList<object>;
|
|
22
24
|
protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
|
|
23
25
|
protected readonly clear: import("@angular/core").Signal<string | undefined>;
|
|
24
26
|
protected computedFiller: import("@angular/core").Signal<string>;
|
|
25
27
|
protected showFiller: import("@angular/core").Signal<boolean>;
|
|
26
28
|
readonly vcr?: ViewContainerRef;
|
|
27
|
-
readonly
|
|
29
|
+
readonly accessor?: TuiTextfieldAccessor<T>;
|
|
28
30
|
readonly input?: ElementRef<HTMLInputElement>;
|
|
29
|
-
stringify: TuiStringHandler<T>;
|
|
30
31
|
content: PolymorpheusContent<TuiContext<T>>;
|
|
31
32
|
readonly focused: import("@angular/core").Signal<boolean>;
|
|
32
33
|
readonly options: import("./textfield.options").TuiTextfieldOptions;
|
|
33
34
|
readonly el: HTMLElement;
|
|
34
|
-
readonly
|
|
35
|
+
readonly value: import("@angular/core").Signal<string>;
|
|
36
|
+
readonly auxiliaries: import("@angular/core").Signal<readonly object[]>;
|
|
35
37
|
set fillerSetter(filler: string);
|
|
36
38
|
get id(): string;
|
|
37
39
|
get size(): TuiSizeL | TuiSizeS;
|
|
@@ -40,5 +42,5 @@ export declare class TuiTextfieldComponent<T> implements TuiDataListHost<T>, Aft
|
|
|
40
42
|
protected get hasLabel(): boolean;
|
|
41
43
|
protected onResize({ contentRect }: ResizeObserverEntry): void;
|
|
42
44
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldComponent<any>, never>;
|
|
43
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield", never, { "
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextfieldComponent<any>, "tui-textfield", never, { "content": { "alias": "content"; "required": false; }; "fillerSetter": { "alias": "filler"; "required": false; }; }, {}, ["label", "control", "accessor", "input", "auxiliaryQuery"], ["input", "select", "textarea", "label", "*", "tui-icon"], true, [{ directive: typeof i1.TuiDropdownDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiDropdownFixed; inputs: {}; outputs: {}; }, { directive: typeof i1.TuiWithDropdownOpen; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiWithIcons; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiWithItemsHandlers; inputs: {}; outputs: {}; }, { directive: typeof i4.TuiWithOptionContent; inputs: {}; outputs: {}; }, { directive: typeof i5.TuiWithTextfieldDropdown; inputs: {}; outputs: {}; }]>;
|
|
44
46
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { OnChanges } from '@angular/core';
|
|
2
2
|
import { NgControl } from '@angular/forms';
|
|
3
|
+
import type { TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
|
|
3
4
|
import type { TuiInteractiveState } from '@taiga-ui/core/types';
|
|
4
5
|
import { TuiTextfieldComponent } from './textfield.component';
|
|
6
|
+
import type { TuiTextfieldAccessor } from './textfield-accessor';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "@taiga-ui/cdk/directives/native-validator";
|
|
7
9
|
import * as i2 from "@taiga-ui/core/directives/appearance";
|
|
8
|
-
export declare class TuiTextfieldBase<T> implements OnChanges {
|
|
10
|
+
export declare class TuiTextfieldBase<T> implements OnChanges, TuiTextfieldAccessor<T> {
|
|
9
11
|
private readonly focused;
|
|
10
12
|
protected readonly control: NgControl | null;
|
|
11
13
|
protected readonly a: import("@angular/core").WritableSignal<string>;
|
|
@@ -13,6 +15,7 @@ export declare class TuiTextfieldBase<T> implements OnChanges {
|
|
|
13
15
|
protected readonly m: import("@angular/core").WritableSignal<string | readonly string[] | null>;
|
|
14
16
|
protected readonly f: import("@angular/core").Signal<boolean | null>;
|
|
15
17
|
protected readonly el: HTMLInputElement;
|
|
18
|
+
protected readonly itemsHandlers: TuiItemsHandlers<T>;
|
|
16
19
|
protected readonly textfield: TuiTextfieldComponent<T>;
|
|
17
20
|
readOnly: boolean;
|
|
18
21
|
invalid: boolean | null;
|
|
@@ -9,15 +9,16 @@ export declare class TuiDropdownOpen implements OnChanges {
|
|
|
9
9
|
private readonly directive;
|
|
10
10
|
private readonly el;
|
|
11
11
|
private readonly obscured;
|
|
12
|
+
private readonly activeZone;
|
|
12
13
|
private readonly dropdown;
|
|
13
|
-
protected readonly sub: import("rxjs").Subscription;
|
|
14
14
|
tuiDropdownEnabled: boolean;
|
|
15
15
|
tuiDropdownOpen: boolean | '';
|
|
16
16
|
readonly tuiDropdownOpenChange: EventEmitter<boolean>;
|
|
17
17
|
readonly driver: TuiDropdownDriver;
|
|
18
|
+
readonly sub: import("rxjs").Subscription;
|
|
18
19
|
ngOnChanges(): void;
|
|
19
20
|
toggle(open: boolean): void;
|
|
20
|
-
protected onEsc(event:
|
|
21
|
+
protected onEsc(event: KeyboardEvent): void;
|
|
21
22
|
protected onClick(target: HTMLElement): void;
|
|
22
23
|
protected onArrow(event: KeyboardEvent, up: boolean): void;
|
|
23
24
|
protected onKeydown({ key, target, defaultPrevented }: KeyboardEvent): void;
|
package/directives/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from '@taiga-ui/core/directives/dropdown';
|
|
|
4
4
|
export * from '@taiga-ui/core/directives/group';
|
|
5
5
|
export * from '@taiga-ui/core/directives/hint';
|
|
6
6
|
export * from '@taiga-ui/core/directives/icons';
|
|
7
|
+
export * from '@taiga-ui/core/directives/items-handlers';
|
|
7
8
|
export * from '@taiga-ui/core/directives/number-format';
|
|
8
9
|
export * from '@taiga-ui/core/directives/popup';
|
|
9
10
|
export * from '@taiga-ui/core/directives/surface';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TuiBooleanHandler, TuiIdentityMatcher, TuiStringHandler } from '@taiga-ui/cdk/types';
|
|
2
|
+
import type { TuiItemsHandlers } from './items-handlers.tokens';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TuiItemsHandlersDirective<T> implements TuiItemsHandlers<T> {
|
|
5
|
+
private readonly defaultHandlers;
|
|
6
|
+
readonly stringify: import("@angular/core").WritableSignal<TuiStringHandler<T>>;
|
|
7
|
+
readonly identityMatcher: import("@angular/core").WritableSignal<TuiIdentityMatcher<T>>;
|
|
8
|
+
readonly disabledItemHandler: import("@angular/core").WritableSignal<TuiBooleanHandler<T>>;
|
|
9
|
+
set stringifySetter(x: TuiStringHandler<T>);
|
|
10
|
+
set identityMatcherSetter(x: TuiIdentityMatcher<T>);
|
|
11
|
+
set disabledItemHandlerSetter(x: TuiBooleanHandler<T>);
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiItemsHandlersDirective<any>, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiItemsHandlersDirective<any>, never, never, { "stringifySetter": { "alias": "stringify"; "required": false; }; "identityMatcherSetter": { "alias": "identityMatcher"; "required": false; }; "disabledItemHandlerSetter": { "alias": "disabledItemHandler"; "required": false; }; }, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
15
|
+
export declare class TuiWithItemsHandlers {
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiWithItemsHandlers, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWithItemsHandlers, never, never, {}, {}, never, never, true, [{ directive: typeof TuiItemsHandlersDirective; inputs: { "stringify": "stringify"; "identityMatcher": "identityMatcher"; "disabledItemHandler": "disabledItemHandler"; }; outputs: {}; }]>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Provider, WritableSignal } from '@angular/core';
|
|
2
|
+
import type { TuiBooleanHandler, TuiIdentityMatcher, TuiStringHandler } from '@taiga-ui/cdk/types';
|
|
3
|
+
export interface TuiItemsHandlers<T> {
|
|
4
|
+
readonly disabledItemHandler: WritableSignal<TuiBooleanHandler<T>>;
|
|
5
|
+
readonly identityMatcher: WritableSignal<TuiIdentityMatcher<T>>;
|
|
6
|
+
readonly stringify: WritableSignal<TuiStringHandler<T>>;
|
|
7
|
+
}
|
|
8
|
+
export declare const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Default items handlers for components
|
|
11
|
+
*/
|
|
12
|
+
export declare const TUI_ITEMS_HANDLERS: import("@angular/core").InjectionToken<TuiItemsHandlers<unknown>>;
|
|
13
|
+
export declare function tuiItemsHandlersProvider<T>(options: Partial<TuiItemsHandlers<T>>): Provider;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TuiPortals } from '@taiga-ui/cdk/classes';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class TuiPopups extends TuiPortals {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiPopups, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TuiPopups, "tui-popups", never, {}, {}, never, never, true, never>;
|
|
6
|
+
}
|
|
@@ -11,6 +11,7 @@ import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
|
11
11
|
import { timer } from 'rxjs';
|
|
12
12
|
import { TUI_DATA_LIST_HOST, tuiAsDataListAccessor } from './data-list.tokens';
|
|
13
13
|
import { TuiOptionWithValue } from './option/option.directive';
|
|
14
|
+
import { TUI_OPTION_CONTENT, TuiWithOptionContent } from './option/option-content';
|
|
14
15
|
import { TuiOption } from './option/option-legacy.component';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
export function tuiInjectDataListSize() {
|
|
@@ -67,12 +68,26 @@ class TuiDataListComponent {
|
|
|
67
68
|
return Array.from(this.el.querySelectorAll('a[tuiOption],button[tuiOption],label[tuiOption]'));
|
|
68
69
|
}
|
|
69
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListComponent, isStandalone: true, selector: "tui-data-list", inputs: { emptyContent: "emptyContent", size: "size" }, host: { attributes: { "role": "listbox" }, listeners: { "focusin": "onFocusIn($event.relatedTarget, $event.currentTarget)", "mousedown.prevent": "(0)", "wheel.zoneless.passive": "handleFocusLossIfNecessary()", "mouseleave": "handleFocusLossIfNecessary($event.target)", "keydown.tab": "handleFocusLossIfNecessary()", "keydown.shift.tab": "handleFocusLossIfNecessary()", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target, -1)" }, properties: { "attr.data-size": "size" } }, providers: [
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListComponent, isStandalone: true, selector: "tui-data-list", inputs: { emptyContent: "emptyContent", size: "size" }, host: { attributes: { "role": "listbox" }, listeners: { "focusin": "onFocusIn($event.relatedTarget, $event.currentTarget)", "mousedown.prevent": "(0)", "wheel.zoneless.passive": "handleFocusLossIfNecessary()", "mouseleave": "handleFocusLossIfNecessary($event.target)", "keydown.tab": "handleFocusLossIfNecessary()", "keydown.shift.tab": "handleFocusLossIfNecessary()", "keydown.arrowDown.prevent": "onKeyDownArrow($event.target, 1)", "keydown.arrowUp.prevent": "onKeyDownArrow($event.target, -1)" }, properties: { "attr.data-size": "size" } }, providers: [
|
|
72
|
+
tuiAsDataListAccessor(TuiDataListComponent),
|
|
73
|
+
{
|
|
74
|
+
provide: TUI_OPTION_CONTENT,
|
|
75
|
+
useFactory: () => inject(TuiWithOptionContent, { optional: true })?.content ??
|
|
76
|
+
inject(TUI_OPTION_CONTENT, { skipSelf: true, optional: true }),
|
|
77
|
+
},
|
|
78
|
+
], queries: [{ propertyName: "legacyOptions", predicate: i0.forwardRef(function () { return TuiOption; }), descendants: true }, { propertyName: "options", predicate: i0.forwardRef(function () { return TuiOptionWithValue; }), descendants: true }], ngImport: i0, template: "<ng-content />\n<div\n *ngIf=\"empty()\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || fallback() as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: ["tui-data-list{--tui-data-list-padding: .25rem;--tui-data-list-margin: .0625rem;display:flex;font:var(--tui-font-text-m);flex-direction:column;padding:calc(var(--tui-data-list-padding) - var(--tui-data-list-margin)) var(--tui-data-list-padding);color:var(--tui-text-tertiary)}tui-data-list:focus-within .t-trap{display:none}tui-data-list:focus-within [tuiOption]._with-dropdown:not(:focus){background-color:transparent}tui-data-list[data-size=s]{--tui-data-list-margin: 0rem}tui-data-list[data-size=s] [tuiOption][new]>*:not(:first-child){margin-inline-start:.5rem}tui-data-list[data-size=s]>.t-empty,tui-data-list[data-size=s] [tuiOption]{--t-option-padding-inline: .5rem;font:var(--tui-font-text-s);min-block-size:2rem;padding-top:.3125rem;padding-bottom:.3125rem}tui-data-list[data-size=s]>.t-empty:before,tui-data-list[data-size=s] [tuiOption]:before{font-size:1rem}tui-data-list[data-size=m] [tuiOption][new]>*:not(:first-child){margin-inline-start:.75rem}tui-data-list[data-size=m]>.t-empty,tui-data-list[data-size=m] [tuiOption]{--t-option-padding-inline: .5rem;font:var(--tui-font-text-s);min-block-size:2.5rem;padding-top:.375rem;padding-bottom:.375rem}tui-data-list[data-size=l]{--tui-data-list-padding: .375rem;--tui-data-list-margin: .125rem}tui-data-list[data-size=l] [tuiOption][new]>*:not(:first-child){margin-inline-start:1rem}tui-data-list[data-size=l]>.t-empty,tui-data-list[data-size=l] [tuiOption]{--t-option-padding-inline: .625rem;font:var(--tui-font-text-m);min-block-size:2.75rem;padding-top:.375rem;padding-bottom:.375rem}tui-data-list>.t-empty{display:flex;align-items:center;box-sizing:border-box;margin:var(--tui-data-list-margin) 0}tui-data-list [tuiOption]:not([new]){justify-content:space-between}tui-data-list [tuiOption]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;box-sizing:border-box;margin:var(--tui-data-list-margin) 0;text-align:start;color:var(--tui-text-primary);border-radius:var(--tui-radius-s);outline:none;cursor:pointer;background-clip:padding-box}tui-data-list [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default}tui-data-list [tuiOption]:hover:not(:disabled),tui-data-list [tuiOption]:focus-within,tui-data-list [tuiOption]._with-dropdown{background-color:var(--tui-background-neutral-1)}tui-data-list [tuiOption]:before{margin-inline-end:.5rem}tui-data-list [tuiOption]:after{font-size:1rem;margin:0 -.75rem 0 auto;border-left:.5rem solid;border-right:.5rem solid}tui-data-list>.t-empty,tui-data-list [tuiOption]{padding-left:var(--t-option-padding-inline);padding-right:var(--t-option-padding-inline)}tui-opt-group{position:relative;display:flex;font:var(--tui-font-text-xs);font-weight:700;color:var(--tui-text-primary);flex-direction:column;line-height:1rem}tui-data-list[data-size=l] tui-opt-group{font:var(--tui-font-text-s);font-weight:700;line-height:1.25rem}tui-data-list[data-size=l] tui-opt-group:before{padding-left:.625rem;padding-right:.625rem}tui-data-list[data-size=l] tui-opt-group:after{left:.625rem;right:.625rem}tui-opt-group:empty:before,tui-opt-group:empty:after{display:none}tui-opt-group:before{content:attr(data-label);padding:var(--tui-data-list-padding) .5rem var(--tui-data-list-padding);margin:var(--tui-data-list-margin) 0;white-space:normal;word-break:break-word}tui-opt-group:after{position:absolute;left:.5rem;right:.5rem;top:var(--tui-data-list-padding);block-size:1px;background:var(--tui-border-normal)}tui-opt-group:not(:empty)~tui-opt-group:before{padding-top:calc(.75rem + var(--tui-data-list-padding))}tui-opt-group:not(:empty)~tui-opt-group[data-label=\"\"]:before,tui-opt-group:not(:empty)~tui-opt-group:not([data-label]):before{padding:var(--tui-data-list-padding) 0}tui-opt-group:not(:empty)~tui-opt-group:after{content:\"\"}tui-opt-group[data-label=\"\"]:before,tui-opt-group:not([data-label]):before{content:\"\";padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
71
79
|
}
|
|
72
80
|
export { TuiDataListComponent };
|
|
73
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListComponent, decorators: [{
|
|
74
82
|
type: Component,
|
|
75
|
-
args: [{ standalone: true, selector: 'tui-data-list', imports: [NgIf, PolymorpheusOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
83
|
+
args: [{ standalone: true, selector: 'tui-data-list', imports: [NgIf, PolymorpheusOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
84
|
+
tuiAsDataListAccessor(TuiDataListComponent),
|
|
85
|
+
{
|
|
86
|
+
provide: TUI_OPTION_CONTENT,
|
|
87
|
+
useFactory: () => inject(TuiWithOptionContent, { optional: true })?.content ??
|
|
88
|
+
inject(TUI_OPTION_CONTENT, { skipSelf: true, optional: true }),
|
|
89
|
+
},
|
|
90
|
+
], host: {
|
|
76
91
|
role: 'listbox',
|
|
77
92
|
'[attr.data-size]': 'size',
|
|
78
93
|
'(focusin)': 'onFocusIn($event.relatedTarget, $event.currentTarget)',
|
|
@@ -83,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
83
98
|
'(keydown.shift.tab)': 'handleFocusLossIfNecessary()',
|
|
84
99
|
'(keydown.arrowDown.prevent)': 'onKeyDownArrow($event.target, 1)',
|
|
85
100
|
'(keydown.arrowUp.prevent)': 'onKeyDownArrow($event.target, -1)',
|
|
86
|
-
}, template: "<ng-content />\n<div\n *ngIf=\"empty()\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || fallback() as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: ["tui-data-list{--tui-data-list-padding: .25rem;--tui-data-list-margin: .0625rem;display:flex;font:var(--tui-font-text-m);flex-direction:column;padding:calc(var(--tui-data-list-padding) - var(--tui-data-list-margin)) var(--tui-data-list-padding);color:var(--tui-text-tertiary)}tui-data-list:focus-within .t-trap{display:none}tui-data-list:focus-within [tuiOption]._with-dropdown:not(:focus){background-color:transparent}tui-data-list[data-size=s]{--tui-data-list-margin: 0rem}tui-data-list[data-size=s] [tuiOption][new]>*:not(:first-child){margin-inline-start:.5rem}tui-data-list[data-size=s]>.t-empty,tui-data-list[data-size=s] [tuiOption]{--t-option-padding-inline: .5rem;font:var(--tui-font-text-s);min-block-size:2rem;padding-top:.3125rem;padding-bottom:.3125rem}tui-data-list[data-size=s]>.t-empty:before,tui-data-list[data-size=s] [tuiOption]:before{font-size:1rem}tui-data-list[data-size=m] [tuiOption][new]>*:not(:first-child){margin-inline-start:.75rem}tui-data-list[data-size=m]>.t-empty,tui-data-list[data-size=m] [tuiOption]{--t-option-padding-inline: .5rem;font:var(--tui-font-text-s);min-block-size:2.5rem;padding-top:.375rem;padding-bottom:.375rem}tui-data-list[data-size=l]{--tui-data-list-padding: .375rem;--tui-data-list-margin: .125rem}tui-data-list[data-size=l] [tuiOption][new]>*:not(:first-child){margin-inline-start:1rem}tui-data-list[data-size=l]>.t-empty,tui-data-list[data-size=l] [tuiOption]{--t-option-padding-inline: .625rem;font:var(--tui-font-text-m);min-block-size:2.75rem;padding-top:.375rem;padding-bottom:.375rem}tui-data-list>.t-empty{display:flex;align-items:center;box-sizing:border-box;margin:var(--tui-data-list-margin) 0}tui-data-list [tuiOption]:not([new]){justify-content:space-between}tui-data-list [tuiOption]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;box-sizing:border-box;margin:var(--tui-data-list-margin) 0;text-align:start;color:var(--tui-text-primary);border-radius:var(--tui-radius-s);outline:none;cursor:pointer;background-clip:padding-box}tui-data-list [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default
|
|
101
|
+
}, template: "<ng-content />\n<div\n *ngIf=\"empty()\"\n class=\"t-empty\"\n>\n <ng-container *polymorpheusOutlet=\"emptyContent || fallback() as text\">\n {{ text }}\n </ng-container>\n</div>\n", styles: ["tui-data-list{--tui-data-list-padding: .25rem;--tui-data-list-margin: .0625rem;display:flex;font:var(--tui-font-text-m);flex-direction:column;padding:calc(var(--tui-data-list-padding) - var(--tui-data-list-margin)) var(--tui-data-list-padding);color:var(--tui-text-tertiary)}tui-data-list:focus-within .t-trap{display:none}tui-data-list:focus-within [tuiOption]._with-dropdown:not(:focus){background-color:transparent}tui-data-list[data-size=s]{--tui-data-list-margin: 0rem}tui-data-list[data-size=s] [tuiOption][new]>*:not(:first-child){margin-inline-start:.5rem}tui-data-list[data-size=s]>.t-empty,tui-data-list[data-size=s] [tuiOption]{--t-option-padding-inline: .5rem;font:var(--tui-font-text-s);min-block-size:2rem;padding-top:.3125rem;padding-bottom:.3125rem}tui-data-list[data-size=s]>.t-empty:before,tui-data-list[data-size=s] [tuiOption]:before{font-size:1rem}tui-data-list[data-size=m] [tuiOption][new]>*:not(:first-child){margin-inline-start:.75rem}tui-data-list[data-size=m]>.t-empty,tui-data-list[data-size=m] [tuiOption]{--t-option-padding-inline: .5rem;font:var(--tui-font-text-s);min-block-size:2.5rem;padding-top:.375rem;padding-bottom:.375rem}tui-data-list[data-size=l]{--tui-data-list-padding: .375rem;--tui-data-list-margin: .125rem}tui-data-list[data-size=l] [tuiOption][new]>*:not(:first-child){margin-inline-start:1rem}tui-data-list[data-size=l]>.t-empty,tui-data-list[data-size=l] [tuiOption]{--t-option-padding-inline: .625rem;font:var(--tui-font-text-m);min-block-size:2.75rem;padding-top:.375rem;padding-bottom:.375rem}tui-data-list>.t-empty{display:flex;align-items:center;box-sizing:border-box;margin:var(--tui-data-list-margin) 0}tui-data-list [tuiOption]:not([new]){justify-content:space-between}tui-data-list [tuiOption]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;align-items:center;box-sizing:border-box;margin:var(--tui-data-list-margin) 0;text-align:start;color:var(--tui-text-primary);border-radius:var(--tui-radius-s);outline:none;cursor:pointer;background-clip:padding-box}tui-data-list [tuiOption]:disabled{opacity:var(--tui-disabled-opacity);cursor:default}tui-data-list [tuiOption]:hover:not(:disabled),tui-data-list [tuiOption]:focus-within,tui-data-list [tuiOption]._with-dropdown{background-color:var(--tui-background-neutral-1)}tui-data-list [tuiOption]:before{margin-inline-end:.5rem}tui-data-list [tuiOption]:after{font-size:1rem;margin:0 -.75rem 0 auto;border-left:.5rem solid;border-right:.5rem solid}tui-data-list>.t-empty,tui-data-list [tuiOption]{padding-left:var(--t-option-padding-inline);padding-right:var(--t-option-padding-inline)}tui-opt-group{position:relative;display:flex;font:var(--tui-font-text-xs);font-weight:700;color:var(--tui-text-primary);flex-direction:column;line-height:1rem}tui-data-list[data-size=l] tui-opt-group{font:var(--tui-font-text-s);font-weight:700;line-height:1.25rem}tui-data-list[data-size=l] tui-opt-group:before{padding-left:.625rem;padding-right:.625rem}tui-data-list[data-size=l] tui-opt-group:after{left:.625rem;right:.625rem}tui-opt-group:empty:before,tui-opt-group:empty:after{display:none}tui-opt-group:before{content:attr(data-label);padding:var(--tui-data-list-padding) .5rem var(--tui-data-list-padding);margin:var(--tui-data-list-margin) 0;white-space:normal;word-break:break-word}tui-opt-group:after{position:absolute;left:.5rem;right:.5rem;top:var(--tui-data-list-padding);block-size:1px;background:var(--tui-border-normal)}tui-opt-group:not(:empty)~tui-opt-group:before{padding-top:calc(.75rem + var(--tui-data-list-padding))}tui-opt-group:not(:empty)~tui-opt-group[data-label=\"\"]:before,tui-opt-group:not(:empty)~tui-opt-group:not([data-label]):before{padding:var(--tui-data-list-padding) 0}tui-opt-group:not(:empty)~tui-opt-group:after{content:\"\"}tui-opt-group[data-label=\"\"]:before,tui-opt-group:not([data-label]):before{content:\"\";padding:0;margin:0}\n"] }]
|
|
87
102
|
}], propDecorators: { legacyOptions: [{
|
|
88
103
|
type: ContentChildren,
|
|
89
104
|
args: [forwardRef(() => TuiOption), { descendants: true }]
|
|
@@ -95,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
95
110
|
}], size: [{
|
|
96
111
|
type: Input
|
|
97
112
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXJDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHM0IsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHFCQUFxQixF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T0FBTztzQkFEdkIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUM7Z0JBWW5FLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0FmdGVyQ29udGVudENoZWNrZWQsIFF1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBpc1NpZ25hbCxcbiAgICBOZ1pvbmUsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7dHVpVGFrZVVudGlsRGVzdHJveWVkLCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkSW4sIHR1aU1vdmVGb2N1c30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aUlzUHJlc2VudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX05PVEhJTkdfRk9VTkRfTUVTU0FHRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7dGltZXJ9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7VHVpRGF0YUxpc3RBY2Nlc3Nvcn0gZnJvbSAnLi9kYXRhLWxpc3QudG9rZW5zJztcbmltcG9ydCB7VFVJX0RBVEFfTElTVF9IT1NULCB0dWlBc0RhdGFMaXN0QWNjZXNzb3J9IGZyb20gJy4vZGF0YS1saXN0LnRva2Vucyc7XG5pbXBvcnQge1R1aU9wdGlvbldpdGhWYWx1ZX0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aU9wdGlvbn0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLWxlZ2FjeS5jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpSW5qZWN0RGF0YUxpc3RTaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgIGNvbnN0IHNpemVzID0gWydzJywgJ20nLCAnbCddIGFzIGNvbnN0O1xuICAgIGNvbnN0IHNpemUgPSBpbmplY3QoVFVJX0RBVEFfTElTVF9IT1NULCB7b3B0aW9uYWw6IHRydWV9KT8uc2l6ZTtcblxuICAgIHJldHVybiBzaXplICYmIHNpemVzLmluY2x1ZGVzKHNpemUpID8gc2l6ZSA6ICdsJztcbn1cblxuLy8gVE9ETzogQ29uc2lkZXIgYXJpYS1hY3RpdmVkZXNjZW5kYW50IGZvciBwcm9wZXIgYWNjZXNzaWJpbGl0eSBpbXBsZW1lbnRhdGlvblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1kYXRhLWxpc3QnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBQb2x5bW9ycGhldXNPdXRsZXRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWxpc3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0YS1saXN0LnN0eWxlLmxlc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3R1aUFzRGF0YUxpc3RBY2Nlc3NvcihUdWlEYXRhTGlzdENvbXBvbmVudCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzSW4oJGV2ZW50LnJlbGF0ZWRUYXJnZXQsICRldmVudC5jdXJyZW50VGFyZ2V0KScsXG4gICAgICAgICcobW91c2Vkb3duLnByZXZlbnQpJzogJygwKScsXG4gICAgICAgICcod2hlZWwuem9uZWxlc3MucGFzc2l2ZSknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoJGV2ZW50LnRhcmdldCknLFxuICAgICAgICAnKGtleWRvd24udGFiKSc6ICdoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeSgpJyxcbiAgICAgICAgJyhrZXlkb3duLnNoaWZ0LnRhYiknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoKScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudCknOiAnb25LZXlEb3duQXJyb3coJGV2ZW50LnRhcmdldCwgMSknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dVcC5wcmV2ZW50KSc6ICdvbktleURvd25BcnJvdygkZXZlbnQudGFyZ2V0LCAtMSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURhdGFMaXN0Q29tcG9uZW50PFQ+XG4gICAgaW1wbGVtZW50cyBUdWlEYXRhTGlzdEFjY2Vzc29yPFQ+LCBBZnRlckNvbnRlbnRDaGVja2VkXG57XG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFR1aU9wdGlvbiksIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBsZWdhY3lPcHRpb25zOiBRdWVyeUxpc3Q8VHVpT3B0aW9uPFQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFR1aU9wdGlvbldpdGhWYWx1ZSksIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBRdWVyeUxpc3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgcHJpdmF0ZSBvcmlnaW4/OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFsbGJhY2sgPSB0b1NpZ25hbChpbmplY3QoVFVJX05PVEhJTkdfRk9VTkRfTUVTU0FHRSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbXB0eSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplID0gdHVpSW5qZWN0RGF0YUxpc3RTaXplKCk7XG5cbiAgICBwdWJsaWMgb25LZXlEb3duQXJyb3coY3VycmVudDogSFRNTEVsZW1lbnQsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB7ZWxlbWVudHN9ID0gdGhpcztcblxuICAgICAgICB0dWlNb3ZlRm9jdXMoZWxlbWVudHMuaW5kZXhPZihjdXJyZW50KSwgZWxlbWVudHMsIHN0ZXApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeShlbGVtZW50OiBFbGVtZW50ID0gdGhpcy5lbCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNOYXRpdmVGb2N1c2VkSW4oZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luPy5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVmYWN0b3IgdG8gOmhhcyBhZnRlciBTYWZhcmkgc3VwcG9ydCBidW1wZWQgdG8gMTVcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aW1lcigwKVxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUodGhpcy5uZ1pvbmUpLCB0dWlUYWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1wdHkuc2V0KCF0aGlzLmVsZW1lbnRzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9wdGlvbnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UpOiByZWFkb25seSBUW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4udGhpcy5sZWdhY3lPcHRpb25zLCAvLyBUT0RPKHY1KTogZGVsZXRlXG4gICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5maWx0ZXIoKHtkaXNhYmxlZH0pID0+IGluY2x1ZGVEaXNhYmxlZCB8fCAhZGlzYWJsZWQpXG4gICAgICAgICAgICAubWFwKCh7dmFsdWV9KSA9PiAoaXNTaWduYWwodmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSlcbiAgICAgICAgICAgIC5maWx0ZXIodHVpSXNQcmVzZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1c0luKHJlbGF0ZWRUYXJnZXQ6IEhUTUxFbGVtZW50LCBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWN1cnJlbnRUYXJnZXQuY29udGFpbnMocmVsYXRlZFRhcmdldCkgJiYgIXRoaXMub3JpZ2luKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbiA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlbGVtZW50cygpOiByZWFkb25seSBIVE1MRWxlbWVudFtdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgICAgICB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbdHVpT3B0aW9uXSxidXR0b25bdHVpT3B0aW9uXSxsYWJlbFt0dWlPcHRpb25dJyksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQgLz5cbjxkaXZcbiAgICAqbmdJZj1cImVtcHR5KClcIlxuICAgIGNsYXNzPVwidC1lbXB0eVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiZW1wdHlDb250ZW50IHx8IGZhbGxiYWNrKCkgYXMgdGV4dFwiPlxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXJDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHM0IsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFFLG9CQUFvQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOztBQUUzRCxNQUFNLFVBQVUscUJBQXFCO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQVUsQ0FBQztJQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7SUFFaEUsT0FBTyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDckQsQ0FBQztBQUVELCtFQUErRTtBQUMvRSxNQThCYSxvQkFBb0I7SUE5QmpDO1FBa0NxQixrQkFBYSxHQUE0QixXQUFXLENBQUM7UUFHckQsWUFBTyxHQUFxQyxXQUFXLENBQUM7UUFHeEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QixhQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7UUFDdkQsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU1sQyxTQUFJLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztLQTZDekM7SUEzQ1UsY0FBYyxDQUFDLE9BQW9CLEVBQUUsSUFBWTtRQUNwRCxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXhCLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sMEJBQTBCLENBQUMsVUFBbUIsSUFBSSxDQUFDLEVBQUU7UUFDeEQsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1NBQzdDO0lBQ0wsQ0FBQztJQUVELDJEQUEyRDtJQUNwRCxxQkFBcUI7UUFDeEIsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN0RSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sVUFBVSxDQUFDLGVBQWUsR0FBRyxLQUFLO1FBQ3JDLE9BQU87WUFDSCxHQUFHLElBQUksQ0FBQyxhQUFhO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLE9BQU87U0FDbEI7YUFDSSxNQUFNLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDcEQsR0FBRyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyRCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxhQUEwQixFQUFFLGFBQTBCO1FBQ3RFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDaEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsaURBQWlELENBQUMsQ0FDOUUsQ0FBQztJQUNOLENBQUM7K0dBakVRLG9CQUFvQjttR0FBcEIsb0JBQW9CLG9wQkF0QmxCO1lBQ1AscUJBQXFCLENBQUMsb0JBQW9CLENBQUM7WUFDM0M7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUFFLE9BQU87b0JBQ3ZELE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO2FBQ25FO1NBQ0osMkZBaUJpQyxTQUFTLG9HQUdULGtCQUFrQixvREM5RXhELHlNQVNBLHlpSURvQ2MsSUFBSSw2RkFBRSxrQkFBa0I7O1NBMkJ6QixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkE5QmhDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGVBQWUsV0FDaEIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsaUJBR3BCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1AscUJBQXFCLHNCQUFzQjt3QkFDM0M7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUFFLE9BQU87Z0NBQ3ZELE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO3lCQUNuRTtxQkFDSixRQUNLO3dCQUNGLElBQUksRUFBRSxTQUFTO3dCQUNmLGtCQUFrQixFQUFFLE1BQU07d0JBQzFCLFdBQVcsRUFBRSx1REFBdUQ7d0JBQ3BFLHFCQUFxQixFQUFFLEtBQUs7d0JBQzVCLDBCQUEwQixFQUFFLDhCQUE4Qjt3QkFDMUQsY0FBYyxFQUFFLDJDQUEyQzt3QkFDM0QsZUFBZSxFQUFFLDhCQUE4Qjt3QkFDL0MscUJBQXFCLEVBQUUsOEJBQThCO3dCQUNyRCw2QkFBNkIsRUFBRSxrQ0FBa0M7d0JBQ2pFLDJCQUEyQixFQUFFLG1DQUFtQztxQkFDbkU7OEJBTWdCLGFBQWE7c0JBRDdCLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFJaEQsT0FBTztzQkFEdkIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUM7Z0JBWW5FLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0FmdGVyQ29udGVudENoZWNrZWQsIFF1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBpc1NpZ25hbCxcbiAgICBOZ1pvbmUsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7dHVpVGFrZVVudGlsRGVzdHJveWVkLCB0dWlab25lZnJlZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkSW4sIHR1aU1vdmVGb2N1c30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aUlzUHJlc2VudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX05PVEhJTkdfRk9VTkRfTUVTU0FHRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7dGltZXJ9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7VHVpRGF0YUxpc3RBY2Nlc3Nvcn0gZnJvbSAnLi9kYXRhLWxpc3QudG9rZW5zJztcbmltcG9ydCB7VFVJX0RBVEFfTElTVF9IT1NULCB0dWlBc0RhdGFMaXN0QWNjZXNzb3J9IGZyb20gJy4vZGF0YS1saXN0LnRva2Vucyc7XG5pbXBvcnQge1R1aU9wdGlvbldpdGhWYWx1ZX0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RVSV9PUFRJT05fQ09OVEVOVCwgVHVpV2l0aE9wdGlvbkNvbnRlbnR9IGZyb20gJy4vb3B0aW9uL29wdGlvbi1jb250ZW50JztcbmltcG9ydCB7VHVpT3B0aW9ufSBmcm9tICcuL29wdGlvbi9vcHRpb24tbGVnYWN5LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlJbmplY3REYXRhTGlzdFNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ3MnLCAnbScsICdsJ10gYXMgY29uc3Q7XG4gICAgY29uc3Qgc2l6ZSA9IGluamVjdChUVUlfREFUQV9MSVNUX0hPU1QsIHtvcHRpb25hbDogdHJ1ZX0pPy5zaXplO1xuXG4gICAgcmV0dXJuIHNpemUgJiYgc2l6ZXMuaW5jbHVkZXMoc2l6ZSkgPyBzaXplIDogJ2wnO1xufVxuXG4vLyBUT0RPOiBDb25zaWRlciBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgZm9yIHByb3BlciBhY2Nlc3NpYmlsaXR5IGltcGxlbWVudGF0aW9uXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRhdGEtbGlzdCcsXG4gICAgaW1wb3J0czogW05nSWYsIFBvbHltb3JwaGV1c091dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGlzdC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRhLWxpc3Quc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRGF0YUxpc3RBY2Nlc3NvcihUdWlEYXRhTGlzdENvbXBvbmVudCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9PUFRJT05fQ09OVEVOVCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+XG4gICAgICAgICAgICAgICAgaW5qZWN0KFR1aVdpdGhPcHRpb25Db250ZW50LCB7b3B0aW9uYWw6IHRydWV9KT8uY29udGVudCA/P1xuICAgICAgICAgICAgICAgIGluamVjdChUVUlfT1BUSU9OX0NPTlRFTlQsIHtza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWV9KSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplJyxcbiAgICAgICAgJyhmb2N1c2luKSc6ICdvbkZvY3VzSW4oJGV2ZW50LnJlbGF0ZWRUYXJnZXQsICRldmVudC5jdXJyZW50VGFyZ2V0KScsXG4gICAgICAgICcobW91c2Vkb3duLnByZXZlbnQpJzogJygwKScsXG4gICAgICAgICcod2hlZWwuem9uZWxlc3MucGFzc2l2ZSknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoJGV2ZW50LnRhcmdldCknLFxuICAgICAgICAnKGtleWRvd24udGFiKSc6ICdoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeSgpJyxcbiAgICAgICAgJyhrZXlkb3duLnNoaWZ0LnRhYiknOiAnaGFuZGxlRm9jdXNMb3NzSWZOZWNlc3NhcnkoKScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudCknOiAnb25LZXlEb3duQXJyb3coJGV2ZW50LnRhcmdldCwgMSknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dVcC5wcmV2ZW50KSc6ICdvbktleURvd25BcnJvdygkZXZlbnQudGFyZ2V0LCAtMSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURhdGFMaXN0Q29tcG9uZW50PFQ+XG4gICAgaW1wbGVtZW50cyBUdWlEYXRhTGlzdEFjY2Vzc29yPFQ+LCBBZnRlckNvbnRlbnRDaGVja2VkXG57XG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFR1aU9wdGlvbiksIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBsZWdhY3lPcHRpb25zOiBRdWVyeUxpc3Q8VHVpT3B0aW9uPFQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFR1aU9wdGlvbldpdGhWYWx1ZSksIHtkZXNjZW5kYW50czogdHJ1ZX0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBRdWVyeUxpc3Q8VHVpT3B0aW9uV2l0aFZhbHVlPFQ+PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgcHJpdmF0ZSBvcmlnaW4/OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFsbGJhY2sgPSB0b1NpZ25hbChpbmplY3QoVFVJX05PVEhJTkdfRk9VTkRfTUVTU0FHRSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbXB0eSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplID0gdHVpSW5qZWN0RGF0YUxpc3RTaXplKCk7XG5cbiAgICBwdWJsaWMgb25LZXlEb3duQXJyb3coY3VycmVudDogSFRNTEVsZW1lbnQsIHN0ZXA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB7ZWxlbWVudHN9ID0gdGhpcztcblxuICAgICAgICB0dWlNb3ZlRm9jdXMoZWxlbWVudHMuaW5kZXhPZihjdXJyZW50KSwgZWxlbWVudHMsIHN0ZXApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVGb2N1c0xvc3NJZk5lY2Vzc2FyeShlbGVtZW50OiBFbGVtZW50ID0gdGhpcy5lbCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNOYXRpdmVGb2N1c2VkSW4oZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luPy5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVmYWN0b3IgdG8gOmhhcyBhZnRlciBTYWZhcmkgc3VwcG9ydCBidW1wZWQgdG8gMTVcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aW1lcigwKVxuICAgICAgICAgICAgLnBpcGUodHVpWm9uZWZyZWUodGhpcy5uZ1pvbmUpLCB0dWlUYWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1wdHkuc2V0KCF0aGlzLmVsZW1lbnRzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9wdGlvbnMoaW5jbHVkZURpc2FibGVkID0gZmFsc2UpOiByZWFkb25seSBUW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4udGhpcy5sZWdhY3lPcHRpb25zLCAvLyBUT0RPKHY1KTogZGVsZXRlXG4gICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5maWx0ZXIoKHtkaXNhYmxlZH0pID0+IGluY2x1ZGVEaXNhYmxlZCB8fCAhZGlzYWJsZWQpXG4gICAgICAgICAgICAubWFwKCh7dmFsdWV9KSA9PiAoaXNTaWduYWwodmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSlcbiAgICAgICAgICAgIC5maWx0ZXIodHVpSXNQcmVzZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1c0luKHJlbGF0ZWRUYXJnZXQ6IEhUTUxFbGVtZW50LCBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWN1cnJlbnRUYXJnZXQuY29udGFpbnMocmVsYXRlZFRhcmdldCkgJiYgIXRoaXMub3JpZ2luKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbiA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBlbGVtZW50cygpOiByZWFkb25seSBIVE1MRWxlbWVudFtdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgICAgICB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbdHVpT3B0aW9uXSxidXR0b25bdHVpT3B0aW9uXSxsYWJlbFt0dWlPcHRpb25dJyksXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQgLz5cbjxkaXZcbiAgICAqbmdJZj1cImVtcHR5KClcIlxuICAgIGNsYXNzPVwidC1lbXB0eVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwiZW1wdHlDb250ZW50IHx8IGZhbGxiYWNrKCkgYXMgdGV4dFwiPlxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export const TUI_DATA_LIST_HOST = tuiCreateToken();
|
|
|
13
13
|
export function tuiAsDataListHost(host) {
|
|
14
14
|
return tuiProvide(TUI_DATA_LIST_HOST, host);
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QvZGF0YS1saXN0LnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFFLFVBQVUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBc0I3RTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGNBQWMsRUFBdUIsQ0FBQztBQUU1RSxNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBbUM7SUFDckUsT0FBTyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxFQUE0QixDQUFDO0FBRTdFLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxJQUE4QjtJQUMvRCxPQUFPLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Byb3ZpZGVyLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlJZGVudGl0eU1hdGNoZXIsIFR1aVN0cmluZ0hhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbiwgdHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlEYXRhTGlzdEFjY2Vzc29yPFQgPSB1bmtub3duPiB7XG4gICAgZ2V0T3B0aW9ucyhpbmNsdWRlRGlzYWJsZWQ/OiBib29sZWFuKTogcmVhZG9ubHkgVFtdO1xufVxuXG4vLyBUT0RPOiBDb25zaWRlciByZWZhY3RvcmluZyBjaGVja09wdGlvbiwgaXQgaXMgb25seSBuZWVkZWQgaW4gQ29tYm9Cb3hcbmV4cG9ydCBpbnRlcmZhY2UgVHVpRGF0YUxpc3RIb3N0PFQ+IHtcbiAgICBjaGVja09wdGlvbj8ob3B0aW9uOiBUKTogdm9pZDtcbiAgICBoYW5kbGVPcHRpb24/KG9wdGlvbjogVCk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBpbmplY3QoVHVpSXRlbXNIYW5kbGVyc0RpcmVjdGl2ZTxUPikuaWRlbnRpdHlNYXRjaGVyYCBpbnN0ZWFkXG4gICAgICovXG4gICAgcmVhZG9ubHkgaWRlbnRpdHlNYXRjaGVyPzogVHVpSWRlbnRpdHlNYXRjaGVyPFQ+O1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBgaW5qZWN0KFR1aUl0ZW1zSGFuZGxlcnNEaXJlY3RpdmU8VD4pLnN0cmluZ2lmeWAgaW5zdGVhZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0cmluZ2lmeT86IFR1aVN0cmluZ0hhbmRsZXI8VD47XG4gICAgcmVhZG9ubHkgc2l6ZT86IFR1aVNpemVMIHwgVHVpU2l6ZVM7XG59XG5cbi8qKlxuICogQWNjZXNzb3IgZm9yIGRhdGEtbGlzdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfREFUQV9MSVNUX0FDQ0VTU09SID0gdHVpQ3JlYXRlVG9rZW48VHVpRGF0YUxpc3RBY2Nlc3Nvcj4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUFzRGF0YUxpc3RBY2Nlc3NvcihhY2Nlc3NvcjogVHlwZTxUdWlEYXRhTGlzdEFjY2Vzc29yPik6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gdHVpUHJvdmlkZShUVUlfREFUQV9MSVNUX0FDQ0VTU09SLCBhY2Nlc3Nvcik7XG59XG5cbi8qKlxuICogRGF0YUxpc3QgY29udHJvbGxlclxuICovXG5leHBvcnQgY29uc3QgVFVJX0RBVEFfTElTVF9IT1NUID0gdHVpQ3JlYXRlVG9rZW48VHVpRGF0YUxpc3RIb3N0PHVua25vd24+PigpO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpQXNEYXRhTGlzdEhvc3Q8VD4oaG9zdDogVHlwZTxUdWlEYXRhTGlzdEhvc3Q8VD4+KTogUHJvdmlkZXIge1xuICAgIHJldHVybiB0dWlQcm92aWRlKFRVSV9EQVRBX0xJU1RfSE9TVCwgaG9zdCk7XG59XG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { ContentChild, Directive, inject } from '@angular/core';
|
|
1
2
|
import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
2
4
|
/**
|
|
3
5
|
* Content for tuiOption component
|
|
4
6
|
*/
|
|
@@ -9,4 +11,27 @@ export function tuiAsOptionContent(useValue) {
|
|
|
9
11
|
useValue,
|
|
10
12
|
};
|
|
11
13
|
}
|
|
12
|
-
|
|
14
|
+
class TuiWithOptionContent {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.localContent = null;
|
|
17
|
+
this.globalContent = inject(TUI_OPTION_CONTENT, {
|
|
18
|
+
optional: true,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
get content() {
|
|
22
|
+
return this.globalContent ?? this.localContent;
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiWithOptionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiWithOptionContent, isStandalone: true, queries: [{ propertyName: "localContent", first: true, predicate: TUI_OPTION_CONTENT, descendants: true }], ngImport: i0 }); }
|
|
26
|
+
}
|
|
27
|
+
export { TuiWithOptionContent };
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiWithOptionContent, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
standalone: true,
|
|
32
|
+
}]
|
|
33
|
+
}], propDecorators: { localContent: [{
|
|
34
|
+
type: ContentChild,
|
|
35
|
+
args: [TUI_OPTION_CONTENT, { descendants: true }]
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0L29wdGlvbi9vcHRpb24tY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOztBQUdqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsRUFHN0MsQ0FBQztBQUVKLE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsUUFFZTtJQUVmLE9BQU87UUFDSCxPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFFBQVE7S0FDWCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BR2Esb0JBQW9CO0lBSGpDO1FBS3VCLGlCQUFZLEdBQXFCLElBQUksQ0FBQztRQUV0QyxrQkFBYSxHQUFHLE1BQU0sQ0FBWSxrQkFBa0IsRUFBRTtZQUNyRSxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7S0FLTjtJQUhHLElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ25ELENBQUM7K0dBVlEsb0JBQW9CO21HQUFwQixvQkFBb0Isd0ZBQ2Ysa0JBQWtCOztTQUR2QixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBR3NCLFlBQVk7c0JBRDlCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Byb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuLyoqXG4gKiBDb250ZW50IGZvciB0dWlPcHRpb24gY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfT1BUSU9OX0NPTlRFTlQgPSB0dWlDcmVhdGVUb2tlbjxcbiAgICB8IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxUZW1wbGF0ZVJlZjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+PiAvLyBUT0RPKHY1KTogZGVsZXRlXG4gICAgfCBUeXBlPGFueT5cbj4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUFzT3B0aW9uQ29udGVudChcbiAgICB1c2VWYWx1ZTpcbiAgICAgICAgfCBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8VGVtcGxhdGVSZWY8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+Pj4gLy8gVE9ETyh2NSk6IGRlbGV0ZVxuICAgICAgICB8IFR5cGU8YW55Pixcbik6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBUVUlfT1BUSU9OX0NPTlRFTlQsXG4gICAgICAgIHVzZVZhbHVlLFxuICAgIH07XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVdpdGhPcHRpb25Db250ZW50IHtcbiAgICBAQ29udGVudENoaWxkKFRVSV9PUFRJT05fQ09OVEVOVCwge2Rlc2NlbmRhbnRzOiB0cnVlfSlcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxDb250ZW50OiBUeXBlPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBnbG9iYWxDb250ZW50ID0gaW5qZWN0PFR5cGU8YW55Pj4oVFVJX09QVElPTl9DT05URU5ULCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IFR5cGU8YW55PiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5nbG9iYWxDb250ZW50ID8/IHRoaXMubG9jYWxDb250ZW50O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { WA_WINDOW } from '@ng-web-apis/common';
|
|
4
|
-
import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
|
|
4
|
+
import { tuiCloseWatcher, tuiTypedFromEvent, tuiZonefull } from '@taiga-ui/cdk/observables';
|
|
5
5
|
import { tuiContainsOrAfter, tuiGetActualTarget, tuiInjectElement, tuiIsElement, } from '@taiga-ui/cdk/utils/dom';
|
|
6
6
|
import { tuiGetViewportWidth } from '@taiga-ui/core/utils';
|
|
7
7
|
import { filter, map, merge, Observable, switchMap, take } from 'rxjs';
|
|
@@ -9,13 +9,16 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
const SCROLLBAR_PLACEHOLDER = 17;
|
|
10
10
|
class TuiDialogCloseService extends Observable {
|
|
11
11
|
constructor() {
|
|
12
|
-
super((subscriber) => merge(this.esc$, this.mousedown
|
|
12
|
+
super((subscriber) => merge(this.esc$, this.mousedown$, tuiCloseWatcher().pipe(tuiZonefull())).subscribe(subscriber));
|
|
13
13
|
this.win = inject(WA_WINDOW);
|
|
14
14
|
this.doc = inject(DOCUMENT);
|
|
15
15
|
this.el = tuiInjectElement();
|
|
16
16
|
this.esc$ = tuiTypedFromEvent(this.doc, 'keydown').pipe(filter((event) => {
|
|
17
17
|
const target = tuiGetActualTarget(event);
|
|
18
|
-
return (
|
|
18
|
+
return (
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
typeof CloseWatcher === 'undefined' &&
|
|
21
|
+
event.key.toLowerCase() === 'escape' &&
|
|
19
22
|
!event.defaultPrevented &&
|
|
20
23
|
(this.el.contains(target) || this.isOutside(target)));
|
|
21
24
|
}));
|
|
@@ -33,4 +36,4 @@ export { TuiDialogCloseService };
|
|
|
33
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDialogCloseService, decorators: [{
|
|
34
37
|
type: Injectable
|
|
35
38
|
}], ctorParameters: function () { return []; } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNsb3NlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy1jbG9zZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsWUFBWSxHQUNmLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUVyRSxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztBQUVqQyxNQUNhLHFCQUFzQixTQUFRLFVBQW1CO0lBa0MxRDtRQUNJLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2pCLEtBQUssQ0FDRCxJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxVQUFVLEVBQ2YsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3hDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUMxQixDQUFDO1FBeENXLFFBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixTQUFJLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQy9ELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2IsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekMsT0FBTztZQUNILGFBQWE7WUFDYixPQUFPLFlBQVksS0FBSyxXQUFXO2dCQUNuQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVE7Z0JBQ3BDLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtnQkFDdkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRWUsZUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN2RSxNQUFNLENBQ0YsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNOLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLHFCQUFxQjtZQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2hELEVBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNYLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQ3ZCLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUM3QyxDQUNKLENBQ0osQ0FBQztJQVVGLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBbUI7UUFDakMsT0FBTyxDQUNILFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDcEIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDL0QsQ0FBQztJQUNOLENBQUM7K0dBakRRLHFCQUFxQjttSEFBckIscUJBQXFCOztTQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dBX1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aUNsb3NlV2F0Y2hlciwgdHVpVHlwZWRGcm9tRXZlbnQsIHR1aVpvbmVmdWxsfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ29udGFpbnNPckFmdGVyLFxuICAgIHR1aUdldEFjdHVhbFRhcmdldCxcbiAgICB0dWlJbmplY3RFbGVtZW50LFxuICAgIHR1aUlzRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlHZXRWaWV3cG9ydFdpZHRofSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCB0YWtlfSBmcm9tICdyeGpzJztcblxuY29uc3QgU0NST0xMQkFSX1BMQUNFSE9MREVSID0gMTc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUdWlEaWFsb2dDbG9zZVNlcnZpY2UgZXh0ZW5kcyBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbiA9IGluamVjdChXQV9XSU5ET1cpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlc2MkID0gdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5kb2MsICdrZXlkb3duJykucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHVpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdHlwZW9mIENsb3NlV2F0Y2hlciA9PT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICAgICBldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2VzY2FwZScgJiZcbiAgICAgICAgICAgICAgICAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJlxuICAgICAgICAgICAgICAgICh0aGlzLmVsLmNvbnRhaW5zKHRhcmdldCkgfHwgdGhpcy5pc091dHNpZGUodGFyZ2V0KSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vdXNlZG93biQgPSB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmRvYywgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudCkgPT5cbiAgICAgICAgICAgICAgICB0dWlHZXRWaWV3cG9ydFdpZHRoKHRoaXMud2luKSAtIGV2ZW50LmNsaWVudFggPiBTQ1JPTExCQVJfUExBQ0VIT0xERVIgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3V0c2lkZSh0dWlHZXRBY3R1YWxUYXJnZXQoZXZlbnQpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmRvYywgJ21vdXNldXAnKS5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgbWFwKHR1aUdldEFjdHVhbFRhcmdldCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh0YXJnZXQpID0+IHRoaXMuaXNPdXRzaWRlKHRhcmdldCkpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKChzdWJzY3JpYmVyKSA9PlxuICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5lc2MkLFxuICAgICAgICAgICAgICAgIHRoaXMubW91c2Vkb3duJCxcbiAgICAgICAgICAgICAgICB0dWlDbG9zZVdhdGNoZXIoKS5waXBlKHR1aVpvbmVmdWxsKCkpLFxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlciksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc091dHNpZGUodGFyZ2V0OiBFdmVudFRhcmdldCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNFbGVtZW50KHRhcmdldCkgJiZcbiAgICAgICAgICAgICghdHVpQ29udGFpbnNPckFmdGVyKHRoaXMuZWwsIHRhcmdldCkgfHwgdGFyZ2V0ID09PSB0aGlzLmVsKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|