@covalent/core 9.1.3 → 10.0.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/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
- package/breadcrumbs/breadcrumbs.module.d.ts +5 -3
- package/common/common.module.d.ts +5 -1
- package/common/directives/fullscreen/fullscreen.directive.d.ts +1 -1
- package/common/forms/auto-trim/auto-trim.directive.d.ts +1 -1
- package/common/material-icons.css +1 -1
- package/common/pipes/bytes/bytes.pipe.d.ts +1 -1
- package/common/pipes/decimal-bytes/decimal-bytes.pipe.d.ts +1 -1
- package/common/pipes/digits/digits.pipe.d.ts +1 -1
- package/common/pipes/time-ago/time-ago.pipe.d.ts +1 -1
- package/common/pipes/time-difference/time-difference.pipe.d.ts +1 -1
- package/common/pipes/time-until/time-until.pipe.d.ts +1 -1
- package/common/pipes/truncate/truncate.pipe.d.ts +1 -1
- package/common/platform.css +1 -1
- package/common/platform.css.map +1 -1
- package/dialogs/alert-dialog/alert-dialog.component.d.ts +1 -1
- package/dialogs/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/dialogs/dialog.component.d.ts +5 -5
- package/dialogs/dialogs.module.d.ts +5 -9
- package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +1 -1
- package/dialogs/status-dialog/status-dialog.component.d.ts +1 -1
- package/dialogs/window-dialog/window-dialog.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu.module.d.ts +5 -7
- package/fesm2022/covalent-core-breadcrumbs.mjs +83 -44
- package/fesm2022/covalent-core-breadcrumbs.mjs.map +1 -1
- package/fesm2022/covalent-core-common.mjs +146 -138
- package/fesm2022/covalent-core-common.mjs.map +1 -1
- package/fesm2022/covalent-core-dialogs.mjs +448 -169
- package/fesm2022/covalent-core-dialogs.mjs.map +1 -1
- package/fesm2022/covalent-core-dynamic-menu.mjs +351 -82
- package/fesm2022/covalent-core-dynamic-menu.mjs.map +1 -1
- package/fesm2022/covalent-core-file.mjs +256 -181
- package/fesm2022/covalent-core-file.mjs.map +1 -1
- package/fesm2022/covalent-core-json-formatter.mjs +119 -31
- package/fesm2022/covalent-core-json-formatter.mjs.map +1 -1
- package/fesm2022/covalent-core-layout.mjs +738 -384
- package/fesm2022/covalent-core-layout.mjs.map +1 -1
- package/fesm2022/covalent-core-loading.mjs +98 -76
- package/fesm2022/covalent-core-loading.mjs.map +1 -1
- package/fesm2022/covalent-core-menu.mjs +33 -19
- package/fesm2022/covalent-core-menu.mjs.map +1 -1
- package/fesm2022/covalent-core-message.mjs +112 -53
- package/fesm2022/covalent-core-message.mjs.map +1 -1
- package/fesm2022/covalent-core-search.mjs +260 -193
- package/fesm2022/covalent-core-search.mjs.map +1 -1
- package/fesm2022/covalent-core-side-sheet.mjs +224 -192
- package/fesm2022/covalent-core-side-sheet.mjs.map +1 -1
- package/fesm2022/covalent-core-user-profile.mjs +118 -59
- package/fesm2022/covalent-core-user-profile.mjs.map +1 -1
- package/file/directives/file-drop.directive.d.ts +1 -1
- package/file/directives/file-select.directive.d.ts +1 -1
- package/file/file-input/file-input.component.d.ts +2 -2
- package/file/file-upload/file-upload.component.d.ts +1 -1
- package/file/file.module.d.ts +5 -6
- package/json-formatter/json-formatter.component.d.ts +1 -1
- package/json-formatter/json-formatter.module.d.ts +5 -4
- package/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
- package/layout/layout-footer/layout-footer.component.d.ts +1 -1
- package/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
- package/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
- package/layout/layout-nav/layout-nav.component.d.ts +1 -1
- package/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
- package/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
- package/layout/layout-toggle.class.d.ts +1 -1
- package/layout/layout.component.d.ts +1 -1
- package/layout/layout.directives.d.ts +3 -3
- package/layout/layout.module.d.ts +5 -10
- package/layout/navigation-drawer/navigation-drawer.component.d.ts +3 -3
- package/loading/directives/loading.directive.d.ts +1 -1
- package/loading/loading.component.d.ts +1 -1
- package/loading/loading.module.d.ts +1 -6
- package/menu/menu.component.d.ts +1 -1
- package/menu/menu.module.d.ts +5 -4
- package/message/message.component.d.ts +2 -2
- package/message/message.module.d.ts +5 -3
- package/package.json +13 -38
- package/search/search-box/search-box.component.d.ts +1 -1
- package/search/search-input/search-input.component.d.ts +1 -1
- package/search/search.module.d.ts +5 -6
- package/side-sheet/side-sheet-container.d.ts +2 -2
- package/side-sheet/side-sheet.content-directives.d.ts +5 -5
- package/side-sheet/side-sheet.d.ts +1 -1
- package/side-sheet/side-sheet.module.d.ts +5 -4
- package/theming/prebuilt/all-theme-dark.css +1 -1
- package/theming/prebuilt/all-theme-dark.css.map +1 -1
- package/theming/prebuilt/all-theme-light.css +1 -1
- package/theming/prebuilt/all-theme-light.css.map +1 -1
- package/theming/prebuilt/blue-grey-deep-orange.css +1 -1
- package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
- package/theming/prebuilt/blue-orange.css +1 -1
- package/theming/prebuilt/blue-orange.css.map +1 -1
- package/theming/prebuilt/indigo-pink.css +1 -1
- package/theming/prebuilt/indigo-pink.css.map +1 -1
- package/theming/prebuilt/orange-light-blue.css +1 -1
- package/theming/prebuilt/orange-light-blue.css.map +1 -1
- package/theming/prebuilt/teal-orange.css +1 -1
- package/theming/prebuilt/teal-orange.css.map +1 -1
- package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +1 -1
- package/user-profile/user-profile.component.d.ts +1 -1
- package/user-profile/user-profile.module.d.ts +5 -8
- package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -94
- package/esm2022/breadcrumbs/breadcrumbs.component.mjs +0 -142
- package/esm2022/breadcrumbs/breadcrumbs.module.mjs +0 -20
- package/esm2022/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -5
- package/esm2022/breadcrumbs/public_api.mjs +0 -4
- package/esm2022/common/animations/bounce/bounce.animation.mjs +0 -70
- package/esm2022/common/animations/collapse/collapse.animation.mjs +0 -51
- package/esm2022/common/animations/common/interfaces.mjs +0 -2
- package/esm2022/common/animations/fade/fadeInOut.animation.mjs +0 -37
- package/esm2022/common/animations/flash/flash.animation.mjs +0 -34
- package/esm2022/common/animations/headshake/headshake.animation.mjs +0 -47
- package/esm2022/common/animations/jello/jello.animation.mjs +0 -59
- package/esm2022/common/animations/pulse/pulse.animation.mjs +0 -32
- package/esm2022/common/animations/rotate/rotate.animation.mjs +0 -30
- package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +0 -43
- package/esm2022/common/behaviors/disable-ripple.mixin.mjs +0 -24
- package/esm2022/common/behaviors/disabled.mixin.mjs +0 -24
- package/esm2022/common/common.module.mjs +0 -83
- package/esm2022/common/covalent-core-common.mjs +0 -5
- package/esm2022/common/directives/fullscreen/fullscreen.directive.mjs +0 -87
- package/esm2022/common/forms/auto-trim/auto-trim.directive.mjs +0 -37
- package/esm2022/common/forms/validators/validators.mjs +0 -29
- package/esm2022/common/functions/clipboard.mjs +0 -23
- package/esm2022/common/functions/convert.mjs +0 -84
- package/esm2022/common/functions/download.mjs +0 -75
- package/esm2022/common/functions/file.mjs +0 -16
- package/esm2022/common/pipes/bytes/bytes.pipe.mjs +0 -42
- package/esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +0 -42
- package/esm2022/common/pipes/digits/digits.pipe.mjs +0 -41
- package/esm2022/common/pipes/time-ago/time-ago.pipe.mjs +0 -72
- package/esm2022/common/pipes/time-difference/time-difference.pipe.mjs +0 -51
- package/esm2022/common/pipes/time-until/time-until.pipe.mjs +0 -72
- package/esm2022/common/pipes/truncate/truncate.pipe.mjs +0 -27
- package/esm2022/common/public_api.mjs +0 -39
- package/esm2022/common/services/icon.service.mjs +0 -1087
- package/esm2022/common/services/router-path.service.mjs +0 -30
- package/esm2022/covalent-core.mjs +0 -5
- package/esm2022/dialogs/alert-dialog/alert-dialog.component.mjs +0 -26
- package/esm2022/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -31
- package/esm2022/dialogs/covalent-core-dialogs.mjs +0 -5
- package/esm2022/dialogs/dialog.component.mjs +0 -75
- package/esm2022/dialogs/dialogs.module.mjs +0 -94
- package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -84
- package/esm2022/dialogs/public_api.mjs +0 -10
- package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -222
- package/esm2022/dialogs/services/dialog.service.mjs +0 -215
- package/esm2022/dialogs/status-dialog/status-dialog.component.mjs +0 -55
- package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +0 -40
- package/esm2022/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -5
- package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +0 -30
- package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +0 -23
- package/esm2022/dynamic-menu/dynamic-menu.component.mjs +0 -28
- package/esm2022/dynamic-menu/dynamic-menu.menu.mjs +0 -2
- package/esm2022/dynamic-menu/dynamic-menu.module.mjs +0 -55
- package/esm2022/dynamic-menu/public_api.mjs +0 -6
- package/esm2022/file/covalent-core-file.mjs +0 -5
- package/esm2022/file/directives/file-drop.directive.mjs +0 -145
- package/esm2022/file/directives/file-select.directive.mjs +0 -78
- package/esm2022/file/file-input/file-input.component.mjs +0 -146
- package/esm2022/file/file-upload/file-upload.component.mjs +0 -188
- package/esm2022/file/file.module.mjs +0 -56
- package/esm2022/file/public_api.mjs +0 -7
- package/esm2022/file/services/file.service.mjs +0 -66
- package/esm2022/json-formatter/collapse.animation.mjs +0 -51
- package/esm2022/json-formatter/covalent-core-json-formatter.mjs +0 -5
- package/esm2022/json-formatter/json-formatter.component.mjs +0 -222
- package/esm2022/json-formatter/json-formatter.module.mjs +0 -20
- package/esm2022/json-formatter/public_api.mjs +0 -3
- package/esm2022/layout/covalent-core-layout.mjs +0 -5
- package/esm2022/layout/layout-card-over/layout-card-over.component.mjs +0 -50
- package/esm2022/layout/layout-footer/layout-footer.component.mjs +0 -36
- package/esm2022/layout/layout-manage-list/layout-manage-list.component.mjs +0 -92
- package/esm2022/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -84
- package/esm2022/layout/layout-nav/layout-nav.component.mjs +0 -76
- package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +0 -154
- package/esm2022/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -84
- package/esm2022/layout/layout-toggle.class.mjs +0 -96
- package/esm2022/layout/layout.component.mjs +0 -91
- package/esm2022/layout/layout.directives.mjs +0 -85
- package/esm2022/layout/layout.module.mjs +0 -115
- package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +0 -221
- package/esm2022/layout/public_api.mjs +0 -13
- package/esm2022/loading/covalent-core-loading.mjs +0 -5
- package/esm2022/loading/directives/loading.directive.mjs +0 -133
- package/esm2022/loading/loading.component.mjs +0 -193
- package/esm2022/loading/loading.module.mjs +0 -41
- package/esm2022/loading/public_api.mjs +0 -6
- package/esm2022/loading/services/loading.factory.mjs +0 -210
- package/esm2022/loading/services/loading.service.mjs +0 -219
- package/esm2022/menu/covalent-core-menu.mjs +0 -5
- package/esm2022/menu/menu.component.mjs +0 -12
- package/esm2022/menu/menu.module.mjs +0 -21
- package/esm2022/menu/public_api.mjs +0 -3
- package/esm2022/message/collapse.animation.mjs +0 -51
- package/esm2022/message/covalent-core-message.mjs +0 -5
- package/esm2022/message/message.component.mjs +0 -222
- package/esm2022/message/message.module.mjs +0 -25
- package/esm2022/message/public_api.mjs +0 -3
- package/esm2022/public_api.mjs +0 -2
- package/esm2022/search/covalent-core-search.mjs +0 -5
- package/esm2022/search/public_api.mjs +0 -4
- package/esm2022/search/search-box/search-box.component.mjs +0 -198
- package/esm2022/search/search-input/search-input.component.mjs +0 -219
- package/esm2022/search/search.module.mjs +0 -37
- package/esm2022/side-sheet/covalent-core-side-sheet.mjs +0 -5
- package/esm2022/side-sheet/public_api.mjs +0 -6
- package/esm2022/side-sheet/side-sheet-container.mjs +0 -285
- package/esm2022/side-sheet/side-sheet-ref.mjs +0 -30
- package/esm2022/side-sheet/side-sheet.animation.mjs +0 -12
- package/esm2022/side-sheet/side-sheet.config.mjs +0 -11
- package/esm2022/side-sheet/side-sheet.content-directives.mjs +0 -206
- package/esm2022/side-sheet/side-sheet.mjs +0 -236
- package/esm2022/side-sheet/side-sheet.module.mjs +0 -45
- package/esm2022/user-profile/covalent-core-user-profile.mjs +0 -5
- package/esm2022/user-profile/public_api.mjs +0 -4
- package/esm2022/user-profile/user-profile-menu/user-profile-menu.component.mjs +0 -25
- package/esm2022/user-profile/user-profile.component.mjs +0 -21
- package/esm2022/user-profile/user-profile.module.mjs +0 -42
@@ -1,285 +0,0 @@
|
|
1
|
-
import { ConfigurableFocusTrapFactory, FocusMonitor, } from '@angular/cdk/a11y';
|
2
|
-
import { BasePortalOutlet, CdkPortalOutlet, } from '@angular/cdk/portal';
|
3
|
-
import { DOCUMENT } from '@angular/common';
|
4
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Optional, ViewChild, ViewEncapsulation, } from '@angular/core';
|
5
|
-
import { tdSideSheetAnimations } from './side-sheet.animation';
|
6
|
-
import { CovalentSideSheetConfig } from './side-sheet.config';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@angular/cdk/a11y";
|
9
|
-
import * as i2 from "./side-sheet.config";
|
10
|
-
import * as i3 from "@angular/cdk/portal";
|
11
|
-
export function _getFocusedElementPierceShadowDom() {
|
12
|
-
let activeElement = typeof document !== 'undefined' && document
|
13
|
-
? document.activeElement
|
14
|
-
: null;
|
15
|
-
while (activeElement && activeElement.shadowRoot) {
|
16
|
-
const newActiveElement = activeElement.shadowRoot
|
17
|
-
.activeElement;
|
18
|
-
if (newActiveElement === activeElement) {
|
19
|
-
break;
|
20
|
-
}
|
21
|
-
else {
|
22
|
-
activeElement = newActiveElement;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
return activeElement;
|
26
|
-
}
|
27
|
-
/**
|
28
|
-
* Base class for the `CovalentSideSheetContainer`. The base class does not implement
|
29
|
-
* animations as these are left to implementers of the side-sheet container.
|
30
|
-
*/
|
31
|
-
export class _CovalentSideSheetContainerBase extends BasePortalOutlet {
|
32
|
-
_elementRef;
|
33
|
-
_focusTrapFactory;
|
34
|
-
_changeDetectorRef;
|
35
|
-
_config;
|
36
|
-
_focusMonitor;
|
37
|
-
_document;
|
38
|
-
/** The portal outlet inside of this container into which the side-sheet content will be loaded. */
|
39
|
-
_portalOutlet;
|
40
|
-
/** The class that traps and manages focus within the side-sheet. */
|
41
|
-
_focusTrap;
|
42
|
-
/** Emits when an animation state changes. */
|
43
|
-
_animationStateChanged = new EventEmitter();
|
44
|
-
/** Element that was focused before the side-sheet was opened. Save this to restore upon close. */
|
45
|
-
_elementFocusedBeforeSideSheetWasOpened = null;
|
46
|
-
/**
|
47
|
-
* Type of interaction that led to the side-sheet being closed. This is used to determine
|
48
|
-
* whether the focus style will be applied when returning focus to its original location
|
49
|
-
* after the side-sheet is closed.
|
50
|
-
*/
|
51
|
-
_closeInteractionType = null;
|
52
|
-
/** ID of the element that should be considered as the side-sheet's label. */
|
53
|
-
_ariaLabelledBy;
|
54
|
-
/** ID for the container DOM element. */
|
55
|
-
_id;
|
56
|
-
constructor(_elementRef, _focusTrapFactory, _changeDetectorRef, _document,
|
57
|
-
/** The side-sheet configuration. */
|
58
|
-
_config, _focusMonitor) {
|
59
|
-
super();
|
60
|
-
this._elementRef = _elementRef;
|
61
|
-
this._focusTrapFactory = _focusTrapFactory;
|
62
|
-
this._changeDetectorRef = _changeDetectorRef;
|
63
|
-
this._config = _config;
|
64
|
-
this._focusMonitor = _focusMonitor;
|
65
|
-
this._ariaLabelledBy = _config.ariaLabelledBy || null;
|
66
|
-
this._document = _document;
|
67
|
-
}
|
68
|
-
/** Initializes the side-sheet container with the attached content. */
|
69
|
-
_initializeWithAttachedContent() {
|
70
|
-
this._setupFocusTrap();
|
71
|
-
// Save the previously focused element. This element will be re-focused
|
72
|
-
// when the side-sheet closes.
|
73
|
-
this._capturePreviouslyFocusedElement();
|
74
|
-
}
|
75
|
-
/**
|
76
|
-
* Attach a ComponentPortal as content to this side-sheet container.
|
77
|
-
* @param portal Portal to be attached as the side-sheet content.
|
78
|
-
*/
|
79
|
-
attachComponentPortal(portal) {
|
80
|
-
return this._portalOutlet.attachComponentPortal(portal);
|
81
|
-
}
|
82
|
-
/**
|
83
|
-
* Attach a TemplatePortal as content to this side-sheet container.
|
84
|
-
* @param portal Portal to be attached as the side-sheet content.
|
85
|
-
*/
|
86
|
-
attachTemplatePortal(portal) {
|
87
|
-
return this._portalOutlet.attachTemplatePortal(portal);
|
88
|
-
}
|
89
|
-
/**
|
90
|
-
* Attaches a DOM portal to the side-sheet container.
|
91
|
-
* @param portal Portal to be attached.
|
92
|
-
* @deprecated To be turned into a method.
|
93
|
-
*/
|
94
|
-
attachDomPortal = (portal) => {
|
95
|
-
return this._portalOutlet.attachDomPortal(portal);
|
96
|
-
};
|
97
|
-
/** Moves focus back into the side-sheet if it was moved out. */
|
98
|
-
_recaptureFocus() {
|
99
|
-
if (!this._containsFocus()) {
|
100
|
-
this._trapFocus();
|
101
|
-
}
|
102
|
-
}
|
103
|
-
/**
|
104
|
-
* Moves the focus inside the focus trap. When autoFocus is not set to 'side-sheet', if focus
|
105
|
-
* cannot be moved then focus will go to the side-sheet container.
|
106
|
-
*/
|
107
|
-
_trapFocus() {
|
108
|
-
const element = this._elementRef.nativeElement;
|
109
|
-
if (!this._config.autoFocus) {
|
110
|
-
if (!this._containsFocus()) {
|
111
|
-
element.focus();
|
112
|
-
}
|
113
|
-
}
|
114
|
-
else {
|
115
|
-
this._focusTrap
|
116
|
-
.focusInitialElementWhenReady()
|
117
|
-
.then((focusedSuccessfully) => {
|
118
|
-
// If we weren't able to find a focusable element in the side-sheet, then focus the side-sheet
|
119
|
-
// container instead.
|
120
|
-
if (!focusedSuccessfully) {
|
121
|
-
this._focusSideSheetContainer();
|
122
|
-
}
|
123
|
-
});
|
124
|
-
}
|
125
|
-
}
|
126
|
-
/** Restores focus to the element that was focused before the side-sheet opened. */
|
127
|
-
_restoreFocus() {
|
128
|
-
const previousElement = this._elementFocusedBeforeSideSheetWasOpened;
|
129
|
-
// We need the extra check, because IE can set the `activeElement` to null in some cases.
|
130
|
-
if (this._config.restoreFocus &&
|
131
|
-
previousElement &&
|
132
|
-
typeof previousElement.focus === 'function') {
|
133
|
-
const activeElement = _getFocusedElementPierceShadowDom();
|
134
|
-
const element = this._elementRef.nativeElement;
|
135
|
-
// Make sure that focus is still inside the side-sheet or is on the body (usually because a
|
136
|
-
// non-focusable element like the backdrop was clicked) before moving it. It's possible that
|
137
|
-
// the consumer moved it themselves before the animation was done, in which case we shouldn't
|
138
|
-
// do anything.
|
139
|
-
if (!activeElement ||
|
140
|
-
activeElement === this._document.body ||
|
141
|
-
activeElement === element ||
|
142
|
-
element.contains(activeElement)) {
|
143
|
-
if (this._focusMonitor) {
|
144
|
-
this._focusMonitor.focusVia(previousElement, this._closeInteractionType);
|
145
|
-
this._closeInteractionType = null;
|
146
|
-
}
|
147
|
-
else {
|
148
|
-
previousElement.focus();
|
149
|
-
}
|
150
|
-
}
|
151
|
-
}
|
152
|
-
if (this._focusTrap) {
|
153
|
-
this._focusTrap.destroy();
|
154
|
-
}
|
155
|
-
}
|
156
|
-
/** Sets up the focus trap. */
|
157
|
-
_setupFocusTrap() {
|
158
|
-
this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);
|
159
|
-
}
|
160
|
-
/** Captures the element that was focused before the side-sheet was opened. */
|
161
|
-
_capturePreviouslyFocusedElement() {
|
162
|
-
if (this._document) {
|
163
|
-
this._elementFocusedBeforeSideSheetWasOpened =
|
164
|
-
_getFocusedElementPierceShadowDom();
|
165
|
-
}
|
166
|
-
}
|
167
|
-
/** Focuses the side-sheet container. */
|
168
|
-
_focusSideSheetContainer() {
|
169
|
-
// Note that there is no focus method when rendering on the server.
|
170
|
-
if (this._elementRef.nativeElement.focus) {
|
171
|
-
this._elementRef.nativeElement.focus();
|
172
|
-
}
|
173
|
-
}
|
174
|
-
/** Returns whether focus is inside the side-sheet. */
|
175
|
-
_containsFocus() {
|
176
|
-
const element = this._elementRef.nativeElement;
|
177
|
-
const activeElement = _getFocusedElementPierceShadowDom();
|
178
|
-
return element === activeElement || element.contains(activeElement);
|
179
|
-
}
|
180
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: _CovalentSideSheetContainerBase, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT, optional: true }, { token: i2.CovalentSideSheetConfig }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
|
181
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: _CovalentSideSheetContainerBase, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
|
182
|
-
}
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: _CovalentSideSheetContainerBase, decorators: [{
|
184
|
-
type: Directive
|
185
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
186
|
-
type: Optional
|
187
|
-
}, {
|
188
|
-
type: Inject,
|
189
|
-
args: [DOCUMENT]
|
190
|
-
}] }, { type: i2.CovalentSideSheetConfig }, { type: i1.FocusMonitor }], propDecorators: { _portalOutlet: [{
|
191
|
-
type: ViewChild,
|
192
|
-
args: [CdkPortalOutlet, { static: true }]
|
193
|
-
}] } });
|
194
|
-
/**
|
195
|
-
* Internal component that wraps the generated side-sheet content.
|
196
|
-
* This animation below is the only reason for duplicating most of the Material dialog code
|
197
|
-
*/
|
198
|
-
export class CovalentSideSheetContainerComponent extends _CovalentSideSheetContainerBase {
|
199
|
-
/** State of the side-sheet animation. */
|
200
|
-
_state = 'enter';
|
201
|
-
tdSideSheetContainerClass = true;
|
202
|
-
tabIndex = -1;
|
203
|
-
arialModal = true;
|
204
|
-
idAttr = this._id;
|
205
|
-
roleAttr = this._config.role;
|
206
|
-
arialLabelByAttr = this._config.ariaLabel
|
207
|
-
? null
|
208
|
-
: this._ariaLabelledBy;
|
209
|
-
arialDescribeByAttr = this._config.ariaDescribedBy || null;
|
210
|
-
arialLabelAttr = this._config.ariaLabel;
|
211
|
-
get sideSheetAnimationState() {
|
212
|
-
return this._state;
|
213
|
-
}
|
214
|
-
onAnimateStart($event) {
|
215
|
-
this._onAnimationStart($event);
|
216
|
-
}
|
217
|
-
onAnimateDone($event) {
|
218
|
-
this._onAnimationDone($event);
|
219
|
-
}
|
220
|
-
/** Callback, invoked whenever an animation on the host completes. */
|
221
|
-
_onAnimationDone({ toState, totalTime }) {
|
222
|
-
if (toState === 'enter') {
|
223
|
-
this._trapFocus();
|
224
|
-
this._animationStateChanged.next({ state: 'opened', totalTime });
|
225
|
-
}
|
226
|
-
else if (toState === 'exit') {
|
227
|
-
this._restoreFocus();
|
228
|
-
this._animationStateChanged.next({ state: 'closed', totalTime });
|
229
|
-
}
|
230
|
-
}
|
231
|
-
/** Callback, invoked when an animation on the host starts. */
|
232
|
-
_onAnimationStart({ toState, totalTime }) {
|
233
|
-
if (toState === 'enter') {
|
234
|
-
this._animationStateChanged.next({ state: 'opening', totalTime });
|
235
|
-
}
|
236
|
-
else if (toState === 'exit' || toState === 'void') {
|
237
|
-
this._animationStateChanged.next({ state: 'closing', totalTime });
|
238
|
-
}
|
239
|
-
}
|
240
|
-
/** Starts the side-sheet exit animation. */
|
241
|
-
_startExitAnimation() {
|
242
|
-
this._state = 'exit';
|
243
|
-
this._changeDetectorRef.markForCheck();
|
244
|
-
}
|
245
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
246
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: CovalentSideSheetContainerComponent, selector: "td-side-sheet-container", host: { listeners: { "@sideSheetContainer.start": "onAnimateStart($event)", "@sideSheetContainer.done": "onAnimateDone($event)" }, properties: { "class.td-side-sheet-container": "this.tdSideSheetContainerClass", "tabindex": "this.tabIndex", "aria-modal": "this.arialModal", "id": "this.idAttr", "attr.role": "this.roleAttr", "attr.aria-labelledby": "this.arialLabelByAttr", "attr.aria-describedby": "this.arialDescribeByAttr", "attr.aria-label": "this.arialLabelAttr", "@sideSheetContainer": "this.sideSheetAnimationState" } }, usesInheritance: true, ngImport: i0, template: ` <ng-template cdkPortalOutlet></ng-template> `, isInline: true, styles: [".td-side-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;display:block;padding:24px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.td-side-sheet-wrapper{display:flex;flex-direction:column;height:100%}.td-side-sheet-content{margin:0 -24px;padding:0 24px;overflow:auto;flex:1;-webkit-overflow-scrolling:touch}.td-side-sheet-title{margin:-16px 0 20px;display:flex;align-items:center}.td-side-sheet-actions{padding:8px 0;margin:0 -16px -24px;display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;box-sizing:content-box}.td-side-sheet-actions[align=end]{justify-content:flex-end}.td-side-sheet-actions[align=center]{justify-content:center}.td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [tdSideSheetAnimations.sideSheetContainer], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
247
|
-
}
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetContainerComponent, decorators: [{
|
249
|
-
type: Component,
|
250
|
-
args: [{ selector: 'td-side-sheet-container', template: ` <ng-template cdkPortalOutlet></ng-template> `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [tdSideSheetAnimations.sideSheetContainer], styles: [".td-side-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;display:block;padding:24px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%;min-height:inherit;max-height:inherit}.td-side-sheet-wrapper{display:flex;flex-direction:column;height:100%}.td-side-sheet-content{margin:0 -24px;padding:0 24px;overflow:auto;flex:1;-webkit-overflow-scrolling:touch}.td-side-sheet-title{margin:-16px 0 20px;display:flex;align-items:center}.td-side-sheet-actions{padding:8px 0;margin:0 -16px -24px;display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;box-sizing:content-box}.td-side-sheet-actions[align=end]{justify-content:flex-end}.td-side-sheet-actions[align=center]{justify-content:center}.td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .td-side-sheet-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}\n"] }]
|
251
|
-
}], propDecorators: { tdSideSheetContainerClass: [{
|
252
|
-
type: HostBinding,
|
253
|
-
args: ['class.td-side-sheet-container']
|
254
|
-
}], tabIndex: [{
|
255
|
-
type: HostBinding,
|
256
|
-
args: ['tabindex']
|
257
|
-
}], arialModal: [{
|
258
|
-
type: HostBinding,
|
259
|
-
args: ['aria-modal']
|
260
|
-
}], idAttr: [{
|
261
|
-
type: HostBinding,
|
262
|
-
args: ['id']
|
263
|
-
}], roleAttr: [{
|
264
|
-
type: HostBinding,
|
265
|
-
args: ['attr.role']
|
266
|
-
}], arialLabelByAttr: [{
|
267
|
-
type: HostBinding,
|
268
|
-
args: ['attr.aria-labelledby']
|
269
|
-
}], arialDescribeByAttr: [{
|
270
|
-
type: HostBinding,
|
271
|
-
args: ['attr.aria-describedby']
|
272
|
-
}], arialLabelAttr: [{
|
273
|
-
type: HostBinding,
|
274
|
-
args: ['attr.aria-label']
|
275
|
-
}], sideSheetAnimationState: [{
|
276
|
-
type: HostBinding,
|
277
|
-
args: ['@sideSheetContainer']
|
278
|
-
}], onAnimateStart: [{
|
279
|
-
type: HostListener,
|
280
|
-
args: ['@sideSheetContainer.start', ['$event']]
|
281
|
-
}], onAnimateDone: [{
|
282
|
-
type: HostListener,
|
283
|
-
args: ['@sideSheetContainer.done', ['$event']]
|
284
|
-
}] } });
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVMLDRCQUE0QixFQUM1QixZQUFZLEdBRWIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FJaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU5RCxNQUFNLFVBQVUsaUNBQWlDO0lBQy9DLElBQUksYUFBYSxHQUNmLE9BQU8sUUFBUSxLQUFLLFdBQVcsSUFBSSxRQUFRO1FBQ3pDLENBQUMsQ0FBRSxRQUFRLENBQUMsYUFBb0M7UUFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUVYLE9BQU8sYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqRCxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxVQUFVO2FBQzlDLGFBQW1DLENBQUM7UUFDdkMsSUFBSSxnQkFBZ0IsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxNQUFNO1FBQ1IsQ0FBQzthQUFNLENBQUM7WUFDTixhQUFhLEdBQUcsZ0JBQWdCLENB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QUFXO3VCQUFDLHFCQUFxQjtnQkFHcUIsY0FBYztzQkFBcEUsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNQyxhQUFhO3NCQUFsRSxZQUFZO3VCQUFDLDBCQUEwQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDb25maWd1cmFibGVGb2N1c1RyYXAsXG4gIENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXG4gIEZvY3VzTW9uaXRvcixcbiAgRm9jdXNPcmlnaW4sXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEJhc2VQb3J0YWxPdXRsZXQsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBEb21Qb3J0YWwsXG4gIFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGRTaWRlU2hlZXRBbmltYXRpb25zIH0gZnJvbSAnLi9zaWRlLXNoZWV0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyB9IGZyb20gJy4vc2lkZS1zaGVldC5jb25maWcnO1xuXG5leHBvcnQgZnVuY3Rpb24gX2dldEZvY3VzZWRFbGVtZW50UGllcmNlU2hhZG93RG9tKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGxldCBhY3RpdmVFbGVtZW50ID1cbiAgICB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50XG4gICAgICA/IChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbClcbiAgICAgIDogbnVsbDtcblxuICB3aGlsZSAoYWN0aXZlRWxlbWVudCAmJiBhY3RpdmVFbGVtZW50LnNoYWRvd1Jvb3QpIHtcbiAgICBjb25zdCBuZXdBY3RpdmVFbGVtZW50ID0gYWN0aXZlRWxlbWVudC5zaGFkb3dSb290XG4gICAgICAuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKG5ld0FjdGl2ZUVsZW1lbnQgPT09IGFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3RpdmVFbGVtZW50ID0gbmV3QWN0aXZlRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYWN0aXZlRWxlbWVudDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciB0aGUgYENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyYC4gVGhlIGJhc2UgY2xhc3MgZG9lcyBub3QgaW1wbGVtZW50XG4gKiBhbmltYXRpb25zIGFzIHRoZXNlIGFyZSBsZWZ0IHRvIGltcGxlbWVudGVycyBvZiB0aGUgc2lkZS1zaGVldCBjb250YWluZXIuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9Db3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckJhc2UgZXh0ZW5kcyBCYXNlUG9ydGFsT3V0bGV0IHtcbiAgcHJvdGVjdGVkIF9kb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgLyoqIFRoZSBwb3J0YWwgb3V0bGV0IGluc2lkZSBvZiB0aGlzIGNvbnRhaW5lciBpbnRvIHdoaWNoIHRoZSBzaWRlLXNoZWV0IGNvbnRlbnQgd2lsbCBiZSBsb2FkZWQuICovXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KSBfcG9ydGFsT3V0bGV0ITogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gIC8qKiBUaGUgY2xhc3MgdGhhdCB0cmFwcyBhbmQgbWFuYWdlcyBmb2N1cyB3aXRoaW4gdGhlIHNpZGUtc2hlZXQuICovXG4gIHByaXZhdGUgX2ZvY3VzVHJhcCE6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcDtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBhbmltYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgX2FuaW1hdGlvblN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHN0YXRlOiAnb3BlbmVkJyB8ICdvcGVuaW5nJyB8ICdjbG9zaW5nJyB8ICdjbG9zZWQnO1xuICAgIHRvdGFsVGltZTogbnVtYmVyO1xuICB9PigpO1xuXG4gIC8qKiBFbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBzaWRlLXNoZWV0IHdhcyBvcGVuZWQuIFNhdmUgdGhpcyB0byByZXN0b3JlIHVwb24gY2xvc2UuICovXG4gIHByaXZhdGUgX2VsZW1lbnRGb2N1c2VkQmVmb3JlU2lkZVNoZWV0V2FzT3BlbmVkOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIGludGVyYWN0aW9uIHRoYXQgbGVkIHRvIHRoZSBzaWRlLXNoZWV0IGJlaW5nIGNsb3NlZC4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZVxuICAgKiB3aGV0aGVyIHRoZSBmb2N1cyBzdHlsZSB3aWxsIGJlIGFwcGxpZWQgd2hlbiByZXR1cm5pbmcgZm9jdXMgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uXG4gICAqIGFmdGVyIHRoZSBzaWRlLXNoZWV0IGlzIGNsb3NlZC5cbiAgICovXG4gIF9jbG9zZUludGVyYWN0aW9uVHlwZTogRm9jdXNPcmlnaW4gfCBudWxsID0gbnVsbDtcblxuICAvKiogSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyB0aGUgc2lkZS1zaGVldCdzIGxhYmVsLiAqL1xuICBfYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqIElEIGZvciB0aGUgY29udGFpbmVyIERPTSBlbGVtZW50LiAqL1xuICBfaWQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBfZm9jdXNUcmFwRmFjdG9yeTogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSxcbiAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBfZG9jdW1lbnQ6IGFueSxcbiAgICAvKiogVGhlIHNpZGUtc2hlZXQgY29uZmlndXJhdGlvbi4gKi9cbiAgICBwdWJsaWMgX2NvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yPzogRm9jdXNNb25pdG9yXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fYXJpYUxhYmVsbGVkQnkgPSBfY29uZmlnLmFyaWFMYWJlbGxlZEJ5IHx8IG51bGw7XG4gICAgdGhpcy5fZG9jdW1lbnQgPSBfZG9jdW1lbnQ7XG4gIH1cblxuICAvKiogU3RhcnRzIHRoZSBzaWRlLXNoZWV0IGV4aXQgYW5pbWF0aW9uLiAqL1xuICBhYnN0cmFjdCBfc3RhcnRFeGl0QW5pbWF0aW9uKCk6IHZvaWQ7XG5cbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lciB3aXRoIHRoZSBhdHRhY2hlZCBjb250ZW50LiAqL1xuICBfaW5pdGlhbGl6ZVdpdGhBdHRhY2hlZENvbnRlbnQoKSB7XG4gICAgdGhpcy5fc2V0dXBGb2N1c1RyYXAoKTtcbiAgICAvLyBTYXZlIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQgZWxlbWVudC4gVGhpcyBlbGVtZW50IHdpbGwgYmUgcmUtZm9jdXNlZFxuICAgIC8vIHdoZW4gdGhlIHNpZGUtc2hlZXQgY2xvc2VzLlxuICAgIHRoaXMuX2NhcHR1cmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBDb21wb25lbnRQb3J0YWwgYXMgY29udGVudCB0byB0aGlzIHNpZGUtc2hlZXQgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCBhcyB0aGUgc2lkZS1zaGVldCBjb250ZW50LlxuICAgKi9cbiAgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbChwb3J0YWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIFRlbXBsYXRlUG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBzaWRlLXNoZWV0IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIHNpZGUtc2hlZXQgY29udGVudC5cbiAgICovXG4gIGF0dGFjaFRlbXBsYXRlUG9ydGFsPEM+KHBvcnRhbDogVGVtcGxhdGVQb3J0YWw8Qz4pOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuICAgIHJldHVybiB0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIERPTSBwb3J0YWwgdG8gdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZC5cbiAgICogQGRlcHJlY2F0ZWQgVG8gYmUgdHVybmVkIGludG8gYSBtZXRob2QuXG4gICAqL1xuICBvdmVycmlkZSBhdHRhY2hEb21Qb3J0YWwgPSAocG9ydGFsOiBEb21Qb3J0YWwpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaERvbVBvcnRhbChwb3J0YWwpO1xuICB9O1xuXG4gIC8qKiBNb3ZlcyBmb2N1cyBiYWNrIGludG8gdGhlIHNpZGUtc2hlZXQgaWYgaXQgd2FzIG1vdmVkIG91dC4gKi9cbiAgX3JlY2FwdHVyZUZvY3VzKCkge1xuICAgIGlmICghdGhpcy5fY29udGFpbnNGb2N1cygpKSB7XG4gICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIGZvY3VzIGluc2lkZSB0aGUgZm9jdXMgdHJhcC4gV2hlbiBhdXRvRm9jdXMgaXMgbm90IHNldCB0byAnc2lkZS1zaGVldCcsIGlmIGZvY3VzXG4gICAqIGNhbm5vdCBiZSBtb3ZlZCB0aGVuIGZvY3VzIHdpbGwgZ28gdG8gdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIF90cmFwRm9jdXMoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5hdXRvRm9jdXMpIHtcbiAgICAgIGlmICghdGhpcy5fY29udGFpbnNGb2N1cygpKSB7XG4gICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZm9jdXNUcmFwXG4gICAgICAgIC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KClcbiAgICAgICAgLnRoZW4oKGZvY3VzZWRTdWNjZXNzZnVsbHkpID0+IHtcbiAgICAgICAgICAvLyBJZiB3ZSB3ZXJlbid0IGFibGUgdG8gZmluZCBhIGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSBzaWRlLXNoZWV0LCB0aGVuIGZvY3VzIHRoZSBzaWRlLXNoZWV0XG4gICAgICAgICAgLy8gY29udGFpbmVyIGluc3RlYWQuXG4gICAgICAgICAgaWYgKCFmb2N1c2VkU3VjY2Vzc2Z1bGx5KSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c1NpZGVTaGVldENvbnRhaW5lcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc3RvcmVzIGZvY3VzIHRvIHRoZSBlbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBzaWRlLXNoZWV0IG9wZW5lZC4gKi9cbiAgcHJvdGVjdGVkIF9yZXN0b3JlRm9jdXMoKSB7XG4gICAgY29uc3QgcHJldmlvdXNFbGVtZW50ID0gdGhpcy5fZWxlbWVudEZvY3VzZWRCZWZvcmVTaWRlU2hlZXRXYXNPcGVuZWQ7XG5cbiAgICAvLyBXZSBuZWVkIHRoZSBleHRyYSBjaGVjaywgYmVjYXVzZSBJRSBjYW4gc2V0IHRoZSBgYWN0aXZlRWxlbWVudGAgdG8gbnVsbCBpbiBzb21lIGNhc2VzLlxuICAgIGlmIChcbiAgICAgIHRoaXMuX2NvbmZpZy5yZXN0b3JlRm9jdXMgJiZcbiAgICAgIHByZXZpb3VzRWxlbWVudCAmJlxuICAgICAgdHlwZW9mIHByZXZpb3VzRWxlbWVudC5mb2N1cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IF9nZXRGb2N1c2VkRWxlbWVudFBpZXJjZVNoYWRvd0RvbSgpO1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgZm9jdXMgaXMgc3RpbGwgaW5zaWRlIHRoZSBzaWRlLXNoZWV0IG9yIGlzIG9uIHRoZSBib2R5ICh1c3VhbGx5IGJlY2F1c2UgYVxuICAgICAgLy8gbm9uLWZvY3VzYWJsZSBlbGVtZW50IGxpa2UgdGhlIGJhY2tkcm9wIHdhcyBjbGlja2VkKSBiZWZvcmUgbW92aW5nIGl0LiBJdCdzIHBvc3NpYmxlIHRoYXRcbiAgICAgIC8vIHRoZSBjb25zdW1lciBtb3ZlZCBpdCB0aGVtc2VsdmVzIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHdhcyBkb25lLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZG4ndFxuICAgICAgLy8gZG8gYW55dGhpbmcuXG4gICAgICBpZiAoXG4gICAgICAgICFhY3RpdmVFbGVtZW50IHx8XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuX2RvY3VtZW50LmJvZHkgfHxcbiAgICAgICAgYWN0aXZlRWxlbWVudCA9PT0gZWxlbWVudCB8fFxuICAgICAgICBlbGVtZW50LmNvbnRhaW5zKGFjdGl2ZUVsZW1lbnQpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZvY3VzTW9uaXRvcikge1xuICAgICAgICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYShcbiAgICAgICAgICAgIHByZXZpb3VzRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLl9jbG9zZUludGVyYWN0aW9uVHlwZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZm9jdXNUcmFwKSB7XG4gICAgICB0aGlzLl9mb2N1c1RyYXAuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXRzIHVwIHRoZSBmb2N1cyB0cmFwLiAqL1xuICBwcml2YXRlIF9zZXR1cEZvY3VzVHJhcCgpIHtcbiAgICB0aGlzLl9mb2N1c1RyYXAgPSB0aGlzLl9mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZShcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICk7XG4gIH1cblxuICAvKiogQ2FwdHVyZXMgdGhlIGVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBiZWZvcmUgdGhlIHNpZGUtc2hlZXQgd2FzIG9wZW5lZC4gKi9cbiAgcHJpdmF0ZSBfY2FwdHVyZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpIHtcbiAgICBpZiAodGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRGb2N1c2VkQmVmb3JlU2lkZVNoZWV0V2FzT3BlbmVkID1cbiAgICAgICAgX2dldEZvY3VzZWRFbGVtZW50UGllcmNlU2hhZG93RG9tKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyLiAqL1xuICBwcml2YXRlIF9mb2N1c1NpZGVTaGVldENvbnRhaW5lcigpIHtcbiAgICAvLyBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gZm9jdXMgbWV0aG9kIHdoZW4gcmVuZGVyaW5nIG9uIHRoZSBzZXJ2ZXIuXG4gICAgaWYgKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cykge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybnMgd2hldGhlciBmb2N1cyBpcyBpbnNpZGUgdGhlIHNpZGUtc2hlZXQuICovXG4gIHByaXZhdGUgX2NvbnRhaW5zRm9jdXMoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gX2dldEZvY3VzZWRFbGVtZW50UGllcmNlU2hhZG93RG9tKCk7XG4gICAgcmV0dXJuIGVsZW1lbnQgPT09IGFjdGl2ZUVsZW1lbnQgfHwgZWxlbWVudC5jb250YWlucyhhY3RpdmVFbGVtZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVybmFsIGNvbXBvbmVudCB0aGF0IHdyYXBzIHRoZSBnZW5lcmF0ZWQgc2lkZS1zaGVldCBjb250ZW50LlxuICogVGhpcyBhbmltYXRpb24gYmVsb3cgaXMgdGhlIG9ubHkgcmVhc29uIGZvciBkdXBsaWNhdGluZyBtb3N0IG9mIHRoZSBNYXRlcmlhbCBkaWFsb2cgY29kZVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1zaWRlLXNoZWV0LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlOiBgIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT4gYCxcbiAgc3R5bGVVcmxzOiBbJ3NpZGUtc2hlZXQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGFuaW1hdGlvbnM6IFt0ZFNpZGVTaGVldEFuaW1hdGlvbnMuc2lkZVNoZWV0Q29udGFpbmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBfQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJCYXNlIHtcbiAgLyoqIFN0YXRlIG9mIHRoZSBzaWRlLXNoZWV0IGFuaW1hdGlvbi4gKi9cbiAgX3N0YXRlOiAndm9pZCcgfCAnZW50ZXInIHwgJ2V4aXQnID0gJ2VudGVyJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtY29udGFpbmVyJykgdGRTaWRlU2hlZXRDb250YWluZXJDbGFzcyA9XG4gICAgdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHRhYkluZGV4ID0gLTE7XG4gIEBIb3N0QmluZGluZygnYXJpYS1tb2RhbCcpIGFyaWFsTW9kYWwgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2lkJykgaWRBdHRyID0gdGhpcy5faWQ7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZUF0dHIgPSB0aGlzLl9jb25maWcucm9sZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWxsZWRieScpIGFyaWFsTGFiZWxCeUF0dHIgPSB0aGlzLl9jb25maWcuYXJpYUxhYmVsXG4gICAgPyBudWxsXG4gICAgOiB0aGlzLl9hcmlhTGFiZWxsZWRCeTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBhcmlhbERlc2NyaWJlQnlBdHRyID1cbiAgICB0aGlzLl9jb25maWcuYXJpYURlc2NyaWJlZEJ5IHx8IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJykgYXJpYWxMYWJlbEF0dHIgPSB0aGlzLl9jb25maWcuYXJpYUxhYmVsO1xuICBASG9zdEJpbmRpbmcoJ0BzaWRlU2hlZXRDb250YWluZXInKSBnZXQgc2lkZVNoZWV0QW5pbWF0aW9uU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ0BzaWRlU2hlZXRDb250YWluZXIuc3RhcnQnLCBbJyRldmVudCddKSBvbkFuaW1hdGVTdGFydChcbiAgICAkZXZlbnQ6IEFuaW1hdGlvbkV2ZW50XG4gICkge1xuICAgIHRoaXMuX29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0BzaWRlU2hlZXRDb250YWluZXIuZG9uZScsIFsnJGV2ZW50J10pIG9uQW5pbWF0ZURvbmUoXG4gICAgJGV2ZW50OiBBbmltYXRpb25FdmVudFxuICApIHtcbiAgICB0aGlzLl9vbkFuaW1hdGlvbkRvbmUoJGV2ZW50KTtcbiAgfVxuXG4gIC8qKiBDYWxsYmFjaywgaW52b2tlZCB3aGVuZXZlciBhbiBhbmltYXRpb24gb24gdGhlIGhvc3QgY29tcGxldGVzLiAqL1xuICBfb25BbmltYXRpb25Eb25lKHsgdG9TdGF0ZSwgdG90YWxUaW1lIH06IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgaWYgKHRvU3RhdGUgPT09ICdlbnRlcicpIHtcbiAgICAgIHRoaXMuX3RyYXBGb2N1cygpO1xuICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLm5leHQoeyBzdGF0ZTogJ29wZW5lZCcsIHRvdGFsVGltZSB9KTtcbiAgICB9IGVsc2UgaWYgKHRvU3RhdGUgPT09ICdleGl0Jykge1xuICAgICAgdGhpcy5fcmVzdG9yZUZvY3VzKCk7XG4gICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZUNoYW5nZWQubmV4dCh7IHN0YXRlOiAnY2xvc2VkJywgdG90YWxUaW1lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsYmFjaywgaW52b2tlZCB3aGVuIGFuIGFuaW1hdGlvbiBvbiB0aGUgaG9zdCBzdGFydHMuICovXG4gIF9vbkFuaW1hdGlvblN0YXJ0KHsgdG9TdGF0ZSwgdG90YWxUaW1lIH06IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgaWYgKHRvU3RhdGUgPT09ICdlbnRlcicpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZC5uZXh0KHsgc3RhdGU6ICdvcGVuaW5nJywgdG90YWxUaW1lIH0pO1xuICAgIH0gZWxzZSBpZiAodG9TdGF0ZSA9PT0gJ2V4aXQnIHx8IHRvU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLm5leHQoeyBzdGF0ZTogJ2Nsb3NpbmcnLCB0b3RhbFRpbWUgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFN0YXJ0cyB0aGUgc2lkZS1zaGVldCBleGl0IGFuaW1hdGlvbi4gKi9cbiAgX3N0YXJ0RXhpdEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdleGl0JztcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { DialogRef } from '@angular/cdk/dialog';
|
2
|
-
import { MatDialogRef } from '@angular/material/dialog';
|
3
|
-
// Counter for unique dialog ids.
|
4
|
-
let uniqueId = 0;
|
5
|
-
// Create a new side sheet ref to change the id of the ref
|
6
|
-
export class CovalentSideSheetRef extends MatDialogRef {
|
7
|
-
overlayRef;
|
8
|
-
config;
|
9
|
-
_containerInstance;
|
10
|
-
id;
|
11
|
-
constructor(overlayRef, config, _containerInstance, id = `td-side-sheet-${uniqueId++}`) {
|
12
|
-
const ref = new DialogRef(overlayRef, config);
|
13
|
-
super(ref, config, _containerInstance);
|
14
|
-
this.overlayRef = overlayRef;
|
15
|
-
this.config = config;
|
16
|
-
this._containerInstance = _containerInstance;
|
17
|
-
this.id = id;
|
18
|
-
ref.containerInstance =
|
19
|
-
this._containerInstance;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
export function _closeSideSheetVia(ref, interactionType, result) {
|
23
|
-
// Some mock dialog ref instances in tests do not have the `_containerInstance` property.
|
24
|
-
// For those, we keep the behavior as is and do not deal with the interaction type.
|
25
|
-
if (ref._containerInstance !== undefined) {
|
26
|
-
ref._containerInstance._closeInteractionType = interactionType;
|
27
|
-
}
|
28
|
-
return ref.close(result);
|
29
|
-
}
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFHNUUsaUNBQWlDO0FBQ2pDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQiwwREFBMEQ7QUFDMUQsTUFBTSxPQUFPLG9CQUFpQyxTQUFRLFlBQWtCO0lBRTdEO0lBQ0E7SUFDUztJQUNFO0lBSnBCLFlBQ1MsVUFBc0IsRUFDdEIsTUFBK0IsRUFDdEIsa0JBQXNDLEVBQ3BDLEtBQUssaUJBQWlCLFFBQVEsRUFBRSxFQUFFO1FBRXBELE1BQU0sR0FBRyxHQUFHLElBQUksU0FBUyxDQUFPLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBTmhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDdEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNwQyxPQUFFLEdBQUYsRUFBRSxDQUFnQztRQUluRCxHQUErQyxDQUFDLGlCQUFpQjtZQUNoRSxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxHQUE0QixFQUM1QixlQUE0QixFQUM1QixNQUFVO0lBRVYseUZBQXlGO0lBQ3pGLG1GQUFtRjtJQUNuRixJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6QyxHQUFHLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQUFDO0lBQ2pFLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEJhc2VQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nQ29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnIH0gZnJvbSAnLi9zaWRlLXNoZWV0LmNvbmZpZyc7XG5cbi8vIENvdW50ZXIgZm9yIHVuaXF1ZSBkaWFsb2cgaWRzLlxubGV0IHVuaXF1ZUlkID0gMDtcblxuLy8gQ3JlYXRlIGEgbmV3IHNpZGUgc2hlZXQgcmVmIHRvIGNoYW5nZSB0aGUgaWQgb2YgdGhlIHJlZlxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0UmVmPFQsIFIgPSBhbnk+IGV4dGVuZHMgTWF0RGlhbG9nUmVmPFQsIFI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcHVibGljIGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsXG4gICAgcHVibGljIG92ZXJyaWRlIF9jb250YWluZXJJbnN0YW5jZTogTWF0RGlhbG9nQ29udGFpbmVyLFxuICAgIG92ZXJyaWRlIHJlYWRvbmx5IGlkID0gYHRkLXNpZGUtc2hlZXQtJHt1bmlxdWVJZCsrfWBcbiAgKSB7XG4gICAgY29uc3QgcmVmID0gbmV3IERpYWxvZ1JlZjxSLCBUPihvdmVybGF5UmVmLCBjb25maWcpO1xuICAgIHN1cGVyKHJlZiwgY29uZmlnLCBfY29udGFpbmVySW5zdGFuY2UpO1xuICAgIChyZWYgYXMgeyBjb250YWluZXJJbnN0YW5jZTogQmFzZVBvcnRhbE91dGxldCB9KS5jb250YWluZXJJbnN0YW5jZSA9XG4gICAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX2Nsb3NlU2lkZVNoZWV0VmlhPFI+KFxuICByZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPFI+LFxuICBpbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luLFxuICByZXN1bHQ/OiBSXG4pIHtcbiAgLy8gU29tZSBtb2NrIGRpYWxvZyByZWYgaW5zdGFuY2VzIGluIHRlc3RzIGRvIG5vdCBoYXZlIHRoZSBgX2NvbnRhaW5lckluc3RhbmNlYCBwcm9wZXJ0eS5cbiAgLy8gRm9yIHRob3NlLCB3ZSBrZWVwIHRoZSBiZWhhdmlvciBhcyBpcyBhbmQgZG8gbm90IGRlYWwgd2l0aCB0aGUgaW50ZXJhY3Rpb24gdHlwZS5cbiAgaWYgKHJlZi5fY29udGFpbmVySW5zdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHJlZi5fY29udGFpbmVySW5zdGFuY2UuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlID0gaW50ZXJhY3Rpb25UeXBlO1xuICB9XG4gIHJldHVybiByZWYuY2xvc2UocmVzdWx0KTtcbn1cbiJdfQ==
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import { animate, state, style, transition, trigger, } from '@angular/animations';
|
2
|
-
import { AnimationCurves, AnimationDurations } from '@angular/material/core';
|
3
|
-
export const tdSideSheetAnimations = {
|
4
|
-
/** Animation that is applied on the side-sheet container by default. */
|
5
|
-
sideSheetContainer: trigger('sideSheetContainer', [
|
6
|
-
state('void, exit', style({ transform: 'translateX(100%)' })),
|
7
|
-
state('enter', style({ transform: 'translateX(0%)', opacity: 1 })),
|
8
|
-
transition('* => enter', animate(`${AnimationDurations.ENTERING} ${AnimationCurves.ACCELERATION_CURVE}`, style({ transform: 'translateX(0)', opacity: 1 }))),
|
9
|
-
transition('* => void, * => exit', animate(`${AnimationDurations.EXITING} ${AnimationCurves.ACCELERATION_CURVE}`, style({ transform: 'translateX(100%)' }))),
|
10
|
-
]),
|
11
|
-
};
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBRVIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBRTlCO0lBQ0Ysd0VBQXdFO0lBQ3hFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtRQUNoRCxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsVUFBVSxDQUNSLFlBQVksRUFDWixPQUFPLENBQ0wsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLElBQUksZUFBZSxDQUFDLGtCQUFrQixFQUFFLEVBQ3RFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ2xELENBQ0Y7UUFDRCxVQUFVLENBQ1Isc0JBQXNCLEVBQ3RCLE9BQU8sQ0FDTCxHQUFHLGtCQUFrQixDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUMsa0JBQWtCLEVBQUUsRUFDckUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FDekMsQ0FDRjtLQUNGLENBQUM7Q0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxuICBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQW5pbWF0aW9uQ3VydmVzLCBBbmltYXRpb25EdXJhdGlvbnMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IHRkU2lkZVNoZWV0QW5pbWF0aW9uczoge1xuICByZWFkb25seSBzaWRlU2hlZXRDb250YWluZXI6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gIC8qKiBBbmltYXRpb24gdGhhdCBpcyBhcHBsaWVkIG9uIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lciBieSBkZWZhdWx0LiAqL1xuICBzaWRlU2hlZXRDb250YWluZXI6IHRyaWdnZXIoJ3NpZGVTaGVldENvbnRhaW5lcicsIFtcbiAgICBzdGF0ZSgndm9pZCwgZXhpdCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSkpLFxuICAgIHN0YXRlKCdlbnRlcicsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwJSknLCBvcGFjaXR5OiAxIH0pKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgJyogPT4gZW50ZXInLFxuICAgICAgYW5pbWF0ZShcbiAgICAgICAgYCR7QW5pbWF0aW9uRHVyYXRpb25zLkVOVEVSSU5HfSAke0FuaW1hdGlvbkN1cnZlcy5BQ0NFTEVSQVRJT05fQ1VSVkV9YCxcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJywgb3BhY2l0eTogMSB9KVxuICAgICAgKVxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICcqID0+IHZvaWQsICogPT4gZXhpdCcsXG4gICAgICBhbmltYXRlKFxuICAgICAgICBgJHtBbmltYXRpb25EdXJhdGlvbnMuRVhJVElOR30gJHtBbmltYXRpb25DdXJ2ZXMuQUNDRUxFUkFUSU9OX0NVUlZFfWAsXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSlcbiAgICAgIClcbiAgICApLFxuICBdKSxcbn07XG4iXX0=
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { MatDialogConfig } from '@angular/material/dialog';
|
2
|
-
export var SubPageMode;
|
3
|
-
(function (SubPageMode) {
|
4
|
-
SubPageMode["pushed"] = "pushed";
|
5
|
-
SubPageMode["shifted"] = "shifted";
|
6
|
-
SubPageMode["none"] = "none";
|
7
|
-
})(SubPageMode || (SubPageMode = {}));
|
8
|
-
export class CovalentSideSheetConfig extends MatDialogConfig {
|
9
|
-
subPageMode = SubPageMode.pushed;
|
10
|
-
}
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsZ0NBQWlCLENBQUE7SUFDakIsa0NBQW1CLENBQUE7SUFDbkIsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQUVELE1BQU0sT0FBTyx1QkFBaUMsU0FBUSxlQUFrQjtJQUN0RSxXQUFXLEdBQVksV0FBVyxDQUFDLE1BQU0sQ0FBQztDQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmV4cG9ydCBlbnVtIFN1YlBhZ2VNb2RlIHtcbiAgcHVzaGVkID0gJ3B1c2hlZCcsXG4gIHNoaWZ0ZWQgPSAnc2hpZnRlZCcsXG4gIG5vbmUgPSAnbm9uZScsXG59XG5cbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldENvbmZpZzxEID0gYW55PiBleHRlbmRzIE1hdERpYWxvZ0NvbmZpZzxEPiB7XG4gIHN1YlBhZ2VNb2RlPzogc3RyaW5nID0gU3ViUGFnZU1vZGUucHVzaGVkO1xufVxuIl19
|
@@ -1,206 +0,0 @@
|
|
1
|
-
/* tslint:disable */
|
2
|
-
import { Directive, Input, Optional, ElementRef, HostBinding, HostListener, } from '@angular/core';
|
3
|
-
import { CovalentSideSheet } from './side-sheet';
|
4
|
-
import { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "./side-sheet-ref";
|
7
|
-
import * as i2 from "./side-sheet";
|
8
|
-
/** Counter used to generate unique IDs for dialog elements. */
|
9
|
-
let dialogElementUid = 0;
|
10
|
-
/**
|
11
|
-
* Button that will close the current dialog.
|
12
|
-
*/
|
13
|
-
export class CovalentSideSheetCloseDirective {
|
14
|
-
dialogRef;
|
15
|
-
_elementRef;
|
16
|
-
_dialog;
|
17
|
-
/** Screenreader label for the button. */
|
18
|
-
ariaLabel;
|
19
|
-
/** Default to "button" to prevents accidental form submits. */
|
20
|
-
type = 'button';
|
21
|
-
/** Dialog close input. */
|
22
|
-
dialogResult;
|
23
|
-
_CovalentSideSheetClose;
|
24
|
-
onClick($event) {
|
25
|
-
this._onButtonClick($event);
|
26
|
-
}
|
27
|
-
constructor(dialogRef, _elementRef, _dialog) {
|
28
|
-
this.dialogRef = dialogRef;
|
29
|
-
this._elementRef = _elementRef;
|
30
|
-
this._dialog = _dialog;
|
31
|
-
}
|
32
|
-
ngOnInit() {
|
33
|
-
if (!this.dialogRef) {
|
34
|
-
// When this directive is included in a dialog via TemplateRef (rather than being
|
35
|
-
// in a Component), the DialogRef isn't available via injection because embedded
|
36
|
-
// views cannot be given a custom injector. Instead, we look up the DialogRef by
|
37
|
-
// ID. This must occur in `onInit`, as the ID binding for the dialog container won't
|
38
|
-
// be resolved at constructor time.
|
39
|
-
this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openSideSheets);
|
40
|
-
}
|
41
|
-
}
|
42
|
-
ngOnChanges(changes) {
|
43
|
-
const proxiedChange = changes['_CovalentSideSheetClose'] ||
|
44
|
-
changes['_CovalentSideSheetCloseResult'];
|
45
|
-
if (proxiedChange) {
|
46
|
-
this.dialogResult = proxiedChange.currentValue;
|
47
|
-
}
|
48
|
-
}
|
49
|
-
_onButtonClick(event) {
|
50
|
-
// Determinate the focus origin using the click event, because using the FocusMonitor will
|
51
|
-
// result in incorrect origins. Most of the time, close buttons will be auto focused in the
|
52
|
-
// dialog, and therefore clicking the button won't result in a focus change. This means that
|
53
|
-
// the FocusMonitor won't detect any origin change, and will always output `program`.
|
54
|
-
_closeSideSheetVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);
|
55
|
-
}
|
56
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetCloseDirective, deps: [{ token: i1.CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: i2.CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
|
57
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: CovalentSideSheetCloseDirective, selector: "[td-side-sheet-close], [CovalentSideSheetClose]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], type: "type", dialogResult: ["td-side-sheet-close", "dialogResult"], _CovalentSideSheetClose: ["CovalentSideSheetClose", "_CovalentSideSheetClose"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.arial-label": "this.ariaLabel", "attr.type": "this.type" } }, exportAs: ["CovalentSideSheetClose"], usesOnChanges: true, ngImport: i0 });
|
58
|
-
}
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetCloseDirective, decorators: [{
|
60
|
-
type: Directive,
|
61
|
-
args: [{
|
62
|
-
selector: '[td-side-sheet-close], [CovalentSideSheetClose]',
|
63
|
-
exportAs: 'CovalentSideSheetClose',
|
64
|
-
}]
|
65
|
-
}], ctorParameters: () => [{ type: i1.CovalentSideSheetRef, decorators: [{
|
66
|
-
type: Optional
|
67
|
-
}] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }], propDecorators: { ariaLabel: [{
|
68
|
-
type: HostBinding,
|
69
|
-
args: ['attr.arial-label']
|
70
|
-
}, {
|
71
|
-
type: Input,
|
72
|
-
args: ['aria-label']
|
73
|
-
}], type: [{
|
74
|
-
type: HostBinding,
|
75
|
-
args: ['attr.type']
|
76
|
-
}, {
|
77
|
-
type: Input
|
78
|
-
}], dialogResult: [{
|
79
|
-
type: Input,
|
80
|
-
args: ['td-side-sheet-close']
|
81
|
-
}], _CovalentSideSheetClose: [{
|
82
|
-
type: Input,
|
83
|
-
args: ['CovalentSideSheetClose']
|
84
|
-
}], onClick: [{
|
85
|
-
type: HostListener,
|
86
|
-
args: ['click', ['$event']]
|
87
|
-
}] } });
|
88
|
-
/**
|
89
|
-
* Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
|
90
|
-
*/
|
91
|
-
export class CovalentSideSheetTitleDirective {
|
92
|
-
_dialogRef;
|
93
|
-
_elementRef;
|
94
|
-
_dialog;
|
95
|
-
/** Unique id for the dialog title. If none is supplied, it will be auto-generated. */
|
96
|
-
id = `td-side-sheet-title-${dialogElementUid++}`;
|
97
|
-
tdSideSheetTitle = true;
|
98
|
-
idAttr = this.id;
|
99
|
-
constructor(
|
100
|
-
// The dialog title directive is always used in combination with a `CovalentSideSheetRef`.
|
101
|
-
// tslint:disable-next-line: lightweight-tokens
|
102
|
-
_dialogRef, _elementRef, _dialog) {
|
103
|
-
this._dialogRef = _dialogRef;
|
104
|
-
this._elementRef = _elementRef;
|
105
|
-
this._dialog = _dialog;
|
106
|
-
}
|
107
|
-
ngOnInit() {
|
108
|
-
if (this._dialogRef) {
|
109
|
-
Promise.resolve().then(() => {
|
110
|
-
const container = this._dialogRef._containerInstance;
|
111
|
-
if (container && !container._ariaLabelledByQueue.includes(this.id)) {
|
112
|
-
container._ariaLabelledByQueue.push(this.id);
|
113
|
-
}
|
114
|
-
});
|
115
|
-
}
|
116
|
-
else {
|
117
|
-
this._dialogRef = getClosestDialog(this._elementRef, this._dialog.openSideSheets);
|
118
|
-
}
|
119
|
-
}
|
120
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetTitleDirective, deps: [{ token: i1.CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: i2.CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
|
121
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: CovalentSideSheetTitleDirective, selector: "[td-side-sheet-title], [CovalentSideSheetTitle]", inputs: { id: "id" }, host: { properties: { "class.td-side-sheet-title": "this.tdSideSheetTitle", "attr.id": "this.idAttr" } }, exportAs: ["CovalentSideSheetTitle"], ngImport: i0 });
|
122
|
-
}
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetTitleDirective, decorators: [{
|
124
|
-
type: Directive,
|
125
|
-
args: [{
|
126
|
-
selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',
|
127
|
-
exportAs: 'CovalentSideSheetTitle',
|
128
|
-
}]
|
129
|
-
}], ctorParameters: () => [{ type: i1.CovalentSideSheetRef, decorators: [{
|
130
|
-
type: Optional
|
131
|
-
}] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }], propDecorators: { id: [{
|
132
|
-
type: Input
|
133
|
-
}], tdSideSheetTitle: [{
|
134
|
-
type: HostBinding,
|
135
|
-
args: ['class.td-side-sheet-title']
|
136
|
-
}], idAttr: [{
|
137
|
-
type: HostBinding,
|
138
|
-
args: ['attr.id']
|
139
|
-
}] } });
|
140
|
-
/**
|
141
|
-
* Scrollable content container of a dialog.
|
142
|
-
*/
|
143
|
-
export class CovalentSideSheetContentDirective {
|
144
|
-
tdSideSheetContent = true;
|
145
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
146
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: CovalentSideSheetContentDirective, selector: "[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]", host: { properties: { "class.td-side-sheet-content": "this.tdSideSheetContent" } }, ngImport: i0 });
|
147
|
-
}
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetContentDirective, decorators: [{
|
149
|
-
type: Directive,
|
150
|
-
args: [{
|
151
|
-
selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,
|
152
|
-
}]
|
153
|
-
}], propDecorators: { tdSideSheetContent: [{
|
154
|
-
type: HostBinding,
|
155
|
-
args: ['class.td-side-sheet-content']
|
156
|
-
}] } });
|
157
|
-
/**
|
158
|
-
* Container for the bottom action buttons in a dialog.
|
159
|
-
* Stays fixed to the bottom when scrolling.
|
160
|
-
*/
|
161
|
-
export class CovalentSideSheetActionsDirective {
|
162
|
-
tdSideSheetActions = true;
|
163
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
164
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: CovalentSideSheetActionsDirective, selector: "[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]", host: { properties: { "class.td-side-sheet-actions": "this.tdSideSheetActions" } }, ngImport: i0 });
|
165
|
-
}
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetActionsDirective, decorators: [{
|
167
|
-
type: Directive,
|
168
|
-
args: [{
|
169
|
-
selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,
|
170
|
-
}]
|
171
|
-
}], propDecorators: { tdSideSheetActions: [{
|
172
|
-
type: HostBinding,
|
173
|
-
args: ['class.td-side-sheet-actions']
|
174
|
-
}] } });
|
175
|
-
/**
|
176
|
-
* Container for the wrapper part of the dialog
|
177
|
-
*/
|
178
|
-
export class CovalentSideSheetWrapperDirective {
|
179
|
-
tdSideSheetWrapper = true;
|
180
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
181
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: CovalentSideSheetWrapperDirective, selector: "[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]", host: { properties: { "class.td-side-sheet-wrapper": "this.tdSideSheetWrapper" } }, ngImport: i0 });
|
182
|
-
}
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentSideSheetWrapperDirective, decorators: [{
|
184
|
-
type: Directive,
|
185
|
-
args: [{
|
186
|
-
selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,
|
187
|
-
}]
|
188
|
-
}], propDecorators: { tdSideSheetWrapper: [{
|
189
|
-
type: HostBinding,
|
190
|
-
args: ['class.td-side-sheet-wrapper']
|
191
|
-
}] } });
|
192
|
-
/**
|
193
|
-
* Finds the closest CovalentSideSheetRef to an element by looking at the DOM.
|
194
|
-
* @param element Element relative to which to look for a dialog.
|
195
|
-
* @param openDialogs References to the currently-open dialogs.
|
196
|
-
*/
|
197
|
-
function getClosestDialog(element, openDialogs) {
|
198
|
-
let parent = element.nativeElement.parentElement;
|
199
|
-
while (parent && !parent.classList.contains('td-side-sheet-container')) {
|
200
|
-
parent = parent.parentElement;
|
201
|
-
}
|
202
|
-
return parent
|
203
|
-
? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]
|
204
|
-
: openDialogs[0];
|
205
|
-
}
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFFUixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFNUUsK0RBQStEO0FBQy9ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOztHQUVHO0FBS0gsTUFBTSxPQUFPLCtCQUErQjtJQXFCckI7SUFDWDtJQUNBO0lBdEJWLHlDQUF5QztJQUd6QyxTQUFTLENBQVU7SUFFbkIsK0RBQStEO0lBRy9ELElBQUksR0FBa0MsUUFBUSxDQUFDO0lBRS9DLDBCQUEwQjtJQUNJLFlBQVksQ0FBTTtJQUVmLHVCQUF1QixDQUFNO0lBRTNCLE9BQU8sQ0FBQyxNQUFrQjtRQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUNxQixTQUFvQyxFQUMvQyxXQUFvQyxFQUNwQyxPQUEwQjtRQUZmLGNBQVMsR0FBVCxTQUFTLENBQTJCO1FBQy9DLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUNqQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsaUZBQWlGO1lBQ2pGLGdGQUFnRjtZQUNoRixnRkFBZ0Y7WUFD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UUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztRQUN2RSxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxNQUFNO1FBQ1gsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldCB9IGZyb20gJy4vc2lkZS1zaGVldCc7XG5pbXBvcnQgeyBfY2xvc2VTaWRlU2hlZXRWaWEsIENvdmFsZW50U2lkZVNoZWV0UmVmIH0gZnJvbSAnLi9zaWRlLXNoZWV0LXJlZic7XG5cbi8qKiBDb3VudGVyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyBmb3IgZGlhbG9nIGVsZW1lbnRzLiAqL1xubGV0IGRpYWxvZ0VsZW1lbnRVaWQgPSAwO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IHdpbGwgY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC1jbG9zZV0sIFtDb3ZhbGVudFNpZGVTaGVldENsb3NlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRDbG9zZScsXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q2xvc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBTY3JlZW5yZWFkZXIgbGFiZWwgZm9yIHRoZSBidXR0b24uICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhbC1sYWJlbCcpXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gIGFyaWFMYWJlbD86IHN0cmluZztcblxuICAvKiogRGVmYXVsdCB0byBcImJ1dHRvblwiIHRvIHByZXZlbnRzIGFjY2lkZW50YWwgZm9ybSBzdWJtaXRzLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpXG4gIEBJbnB1dCgpXG4gIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgLyoqIERpYWxvZyBjbG9zZSBpbnB1dC4gKi9cbiAgQElucHV0KCd0ZC1zaWRlLXNoZWV0LWNsb3NlJykgZGlhbG9nUmVzdWx0OiBhbnk7XG5cbiAgQElucHV0KCdDb3ZhbGVudFNpZGVTaGVldENsb3NlJykgX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2U6IGFueTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5fb25CdXR0b25DbGljaygkZXZlbnQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIF9kaWFsb2c6IENvdmFsZW50U2lkZVNoZWV0XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAvLyBXaGVuIHRoaXMgZGlyZWN0aXZlIGlzIGluY2x1ZGVkIGluIGEgZGlhbG9nIHZpYSBUZW1wbGF0ZVJlZiAocmF0aGVyIHRoYW4gYmVpbmdcbiAgICAgIC8vIGluIGEgQ29tcG9uZW50KSwgdGhlIERpYWxvZ1JlZiBpc24ndCBhdmFpbGFibGUgdmlhIGluamVjdGlvbiBiZWNhdXNlIGVtYmVkZGVkXG4gICAgICAvLyB2aWV3cyBjYW5ub3QgYmUgZ2l2ZW4gYSBjdXN0b20gaW5qZWN0b3IuIEluc3RlYWQsIHdlIGxvb2sgdXAgdGhlIERpYWxvZ1JlZiBieVxuICAgICAgLy8gSUQuIFRoaXMgbXVzdCBvY2N1ciBpbiBgb25Jbml0YCwgYXMgdGhlIElEIGJpbmRpbmcgZm9yIHRoZSBkaWFsb2cgY29udGFpbmVyIHdvbid0XG4gICAgICAvLyBiZSByZXNvbHZlZCBhdCBjb25zdHJ1Y3RvciB0aW1lLlxuICAgICAgdGhpcy5kaWFsb2dSZWYgPSBnZXRDbG9zZXN0RGlhbG9nKFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLFxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlblNpZGVTaGVldHNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHByb3hpZWRDaGFuZ2UgPVxuICAgICAgY2hhbmdlc1snX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnXSB8fFxuICAgICAgY2hhbmdlc1snX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2VSZXN1bHQnXTtcblxuICAgIGlmIChwcm94aWVkQ2hhbmdlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1Jlc3VsdCA9IHByb3hpZWRDaGFuZ2UuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIF9vbkJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgLy8gRGV0ZXJtaW5hdGUgdGhlIGZvY3VzIG9yaWdpbiB1c2luZyB0aGUgY2xpY2sgZXZlbnQsIGJlY2F1c2UgdXNpbmcgdGhlIEZvY3VzTW9uaXRvciB3aWxsXG4gICAgLy8gcmVzdWx0IGluIGluY29ycmVjdCBvcmlnaW5zLiBNb3N0IG9mIHRoZSB0aW1lLCBjbG9zZSBidXR0b25zIHdpbGwgYmUgYXV0byBmb2N1c2VkIGluIHRoZVxuICAgIC8vIGRpYWxvZywgYW5kIHRoZXJlZm9yZSBjbGlja2luZyB0aGUgYnV0dG9uIHdvbid0IHJlc3VsdCBpbiBhIGZvY3VzIGNoYW5nZS4gVGhpcyBtZWFucyB0aGF0XG4gICAgLy8gdGhlIEZvY3VzTW9uaXRvciB3b24ndCBkZXRlY3QgYW55IG9yaWdpbiBjaGFuZ2UsIGFuZCB3aWxsIGFsd2F5cyBvdXRwdXQgYHByb2dyYW1gLlxuICAgIF9jbG9zZVNpZGVTaGVldFZpYShcbiAgICAgIHRoaXMuZGlhbG9nUmVmLFxuICAgICAgZXZlbnQuc2NyZWVuWCA9PT0gMCAmJiBldmVudC5zY3JlZW5ZID09PSAwID8gJ2tleWJvYXJkJyA6ICdtb3VzZScsXG4gICAgICB0aGlzLmRpYWxvZ1Jlc3VsdFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaXRsZSBvZiBhIHNpZGUgc2hlZXQgZWxlbWVudC4gU3RheXMgZml4ZWQgdG8gdGhlIHRvcCBvZiB0aGUgc2lkZSBzaGVldCB3aGVuIHNjcm9sbGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkLXNpZGUtc2hlZXQtdGl0bGVdLCBbQ292YWxlbnRTaWRlU2hlZXRUaXRsZV0nLFxuICBleHBvcnRBczogJ0NvdmFsZW50U2lkZVNoZWV0VGl0bGUnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFRpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGRpYWxvZyB0aXRsZS4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQgPSBgdGQtc2lkZS1zaGVldC10aXRsZS0ke2RpYWxvZ0VsZW1lbnRVaWQrK31gO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGQtc2lkZS1zaGVldC10aXRsZScpIHRkU2lkZVNoZWV0VGl0bGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkQXR0ciA9IHRoaXMuaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhlIGRpYWxvZyB0aXRsZSBkaXJlY3RpdmUgaXMgYWx3YXlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIGBDb3ZhbGVudFNpZGVTaGVldFJlZmAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBsaWdodHdlaWdodC10b2tlbnNcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX2RpYWxvZ1JlZi5fY29udGFpbmVySW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKGNvbnRhaW5lciAmJiAhY29udGFpbmVyLl9hcmlhTGFiZWxsZWRCeVF1ZXVlLmluY2x1ZGVzKHRoaXMuaWQpKSB7XG4gICAgICAgICAgY29udGFpbmVyLl9hcmlhTGFiZWxsZWRCeVF1ZXVlLnB1c2godGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaWFsb2dSZWYgPSBnZXRDbG9zZXN0RGlhbG9nKFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLFxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlblNpZGVTaGVldHNcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2Nyb2xsYWJsZSBjb250ZW50IGNvbnRhaW5lciBvZiBhIGRpYWxvZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtY29udGVudF0sIHRkLXNpZGUtc2hlZXQtY29udGVudCwgW0NvdmFsZW50U2lkZVNoZWV0Q29udGVudF1gLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnREaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtY29udGVudCcpIHRkU2lkZVNoZWV0Q29udGVudCA9IHRydWU7XG59XG5cbi8qKlxuICogQ29udGFpbmVyIGZvciB0aGUgYm90dG9tIGFjdGlvbiBidXR0b25zIGluIGEgZGlhbG9nLlxuICogU3RheXMgZml4ZWQgdG8gdGhlIGJvdHRvbSB3aGVuIHNjcm9sbGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtYWN0aW9uc10sIHRkLXNpZGUtc2hlZXQtYWN0aW9ucywgW0NvdmFsZW50U2lkZVNoZWV0QWN0aW9uc11gLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldEFjdGlvbnNEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtYWN0aW9ucycpIHRkU2lkZVNoZWV0QWN0aW9ucyA9IHRydWU7XG59XG5cbi8qKlxuICogQ29udGFpbmVyIGZvciB0aGUgd3JhcHBlciBwYXJ0IG9mIHRoZSBkaWFsb2dcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtd3JhcHBlcl0sIHRkLXNpZGUtc2hlZXQtd3JhcHBlciwgW0NvdmFsZW50U2lkZVNoZWV0V3JhcHBlcl1gLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRkLXNpZGUtc2hlZXQtd3JhcHBlcicpIHRkU2lkZVNoZWV0V3JhcHBlciA9IHRydWU7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGNsb3Nlc3QgQ292YWxlbnRTaWRlU2hlZXRSZWYgdG8gYW4gZWxlbWVudCBieSBsb29raW5nIGF0IHRoZSBET00uXG4gKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHJlbGF0aXZlIHRvIHdoaWNoIHRvIGxvb2sgZm9yIGEgZGlhbG9nLlxuICogQHBhcmFtIG9wZW5EaWFsb2dzIFJlZmVyZW5jZXMgdG8gdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gKi9cbmZ1bmN0aW9uIGdldENsb3Nlc3REaWFsb2coXG4gIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICBvcGVuRGlhbG9nczogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdXG4pOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+IHtcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgd2hpbGUgKHBhcmVudCAmJiAhcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygndGQtc2lkZS1zaGVldC1jb250YWluZXInKSkge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudFxuICAgID8gb3BlbkRpYWxvZ3MuZmluZCgoZGlhbG9nKSA9PiBkaWFsb2cuaWQgPT09IHBhcmVudD8uaWQpID8/IG9wZW5EaWFsb2dzWzBdXG4gICAgOiBvcGVuRGlhbG9nc1swXTtcbn1cbiJdfQ==
|