@covalent/core 3.1.1-beta.1 → 3.1.2-beta.7
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/bundles/covalent-core-breadcrumbs.umd.js.map +1 -1
- package/bundles/covalent-core-breadcrumbs.umd.min.js.map +1 -1
- package/bundles/covalent-core-chips.umd.js +1 -1
- package/bundles/covalent-core-chips.umd.js.map +1 -1
- package/bundles/covalent-core-chips.umd.min.js +2 -2
- package/bundles/covalent-core-chips.umd.min.js.map +1 -1
- package/bundles/covalent-core-common.umd.js.map +1 -1
- package/bundles/covalent-core-common.umd.min.js.map +1 -1
- package/bundles/covalent-core-data-table.umd.js +2 -2
- package/bundles/covalent-core-data-table.umd.js.map +1 -1
- package/bundles/covalent-core-data-table.umd.min.js +2 -2
- package/bundles/covalent-core-data-table.umd.min.js.map +1 -1
- package/bundles/covalent-core-dialogs.umd.js +1 -1
- package/bundles/covalent-core-dialogs.umd.js.map +1 -1
- package/bundles/covalent-core-dialogs.umd.min.js +1 -1
- package/bundles/covalent-core-dialogs.umd.min.js.map +1 -1
- package/bundles/covalent-core-dynamic-menu.umd.js.map +1 -1
- package/bundles/covalent-core-dynamic-menu.umd.min.js.map +1 -1
- package/bundles/covalent-core-expansion-panel.umd.js.map +1 -1
- package/bundles/covalent-core-file.umd.js.map +1 -1
- package/bundles/covalent-core-file.umd.min.js.map +1 -1
- package/bundles/covalent-core-json-formatter.umd.js.map +1 -1
- package/bundles/covalent-core-layout.umd.js +1 -1
- package/bundles/covalent-core-layout.umd.js.map +1 -1
- package/bundles/covalent-core-layout.umd.min.js +1 -1
- package/bundles/covalent-core-layout.umd.min.js.map +1 -1
- package/bundles/covalent-core-loading.umd.js.map +1 -1
- package/bundles/covalent-core-loading.umd.min.js.map +1 -1
- package/bundles/covalent-core-media.umd.js.map +1 -1
- package/bundles/covalent-core-media.umd.min.js.map +1 -1
- package/bundles/covalent-core-menu.umd.js.map +1 -1
- package/bundles/covalent-core-message.umd.js.map +1 -1
- package/bundles/covalent-core-nav-links.umd.js.map +1 -1
- package/bundles/covalent-core-notifications.umd.js.map +1 -1
- package/bundles/covalent-core-paging.umd.js.map +1 -1
- package/bundles/covalent-core-search.umd.js.map +1 -1
- package/bundles/covalent-core-search.umd.min.js.map +1 -1
- package/bundles/covalent-core-side-sheet.umd.js +1396 -0
- package/bundles/covalent-core-side-sheet.umd.js.map +1 -0
- package/bundles/covalent-core-side-sheet.umd.min.js +16 -0
- package/bundles/covalent-core-side-sheet.umd.min.js.map +1 -0
- package/bundles/covalent-core-sidesheet.umd.js.map +1 -1
- package/bundles/covalent-core-steps.umd.js.map +1 -1
- package/bundles/covalent-core-steps.umd.min.js.map +1 -1
- package/bundles/covalent-core-tab-select.umd.js.map +1 -1
- package/bundles/covalent-core-tab-select.umd.min.js.map +1 -1
- package/bundles/covalent-core-user-profile.umd.js.map +1 -1
- package/bundles/covalent-core-user-profile.umd.min.js.map +1 -1
- package/bundles/covalent-core-virtual-scroll.umd.js.map +1 -1
- package/bundles/covalent-core.umd.js.map +1 -1
- package/chips/covalent-core-chips.metadata.json +1 -1
- package/common/_common-theme.scss +11 -0
- package/data-table/covalent-core-data-table.metadata.json +1 -1
- package/dialogs/_dialog-theme.scss +7 -0
- package/dialogs/covalent-core-dialogs.metadata.json +1 -1
- package/dialogs/window-dialog/window-dialog.component.scss +4 -0
- package/esm2015/breadcrumbs/breadcrumb/breadcrumb.component.js +1 -1
- package/esm2015/breadcrumbs/breadcrumbs.component.js +1 -1
- package/esm2015/breadcrumbs/breadcrumbs.module.js +1 -1
- package/esm2015/breadcrumbs/covalent-core-breadcrumbs.js +1 -1
- package/esm2015/breadcrumbs/index.js +1 -1
- package/esm2015/breadcrumbs/public-api.js +1 -1
- package/esm2015/chips/chips.component.js +2 -2
- package/esm2015/chips/chips.module.js +1 -1
- package/esm2015/chips/covalent-core-chips.js +1 -1
- package/esm2015/chips/index.js +1 -1
- package/esm2015/chips/public-api.js +1 -1
- package/esm2015/common/animations/bounce/bounce.animation.js +1 -1
- package/esm2015/common/animations/collapse/collapse.animation.js +1 -1
- package/esm2015/common/animations/common/interfaces.js +1 -1
- package/esm2015/common/animations/fade/fadeInOut.animation.js +1 -1
- package/esm2015/common/animations/flash/flash.animation.js +1 -1
- package/esm2015/common/animations/headshake/headshake.animation.js +1 -1
- package/esm2015/common/animations/jello/jello.animation.js +1 -1
- package/esm2015/common/animations/pulse/pulse.animation.js +1 -1
- package/esm2015/common/animations/rotate/rotate.animation.js +1 -1
- package/esm2015/common/behaviors/control-value-accesor.mixin.js +1 -1
- package/esm2015/common/behaviors/disable-ripple.mixin.js +1 -1
- package/esm2015/common/behaviors/disabled.mixin.js +1 -1
- package/esm2015/common/common.module.js +1 -1
- package/esm2015/common/covalent-core-common.js +1 -1
- package/esm2015/common/directives/fullscreen/fullscreen.directive.js +1 -1
- package/esm2015/common/forms/auto-trim/auto-trim.directive.js +1 -1
- package/esm2015/common/forms/validators/validators.js +1 -1
- package/esm2015/common/functions/clipboard.js +1 -1
- package/esm2015/common/functions/convert.js +1 -1
- package/esm2015/common/functions/download.js +1 -1
- package/esm2015/common/functions/file.js +1 -1
- package/esm2015/common/index.js +1 -1
- package/esm2015/common/pipes/bytes/bytes.pipe.js +1 -1
- package/esm2015/common/pipes/decimal-bytes/decimal-bytes.pipe.js +1 -1
- package/esm2015/common/pipes/digits/digits.pipe.js +1 -1
- package/esm2015/common/pipes/time-ago/time-ago.pipe.js +1 -1
- package/esm2015/common/pipes/time-difference/time-difference.pipe.js +1 -1
- package/esm2015/common/pipes/time-until/time-until.pipe.js +1 -1
- package/esm2015/common/pipes/truncate/truncate.pipe.js +1 -1
- package/esm2015/common/public-api.js +1 -1
- package/esm2015/common/services/icon.service.js +1 -1
- package/esm2015/common/services/router-path.service.js +1 -1
- package/esm2015/covalent-core.js +1 -1
- package/esm2015/data-table/covalent-core-data-table.js +1 -1
- package/esm2015/data-table/data-table-cell/data-table-cell.component.js +2 -2
- package/esm2015/data-table/data-table-column/data-table-column.component.js +2 -2
- package/esm2015/data-table/data-table-row/data-table-row.component.js +1 -1
- package/esm2015/data-table/data-table-table/data-table-table.component.js +1 -1
- package/esm2015/data-table/data-table.component.js +1 -1
- package/esm2015/data-table/data-table.module.js +1 -1
- package/esm2015/data-table/directives/data-table-template.directive.js +1 -1
- package/esm2015/data-table/index.js +1 -1
- package/esm2015/data-table/public-api.js +1 -1
- package/esm2015/data-table/services/data-table.service.js +1 -1
- package/esm2015/dialogs/alert-dialog/alert-dialog.component.js +1 -1
- package/esm2015/dialogs/confirm-dialog/confirm-dialog.component.js +1 -1
- package/esm2015/dialogs/covalent-core-dialogs.js +1 -1
- package/esm2015/dialogs/dialog.component.js +1 -1
- package/esm2015/dialogs/dialogs.module.js +1 -1
- package/esm2015/dialogs/index.js +1 -1
- package/esm2015/dialogs/prompt-dialog/prompt-dialog.component.js +1 -1
- package/esm2015/dialogs/public-api.js +1 -1
- package/esm2015/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.js +2 -2
- package/esm2015/dialogs/services/dialog.service.js +1 -1
- package/esm2015/dialogs/window-dialog/window-dialog.component.js +2 -2
- package/esm2015/dynamic-menu/covalent-core-dynamic-menu.js +1 -1
- package/esm2015/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.js +1 -1
- package/esm2015/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.js +1 -1
- package/esm2015/dynamic-menu/dynamic-menu.component.js +1 -1
- package/esm2015/dynamic-menu/dynamic-menu.module.js +1 -1
- package/esm2015/dynamic-menu/index.js +1 -1
- package/esm2015/dynamic-menu/public_api.js +1 -1
- package/esm2015/expansion-panel/covalent-core-expansion-panel.js +1 -1
- package/esm2015/expansion-panel/expansion-panel-group.component.js +1 -1
- package/esm2015/expansion-panel/expansion-panel.component.js +1 -1
- package/esm2015/expansion-panel/expansion-panel.module.js +1 -1
- package/esm2015/expansion-panel/index.js +1 -1
- package/esm2015/expansion-panel/public-api.js +1 -1
- package/esm2015/file/covalent-core-file.js +1 -1
- package/esm2015/file/directives/file-drop.directive.js +1 -1
- package/esm2015/file/directives/file-select.directive.js +1 -1
- package/esm2015/file/file-input/file-input.component.js +1 -1
- package/esm2015/file/file-upload/file-upload.component.js +1 -1
- package/esm2015/file/file.module.js +1 -1
- package/esm2015/file/index.js +1 -1
- package/esm2015/file/public-api.js +1 -1
- package/esm2015/file/services/file.service.js +1 -1
- package/esm2015/index.js +1 -1
- package/esm2015/json-formatter/covalent-core-json-formatter.js +1 -1
- package/esm2015/json-formatter/index.js +1 -1
- package/esm2015/json-formatter/json-formatter.component.js +1 -1
- package/esm2015/json-formatter/json-formatter.module.js +1 -1
- package/esm2015/json-formatter/public-api.js +1 -1
- package/esm2015/layout/covalent-core-layout.js +1 -1
- package/esm2015/layout/index.js +1 -1
- package/esm2015/layout/layout-card-over/layout-card-over.component.js +2 -2
- package/esm2015/layout/layout-footer/layout-footer.component.js +1 -1
- package/esm2015/layout/layout-manage-list/layout-manage-list.component.js +1 -1
- package/esm2015/layout/layout-manage-list/layout-manage-list.directives.js +1 -1
- package/esm2015/layout/layout-nav/layout-nav.component.js +1 -1
- package/esm2015/layout/layout-nav-list/layout-nav-list.component.js +1 -1
- package/esm2015/layout/layout-nav-list/layout-nav-list.directives.js +1 -1
- package/esm2015/layout/layout-toggle.class.js +1 -1
- package/esm2015/layout/layout.component.js +1 -1
- package/esm2015/layout/layout.directives.js +1 -1
- package/esm2015/layout/layout.module.js +1 -1
- package/esm2015/layout/navigation-drawer/navigation-drawer.component.js +1 -1
- package/esm2015/layout/public-api.js +1 -1
- package/esm2015/loading/covalent-core-loading.js +1 -1
- package/esm2015/loading/directives/loading.directive.js +1 -1
- package/esm2015/loading/index.js +1 -1
- package/esm2015/loading/loading.component.js +1 -1
- package/esm2015/loading/loading.module.js +1 -1
- package/esm2015/loading/public-api.js +1 -1
- package/esm2015/loading/services/loading.factory.js +1 -1
- package/esm2015/loading/services/loading.service.js +1 -1
- package/esm2015/media/covalent-core-media.js +1 -1
- package/esm2015/media/directives/media-toggle.directive.js +1 -1
- package/esm2015/media/index.js +1 -1
- package/esm2015/media/media.module.js +1 -1
- package/esm2015/media/public-api.js +1 -1
- package/esm2015/media/services/media.service.js +1 -1
- package/esm2015/menu/covalent-core-menu.js +1 -1
- package/esm2015/menu/index.js +1 -1
- package/esm2015/menu/menu.component.js +1 -1
- package/esm2015/menu/menu.module.js +1 -1
- package/esm2015/menu/public-api.js +1 -1
- package/esm2015/message/covalent-core-message.js +1 -1
- package/esm2015/message/index.js +1 -1
- package/esm2015/message/message.component.js +1 -1
- package/esm2015/message/message.module.js +1 -1
- package/esm2015/message/public-api.js +1 -1
- package/esm2015/nav-links/covalent-core-nav-links.js +1 -1
- package/esm2015/nav-links/index.js +1 -1
- package/esm2015/nav-links/nav-links.component.js +1 -1
- package/esm2015/nav-links/nav-links.module.js +1 -1
- package/esm2015/nav-links/public-api.js +1 -1
- package/esm2015/notifications/covalent-core-notifications.js +1 -1
- package/esm2015/notifications/index.js +1 -1
- package/esm2015/notifications/notification-count.component.js +1 -1
- package/esm2015/notifications/notifications.module.js +1 -1
- package/esm2015/notifications/public-api.js +1 -1
- package/esm2015/paging/covalent-core-paging.js +1 -1
- package/esm2015/paging/index.js +1 -1
- package/esm2015/paging/paging-bar.component.js +1 -1
- package/esm2015/paging/paging.module.js +1 -1
- package/esm2015/paging/public-api.js +1 -1
- package/esm2015/search/covalent-core-search.js +1 -1
- package/esm2015/search/index.js +1 -1
- package/esm2015/search/public-api.js +1 -1
- package/esm2015/search/search-box/search-box.component.js +1 -1
- package/esm2015/search/search-input/search-input.component.js +1 -1
- package/esm2015/search/search.module.js +1 -1
- package/esm2015/side-sheet/covalent-core-side-sheet.js +12 -0
- package/esm2015/side-sheet/index.js +7 -0
- package/esm2015/side-sheet/public-api.js +11 -0
- package/esm2015/side-sheet/side-sheet-container.js +388 -0
- package/esm2015/side-sheet/side-sheet-ref.js +47 -0
- package/esm2015/side-sheet/side-sheet.animation.js +20 -0
- package/esm2015/side-sheet/side-sheet.config.js +12 -0
- package/esm2015/side-sheet/side-sheet.content-directives.js +255 -0
- package/esm2015/side-sheet/side-sheet.js +312 -0
- package/esm2015/side-sheet/side-sheet.module.js +36 -0
- package/esm2015/sidesheet/covalent-core-sidesheet.js +1 -1
- package/esm2015/sidesheet/index.js +1 -1
- package/esm2015/sidesheet/public-api.js +1 -1
- package/esm2015/sidesheet/sidesheet.component.js +1 -1
- package/esm2015/sidesheet/sidesheet.module.js +1 -1
- package/esm2015/steps/covalent-core-steps.js +1 -1
- package/esm2015/steps/index.js +1 -1
- package/esm2015/steps/nav/nav-step-link/nav-step-link.component.js +1 -1
- package/esm2015/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.js +1 -1
- package/esm2015/steps/nav/nav-steps-vertical/nav-steps-vertical.component.js +1 -1
- package/esm2015/steps/public-api.js +1 -1
- package/esm2015/steps/step-body/step-body.component.js +1 -1
- package/esm2015/steps/step-header/step-header.component.js +1 -1
- package/esm2015/steps/step.component.js +1 -1
- package/esm2015/steps/steps.component.js +1 -1
- package/esm2015/steps/steps.module.js +1 -1
- package/esm2015/tab-select/covalent-core-tab-select.js +1 -1
- package/esm2015/tab-select/index.js +1 -1
- package/esm2015/tab-select/public-api.js +1 -1
- package/esm2015/tab-select/tab-option.component.js +1 -1
- package/esm2015/tab-select/tab-select.component.js +1 -1
- package/esm2015/tab-select/tab-select.module.js +1 -1
- package/esm2015/user-profile/covalent-core-user-profile.js +1 -1
- package/esm2015/user-profile/index.js +1 -1
- package/esm2015/user-profile/public_api.js +1 -1
- package/esm2015/user-profile/user-profile-menu/user-profile-menu.component.js +1 -1
- package/esm2015/user-profile/user-profile.component.js +1 -1
- package/esm2015/user-profile/user-profile.module.js +1 -1
- package/esm2015/virtual-scroll/covalent-core-virtual-scroll.js +1 -1
- package/esm2015/virtual-scroll/index.js +1 -1
- package/esm2015/virtual-scroll/public-api.js +1 -1
- package/esm2015/virtual-scroll/virtual-scroll-container.component.js +1 -1
- package/esm2015/virtual-scroll/virtual-scroll-row.directive.js +1 -1
- package/esm2015/virtual-scroll/virtual-scroll.module.js +1 -1
- package/fesm2015/covalent-core-breadcrumbs.js.map +1 -1
- package/fesm2015/covalent-core-chips.js +1 -1
- package/fesm2015/covalent-core-chips.js.map +1 -1
- package/fesm2015/covalent-core-common.js.map +1 -1
- package/fesm2015/covalent-core-data-table.js +2 -2
- package/fesm2015/covalent-core-data-table.js.map +1 -1
- package/fesm2015/covalent-core-dialogs.js +2 -2
- package/fesm2015/covalent-core-dialogs.js.map +1 -1
- package/fesm2015/covalent-core-dynamic-menu.js.map +1 -1
- package/fesm2015/covalent-core-file.js.map +1 -1
- package/fesm2015/covalent-core-layout.js +1 -1
- package/fesm2015/covalent-core-layout.js.map +1 -1
- package/fesm2015/covalent-core-loading.js.map +1 -1
- package/fesm2015/covalent-core-media.js.map +1 -1
- package/fesm2015/covalent-core-search.js.map +1 -1
- package/fesm2015/covalent-core-side-sheet.js +1070 -0
- package/fesm2015/covalent-core-side-sheet.js.map +1 -0
- package/fesm2015/covalent-core-steps.js.map +1 -1
- package/fesm2015/covalent-core-tab-select.js.map +1 -1
- package/fesm2015/covalent-core-user-profile.js.map +1 -1
- package/layout/covalent-core-layout.metadata.json +1 -1
- package/package.json +7 -7
- package/schematics/ng-add/index.js +3 -6
- package/schematics/ng-add/index.js.map +1 -1
- package/side-sheet/README.md +66 -0
- package/side-sheet/covalent-core-side-sheet.d.ts +6 -0
- package/side-sheet/covalent-core-side-sheet.metadata.json +1 -0
- package/side-sheet/index.d.ts +1 -0
- package/side-sheet/package.json +11 -0
- package/side-sheet/public-api.d.ts +5 -0
- package/side-sheet/side-sheet-container.d.ts +92 -0
- package/side-sheet/side-sheet-ref.d.ts +9 -0
- package/side-sheet/side-sheet.animation.d.ts +4 -0
- package/side-sheet/side-sheet.config.d.ts +3 -0
- package/side-sheet/side-sheet.content-directives.d.ts +50 -0
- package/side-sheet/side-sheet.d.ts +56 -0
- package/side-sheet/side-sheet.module.d.ts +2 -0
- package/side-sheet/side-sheet.scss +69 -0
- package/side-sheet/side-sheet.theme.scss +8 -0
- package/tab-select/covalent-core-tab-select.metadata.json +1 -1
- package/theming/_all-theme.scss +2 -0
- package/theming/prebuilt/blue-grey-deep-orange.css +34 -1
- package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
- package/theming/prebuilt/blue-orange.css +34 -1
- package/theming/prebuilt/blue-orange.css.map +1 -1
- package/theming/prebuilt/indigo-pink.css +34 -1
- package/theming/prebuilt/indigo-pink.css.map +1 -1
- package/theming/prebuilt/orange-light-blue.css +34 -1
- package/theming/prebuilt/orange-light-blue.css.map +1 -1
- package/theming/prebuilt/teal-orange.css +34 -1
- package/theming/prebuilt/teal-orange.css.map +1 -1
@@ -0,0 +1,20 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview added by tsickle
|
3
|
+
* Generated from: side-sheet.animation.ts
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
+
*/
|
6
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
7
|
+
import { AnimationCurves, AnimationDurations } from '@angular/material/core';
|
8
|
+
/** @type {?} */
|
9
|
+
export const tdSideSheetAnimations = {
|
10
|
+
/**
|
11
|
+
* Animation that is applied on the side-sheet container by default.
|
12
|
+
*/
|
13
|
+
sideSheetContainer: trigger('sideSheetContainer', [
|
14
|
+
state('void, exit', style({ transform: 'translateX(100%)' })),
|
15
|
+
state('enter', style({ transform: 'translateX(0%)', opacity: 1 })),
|
16
|
+
transition('* => enter', animate(`${AnimationDurations.ENTERING} ${AnimationCurves.ACCELERATION_CURVE}`, style({ transform: 'translateX(0)', opacity: 1 }))),
|
17
|
+
transition('* => void, * => exit', animate(`${AnimationDurations.EXITING} ${AnimationCurves.ACCELERATION_CURVE}`, style({ transform: 'translateX(100%)' }))),
|
18
|
+
]),
|
19
|
+
};
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvc2lkZS1zaGVldC8iLCJzb3VyY2VzIjpbInNpZGUtc2hlZXQuYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0scUJBQXFCLENBQUM7QUFDM0csT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUU3RSxNQUFNLE9BQU8scUJBQXFCLEdBRTlCOzs7O0lBRUYsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixFQUFFO1FBQ2hELEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRSxVQUFVLENBQ1IsWUFBWSxFQUNaLE9BQU8sQ0FDTCxHQUFHLGtCQUFrQixDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsa0JBQWtCLEVBQUUsRUFDdEUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDbEQsQ0FDRjtRQUNELFVBQVUsQ0FDUixzQkFBc0IsRUFDdEIsT0FBTyxDQUNMLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxFQUNyRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUN6QyxDQUNGO0tBQ0YsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEFuaW1hdGlvbkN1cnZlcywgQW5pbWF0aW9uRHVyYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmV4cG9ydCBjb25zdCB0ZFNpZGVTaGVldEFuaW1hdGlvbnM6IHtcbiAgcmVhZG9ubHkgc2lkZVNoZWV0Q29udGFpbmVyOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGE7XG59ID0ge1xuICAvKiogQW5pbWF0aW9uIHRoYXQgaXMgYXBwbGllZCBvbiB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgYnkgZGVmYXVsdC4gKi9cbiAgc2lkZVNoZWV0Q29udGFpbmVyOiB0cmlnZ2VyKCdzaWRlU2hlZXRDb250YWluZXInLCBbXG4gICAgc3RhdGUoJ3ZvaWQsIGV4aXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKSxcbiAgICBzdGF0ZSgnZW50ZXInLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJywgb3BhY2l0eTogMSB9KSksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICcqID0+IGVudGVyJyxcbiAgICAgIGFuaW1hdGUoXG4gICAgICAgIGAke0FuaW1hdGlvbkR1cmF0aW9ucy5FTlRFUklOR30gJHtBbmltYXRpb25DdXJ2ZXMuQUNDRUxFUkFUSU9OX0NVUlZFfWAsXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScsIG9wYWNpdHk6IDEgfSksXG4gICAgICApLFxuICAgICksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICcqID0+IHZvaWQsICogPT4gZXhpdCcsXG4gICAgICBhbmltYXRlKFxuICAgICAgICBgJHtBbmltYXRpb25EdXJhdGlvbnMuRVhJVElOR30gJHtBbmltYXRpb25DdXJ2ZXMuQUNDRUxFUkFUSU9OX0NVUlZFfWAsXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSksXG4gICAgICApLFxuICAgICksXG4gIF0pLFxufTtcbiJdfQ==
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview added by tsickle
|
3
|
+
* Generated from: side-sheet.config.ts
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
+
*/
|
6
|
+
import { MatDialogConfig } from '@angular/material/dialog';
|
7
|
+
/**
|
8
|
+
* @template D
|
9
|
+
*/
|
10
|
+
export class CovalentSideSheetConfig extends MatDialogConfig {
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvc2lkZS1zaGVldC8iLCJzb3VyY2VzIjpbInNpZGUtc2hlZXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBRTNELE1BQU0sT0FBTyx1QkFBaUMsU0FBUSxlQUFrQjtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0Q29uZmlnPEQgPSBhbnk+IGV4dGVuZHMgTWF0RGlhbG9nQ29uZmlnPEQ+IHt9XG4iXX0=
|
@@ -0,0 +1,255 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview added by tsickle
|
3
|
+
* Generated from: side-sheet.content-directives.ts
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
+
*/
|
6
|
+
/* tslint:disable */
|
7
|
+
import { Directive, Input, Optional, ElementRef } from '@angular/core';
|
8
|
+
import { CovalentSideSheet } from './side-sheet';
|
9
|
+
import { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';
|
10
|
+
/**
|
11
|
+
* Counter used to generate unique IDs for dialog elements.
|
12
|
+
* @type {?}
|
13
|
+
*/
|
14
|
+
let dialogElementUid = 0;
|
15
|
+
/**
|
16
|
+
* Button that will close the current dialog.
|
17
|
+
*/
|
18
|
+
export class CovalentSideSheetClose {
|
19
|
+
/**
|
20
|
+
* @param {?} dialogRef
|
21
|
+
* @param {?} _elementRef
|
22
|
+
* @param {?} _dialog
|
23
|
+
*/
|
24
|
+
constructor(dialogRef, _elementRef, _dialog) {
|
25
|
+
this.dialogRef = dialogRef;
|
26
|
+
this._elementRef = _elementRef;
|
27
|
+
this._dialog = _dialog;
|
28
|
+
/**
|
29
|
+
* Default to "button" to prevents accidental form submits.
|
30
|
+
*/
|
31
|
+
this.type = 'button';
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* @return {?}
|
35
|
+
*/
|
36
|
+
ngOnInit() {
|
37
|
+
if (!this.dialogRef) {
|
38
|
+
// When this directive is included in a dialog via TemplateRef (rather than being
|
39
|
+
// in a Component), the DialogRef isn't available via injection because embedded
|
40
|
+
// views cannot be given a custom injector. Instead, we look up the DialogRef by
|
41
|
+
// ID. This must occur in `onInit`, as the ID binding for the dialog container won't
|
42
|
+
// be resolved at constructor time.
|
43
|
+
this.dialogRef = (/** @type {?} */ (getClosestDialog(this._elementRef, this._dialog.openSideSheets)));
|
44
|
+
}
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* @param {?} changes
|
48
|
+
* @return {?}
|
49
|
+
*/
|
50
|
+
ngOnChanges(changes) {
|
51
|
+
/** @type {?} */
|
52
|
+
const proxiedChange = changes['_CovalentSideSheetClose'] || changes['_CovalentSideSheetCloseResult'];
|
53
|
+
if (proxiedChange) {
|
54
|
+
this.dialogResult = proxiedChange.currentValue;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
/**
|
58
|
+
* @param {?} event
|
59
|
+
* @return {?}
|
60
|
+
*/
|
61
|
+
_onButtonClick(event) {
|
62
|
+
// Determinate the focus origin using the click event, because using the FocusMonitor will
|
63
|
+
// result in incorrect origins. Most of the time, close buttons will be auto focused in the
|
64
|
+
// dialog, and therefore clicking the button won't result in a focus change. This means that
|
65
|
+
// the FocusMonitor won't detect any origin change, and will always output `program`.
|
66
|
+
_closeSideSheetVia(this.dialogRef, event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse', this.dialogResult);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
CovalentSideSheetClose.decorators = [
|
70
|
+
{ type: Directive, args: [{
|
71
|
+
selector: '[td-side-sheet-close], [CovalentSideSheetClose]',
|
72
|
+
exportAs: 'CovalentSideSheetClose',
|
73
|
+
host: {
|
74
|
+
'(click)': '_onButtonClick($event)',
|
75
|
+
'[attr.aria-label]': 'ariaLabel || null',
|
76
|
+
'[attr.type]': 'type',
|
77
|
+
},
|
78
|
+
},] }
|
79
|
+
];
|
80
|
+
/** @nocollapse */
|
81
|
+
CovalentSideSheetClose.ctorParameters = () => [
|
82
|
+
{ type: CovalentSideSheetRef, decorators: [{ type: Optional }] },
|
83
|
+
{ type: ElementRef },
|
84
|
+
{ type: CovalentSideSheet }
|
85
|
+
];
|
86
|
+
CovalentSideSheetClose.propDecorators = {
|
87
|
+
ariaLabel: [{ type: Input, args: ['aria-label',] }],
|
88
|
+
type: [{ type: Input }],
|
89
|
+
dialogResult: [{ type: Input, args: ['td-side-sheet-close',] }],
|
90
|
+
_CovalentSideSheetClose: [{ type: Input, args: ['CovalentSideSheetClose',] }]
|
91
|
+
};
|
92
|
+
if (false) {
|
93
|
+
/**
|
94
|
+
* Screenreader label for the button.
|
95
|
+
* @type {?}
|
96
|
+
*/
|
97
|
+
CovalentSideSheetClose.prototype.ariaLabel;
|
98
|
+
/**
|
99
|
+
* Default to "button" to prevents accidental form submits.
|
100
|
+
* @type {?}
|
101
|
+
*/
|
102
|
+
CovalentSideSheetClose.prototype.type;
|
103
|
+
/**
|
104
|
+
* Dialog close input.
|
105
|
+
* @type {?}
|
106
|
+
*/
|
107
|
+
CovalentSideSheetClose.prototype.dialogResult;
|
108
|
+
/** @type {?} */
|
109
|
+
CovalentSideSheetClose.prototype._CovalentSideSheetClose;
|
110
|
+
/** @type {?} */
|
111
|
+
CovalentSideSheetClose.prototype.dialogRef;
|
112
|
+
/**
|
113
|
+
* @type {?}
|
114
|
+
* @private
|
115
|
+
*/
|
116
|
+
CovalentSideSheetClose.prototype._elementRef;
|
117
|
+
/**
|
118
|
+
* @type {?}
|
119
|
+
* @private
|
120
|
+
*/
|
121
|
+
CovalentSideSheetClose.prototype._dialog;
|
122
|
+
}
|
123
|
+
/**
|
124
|
+
* Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.
|
125
|
+
*/
|
126
|
+
export class CovalentSideSheetTitle {
|
127
|
+
/**
|
128
|
+
* @param {?} _dialogRef
|
129
|
+
* @param {?} _elementRef
|
130
|
+
* @param {?} _dialog
|
131
|
+
*/
|
132
|
+
constructor(_dialogRef, _elementRef, _dialog) {
|
133
|
+
this._dialogRef = _dialogRef;
|
134
|
+
this._elementRef = _elementRef;
|
135
|
+
this._dialog = _dialog;
|
136
|
+
/**
|
137
|
+
* Unique id for the dialog title. If none is supplied, it will be auto-generated.
|
138
|
+
*/
|
139
|
+
this.id = `td-side-sheet-title-${dialogElementUid++}`;
|
140
|
+
}
|
141
|
+
/**
|
142
|
+
* @return {?}
|
143
|
+
*/
|
144
|
+
ngOnInit() {
|
145
|
+
if (this._dialogRef) {
|
146
|
+
Promise.resolve().then((/**
|
147
|
+
* @return {?}
|
148
|
+
*/
|
149
|
+
() => {
|
150
|
+
/** @type {?} */
|
151
|
+
const container = this._dialogRef._containerInstance;
|
152
|
+
if (container && !container._ariaLabelledBy) {
|
153
|
+
container._ariaLabelledBy = this.id;
|
154
|
+
}
|
155
|
+
}));
|
156
|
+
}
|
157
|
+
else {
|
158
|
+
this._dialogRef = (/** @type {?} */ (getClosestDialog(this._elementRef, this._dialog.openSideSheets)));
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
CovalentSideSheetTitle.decorators = [
|
163
|
+
{ type: Directive, args: [{
|
164
|
+
selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',
|
165
|
+
exportAs: 'CovalentSideSheetTitle',
|
166
|
+
host: {
|
167
|
+
'class': 'td-side-sheet-title',
|
168
|
+
'[id]': 'id',
|
169
|
+
},
|
170
|
+
},] }
|
171
|
+
];
|
172
|
+
/** @nocollapse */
|
173
|
+
CovalentSideSheetTitle.ctorParameters = () => [
|
174
|
+
{ type: CovalentSideSheetRef, decorators: [{ type: Optional }] },
|
175
|
+
{ type: ElementRef },
|
176
|
+
{ type: CovalentSideSheet }
|
177
|
+
];
|
178
|
+
CovalentSideSheetTitle.propDecorators = {
|
179
|
+
id: [{ type: Input }]
|
180
|
+
};
|
181
|
+
if (false) {
|
182
|
+
/**
|
183
|
+
* Unique id for the dialog title. If none is supplied, it will be auto-generated.
|
184
|
+
* @type {?}
|
185
|
+
*/
|
186
|
+
CovalentSideSheetTitle.prototype.id;
|
187
|
+
/**
|
188
|
+
* @type {?}
|
189
|
+
* @private
|
190
|
+
*/
|
191
|
+
CovalentSideSheetTitle.prototype._dialogRef;
|
192
|
+
/**
|
193
|
+
* @type {?}
|
194
|
+
* @private
|
195
|
+
*/
|
196
|
+
CovalentSideSheetTitle.prototype._elementRef;
|
197
|
+
/**
|
198
|
+
* @type {?}
|
199
|
+
* @private
|
200
|
+
*/
|
201
|
+
CovalentSideSheetTitle.prototype._dialog;
|
202
|
+
}
|
203
|
+
/**
|
204
|
+
* Scrollable content container of a dialog.
|
205
|
+
*/
|
206
|
+
export class CovalentSideSheetContent {
|
207
|
+
}
|
208
|
+
CovalentSideSheetContent.decorators = [
|
209
|
+
{ type: Directive, args: [{
|
210
|
+
selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,
|
211
|
+
host: { class: 'td-side-sheet-content' },
|
212
|
+
},] }
|
213
|
+
];
|
214
|
+
/**
|
215
|
+
* Container for the bottom action buttons in a dialog.
|
216
|
+
* Stays fixed to the bottom when scrolling.
|
217
|
+
*/
|
218
|
+
export class CovalentSideSheetActions {
|
219
|
+
}
|
220
|
+
CovalentSideSheetActions.decorators = [
|
221
|
+
{ type: Directive, args: [{
|
222
|
+
selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,
|
223
|
+
host: { class: 'td-side-sheet-actions' },
|
224
|
+
},] }
|
225
|
+
];
|
226
|
+
/**
|
227
|
+
* Container for the wrapper part of the dialog
|
228
|
+
*/
|
229
|
+
export class CovalentSideSheetWrapper {
|
230
|
+
}
|
231
|
+
CovalentSideSheetWrapper.decorators = [
|
232
|
+
{ type: Directive, args: [{
|
233
|
+
selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,
|
234
|
+
host: { class: 'td-side-sheet-wrapper' },
|
235
|
+
},] }
|
236
|
+
];
|
237
|
+
/**
|
238
|
+
* Finds the closest CovalentSideSheetRef to an element by looking at the DOM.
|
239
|
+
* @param {?} element Element relative to which to look for a dialog.
|
240
|
+
* @param {?} openDialogs References to the currently-open dialogs.
|
241
|
+
* @return {?}
|
242
|
+
*/
|
243
|
+
function getClosestDialog(element, openDialogs) {
|
244
|
+
/** @type {?} */
|
245
|
+
let parent = element.nativeElement.parentElement;
|
246
|
+
while (parent && !parent.classList.contains('td-side-sheet-container')) {
|
247
|
+
parent = parent.parentElement;
|
248
|
+
}
|
249
|
+
return parent ? openDialogs.find((/**
|
250
|
+
* @param {?} dialog
|
251
|
+
* @return {?}
|
252
|
+
*/
|
253
|
+
(dialog) => dialog.id === (/** @type {?} */ (parent)).id)) : null;
|
254
|
+
}
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb250ZW50LWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvc2lkZS1zaGVldC8iLCJzb3VyY2VzIjpbInNpZGUtc2hlZXQuY29udGVudC1kaXJlY3RpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQWlCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lBR3hFLGdCQUFnQixHQUFHLENBQUM7Ozs7QUFjeEIsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7O0lBWWpDLFlBQ3FCLFNBQW9DLEVBQy9DLFdBQW9DLEVBQ3BDLE9BQTBCO1FBRmYsY0FBUyxHQUFULFNBQVMsQ0FBMkI7UUFDL0MsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQW1COzs7O1FBVjNCLFNBQUksR0FBa0MsUUFBUSxDQUFDO0lBV3JELENBQUM7Ozs7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsaUZBQWlGO1lBQ2pGLGdGQUFnRjtZQUNoRixnRkFBZ0Y7WUFDaEYsb0ZBQW9GO1lBQ3BGLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFBLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDO1NBQ25GO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7O2NBQzFCLGFBQWEsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsSUFBSSxPQUFPLENBQUMsK0JB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LFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEVBQTRFO2dCQUN0RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7YUFDekM7Ozs7O0FBVUQsTUFBTSxPQUFPLHdCQUF3Qjs7O1lBSnBDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEVBQTRFO2dCQUN0RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7YUFDekM7Ozs7Ozs7O0FBUUQsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFnQyxFQUFFLFdBQXdDOztRQUM5RixNQUFNLEdBQXVCLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYTtJQUVwRSxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7UUFDdEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7S0FDL0I7SUFFRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7Ozs7SUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxtQkFBQSxNQUFNLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3ZhbGVudFNpZGVTaGVldCB9IGZyb20gJy4vc2lkZS1zaGVldCc7XG5pbXBvcnQgeyBfY2xvc2VTaWRlU2hlZXRWaWEsIENvdmFsZW50U2lkZVNoZWV0UmVmIH0gZnJvbSAnLi9zaWRlLXNoZWV0LXJlZic7XG5cbi8qKiBDb3VudGVyIHVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyBmb3IgZGlhbG9nIGVsZW1lbnRzLiAqL1xubGV0IGRpYWxvZ0VsZW1lbnRVaWQgPSAwO1xuXG4vKipcbiAqIEJ1dHRvbiB0aGF0IHdpbGwgY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC1jbG9zZV0sIFtDb3ZhbGVudFNpZGVTaGVldENsb3NlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRDbG9zZScsXG4gIGhvc3Q6IHtcbiAgICAnKGNsaWNrKSc6ICdfb25CdXR0b25DbGljaygkZXZlbnQpJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYXJpYUxhYmVsIHx8IG51bGwnLFxuICAgICdbYXR0ci50eXBlXSc6ICd0eXBlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRDbG9zZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIFNjcmVlbnJlYWRlciBsYWJlbCBmb3IgdGhlIGJ1dHRvbi4gKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIERlZmF1bHQgdG8gXCJidXR0b25cIiB0byBwcmV2ZW50cyBhY2NpZGVudGFsIGZvcm0gc3VibWl0cy4gKi9cbiAgQElucHV0KCkgdHlwZTogJ3N1Ym1pdCcgfCAnYnV0dG9uJyB8ICdyZXNldCcgPSAnYnV0dG9uJztcblxuICAvKiogRGlhbG9nIGNsb3NlIGlucHV0LiAqL1xuICBASW5wdXQoJ3RkLXNpZGUtc2hlZXQtY2xvc2UnKSBkaWFsb2dSZXN1bHQ6IGFueTtcblxuICBASW5wdXQoJ0NvdmFsZW50U2lkZVNoZWV0Q2xvc2UnKSBfQ292YWxlbnRTaWRlU2hlZXRDbG9zZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIC8vIFdoZW4gdGhpcyBkaXJlY3RpdmUgaXMgaW5jbHVkZWQgaW4gYSBkaWFsb2cgdmlhIFRlbXBsYXRlUmVmIChyYXRoZXIgdGhhbiBiZWluZ1xuICAgICAgLy8gaW4gYSBDb21wb25lbnQpLCB0aGUgRGlhbG9nUmVmIGlzbid0IGF2YWlsYWJsZSB2aWEgaW5qZWN0aW9uIGJlY2F1c2UgZW1iZWRkZWRcbiAgICAgIC8vIHZpZXdzIGNhbm5vdCBiZSBnaXZlbiBhIGN1c3RvbSBpbmplY3Rvci4gSW5zdGVhZCwgd2UgbG9vayB1cCB0aGUgRGlhbG9nUmVmIGJ5XG4gICAgICAvLyBJRC4gVGhpcyBtdXN0IG9jY3VyIGluIGBvbkluaXRgLCBhcyB0aGUgSUQgYmluZGluZyBmb3IgdGhlIGRpYWxvZyBjb250YWluZXIgd29uJ3RcbiAgICAgIC8vIGJlIHJlc29sdmVkIGF0IGNvbnN0cnVjdG9yIHRpbWUuXG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2codGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzKSE7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHByb3hpZWRDaGFuZ2UgPSBjaGFuZ2VzWydfQ292YWxlbnRTaWRlU2hlZXRDbG9zZSddIHx8IGNoYW5nZXNbJ19Db3ZhbGVudFNpZGVTaGVldENsb3NlUmVzdWx0J107XG5cbiAgICBpZiAocHJveGllZENoYW5nZSkge1xuICAgICAgdGhpcy5kaWFsb2dSZXN1bHQgPSBwcm94aWVkQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBfb25CdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIC8vIERldGVybWluYXRlIHRoZSBmb2N1cyBvcmlnaW4gdXNpbmcgdGhlIGNsaWNrIGV2ZW50LCBiZWNhdXNlIHVzaW5nIHRoZSBGb2N1c01vbml0b3Igd2lsbFxuICAgIC8vIHJlc3VsdCBpbiBpbmNvcnJlY3Qgb3JpZ2lucy4gTW9zdCBvZiB0aGUgdGltZSwgY2xvc2UgYnV0dG9ucyB3aWxsIGJlIGF1dG8gZm9jdXNlZCBpbiB0aGVcbiAgICAvLyBkaWFsb2csIGFuZCB0aGVyZWZvcmUgY2xpY2tpbmcgdGhlIGJ1dHRvbiB3b24ndCByZXN1bHQgaW4gYSBmb2N1cyBjaGFuZ2UuIFRoaXMgbWVhbnMgdGhhdFxuICAgIC8vIHRoZSBGb2N1c01vbml0b3Igd29uJ3QgZGV0ZWN0IGFueSBvcmlnaW4gY2hhbmdlLCBhbmQgd2lsbCBhbHdheXMgb3V0cHV0IGBwcm9ncmFtYC5cbiAgICBfY2xvc2VTaWRlU2hlZXRWaWEoXG4gICAgICB0aGlzLmRpYWxvZ1JlZixcbiAgICAgIGV2ZW50LnNjcmVlblggPT09IDAgJiYgZXZlbnQuc2NyZWVuWSA9PT0gMCA/ICdrZXlib2FyZCcgOiAnbW91c2UnLFxuICAgICAgdGhpcy5kaWFsb2dSZXN1bHQsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFRpdGxlIG9mIGEgc2lkZSBzaGVldCBlbGVtZW50LiBTdGF5cyBmaXhlZCB0byB0aGUgdG9wIG9mIHRoZSBzaWRlIHNoZWV0IHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGQtc2lkZS1zaGVldC10aXRsZV0sIFtDb3ZhbGVudFNpZGVTaGVldFRpdGxlXScsXG4gIGV4cG9ydEFzOiAnQ292YWxlbnRTaWRlU2hlZXRUaXRsZScsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAndGQtc2lkZS1zaGVldC10aXRsZScsXG4gICAgJ1tpZF0nOiAnaWQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldFRpdGxlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIGRpYWxvZyB0aXRsZS4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGB0ZC1zaWRlLXNoZWV0LXRpdGxlLSR7ZGlhbG9nRWxlbWVudFVpZCsrfWA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gVGhlIGRpYWxvZyB0aXRsZSBkaXJlY3RpdmUgaXMgYWx3YXlzIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIGBDb3ZhbGVudFNpZGVTaGVldFJlZmAuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBsaWdodHdlaWdodC10b2tlbnNcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4sXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBDb3ZhbGVudFNpZGVTaGVldCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kaWFsb2dSZWYuX2NvbnRhaW5lckluc3RhbmNlO1xuXG4gICAgICAgIGlmIChjb250YWluZXIgJiYgIWNvbnRhaW5lci5fYXJpYUxhYmVsbGVkQnkpIHtcbiAgICAgICAgICBjb250YWluZXIuX2FyaWFMYWJlbGxlZEJ5ID0gdGhpcy5pZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IGdldENsb3Nlc3REaWFsb2codGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fZGlhbG9nLm9wZW5TaWRlU2hlZXRzKSE7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2Nyb2xsYWJsZSBjb250ZW50IGNvbnRhaW5lciBvZiBhIGRpYWxvZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW3RkLXNpZGUtc2hlZXQtY29udGVudF0sIHRkLXNpZGUtc2hlZXQtY29udGVudCwgW0NvdmFsZW50U2lkZVNoZWV0Q29udGVudF1gLFxuICBob3N0OiB7IGNsYXNzOiAndGQtc2lkZS1zaGVldC1jb250ZW50JyB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldENvbnRlbnQge31cblxuLyoqXG4gKiBDb250YWluZXIgZm9yIHRoZSBib3R0b20gYWN0aW9uIGJ1dHRvbnMgaW4gYSBkaWFsb2cuXG4gKiBTdGF5cyBmaXhlZCB0byB0aGUgYm90dG9tIHdoZW4gc2Nyb2xsaW5nLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IGBbdGQtc2lkZS1zaGVldC1hY3Rpb25zXSwgdGQtc2lkZS1zaGVldC1hY3Rpb25zLCBbQ292YWxlbnRTaWRlU2hlZXRBY3Rpb25zXWAsXG4gIGhvc3Q6IHsgY2xhc3M6ICd0ZC1zaWRlLXNoZWV0LWFjdGlvbnMnIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50U2lkZVNoZWV0QWN0aW9ucyB7fVxuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgdGhlIHdyYXBwZXIgcGFydCBvZiB0aGUgZGlhbG9nXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFt0ZC1zaWRlLXNoZWV0LXdyYXBwZXJdLCB0ZC1zaWRlLXNoZWV0LXdyYXBwZXIsIFtDb3ZhbGVudFNpZGVTaGVldFdyYXBwZXJdYCxcbiAgaG9zdDogeyBjbGFzczogJ3RkLXNpZGUtc2hlZXQtd3JhcHBlcicgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRTaWRlU2hlZXRXcmFwcGVyIHt9XG5cbi8qKlxuICogRmluZHMgdGhlIGNsb3Nlc3QgQ292YWxlbnRTaWRlU2hlZXRSZWYgdG8gYW4gZWxlbWVudCBieSBsb29raW5nIGF0IHRoZSBET00uXG4gKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHJlbGF0aXZlIHRvIHdoaWNoIHRvIGxvb2sgZm9yIGEgZGlhbG9nLlxuICogQHBhcmFtIG9wZW5EaWFsb2dzIFJlZmVyZW5jZXMgdG8gdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gKi9cbmZ1bmN0aW9uIGdldENsb3Nlc3REaWFsb2coZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIG9wZW5EaWFsb2dzOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxhbnk+W10pIHtcbiAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgd2hpbGUgKHBhcmVudCAmJiAhcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygndGQtc2lkZS1zaGVldC1jb250YWluZXInKSkge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHBhcmVudCA/IG9wZW5EaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4gZGlhbG9nLmlkID09PSBwYXJlbnQhLmlkKSA6IG51bGw7XG59XG4iXX0=
|
@@ -0,0 +1,312 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview added by tsickle
|
3
|
+
* Generated from: side-sheet.ts
|
4
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
+
*/
|
6
|
+
/* tslint:disable */
|
7
|
+
import { Directive, Inject, Injectable, InjectFlags, InjectionToken, Injector, Optional, SkipSelf, TemplateRef, Type, } from '@angular/core';
|
8
|
+
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
9
|
+
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
10
|
+
import { MAT_DIALOG_DATA, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
11
|
+
import { CovalentSideSheetContainer } from './side-sheet-container';
|
12
|
+
import { Subject, of } from 'rxjs';
|
13
|
+
import { Directionality } from '@angular/cdk/bidi';
|
14
|
+
import { CovalentSideSheetRef } from './side-sheet-ref';
|
15
|
+
import { CovalentSideSheetConfig } from './side-sheet.config';
|
16
|
+
/**
|
17
|
+
* @template C
|
18
|
+
*/
|
19
|
+
export class _CovalentSideSheetBase {
|
20
|
+
/**
|
21
|
+
* @param {?} _overlay
|
22
|
+
* @param {?} _injector
|
23
|
+
* @param {?} _defaultOptions
|
24
|
+
* @param {?} _parentSideSheet
|
25
|
+
* @param {?} _sideSheetRefConstructor
|
26
|
+
* @param {?} _sideSheetContainerType
|
27
|
+
* @param {?} _sideSheetDataToken
|
28
|
+
*/
|
29
|
+
constructor(_overlay, _injector, _defaultOptions, _parentSideSheet, _sideSheetRefConstructor, _sideSheetContainerType, _sideSheetDataToken) {
|
30
|
+
this._overlay = _overlay;
|
31
|
+
this._injector = _injector;
|
32
|
+
this._defaultOptions = _defaultOptions;
|
33
|
+
this._parentSideSheet = _parentSideSheet;
|
34
|
+
this._sideSheetRefConstructor = _sideSheetRefConstructor;
|
35
|
+
this._sideSheetContainerType = _sideSheetContainerType;
|
36
|
+
this._sideSheetDataToken = _sideSheetDataToken;
|
37
|
+
this._openSideSheetsAtThisLevel = [];
|
38
|
+
this._afterAllClosedAtThisLevel = new Subject();
|
39
|
+
this._afterOpenedAtThisLevel = new Subject();
|
40
|
+
this.defaultSidebarConfig = {
|
41
|
+
minWidth: '400px',
|
42
|
+
};
|
43
|
+
}
|
44
|
+
/**
|
45
|
+
* Keeps track of the currently-open side-sheets.
|
46
|
+
* @return {?}
|
47
|
+
*/
|
48
|
+
get openSideSheets() {
|
49
|
+
return this._parentSideSheet ? this._parentSideSheet.openSideSheets : this._openSideSheetsAtThisLevel;
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* @template T, D, R
|
53
|
+
* @param {?} componentOrTemplateRef
|
54
|
+
* @param {?=} config
|
55
|
+
* @return {?}
|
56
|
+
*/
|
57
|
+
open(componentOrTemplateRef, config) {
|
58
|
+
config = Object.assign(Object.assign(Object.assign({}, this.defaultSidebarConfig), config), (this._defaultOptions || new CovalentSideSheetConfig()));
|
59
|
+
/** @type {?} */
|
60
|
+
const overlayRef = this._createOverlay(config);
|
61
|
+
/** @type {?} */
|
62
|
+
const sideSheetContainer = this._attachSideSheetContainer(overlayRef, config);
|
63
|
+
/** @type {?} */
|
64
|
+
const sideSheetRef = this._attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config);
|
65
|
+
this.openSideSheets.push(sideSheetRef);
|
66
|
+
// Notify the side-sheet container that the content has been attached.
|
67
|
+
sideSheetContainer._initializeWithAttachedContent();
|
68
|
+
return sideSheetRef;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* @return {?}
|
72
|
+
*/
|
73
|
+
ngOnDestroy() {
|
74
|
+
// Only close the side-sheets at this level on destroy
|
75
|
+
// since the parent service may still be active.
|
76
|
+
this._closeSideSheets(this._openSideSheetsAtThisLevel);
|
77
|
+
this._afterAllClosedAtThisLevel.complete();
|
78
|
+
this._afterOpenedAtThisLevel.complete();
|
79
|
+
// Clean up any subscriptions to side-sheet that never finished opening.
|
80
|
+
if (this._animationStateSubscriptions) {
|
81
|
+
this._animationStateSubscriptions.unsubscribe();
|
82
|
+
}
|
83
|
+
}
|
84
|
+
/**
|
85
|
+
* Closes all of the currently-open side-sheets.
|
86
|
+
* @return {?}
|
87
|
+
*/
|
88
|
+
closeAll() {
|
89
|
+
this._closeSideSheets(this.openSideSheets);
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* @private
|
93
|
+
* @template T
|
94
|
+
* @param {?} config
|
95
|
+
* @return {?}
|
96
|
+
*/
|
97
|
+
_createOverlay(config) {
|
98
|
+
/** @type {?} */
|
99
|
+
const overlayConfig = new OverlayConfig({
|
100
|
+
positionStrategy: this._overlay.position().global(),
|
101
|
+
scrollStrategy: this._overlay.scrollStrategies.block(),
|
102
|
+
panelClass: config.panelClass,
|
103
|
+
hasBackdrop: config.hasBackdrop,
|
104
|
+
direction: config.direction,
|
105
|
+
minWidth: config.minWidth,
|
106
|
+
minHeight: config.minHeight,
|
107
|
+
maxWidth: config.maxWidth,
|
108
|
+
});
|
109
|
+
/** @type {?} */
|
110
|
+
const overlayRef = this._overlay.create(overlayConfig);
|
111
|
+
/** @type {?} */
|
112
|
+
const positionStrategy = (/** @type {?} */ (overlayRef.getConfig().positionStrategy));
|
113
|
+
positionStrategy.right('0px');
|
114
|
+
return overlayRef;
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Attaches a container to a side-sheets's already-created overlay.
|
118
|
+
* @private
|
119
|
+
* @param {?} overlay Reference to the side-sheet's underlying overlay.
|
120
|
+
* @param {?} config The side-sheet configuration.
|
121
|
+
* @return {?} A promise resolving to a ComponentRef for the attached container.
|
122
|
+
*/
|
123
|
+
_attachSideSheetContainer(overlay, config) {
|
124
|
+
/** @type {?} */
|
125
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
126
|
+
/** @type {?} */
|
127
|
+
const injector = Injector.create({
|
128
|
+
parent: userInjector || this._injector,
|
129
|
+
providers: [{ provide: CovalentSideSheetConfig, useValue: config }],
|
130
|
+
});
|
131
|
+
/** @type {?} */
|
132
|
+
const containerPortal = new ComponentPortal(this._sideSheetContainerType, config.viewContainerRef, injector, config.componentFactoryResolver);
|
133
|
+
/** @type {?} */
|
134
|
+
const containerRef = overlay.attach(containerPortal);
|
135
|
+
return containerRef.instance;
|
136
|
+
}
|
137
|
+
/**
|
138
|
+
* Attaches the user-provided component to the already-created side sheet container.
|
139
|
+
* @private
|
140
|
+
* @template T, R
|
141
|
+
* @param {?} componentOrTemplateRef The type of component being loaded into the side-sheet,
|
142
|
+
* or a TemplateRef to instantiate as the content.
|
143
|
+
* @param {?} sideSheetContainer
|
144
|
+
* @param {?} overlayRef Reference to the overlay in which the side-sheet resides.
|
145
|
+
* @param {?} config The side-sheet configuration.
|
146
|
+
* @return {?} A promise resolving to the CovalentSideSheetRef that should be returned to the user.
|
147
|
+
*/
|
148
|
+
_attachSideSheetContent(componentOrTemplateRef, sideSheetContainer, overlayRef, config) {
|
149
|
+
// Create a reference to the side-sheet we're creating in order to give the user a handle
|
150
|
+
// to modify and close it.
|
151
|
+
/** @type {?} */
|
152
|
+
const sideSheetRef = new this._sideSheetRefConstructor(overlayRef, sideSheetContainer, config.id);
|
153
|
+
if (componentOrTemplateRef instanceof TemplateRef) {
|
154
|
+
sideSheetContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, (/** @type {?} */ (null)), (/** @type {?} */ ({
|
155
|
+
$implicit: config.data,
|
156
|
+
sideSheetRef,
|
157
|
+
}))));
|
158
|
+
}
|
159
|
+
else {
|
160
|
+
/** @type {?} */
|
161
|
+
const injector = this._createInjector(config, sideSheetRef, sideSheetContainer);
|
162
|
+
/** @type {?} */
|
163
|
+
const contentRef = sideSheetContainer.attach(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));
|
164
|
+
sideSheetRef.componentInstance = contentRef.instance;
|
165
|
+
}
|
166
|
+
sideSheetRef.updateSize(config.width, config.height);
|
167
|
+
return sideSheetRef;
|
168
|
+
}
|
169
|
+
/**
|
170
|
+
* @private
|
171
|
+
* @template T
|
172
|
+
* @param {?} config
|
173
|
+
* @param {?} sideSheetRef
|
174
|
+
* @param {?} sideSheetContainer
|
175
|
+
* @return {?}
|
176
|
+
*/
|
177
|
+
_createInjector(config, sideSheetRef, sideSheetContainer) {
|
178
|
+
/** @type {?} */
|
179
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
180
|
+
// The side-sheet container should be provided as the side-sheet container and the side-sheet's
|
181
|
+
// content are created out of the same `ViewContainerRef` and as such, are siblings
|
182
|
+
// for injector purposes. To allow the hierarchy that is expected, the side-sheet
|
183
|
+
// container is explicitly provided in the injector.
|
184
|
+
/** @type {?} */
|
185
|
+
const providers = [
|
186
|
+
{ provide: this._sideSheetContainerType, useValue: sideSheetContainer },
|
187
|
+
{ provide: this._sideSheetDataToken, useValue: config.data },
|
188
|
+
{ provide: this._sideSheetRefConstructor, useValue: sideSheetRef },
|
189
|
+
];
|
190
|
+
if (config.direction &&
|
191
|
+
(!userInjector || !userInjector.get(Directionality, null, InjectFlags.Optional))) {
|
192
|
+
providers.push({
|
193
|
+
provide: Directionality,
|
194
|
+
useValue: { value: config.direction, change: of() },
|
195
|
+
});
|
196
|
+
}
|
197
|
+
return Injector.create({ parent: userInjector || this._injector, providers });
|
198
|
+
}
|
199
|
+
/**
|
200
|
+
* Closes all of the side-sheet in an array.
|
201
|
+
* @private
|
202
|
+
* @param {?} sideSheets
|
203
|
+
* @return {?}
|
204
|
+
*/
|
205
|
+
_closeSideSheets(sideSheets) {
|
206
|
+
/** @type {?} */
|
207
|
+
let i = sideSheets.length;
|
208
|
+
while (i--) {
|
209
|
+
sideSheets[i].close();
|
210
|
+
}
|
211
|
+
}
|
212
|
+
}
|
213
|
+
_CovalentSideSheetBase.decorators = [
|
214
|
+
{ type: Directive }
|
215
|
+
];
|
216
|
+
/** @nocollapse */
|
217
|
+
_CovalentSideSheetBase.ctorParameters = () => [
|
218
|
+
{ type: Overlay },
|
219
|
+
{ type: Injector },
|
220
|
+
{ type: undefined },
|
221
|
+
{ type: undefined },
|
222
|
+
{ type: Type },
|
223
|
+
{ type: Type },
|
224
|
+
{ type: InjectionToken }
|
225
|
+
];
|
226
|
+
if (false) {
|
227
|
+
/**
|
228
|
+
* @type {?}
|
229
|
+
* @private
|
230
|
+
*/
|
231
|
+
_CovalentSideSheetBase.prototype._openSideSheetsAtThisLevel;
|
232
|
+
/**
|
233
|
+
* @type {?}
|
234
|
+
* @private
|
235
|
+
*/
|
236
|
+
_CovalentSideSheetBase.prototype._afterAllClosedAtThisLevel;
|
237
|
+
/**
|
238
|
+
* @type {?}
|
239
|
+
* @private
|
240
|
+
*/
|
241
|
+
_CovalentSideSheetBase.prototype._afterOpenedAtThisLevel;
|
242
|
+
/**
|
243
|
+
* @type {?}
|
244
|
+
* @private
|
245
|
+
*/
|
246
|
+
_CovalentSideSheetBase.prototype._animationStateSubscriptions;
|
247
|
+
/**
|
248
|
+
* @type {?}
|
249
|
+
* @private
|
250
|
+
*/
|
251
|
+
_CovalentSideSheetBase.prototype.defaultSidebarConfig;
|
252
|
+
/**
|
253
|
+
* @type {?}
|
254
|
+
* @private
|
255
|
+
*/
|
256
|
+
_CovalentSideSheetBase.prototype._overlay;
|
257
|
+
/**
|
258
|
+
* @type {?}
|
259
|
+
* @private
|
260
|
+
*/
|
261
|
+
_CovalentSideSheetBase.prototype._injector;
|
262
|
+
/**
|
263
|
+
* @type {?}
|
264
|
+
* @private
|
265
|
+
*/
|
266
|
+
_CovalentSideSheetBase.prototype._defaultOptions;
|
267
|
+
/**
|
268
|
+
* @type {?}
|
269
|
+
* @private
|
270
|
+
*/
|
271
|
+
_CovalentSideSheetBase.prototype._parentSideSheet;
|
272
|
+
/**
|
273
|
+
* @type {?}
|
274
|
+
* @private
|
275
|
+
*/
|
276
|
+
_CovalentSideSheetBase.prototype._sideSheetRefConstructor;
|
277
|
+
/**
|
278
|
+
* @type {?}
|
279
|
+
* @private
|
280
|
+
*/
|
281
|
+
_CovalentSideSheetBase.prototype._sideSheetContainerType;
|
282
|
+
/**
|
283
|
+
* @type {?}
|
284
|
+
* @private
|
285
|
+
*/
|
286
|
+
_CovalentSideSheetBase.prototype._sideSheetDataToken;
|
287
|
+
}
|
288
|
+
/**
|
289
|
+
* Service to open Covalent Design side-sheet.
|
290
|
+
*/
|
291
|
+
export class CovalentSideSheet extends _CovalentSideSheetBase {
|
292
|
+
/**
|
293
|
+
* @param {?} overlay
|
294
|
+
* @param {?} injector
|
295
|
+
* @param {?} defaultOptions
|
296
|
+
* @param {?} parentSideSheet
|
297
|
+
*/
|
298
|
+
constructor(overlay, injector, defaultOptions, parentSideSheet) {
|
299
|
+
super(overlay, injector, defaultOptions, parentSideSheet, CovalentSideSheetRef, CovalentSideSheetContainer, MAT_DIALOG_DATA);
|
300
|
+
}
|
301
|
+
}
|
302
|
+
CovalentSideSheet.decorators = [
|
303
|
+
{ type: Injectable }
|
304
|
+
];
|
305
|
+
/** @nocollapse */
|
306
|
+
CovalentSideSheet.ctorParameters = () => [
|
307
|
+
{ type: Overlay },
|
308
|
+
{ type: Injector },
|
309
|
+
{ type: CovalentSideSheetConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DIALOG_DEFAULT_OPTIONS,] }] },
|
310
|
+
{ type: CovalentSideSheet, decorators: [{ type: Optional }, { type: SkipSelf }] }
|
311
|
+
];
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9zaWRlLXNoZWV0LyIsInNvdXJjZXMiOlsic2lkZS1zaGVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsRUFDZCxRQUFRLEVBRVIsUUFBUSxFQUNSLFFBQVEsRUFFUixXQUFXLEVBQ1gsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFzQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQWlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFDaEgsT0FBTyxFQUFFLDBCQUEwQixFQUFtQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxPQUFPLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFHOUQsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7Ozs7OztJQVVqQyxZQUNVLFFBQWlCLEVBQ2pCLFNBQW1CLEVBQ25CLGVBQW9ELEVBQ3BELGdCQUF1RCxFQUN2RCx3QkFBeUQsRUFDekQsdUJBQWdDLEVBQ2hDLG1CQUF3QztRQU54QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQXFDO1FBQ3BELHFCQUFnQixH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YWJsZSAqL1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdEZsYWdzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBTdGF0aWNQcm92aWRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgR2xvYmFsUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTUFUX0RJQUxPR19ERUZBVUxUX09QVElPTlMsIF9NYXREaWFsb2dDb250YWluZXJCYXNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyLCBfQ292YWxlbnRTaWRlU2hlZXRDb250YWluZXJCYXNlIH0gZnJvbSAnLi9zaWRlLXNoZWV0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcblxuaW1wb3J0IHsgQ292YWxlbnRTaWRlU2hlZXRSZWYgfSBmcm9tICcuL3NpZGUtc2hlZXQtcmVmJztcbmltcG9ydCB7IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnIH0gZnJvbSAnLi9zaWRlLXNoZWV0LmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8QyBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldENvbnRhaW5lckJhc2U+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfb3BlblNpZGVTaGVldHNBdFRoaXNMZXZlbDogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZnRlck9wZW5lZEF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8Q292YWxlbnRTaWRlU2hlZXRSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBfYW5pbWF0aW9uU3RhdGVTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBkZWZhdWx0U2lkZWJhckNvbmZpZyA9IHtcbiAgICBtaW5XaWR0aDogJzQwMHB4JyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9kZWZhdWx0T3B0aW9uczogQ292YWxlbnRTaWRlU2hlZXRDb25maWcgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSBfcGFyZW50U2lkZVNoZWV0OiBfQ292YWxlbnRTaWRlU2hlZXRCYXNlPEM+IHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgX3NpZGVTaGVldFJlZkNvbnN0cnVjdG9yOiBUeXBlPENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT4+LFxuICAgIHByaXZhdGUgX3NpZGVTaGVldENvbnRhaW5lclR5cGU6IFR5cGU8Qz4sXG4gICAgcHJpdmF0ZSBfc2lkZVNoZWV0RGF0YVRva2VuOiBJbmplY3Rpb25Ub2tlbjxhbnk+LFxuICApIHt9XG5cbiAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktb3BlbiBzaWRlLXNoZWV0cy4gKi9cbiAgZ2V0IG9wZW5TaWRlU2hlZXRzKCk6IENvdmFsZW50U2lkZVNoZWV0UmVmPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudFNpZGVTaGVldCA/IHRoaXMuX3BhcmVudFNpZGVTaGVldC5vcGVuU2lkZVNoZWV0cyA6IHRoaXMuX29wZW5TaWRlU2hlZXRzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBvcGVuPFQsIEQgPSBhbnksIFIgPSBhbnk+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc/OiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZzxEPixcbiAgKTogQ292YWxlbnRTaWRlU2hlZXRSZWY8VCwgUj4ge1xuICAgIGNvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0U2lkZWJhckNvbmZpZywgLi4uY29uZmlnLCAuLi4odGhpcy5fZGVmYXVsdE9wdGlvbnMgfHwgbmV3IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnKCkpIH07XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5fY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgIGNvbnN0IHNpZGVTaGVldENvbnRhaW5lciA9IHRoaXMuX2F0dGFjaFNpZGVTaGVldENvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcpO1xuXG4gICAgY29uc3Qgc2lkZVNoZWV0UmVmID0gdGhpcy5fYXR0YWNoU2lkZVNoZWV0Q29udGVudDxULCBSPihcbiAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsXG4gICAgICBzaWRlU2hlZXRDb250YWluZXIsXG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgY29uZmlnLFxuICAgICk7XG5cbiAgICB0aGlzLm9wZW5TaWRlU2hlZXRzLnB1c2goc2lkZVNoZWV0UmVmKTtcblxuICAgIC8vIE5vdGlmeSB0aGUgc2lkZS1zaGVldCBjb250YWluZXIgdGhhdCB0aGUgY29udGVudCBoYXMgYmVlbiBhdHRhY2hlZC5cbiAgICBzaWRlU2hlZXRDb250YWluZXIuX2luaXRpYWxpemVXaXRoQXR0YWNoZWRDb250ZW50KCk7XG5cbiAgICByZXR1cm4gc2lkZVNoZWV0UmVmO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gT25seSBjbG9zZSB0aGUgc2lkZS1zaGVldHMgYXQgdGhpcyBsZXZlbCBvbiBkZXN0cm95XG4gICAgLy8gc2luY2UgdGhlIHBhcmVudCBzZXJ2aWNlIG1heSBzdGlsbCBiZSBhY3RpdmUuXG4gICAgdGhpcy5fY2xvc2VTaWRlU2hlZXRzKHRoaXMuX29wZW5TaWRlU2hlZXRzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gICAgLy8gQ2xlYW4gdXAgYW55IHN1YnNjcmlwdGlvbnMgdG8gc2lkZS1zaGVldCB0aGF0IG5ldmVyIGZpbmlzaGVkIG9wZW5pbmcuXG4gICAgaWYgKHRoaXMuX2FuaW1hdGlvblN0YXRlU3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGVTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgb2YgdGhlIGN1cnJlbnRseS1vcGVuIHNpZGUtc2hlZXRzLlxuICAgKi9cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VTaWRlU2hlZXRzKHRoaXMub3BlblNpZGVTaGVldHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlT3ZlcmxheTxUPihjb25maWcpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcGFuZWxDbGFzczogY29uZmlnLnBhbmVsQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgZGlyZWN0aW9uOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgbWluV2lkdGg6IGNvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogY29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGgsXG4gICAgfSk7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBvdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgR2xvYmFsUG9zaXRpb25TdHJhdGVneTtcbiAgICBwb3NpdGlvblN0cmF0ZWd5LnJpZ2h0KCcwcHgnKTtcblxuICAgIHJldHVybiBvdmVybGF5UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgY29udGFpbmVyIHRvIGEgc2lkZS1zaGVldHMncyBhbHJlYWR5LWNyZWF0ZWQgb3ZlcmxheS5cbiAgICogQHBhcmFtIG92ZXJsYXkgUmVmZXJlbmNlIHRvIHRoZSBzaWRlLXNoZWV0J3MgdW5kZXJseWluZyBvdmVybGF5LlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBzaWRlLXNoZWV0IGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gYSBDb21wb25lbnRSZWYgZm9yIHRoZSBhdHRhY2hlZCBjb250YWluZXIuXG4gICAqL1xuICBwcml2YXRlIF9hdHRhY2hTaWRlU2hlZXRDb250YWluZXIob3ZlcmxheTogT3ZlcmxheVJlZiwgY29uZmlnOiBDb3ZhbGVudFNpZGVTaGVldENvbmZpZyk6IEMge1xuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHVzZXJJbmplY3RvciB8fCB0aGlzLl9pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgdGhpcy5fc2lkZVNoZWV0Q29udGFpbmVyVHlwZSxcbiAgICAgIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBjb25maWcuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gb3ZlcmxheS5hdHRhY2g8Qz4oY29udGFpbmVyUG9ydGFsKTtcblxuICAgIHJldHVybiBjb250YWluZXJSZWYuaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHVzZXItcHJvdmlkZWQgY29tcG9uZW50IHRvIHRoZSBhbHJlYWR5LWNyZWF0ZWQgc2lkZSBzaGVldCBjb250YWluZXIuXG4gICAqIEBwYXJhbSBjb21wb25lbnRPclRlbXBsYXRlUmVmIFRoZSB0eXBlIG9mIGNvbXBvbmVudCBiZWluZyBsb2FkZWQgaW50byB0aGUgc2lkZS1zaGVldCxcbiAgICogICAgIG9yIGEgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBkaWFsb2dDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB3cmFwcGluZyBzaWRlLXNoZWV0IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIG92ZXJsYXlSZWYgUmVmZXJlbmNlIHRvIHRoZSBvdmVybGF5IGluIHdoaWNoIHRoZSBzaWRlLXNoZWV0IHJlc2lkZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIHNpZGUtc2hlZXQgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgQ292YWxlbnRTaWRlU2hlZXRSZWYgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcml2YXRlIF9hdHRhY2hTaWRlU2hlZXRDb250ZW50PFQsIFI+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBzaWRlU2hlZXRDb250YWluZXI6IEMsXG4gICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBjb25maWc6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICApOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxULCBSPiB7XG4gICAgLy8gQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBzaWRlLXNoZWV0IHdlJ3JlIGNyZWF0aW5nIGluIG9yZGVyIHRvIGdpdmUgdGhlIHVzZXIgYSBoYW5kbGVcbiAgICAvLyB0byBtb2RpZnkgYW5kIGNsb3NlIGl0LlxuICAgIGNvbnN0IHNpZGVTaGVldFJlZiA9IG5ldyB0aGlzLl9zaWRlU2hlZXRSZWZDb25zdHJ1Y3RvcihvdmVybGF5UmVmLCBzaWRlU2hlZXRDb250YWluZXIsIGNvbmZpZy5pZCk7XG5cbiAgICBpZiAoY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICBzaWRlU2hlZXRDb250YWluZXIuYXR0YWNoVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbDxUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCBudWxsISwgPGFueT57XG4gICAgICAgICAgJGltcGxpY2l0OiBjb25maWcuZGF0YSxcbiAgICAgICAgICBzaWRlU2hlZXRSZWYsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcjxUPihjb25maWcsIHNpZGVTaGVldFJlZiwgc2lkZVNoZWV0Q29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBzaWRlU2hlZXRDb250YWluZXIuYXR0YWNoPFQ+KFxuICAgICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLCBpbmplY3RvciksXG4gICAgICApO1xuICAgICAgc2lkZVNoZWV0UmVmLmNvbXBvbmVudEluc3RhbmNlID0gY29udGVudFJlZi5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBzaWRlU2hlZXRSZWYudXBkYXRlU2l6ZShjb25maWcud2lkdGgsIGNvbmZpZy5oZWlnaHQpO1xuXG4gICAgcmV0dXJuIHNpZGVTaGVldFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUluamVjdG9yPFQ+KFxuICAgIGNvbmZpZzogQ292YWxlbnRTaWRlU2hlZXRDb25maWcsXG4gICAgc2lkZVNoZWV0UmVmOiBDb3ZhbGVudFNpZGVTaGVldFJlZjxUPixcbiAgICBzaWRlU2hlZXRDb250YWluZXI6IEMsXG4gICk6IEluamVjdG9yIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPSBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG5cbiAgICAvLyBUaGUgc2lkZS1zaGVldCBjb250YWluZXIgc2hvdWxkIGJlIHByb3ZpZGVkIGFzIHRoZSBzaWRlLXNoZWV0IGNvbnRhaW5lciBhbmQgdGhlIHNpZGUtc2hlZXQnc1xuICAgIC8vIGNvbnRlbnQgYXJlIGNyZWF0ZWQgb3V0IG9mIHRoZSBzYW1lIGBWaWV3Q29udGFpbmVyUmVmYCBhbmQgYXMgc3VjaCwgYXJlIHNpYmxpbmdzXG4gICAgLy8gZm9yIGluamVjdG9yIHB1cnBvc2VzLiBUbyBhbGxvdyB0aGUgaGllcmFyY2h5IHRoYXQgaXMgZXhwZWN0ZWQsIHRoZSBzaWRlLXNoZWV0XG4gICAgLy8gY29udGFpbmVyIGlzIGV4cGxpY2l0bHkgcHJvdmlkZWQgaW4gdGhlIGluamVjdG9yLlxuICAgIGNvbnN0IHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcbiAgICAgIHsgcHJvdmlkZTogdGhpcy5fc2lkZVNoZWV0Q29udGFpbmVyVHlwZSwgdXNlVmFsdWU6IHNpZGVTaGVldENvbnRhaW5lciB9LFxuICAgICAgeyBwcm92aWRlOiB0aGlzLl9zaWRlU2hlZXREYXRhVG9rZW4sIHVzZVZhbHVlOiBjb25maWcuZGF0YSB9LFxuICAgICAgeyBwcm92aWRlOiB0aGlzLl9zaWRlU2hlZXRSZWZDb25zdHJ1Y3RvciwgdXNlVmFsdWU6IHNpZGVTaGVldFJlZiB9LFxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICBjb25maWcuZGlyZWN0aW9uICYmXG4gICAgICAoIXVzZXJJbmplY3RvciB8fCAhdXNlckluamVjdG9yLmdldDxEaXJlY3Rpb25hbGl0eSB8IG51bGw+KERpcmVjdGlvbmFsaXR5LCBudWxsLCBJbmplY3RGbGFncy5PcHRpb25hbCkpXG4gICAgKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICB1c2VWYWx1ZTogeyB2YWx1ZTogY29uZmlnLmRpcmVjdGlvbiwgY2hhbmdlOiBvZigpIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHsgcGFyZW50OiB1c2VySW5qZWN0b3IgfHwgdGhpcy5faW5qZWN0b3IsIHByb3ZpZGVycyB9KTtcbiAgfVxuXG4gIC8qKiBDbG9zZXMgYWxsIG9mIHRoZSBzaWRlLXNoZWV0IGluIGFuIGFycmF5LiAqL1xuICBwcml2YXRlIF9jbG9zZVNpZGVTaGVldHMoc2lkZVNoZWV0czogQ292YWxlbnRTaWRlU2hlZXRSZWY8YW55PltdKSB7XG4gICAgbGV0IGkgPSBzaWRlU2hlZXRzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHNpZGVTaGVldHNbaV0uY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJ2aWNlIHRvIG9wZW4gQ292YWxlbnQgRGVzaWduIHNpZGUtc2hlZXQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudFNpZGVTaGVldCBleHRlbmRzIF9Db3ZhbGVudFNpZGVTaGVldEJhc2U8Q292YWxlbnRTaWRlU2hlZXRDb250YWluZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RFRkFVTFRfT1BUSU9OUykgZGVmYXVsdE9wdGlvbnM6IENvdmFsZW50U2lkZVNoZWV0Q29uZmlnLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudFNpZGVTaGVldDogQ292YWxlbnRTaWRlU2hlZXQsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgb3ZlcmxheSxcbiAgICAgIGluamVjdG9yLFxuICAgICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgICBwYXJlbnRTaWRlU2hlZXQsXG4gICAgICBDb3ZhbGVudFNpZGVTaGVldFJlZixcbiAgICAgIENvdmFsZW50U2lkZVNoZWV0Q29udGFpbmVyLFxuICAgICAgTUFUX0RJQUxPR19EQVRBLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|