@koobiq/components 18.30.0 → 18.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions-panel/actions-panel-config.d.ts +2 -0
- package/actions-panel/actions-panel.d.ts +3 -57
- package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
- package/autocomplete/autocomplete.component.d.ts +1 -0
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/button-toggle/button-toggle.module.d.ts +3 -4
- package/code-block/code-block-highlight.d.ts +1 -2
- package/code-block/code-block.d.ts +57 -10
- package/core/common-behaviors/color.d.ts +3 -0
- package/core/common-behaviors/common-module.d.ts +16 -3
- package/core/common-behaviors/error-state.d.ts +18 -0
- package/core/common-behaviors/index.d.ts +1 -1
- package/core/form-field/form-field-ref.d.ts +5 -3
- package/core/option/_option-theme.scss +24 -2
- package/core/option/option.d.ts +2 -2
- package/core/public-api.d.ts +1 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +1 -1
- package/core/styles/common/_select.scss +10 -24
- package/core/styles/theming/_theming.scss +0 -4
- package/core/tokens/index.d.ts +1 -0
- package/core/tokens/window.d.ts +5 -0
- package/core/validation/validation.d.ts +23 -2
- package/datepicker/datepicker-input.directive.d.ts +14 -5
- package/datepicker/datepicker-input.scss +1 -5
- package/datepicker/datepicker-module.d.ts +1 -1
- package/datepicker/datepicker-toggle.component.d.ts +22 -0
- package/datepicker/datepicker-toggle.scss +6 -0
- package/dropdown/dropdown-trigger.directive.d.ts +1 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
- package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +16 -113
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
- package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
- package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
- package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
- package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
- package/esm2022/code-block/code-block-highlight.mjs +8 -12
- package/esm2022/code-block/code-block.mjs +60 -18
- package/esm2022/core/common-behaviors/color.mjs +4 -1
- package/esm2022/core/common-behaviors/common-module.mjs +19 -26
- package/esm2022/core/common-behaviors/error-state.mjs +28 -1
- package/esm2022/core/common-behaviors/index.mjs +2 -2
- package/esm2022/core/form-field/form-field-ref.mjs +3 -4
- package/esm2022/core/option/option.mjs +9 -7
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
- package/esm2022/core/tokens/index.mjs +2 -0
- package/esm2022/core/tokens/window.mjs +19 -0
- package/esm2022/core/utils/utils.mjs +2 -1
- package/esm2022/core/validation/validation.mjs +21 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-body.component.mjs +3 -3
- package/esm2022/datepicker/calendar-header.component.mjs +3 -3
- package/esm2022/datepicker/datepicker-input.directive.mjs +66 -6
- package/esm2022/datepicker/datepicker-module.mjs +8 -3
- package/esm2022/datepicker/datepicker-toggle.component.mjs +94 -10
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
- package/esm2022/filter-bar/filter-bar.mjs +27 -5
- package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
- package/esm2022/filter-bar/filter-search.mjs +2 -2
- package/esm2022/filter-bar/filters.mjs +3 -3
- package/esm2022/filter-bar/pipe-add.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-date.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +29 -9
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +30 -10
- package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
- package/esm2022/form-field/cleaner.mjs +11 -6
- package/esm2022/form-field/error.mjs +20 -0
- package/esm2022/form-field/fieldset.mjs +84 -0
- package/esm2022/form-field/form-field-control.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +247 -74
- package/esm2022/form-field/form-field.module.mjs +59 -47
- package/esm2022/form-field/hint.mjs +10 -18
- package/esm2022/form-field/label.mjs +19 -0
- package/esm2022/form-field/password-hint.mjs +6 -5
- package/esm2022/form-field/password-toggle.mjs +52 -27
- package/esm2022/form-field/prefix.mjs +9 -3
- package/esm2022/form-field/public-api.mjs +5 -2
- package/esm2022/form-field/reactive-password-hint.mjs +65 -0
- package/esm2022/form-field/stepper.mjs +34 -16
- package/esm2022/form-field/suffix.mjs +8 -3
- package/esm2022/form-field/validate.directive.mjs +16 -19
- package/esm2022/icon/icon-button.component.mjs +2 -2
- package/esm2022/input/input-number.mjs +7 -2
- package/esm2022/input/input.module.mjs +1 -5
- package/esm2022/list/list-selection.component.mjs +5 -4
- package/esm2022/list/list.component.mjs +2 -2
- package/esm2022/modal/modal-util.mjs +2 -1
- package/esm2022/navbar/navbar-item.component.mjs +10 -11
- package/esm2022/overflow-items/overflow-items.mjs +27 -10
- package/esm2022/radio/radio.module.mjs +4 -5
- package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
- package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
- package/esm2022/select/select.component.mjs +39 -18
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
- package/esm2022/splitter/splitter.component.mjs +5 -3
- package/esm2022/tabs/paginated-tab-header.mjs +6 -2
- package/esm2022/tabs/tabs.module.mjs +1 -5
- package/esm2022/tags/tag-list.component.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +7 -6
- package/esm2022/textarea/textarea.module.mjs +4 -5
- package/esm2022/timezone/timezone-option.component.mjs +2 -2
- package/esm2022/timezone/timezone-select.component.mjs +6 -4
- package/esm2022/toast/toast-animations.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/toggle/toggle.component.mjs +3 -3
- package/esm2022/toggle/toggle.module.mjs +4 -5
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree/padding.directive.mjs +8 -6
- package/esm2022/tree/toggle.mjs +2 -2
- package/esm2022/tree/tree-option.component.mjs +5 -4
- package/esm2022/tree/tree-selection.component.mjs +2 -2
- package/esm2022/tree/tree.mjs +2 -2
- package/esm2022/tree-select/tree-select.component.mjs +48 -24
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +5 -5
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +65 -28
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +99 -39
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +162 -14
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +5 -4
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +95 -46
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +610 -219
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +7 -5
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +6 -5
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +1 -0
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +9 -10
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +4 -4
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +39 -18
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +1 -4
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +4 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +5 -5
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +2 -2
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +9 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +7 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +3 -3
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +6 -6
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +2 -2
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +48 -24
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +17 -14
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/multiple-file-upload.component.d.ts +1 -1
- package/filter-bar/filter-bar.d.ts +7 -1
- package/filter-bar/filter-bar.types.d.ts +5 -0
- package/filter-bar/pipes/pipe-multi-select.d.ts +5 -1
- package/filter-bar/pipes/pipe-multi-tree-select.d.ts +5 -1
- package/form-field/_fiedset-theme.scss +13 -0
- package/form-field/_form-field-theme.scss +29 -13
- package/form-field/_hint-theme.scss +21 -22
- package/form-field/cleaner.d.ts +5 -1
- package/form-field/cleaner.scss +1 -4
- package/form-field/error.d.ts +8 -0
- package/form-field/fieldset-tokens.scss +5 -0
- package/form-field/fieldset.d.ts +27 -0
- package/form-field/fieldset.scss +93 -0
- package/form-field/form-field-control.d.ts +1 -1
- package/form-field/form-field-tokens.scss +13 -3
- package/form-field/form-field.d.ts +210 -22
- package/form-field/form-field.module.d.ts +14 -12
- package/form-field/form-field.scss +58 -78
- package/form-field/hint.d.ts +5 -1
- package/form-field/hint.scss +3 -5
- package/form-field/label.d.ts +6 -0
- package/form-field/password-hint.d.ts +1 -1
- package/form-field/password-toggle.d.ts +25 -11
- package/form-field/password-toggle.scss +1 -2
- package/form-field/prefix.d.ts +2 -1
- package/form-field/public-api.d.ts +4 -1
- package/form-field/reactive-password-hint.d.ts +19 -0
- package/form-field/stepper.d.ts +20 -8
- package/form-field/stepper.scss +12 -11
- package/form-field/suffix.d.ts +2 -1
- package/form-field/validate.directive.d.ts +10 -12
- package/icon/_icon-button-theme.scss +67 -85
- package/input/input-tokens.scss +2 -2
- package/input/input.module.d.ts +3 -4
- package/input/input.scss +1 -2
- package/list/_list-theme.scss +24 -2
- package/list/list-tokens.scss +5 -0
- package/navbar/navbar-item.component.d.ts +3 -1
- package/overflow-items/overflow-items.d.ts +12 -5
- package/package.json +6 -6
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.module.d.ts +1 -2
- package/schematics/ng-add/index.js +5 -5
- package/scrollbar/scrollbar.component.d.ts +1 -0
- package/select/select-tokens.scss +5 -4
- package/select/select.component.d.ts +12 -3
- package/sidepanel/sidepanel.module.d.ts +5 -6
- package/splitter/splitter.component.d.ts +1 -0
- package/tabs/paginated-tab-header.d.ts +1 -0
- package/tabs/tabs.module.d.ts +5 -6
- package/tags/tag-list.scss +8 -4
- package/textarea/textarea.component.d.ts +1 -0
- package/textarea/textarea.module.d.ts +2 -3
- package/timepicker/timepicker.scss +1 -1
- package/toast/toast.component.scss +2 -0
- package/toggle/_toggle-theme.scss +10 -2
- package/toggle/toggle-tokens.scss +7 -1
- package/toggle/toggle.module.d.ts +1 -2
- package/toggle/toggle.scss +6 -6
- package/top-bar/top-bar.scss +48 -32
- package/tree/_tree-theme.scss +30 -7
- package/tree/padding.directive.d.ts +1 -1
- package/tree/tree-option.scss +5 -2
- package/tree/tree-tokens.scss +5 -0
- package/tree-select/tree-select.component.d.ts +10 -1
- package/esm2022/form-field/form-field-errors.mjs +0 -7
- package/form-field/form-field-errors.d.ts +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnDestroy, Renderer2 } from '@angular/core';
|
|
1
|
+
import { AfterContentInit, DoCheck, ElementRef, EventEmitter, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
2
|
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
|
|
3
|
-
import { DateAdapter, KbqDateFormats, KbqLocaleService } from '@koobiq/components/core';
|
|
3
|
+
import { DateAdapter, ErrorStateMatcher, KbqDateFormats, KbqLocaleService } from '@koobiq/components/core';
|
|
4
4
|
import { KbqFormFieldControl } from '@koobiq/components/form-field';
|
|
5
5
|
import { KbqWarningTooltipTrigger } from '@koobiq/components/tooltip';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
@@ -31,14 +31,13 @@ export declare class KbqDatepickerInputEvent<D> {
|
|
|
31
31
|
targetElement: HTMLElement);
|
|
32
32
|
}
|
|
33
33
|
/** Directive used to connect an input to a KbqDatepicker. */
|
|
34
|
-
export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {
|
|
34
|
+
export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy, DoCheck, AfterContentInit {
|
|
35
35
|
elementRef: ElementRef<HTMLInputElement>;
|
|
36
36
|
private readonly renderer;
|
|
37
37
|
readonly adapter: DateAdapter<D>;
|
|
38
38
|
private readonly dateFormats;
|
|
39
39
|
private localeService;
|
|
40
40
|
readonly stateChanges: Subject<void>;
|
|
41
|
-
readonly errorState: boolean;
|
|
42
41
|
controlType: string;
|
|
43
42
|
focused: boolean;
|
|
44
43
|
datepicker: KbqDatepicker<D>;
|
|
@@ -48,6 +47,9 @@ export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, Co
|
|
|
48
47
|
valueChange: EventEmitter<D | null>;
|
|
49
48
|
/** Emits when the disabled state has changed */
|
|
50
49
|
disabledChange: EventEmitter<boolean>;
|
|
50
|
+
/** Object used to control when error messages are shown. */
|
|
51
|
+
get errorStateMatcher(): ErrorStateMatcher;
|
|
52
|
+
set errorStateMatcher(value: ErrorStateMatcher);
|
|
51
53
|
get placeholder(): string;
|
|
52
54
|
set placeholder(value: string);
|
|
53
55
|
private _placeholder;
|
|
@@ -90,6 +92,8 @@ export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, Co
|
|
|
90
92
|
get ngControl(): any;
|
|
91
93
|
get isReadOnly(): boolean;
|
|
92
94
|
get dateInputFormat(): string;
|
|
95
|
+
get errorState(): boolean;
|
|
96
|
+
set errorState(value: boolean);
|
|
93
97
|
private get readyForParse();
|
|
94
98
|
private get selectionStart();
|
|
95
99
|
private set selectionStart(value);
|
|
@@ -109,11 +113,14 @@ export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, Co
|
|
|
109
113
|
private thirdDigit;
|
|
110
114
|
private separatorPositions;
|
|
111
115
|
private usePlaceholderFromInput;
|
|
116
|
+
private errorStateTracker;
|
|
112
117
|
constructor(elementRef: ElementRef<HTMLInputElement>, renderer: Renderer2, adapter: DateAdapter<D>, dateFormats: KbqDateFormats, localeService: KbqLocaleService);
|
|
118
|
+
ngDoCheck(): void;
|
|
113
119
|
onContainerClick(): void;
|
|
114
120
|
focus(): void;
|
|
115
121
|
focusChanged(isFocused: boolean): void;
|
|
116
122
|
onTouched: () => void;
|
|
123
|
+
ngAfterContentInit(): void;
|
|
117
124
|
ngOnDestroy(): void;
|
|
118
125
|
/** @docs-private */
|
|
119
126
|
registerOnValidatorChange(fn: () => void): void;
|
|
@@ -131,6 +138,8 @@ export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, Co
|
|
|
131
138
|
onBlur(): void;
|
|
132
139
|
onPaste($event: any): any;
|
|
133
140
|
toISO8601(value: D): string;
|
|
141
|
+
/** Refreshes the error state of the input. */
|
|
142
|
+
updateErrorState(): void;
|
|
134
143
|
private saveTimePart;
|
|
135
144
|
private updateLocaleParams;
|
|
136
145
|
private setFormat;
|
|
@@ -191,5 +200,5 @@ export declare class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, Co
|
|
|
191
200
|
private createDateTime;
|
|
192
201
|
private correctCursorPosition;
|
|
193
202
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqDatepickerInput<any>, [null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
194
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqDatepickerInput<any>, "input[kbqDatepicker], input[kbqCalendar]", ["kbqDatepickerInput"], { "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "kbqDatepicker": { "alias": "kbqDatepicker"; "required": false; }; "kbqCalendar": { "alias": "kbqCalendar"; "required": false; }; "kbqDatepickerFilter": { "alias": "kbqDatepickerFilter"; "required": false; }; "value": { "alias": "value"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "kbqValidationTooltip": { "alias": "kbqValidationTooltip"; "required": false; }; }, { "incorrectInput": "incorrectInput"; "dateChange": "dateChange"; "dateInput": "dateInput"; }, never, never, false, never>;
|
|
203
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqDatepickerInput<any>, "input[kbqDatepicker], input[kbqCalendar]", ["kbqDatepickerInput"], { "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "kbqDatepicker": { "alias": "kbqDatepicker"; "required": false; }; "kbqCalendar": { "alias": "kbqCalendar"; "required": false; }; "kbqDatepickerFilter": { "alias": "kbqDatepickerFilter"; "required": false; }; "value": { "alias": "value"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "kbqValidationTooltip": { "alias": "kbqValidationTooltip"; "required": false; }; }, { "incorrectInput": "incorrectInput"; "dateChange": "dateChange"; "dateInput": "dateInput"; }, never, never, false, never>;
|
|
195
204
|
}
|
|
@@ -15,6 +15,6 @@ import * as i13 from "@koobiq/components/icon";
|
|
|
15
15
|
import * as i14 from "@angular/common";
|
|
16
16
|
export declare class KbqDatepickerModule {
|
|
17
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqDatepickerModule, never>;
|
|
18
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<KbqDatepickerModule, [typeof i1.KbqCalendar, typeof i2.KbqCalendarBody, typeof i3.KbqDatepicker, typeof i3.KbqDatepickerContent, typeof i4.KbqDatepickerInput, typeof i5.KbqDatepickerToggle, typeof i5.KbqDatepickerToggleIcon, typeof i6.KbqMonthView, typeof i7.KbqCalendarHeader], [typeof i8.KbqButtonModule, typeof i9.OverlayModule, typeof i10.A11yModule, typeof i11.PortalModule, typeof i12.KbqSelectModule, typeof i13.KbqIconModule, typeof i14.NgClass, typeof i14.TitleCasePipe], [typeof i1.KbqCalendar, typeof i2.KbqCalendarBody, typeof i3.KbqDatepicker, typeof i3.KbqDatepickerContent, typeof i4.KbqDatepickerInput, typeof i5.KbqDatepickerToggle, typeof i5.KbqDatepickerToggleIcon, typeof i6.KbqMonthView, typeof i7.KbqCalendarHeader]>;
|
|
18
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<KbqDatepickerModule, [typeof i1.KbqCalendar, typeof i2.KbqCalendarBody, typeof i3.KbqDatepicker, typeof i3.KbqDatepickerContent, typeof i4.KbqDatepickerInput, typeof i5.KbqDatepickerToggle, typeof i5.KbqDatepickerToggleIcon, typeof i6.KbqMonthView, typeof i7.KbqCalendarHeader], [typeof i8.KbqButtonModule, typeof i9.OverlayModule, typeof i10.A11yModule, typeof i11.PortalModule, typeof i12.KbqSelectModule, typeof i13.KbqIconModule, typeof i5.KbqDatepickerToggleIconComponent, typeof i14.NgClass, typeof i14.TitleCasePipe], [typeof i1.KbqCalendar, typeof i2.KbqCalendarBody, typeof i3.KbqDatepicker, typeof i3.KbqDatepickerContent, typeof i4.KbqDatepickerInput, typeof i5.KbqDatepickerToggle, typeof i5.KbqDatepickerToggleIcon, typeof i5.KbqDatepickerToggleIconComponent, typeof i6.KbqMonthView, typeof i7.KbqCalendarHeader]>;
|
|
19
19
|
static ɵinj: i0.ɵɵInjectorDeclaration<KbqDatepickerModule>;
|
|
20
20
|
}
|
|
@@ -8,6 +8,28 @@ export declare class KbqDatepickerToggleIcon {
|
|
|
8
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqDatepickerToggleIcon, never>;
|
|
9
9
|
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqDatepickerToggleIcon, "[kbqDatepickerToggleIcon]", never, {}, {}, never, never, false, never>;
|
|
10
10
|
}
|
|
11
|
+
export declare class KbqDatepickerToggleIconComponent<D> implements AfterContentInit, OnChanges, OnDestroy {
|
|
12
|
+
/** Whether the toggle button is disabled. */
|
|
13
|
+
get disabled(): boolean;
|
|
14
|
+
set disabled(value: boolean);
|
|
15
|
+
private _disabled;
|
|
16
|
+
/** Datepicker instance that the button will toggle. */
|
|
17
|
+
datepicker: KbqDatepicker<D>;
|
|
18
|
+
private readonly destroyRef;
|
|
19
|
+
private readonly cdr;
|
|
20
|
+
private stateChangesSubscription;
|
|
21
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
22
|
+
ngAfterContentInit(): void;
|
|
23
|
+
ngOnDestroy(): void;
|
|
24
|
+
/** Open datepicker */
|
|
25
|
+
open($event: MouseEvent): void;
|
|
26
|
+
private watchStateChanges;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqDatepickerToggleIconComponent<any>, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqDatepickerToggleIconComponent<any>, "kbq-datepicker-toggle-icon", never, { "disabled": { "alias": "disabled"; "required": false; }; "datepicker": { "alias": "for"; "required": false; }; }, {}, never, ["[kbqDatepickerToggleIcon]"], true, never>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Use `KbqDatepickerToggleIconComponent` instead
|
|
32
|
+
*/
|
|
11
33
|
export declare class KbqDatepickerToggle<D> implements AfterContentInit, OnChanges, OnDestroy {
|
|
12
34
|
intl: KbqDatepickerIntl;
|
|
13
35
|
private changeDetectorRef;
|
|
@@ -34,6 +34,7 @@ export declare class KbqDropdownTrigger implements AfterContentInit, OnDestroy {
|
|
|
34
34
|
private changeDetectorRef;
|
|
35
35
|
private focusMonitor?;
|
|
36
36
|
protected readonly isBrowser: boolean;
|
|
37
|
+
private readonly window;
|
|
37
38
|
lastDestroyReason: DropdownCloseReason;
|
|
38
39
|
/** Data to be passed along to any lazily-rendered content. */
|
|
39
40
|
data: any;
|
|
@@ -13,13 +13,19 @@ export declare class KbqEllipsisCenterDirective extends KbqTooltipTrigger implem
|
|
|
13
13
|
* @default 50
|
|
14
14
|
*/
|
|
15
15
|
debounceInterval: number;
|
|
16
|
+
/** @docs-private */
|
|
16
17
|
readonly resizeStream: Subject<Event>;
|
|
17
18
|
private _kbqEllipsisCenter;
|
|
18
19
|
private resizeSubscription;
|
|
19
20
|
ngOnInit(): void;
|
|
20
21
|
ngAfterViewInit(): void;
|
|
21
22
|
ngOnDestroy(): void;
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Updates the displayed text with center ellipsis truncation based on container width.
|
|
25
|
+
* Recreates start/end span elements, measures available space, and adjusts text accordingly.
|
|
26
|
+
* @docs-private
|
|
27
|
+
*/
|
|
28
|
+
refresh(): void;
|
|
23
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqEllipsisCenterDirective, never>;
|
|
24
30
|
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqEllipsisCenterDirective, "[kbqEllipsisCenter]", never, { "kbqEllipsisCenter": { "alias": "kbqEllipsisCenter"; "required": false; }; "minVisibleLength": { "alias": "minVisibleLength"; "required": false; }; "charWidth": { "alias": "charWidth"; "required": false; }; "debounceInterval": { "alias": "debounceInterval"; "required": false; }; }, {}, never, never, false, never>;
|
|
25
31
|
static ngAcceptInputType_debounceInterval: unknown;
|
|
@@ -52,4 +52,4 @@ export class KbqActionsPanelConfig {
|
|
|
52
52
|
this.disableClose = false;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1wYW5lbC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2FjdGlvbnMtcGFuZWwvYWN0aW9ucy1wYW5lbC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLGNBQWMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFFL0UsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUM5RCxrQ0FBa0MsRUFDbEMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsRUFBRSxFQUFFLENBQ2pELENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsQ0FBSSxNQUFnQyxFQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLE9BQU8sRUFBRSxnQ0FBZ0M7SUFDekMsUUFBUSxFQUFFLE1BQU07Q0FDbkIsQ0FBQyxDQUFDO0FBRUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUFsQztRQU1JOzs7O1dBSUc7UUFDSCxTQUFJLEdBQWMsSUFBSSxDQUFDO1FBS3ZCOzs7OztXQUtHO1FBQ0gsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO1FBK0JuQzs7OztXQUlHO1FBQ0gsY0FBUyxHQUFlLEtBQUssQ0FBQztRQUU5Qjs7OztXQUlHO1FBQ0gsbUJBQWMsR0FBMEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUzRzs7OztXQUlHO1FBQ0gsaUJBQVksR0FBYSxLQUFLLENBQUM7SUFDbkMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGRlZmF1bHQgYWN0aW9ucyBwYW5lbCBjb25maWcuICovXG5leHBvcnQgY29uc3QgS0JRX0FDVElPTlNfUEFORUxfREVGQVVMVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48S2JxQWN0aW9uc1BhbmVsQ29uZmlnPihcbiAgICAnS0JRX0FDVElPTlNfUEFORUxfREVGQVVMVF9DT05GSUcnLFxuICAgIHsgZmFjdG9yeTogKCkgPT4gbmV3IEticUFjdGlvbnNQYW5lbENvbmZpZygpIH1cbik7XG5cbi8qKlxuICogVXRpbGl0eSBmb3IgcHJvdmlkaW5nIGRlZmF1bHQgYWN0aW9ucyBwYW5lbCBjb25maWcuXG4gKlxuICogQHNlZSBgS0JRX0FDVElPTlNfUEFORUxfREVGQVVMVF9DT05GSUdgXG4gKi9cbmV4cG9ydCBjb25zdCBrYnFBY3Rpb25zUGFuZWxEZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSA8RD4oY29uZmlnOiBLYnFBY3Rpb25zUGFuZWxDb25maWc8RD4pOiBQcm92aWRlciA9PiAoe1xuICAgIHByb3ZpZGU6IEtCUV9BQ1RJT05TX1BBTkVMX0RFRkFVTFRfQ09ORklHLFxuICAgIHVzZVZhbHVlOiBjb25maWdcbn0pO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5lZCBhY3Rpb25zIHBhbmVsLlxuICogQmFzZWQgb24gY2RrIGBEaWFsb2dDb25maWdgLlxuICpcbiAqIEBzZWUgYERpYWxvZ0NvbmZpZ2BcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBLYnFBY3Rpb25zUGFuZWxDb25maWc8RCA9IHVua25vd24+IHtcbiAgICAvKipcbiAgICAgKiBJbmplY3RvciB1c2VkIGZvciB0aGUgaW5zdGFudGlhdGlvbiBvZiB0aGUgY29tcG9uZW50IHRvIGJlIGF0dGFjaGVkLlxuICAgICAqL1xuICAgIGluamVjdG9yPzogSW5qZWN0b3I7XG5cbiAgICAvKipcbiAgICAgKiBEYXRhIGJlaW5nIGluamVjdGVkIGludG8gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBzZWUgYEtCUV9BQ1RJT05TX1BBTkVMX0RBVEFgXG4gICAgICovXG4gICAgZGF0YT86IEQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBFeHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgYWN0aW9ucyBwYW5lbCBjb250YWluZXIuICovXG4gICAgY29udGFpbmVyQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGFjdGlvbnMgcGFuZWwgc2hvdWxkIGJlIGNsb3NlZCBvZiB3aGVuIHRoZSB1c2VyIGdvZXMgYmFja3dhcmRzL2ZvcndhcmRzIGluIGhpc3RvcnkuXG4gICAgICogTk9URSEgVGhpcyBkb2VzIG5vdCBhcHBseSB0byByb3V0ZXIgbmF2aWdhdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBjbG9zZU9uTmF2aWdhdGlvbj86IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmxheSBjb250YWluZXIgZWxlbWVudCBpbiB3aGljaCB0aGUgYWN0aW9ucyBwYW5lbCBhcmUgcmVuZGVyZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBgZG9jdW1lbnQuYm9keWBcbiAgICAgKi9cbiAgICBvdmVybGF5Q29udGFpbmVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgb3ZlcmxheSBwYW5lbC5cbiAgICAgKi9cbiAgICBvdmVybGF5UGFuZWxDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogV2lkdGggb2YgdGhlIGFjdGlvbnMgcGFuZWwuXG4gICAgICovXG4gICAgd2lkdGg/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNaW4td2lkdGggb2YgdGhlIGFjdGlvbnMgcGFuZWwuXG4gICAgICogSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuXG4gICAgICovXG4gICAgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNYXgtd2lkdGggb2YgdGhlIGFjdGlvbnMgcGFuZWwuXG4gICAgICogSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuXG4gICAgICovXG4gICAgbWF4V2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEaXJlY3Rpb24gb2YgdGhlIHRleHQgaW4gdGhlIGFjdGlvbnMgcGFuZWwuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnbHRyJ1xuICAgICAqL1xuICAgIGRpcmVjdGlvbj86IERpcmVjdGlvbiA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIHN0cmF0ZWd5IHRvIGJlIHVzZWQgZm9yIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgYFJlcG9zaXRpb25TY3JvbGxTdHJhdGVneWBcbiAgICAgKi9cbiAgICBzY3JvbGxTdHJhdGVneT86IChvdmVybGF5OiBPdmVybGF5KSA9PiBTY3JvbGxTdHJhdGVneSA9IChvdmVybGF5KSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdXNlciBjYW4gdXNlIEVTQyBvciBjbGljayBvbiBjbG9zZSBidXR0b24gdG8gY2xvc2UgdGhlIGFjdGlvbnMgcGFuZWwuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGRpc2FibGVDbG9zZT86IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { DOCUMENT, Location } from '@angular/common';
|
|
5
|
-
import { ANIMATION_MODULE_TYPE, ComponentFactoryResolver, Inject, inject, Injectable, InjectionToken, Injector, NgZone, Optional, SkipSelf } from '@angular/core';
|
|
1
|
+
import { Dialog } from '@angular/cdk/dialog';
|
|
2
|
+
import { Overlay, OverlayContainer } from '@angular/cdk/overlay';
|
|
3
|
+
import { inject, Injectable, InjectionToken, Injector } from '@angular/core';
|
|
6
4
|
import { KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KbqActionsPanelConfig } from './actions-panel-config';
|
|
7
5
|
import { KbqActionsPanelContainer } from './actions-panel-container';
|
|
8
6
|
import { KbqActionsPanelRef } from './actions-panel-ref';
|
|
9
7
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
11
|
-
import * as i2 from "@angular/cdk/bidi";
|
|
12
|
-
import * as i3 from "@angular/common";
|
|
13
|
-
import * as i4 from "@angular/cdk/dialog";
|
|
14
8
|
/** Injection token that can be used to access the data that was passed in to actions panel. */
|
|
15
9
|
export const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');
|
|
16
10
|
/**
|
|
@@ -25,109 +19,15 @@ export const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';
|
|
|
25
19
|
* @docs-private
|
|
26
20
|
*/
|
|
27
21
|
export const KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR = 'kbq-actions-panel-overlay-container';
|
|
28
|
-
/**
|
|
29
|
-
* Actions panel overlay container.
|
|
30
|
-
*
|
|
31
|
-
* @docs-private
|
|
32
|
-
*/
|
|
33
|
-
export class KbqActionsPanelOverlayContainer extends OverlayContainer {
|
|
34
|
-
/**
|
|
35
|
-
* Set the overlay container element.
|
|
36
|
-
*
|
|
37
|
-
* @param containerElement The element into which the overlay will be rendered.
|
|
38
|
-
* @returns Current OverlayContainer instance.
|
|
39
|
-
*/
|
|
40
|
-
setContainerElement(containerElement) {
|
|
41
|
-
this._containerElement = containerElement || this._document.body.querySelector('.cdk-overlay-container');
|
|
42
|
-
}
|
|
43
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlayContainer, providedIn: 'root' }); }
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlayContainer, decorators: [{
|
|
47
|
-
type: Injectable,
|
|
48
|
-
args: [{ providedIn: 'root' }]
|
|
49
|
-
}] });
|
|
50
|
-
/**
|
|
51
|
-
* Actions panel overlay.
|
|
52
|
-
*
|
|
53
|
-
* @docs-private
|
|
54
|
-
*/
|
|
55
|
-
export class KbqActionsPanelOverlay extends Overlay {
|
|
56
|
-
constructor(scrollStrategies, overlayContainer, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher, animationsModuleType) {
|
|
57
|
-
super(scrollStrategies, overlayContainer, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher, animationsModuleType);
|
|
58
|
-
this.overlayContainer = overlayContainer;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Set the overlay container element.
|
|
62
|
-
*
|
|
63
|
-
* @param containerElement The element into which the overlay will be rendered.
|
|
64
|
-
* @returns Current Overlay instance.
|
|
65
|
-
*/
|
|
66
|
-
setOverlayContainerElement(containerElement) {
|
|
67
|
-
this.overlayContainer.setContainerElement(containerElement);
|
|
68
|
-
}
|
|
69
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlay, deps: [{ token: i1.ScrollStrategyOptions }, { token: KbqActionsPanelOverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i1.OverlayPositionBuilder }, { token: i1.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i2.Directionality }, { token: i3.Location }, { token: i1.OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlay, providedIn: 'root' }); }
|
|
71
|
-
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelOverlay, decorators: [{
|
|
73
|
-
type: Injectable,
|
|
74
|
-
args: [{ providedIn: 'root' }]
|
|
75
|
-
}], ctorParameters: () => [{ type: i1.ScrollStrategyOptions }, { type: KbqActionsPanelOverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: i1.OverlayPositionBuilder }, { type: i1.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
76
|
-
type: Inject,
|
|
77
|
-
args: [DOCUMENT]
|
|
78
|
-
}] }, { type: i2.Directionality }, { type: i3.Location }, { type: i1.OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{
|
|
79
|
-
type: Inject,
|
|
80
|
-
args: [ANIMATION_MODULE_TYPE]
|
|
81
|
-
}, {
|
|
82
|
-
type: Optional
|
|
83
|
-
}] }] });
|
|
84
|
-
/**
|
|
85
|
-
* Actions panel dialog service.
|
|
86
|
-
*
|
|
87
|
-
* @docs-private
|
|
88
|
-
*/
|
|
89
|
-
export class KbqActionsPanelDialog extends Dialog {
|
|
90
|
-
constructor(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy) {
|
|
91
|
-
super(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy);
|
|
92
|
-
this.overlay = overlay;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Set the dialog overlay container element.
|
|
96
|
-
*
|
|
97
|
-
* @param containerElement The element into which the overlay will be rendered.
|
|
98
|
-
* @returns Current dialog instance.
|
|
99
|
-
*/
|
|
100
|
-
setOverlayContainerElement(containerElement) {
|
|
101
|
-
this.overlay.setOverlayContainerElement(containerElement);
|
|
102
|
-
return this;
|
|
103
|
-
}
|
|
104
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelDialog, deps: [{ token: KbqActionsPanelOverlay }, { token: i0.Injector }, { token: DEFAULT_DIALOG_CONFIG, optional: true }, { token: i4.Dialog, optional: true, skipSelf: true }, { token: KbqActionsPanelOverlayContainer }, { token: DIALOG_SCROLL_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
105
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelDialog, providedIn: 'root' }); }
|
|
106
|
-
}
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqActionsPanelDialog, decorators: [{
|
|
108
|
-
type: Injectable,
|
|
109
|
-
args: [{ providedIn: 'root' }]
|
|
110
|
-
}], ctorParameters: () => [{ type: KbqActionsPanelOverlay }, { type: i0.Injector }, { type: i4.DialogConfig, decorators: [{
|
|
111
|
-
type: Optional
|
|
112
|
-
}, {
|
|
113
|
-
type: Inject,
|
|
114
|
-
args: [DEFAULT_DIALOG_CONFIG]
|
|
115
|
-
}] }, { type: i4.Dialog, decorators: [{
|
|
116
|
-
type: Optional
|
|
117
|
-
}, {
|
|
118
|
-
type: SkipSelf
|
|
119
|
-
}] }, { type: KbqActionsPanelOverlayContainer }, { type: undefined, decorators: [{
|
|
120
|
-
type: Inject,
|
|
121
|
-
args: [DIALOG_SCROLL_STRATEGY]
|
|
122
|
-
}] }] });
|
|
123
22
|
/**
|
|
124
23
|
* Service for opening actions panel.
|
|
125
24
|
*/
|
|
126
25
|
export class KbqActionsPanel {
|
|
127
26
|
constructor() {
|
|
128
27
|
this.injector = inject(Injector);
|
|
129
|
-
this.overlay = inject(
|
|
130
|
-
this.
|
|
28
|
+
this.overlay = inject(Overlay);
|
|
29
|
+
this.overlayContainer = inject(OverlayContainer);
|
|
30
|
+
this.dialog = inject(Dialog);
|
|
131
31
|
this.defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);
|
|
132
32
|
/** The reference to the currently opened actions panel. */
|
|
133
33
|
this.openedActionsPanelRef = null;
|
|
@@ -164,11 +64,14 @@ export class KbqActionsPanel {
|
|
|
164
64
|
}
|
|
165
65
|
openDialog(componentOrTemplateRef, config = {}) {
|
|
166
66
|
let actionsPanelRef;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
.
|
|
171
|
-
|
|
67
|
+
if (config.overlayContainer) {
|
|
68
|
+
// We should override protected `_containerElement` property to set custom container without creating
|
|
69
|
+
// new `OverlayContainer` instance.
|
|
70
|
+
this.overlayContainer['_containerElement'] = config.overlayContainer.nativeElement;
|
|
71
|
+
}
|
|
72
|
+
const overlayContainerElement = this.overlayContainer.getContainerElement();
|
|
73
|
+
overlayContainerElement.classList.add(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);
|
|
74
|
+
const dialogRef = this.dialog.open(componentOrTemplateRef, {
|
|
172
75
|
...config,
|
|
173
76
|
container: KbqActionsPanelContainer,
|
|
174
77
|
restoreFocus: false,
|
|
@@ -206,7 +109,7 @@ export class KbqActionsPanel {
|
|
|
206
109
|
dialogRef.addPanelClass(config.overlayPanelClass);
|
|
207
110
|
}
|
|
208
111
|
actionsPanelRef?.afterClosed.subscribe(() => {
|
|
209
|
-
overlayContainerElement
|
|
112
|
+
overlayContainerElement.classList.remove(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);
|
|
210
113
|
});
|
|
211
114
|
return actionsPanelRef;
|
|
212
115
|
}
|
|
@@ -217,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
217
120
|
type: Injectable,
|
|
218
121
|
args: [{ providedIn: 'root' }]
|
|
219
122
|
}] });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYWN0aW9ucy1wYW5lbC9hY3Rpb25zLXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFFSCxPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUNILHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLE1BQU0sRUFDTixVQUFVLEVBQ1YsY0FBYyxFQUNkLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFFBQVEsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRXpELCtGQUErRjtBQUMvRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBd0NuRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsMkJBQTJCLENBQUM7QUFFOUU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRDQUE0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LEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDcEUsQ0FBQztZQUNGLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEVBQUU7Z0JBQy9DLGVBQWUsR0FBRyxJQUFJLGtCQUFrQixDQUFPLFNBQVMsRUFBRSxTQUFxQyxDQUFDLENBQUM7Z0JBRWpHLE9BQU87b0JBQ0gsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRTtvQkFDMUQsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7aUJBQzdELENBQUM7WUFDTixDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBRVAsU0FBUyxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBRTVELElBQUksTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsZUFBZSxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUM1RixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7a0lBaElRLGVBQWU7c0lBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgREVGQVVMVF9ESUFMT0dfQ09ORklHLCBEaWFsb2csIERJQUxPR19TQ1JPTExfU1RSQVRFR1ksIERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnRUeXBlLFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbnRhaW5lcixcbiAgICBPdmVybGF5S2V5Ym9hcmREaXNwYXRjaGVyLFxuICAgIE92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLFxuICAgIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERPQ1VNRU5ULCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFOSU1BVElPTl9NT0RVTEVfVFlQRSxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgSW5qZWN0LFxuICAgIGluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIEluamVjdG9yLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLQlFfQUNUSU9OU19QQU5FTF9ERUZBVUxUX0NPTkZJRywgS2JxQWN0aW9uc1BhbmVsQ29uZmlnIH0gZnJvbSAnLi9hY3Rpb25zLXBhbmVsLWNvbmZpZyc7XG5pbXBvcnQgeyBLYnFBY3Rpb25zUGFuZWxDb250YWluZXIgfSBmcm9tICcuL2FjdGlvbnMtcGFuZWwtY29udGFpbmVyJztcbmltcG9ydCB7IEticUFjdGlvbnNQYW5lbFJlZiB9IGZyb20gJy4vYWN0aW9ucy1wYW5lbC1yZWYnO1xuXG4vKiogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBkYXRhIHRoYXQgd2FzIHBhc3NlZCBpbiB0byBhY3Rpb25zIHBhbmVsLiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9BQ1RJT05TX1BBTkVMX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0tCUV9BQ1RJT05TX1BBTkVMX0RBVEEnKTtcblxuLyoqXG4gKiBDb250ZXh0IGZvciBhY3Rpb25zIHBhbmVsIHRlbXBsYXRlLlxuICovXG5leHBvcnQgdHlwZSBLYnFBY3Rpb25zUGFuZWxUZW1wbGF0ZUNvbnRleHQ8VCA9IHVua25vd24sIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4gPSB7XG4gICAgLyoqXG4gICAgICogRGF0YSBwYXNzZWQgdG8gYWN0aW9ucyBwYW5lbC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPG5nLXRlbXBsYXRlICNhY3Rpb25zUGFuZWwgbGV0LWRhdGE+e3sgZGF0YS5LRVkgfX08L25nLXRlbXBsYXRlPlxuICAgICAqIGBgYGBcbiAgICAgKi9cbiAgICAkaW1wbGljaXQ/OiBEIHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBEYXRhIHBhc3NlZCB0byBhY3Rpb25zIHBhbmVsLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmctdGVtcGxhdGUgI2FjdGlvbnNQYW5lbCBsZXQtZGF0YT1cImRhdGFcIj57eyBkYXRhLktFWSB9fTwvbmctdGVtcGxhdGU+XG4gICAgICogYGBgYFxuICAgICAqL1xuICAgIGRhdGE/OiBEIHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBPcGVuZWQgYWN0aW9ucyBwYW5lbCByZWZlcmVuY2UuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxuZy10ZW1wbGF0ZSAjYWN0aW9uc1BhbmVsIGxldC1hY3Rpb25zUGFuZWxSZWY9XCJhY3Rpb25zUGFuZWxSZWZcIj5cbiAgICAgKiAgIDxidXR0b24gKGNsaWNrKT1cImFjdGlvbnNQYW5lbFJlZi5jbG9zZSgpXCI+Y2xvc2U8L2J1dHRvbj5cbiAgICAgKiA8L25nLXRlbXBsYXRlPlxuICAgICAqIGBgYGBcbiAgICAgKi9cbiAgICBhY3Rpb25zUGFuZWxSZWY6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPjtcbn07XG5cbi8qKlxuICogU2VsZWN0b3IgZm9yIGFjdGlvbnMgcGFuZWwgb3ZlcmxheS5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX1NFTEVDVE9SID0gJ2ticS1hY3Rpb25zLXBhbmVsLW92ZXJsYXknO1xuXG4vKipcbiAqIFNlbGVjdG9yIGZvciBjdXN0b20gYWN0aW9ucyBwYW5lbCBvdmVybGF5IGNvbnRhaW5lci5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX0NPTlRBSU5FUl9TRUxFQ1RPUiA9ICdrYnEtYWN0aW9ucy1wYW5lbC1vdmVybGF5LWNvbnRhaW5lcic7XG5cbi8qKlxuICogQWN0aW9ucyBwYW5lbCBvdmVybGF5IGNvbnRhaW5lci5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgS2JxQWN0aW9uc1BhbmVsT3ZlcmxheUNvbnRhaW5lciBleHRlbmRzIE92ZXJsYXlDb250YWluZXIge1xuICAgIC8qKlxuICAgICAqIFNldCB0aGUgb3ZlcmxheSBjb250YWluZXIgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250YWluZXJFbGVtZW50IFRoZSBlbGVtZW50IGludG8gd2hpY2ggdGhlIG92ZXJsYXkgd2lsbCBiZSByZW5kZXJlZC5cbiAgICAgKiBAcmV0dXJucyBDdXJyZW50IE92ZXJsYXlDb250YWluZXIgaW5zdGFuY2UuXG4gICAgICovXG4gICAgc2V0Q29udGFpbmVyRWxlbWVudChjb250YWluZXJFbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnQgfHwgdGhpcy5fZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yKCcuY2RrLW92ZXJsYXktY29udGFpbmVyJykhO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBY3Rpb25zIHBhbmVsIG92ZXJsYXkuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEticUFjdGlvbnNQYW5lbE92ZXJsYXkgZXh0ZW5kcyBPdmVybGF5IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ2llczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXlDb250YWluZXI6IEticUFjdGlvbnNQYW5lbE92ZXJsYXlDb250YWluZXIsXG4gICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgICAgIGtleWJvYXJkRGlzcGF0Y2hlcjogT3ZlcmxheUtleWJvYXJkRGlzcGF0Y2hlcixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgIG91dHNpZGVDbGlja0Rpc3BhdGNoZXI6IE92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9NT0RVTEVfVFlQRSkgQE9wdGlvbmFsKCkgYW5pbWF0aW9uc01vZHVsZVR5cGU/OiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVnaWVzLFxuICAgICAgICAgICAgb3ZlcmxheUNvbnRhaW5lcixcbiAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgIHBvc2l0aW9uQnVpbGRlcixcbiAgICAgICAgICAgIGtleWJvYXJkRGlzcGF0Y2hlcixcbiAgICAgICAgICAgIGluamVjdG9yLFxuICAgICAgICAgICAgbmdab25lLFxuICAgICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgICBkaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgICAgb3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcbiAgICAgICAgICAgIGFuaW1hdGlvbnNNb2R1bGVUeXBlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBvdmVybGF5IGNvbnRhaW5lciBlbGVtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRhaW5lckVsZW1lbnQgVGhlIGVsZW1lbnQgaW50byB3aGljaCB0aGUgb3ZlcmxheSB3aWxsIGJlIHJlbmRlcmVkLlxuICAgICAqIEByZXR1cm5zIEN1cnJlbnQgT3ZlcmxheSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBzZXRPdmVybGF5Q29udGFpbmVyRWxlbWVudChjb250YWluZXJFbGVtZW50PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5Q29udGFpbmVyLnNldENvbnRhaW5lckVsZW1lbnQoY29udGFpbmVyRWxlbWVudCk7XG4gICAgfVxufVxuXG4vKipcbiAqIEFjdGlvbnMgcGFuZWwgZGlhbG9nIHNlcnZpY2UuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEticUFjdGlvbnNQYW5lbERpYWxvZyBleHRlbmRzIERpYWxvZyB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogS2JxQWN0aW9uc1BhbmVsT3ZlcmxheSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERFRkFVTFRfRElBTE9HX0NPTkZJRykgZGVmYXVsdE9wdGlvbnM6IERpYWxvZ0NvbmZpZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50RGlhbG9nOiBEaWFsb2csXG4gICAgICAgIG92ZXJsYXlDb250YWluZXI6IEticUFjdGlvbnNQYW5lbE92ZXJsYXlDb250YWluZXIsXG4gICAgICAgIEBJbmplY3QoRElBTE9HX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3k6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihvdmVybGF5LCBpbmplY3RvciwgZGVmYXVsdE9wdGlvbnMsIHBhcmVudERpYWxvZywgb3ZlcmxheUNvbnRhaW5lciwgc2Nyb2xsU3RyYXRlZ3kpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgZGlhbG9nIG92ZXJsYXkgY29udGFpbmVyIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyRWxlbWVudCBUaGUgZWxlbWVudCBpbnRvIHdoaWNoIHRoZSBvdmVybGF5IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAgICogQHJldHVybnMgQ3VycmVudCBkaWFsb2cgaW5zdGFuY2UuXG4gICAgICovXG4gICAgc2V0T3ZlcmxheUNvbnRhaW5lckVsZW1lbnQoY29udGFpbmVyRWxlbWVudD86IEhUTUxFbGVtZW50KTogdGhpcyB7XG4gICAgICAgIHRoaXMub3ZlcmxheS5zZXRPdmVybGF5Q29udGFpbmVyRWxlbWVudChjb250YWluZXJFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbi8qKlxuICogU2VydmljZSBmb3Igb3BlbmluZyBhY3Rpb25zIHBhbmVsLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEticUFjdGlvbnNQYW5lbCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KEticUFjdGlvbnNQYW5lbE92ZXJsYXkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KEticUFjdGlvbnNQYW5lbERpYWxvZyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29uZmlnID0gaW5qZWN0KEtCUV9BQ1RJT05TX1BBTkVMX0RFRkFVTFRfQ09ORklHKTtcblxuICAgIC8qKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50bHkgb3BlbmVkIGFjdGlvbnMgcGFuZWwuICovXG4gICAgcHJpdmF0ZSBvcGVuZWRBY3Rpb25zUGFuZWxSZWY6IEticUFjdGlvbnNQYW5lbFJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVucyBhY3Rpb25zIHBhbmVsLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgQ29tcG9uZW50IHRvIGJlIG9wZW5lZCBpbnRvIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqIEBwYXJhbSBjb25maWcgQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBvcGVuZWQgYWN0aW9ucyBwYW5lbC5cbiAgICAgKi9cbiAgICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPixcbiAgICAgICAgY29uZmlnPzogS2JxQWN0aW9uc1BhbmVsQ29uZmlnPEQ+XG4gICAgKTogS2JxQWN0aW9uc1BhbmVsUmVmPFQsIFI+O1xuXG4gICAgLyoqXG4gICAgICogT3BlbnMgYWN0aW9ucyBwYW5lbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0ZW1wbGF0ZSBUZW1wbGF0ZVJlZiB0byBiZSB1c2VkIGFzIHRoZSBjb250ZW50LlxuICAgICAqIEBwYXJhbSBjb25maWcgQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBvcGVuZWQgYWN0aW9ucyBwYW5lbC5cbiAgICAgKi9cbiAgICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUPixcbiAgICAgICAgY29uZmlnPzogS2JxQWN0aW9uc1BhbmVsQ29uZmlnPEQ+XG4gICAgKTogS2JxQWN0aW9uc1BhbmVsUmVmPFQsIFI+O1xuXG4gICAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgICAgIGNvbmZpZz86IEticUFjdGlvbnNQYW5lbENvbmZpZzxEPlxuICAgICk6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPiB7XG4gICAgICAgIGNvbnN0IF9jb25maWc6IEticUFjdGlvbnNQYW5lbENvbmZpZzxEPiA9IHtcbiAgICAgICAgICAgIC4uLih0aGlzLmRlZmF1bHRDb25maWcgYXMgS2JxQWN0aW9uc1BhbmVsQ29uZmlnPEQ+KSxcbiAgICAgICAgICAgIC4uLmNvbmZpZ1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhY3Rpb25zUGFuZWxSZWYgPSB0aGlzLm9wZW5EaWFsb2c8VCwgRCwgUj4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgX2NvbmZpZyk7XG5cbiAgICAgICAgYWN0aW9uc1BhbmVsUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuZWRBY3Rpb25zUGFuZWxSZWYgPT09IGFjdGlvbnNQYW5lbFJlZikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbmVkQWN0aW9uc1BhbmVsUmVmID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMub3BlbmVkQWN0aW9uc1BhbmVsUmVmKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZEFjdGlvbnNQYW5lbFJlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvbnNQYW5lbFJlZi5jb250YWluZXJJbnN0YW5jZT8uc3RhcnRPcGVuQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkQWN0aW9uc1BhbmVsUmVmLmNsb3NlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3Rpb25zUGFuZWxSZWYuY29udGFpbmVySW5zdGFuY2Uuc3RhcnRPcGVuQW5pbWF0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wZW5lZEFjdGlvbnNQYW5lbFJlZiA9IGFjdGlvbnNQYW5lbFJlZiBhcyBLYnFBY3Rpb25zUGFuZWxSZWY7XG5cbiAgICAgICAgcmV0dXJuIGFjdGlvbnNQYW5lbFJlZjtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2VzIHRoZSBjdXJyZW50bHkgb3BlbmVkIGFjdGlvbnMgcGFuZWwuICovXG4gICAgY2xvc2U8Uj4ocmVzdWx0PzogUik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5lZEFjdGlvbnNQYW5lbFJlZj8uY2xvc2UocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5EaWFsb2c8VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgICAgICBjb25maWc6IEticUFjdGlvbnNQYW5lbENvbmZpZzxEPiA9IHt9XG4gICAgKTogS2JxQWN0aW9uc1BhbmVsUmVmPFQsIFI+IHtcbiAgICAgICAgbGV0IGFjdGlvbnNQYW5lbFJlZiE6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPjtcbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lckVsZW1lbnQgPSBjb25maWcub3ZlcmxheUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBvdmVybGF5Q29udGFpbmVyRWxlbWVudD8uY2xhc3NMaXN0LmFkZChLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX0NPTlRBSU5FUl9TRUxFQ1RPUik7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nXG4gICAgICAgICAgICAuc2V0T3ZlcmxheUNvbnRhaW5lckVsZW1lbnQob3ZlcmxheUNvbnRhaW5lckVsZW1lbnQpXG4gICAgICAgICAgICAub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogS2JxQWN0aW9uc1BhbmVsQ29udGFpbmVyLFxuICAgICAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2UsXG4gICAgICAgICAgICAgICAgYXV0b0ZvY3VzOiBudWxsISxcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgLy8gRGlzYWJsZSBjbG9zaW5nIHNpbmNlIHdlIG5lZWQgdG8gc3luYyBpdCB1cCB0byB0aGUgYW5pbWF0aW9uIG91cnNlbHZlc1xuICAgICAgICAgICAgICAgIGNsb3NlT25PdmVybGF5RGV0YWNobWVudHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIC8vIERpc2FibGUgY2xvc2luZyBzaW5jZSB3ZSBuZWVkIHRvIHN5bmMgaXQgdXAgdG8gdGhlIGFuaW1hdGlvbiBvdXJzZWx2ZXNcbiAgICAgICAgICAgICAgICBjbG9zZU9uRGVzdHJveTogZmFsc2UsXG4gICAgICAgICAgICAgICAgLy8gRGlzYWJsZSBjbG9zaW5nIHNpbmNlIHdlIG5lZWQgdG8gc3luYyBpdCB1cCB0byB0aGUgYW5pbWF0aW9uIG91cnNlbHZlc1xuICAgICAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogY29uZmlnLnNjcm9sbFN0cmF0ZWd5ICYmIGNvbmZpZy5zY3JvbGxTdHJhdGVneSh0aGlzLm92ZXJsYXkpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmJvdHRvbSgpLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb25maWcuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGNvbmZpZy5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uc1BhbmVsUmVmXG4gICAgICAgICAgICAgICAgICAgIH0gc2F0aXNmaWVzIEticUFjdGlvbnNQYW5lbFRlbXBsYXRlQ29udGV4dDxULCBELCBSPjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGluamVjdG9yOiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGNvbmZpZy5pbmplY3RvciB8fCB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEticUFjdGlvbnNQYW5lbENvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyczogKGRpYWxvZ1JlZiwgX2RpYWxvZ0NvbmZpZywgY29udGFpbmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnNQYW5lbFJlZiA9IG5ldyBLYnFBY3Rpb25zUGFuZWxSZWY8VCwgUj4oZGlhbG9nUmVmLCBjb250YWluZXIgYXMgS2JxQWN0aW9uc1BhbmVsQ29udGFpbmVyKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBLYnFBY3Rpb25zUGFuZWxSZWYsIHVzZVZhbHVlOiBhY3Rpb25zUGFuZWxSZWYgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogS0JRX0FDVElPTlNfUEFORUxfREFUQSwgdXNlVmFsdWU6IGNvbmZpZy5kYXRhIH1cbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuYWRkUGFuZWxDbGFzcyhLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX1NFTEVDVE9SKTtcblxuICAgICAgICBpZiAoY29uZmlnLm92ZXJsYXlQYW5lbENsYXNzKSB7XG4gICAgICAgICAgICBkaWFsb2dSZWYuYWRkUGFuZWxDbGFzcyhjb25maWcub3ZlcmxheVBhbmVsQ2xhc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgYWN0aW9uc1BhbmVsUmVmPy5hZnRlckNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgb3ZlcmxheUNvbnRhaW5lckVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoS0JRX0FDVElPTlNfUEFORUxfT1ZFUkxBWV9DT05UQUlORVJfU0VMRUNUT1IpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYWN0aW9uc1BhbmVsUmVmO1xuICAgIH1cbn1cbiJdfQ==
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYWN0aW9ucy1wYW5lbC9hY3Rpb25zLXBhbmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQWlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUV6RCwrRkFBK0Y7QUFDL0YsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQXdDbkY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLDJCQUEyQixDQUFDO0FBRTlFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRyxxQ0FBcUMsQ0FBQztBQUVsRzs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFD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L2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgT3ZlcmxheSwgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLQlFfQUNUSU9OU19QQU5FTF9ERUZBVUxUX0NPTkZJRywgS2JxQWN0aW9uc1BhbmVsQ29uZmlnIH0gZnJvbSAnLi9hY3Rpb25zLXBhbmVsLWNvbmZpZyc7XG5pbXBvcnQgeyBLYnFBY3Rpb25zUGFuZWxDb250YWluZXIgfSBmcm9tICcuL2FjdGlvbnMtcGFuZWwtY29udGFpbmVyJztcbmltcG9ydCB7IEticUFjdGlvbnNQYW5lbFJlZiB9IGZyb20gJy4vYWN0aW9ucy1wYW5lbC1yZWYnO1xuXG4vKiogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBkYXRhIHRoYXQgd2FzIHBhc3NlZCBpbiB0byBhY3Rpb25zIHBhbmVsLiAqL1xuZXhwb3J0IGNvbnN0IEtCUV9BQ1RJT05TX1BBTkVMX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0tCUV9BQ1RJT05TX1BBTkVMX0RBVEEnKTtcblxuLyoqXG4gKiBDb250ZXh0IGZvciBhY3Rpb25zIHBhbmVsIHRlbXBsYXRlLlxuICovXG5leHBvcnQgdHlwZSBLYnFBY3Rpb25zUGFuZWxUZW1wbGF0ZUNvbnRleHQ8VCA9IHVua25vd24sIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4gPSB7XG4gICAgLyoqXG4gICAgICogRGF0YSBwYXNzZWQgdG8gYWN0aW9ucyBwYW5lbC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPG5nLXRlbXBsYXRlICNhY3Rpb25zUGFuZWwgbGV0LWRhdGE+e3sgZGF0YS5LRVkgfX08L25nLXRlbXBsYXRlPlxuICAgICAqIGBgYGBcbiAgICAgKi9cbiAgICAkaW1wbGljaXQ/OiBEIHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBEYXRhIHBhc3NlZCB0byBhY3Rpb25zIHBhbmVsLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmctdGVtcGxhdGUgI2FjdGlvbnNQYW5lbCBsZXQtZGF0YT1cImRhdGFcIj57eyBkYXRhLktFWSB9fTwvbmctdGVtcGxhdGU+XG4gICAgICogYGBgYFxuICAgICAqL1xuICAgIGRhdGE/OiBEIHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBPcGVuZWQgYWN0aW9ucyBwYW5lbCByZWZlcmVuY2UuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxuZy10ZW1wbGF0ZSAjYWN0aW9uc1BhbmVsIGxldC1hY3Rpb25zUGFuZWxSZWY9XCJhY3Rpb25zUGFuZWxSZWZcIj5cbiAgICAgKiAgIDxidXR0b24gKGNsaWNrKT1cImFjdGlvbnNQYW5lbFJlZi5jbG9zZSgpXCI+Y2xvc2U8L2J1dHRvbj5cbiAgICAgKiA8L25nLXRlbXBsYXRlPlxuICAgICAqIGBgYGBcbiAgICAgKi9cbiAgICBhY3Rpb25zUGFuZWxSZWY6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPjtcbn07XG5cbi8qKlxuICogU2VsZWN0b3IgZm9yIGFjdGlvbnMgcGFuZWwgb3ZlcmxheS5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX1NFTEVDVE9SID0gJ2ticS1hY3Rpb25zLXBhbmVsLW92ZXJsYXknO1xuXG4vKipcbiAqIFNlbGVjdG9yIGZvciBjdXN0b20gYWN0aW9ucyBwYW5lbCBvdmVybGF5IGNvbnRhaW5lci5cbiAqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX0NPTlRBSU5FUl9TRUxFQ1RPUiA9ICdrYnEtYWN0aW9ucy1wYW5lbC1vdmVybGF5LWNvbnRhaW5lcic7XG5cbi8qKlxuICogU2VydmljZSBmb3Igb3BlbmluZyBhY3Rpb25zIHBhbmVsLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEticUFjdGlvbnNQYW5lbCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheUNvbnRhaW5lciA9IGluamVjdChPdmVybGF5Q29udGFpbmVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChEaWFsb2cpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENvbmZpZyA9IGluamVjdChLQlFfQUNUSU9OU19QQU5FTF9ERUZBVUxUX0NPTkZJRyk7XG5cbiAgICAvKiogVGhlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudGx5IG9wZW5lZCBhY3Rpb25zIHBhbmVsLiAqL1xuICAgIHByaXZhdGUgb3BlbmVkQWN0aW9uc1BhbmVsUmVmOiBLYnFBY3Rpb25zUGFuZWxSZWYgfCBudWxsID0gbnVsbDtcblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbnMgYWN0aW9ucyBwYW5lbC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb21wb25lbnRPclRlbXBsYXRlUmVmIENvbXBvbmVudCB0byBiZSBvcGVuZWQgaW50byB0aGUgYWN0aW9ucyBwYW5lbC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYWN0aW9ucyBwYW5lbC5cbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgb3BlbmVkIGFjdGlvbnMgcGFuZWwuXG4gICAgICovXG4gICAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgICAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgICAgIGNvbmZpZz86IEticUFjdGlvbnNQYW5lbENvbmZpZzxEPlxuICAgICk6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPjtcblxuICAgIC8qKlxuICAgICAqIE9wZW5zIGFjdGlvbnMgcGFuZWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGVtcGxhdGUgVGVtcGxhdGVSZWYgdG8gYmUgdXNlZCBhcyB0aGUgY29udGVudC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYWN0aW9ucyBwYW5lbC5cbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgb3BlbmVkIGFjdGlvbnMgcGFuZWwuXG4gICAgICovXG4gICAgb3BlbjxULCBEID0gdW5rbm93biwgUiA9IHVua25vd24+KFxuICAgICAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4sXG4gICAgICAgIGNvbmZpZz86IEticUFjdGlvbnNQYW5lbENvbmZpZzxEPlxuICAgICk6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPjtcblxuICAgIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgICAgICBjb25maWc/OiBLYnFBY3Rpb25zUGFuZWxDb25maWc8RD5cbiAgICApOiBLYnFBY3Rpb25zUGFuZWxSZWY8VCwgUj4ge1xuICAgICAgICBjb25zdCBfY29uZmlnOiBLYnFBY3Rpb25zUGFuZWxDb25maWc8RD4gPSB7XG4gICAgICAgICAgICAuLi4odGhpcy5kZWZhdWx0Q29uZmlnIGFzIEticUFjdGlvbnNQYW5lbENvbmZpZzxEPiksXG4gICAgICAgICAgICAuLi5jb25maWdcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYWN0aW9uc1BhbmVsUmVmID0gdGhpcy5vcGVuRGlhbG9nPFQsIEQsIFI+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIF9jb25maWcpO1xuXG4gICAgICAgIGFjdGlvbnNQYW5lbFJlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkQWN0aW9uc1BhbmVsUmVmID09PSBhY3Rpb25zUGFuZWxSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZEFjdGlvbnNQYW5lbFJlZiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZEFjdGlvbnNQYW5lbFJlZikge1xuICAgICAgICAgICAgdGhpcy5vcGVuZWRBY3Rpb25zUGFuZWxSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zUGFuZWxSZWYuY29udGFpbmVySW5zdGFuY2U/LnN0YXJ0T3BlbkFuaW1hdGlvbigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZEFjdGlvbnNQYW5lbFJlZi5jbG9zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWN0aW9uc1BhbmVsUmVmLmNvbnRhaW5lckluc3RhbmNlLnN0YXJ0T3BlbkFuaW1hdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuZWRBY3Rpb25zUGFuZWxSZWYgPSBhY3Rpb25zUGFuZWxSZWYgYXMgS2JxQWN0aW9uc1BhbmVsUmVmO1xuXG4gICAgICAgIHJldHVybiBhY3Rpb25zUGFuZWxSZWY7XG4gICAgfVxuXG4gICAgLyoqIENsb3NlcyB0aGUgY3VycmVudGx5IG9wZW5lZCBhY3Rpb25zIHBhbmVsLiAqL1xuICAgIGNsb3NlPFI+KHJlc3VsdD86IFIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuZWRBY3Rpb25zUGFuZWxSZWY/LmNsb3NlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRGlhbG9nPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICAgICAgY29uZmlnOiBLYnFBY3Rpb25zUGFuZWxDb25maWc8RD4gPSB7fVxuICAgICk6IEticUFjdGlvbnNQYW5lbFJlZjxULCBSPiB7XG4gICAgICAgIGxldCBhY3Rpb25zUGFuZWxSZWYhOiBLYnFBY3Rpb25zUGFuZWxSZWY8VCwgUj47XG5cbiAgICAgICAgaWYgKGNvbmZpZy5vdmVybGF5Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAvLyBXZSBzaG91bGQgb3ZlcnJpZGUgcHJvdGVjdGVkIGBfY29udGFpbmVyRWxlbWVudGAgcHJvcGVydHkgdG8gc2V0IGN1c3RvbSBjb250YWluZXIgd2l0aG91dCBjcmVhdGluZ1xuICAgICAgICAgICAgLy8gbmV3IGBPdmVybGF5Q29udGFpbmVyYCBpbnN0YW5jZS5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lclsnX2NvbnRhaW5lckVsZW1lbnQnXSA9IGNvbmZpZy5vdmVybGF5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvdmVybGF5Q29udGFpbmVyRWxlbWVudCA9IHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCk7XG5cbiAgICAgICAgb3ZlcmxheUNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZChLQlFfQUNUSU9OU19QQU5FTF9PVkVSTEFZX0NPTlRBSU5FUl9TRUxFQ1RPUik7XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxSLCBELCBUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICBjb250YWluZXI6IEticUFjdGlvbnNQYW5lbENvbnRhaW5lcixcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2UsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IG51bGwhLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgLy8gRGlzYWJsZSBjbG9zaW5nIHNpbmNlIHdlIG5lZWQgdG8gc3luYyBpdCB1cCB0byB0aGUgYW5pbWF0aW9uIG91cnNlbHZlc1xuICAgICAgICAgICAgY2xvc2VPbk92ZXJsYXlEZXRhY2htZW50czogZmFsc2UsXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGNsb3Npbmcgc2luY2Ugd2UgbmVlZCB0byBzeW5jIGl0IHVwIHRvIHRoZSBhbmltYXRpb24gb3Vyc2VsdmVzXG4gICAgICAgICAgICBjbG9zZU9uRGVzdHJveTogZmFsc2UsXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGNsb3Npbmcgc2luY2Ugd2UgbmVlZCB0byBzeW5jIGl0IHVwIHRvIHRoZSBhbmltYXRpb24gb3Vyc2VsdmVzXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogY29uZmlnLnNjcm9sbFN0cmF0ZWd5ICYmIGNvbmZpZy5zY3JvbGxTdHJhdGVneSh0aGlzLm92ZXJsYXkpLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuYm90dG9tKCksXG4gICAgICAgICAgICB0ZW1wbGF0ZUNvbnRleHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbmZpZy5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjb25maWcuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uc1BhbmVsUmVmXG4gICAgICAgICAgICAgICAgfSBzYXRpc2ZpZXMgS2JxQWN0aW9uc1BhbmVsVGVtcGxhdGVDb250ZXh0PFQsIEQsIFI+O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluamVjdG9yOiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHBhcmVudDogY29uZmlnLmluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBLYnFBY3Rpb25zUGFuZWxDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiAoZGlhbG9nUmVmLCBfZGlhbG9nQ29uZmlnLCBjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zUGFuZWxSZWYgPSBuZXcgS2JxQWN0aW9uc1BhbmVsUmVmPFQsIFI+KGRpYWxvZ1JlZiwgY29udGFpbmVyIGFzIEticUFjdGlvbnNQYW5lbENvbnRhaW5lcik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEticUFjdGlvbnNQYW5lbFJlZiwgdXNlVmFsdWU6IGFjdGlvbnNQYW5lbFJlZiB9LFxuICAgICAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEtCUV9BQ1RJT05TX1BBTkVMX0RBVEEsIHVzZVZhbHVlOiBjb25maWcuZGF0YSB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFkZFBhbmVsQ2xhc3MoS0JRX0FDVElPTlNfUEFORUxfT1ZFUkxBWV9TRUxFQ1RPUik7XG5cbiAgICAgICAgaWYgKGNvbmZpZy5vdmVybGF5UGFuZWxDbGFzcykge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmFkZFBhbmVsQ2xhc3MoY29uZmlnLm92ZXJsYXlQYW5lbENsYXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFjdGlvbnNQYW5lbFJlZj8uYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG92ZXJsYXlDb250YWluZXJFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoS0JRX0FDVElPTlNfUEFORUxfT1ZFUkxBWV9DT05UQUlORVJfU0VMRUNUT1IpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYWN0aW9uc1BhbmVsUmVmO1xuICAgIH1cbn1cbiJdfQ==
|