@angular/cdk-experimental 14.0.0-next.10 → 14.0.0-next.11
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/dialog/dialog-config.d.ts +69 -40
- package/dialog/dialog-container.d.ts +47 -51
- package/dialog/dialog-injectors.d.ts +6 -12
- package/dialog/dialog-ref.d.ts +45 -38
- package/dialog/dialog.d.ts +59 -56
- package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
- package/esm2020/column-resize/column-resize-directives/column-resize.mjs +4 -4
- package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +4 -4
- package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +4 -4
- package/esm2020/column-resize/column-resize-module.mjs +9 -9
- package/esm2020/column-resize/column-resize-notifier.mjs +7 -7
- package/esm2020/column-resize/column-resize.mjs +4 -4
- package/esm2020/column-resize/column-size-store.mjs +4 -4
- package/esm2020/column-resize/event-dispatcher.mjs +4 -4
- package/esm2020/column-resize/overlay-handle.mjs +4 -4
- package/esm2020/column-resize/resizable.mjs +4 -4
- package/esm2020/column-resize/resize-strategy.mjs +10 -10
- package/esm2020/combobox/combobox-module.mjs +5 -5
- package/esm2020/combobox/combobox-popup.mjs +4 -4
- package/esm2020/combobox/combobox.mjs +4 -4
- package/esm2020/dialog/dialog-config.mjs +33 -22
- package/esm2020/dialog/dialog-container.mjs +107 -152
- package/esm2020/dialog/dialog-injectors.mjs +6 -10
- package/esm2020/dialog/dialog-module.mjs +7 -21
- package/esm2020/dialog/dialog-ref.mjs +49 -88
- package/esm2020/dialog/dialog.mjs +187 -154
- package/esm2020/listbox/listbox-module.mjs +5 -5
- package/esm2020/listbox/listbox.mjs +7 -7
- package/esm2020/menu/context-menu-trigger.mjs +7 -7
- package/esm2020/menu/menu-aim.mjs +7 -7
- package/esm2020/menu/menu-bar.mjs +4 -4
- package/esm2020/menu/menu-base.mjs +4 -4
- package/esm2020/menu/menu-group.mjs +4 -4
- package/esm2020/menu/menu-item-checkbox.mjs +4 -4
- package/esm2020/menu/menu-item-radio.mjs +4 -4
- package/esm2020/menu/menu-item-selectable.mjs +4 -4
- package/esm2020/menu/menu-item.mjs +4 -4
- package/esm2020/menu/menu-module.mjs +5 -5
- package/esm2020/menu/menu-stack.mjs +4 -4
- package/esm2020/menu/menu-trigger-base.mjs +4 -4
- package/esm2020/menu/menu-trigger.mjs +4 -4
- package/esm2020/menu/menu.mjs +4 -4
- package/esm2020/popover-edit/edit-event-dispatcher.mjs +4 -4
- package/esm2020/popover-edit/edit-ref.mjs +4 -4
- package/esm2020/popover-edit/edit-services.mjs +4 -4
- package/esm2020/popover-edit/focus-dispatcher.mjs +4 -4
- package/esm2020/popover-edit/focus-escape-notifier.mjs +4 -4
- package/esm2020/popover-edit/lens-directives.mjs +10 -10
- package/esm2020/popover-edit/popover-edit-module.mjs +5 -5
- package/esm2020/popover-edit/popover-edit-position-strategy-factory.mjs +7 -7
- package/esm2020/popover-edit/table-directives.mjs +16 -16
- package/esm2020/scrolling/auto-size-virtual-scroll.mjs +4 -4
- package/esm2020/scrolling/scrolling-module.mjs +5 -5
- package/esm2020/selection/row-selection.mjs +4 -4
- package/esm2020/selection/select-all.mjs +4 -4
- package/esm2020/selection/selection-column.mjs +4 -4
- package/esm2020/selection/selection-module.mjs +5 -5
- package/esm2020/selection/selection-toggle.mjs +4 -4
- package/esm2020/selection/selection.mjs +4 -4
- package/esm2020/table-scroll-container/table-scroll-container-module.mjs +5 -5
- package/esm2020/table-scroll-container/table-scroll-container.mjs +4 -4
- package/esm2020/version.mjs +1 -1
- package/fesm2015/cdk-experimental.mjs +1 -1
- package/fesm2015/cdk-experimental.mjs.map +1 -1
- package/fesm2015/column-resize.mjs +50 -50
- package/fesm2015/column-resize.mjs.map +1 -1
- package/fesm2015/combobox.mjs +10 -10
- package/fesm2015/combobox.mjs.map +1 -1
- package/fesm2015/dialog.mjs +376 -443
- package/fesm2015/dialog.mjs.map +1 -1
- package/fesm2015/listbox.mjs +10 -10
- package/fesm2015/listbox.mjs.map +1 -1
- package/fesm2015/menu.mjs +49 -49
- package/fesm2015/menu.mjs.map +1 -1
- package/fesm2015/popover-edit.mjs +49 -49
- package/fesm2015/popover-edit.mjs.map +1 -1
- package/fesm2015/scrolling.mjs +7 -7
- package/fesm2015/scrolling.mjs.map +1 -1
- package/fesm2015/selection.mjs +19 -19
- package/fesm2015/selection.mjs.map +1 -1
- package/fesm2015/table-scroll-container.mjs +7 -7
- package/fesm2015/table-scroll-container.mjs.map +1 -1
- package/fesm2020/cdk-experimental.mjs +1 -1
- package/fesm2020/cdk-experimental.mjs.map +1 -1
- package/fesm2020/column-resize.mjs +50 -50
- package/fesm2020/column-resize.mjs.map +1 -1
- package/fesm2020/combobox.mjs +10 -10
- package/fesm2020/combobox.mjs.map +1 -1
- package/fesm2020/dialog.mjs +378 -435
- package/fesm2020/dialog.mjs.map +1 -1
- package/fesm2020/listbox.mjs +10 -10
- package/fesm2020/listbox.mjs.map +1 -1
- package/fesm2020/menu.mjs +49 -49
- package/fesm2020/menu.mjs.map +1 -1
- package/fesm2020/popover-edit.mjs +49 -49
- package/fesm2020/popover-edit.mjs.map +1 -1
- package/fesm2020/scrolling.mjs +7 -7
- package/fesm2020/scrolling.mjs.map +1 -1
- package/fesm2020/selection.mjs +19 -19
- package/fesm2020/selection.mjs.map +1 -1
- package/fesm2020/table-scroll-container.mjs +7 -7
- package/fesm2020/table-scroll-container.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -5,24 +5,16 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import { Injector,
|
|
8
|
+
import { ViewContainerRef, ComponentFactoryResolver, Injector, StaticProvider, Type } from '@angular/core';
|
|
9
9
|
import { Direction } from '@angular/cdk/bidi';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';
|
|
11
|
+
import { BasePortalOutlet } from '@angular/cdk/portal';
|
|
12
12
|
/** Options for where to set focus to automatically on dialog open */
|
|
13
13
|
export declare type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';
|
|
14
|
-
/** Valid ARIA roles for a dialog
|
|
14
|
+
/** Valid ARIA roles for a dialog. */
|
|
15
15
|
export declare type DialogRole = 'dialog' | 'alertdialog';
|
|
16
|
-
/**
|
|
17
|
-
export
|
|
18
|
-
top?: string;
|
|
19
|
-
bottom?: string;
|
|
20
|
-
left?: string;
|
|
21
|
-
right?: string;
|
|
22
|
-
}
|
|
23
|
-
export declare class DialogConfig<D = any> {
|
|
24
|
-
/** Component to use as the container for the dialog. */
|
|
25
|
-
containerComponent?: ComponentType<CdkDialogContainer>;
|
|
16
|
+
/** Configuration for opening a modal dialog. */
|
|
17
|
+
export declare class DialogConfig<D = unknown, R = unknown, C extends BasePortalOutlet = BasePortalOutlet> {
|
|
26
18
|
/**
|
|
27
19
|
* Where the attached component should live in Angular's *logical* component tree.
|
|
28
20
|
* This affects what is available for injection and the change detection order for the
|
|
@@ -35,48 +27,85 @@ export declare class DialogConfig<D = any> {
|
|
|
35
27
|
* takes precedence over the injector indirectly provided by `ViewContainerRef`.
|
|
36
28
|
*/
|
|
37
29
|
injector?: Injector;
|
|
38
|
-
/**
|
|
30
|
+
/** ID for the dialog. If omitted, a unique one will be generated. */
|
|
39
31
|
id?: string;
|
|
40
|
-
/** The ARIA role of the dialog. */
|
|
32
|
+
/** The ARIA role of the dialog element. */
|
|
41
33
|
role?: DialogRole;
|
|
42
|
-
/**
|
|
34
|
+
/** Optional CSS class or classes applied to the overlay panel. */
|
|
43
35
|
panelClass?: string | string[];
|
|
44
|
-
/** Whether the dialog has a
|
|
36
|
+
/** Whether the dialog has a backdrop. */
|
|
45
37
|
hasBackdrop?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
backdropClass?: string |
|
|
48
|
-
/** Whether the dialog
|
|
38
|
+
/** Optional CSS class or classes applied to the overlay backdrop. */
|
|
39
|
+
backdropClass?: string | string[];
|
|
40
|
+
/** Whether the dialog closes with the escape key or pointer events outside the panel element. */
|
|
49
41
|
disableClose?: boolean;
|
|
50
|
-
/**
|
|
42
|
+
/** Width of the dialog. */
|
|
51
43
|
width?: string;
|
|
52
|
-
/**
|
|
44
|
+
/** Height of the dialog. */
|
|
53
45
|
height?: string;
|
|
54
|
-
/**
|
|
55
|
-
minWidth?:
|
|
56
|
-
/**
|
|
57
|
-
minHeight?:
|
|
58
|
-
/**
|
|
59
|
-
maxWidth?:
|
|
60
|
-
/**
|
|
61
|
-
maxHeight?:
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
/** Data
|
|
46
|
+
/** Min-width of the dialog. If a number is provided, assumes pixel units. */
|
|
47
|
+
minWidth?: number | string;
|
|
48
|
+
/** Min-height of the dialog. If a number is provided, assumes pixel units. */
|
|
49
|
+
minHeight?: number | string;
|
|
50
|
+
/** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */
|
|
51
|
+
maxWidth?: number | string;
|
|
52
|
+
/** Max-height of the dialog. If a number is provided, assumes pixel units. */
|
|
53
|
+
maxHeight?: number | string;
|
|
54
|
+
/** Strategy to use when positioning the dialog. Defaults to centering it on the page. */
|
|
55
|
+
positionStrategy?: PositionStrategy;
|
|
56
|
+
/** Data being injected into the child component. */
|
|
65
57
|
data?: D | null;
|
|
66
|
-
/**
|
|
58
|
+
/** Layout direction for the dialog's content. */
|
|
67
59
|
direction?: Direction;
|
|
68
60
|
/** ID of the element that describes the dialog. */
|
|
69
61
|
ariaDescribedBy?: string | null;
|
|
70
|
-
/**
|
|
62
|
+
/** ID of the element that labels the dialog. */
|
|
63
|
+
ariaLabelledBy?: string | null;
|
|
64
|
+
/** Dialog label applied via `aria-label` */
|
|
71
65
|
ariaLabel?: string | null;
|
|
66
|
+
/** Whether this a modal dialog. Used to set the `aria-modal` attribute. */
|
|
67
|
+
ariaModal?: boolean;
|
|
72
68
|
/**
|
|
73
69
|
* Where the dialog should focus on open.
|
|
74
70
|
* @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or
|
|
75
71
|
* AutoFocusTarget instead.
|
|
76
72
|
*/
|
|
77
73
|
autoFocus?: AutoFocusTarget | string | boolean;
|
|
78
|
-
/**
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Whether the dialog should restore focus to the
|
|
76
|
+
* previously-focused element upon closing.
|
|
77
|
+
*/
|
|
78
|
+
restoreFocus?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Scroll strategy to be used for the dialog. This determines how
|
|
81
|
+
* the dialog responds to scrolling underneath the panel element.
|
|
82
|
+
*/
|
|
83
|
+
scrollStrategy?: ScrollStrategy;
|
|
84
|
+
/**
|
|
85
|
+
* Whether the dialog should close when the user navigates backwards or forwards through browser
|
|
86
|
+
* history. This does not apply to navigation via anchor element unless using URL-hash based
|
|
87
|
+
* routing (`HashLocationStrategy` in the Angular router).
|
|
88
|
+
*/
|
|
89
|
+
closeOnNavigation?: boolean;
|
|
90
|
+
/** Alternate `ComponentFactoryResolver` to use when resolving the associated component. */
|
|
91
|
+
componentFactoryResolver?: ComponentFactoryResolver;
|
|
92
|
+
/**
|
|
93
|
+
* Providers that will be exposed to the contents of the dialog. Can also
|
|
94
|
+
* be provided as a function in order to generate the providers lazily.
|
|
95
|
+
*/
|
|
96
|
+
providers?: StaticProvider[] | ((dialogRef: R, config: DialogConfig<D, R, C>, container: C) => StaticProvider[]);
|
|
97
|
+
/**
|
|
98
|
+
* Component into which the dialog content will be rendered. Defaults to `CdkDialogContainer`.
|
|
99
|
+
* A configuration object can be passed in to customize the providers that will be exposed
|
|
100
|
+
* to the dialog container.
|
|
101
|
+
*/
|
|
102
|
+
container?: Type<C> | {
|
|
103
|
+
type: Type<C>;
|
|
104
|
+
providers: (config: DialogConfig<D, R, C>) => StaticProvider[];
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Context that will be passed to template-based dialogs.
|
|
108
|
+
* A function can be passed in to resolve the context lazily.
|
|
109
|
+
*/
|
|
110
|
+
templateContext?: Record<string, any> | (() => Record<string, any>);
|
|
82
111
|
}
|
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { FocusMonitor, FocusOrigin, FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';
|
|
9
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
10
10
|
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, DomPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
11
|
-
import {
|
|
12
|
-
import { Subject } from 'rxjs';
|
|
11
|
+
import { AfterViewInit, ComponentRef, ElementRef, EmbeddedViewRef, NgZone, OnDestroy } from '@angular/core';
|
|
13
12
|
import { DialogConfig } from './dialog-config';
|
|
14
13
|
import * as i0 from "@angular/core";
|
|
15
14
|
export declare function throwDialogContentAlreadyAttachedError(): void;
|
|
@@ -17,39 +16,36 @@ export declare function throwDialogContentAlreadyAttachedError(): void;
|
|
|
17
16
|
* Internal component that wraps user-provided dialog content.
|
|
18
17
|
* @docs-private
|
|
19
18
|
*/
|
|
20
|
-
export declare class CdkDialogContainer extends BasePortalOutlet implements OnDestroy {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
|
|
31
|
-
/** Element that was focused before the dialog was opened. Save this to restore upon close. */
|
|
32
|
-
private _elementFocusedBeforeDialogWasOpened;
|
|
19
|
+
export declare class CdkDialogContainer<C extends DialogConfig = DialogConfig> extends BasePortalOutlet implements AfterViewInit, OnDestroy {
|
|
20
|
+
protected _elementRef: ElementRef;
|
|
21
|
+
protected _focusTrapFactory: FocusTrapFactory;
|
|
22
|
+
readonly _config: C;
|
|
23
|
+
private _interactivityChecker;
|
|
24
|
+
private _ngZone;
|
|
25
|
+
private _overlayRef;
|
|
26
|
+
private _focusMonitor?;
|
|
27
|
+
protected _document: Document;
|
|
28
|
+
/** The portal outlet inside of this container into which the dialog content will be loaded. */
|
|
29
|
+
_portalOutlet: CdkPortalOutlet;
|
|
33
30
|
/** The class that traps and manages focus within the dialog. */
|
|
34
31
|
private _focusTrap;
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/** Destroy focus trap to place focus back to the element focused before the dialog opened. */
|
|
32
|
+
/** Element that was focused before the dialog was opened. Save this to restore upon close. */
|
|
33
|
+
private _elementFocusedBeforeDialogWasOpened;
|
|
34
|
+
/**
|
|
35
|
+
* Type of interaction that led to the dialog being closed. This is used to determine
|
|
36
|
+
* whether the focus style will be applied when returning focus to its original location
|
|
37
|
+
* after the dialog is closed.
|
|
38
|
+
*/
|
|
39
|
+
_closeInteractionType: FocusOrigin | null;
|
|
40
|
+
/** ID of the element that should be considered as the dialog's label. */
|
|
41
|
+
_ariaLabelledBy: string | null;
|
|
42
|
+
constructor(_elementRef: ElementRef, _focusTrapFactory: FocusTrapFactory, _document: any, _config: C, _interactivityChecker: InteractivityChecker, _ngZone: NgZone, _overlayRef: OverlayRef, _focusMonitor?: FocusMonitor | undefined);
|
|
43
|
+
ngAfterViewInit(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Can be used by child classes to customize the initial focus
|
|
46
|
+
* capturing behavior (e.g. if it's tied to an animation).
|
|
47
|
+
*/
|
|
48
|
+
protected _captureInitialFocus(): void;
|
|
53
49
|
ngOnDestroy(): void;
|
|
54
50
|
/**
|
|
55
51
|
* Attach a ComponentPortal as content to this dialog container.
|
|
@@ -60,7 +56,7 @@ export declare class CdkDialogContainer extends BasePortalOutlet implements OnDe
|
|
|
60
56
|
* Attach a TemplatePortal as content to this dialog container.
|
|
61
57
|
* @param portal Portal to be attached as the dialog content.
|
|
62
58
|
*/
|
|
63
|
-
attachTemplatePortal<
|
|
59
|
+
attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;
|
|
64
60
|
/**
|
|
65
61
|
* Attaches a DOM portal to the dialog container.
|
|
66
62
|
* @param portal Portal to be attached.
|
|
@@ -68,14 +64,6 @@ export declare class CdkDialogContainer extends BasePortalOutlet implements OnDe
|
|
|
68
64
|
* @breaking-change 10.0.0
|
|
69
65
|
*/
|
|
70
66
|
attachDomPortal: (portal: DomPortal) => void;
|
|
71
|
-
/** Emit lifecycle events based on animation `start` callback. */
|
|
72
|
-
_onAnimationStart(event: AnimationEvent): void;
|
|
73
|
-
/** Starts the dialog exit animation. */
|
|
74
|
-
_startExiting(): void;
|
|
75
|
-
/** Saves a reference to the element that was focused before the dialog was opened. */
|
|
76
|
-
private _savePreviouslyFocusedElement;
|
|
77
|
-
/** Focuses the dialog container. */
|
|
78
|
-
private _focusDialogContainer;
|
|
79
67
|
/**
|
|
80
68
|
* Focuses the provided element. If the element is not focusable, it will add a tabIndex
|
|
81
69
|
* attribute to forcefully focus it. The attribute is removed after focus is moved.
|
|
@@ -88,12 +76,20 @@ export declare class CdkDialogContainer extends BasePortalOutlet implements OnDe
|
|
|
88
76
|
*/
|
|
89
77
|
private _focusByCssSelector;
|
|
90
78
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
79
|
+
* Moves the focus inside the focus trap. When autoFocus is not set to 'dialog', if focus
|
|
80
|
+
* cannot be moved then focus will go to the dialog container.
|
|
93
81
|
*/
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
private
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
protected _trapFocus(): void;
|
|
83
|
+
/** Restores focus to the element that was focused before the dialog opened. */
|
|
84
|
+
private _restoreFocus;
|
|
85
|
+
/** Focuses the dialog container. */
|
|
86
|
+
private _focusDialogContainer;
|
|
87
|
+
/** Returns whether focus is inside the dialog. */
|
|
88
|
+
private _containsFocus;
|
|
89
|
+
/** Sets up the focus trap. */
|
|
90
|
+
private _initializeFocusTrap;
|
|
91
|
+
/** Sets up the listener that handles clicks on the dialog backdrop. */
|
|
92
|
+
private _handleBackdropClicks;
|
|
93
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CdkDialogContainer<any>, [null, null, { optional: true; }, null, null, null, null, null]>;
|
|
94
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CdkDialogContainer<any>, "cdk-dialog-container", never, {}, {}, never, never>;
|
|
99
95
|
}
|
|
@@ -6,25 +6,19 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { InjectionToken } from '@angular/core';
|
|
9
|
-
import {
|
|
10
|
-
import { DialogRef } from './dialog-ref';
|
|
11
|
-
import { CdkDialogContainer } from './dialog-container';
|
|
9
|
+
import { Overlay, ScrollStrategy } from '@angular/cdk/overlay';
|
|
12
10
|
import { DialogConfig } from './dialog-config';
|
|
13
11
|
/** Injection token for the Dialog's ScrollStrategy. */
|
|
14
12
|
export declare const DIALOG_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
|
|
15
13
|
/** Injection token for the Dialog's Data. */
|
|
16
14
|
export declare const DIALOG_DATA: InjectionToken<any>;
|
|
17
|
-
/** Injection token for the
|
|
18
|
-
export declare const
|
|
19
|
-
/** Injection token for the DialogConfig. */
|
|
20
|
-
export declare const DIALOG_CONFIG: InjectionToken<DialogConfig<any>>;
|
|
21
|
-
/** Injection token for the Dialog's DialogContainer component. */
|
|
22
|
-
export declare const DIALOG_CONTAINER: InjectionToken<ComponentType<CdkDialogContainer>>;
|
|
15
|
+
/** Injection token that can be used to provide default options for the dialog module. */
|
|
16
|
+
export declare const DEFAULT_DIALOG_CONFIG: InjectionToken<DialogConfig<unknown, unknown, import("@angular/cdk/portal").BasePortalOutlet>>;
|
|
23
17
|
/** @docs-private */
|
|
24
|
-
export declare function
|
|
18
|
+
export declare function DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => ScrollStrategy;
|
|
25
19
|
/** @docs-private */
|
|
26
|
-
export declare const
|
|
20
|
+
export declare const DIALOG_SCROLL_STRATEGY_PROVIDER: {
|
|
27
21
|
provide: InjectionToken<() => ScrollStrategy>;
|
|
28
22
|
deps: (typeof Overlay)[];
|
|
29
|
-
useFactory: typeof
|
|
23
|
+
useFactory: typeof DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY;
|
|
30
24
|
};
|
package/dialog/dialog-ref.d.ts
CHANGED
|
@@ -5,53 +5,60 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import { OverlayRef
|
|
8
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
9
9
|
import { Observable } from 'rxjs';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { DialogConfig } from './dialog-config';
|
|
11
|
+
import { FocusOrigin } from '@angular/cdk/a11y';
|
|
12
|
+
import { BasePortalOutlet } from '@angular/cdk/portal';
|
|
13
|
+
/** Additional options that can be passed in when closing a dialog. */
|
|
14
|
+
export interface DialogCloseOptions {
|
|
15
|
+
/** Focus original to use when restoring focus. */
|
|
16
|
+
focusOrigin?: FocusOrigin;
|
|
17
|
+
}
|
|
12
18
|
/**
|
|
13
19
|
* Reference to a dialog opened via the Dialog service.
|
|
14
20
|
*/
|
|
15
|
-
export declare class DialogRef<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
export declare class DialogRef<R = unknown, C = unknown> {
|
|
22
|
+
readonly overlayRef: OverlayRef;
|
|
23
|
+
readonly config: DialogConfig<any, DialogRef<R, C>, BasePortalOutlet>;
|
|
24
|
+
/**
|
|
25
|
+
* Instance of component opened into the dialog. Will be
|
|
26
|
+
* null when the dialog is opened using a `TemplateRef`.
|
|
27
|
+
*/
|
|
28
|
+
componentInstance: C | null;
|
|
29
|
+
/** Instance of the container that is rendering out the dialog content. */
|
|
30
|
+
containerInstance: BasePortalOutlet & {
|
|
31
|
+
_closeInteractionType?: FocusOrigin;
|
|
32
|
+
};
|
|
21
33
|
/** Whether the user is allowed to close the dialog. */
|
|
22
34
|
disableClose: boolean | undefined;
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
/** Emits when the dialog has been closed. */
|
|
36
|
+
readonly closed: Observable<R | undefined>;
|
|
37
|
+
/** Emits when the backdrop of the dialog is clicked. */
|
|
38
|
+
readonly backdropClick: Observable<MouseEvent>;
|
|
39
|
+
/** Emits when on keyboard events within the dialog. */
|
|
40
|
+
readonly keydownEvents: Observable<KeyboardEvent>;
|
|
41
|
+
/** Emits on pointer events that happen outside of the dialog. */
|
|
42
|
+
readonly outsidePointerEvents: Observable<MouseEvent>;
|
|
43
|
+
/** Unique ID for the dialog. */
|
|
44
|
+
readonly id: string;
|
|
45
|
+
constructor(overlayRef: OverlayRef, config: DialogConfig<any, DialogRef<R, C>, BasePortalOutlet>);
|
|
28
46
|
/**
|
|
29
47
|
* Close the dialog.
|
|
30
|
-
* @param
|
|
31
|
-
|
|
32
|
-
close(dialogResult?: R): void;
|
|
33
|
-
/**
|
|
34
|
-
* Updates the dialog's position.
|
|
35
|
-
* @param position New dialog position.
|
|
36
|
-
*/
|
|
37
|
-
updatePosition(position?: DialogPosition): this;
|
|
38
|
-
/**
|
|
39
|
-
* Gets an observable that emits when keydown events are targeted on the overlay.
|
|
48
|
+
* @param result Optional result to return to the dialog opener.
|
|
49
|
+
* @param options Additional options to customize the closing behavior.
|
|
40
50
|
*/
|
|
41
|
-
|
|
51
|
+
close(result?: R, options?: DialogCloseOptions): void;
|
|
52
|
+
/** Updates the dialog's position. */
|
|
53
|
+
updatePosition(): this;
|
|
42
54
|
/**
|
|
43
|
-
* Updates the dialog's width and height
|
|
44
|
-
* @param
|
|
55
|
+
* Updates the dialog's width and height.
|
|
56
|
+
* @param width New width of the dialog.
|
|
57
|
+
* @param height New height of the dialog.
|
|
45
58
|
*/
|
|
46
|
-
updateSize(
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
/** Gets an observable that emits when dialog is finished opening. */
|
|
52
|
-
afterOpened(): Observable<void>;
|
|
53
|
-
/** Gets an observable that emits when dialog begins closing. */
|
|
54
|
-
beforeClosed(): Observable<R | undefined>;
|
|
55
|
-
/** Gets an observable that emits when dialog is finished closing. */
|
|
56
|
-
afterClosed(): Observable<R | undefined>;
|
|
59
|
+
updateSize(width?: string, height?: string): this;
|
|
60
|
+
/** Add a CSS class or an array of classes to the overlay pane. */
|
|
61
|
+
addPanelClass(classes: string | string[]): this;
|
|
62
|
+
/** Remove a CSS class or an array of classes from the overlay pane. */
|
|
63
|
+
removePanelClass(classes: string | string[]): this;
|
|
57
64
|
}
|
package/dialog/dialog.d.ts
CHANGED
|
@@ -5,96 +5,99 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import { TemplateRef, Injector, OnDestroy
|
|
8
|
+
import { TemplateRef, Injector, OnDestroy } from '@angular/core';
|
|
9
9
|
import { Observable, Subject } from 'rxjs';
|
|
10
10
|
import { DialogRef } from './dialog-ref';
|
|
11
|
-
import { Location } from '@angular/common';
|
|
12
11
|
import { DialogConfig } from './dialog-config';
|
|
13
|
-
import {
|
|
14
|
-
import { ComponentType, Overlay, OverlayRef } from '@angular/cdk/overlay';
|
|
12
|
+
import { ComponentType, Overlay, OverlayContainer } from '@angular/cdk/overlay';
|
|
15
13
|
import * as i0 from "@angular/core";
|
|
16
|
-
/**
|
|
17
|
-
* Service to open modal dialogs.
|
|
18
|
-
*/
|
|
19
14
|
export declare class Dialog implements OnDestroy {
|
|
20
15
|
private _overlay;
|
|
21
16
|
private _injector;
|
|
22
|
-
private
|
|
17
|
+
private _defaultOptions;
|
|
23
18
|
private _parentDialog;
|
|
19
|
+
private _overlayContainer;
|
|
20
|
+
private _openDialogsAtThisLevel;
|
|
21
|
+
private readonly _afterAllClosedAtThisLevel;
|
|
22
|
+
private readonly _afterOpenedAtThisLevel;
|
|
23
|
+
private _ariaHiddenElements;
|
|
24
24
|
private _scrollStrategy;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
25
|
+
/** Keeps track of the currently-open dialogs. */
|
|
26
|
+
get openDialogs(): DialogRef<any, any>[];
|
|
27
|
+
/** Stream that emits when a dialog has been opened. */
|
|
28
|
+
get afterOpened(): Subject<DialogRef<any, any>>;
|
|
29
|
+
/**
|
|
30
|
+
* Stream that emits when all open dialog have finished closing.
|
|
31
|
+
* Will emit on subscribe if there are no open dialogs to begin with.
|
|
32
|
+
*/
|
|
33
|
+
readonly afterAllClosed: Observable<void>;
|
|
34
|
+
constructor(_overlay: Overlay, _injector: Injector, _defaultOptions: DialogConfig, _parentDialog: Dialog, _overlayContainer: OverlayContainer, scrollStrategy: any);
|
|
35
|
+
/**
|
|
36
|
+
* Opens a modal dialog containing the given component.
|
|
37
|
+
* @param component Type of the component to load into the dialog.
|
|
38
|
+
* @param config Extra configuration options.
|
|
39
|
+
* @returns Reference to the newly-opened dialog.
|
|
40
|
+
*/
|
|
41
|
+
open<R = unknown, D = unknown, C = unknown>(component: ComponentType<C>, config?: DialogConfig<D, DialogRef<R, C>>): DialogRef<R, C>;
|
|
42
|
+
/**
|
|
43
|
+
* Opens a modal dialog containing the given template.
|
|
44
|
+
* @param template TemplateRef to instantiate as the dialog content.
|
|
45
|
+
* @param config Extra configuration options.
|
|
46
|
+
* @returns Reference to the newly-opened dialog.
|
|
47
|
+
*/
|
|
48
|
+
open<R = unknown, D = unknown, C = unknown>(template: TemplateRef<C>, config?: DialogConfig<D, DialogRef<R, C>>): DialogRef<R, C>;
|
|
49
|
+
open<R = unknown, D = unknown, C = unknown>(componentOrTemplateRef: ComponentType<C> | TemplateRef<C>, config?: DialogConfig<D, DialogRef<R, C>>): DialogRef<R, C>;
|
|
50
|
+
/**
|
|
51
|
+
* Closes all of the currently-open dialogs.
|
|
52
|
+
*/
|
|
39
53
|
closeAll(): void;
|
|
40
|
-
/** Opens a dialog from a component. */
|
|
41
|
-
openFromComponent<T>(component: ComponentType<T>, config?: DialogConfig): DialogRef<any>;
|
|
42
|
-
/** Opens a dialog from a template. */
|
|
43
|
-
openFromTemplate<T>(template: TemplateRef<T>, config?: DialogConfig): DialogRef<any>;
|
|
44
|
-
ngOnDestroy(): void;
|
|
45
54
|
/**
|
|
46
|
-
*
|
|
55
|
+
* Finds an open dialog by its id.
|
|
56
|
+
* @param id ID to use when looking up the dialog.
|
|
47
57
|
*/
|
|
48
|
-
|
|
58
|
+
getDialogById<R, C>(id: string): DialogRef<R, C> | undefined;
|
|
59
|
+
ngOnDestroy(): void;
|
|
49
60
|
/**
|
|
50
61
|
* Creates an overlay config from a dialog config.
|
|
51
62
|
* @param config The dialog configuration.
|
|
52
63
|
* @returns The overlay configuration.
|
|
53
64
|
*/
|
|
54
|
-
|
|
65
|
+
private _getOverlayConfig;
|
|
55
66
|
/**
|
|
56
|
-
* Attaches
|
|
67
|
+
* Attaches a dialog container to a dialog's already-created overlay.
|
|
57
68
|
* @param overlay Reference to the dialog's underlying overlay.
|
|
58
69
|
* @param config The dialog configuration.
|
|
59
70
|
* @returns A promise resolving to a ComponentRef for the attached container.
|
|
60
71
|
*/
|
|
61
|
-
|
|
72
|
+
private _attachContainer;
|
|
62
73
|
/**
|
|
63
|
-
* Attaches the user-provided component to the already-created
|
|
74
|
+
* Attaches the user-provided component to the already-created dialog container.
|
|
64
75
|
* @param componentOrTemplateRef The type of component being loaded into the dialog,
|
|
65
76
|
* or a TemplateRef to instantiate as the content.
|
|
66
|
-
* @param
|
|
67
|
-
* @param
|
|
68
|
-
* @param config
|
|
69
|
-
* @returns A promise resolving to the MatDialogRef that should be returned to the user.
|
|
70
|
-
*/
|
|
71
|
-
protected _attachDialogContentForComponent<T>(componentOrTemplateRef: ComponentType<T>, dialogContainer: CdkDialogContainer, overlayRef: OverlayRef, config: DialogConfig): DialogRef<any>;
|
|
72
|
-
/**
|
|
73
|
-
* Attaches the user-provided component to the already-created MatDialogContainer.
|
|
74
|
-
* @param componentOrTemplateRef The type of component being loaded into the dialog,
|
|
75
|
-
* or a TemplateRef to instantiate as the content.
|
|
76
|
-
* @param dialogContainer Reference to the wrapping MatDialogContainer.
|
|
77
|
-
* @param overlayRef Reference to the overlay in which the dialog resides.
|
|
78
|
-
* @param config The dialog configuration.
|
|
79
|
-
* @returns A promise resolving to the MatDialogRef that should be returned to the user.
|
|
77
|
+
* @param dialogRef Reference to the dialog being opened.
|
|
78
|
+
* @param dialogContainer Component that is going to wrap the dialog content.
|
|
79
|
+
* @param config Configuration used to open the dialog.
|
|
80
80
|
*/
|
|
81
|
-
|
|
81
|
+
private _attachDialogContent;
|
|
82
82
|
/**
|
|
83
83
|
* Creates a custom injector to be used inside the dialog. This allows a component loaded inside
|
|
84
84
|
* of a dialog to close itself and, optionally, to return a value.
|
|
85
85
|
* @param config Config object that is used to construct the dialog.
|
|
86
|
-
* @param dialogRef Reference to the dialog.
|
|
87
|
-
* @param
|
|
86
|
+
* @param dialogRef Reference to the dialog being opened.
|
|
87
|
+
* @param dialogContainer Component that is going to wrap the dialog content.
|
|
88
88
|
* @returns The custom injector that can be used inside the dialog.
|
|
89
89
|
*/
|
|
90
90
|
private _createInjector;
|
|
91
|
-
/** Creates a new dialog ref. */
|
|
92
|
-
private _createDialogRef;
|
|
93
91
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
92
|
+
* Removes a dialog from the array of open dialogs.
|
|
93
|
+
* @param dialogRef Dialog to be removed.
|
|
96
94
|
*/
|
|
97
|
-
private
|
|
98
|
-
|
|
95
|
+
private _removeOpenDialog;
|
|
96
|
+
/** Hides all of the content that isn't an overlay from assistive technology. */
|
|
97
|
+
private _hideNonDialogContentFromAssistiveTechnology;
|
|
98
|
+
/** Closes all of the dialogs in an array. */
|
|
99
|
+
private _closeDialogs;
|
|
100
|
+
private _getAfterAllClosed;
|
|
101
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Dialog, [null, null, { optional: true; }, { optional: true; skipSelf: true; }, null, null]>;
|
|
99
102
|
static ɵprov: i0.ɵɵInjectableDeclaration<Dialog>;
|
|
100
103
|
}
|
|
@@ -30,13 +30,13 @@ export class CdkColumnResizeFlex extends ColumnResize {
|
|
|
30
30
|
this.table = table;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
CdkColumnResizeFlex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
34
|
-
CdkColumnResizeFlex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
33
|
+
CdkColumnResizeFlex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: CdkColumnResizeFlex, deps: [{ token: i1.ColumnResizeNotifier }, { token: i0.ElementRef }, { token: i2.HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: i1.ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
+
CdkColumnResizeFlex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: CdkColumnResizeFlex, selector: "cdk-table[columnResize]", providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }], usesInheritance: true, ngImport: i0 });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: CdkColumnResizeFlex, decorators: [{
|
|
36
36
|
type: Directive,
|
|
37
37
|
args: [{
|
|
38
38
|
selector: 'cdk-table[columnResize]',
|
|
39
39
|
providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }],
|
|
40
40
|
}]
|
|
41
41
|
}], ctorParameters: function () { return [{ type: i1.ColumnResizeNotifier }, { type: i0.ElementRef }, { type: i2.HeaderRowEventDispatcher }, { type: i0.NgZone }, { type: i1.ColumnResizeNotifierSource }, { type: i3.CdkTable }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXJlc2l6ZS1mbGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay1leHBlcmltZW50YWwvY29sdW1uLXJlc2l6ZS9jb2x1bW4tcmVzaXplLWRpcmVjdGl2ZXMvY29sdW1uLXJlc2l6ZS1mbGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7Ozs7O0FBRTNDOzs7R0FHRztBQUtILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBQ25ELFlBQ1csb0JBQTBDLEVBQzFDLFVBQW1DLEVBQ3pCLGVBQXlDLEVBQ3pDLE1BQWMsRUFDZCxRQUFvQyxFQUNwQyxLQUF3QjtRQUUzQyxLQUFLLEVBQUUsQ0FBQztRQVBDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDekIsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ3pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUE0QjtRQUNwQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUc3QyxDQUFDOzt3SEFWVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixrREFGbkIsQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFDLENBQUM7bUdBRTlFLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxxQkFBcUIsRUFBQyxDQUFDO2lCQUMxRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2RrVGFibGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5cbmltcG9ydCB7Q29sdW1uUmVzaXplfSBmcm9tICcuLi9jb2x1bW4tcmVzaXplJztcbmltcG9ydCB7Q29sdW1uUmVzaXplTm90aWZpZXIsIENvbHVtblJlc2l6ZU5vdGlmaWVyU291cmNlfSBmcm9tICcuLi9jb2x1bW4tcmVzaXplLW5vdGlmaWVyJztcbmltcG9ydCB7SGVhZGVyUm93RXZlbnREaXNwYXRjaGVyfSBmcm9tICcuLi9ldmVudC1kaXNwYXRjaGVyJztcbmltcG9ydCB7RkxFWF9QUk9WSURFUlN9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBFeHBsaWNpdGx5IGVuYWJsZXMgY29sdW1uIHJlc2l6aW5nIGZvciBhIGZsZXhib3gtYmFzZWQgY2RrLXRhYmxlLlxuICogSW5kaXZpZHVhbCBjb2x1bW5zIG11c3QgYmUgYW5ub3RhdGVkIHNwZWNpZmljYWxseS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2RrLXRhYmxlW2NvbHVtblJlc2l6ZV0nLFxuICBwcm92aWRlcnM6IFsuLi5GTEVYX1BST1ZJREVSUywge3Byb3ZpZGU6IENvbHVtblJlc2l6ZSwgdXNlRXhpc3Rpbmc6IENka0NvbHVtblJlc2l6ZUZsZXh9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrQ29sdW1uUmVzaXplRmxleCBleHRlbmRzIENvbHVtblJlc2l6ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IGNvbHVtblJlc2l6ZU5vdGlmaWVyOiBDb2x1bW5SZXNpemVOb3RpZmllcixcbiAgICByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXZlbnREaXNwYXRjaGVyOiBIZWFkZXJSb3dFdmVudERpc3BhdGNoZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBub3RpZmllcjogQ29sdW1uUmVzaXplTm90aWZpZXJTb3VyY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhYmxlOiBDZGtUYWJsZTx1bmtub3duPixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuIl19
|