@covalent/core 6.4.0 → 6.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
- package/common/styles/font/_font.scss +1 -35
- package/dialogs/src/README.md +223 -0
- 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/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +92 -0
- package/esm2020/breadcrumbs/breadcrumbs.component.mjs +131 -0
- package/{esm2022 → esm2020}/breadcrumbs/breadcrumbs.module.mjs +5 -5
- package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +41 -0
- package/esm2020/common/behaviors/disable-ripple.mixin.mjs +24 -0
- package/{esm2022 → esm2020}/common/behaviors/disabled.mixin.mjs +2 -2
- package/{esm2022 → esm2020}/common/common.module.mjs +17 -17
- package/esm2020/common/directives/fullscreen/fullscreen.directive.mjs +85 -0
- package/esm2020/common/forms/auto-trim/auto-trim.directive.mjs +36 -0
- package/esm2020/common/functions/convert.mjs +84 -0
- package/esm2020/common/functions/download.mjs +75 -0
- package/esm2020/common/pipes/bytes/bytes.pipe.mjs +42 -0
- package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +42 -0
- package/esm2020/common/pipes/digits/digits.pipe.mjs +39 -0
- package/{esm2022 → esm2020}/common/pipes/time-ago/time-ago.pipe.mjs +4 -4
- package/{esm2022 → esm2020}/common/pipes/time-difference/time-difference.pipe.mjs +4 -4
- package/{esm2022 → esm2020}/common/pipes/time-until/time-until.pipe.mjs +4 -4
- package/esm2020/common/pipes/truncate/truncate.pipe.mjs +27 -0
- package/esm2020/common/services/icon.service.mjs +1089 -0
- package/esm2020/common/services/router-path.service.mjs +29 -0
- package/esm2020/dialogs/alert-dialog/alert-dialog.component.mjs +23 -0
- package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +28 -0
- package/esm2020/dialogs/dialog.component.mjs +57 -0
- package/{esm2022 → esm2020}/dialogs/dialogs.module.mjs +39 -39
- package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +75 -0
- package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +216 -0
- package/esm2020/dialogs/services/dialog.service.mjs +174 -0
- package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +38 -0
- package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +30 -0
- package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +24 -0
- package/esm2020/dynamic-menu/dynamic-menu.component.mjs +28 -0
- package/{esm2022 → esm2020}/dynamic-menu/dynamic-menu.module.mjs +19 -19
- package/esm2020/file/directives/file-drop.directive.mjs +139 -0
- package/esm2020/file/directives/file-select.directive.mjs +77 -0
- package/esm2020/file/file-input/file-input.component.mjs +128 -0
- package/esm2020/file/file-upload/file-upload.component.mjs +174 -0
- package/{esm2022 → esm2020}/file/file.module.mjs +21 -21
- package/esm2020/file/services/file.service.mjs +64 -0
- package/esm2020/json-formatter/json-formatter.component.mjs +217 -0
- package/{esm2022 → esm2020}/json-formatter/json-formatter.module.mjs +5 -5
- package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +40 -0
- package/esm2020/layout/layout-footer/layout-footer.component.mjs +33 -0
- package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +93 -0
- package/{esm2022 → esm2020}/layout/layout-manage-list/layout-manage-list.directives.mjs +10 -10
- package/esm2020/layout/layout-nav/layout-nav.component.mjs +50 -0
- package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +128 -0
- package/{esm2022 → esm2020}/layout/layout-nav-list/layout-nav-list.directives.mjs +10 -10
- package/esm2020/layout/layout-toggle.class.mjs +92 -0
- package/esm2020/layout/layout.component.mjs +92 -0
- package/{esm2022 → esm2020}/layout/layout.directives.mjs +10 -10
- package/{esm2022 → esm2020}/layout/layout.module.mjs +55 -55
- package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +163 -0
- package/esm2020/loading/directives/loading.directive.mjs +126 -0
- package/esm2020/loading/loading.component.mjs +187 -0
- package/{esm2022 → esm2020}/loading/loading.module.mjs +13 -13
- package/esm2020/loading/services/loading.factory.mjs +207 -0
- package/esm2020/loading/services/loading.service.mjs +213 -0
- package/{esm2022 → esm2020}/menu/menu.component.mjs +4 -4
- package/{esm2022 → esm2020}/menu/menu.module.mjs +5 -5
- package/esm2020/message/message.component.mjs +203 -0
- package/{esm2022 → esm2020}/message/message.module.mjs +7 -7
- package/esm2020/search/search-box/search-box.component.mjs +194 -0
- package/esm2020/search/search-input/search-input.component.mjs +207 -0
- package/{esm2022 → esm2020}/search/search.module.mjs +13 -13
- package/esm2020/side-sheet/side-sheet-container.mjs +274 -0
- package/esm2020/side-sheet/side-sheet-ref.mjs +26 -0
- package/{esm2022 → esm2020}/side-sheet/side-sheet.config.mjs +5 -2
- package/esm2020/side-sheet/side-sheet.content-directives.mjs +201 -0
- package/esm2020/side-sheet/side-sheet.mjs +228 -0
- package/{esm2022 → esm2020}/side-sheet/side-sheet.module.mjs +14 -14
- package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +23 -0
- package/esm2020/user-profile/user-profile.component.mjs +19 -0
- package/{esm2022 → esm2020}/user-profile/user-profile.module.mjs +15 -15
- package/{fesm2022 → fesm2015}/covalent-core-breadcrumbs.mjs +22 -28
- package/{fesm2022 → fesm2015}/covalent-core-breadcrumbs.mjs.map +1 -1
- package/fesm2015/covalent-core-common.mjs +2281 -0
- package/fesm2015/covalent-core-common.mjs.map +1 -0
- package/fesm2015/covalent-core-dialogs.mjs +668 -0
- package/fesm2015/covalent-core-dialogs.mjs.map +1 -0
- package/fesm2015/covalent-core-dynamic-menu.mjs +126 -0
- package/fesm2015/covalent-core-dynamic-menu.mjs.map +1 -0
- package/fesm2015/covalent-core-file.mjs +621 -0
- package/fesm2015/covalent-core-file.mjs.map +1 -0
- package/fesm2015/covalent-core-json-formatter.mjs +298 -0
- package/fesm2015/covalent-core-json-formatter.mjs.map +1 -0
- package/fesm2015/covalent-core-layout.mjs +1024 -0
- package/{fesm2022 → fesm2015}/covalent-core-layout.mjs.map +1 -1
- package/fesm2015/covalent-core-loading.mjs +766 -0
- package/fesm2015/covalent-core-loading.mjs.map +1 -0
- package/{fesm2022 → fesm2015}/covalent-core-menu.mjs +7 -7
- package/{fesm2022 → fesm2015}/covalent-core-menu.mjs.map +1 -1
- package/fesm2015/covalent-core-message.mjs +284 -0
- package/fesm2015/covalent-core-message.mjs.map +1 -0
- package/fesm2015/covalent-core-search.mjs +430 -0
- package/fesm2015/covalent-core-search.mjs.map +1 -0
- package/fesm2015/covalent-core-side-sheet.mjs +784 -0
- package/fesm2015/covalent-core-side-sheet.mjs.map +1 -0
- package/fesm2015/covalent-core-user-profile.mjs +83 -0
- package/fesm2015/covalent-core-user-profile.mjs.map +1 -0
- package/fesm2020/covalent-core-breadcrumbs.mjs +243 -0
- package/fesm2020/covalent-core-breadcrumbs.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/covalent-core-common.mjs +1125 -1131
- package/fesm2020/covalent-core-common.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/covalent-core-dialogs.mjs +82 -111
- package/fesm2020/covalent-core-dialogs.mjs.map +1 -0
- package/fesm2020/covalent-core-dynamic-menu.mjs +126 -0
- package/{fesm2022 → fesm2020}/covalent-core-dynamic-menu.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/covalent-core-file.mjs +110 -148
- package/{fesm2022 → fesm2020}/covalent-core-file.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/covalent-core-json-formatter.mjs +21 -26
- package/{fesm2022 → fesm2020}/covalent-core-json-formatter.mjs.map +1 -1
- package/{fesm2022 → fesm2020}/covalent-core-layout.mjs +271 -396
- package/fesm2020/covalent-core-layout.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/covalent-core-loading.mjs +78 -100
- package/{fesm2022 → fesm2020}/covalent-core-loading.mjs.map +1 -1
- package/fesm2020/covalent-core-menu.mjs +37 -0
- package/fesm2020/covalent-core-menu.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/covalent-core-message.mjs +23 -42
- package/{fesm2022 → fesm2020}/covalent-core-message.mjs.map +1 -1
- package/fesm2020/covalent-core-search.mjs +427 -0
- package/fesm2020/covalent-core-search.mjs.map +1 -0
- package/{fesm2022 → fesm2020}/covalent-core-side-sheet.mjs +99 -124
- package/{fesm2022 → fesm2020}/covalent-core-side-sheet.mjs.map +1 -1
- package/fesm2020/covalent-core-user-profile.mjs +83 -0
- package/fesm2020/covalent-core-user-profile.mjs.map +1 -0
- package/fesm2020/covalent-core.mjs +4 -0
- package/fesm2020/covalent-core.mjs.map +1 -0
- 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 +1 -1
- package/file/file-upload/file-upload.component.d.ts +1 -1
- package/file/src/file-input/README.md +147 -0
- package/file/src/file-upload/README.md +136 -0
- package/json-formatter/json-formatter.component.d.ts +1 -1
- 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/navigation-drawer/navigation-drawer.component.d.ts +1 -1
- package/layout/src/layout-card-over/README.md +43 -0
- package/layout/src/layout-manage-list/README.md +80 -0
- package/layout/src/layout-nav/README.md +50 -0
- package/layout/src/layout-nav-list/README.md +105 -0
- package/loading/directives/loading.directive.d.ts +1 -1
- package/message/message.component.d.ts +1 -1
- package/package.json +91 -55
- package/search/search-box/search-box.component.d.ts +1 -1
- package/search/search-input/search-input.component.d.ts +1 -1
- package/search/src/search-box/README.md +73 -0
- package/search/src/search-input/README.md +74 -0
- package/side-sheet/side-sheet.content-directives.d.ts +2 -2
- 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/common/styles/font/MaterialIcons-Regular-v48.woff2 +0 -0
- package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -94
- package/esm2022/breadcrumbs/breadcrumbs.component.mjs +0 -135
- package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +0 -43
- package/esm2022/common/behaviors/disable-ripple.mixin.mjs +0 -24
- 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/functions/convert.mjs +0 -84
- package/esm2022/common/functions/download.mjs +0 -75
- 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/truncate/truncate.pipe.mjs +0 -27
- package/esm2022/common/services/icon.service.mjs +0 -1087
- package/esm2022/common/services/router-path.service.mjs +0 -30
- 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/dialog.component.mjs +0 -60
- package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -84
- package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -220
- package/esm2022/dialogs/services/dialog.service.mjs +0 -179
- package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +0 -40
- 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/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 -185
- package/esm2022/file/services/file.service.mjs +0 -66
- package/esm2022/json-formatter/json-formatter.component.mjs +0 -222
- 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-nav/layout-nav.component.mjs +0 -76
- package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +0 -154
- package/esm2022/layout/layout-toggle.class.mjs +0 -96
- package/esm2022/layout/layout.component.mjs +0 -91
- package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +0 -221
- package/esm2022/loading/directives/loading.directive.mjs +0 -133
- package/esm2022/loading/loading.component.mjs +0 -193
- package/esm2022/loading/services/loading.factory.mjs +0 -210
- package/esm2022/loading/services/loading.service.mjs +0 -219
- package/esm2022/message/message.component.mjs +0 -222
- package/esm2022/search/search-box/search-box.component.mjs +0 -198
- package/esm2022/search/search-input/search-input.component.mjs +0 -214
- 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.content-directives.mjs +0 -206
- package/esm2022/side-sheet/side-sheet.mjs +0 -236
- 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/fesm2022/covalent-core-common.mjs.map +0 -1
- package/fesm2022/covalent-core-dialogs.mjs.map +0 -1
- package/fesm2022/covalent-core-dynamic-menu.mjs +0 -125
- package/fesm2022/covalent-core-search.mjs +0 -438
- package/fesm2022/covalent-core-search.mjs.map +0 -1
- package/fesm2022/covalent-core-user-profile.mjs +0 -87
- package/fesm2022/covalent-core-user-profile.mjs.map +0 -1
- /package/{esm2022 → esm2020}/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -0
- /package/{esm2022 → esm2020}/breadcrumbs/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/bounce/bounce.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/collapse/collapse.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/common/interfaces.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/fade/fadeInOut.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/flash/flash.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/headshake/headshake.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/jello/jello.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/pulse/pulse.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/animations/rotate/rotate.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/common/covalent-core-common.mjs +0 -0
- /package/{esm2022 → esm2020}/common/forms/validators/validators.mjs +0 -0
- /package/{esm2022 → esm2020}/common/functions/clipboard.mjs +0 -0
- /package/{esm2022 → esm2020}/common/functions/file.mjs +0 -0
- /package/{esm2022 → esm2020}/common/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/covalent-core.mjs +0 -0
- /package/{esm2022 → esm2020}/dialogs/covalent-core-dialogs.mjs +0 -0
- /package/{esm2022 → esm2020}/dialogs/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-menu/dynamic-menu.menu.mjs +0 -0
- /package/{esm2022 → esm2020}/dynamic-menu/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/file/covalent-core-file.mjs +0 -0
- /package/{esm2022 → esm2020}/file/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/json-formatter/collapse.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/json-formatter/covalent-core-json-formatter.mjs +0 -0
- /package/{esm2022 → esm2020}/json-formatter/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/layout/covalent-core-layout.mjs +0 -0
- /package/{esm2022 → esm2020}/layout/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/loading/covalent-core-loading.mjs +0 -0
- /package/{esm2022 → esm2020}/loading/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/menu/covalent-core-menu.mjs +0 -0
- /package/{esm2022 → esm2020}/menu/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/message/collapse.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/message/covalent-core-message.mjs +0 -0
- /package/{esm2022 → esm2020}/message/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/search/covalent-core-search.mjs +0 -0
- /package/{esm2022 → esm2020}/search/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/side-sheet/covalent-core-side-sheet.mjs +0 -0
- /package/{esm2022 → esm2020}/side-sheet/public_api.mjs +0 -0
- /package/{esm2022 → esm2020}/side-sheet/side-sheet.animation.mjs +0 -0
- /package/{esm2022 → esm2020}/user-profile/covalent-core-user-profile.mjs +0 -0
- /package/{esm2022 → esm2020}/user-profile/public_api.mjs +0 -0
- /package/{fesm2022 → fesm2015}/covalent-core.mjs +0 -0
- /package/{fesm2022 → fesm2015}/covalent-core.mjs.map +0 -0
@@ -0,0 +1,26 @@
|
|
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
|
+
constructor(overlayRef, config, _containerInstance, id = `td-side-sheet-${uniqueId++}`) {
|
8
|
+
const ref = new DialogRef(overlayRef, config);
|
9
|
+
super(ref, config, _containerInstance);
|
10
|
+
this.overlayRef = overlayRef;
|
11
|
+
this.config = config;
|
12
|
+
this._containerInstance = _containerInstance;
|
13
|
+
this.id = id;
|
14
|
+
ref.containerInstance =
|
15
|
+
this._containerInstance;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
export function _closeSideSheetVia(ref, interactionType, result) {
|
19
|
+
// Some mock dialog ref instances in tests do not have the `_containerInstance` property.
|
20
|
+
// For those, we keep the behavior as is and do not deal with the interaction type.
|
21
|
+
if (ref._containerInstance !== undefined) {
|
22
|
+
ref._containerInstance._closeInteractionType = interactionType;
|
23
|
+
}
|
24
|
+
return ref.close(result);
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE9BQU8sRUFDTCxZQUFZLEdBRWIsTUFBTSwwQkFBMEIsQ0FBQztBQUdsQyxpQ0FBaUM7QUFDakMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLDBEQUEwRDtBQUMxRCxNQUFNLE9BQU8sb0JBQWlDLFNBQVEsWUFBa0I7SUFDdEUsWUFDUyxVQUFzQixFQUN0QixNQUErQixFQUN0QixrQkFBMkMsRUFDekMsS0FBYSxpQkFBaUIsUUFBUSxFQUFFLEVBQUU7UUFFNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQU8sVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFOaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBQ3pDLE9BQUUsR0FBRixFQUFFLENBQXdDO1FBSTNELEdBQStDLENBQUMsaUJBQWlCO1lBQ2hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLEdBQTRCLEVBQzVCLGVBQTRCLEVBQzVCLE1BQVU7SUFFVix5RkFBeUY7SUFDekYsbUZBQW1GO0lBQ25GLElBQUksR0FBRyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtRQUN4QyxHQUFHLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQUFDO0tBQ2hFO0lBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBCYXNlUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBNYXREaWFsb2dSZWYsXG4gIF9NYXREaWFsb2dDb250YWluZXJCYXNlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRDb25maWcgfSBmcm9tICcuL3NpZGUtc2hlZXQuY29uZmlnJztcblxuLy8gQ291bnRlciBmb3IgdW5pcXVlIGRpYWxvZyBpZHMuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG4vLyBDcmVhdGUgYSBuZXcgc2lkZSBzaGVldCByZWYgdG8gY2hhbmdlIHRoZSBpZCBvZiB0aGUgcmVmXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUiA9IGFueT4gZXh0ZW5kcyBNYXREaWFsb2dSZWY8VCwgUj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBwdWJsaWMgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgX2NvbnRhaW5lckluc3RhbmNlOiBfTWF0RGlhbG9nQ29udGFpbmVyQmFzZSxcbiAgICBvdmVycmlkZSByZWFkb25seSBpZDogc3RyaW5nID0gYHRkLXNpZGUtc2hlZXQtJHt1bmlxdWVJZCsrfWBcbiAgKSB7XG4gICAgY29uc3QgcmVmID0gbmV3IERpYWxvZ1JlZjxSLCBUPihvdmVybGF5UmVmLCBjb25maWcpO1xuICAgIHN1cGVyKHJlZiwgY29uZmlnLCBfY29udGFpbmVySW5zdGFuY2UpO1xuICAgIChyZWYgYXMgeyBjb250YWluZXJJbnN0YW5jZTogQmFzZVBvcnRhbE91dGxldCB9KS5jb250YWluZXJJbnN0YW5jZSA9XG4gICAgICB0aGlzLl9jb250YWluZXJJbnN0YW5jZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX2Nsb3NlU2lkZVNoZWV0VmlhPFI+KFxuICByZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPFI+LFxuICBpbnRlcmFjdGlvblR5cGU6IEZvY3VzT3JpZ2luLFxuICByZXN1bHQ/OiBSXG4pIHtcbiAgLy8gU29tZSBtb2NrIGRpYWxvZyByZWYgaW5zdGFuY2VzIGluIHRlc3RzIGRvIG5vdCBoYXZlIHRoZSBgX2NvbnRhaW5lckluc3RhbmNlYCBwcm9wZXJ0eS5cbiAgLy8gRm9yIHRob3NlLCB3ZSBrZWVwIHRoZSBiZWhhdmlvciBhcyBpcyBhbmQgZG8gbm90IGRlYWwgd2l0aCB0aGUgaW50ZXJhY3Rpb24gdHlwZS5cbiAgaWYgKHJlZi5fY29udGFpbmVySW5zdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHJlZi5fY29udGFpbmVySW5zdGFuY2UuX2Nsb3NlSW50ZXJhY3Rpb25UeXBlID0gaW50ZXJhY3Rpb25UeXBlO1xuICB9XG4gIHJldHVybiByZWYuY2xvc2UocmVzdWx0KTtcbn1cbiJdfQ==
|
@@ -6,6 +6,9 @@ export var SubPageMode;
|
|
6
6
|
SubPageMode["none"] = "none";
|
7
7
|
})(SubPageMode || (SubPageMode = {}));
|
8
8
|
export class CovalentSideSheetConfig extends MatDialogConfig {
|
9
|
-
|
9
|
+
constructor() {
|
10
|
+
super(...arguments);
|
11
|
+
this.subPageMode = SubPageMode.pushed;
|
12
|
+
}
|
10
13
|
}
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsZ0NBQWlCLENBQUE7SUFDakIsa0NBQW1CLENBQUE7SUFDbkIsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQUVELE1BQU0sT0FBTyx1QkFBaUMsU0FBUSxlQUFrQjtJQUF4RTs7UUFDRSxnQkFBVyxHQUFZLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IGVudW0gU3ViUGFnZU1vZGUge1xuICBwdXNoZWQgPSAncHVzaGVkJyxcbiAgc2hpZnRlZCA9ICdzaGlmdGVkJyxcbiAgbm9uZSA9ICdub25lJyxcbn1cblxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q29uZmlnPEQgPSBhbnk+IGV4dGVuZHMgTWF0RGlhbG9nQ29uZmlnPEQ+IHtcbiAgc3ViUGFnZU1vZGU/OiBzdHJpbmcgPSBTdWJQYWdlTW9kZS5wdXNoZWQ7XG59XG4iXX0=
|
@@ -0,0 +1,201 @@
|
|
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
|
+
onClick($event) {
|
15
|
+
this._onButtonClick($event);
|
16
|
+
}
|
17
|
+
constructor(dialogRef, _elementRef, _dialog) {
|
18
|
+
this.dialogRef = dialogRef;
|
19
|
+
this._elementRef = _elementRef;
|
20
|
+
this._dialog = _dialog;
|
21
|
+
/** Default to "button" to prevents accidental form submits. */
|
22
|
+
this.type = 'button';
|
23
|
+
}
|
24
|
+
ngOnInit() {
|
25
|
+
if (!this.dialogRef) {
|
26
|
+
// When this directive is included in a dialog via TemplateRef (rather than being
|
27
|
+
// in a Component), the DialogRef isn't available via injection because embedded
|
28
|
+
// views cannot be given a custom injector. Instead, we look up the DialogRef by
|
29
|
+
// ID. This must occur in `onInit`, as the ID binding for the dialog container won't
|
30
|
+
// be resolved at constructor time.
|
31
|
+
this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openSideSheets);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
ngOnChanges(changes) {
|
35
|
+
const proxiedChange = changes['_CovalentSideSheetClose'] ||
|
36
|
+
changes['_CovalentSideSheetCloseResult'];
|
37
|
+
if (proxiedChange) {
|
38
|
+
this.dialogResult = proxiedChange.currentValue;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
_onButtonClick(event) {
|
42
|
+
// Determinate the focus origin using the click event, because using the FocusMonitor will
|
43
|
+
// result in incorrect origins. Most of the time, close buttons will be auto focused in the
|
44
|
+
// dialog, and therefore clicking the button won't result in a focus change. This means that
|
45
|
+
// the FocusMonitor won't detect any origin change, and will always output `program`.
|
46
|
+
_closeSideSheetVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
CovalentSideSheetCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetCloseDirective, deps: [{ token: i1.CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: i2.CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
|
50
|
+
CovalentSideSheetCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetCloseDirective, decorators: [{
|
52
|
+
type: Directive,
|
53
|
+
args: [{
|
54
|
+
selector: '[td-side-sheet-close], [CovalentSideSheetClose]',
|
55
|
+
exportAs: 'CovalentSideSheetClose',
|
56
|
+
}]
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.CovalentSideSheetRef, decorators: [{
|
58
|
+
type: Optional
|
59
|
+
}] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }]; }, propDecorators: { ariaLabel: [{
|
60
|
+
type: HostBinding,
|
61
|
+
args: ['attr.arial-label']
|
62
|
+
}, {
|
63
|
+
type: Input,
|
64
|
+
args: ['aria-label']
|
65
|
+
}], type: [{
|
66
|
+
type: HostBinding,
|
67
|
+
args: ['attr.type']
|
68
|
+
}, {
|
69
|
+
type: Input
|
70
|
+
}], dialogResult: [{
|
71
|
+
type: Input,
|
72
|
+
args: ['td-side-sheet-close']
|
73
|
+
}], _CovalentSideSheetClose: [{
|
74
|
+
type: Input,
|
75
|
+
args: ['CovalentSideSheetClose']
|
76
|
+
}], onClick: [{
|
77
|
+
type: HostListener,
|
78
|
+
args: ['click', ['$event']]
|
79
|
+
}] } });
|
80
|
+
/**
|
81
|
+
* Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
|
82
|
+
*/
|
83
|
+
export class CovalentSideSheetTitleDirective {
|
84
|
+
constructor(
|
85
|
+
// The dialog title directive is always used in combination with a `CovalentSideSheetRef`.
|
86
|
+
// tslint:disable-next-line: lightweight-tokens
|
87
|
+
_dialogRef, _elementRef, _dialog) {
|
88
|
+
this._dialogRef = _dialogRef;
|
89
|
+
this._elementRef = _elementRef;
|
90
|
+
this._dialog = _dialog;
|
91
|
+
/** Unique id for the dialog title. If none is supplied, it will be auto-generated. */
|
92
|
+
this.id = `td-side-sheet-title-${dialogElementUid++}`;
|
93
|
+
this.tdSideSheetTitle = true;
|
94
|
+
this.idAttr = this.id;
|
95
|
+
}
|
96
|
+
ngOnInit() {
|
97
|
+
if (this._dialogRef) {
|
98
|
+
Promise.resolve().then(() => {
|
99
|
+
const container = this._dialogRef._containerInstance;
|
100
|
+
if (container && !container._ariaLabelledBy) {
|
101
|
+
container._ariaLabelledBy = this.id;
|
102
|
+
}
|
103
|
+
});
|
104
|
+
}
|
105
|
+
else {
|
106
|
+
this._dialogRef = getClosestDialog(this._elementRef, this._dialog.openSideSheets);
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
CovalentSideSheetTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetTitleDirective, deps: [{ token: i1.CovalentSideSheetRef, optional: true }, { token: i0.ElementRef }, { token: i2.CovalentSideSheet }], target: i0.ɵɵFactoryTarget.Directive });
|
111
|
+
CovalentSideSheetTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetTitleDirective, decorators: [{
|
113
|
+
type: Directive,
|
114
|
+
args: [{
|
115
|
+
selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',
|
116
|
+
exportAs: 'CovalentSideSheetTitle',
|
117
|
+
}]
|
118
|
+
}], ctorParameters: function () { return [{ type: i1.CovalentSideSheetRef, decorators: [{
|
119
|
+
type: Optional
|
120
|
+
}] }, { type: i0.ElementRef }, { type: i2.CovalentSideSheet }]; }, propDecorators: { id: [{
|
121
|
+
type: Input
|
122
|
+
}], tdSideSheetTitle: [{
|
123
|
+
type: HostBinding,
|
124
|
+
args: ['class.td-side-sheet-title']
|
125
|
+
}], idAttr: [{
|
126
|
+
type: HostBinding,
|
127
|
+
args: ['attr.id']
|
128
|
+
}] } });
|
129
|
+
/**
|
130
|
+
* Scrollable content container of a dialog.
|
131
|
+
*/
|
132
|
+
export class CovalentSideSheetContentDirective {
|
133
|
+
constructor() {
|
134
|
+
this.tdSideSheetContent = true;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
CovalentSideSheetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
138
|
+
CovalentSideSheetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CovalentSideSheetContentDirective, selector: "[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]", host: { properties: { "class.td-side-sheet-content": "this.tdSideSheetContent" } }, ngImport: i0 });
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetContentDirective, decorators: [{
|
140
|
+
type: Directive,
|
141
|
+
args: [{
|
142
|
+
selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,
|
143
|
+
}]
|
144
|
+
}], propDecorators: { tdSideSheetContent: [{
|
145
|
+
type: HostBinding,
|
146
|
+
args: ['class.td-side-sheet-content']
|
147
|
+
}] } });
|
148
|
+
/**
|
149
|
+
* Container for the bottom action buttons in a dialog.
|
150
|
+
* Stays fixed to the bottom when scrolling.
|
151
|
+
*/
|
152
|
+
export class CovalentSideSheetActionsDirective {
|
153
|
+
constructor() {
|
154
|
+
this.tdSideSheetActions = true;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
CovalentSideSheetActionsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
158
|
+
CovalentSideSheetActionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CovalentSideSheetActionsDirective, selector: "[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]", host: { properties: { "class.td-side-sheet-actions": "this.tdSideSheetActions" } }, ngImport: i0 });
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetActionsDirective, decorators: [{
|
160
|
+
type: Directive,
|
161
|
+
args: [{
|
162
|
+
selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,
|
163
|
+
}]
|
164
|
+
}], propDecorators: { tdSideSheetActions: [{
|
165
|
+
type: HostBinding,
|
166
|
+
args: ['class.td-side-sheet-actions']
|
167
|
+
}] } });
|
168
|
+
/**
|
169
|
+
* Container for the wrapper part of the dialog
|
170
|
+
*/
|
171
|
+
export class CovalentSideSheetWrapperDirective {
|
172
|
+
constructor() {
|
173
|
+
this.tdSideSheetWrapper = true;
|
174
|
+
}
|
175
|
+
}
|
176
|
+
CovalentSideSheetWrapperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
177
|
+
CovalentSideSheetWrapperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CovalentSideSheetWrapperDirective, selector: "[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]", host: { properties: { "class.td-side-sheet-wrapper": "this.tdSideSheetWrapper" } }, ngImport: i0 });
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetWrapperDirective, decorators: [{
|
179
|
+
type: Directive,
|
180
|
+
args: [{
|
181
|
+
selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,
|
182
|
+
}]
|
183
|
+
}], propDecorators: { tdSideSheetWrapper: [{
|
184
|
+
type: HostBinding,
|
185
|
+
args: ['class.td-side-sheet-wrapper']
|
186
|
+
}] } });
|
187
|
+
/**
|
188
|
+
* Finds the closest CovalentSideSheetRef to an element by looking at the DOM.
|
189
|
+
* @param element Element relative to which to look for a dialog.
|
190
|
+
* @param openDialogs References to the currently-open dialogs.
|
191
|
+
*/
|
192
|
+
function getClosestDialog(element, openDialogs) {
|
193
|
+
let parent = element.nativeElement.parentElement;
|
194
|
+
while (parent && !parent.classList.contains('td-side-sheet-container')) {
|
195
|
+
parent = parent.parentElement;
|
196
|
+
}
|
197
|
+
return parent
|
198
|
+
? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]
|
199
|
+
: openDialogs[0];
|
200
|
+
}
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFFUixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFNUUsK0RBQStEO0FBQy9ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOztHQUVHO0FBS0gsTUFBTSxPQUFPLCtCQUErQjtJQWdCUCxPQUFPLENBQUMsTUFBa0I7UUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFDcUIsU0FBb0MsRUFDL0MsV0FBb0MsRUFDcEMsT0FBMEI7UUFGZixjQUFTLEdBQVQsU0FBUyxDQUEyQjtRQUMvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFqQnBDLCtEQUErRDtRQUcvRCxTQUFJLEdBQWtDLFFBQVEsQ0FBQztJQWU1QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLGlGQUFpRjtZQUNqRixnRkFBZ0Y7WUFDaEYsZ0ZBQWdGO1lBQ2hGLG9GQUFvRjtZQUNwRixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FDL0IsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLE9B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LEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldCB9IGZyb20gJy4vc2lkZS1zaGVldCc7XG5pbXBvcnQgeyBfY2xvc2VTaWRlU2hlZXRWaWEsIENvdmFsZW50U2lkZVNoZWV0UmVmIH0gZnJvbSAnLi9zaWRlLXNoZWV0LXJlZic7XG5cbi8qKiBDb3VudGVyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyBmb3IgZGlhbG9nIGVsZW1lbnRzLiAqL1xubGV0IGRpYWxvZ0VsZW1lbnRVaWQgPSAwO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IHdpbGwgY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC1jbG9zZV0sIFtDb3ZhbGVudFNpZGVTaGVldENsb3NlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRDbG9zZScsXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q2xvc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBTY3JlZW5yZWFkZXIgbGFiZWwgZm9yIHRoZSBidXR0b24uICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhbC1sYWJlbCcpXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpXG4gIGFyaWFMYWJlbD86IHN0cmluZztcblxuICAvKiogRGVmYXVsdCB0byBcImJ1dHRvblwiIHRvIHByZXZlbnRzIGFjY2lkZW50YWwgZm9ybSBzdWJtaXRzLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpXG4gIEBJbnB1dCgpXG4gIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgLyoqIERpYWxvZyBjbG9zZSBpbnB1dC4gKi9cbiAgQElucHV0KCd0ZC1zaWRlLXNoZWV0LWNsb3NlJykgZGlhbG9nUmVzdWx0OiBhbnk7XG5cbiAgQElucHV0KCdDb3ZhbGVudFNpZGVTaGVldENsb3NlJykgX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2U6IGFueTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5fb25CdXR0b25DbGljaygkZXZlbnQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIF9kaWFsb2c6IENvdmFsZW50U2lkZVNoZWV0XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAvLyBXaGVuIHRoaXMgZGlyZWN0aXZlIGlzIGluY2x1ZGVkIGluIGEgZGlhbG9nIHZpYSBUZW1wbGF0ZVJlZiAocmF0aGVyIHRoYW4gYmVpbmdcbiAgICAgIC8vIGluIGEgQ29tcG9uZW50KSwgdGhlIERpYWxvZ1JlZiBpc24ndCBhdmFpbGFibGUgdmlhIGluamVjdGlvbiBiZWNhdXNlIGVtYmVkZGVkXG4gICAgICAvLyB2aWV3cyBjYW5ub3QgYmUgZ2l2ZW4gYSBjdXN0b20gaW5qZWN0b3IuIEluc3RlYWQsIHdlIGxvb2sgdXAgdGhlIERpYWxvZ1JlZiBieVxuICAgICAgLy8gSUQuIFRoaXMgbXVzdCBvY2N1ciBpbiBgb25Jbml0YCwgYXMgdGhlIElEIGJpbmRpbmcgZm9yIHRoZSBkaWFsb2cgY29udGFpbmVyIHdvbid0XG4gICAgICAvLyBiZSByZXNvbHZlZCBhdCBjb25zdHJ1Y3RvciB0aW1lLlxuICAgICAgdGhpcy5kaWFsb2dSZWYgPSBnZXRDbG9zZXN0RGlhbG9nKFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLFxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlblNpZGVTaGVldHNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHByb3hpZWRDaGFuZ2UgPVxuICAgICAgY2hhbmdlc1snX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnXSB8fFxuICAgICAgY2hhbmdlc1snX0NvdmFsZW50U2lkZVNoZWV0Q2xvc2VSZXN1bHQnXTtcblxuICAgIGlmIChwcm94aWVkQ2hhbmdlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1Jlc3VsdCA9IHByb3hpZWRDaGFuZ2UuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIF9vbkJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgLy8gRGV0ZXJtaW5hdGUgdGhlIGZvY3VzIG9yaWdpbiB1c2luZyB0aGUgY2xpY2sgZXZlbnQsIGJlY2F1c2UgdXNpbmcgdGhlIEZvY3VzTW9uaXRvciB3aWxsXG4gICAgLy8gcmVzdWx0IGluIGluY29ycmVjdCBvcmlnaW5zLiBNb3N0IG9mIHRoZSB0aW1lLCBjbG9zZSBidXR0b25zIHdpbGwgYmUgYXV0byBmb2N1c2VkIGluIHRoZVxuICAgIC8vIGRpYWxvZywgYW5kIHRoZXJlZm9yZSBjbGlja2luZyB0aGUgYnV0dG9uIHdvbid0IHJlc3VsdCBpbiBhIGZvY3VzIGNoYW5nZS4gVGhpcyBtZWFucyB0aGF0XG4gICAgLy8gdGhlIEZvY3VzTW9uaXRvciB3b24ndCBkZXRlY3QgYW55IG9yaWdpbiBjaGFuZ2UsIGFuZCB3aWxsIGFsd2F5cyBvdXRwdXQgYHByb2dyYW1gLlxuICAgIF9jbG9zZVNpZGVTaGVldFZpYShcbiAgICAgIHRoaXMuZGlhbG9nUmVmLFxuICAgICAgZXZlbnQuc2NyZWVuWCA9PT0gMCAmJiBldmVudC5zY3JlZW5ZID09PSAwID8gJ2tleWJvYXJkJyA6ICdtb3VzZScsXG4gICAgICB0aGlzLmRpYWxvZ1Jlc3VsdFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaXRsZSBvZiBhIHNpZGUgc2hlZXQgZWxlbWVudC4gU3RheXMgZml4ZWQgdG8gdGhlIHRvcCBvZiB0aGUgc2lkZSBzaGVldCB3aGVuIHNjcm9sbGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkLXNpZGUtc2hlZXQtdGl0bGVdLCBbQ292YWxlbnRTaWRlU2hlZXRUaXRsZV0nLFxuICBleHBvcnRBczogJ0NvdmFsZW50U2lkZVNoZWV0VGl0bGUnLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFRpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGRpYWxvZyB0aXRsZS4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQgPSBgdGQtc2lkZS1zaGVldC10aXRsZS0ke2RpYWxvZ0VsZW1lbnRVaWQrK31gO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGQtc2lkZS1zaGVldC10aXRsZScpIHRkU2lkZVNoZWV0VGl0bGUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkQXR0ciA9IHRoaXMuaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhlIGRpYWxvZyB0aXRsZSBkaXJlY3RpdmUgaXMgYWx3YXlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIGBDb3ZhbGVudFNpZGVTaGVldFJlZmAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBsaWdodHdlaWdodC10b2tlbnNcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX2RpYWxvZ1JlZi5fY29udGFpbmVySW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKGNvbnRhaW5lciAmJiAhY29udGFpbmVyLl9hcmlhTGFiZWxsZWRCeSkge1xuICAgICAgICAgIGNvbnRhaW5lci5fYXJpYUxhYmVsbGVkQnkgPSB0aGlzLmlkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gZ2V0Q2xvc2VzdERpYWxvZyhcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZixcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNjcm9sbGFibGUgY29udGVudCBjb250YWluZXIgb2YgYSBkaWFsb2cuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LWNvbnRlbnRdLCB0ZC1zaWRlLXNoZWV0LWNvbnRlbnQsIFtDb3ZhbGVudFNpZGVTaGVldENvbnRlbnRdYCxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDb250ZW50RGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LWNvbnRlbnQnKSB0ZFNpZGVTaGVldENvbnRlbnQgPSB0cnVlO1xufVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIGJvdHRvbSBhY3Rpb24gYnV0dG9ucyBpbiBhIGRpYWxvZy5cbiAqIFN0YXlzIGZpeGVkIHRvIHRoZSBib3R0b20gd2hlbiBzY3JvbGxpbmcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LWFjdGlvbnNdLCB0ZC1zaWRlLXNoZWV0LWFjdGlvbnMsIFtDb3ZhbGVudFNpZGVTaGVldEFjdGlvbnNdYCxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRBY3Rpb25zRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LWFjdGlvbnMnKSB0ZFNpZGVTaGVldEFjdGlvbnMgPSB0cnVlO1xufVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIHdyYXBwZXIgcGFydCBvZiB0aGUgZGlhbG9nXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LXdyYXBwZXJdLCB0ZC1zaWRlLXNoZWV0LXdyYXBwZXIsIFtDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJdYCxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRXcmFwcGVyRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50ZC1zaWRlLXNoZWV0LXdyYXBwZXInKSB0ZFNpZGVTaGVldFdyYXBwZXIgPSB0cnVlO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBjbG9zZXN0IENvdmFsZW50U2lkZVNoZWV0UmVmIHRvIGFuIGVsZW1lbnQgYnkgbG9va2luZyBhdCB0aGUgRE9NLlxuICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBsb29rIGZvciBhIGRpYWxvZy5cbiAqIEBwYXJhbSBvcGVuRGlhbG9ncyBSZWZlcmVuY2VzIHRvIHRoZSBjdXJyZW50bHktb3BlbiBkaWFsb2dzLlxuICovXG5mdW5jdGlvbiBnZXRDbG9zZXN0RGlhbG9nKFxuICBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgb3BlbkRpYWxvZ3M6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT5bXVxuKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PiB7XG4gIGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gIHdoaWxlIChwYXJlbnQgJiYgIXBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3RkLXNpZGUtc2hlZXQtY29udGFpbmVyJykpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRcbiAgICA/IG9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBwYXJlbnQ/LmlkKSA/PyBvcGVuRGlhbG9nc1swXVxuICAgIDogb3BlbkRpYWxvZ3NbMF07XG59XG4iXX0=
|
@@ -0,0 +1,228 @@
|
|
1
|
+
/* tslint:disable */
|
2
|
+
import { Directive, Inject, Injectable, InjectFlags, InjectionToken, Injector, Optional, SkipSelf, TemplateRef, Type, } from '@angular/core';
|
3
|
+
import { Overlay, OverlayConfig, } from '@angular/cdk/overlay';
|
4
|
+
import { ComponentPortal, TemplatePortal, } from '@angular/cdk/portal';
|
5
|
+
import { MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS, } from '@angular/material/dialog';
|
6
|
+
import { AnimationCurves, AnimationDurations } from '@angular/material/core';
|
7
|
+
import { CovalentSideSheetContainerComponent, } from './side-sheet-container';
|
8
|
+
import { Subject, of } from 'rxjs';
|
9
|
+
import { filter, take } from 'rxjs/operators';
|
10
|
+
import { Directionality } from '@angular/cdk/bidi';
|
11
|
+
import { CovalentSideSheetRef } from './side-sheet-ref';
|
12
|
+
import { SubPageMode, CovalentSideSheetConfig } from './side-sheet.config';
|
13
|
+
import * as i0 from "@angular/core";
|
14
|
+
import * as i1 from "@angular/cdk/overlay";
|
15
|
+
import * as i2 from "./side-sheet.config";
|
16
|
+
export class _CovalentSideSheetBase {
|
17
|
+
constructor(_overlay, _injector, _defaultOptions, _parentSideSheet, _sideSheetRefConstructor, _sideSheetContainerType, _sideSheetDataToken) {
|
18
|
+
this._overlay = _overlay;
|
19
|
+
this._injector = _injector;
|
20
|
+
this._defaultOptions = _defaultOptions;
|
21
|
+
this._parentSideSheet = _parentSideSheet;
|
22
|
+
this._sideSheetRefConstructor = _sideSheetRefConstructor;
|
23
|
+
this._sideSheetContainerType = _sideSheetContainerType;
|
24
|
+
this._sideSheetDataToken = _sideSheetDataToken;
|
25
|
+
this._openSideSheetsAtThisLevel = [];
|
26
|
+
this._afterAllClosedAtThisLevel = new Subject();
|
27
|
+
this._afterOpenedAtThisLevel = new Subject();
|
28
|
+
this.defaultSidebarConfig = {
|
29
|
+
minWidth: '400px',
|
30
|
+
maxWidth: '100vw',
|
31
|
+
};
|
32
|
+
}
|
33
|
+
/** Keeps track of the currently-open side-sheets. */
|
34
|
+
get openSideSheets() {
|
35
|
+
return this._parentSideSheet
|
36
|
+
? this._parentSideSheet.openSideSheets
|
37
|
+
: this._openSideSheetsAtThisLevel;
|
38
|
+
}
|
39
|
+
open(componentOrTemplateRef, config) {
|
40
|
+
config = {
|
41
|
+
...(this._defaultOptions || new CovalentSideSheetConfig()),
|
42
|
+
...this.defaultSidebarConfig,
|
43
|
+
...config,
|
44
|
+
};
|
45
|
+
const overlayRef = this._createOverlay(config);
|
46
|
+
const sideSheetContainer = this._attachSideSheetContainer(overlayRef, config);
|
47
|
+
const sideSheetRef = this._attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config);
|
48
|
+
const prevSideSheetRef = this.openSideSheets.slice(-1)[0];
|
49
|
+
const prevOverlayRef = prevSideSheetRef?.overlayRef;
|
50
|
+
if (prevOverlayRef?.overlayElement &&
|
51
|
+
config.subPageMode !== SubPageMode.none) {
|
52
|
+
prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.COMPLEX} ${AnimationCurves.DECELERATION_CURVE}`;
|
53
|
+
if (config.subPageMode === SubPageMode.pushed) {
|
54
|
+
// Animate previous side sheet to full width
|
55
|
+
prevOverlayRef.overlayElement.style.minWidth = `${window.innerWidth}px`;
|
56
|
+
}
|
57
|
+
else if (config.subPageMode === SubPageMode.shifted) {
|
58
|
+
// Animate previous side sheet to current sidesheet width + 200px
|
59
|
+
prevOverlayRef.overlayElement.style.minWidth = `${sideSheetRef.overlayRef.overlayElement.offsetWidth + 200}px`;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
// Revert the previous side sheet config & size
|
63
|
+
sideSheetRef._containerInstance._animationStateChanged
|
64
|
+
.pipe(filter((event) => event.state === 'closing' && !!(prevSideSheetRef && prevOverlayRef)), take(1))
|
65
|
+
.subscribe(() => {
|
66
|
+
prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`;
|
67
|
+
prevSideSheetRef.updateSize();
|
68
|
+
});
|
69
|
+
// Add new side sheet to open list
|
70
|
+
this.openSideSheets.push(sideSheetRef);
|
71
|
+
// Remove side sheet ref after closed
|
72
|
+
sideSheetRef
|
73
|
+
.afterClosed()
|
74
|
+
.pipe(take(1))
|
75
|
+
.subscribe(() => this._removeOpenSideSheet(sideSheetRef));
|
76
|
+
// Notify the side-sheet container that the content has been attached.
|
77
|
+
sideSheetContainer._initializeWithAttachedContent();
|
78
|
+
return sideSheetRef;
|
79
|
+
}
|
80
|
+
ngOnDestroy() {
|
81
|
+
// Only close the side-sheets at this level on destroy
|
82
|
+
// since the parent service may still be active.
|
83
|
+
this._closeSideSheets(this._openSideSheetsAtThisLevel);
|
84
|
+
this._afterAllClosedAtThisLevel.complete();
|
85
|
+
this._afterOpenedAtThisLevel.complete();
|
86
|
+
// Clean up any subscriptions to side-sheet that never finished opening.
|
87
|
+
if (this._animationStateSubscriptions) {
|
88
|
+
this._animationStateSubscriptions.unsubscribe();
|
89
|
+
}
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Closes all of the currently-open side-sheets.
|
93
|
+
*/
|
94
|
+
closeAll() {
|
95
|
+
this._closeSideSheets(this.openSideSheets);
|
96
|
+
}
|
97
|
+
_createOverlay(config) {
|
98
|
+
const overlayConfig = new OverlayConfig({
|
99
|
+
positionStrategy: this._overlay.position().global(),
|
100
|
+
scrollStrategy: this._overlay.scrollStrategies.block(),
|
101
|
+
panelClass: config.panelClass,
|
102
|
+
hasBackdrop: config.hasBackdrop,
|
103
|
+
direction: config.direction,
|
104
|
+
minWidth: config.minWidth,
|
105
|
+
minHeight: config.minHeight,
|
106
|
+
maxWidth: config.maxWidth,
|
107
|
+
});
|
108
|
+
const overlayRef = this._overlay.create(overlayConfig);
|
109
|
+
const positionStrategy = overlayRef.getConfig()
|
110
|
+
.positionStrategy;
|
111
|
+
positionStrategy.right('0px');
|
112
|
+
return overlayRef;
|
113
|
+
}
|
114
|
+
/**
|
115
|
+
* Attaches a container to a side-sheets's already-created overlay.
|
116
|
+
* @param overlay Reference to the side-sheet's underlying overlay.
|
117
|
+
* @param config The side-sheet configuration.
|
118
|
+
* @returns A promise resolving to a ComponentRef for the attached container.
|
119
|
+
*/
|
120
|
+
_attachSideSheetContainer(overlay, config) {
|
121
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
122
|
+
const injector = Injector.create({
|
123
|
+
parent: userInjector || this._injector,
|
124
|
+
providers: [{ provide: CovalentSideSheetConfig, useValue: config }],
|
125
|
+
});
|
126
|
+
const containerPortal = new ComponentPortal(this._sideSheetContainerType, config.viewContainerRef, injector, config.componentFactoryResolver);
|
127
|
+
const containerRef = overlay.attach(containerPortal);
|
128
|
+
return containerRef.instance;
|
129
|
+
}
|
130
|
+
/**
|
131
|
+
* Attaches the user-provided component to the already-created side sheet container.
|
132
|
+
* @param componentOrTemplateRef The type of component being loaded into the side-sheet,
|
133
|
+
* or a TemplateRef to instantiate as the content.
|
134
|
+
* @param dialogContainer Reference to the wrapping side-sheet container.
|
135
|
+
* @param overlayRef Reference to the overlay in which the side-sheet resides.
|
136
|
+
* @param config The side-sheet configuration.
|
137
|
+
* @returns A promise resolving to the CovalentSideSheetRef that should be returned to the user.
|
138
|
+
*/
|
139
|
+
_attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config) {
|
140
|
+
// Create a reference to the side-sheet we're creating in order to give the user a handle
|
141
|
+
// to modify and close it.
|
142
|
+
const sideSheetRef = new this._sideSheetRefConstructor(overlayRef, config, sideSheetContainer, config.id);
|
143
|
+
if (componentOrTemplateRef instanceof TemplateRef) {
|
144
|
+
sideSheetContainer.attachTemplatePortal(
|
145
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
146
|
+
new TemplatePortal(componentOrTemplateRef, null, {
|
147
|
+
$implicit: config.data,
|
148
|
+
sideSheetRef,
|
149
|
+
}));
|
150
|
+
}
|
151
|
+
else {
|
152
|
+
const injector = this._createInjector(config, sideSheetRef, sideSheetContainer);
|
153
|
+
const contentRef = sideSheetContainer.attach(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));
|
154
|
+
sideSheetRef.componentInstance = contentRef.instance;
|
155
|
+
}
|
156
|
+
sideSheetRef.updateSize(config.width, config.height);
|
157
|
+
return sideSheetRef;
|
158
|
+
}
|
159
|
+
_createInjector(config, sideSheetRef, sideSheetContainer) {
|
160
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
161
|
+
// The side-sheet container should be provided as the side-sheet container and the side-sheet's
|
162
|
+
// content are created out of the same `ViewContainerRef` and as such, are siblings
|
163
|
+
// for injector purposes. To allow the hierarchy that is expected, the side-sheet
|
164
|
+
// container is explicitly provided in the injector.
|
165
|
+
const providers = [
|
166
|
+
{ provide: this._sideSheetContainerType, useValue: sideSheetContainer },
|
167
|
+
{ provide: this._sideSheetDataToken, useValue: config.data },
|
168
|
+
{ provide: this._sideSheetRefConstructor, useValue: sideSheetRef },
|
169
|
+
];
|
170
|
+
if (config.direction &&
|
171
|
+
(!userInjector ||
|
172
|
+
!userInjector.get(Directionality, null, InjectFlags.Optional))) {
|
173
|
+
providers.push({
|
174
|
+
provide: Directionality,
|
175
|
+
useValue: { value: config.direction, change: of() },
|
176
|
+
});
|
177
|
+
}
|
178
|
+
return Injector.create({
|
179
|
+
parent: userInjector || this._injector,
|
180
|
+
providers,
|
181
|
+
});
|
182
|
+
}
|
183
|
+
/**
|
184
|
+
* Removes a side sheet from the array of open side sheets.
|
185
|
+
* @param sideSheetRef Side Sheet to be removed.
|
186
|
+
*/
|
187
|
+
_removeOpenSideSheet(sideSheetRef) {
|
188
|
+
const index = this.openSideSheets.indexOf(sideSheetRef);
|
189
|
+
if (index > -1) {
|
190
|
+
this.openSideSheets.splice(index, 1);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
/** Closes all of the side-sheet in an array. */
|
194
|
+
_closeSideSheets(sideSheets) {
|
195
|
+
let i = sideSheets.length;
|
196
|
+
while (i--) {
|
197
|
+
sideSheets[i].close();
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
_CovalentSideSheetBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: _CovalentSideSheetBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
202
|
+
_CovalentSideSheetBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: _CovalentSideSheetBase, ngImport: i0 });
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: _CovalentSideSheetBase, decorators: [{
|
204
|
+
type: Directive
|
205
|
+
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: undefined }, { type: undefined }, { type: i0.Type }, { type: i0.Type }, { type: i0.InjectionToken }]; } });
|
206
|
+
/**
|
207
|
+
* Service to open Covalent Design side-sheet.
|
208
|
+
*/
|
209
|
+
export class CovalentSideSheet extends _CovalentSideSheetBase {
|
210
|
+
constructor(overlay, injector, defaultOptions, parentSideSheet) {
|
211
|
+
super(overlay, injector, defaultOptions, parentSideSheet, CovalentSideSheetRef, CovalentSideSheetContainerComponent, MAT_DIALOG_DATA);
|
212
|
+
}
|
213
|
+
}
|
214
|
+
CovalentSideSheet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheet, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: MAT_DIALOG_DEFAULT_OPTIONS, optional: true }, { token: CovalentSideSheet, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
215
|
+
CovalentSideSheet.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheet });
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheet, decorators: [{
|
217
|
+
type: Injectable
|
218
|
+
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.CovalentSideSheetConfig, decorators: [{
|
219
|
+
type: Optional
|
220
|
+
}, {
|
221
|
+
type: Inject,
|
222
|
+
args: [MAT_DIALOG_DEFAULT_OPTIONS]
|
223
|
+
}] }, { type: CovalentSideSheet, decorators: [{
|
224
|
+
type: Optional
|
225
|
+
}, {
|
226
|
+
type: SkipSelf
|
227
|
+
}] }]; } });
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zaWRlLXNoZWV0L3NyYy9zaWRlLXNoZWV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsRUFDZCxRQUFRLEVBRVIsUUFBUSxFQUNSLFFBQVEsRUFFUixXQUFXLEVBQ1gsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBQ1AsYUFBYSxHQUdkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLGVBQWUsRUFFZixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsZUFBZSxFQUNmLDBCQUEwQixHQUMzQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsbUNBQW1DLEdBRXBDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUczRSxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQ1UsUUFBaUIsRUFDakIsU0FBbUIsRUFDbkIsZUFBb0QsRUFDcEQsZ0JBQXVELEVBQ3ZELHdCQUF5RCxFQUN6RCx1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QUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELGdEQUFnRDtJQUN4QyxnQkFBZ0IsQ0FBQyxVQUF1QztRQUM5RCxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDOztvSEF6UlUsc0JBQXNCO3dHQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsU0FBUzs7QUE2UlY7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsc0JBQTJEO0lBQ2hHLFlBQ0UsT0FBZ0IsRUFDaEIsUUFBa0IsRUFHbEIsY0FBdUMsRUFDZixlQUFrQztRQUUxRCxLQUFLLENBQ0gsT0FBTyxFQUNQLFFBQVEsRUFDUixjQUFjLEVBQ2QsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixtQ0FBbUMsRUFDbkMsZUFBZSxDQUNoQixDQUFDO0lBQ0osQ0FBQzs7K0dBbEJVLGlCQUFpQixpRUFLbEIsMEJBQTBCO21IQUx6QixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBS04sUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUVqQyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RGbGFncyxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG4gIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENvbXBvbmVudFBvcnRhbCxcbiAgQ29tcG9uZW50VHlwZSxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgTUFUX0RJQUxPR19EQVRBLFxuICBNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUyxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFuaW1hdGlvbkN1cnZlcywgQW5pbWF0aW9uRHVyYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1xuICBDb3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckNvbXBvbmVudCxcbiAgX0NvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyQmFzZSxcbn0gZnJvbSAnLi9zaWRlLXNoZWV0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRSZWYgfSBmcm9tICcuL3NpZGUtc2hlZXQtcmVmJztcbmltcG9ydCB7IFN1YlBhZ2VNb2RlLCBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyB9IGZyb20gJy4vc2lkZS1zaGVldC5jb25maWcnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBfQ292YWxlbnRTaWRlU2hlZXRCYXNlPEMgZXh0ZW5kcyBfQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJCYXNlPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICBwcml2YXRlIF9vcGVuU2lkZVNoZWV0c0F0VGhpc0xldmVsOiBDb3ZhbGVudFNpZGVTaGVldFJlZjx1bmtub3duPltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8XG4gICAgQ292YWxlbnRTaWRlU2hlZXRSZWY8dW5rbm93bj5cbiAgPigpO1xuICBwcml2YXRlIF9hbmltYXRpb25TdGF0ZVN1YnNjcmlwdGlvbnMhOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBkZWZhdWx0U2lkZWJhckNvbmZpZyA9IHtcbiAgICBtaW5XaWR0aDogJzQwMHB4JyxcbiAgICBtYXhXaWR0aDogJzEwMHZ3JyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9kZWZhdWx0T3B0aW9uczogQ292YWxlbnRTaWRlU2hlZXRDb25maWcgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfcGFyZW50U2lkZVNoZWV0OiBfQ292YWxlbnRTaWRlU2hlZXRCYXNlPEM+IHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgX3NpZGVTaGVldFJlZkNvbnN0cnVjdG9yOiBUeXBlPENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4+LFxuICAgIHByaXZhdGUgX3NpZGVTaGVldENvbnRhaW5lclR5cGU6IFR5cGU8Qz4sXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0RGF0YVRva2VuOiBJbmplY3Rpb25Ub2tlbjx1bmtub3duPlxuICApIHt9XG5cbiAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktb3BlbiBzaWRlLXNoZWV0cy4gKi9cbiAgZ2V0IG9wZW5TaWRlU2hlZXRzKCk6IENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRTaWRlU2hlZXRcbiAgICAgID8gdGhpcy5fcGFyZW50U2lkZVNoZWV0Lm9wZW5TaWRlU2hlZXRzXG4gICAgICA6IHRoaXMuX29wZW5TaWRlU2hlZXRzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZz86IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnPEQ+XG4gICk6IENvdmFsZW50U2lkZVNoZWV0UmVmPFQsIFI+IHtcbiAgICBjb25maWcgPSB7XG4gICAgICAuLi4odGhpcy5fZGVmYXVsdE9wdGlvbnMgfHwgbmV3IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnKCkpLFxuICAgICAgLi4udGhpcy5kZWZhdWx0U2lkZWJhckNvbmZpZyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9O1xuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoY29uZmlnKTtcbiAgICBjb25zdCBzaWRlU2hlZXRDb250YWluZXIgPSB0aGlzLl9hdHRhY2hTaWRlU2hlZXRDb250YWluZXIoXG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgICBjb25zdCBzaWRlU2hlZXRSZWYgPSB0aGlzLl9hdHRhY2hTaWRlU2hlZXRDb250ZW50PFQsIFI+KFxuICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZixcbiAgICAgIHNpZGVTaGVldENvbnRhaW5lcixcbiAgICAgIG92ZXJsYXlSZWYsXG4gICAgICBjb25maWdcbiAgICApO1xuICAgIGNvbnN0IHByZXZTaWRlU2hlZXRSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+ID1cbiAgICAgIHRoaXMub3BlblNpZGVTaGVldHMuc2xpY2UoLTEpWzBdO1xuICAgIGNvbnN0IHByZXZPdmVybGF5UmVmID0gcHJldlNpZGVTaGVldFJlZj8ub3ZlcmxheVJlZjtcblxuICAgIGlmIChcbiAgICAgIHByZXZPdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudCAmJlxuICAgICAgY29uZmlnLnN1YlBhZ2VNb2RlICE9PSBTdWJQYWdlTW9kZS5ub25lXG4gICAgKSB7XG4gICAgICBwcmV2T3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gYCR7QW5pbWF0aW9uRHVyYXRpb25zLkNPTVBMRVh9ICR7QW5pbWF0aW9uQ3VydmVzLkRFQ0VMRVJBVElPTl9DVVJWRX1gO1xuICAgICAgaWYgKGNvbmZpZy5zdWJQYWdlTW9kZSA9PT0gU3ViUGFnZU1vZGUucHVzaGVkKSB7XG4gICAgICAgIC8vIEFuaW1hdGUgcHJldmlvdXMgc2lkZSBzaGVldCB0byBmdWxsIHdpZHRoXG4gICAgICAgIHByZXZPdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LnN0eWxlLm1pbldpZHRoID0gYCR7XG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpLmlubmVyV2lkdGhcbiAgICAgICAgfXB4YDtcbiAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnN1YlBhZ2VNb2RlID09PSBTdWJQYWdlTW9kZS5zaGlmdGVkKSB7XG4gICAgICAgIC8vIEFuaW1hdGUgcHJldmlvdXMgc2lkZSBzaGVldCB0byBjdXJyZW50IHNpZGVzaGVldCB3aWR0aCArIDIwMHB4XG4gICAgICAgIHByZXZPdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LnN0eWxlLm1pbldpZHRoID0gYCR7XG4gICAgICAgICAgc2lkZVNoZWV0UmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQub2Zmc2V0V2lkdGggKyAyMDBcbiAgICAgICAgfXB4YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgdGhlIHByZXZpb3VzIHNpZGUgc2hlZXQgY29uZmlnICYgc2l6ZVxuICAgIHNpZGVTaGVldFJlZi5fY29udGFpbmVySW5zdGFuY2UuX2FuaW1hdGlvblN0YXRlQ2hhbmdlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoZXZlbnQpID0+XG4gICAgICAgICAgICBldmVudC5zdGF0ZSA9PT0gJ2Nsb3NpbmcnICYmICEhKHByZXZTaWRlU2hlZXRSZWYgJiYgcHJldk92ZXJsYXlSZWYpXG4gICAgICAgICksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBwcmV2T3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gYCR7QW5pbWF0aW9uRHVyYXRpb25zLkVYSVRJTkd9ICR7QW5pbWF0aW9uQ3VydmVzLkRFQ0VMRVJBVElPTl9DVVJWRX1gO1xuICAgICAgICBwcmV2U2lkZVNoZWV0UmVmLnVwZGF0ZVNpemUoKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gQWRkIG5ldyBzaWRlIHNoZWV0IHRvIG9wZW4gbGlzdFxuICAgIHRoaXMub3BlblNpZGVTaGVldHMucHVzaChzaWRlU2hlZXRSZWYpO1xuXG4gICAgLy8gUmVtb3ZlIHNpZGUgc2hlZXQgcmVmIGFmdGVyIGNsb3NlZFxuICAgIHNpZGVTaGVldFJlZlxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlbW92ZU9wZW5TaWRlU2hlZXQoc2lkZVNoZWV0UmVmKSk7XG5cbiAgICAvLyBOb3RpZnkgdGhlIHNpZGUtc2hlZXQgY29udGFpbmVyIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGJlZW4gYXR0YWNoZWQuXG4gICAgc2lkZVNoZWV0Q29udGFpbmVyLl9pbml0aWFsaXplV2l0aEF0dGFjaGVkQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIHNpZGVTaGVldFJlZjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIE9ubHkgY2xvc2UgdGhlIHNpZGUtc2hlZXRzIGF0IHRoaXMgbGV2ZWwgb24gZGVzdHJveVxuICAgIC8vIHNpbmNlIHRoZSBwYXJlbnQgc2VydmljZSBtYXkgc3RpbGwgYmUgYWN0aXZlLlxuICAgIHRoaXMuX2Nsb3NlU2lkZVNoZWV0cyh0aGlzLl9vcGVuU2lkZVNoZWV0c0F0VGhpc0xldmVsKTtcbiAgICB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbC5jb21wbGV0ZSgpO1xuICAgIC8vIENsZWFuIHVwIGFueSBzdWJzY3JpcHRpb25zIHRvIHNpZGUtc2hlZXQgdGhhdCBuZXZlciBmaW5pc2hlZCBvcGVuaW5nLlxuICAgIGlmICh0aGlzLl9hbmltYXRpb25TdGF0ZVN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvblN0YXRlU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG9mIHRoZSBjdXJyZW50bHktb3BlbiBzaWRlLXNoZWV0cy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlU2lkZVNoZWV0cyh0aGlzLm9wZW5TaWRlU2hlZXRzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXk8VD4oY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXG4gICAgICBwYW5lbENsYXNzOiBjb25maWcucGFuZWxDbGFzcyxcbiAgICAgIGhhc0JhY2tkcm9wOiBjb25maWcuaGFzQmFja2Ryb3AsXG4gICAgICBkaXJlY3Rpb246IGNvbmZpZy5kaXJlY3Rpb24sXG4gICAgICBtaW5XaWR0aDogY29uZmlnLm1pbldpZHRoLFxuICAgICAgbWluSGVpZ2h0OiBjb25maWcubWluSGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6IGNvbmZpZy5tYXhXaWR0aCxcbiAgICB9KTtcbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IG92ZXJsYXlSZWYuZ2V0Q29uZmlnKClcbiAgICAgIC5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgcG9zaXRpb25TdHJhdGVneS5yaWdodCgnMHB4Jyk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGNvbnRhaW5lciB0byBhIHNpZGUtc2hlZXRzJ3MgYWxyZWFkeS1jcmVhdGVkIG92ZXJsYXkuXG4gICAqIEBwYXJhbSBvdmVybGF5IFJlZmVyZW5jZSB0byB0aGUgc2lkZS1zaGVldCdzIHVuZGVybHlpbmcgb3ZlcmxheS5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgc2lkZS1zaGVldCBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIGEgQ29tcG9uZW50UmVmIGZvciB0aGUgYXR0YWNoZWQgY29udGFpbmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXR0YWNoU2lkZVNoZWV0Q29udGFpbmVyKFxuICAgIG92ZXJsYXk6IE92ZXJsYXlSZWYsXG4gICAgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZ1xuICApOiBDIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPVxuICAgICAgY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdXNlckluamVjdG9yIHx8IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9XSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICB0aGlzLl9zaWRlU2hlZXRDb250YWluZXJUeXBlLFxuICAgICAgY29uZmlnLnZpZXdDb250YWluZXJSZWYsXG4gICAgICBpbmplY3RvcixcbiAgICAgIGNvbmZpZy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICApO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IG92ZXJsYXkuYXR0YWNoPEM+KGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoZSB1c2VyLXByb3ZpZGVkIGNvbXBvbmVudCB0byB0aGUgYWxyZWFkeS1jcmVhdGVkIHNpZGUgc2hlZXQgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBUaGUgdHlwZSBvZiBjb21wb25lbnQgYmVpbmcgbG9hZGVkIGludG8gdGhlIHNpZGUtc2hlZXQsXG4gICAqICAgICBvciBhIFRlbXBsYXRlUmVmIHRvIGluc3RhbnRpYXRlIGFzIHRoZSBjb250ZW50LlxuICAgKiBAcGFyYW0gZGlhbG9nQ29udGFpbmVyIFJlZmVyZW5jZSB0byB0aGUgd3JhcHBpbmcgc2lkZS1zaGVldCBjb250YWluZXIuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGUgc2lkZS1zaGVldCByZXNpZGVzLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBzaWRlLXNoZWV0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIENvdmFsZW50U2lkZVNoZWV0UmVmIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXR0YWNoU2lkZVNoZWV0Q29udGVudDxULCBSPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgc2lkZVNoZWV0Q29udGFpbmVyOiBDLFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZ1xuICApOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxULCBSPiB7XG4gICAgLy8gQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBzaWRlLXNoZWV0IHdlJ3JlIGNyZWF0aW5nIGluIG9yZGVyIHRvIGdpdmUgdGhlIHVzZXIgYSBoYW5kbGVcbiAgICAvLyB0byBtb2RpZnkgYW5kIGNsb3NlIGl0LlxuICAgIGNvbnN0IHNpZGVTaGVldFJlZiA9IG5ldyB0aGlzLl9zaWRlU2hlZXRSZWZDb25zdHJ1Y3RvcihcbiAgICAgIG92ZXJsYXlSZWYsXG4gICAgICBjb25maWcsXG4gICAgICBzaWRlU2hlZXRDb250YWluZXIsXG4gICAgICBjb25maWcuaWRcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgc2lkZVNoZWV0Q29udGFpbmVyLmF0dGFjaFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICBuZXcgVGVtcGxhdGVQb3J0YWw8VD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgbnVsbCEsIDxhbnk+e1xuICAgICAgICAgICRpbXBsaWNpdDogY29uZmlnLmRhdGEsXG4gICAgICAgICAgc2lkZVNoZWV0UmVmLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcjxUPihcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBzaWRlU2hlZXRSZWYsXG4gICAgICAgIHNpZGVTaGVldENvbnRhaW5lclxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBzaWRlU2hlZXRDb250YWluZXIuYXR0YWNoPFQ+KFxuICAgICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsXG4gICAgICAgICAgY29uZmlnLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgaW5qZWN0b3JcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHNpZGVTaGVldFJlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbnRlbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgc2lkZVNoZWV0UmVmLnVwZGF0ZVNpemUoY29uZmlnLndpZHRoLCBjb25maWcuaGVpZ2h0KTtcblxuICAgIHJldHVybiBzaWRlU2hlZXRSZWY7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVJbmplY3RvcjxUPihcbiAgICBjb25maWc6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICAgIHNpZGVTaGVldFJlZjogQ292YWxlbnRTaWRlU2hlZXRSZWY8VD4sXG4gICAgc2lkZVNoZWV0Q29udGFpbmVyOiBDXG4gICk6IEluamVjdG9yIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPVxuICAgICAgY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xuXG4gICAgLy8gVGhlIHNpZGUtc2hlZXQgY29udGFpbmVyIHNob3VsZCBiZSBwcm92aWRlZCBhcyB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgYW5kIHRoZSBzaWRlLXNoZWV0J3NcbiAgICAvLyBjb250ZW50IGFyZSBjcmVhdGVkIG91dCBvZiB0aGUgc2FtZSBgVmlld0NvbnRhaW5lclJlZmAgYW5kIGFzIHN1Y2gsIGFyZSBzaWJsaW5nc1xuICAgIC8vIGZvciBpbmplY3RvciBwdXJwb3Nlcy4gVG8gYWxsb3cgdGhlIGhpZXJhcmNoeSB0aGF0IGlzIGV4cGVjdGVkLCB0aGUgc2lkZS1zaGVldFxuICAgIC8vIGNvbnRhaW5lciBpcyBleHBsaWNpdGx5IHByb3ZpZGVkIGluIHRoZSBpbmplY3Rvci5cbiAgICBjb25zdCBwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAgICB7IHByb3ZpZGU6IHRoaXMuX3NpZGVTaGVldENvbnRhaW5lclR5cGUsIHVzZVZhbHVlOiBzaWRlU2hlZXRDb250YWluZXIgfSxcbiAgICAgIHsgcHJvdmlkZTogdGhpcy5fc2lkZVNoZWV0RGF0YVRva2VuLCB1c2VWYWx1ZTogY29uZmlnLmRhdGEgfSxcbiAgICAgIHsgcHJvdmlkZTogdGhpcy5fc2lkZVNoZWV0UmVmQ29uc3RydWN0b3IsIHVzZVZhbHVlOiBzaWRlU2hlZXRSZWYgfSxcbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgY29uZmlnLmRpcmVjdGlvbiAmJlxuICAgICAgKCF1c2VySW5qZWN0b3IgfHxcbiAgICAgICAgIXVzZXJJbmplY3Rvci5nZXQ8RGlyZWN0aW9uYWxpdHkgfCBudWxsPihcbiAgICAgICAgICBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIEluamVjdEZsYWdzLk9wdGlvbmFsXG4gICAgICAgICkpXG4gICAgKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICB1c2VWYWx1ZTogeyB2YWx1ZTogY29uZmlnLmRpcmVjdGlvbiwgY2hhbmdlOiBvZigpIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdXNlckluamVjdG9yIHx8IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBzaWRlIHNoZWV0IGZyb20gdGhlIGFycmF5IG9mIG9wZW4gc2lkZSBzaGVldHMuXG4gICAqIEBwYXJhbSBzaWRlU2hlZXRSZWYgU2lkZSBTaGVldCB0byBiZSByZW1vdmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVtb3ZlT3BlblNpZGVTaGVldChzaWRlU2hlZXRSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPHVua25vd24+KSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5TaWRlU2hlZXRzLmluZGV4T2Yoc2lkZVNoZWV0UmVmKTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLm9wZW5TaWRlU2hlZXRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyBhbGwgb2YgdGhlIHNpZGUtc2hlZXQgaW4gYW4gYXJyYXkuICovXG4gIHByaXZhdGUgX2Nsb3NlU2lkZVNoZWV0cyhzaWRlU2hlZXRzOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+W10pIHtcbiAgICBsZXQgaSA9IHNpZGVTaGVldHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgc2lkZVNoZWV0c1tpXS5jbG9zZSgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNlcnZpY2UgdG8gb3BlbiBDb3ZhbGVudCBEZXNpZ24gc2lkZS1zaGVldC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0IGV4dGVuZHMgX0NvdmFsZW50U2lkZVNoZWV0QmFzZTxDb3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckNvbXBvbmVudD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMpXG4gICAgZGVmYXVsdE9wdGlvbnM6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudFNpZGVTaGVldDogQ292YWxlbnRTaWRlU2hlZXRcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBvdmVybGF5LFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBkZWZhdWx0T3B0aW9ucyxcbiAgICAgIHBhcmVudFNpZGVTaGVldCxcbiAgICAgIENvdmFsZW50U2lkZVNoZWV0UmVmLFxuICAgICAgQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJDb21wb25lbnQsXG4gICAgICBNQVRfRElBTE9HX0RBVEFcbiAgICApO1xuICB9XG59XG4iXX0=
|
@@ -7,20 +7,20 @@ import { CovalentSideSheetContainerComponent } from './side-sheet-container';
|
|
7
7
|
import { CovalentSideSheetActionsDirective, CovalentSideSheetCloseDirective, CovalentSideSheetContentDirective, CovalentSideSheetTitleDirective, CovalentSideSheetWrapperDirective, } from './side-sheet.content-directives';
|
8
8
|
import * as i0 from "@angular/core";
|
9
9
|
export class CovalentSideSheetModule {
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentSideSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
11
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: CovalentSideSheetModule, declarations: [CovalentSideSheetContainerComponent,
|
12
|
-
CovalentSideSheetActionsDirective,
|
13
|
-
CovalentSideSheetCloseDirective,
|
14
|
-
CovalentSideSheetContentDirective,
|
15
|
-
CovalentSideSheetTitleDirective,
|
16
|
-
CovalentSideSheetWrapperDirective], imports: [PortalModule, MatDialogModule, MatCommonModule], exports: [CovalentSideSheetActionsDirective,
|
17
|
-
CovalentSideSheetCloseDirective,
|
18
|
-
CovalentSideSheetContentDirective,
|
19
|
-
CovalentSideSheetTitleDirective,
|
20
|
-
CovalentSideSheetWrapperDirective] });
|
21
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentSideSheetModule, providers: [CovalentSideSheet], imports: [PortalModule, MatDialogModule, MatCommonModule] });
|
22
10
|
}
|
23
|
-
i0.ɵɵ
|
11
|
+
CovalentSideSheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
12
|
+
CovalentSideSheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetModule, declarations: [CovalentSideSheetContainerComponent,
|
13
|
+
CovalentSideSheetActionsDirective,
|
14
|
+
CovalentSideSheetCloseDirective,
|
15
|
+
CovalentSideSheetContentDirective,
|
16
|
+
CovalentSideSheetTitleDirective,
|
17
|
+
CovalentSideSheetWrapperDirective], imports: [PortalModule, MatDialogModule, MatCommonModule], exports: [CovalentSideSheetActionsDirective,
|
18
|
+
CovalentSideSheetCloseDirective,
|
19
|
+
CovalentSideSheetContentDirective,
|
20
|
+
CovalentSideSheetTitleDirective,
|
21
|
+
CovalentSideSheetWrapperDirective] });
|
22
|
+
CovalentSideSheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetModule, providers: [CovalentSideSheet], imports: [PortalModule, MatDialogModule, MatCommonModule] });
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentSideSheetModule, decorators: [{
|
24
24
|
type: NgModule,
|
25
25
|
args: [{
|
26
26
|
declarations: [
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
42
42
|
providers: [CovalentSideSheet],
|
43
43
|
}]
|
44
44
|
}] });
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2lkZS1zaGVldC9zcmMvc2lkZS1zaGVldC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUMvQixpQ0FBaUMsR0FDbEMsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFxQnpDLE1BQU0sT0FBTyx1QkFBdUI7O3FIQUF2Qix1QkFBdUI7c0hBQXZCLHVCQUF1QixpQkFqQmhDLG1DQUFtQztRQUNuQyxpQ0FBaUM7UUFDakMsK0JBQStCO1FBQy9CLGlDQUFpQztRQUNqQywrQkFBK0I7UUFDL0IsaUNBQWlDLGFBU3pCLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxhQU50RCxpQ0FBaUM7UUFDakMsK0JBQStCO1FBQy9CLGlDQUFpQztRQUNqQywrQkFBK0I7UUFDL0IsaUNBQWlDO3NIQUt4Qix1QkFBdUIsYUFGdkIsQ0FBQyxpQkFBaUIsQ0FBQyxZQURwQixZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWU7NEZBRzdDLHVCQUF1QjtrQkFuQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1DQUFtQzt3QkFDbkMsaUNBQWlDO3dCQUNqQywrQkFBK0I7d0JBQy9CLGlDQUFpQzt3QkFDakMsK0JBQStCO3dCQUMvQixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQ0FBaUM7d0JBQ2pDLCtCQUErQjt3QkFDL0IsaUNBQWlDO3dCQUNqQywrQkFBK0I7d0JBQy9CLGlDQUFpQztxQkFDbEM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQ3pELFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXQgfSBmcm9tICcuL3NpZGUtc2hlZXQnO1xuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3NpZGUtc2hlZXQtY29udGFpbmVyJztcbmltcG9ydCB7XG4gIENvdmFsZW50U2lkZVNoZWV0QWN0aW9uc0RpcmVjdGl2ZSxcbiAgQ292YWxlbnRTaWRlU2hlZXRDbG9zZURpcmVjdGl2ZSxcbiAgQ292YWxlbnRTaWRlU2hlZXRDb250ZW50RGlyZWN0aXZlLFxuICBDb3ZhbGVudFNpZGVTaGVldFRpdGxlRGlyZWN0aXZlLFxuICBDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJEaXJlY3RpdmUsXG59IGZyb20gJy4vc2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDb3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDb3ZhbGVudFNpZGVTaGVldEFjdGlvbnNEaXJlY3RpdmUsXG4gICAgQ292YWxlbnRTaWRlU2hlZXRDbG9zZURpcmVjdGl2ZSxcbiAgICBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnREaXJlY3RpdmUsXG4gICAgQ292YWxlbnRTaWRlU2hlZXRUaXRsZURpcmVjdGl2ZSxcbiAgICBDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb3ZhbGVudFNpZGVTaGVldEFjdGlvbnNEaXJlY3RpdmUsXG4gICAgQ292YWxlbnRTaWRlU2hlZXRDbG9zZURpcmVjdGl2ZSxcbiAgICBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnREaXJlY3RpdmUsXG4gICAgQ292YWxlbnRTaWRlU2hlZXRUaXRsZURpcmVjdGl2ZSxcbiAgICBDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgTWF0Q29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbQ292YWxlbnRTaWRlU2hlZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldE1vZHVsZSB7fVxuIl19
|