@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,163 @@
|
|
1
|
+
import { Component, Directive, Input, ContentChildren, forwardRef, Inject, QueryList, SecurityContext, Optional, } from '@angular/core';
|
2
|
+
import { Router } from '@angular/router';
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
4
|
+
import { Subject } from 'rxjs';
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
6
|
+
import { TdLayoutComponent } from '../layout.component';
|
7
|
+
import { tdCollapseAnimation } from '@covalent/core/common';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
import * as i1 from "@angular/router";
|
10
|
+
import * as i2 from "@angular/platform-browser";
|
11
|
+
import * as i3 from "@angular/common";
|
12
|
+
import * as i4 from "@angular/material/toolbar";
|
13
|
+
import * as i5 from "@angular/material/button";
|
14
|
+
import * as i6 from "@angular/material/icon";
|
15
|
+
import * as i7 from "../layout.component";
|
16
|
+
export class TdNavigationDrawerMenuDirective {
|
17
|
+
}
|
18
|
+
TdNavigationDrawerMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdNavigationDrawerMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
19
|
+
TdNavigationDrawerMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TdNavigationDrawerMenuDirective, selector: "[tdNavigationDrawerMenu]", ngImport: i0 });
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdNavigationDrawerMenuDirective, decorators: [{
|
21
|
+
type: Directive,
|
22
|
+
args: [{
|
23
|
+
selector: '[tdNavigationDrawerMenu]',
|
24
|
+
}]
|
25
|
+
}] });
|
26
|
+
export class TdNavigationDrawerToolbarDirective {
|
27
|
+
}
|
28
|
+
TdNavigationDrawerToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdNavigationDrawerToolbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
29
|
+
TdNavigationDrawerToolbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TdNavigationDrawerToolbarDirective, selector: "[tdNavigationDrawerToolbar]", ngImport: i0 });
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdNavigationDrawerToolbarDirective, decorators: [{
|
31
|
+
type: Directive,
|
32
|
+
args: [{
|
33
|
+
selector: '[tdNavigationDrawerToolbar]',
|
34
|
+
}]
|
35
|
+
}] });
|
36
|
+
export class TdNavigationDrawerComponent {
|
37
|
+
get menuToggled() {
|
38
|
+
return this._menuToggled;
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Checks if there is a [TdNavigationDrawerMenuDirective] has content.
|
42
|
+
*/
|
43
|
+
get isMenuAvailable() {
|
44
|
+
return this._drawerMenu ? this._drawerMenu.length > 0 : false;
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* Checks if there is a [TdNavigationDrawerToolbarDirective] has content.
|
48
|
+
*/
|
49
|
+
get isCustomToolbar() {
|
50
|
+
return this._toolbar ? this._toolbar.length > 0 : false;
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Checks if there is a background image for the toolbar.
|
54
|
+
*/
|
55
|
+
get isBackgroundAvailable() {
|
56
|
+
return !!this._backgroundImage;
|
57
|
+
}
|
58
|
+
/**
|
59
|
+
* backgroundUrl?: SafeResourceUrl
|
60
|
+
*
|
61
|
+
* image to be displayed as the background of the toolbar.
|
62
|
+
* URL used will be sanitized, but it should be always from a trusted source to avoid XSS.
|
63
|
+
*/
|
64
|
+
set backgroundUrl(backgroundUrl) {
|
65
|
+
if (backgroundUrl) {
|
66
|
+
const sanitizedUrl = this._sanitize.sanitize(SecurityContext.RESOURCE_URL, backgroundUrl);
|
67
|
+
this._backgroundImage = this._sanitize.sanitize(SecurityContext.STYLE, 'url(' + sanitizedUrl + ')');
|
68
|
+
}
|
69
|
+
}
|
70
|
+
get backgroundImage() {
|
71
|
+
return this._backgroundImage;
|
72
|
+
}
|
73
|
+
/**
|
74
|
+
* Checks if router was injected.
|
75
|
+
*/
|
76
|
+
get routerEnabled() {
|
77
|
+
return !!this._router && !!this.navigationRoute;
|
78
|
+
}
|
79
|
+
constructor(_layout, _router, _sanitize) {
|
80
|
+
this._layout = _layout;
|
81
|
+
this._router = _router;
|
82
|
+
this._sanitize = _sanitize;
|
83
|
+
this._menuToggled = false;
|
84
|
+
this._destroy$ = new Subject();
|
85
|
+
}
|
86
|
+
ngOnInit() {
|
87
|
+
this._layout.sidenav.openedChange
|
88
|
+
.pipe(takeUntil(this._destroy$))
|
89
|
+
.subscribe((opened) => {
|
90
|
+
if (!opened) {
|
91
|
+
this._menuToggled = false;
|
92
|
+
}
|
93
|
+
});
|
94
|
+
}
|
95
|
+
ngOnDestroy() {
|
96
|
+
this._destroy$.next();
|
97
|
+
}
|
98
|
+
toggleMenu() {
|
99
|
+
if (this.isMenuAvailable) {
|
100
|
+
this._menuToggled = !this._menuToggled;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
handleNavigationClick() {
|
104
|
+
if (this.routerEnabled && this.navigationRoute) {
|
105
|
+
this._router.navigateByUrl(this.navigationRoute);
|
106
|
+
this.close();
|
107
|
+
}
|
108
|
+
}
|
109
|
+
/**
|
110
|
+
* Proxy toggle method to access sidenav from outside (from td-layout template).
|
111
|
+
*/
|
112
|
+
toggle() {
|
113
|
+
return this._layout.toggle();
|
114
|
+
}
|
115
|
+
/**
|
116
|
+
* Proxy open method to access sidenav from outside (from td-layout template).
|
117
|
+
*/
|
118
|
+
open() {
|
119
|
+
return this._layout.open();
|
120
|
+
}
|
121
|
+
/**
|
122
|
+
* Proxy close method to access sidenav from outside (from td-layout template).
|
123
|
+
*/
|
124
|
+
close() {
|
125
|
+
return this._layout.close();
|
126
|
+
}
|
127
|
+
}
|
128
|
+
TdNavigationDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdNavigationDrawerComponent, deps: [{ token: forwardRef(() => TdLayoutComponent) }, { token: i1.Router, optional: true }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
129
|
+
TdNavigationDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TdNavigationDrawerComponent, selector: "td-navigation-drawer", inputs: { sidenavTitle: "sidenavTitle", icon: "icon", logo: "logo", avatar: "avatar", color: "color", navigationRoute: "navigationRoute", backgroundUrl: "backgroundUrl", name: "name", email: "email" }, queries: [{ propertyName: "_drawerMenu", predicate: TdNavigationDrawerMenuDirective, descendants: true }, { propertyName: "_toolbar", predicate: TdNavigationDrawerToolbarDirective, descendants: true }], ngImport: i0, template: "<mat-toolbar\n [color]=\"color\"\n [style.background-image]=\"backgroundImage\"\n [class.td-toolbar-background]=\"!!isBackgroundAvailable\"\n class=\"td-nagivation-drawer-toolbar\"\n>\n <ng-content select=\"[td-navigation-drawer-toolbar]\"></ng-content>\n <ng-container *ngIf=\"!isCustomToolbar\">\n <div\n *ngIf=\"icon || logo || sidenavTitle || avatar\"\n class=\"td-navigation-drawer-toolbar-content\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <img\n *ngIf=\"avatar && !logo && !icon\"\n class=\"td-nagivation-drawer-toolbar-avatar\"\n [attr.src]=\"avatar\"\n />\n <span *ngIf=\"sidenavTitle\" class=\"td-navigation-drawer-title\">{{\n sidenavTitle\n }}</span>\n </div>\n <div class=\"td-navigation-drawer-name\" *ngIf=\"email && name\">\n {{ name }}\n </div>\n <div\n class=\"td-navigation-drawer-menu-toggle\"\n href\n *ngIf=\"email || name\"\n (click)=\"toggleMenu()\"\n >\n <span class=\"td-navigation-drawer-label\">{{ email || name }}</span>\n <button\n mat-icon-button\n class=\"td-navigation-drawer-menu-button\"\n *ngIf=\"isMenuAvailable\"\n >\n <mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\n <mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\n </button>\n </div>\n </ng-container>\n</mat-toolbar>\n<div class=\"td-navigation-drawer-content\" [@tdCollapse]=\"menuToggled\">\n <ng-content></ng-content>\n</div>\n<div class=\"td-navigation-drawer-menu-content\" [@tdCollapse]=\"!menuToggled\">\n <ng-content select=\"[td-navigation-drawer-menu]\"></ng-content>\n</div>\n", styles: [":host{width:100%}:host .td-navigation-drawer-content.ng-animating,:host .td-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.td-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.td-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .td-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-nagivation-drawer-toolbar-avatar{border-radius:50%;height:60px;width:60px;margin:0 12px 12px 0}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-navigation-drawer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-menu-button{width:24px;height:24px;padding:0}:host>div{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [tdCollapseAnimation] });
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdNavigationDrawerComponent, decorators: [{
|
131
|
+
type: Component,
|
132
|
+
args: [{ selector: 'td-navigation-drawer', animations: [tdCollapseAnimation], template: "<mat-toolbar\n [color]=\"color\"\n [style.background-image]=\"backgroundImage\"\n [class.td-toolbar-background]=\"!!isBackgroundAvailable\"\n class=\"td-nagivation-drawer-toolbar\"\n>\n <ng-content select=\"[td-navigation-drawer-toolbar]\"></ng-content>\n <ng-container *ngIf=\"!isCustomToolbar\">\n <div\n *ngIf=\"icon || logo || sidenavTitle || avatar\"\n class=\"td-navigation-drawer-toolbar-content\"\n [class.cursor-pointer]=\"routerEnabled\"\n (click)=\"handleNavigationClick()\"\n >\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <mat-icon\n *ngIf=\"logo && !icon\"\n class=\"mat-icon-logo\"\n [svgIcon]=\"logo\"\n ></mat-icon>\n <img\n *ngIf=\"avatar && !logo && !icon\"\n class=\"td-nagivation-drawer-toolbar-avatar\"\n [attr.src]=\"avatar\"\n />\n <span *ngIf=\"sidenavTitle\" class=\"td-navigation-drawer-title\">{{\n sidenavTitle\n }}</span>\n </div>\n <div class=\"td-navigation-drawer-name\" *ngIf=\"email && name\">\n {{ name }}\n </div>\n <div\n class=\"td-navigation-drawer-menu-toggle\"\n href\n *ngIf=\"email || name\"\n (click)=\"toggleMenu()\"\n >\n <span class=\"td-navigation-drawer-label\">{{ email || name }}</span>\n <button\n mat-icon-button\n class=\"td-navigation-drawer-menu-button\"\n *ngIf=\"isMenuAvailable\"\n >\n <mat-icon *ngIf=\"!menuToggled\">arrow_drop_down</mat-icon>\n <mat-icon *ngIf=\"menuToggled\">arrow_drop_up</mat-icon>\n </button>\n </div>\n </ng-container>\n</mat-toolbar>\n<div class=\"td-navigation-drawer-content\" [@tdCollapse]=\"menuToggled\">\n <ng-content></ng-content>\n</div>\n<div class=\"td-navigation-drawer-menu-content\" [@tdCollapse]=\"!menuToggled\">\n <ng-content select=\"[td-navigation-drawer-menu]\"></ng-content>\n</div>\n", styles: [":host{width:100%}:host .td-navigation-drawer-content.ng-animating,:host .td-navigation-drawer-menu-content.ng-animating{overflow:hidden}:host mat-toolbar{padding:16px}:host mat-toolbar.td-toolbar-background{background-repeat:no-repeat;background-size:cover}:host mat-toolbar.td-nagivation-drawer-toolbar{flex-direction:column;height:auto!important;display:block!important}:host mat-toolbar .td-navigation-drawer-toolbar-content{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;align-content:center;max-width:100%;justify-content:flex-start}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-nagivation-drawer-toolbar-avatar{border-radius:50%;height:60px;width:60px;margin:0 12px 12px 0}:host mat-toolbar .td-navigation-drawer-toolbar-content .td-navigation-drawer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle{flex-direction:row;box-sizing:border-box;display:flex}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host mat-toolbar .td-navigation-drawer-menu-toggle .td-navigation-drawer-menu-button{width:24px;height:24px;padding:0}:host>div{overflow:hidden}\n"] }]
|
133
|
+
}], ctorParameters: function () { return [{ type: i7.TdLayoutComponent, decorators: [{
|
134
|
+
type: Inject,
|
135
|
+
args: [forwardRef(() => TdLayoutComponent)]
|
136
|
+
}] }, { type: i1.Router, decorators: [{
|
137
|
+
type: Optional
|
138
|
+
}] }, { type: i2.DomSanitizer }]; }, propDecorators: { _drawerMenu: [{
|
139
|
+
type: ContentChildren,
|
140
|
+
args: [TdNavigationDrawerMenuDirective, { descendants: true }]
|
141
|
+
}], _toolbar: [{
|
142
|
+
type: ContentChildren,
|
143
|
+
args: [TdNavigationDrawerToolbarDirective, { descendants: true }]
|
144
|
+
}], sidenavTitle: [{
|
145
|
+
type: Input
|
146
|
+
}], icon: [{
|
147
|
+
type: Input
|
148
|
+
}], logo: [{
|
149
|
+
type: Input
|
150
|
+
}], avatar: [{
|
151
|
+
type: Input
|
152
|
+
}], color: [{
|
153
|
+
type: Input
|
154
|
+
}], navigationRoute: [{
|
155
|
+
type: Input
|
156
|
+
}], backgroundUrl: [{
|
157
|
+
type: Input
|
158
|
+
}], name: [{
|
159
|
+
type: Input
|
160
|
+
}], email: [{
|
161
|
+
type: Input
|
162
|
+
}] } });
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xheW91dC9zcmMvbmF2aWdhdGlvbi1kcmF3ZXIvbmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xheW91dC9zcmMvbmF2aWdhdGlvbi1kcmF3ZXIvbmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsRUFHZixVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQWEsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUs1RCxNQUFNLE9BQU8sK0JBQStCOzs2SEFBL0IsK0JBQStCO2lIQUEvQiwrQkFBK0I7NEZBQS9CLCtCQUErQjtrQkFIM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2lCQUNyQzs7QUFNRCxNQUFNLE9BQU8sa0NBQWtDOztnSUFBbEMsa0NBQWtDO29IQUFsQyxrQ0FBa0M7NEZBQWxDLGtDQUFrQztrQkFIOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZC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O0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7eUhBckxVLDJCQUEyQixrQkFpSTVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs2R0FqSWxDLDJCQUEyQixrU0FTckIsK0JBQStCLDhEQUcvQixrQ0FBa0MsZ0RDcERyRCwyM0RBd0RBLHM0RERsQmMsQ0FBQyxtQkFBbUIsQ0FBQzs0RkFFdEIsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLHNCQUFzQixjQUdwQixDQUFDLG1CQUFtQixDQUFDOzswQkFtSTlCLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzswQkFFMUMsUUFBUTt1RUF6SFgsV0FBVztzQkFEVixlQUFlO3VCQUFDLCtCQUErQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJdkUsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGtDQUFrQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkE0QmpFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQVFHLElBQUk7c0JBQVosS0FBSztnQkFRRyxNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQU9HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBV0YsYUFBYTtzQkFIaEIsS0FBSztnQkF5QkcsSUFBSTtzQkFBWixLQUFLO2dCQVFHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBRdWVyeUxpc3QsXG4gIFNlY3VyaXR5Q29udGV4dCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNhZmVTdHlsZSwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXREcmF3ZXJUb2dnbGVSZXN1bHQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUZExheW91dENvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyB0ZENvbGxhcHNlQW5pbWF0aW9uIH0gZnJvbSAnQGNvdmFsZW50L2NvcmUvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkTmF2aWdhdGlvbkRyYXdlck1lbnVdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGROYXZpZ2F0aW9uRHJhd2VyTWVudURpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGROYXZpZ2F0aW9uRHJhd2VyVG9vbGJhcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZE5hdmlnYXRpb25EcmF3ZXJUb29sYmFyRGlyZWN0aXZlIHt9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLW5hdmlnYXRpb24tZHJhd2VyJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3RkQ29sbGFwc2VBbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBUZE5hdmlnYXRpb25EcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX21lbnVUb2dnbGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2JhY2tncm91bmRJbWFnZSE6IFNhZmVTdHlsZSB8IG51bGw7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBnZXQgbWVudVRvZ2dsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVUb2dnbGVkO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUZE5hdmlnYXRpb25EcmF3ZXJNZW51RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIF9kcmF3ZXJNZW51ITogUXVlcnlMaXN0PFRkTmF2aWdhdGlvbkRyYXdlck1lbnVEaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGROYXZpZ2F0aW9uRHJhd2VyVG9vbGJhckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBfdG9vbGJhciE6IFF1ZXJ5TGlzdDxUZE5hdmlnYXRpb25EcmF3ZXJUb29sYmFyRGlyZWN0aXZlPjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZXJlIGlzIGEgW1RkTmF2aWdhdGlvbkRyYXdlck1lbnVEaXJlY3RpdmVdIGhhcyBjb250ZW50LlxuICAgKi9cbiAgZ2V0IGlzTWVudUF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZHJhd2VyTWVudSA/IHRoaXMuX2RyYXdlck1lbnUubGVuZ3RoID4gMCA6IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGVyZSBpcyBhIFtUZE5hdmlnYXRpb25EcmF3ZXJUb29sYmFyRGlyZWN0aXZlXSBoYXMgY29udGVudC5cbiAgICovXG4gIGdldCBpc0N1c3RvbVRvb2xiYXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2xiYXIgPyB0aGlzLl90b29sYmFyLmxlbmd0aCA+IDAgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGltYWdlIGZvciB0aGUgdG9vbGJhci5cbiAgICovXG4gIGdldCBpc0JhY2tncm91bmRBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fYmFja2dyb3VuZEltYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIHNpZGVuYXZUaXRsZT86IHN0cmluZ1xuICAgKiBUaXRsZSBzZXQgaW4gc2lkZU5hdi5cbiAgICovXG4gIEBJbnB1dCgpIHNpZGVuYXZUaXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogaWNvbj86IHN0cmluZ1xuICAgKlxuICAgKiBpY29uIG5hbWUgdG8gYmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgdGl0bGVcbiAgICovXG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGxvZ28/OiBzdHJpbmdcbiAgICpcbiAgICogbG9nbyBpY29uIG5hbWUgdG8gYmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgdGl0bGUuXG4gICAqIElmIFtpY29uXSBpcyBzZXQsIHRoZW4gdGhpcyB3aWxsIG5vdCBiZSBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIGxvZ28/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGF2YXRhcj86IHN0cmluZ1xuICAgKlxuICAgKiBhdmF0YXIgdXJsIHRvIGJlIGRpc3BsYXllZCBiZWZvcmUgdGhlIHRpdGxlXG4gICAqIElmIFtpY29uXSBvciBbbG9nb10gYXJlIHNldCwgdGhlbiB0aGlzIHdpbGwgbm90IGJlIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgYXZhdGFyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb2xvcj86ICdhY2NlbnQnIHwgJ3ByaW1hcnknIHwgJ3dhcm4nXG4gICAqXG4gICAqIHRvb2xiYXIgY29sb3Igb3B0aW9uOiBwcmltYXJ5IHwgYWNjZW50IHwgd2Fybi5cbiAgICogSWYgW2NvbG9yXSBpcyBub3Qgc2V0LCBkZWZhdWx0IGlzIHVzZWQuXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcj86ICdhY2NlbnQnIHwgJ3ByaW1hcnknIHwgJ3dhcm4nO1xuXG4gIC8qKlxuICAgKiBuYXZpZ2F0aW9uUm91dGU/OiBzdHJpbmdcbiAgICpcbiAgICogb3B0aW9uIHRvIHNldCB0aGUgY29tYmluZWQgcm91dGUgZm9yIHRoZSBpY29uLCBsb2dvLCBhbmQgc2lkZW5hdlRpdGxlLlxuICAgKi9cbiAgQElucHV0KCkgbmF2aWdhdGlvblJvdXRlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBiYWNrZ3JvdW5kVXJsPzogU2FmZVJlc291cmNlVXJsXG4gICAqXG4gICAqIGltYWdlIHRvIGJlIGRpc3BsYXllZCBhcyB0aGUgYmFja2dyb3VuZCBvZiB0aGUgdG9vbGJhci5cbiAgICogVVJMIHVzZWQgd2lsbCBiZSBzYW5pdGl6ZWQsIGJ1dCBpdCBzaG91bGQgYmUgYWx3YXlzIGZyb20gYSB0cnVzdGVkIHNvdXJjZSB0byBhdm9pZCBYU1MuXG4gICAqL1xuICBASW5wdXQoKVxuICAvLyBUT0RPIEFuZ3VsYXIgY29tcGxhaW5zIHdpdGggd2FybmluZ3MgaWYgdGhpcyBpcyB0eXBlIFtTYWZlUmVzb3VyY2VVcmxdLi4gc28gd2Ugd2lsbCBtYWtlIGl0IDxhbnk+IHVudGlsIGl0cyBmaXhlZC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay9pc3N1ZXMvMjk3N1xuICBzZXQgYmFja2dyb3VuZFVybChiYWNrZ3JvdW5kVXJsOiBhbnkpIHtcbiAgICBpZiAoYmFja2dyb3VuZFVybCkge1xuICAgICAgY29uc3Qgc2FuaXRpemVkVXJsID0gdGhpcy5fc2FuaXRpemUuc2FuaXRpemUoXG4gICAgICAgIFNlY3VyaXR5Q29udGV4dC5SRVNPVVJDRV9VUkwsXG4gICAgICAgIGJhY2tncm91bmRVcmxcbiAgICAgICk7XG4gICAgICB0aGlzLl9iYWNrZ3JvdW5kSW1hZ2UgPSB0aGlzLl9zYW5pdGl6ZS5zYW5pdGl6ZShcbiAgICAgICAgU2VjdXJpdHlDb250ZXh0LlNUWUxFLFxuICAgICAgICAndXJsKCcgKyBzYW5pdGl6ZWRVcmwgKyAnKSdcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGdldCBiYWNrZ3JvdW5kSW1hZ2UoKTogU2FmZVN0eWxlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2JhY2tncm91bmRJbWFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBuYW1lPzogc3RyaW5nXG4gICAqXG4gICAqIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgbmF2aWdhdGlvbiBkcmF3ZXIgc3VibGFiZWwuXG4gICAqIGlmIFtlbWFpbF0gaXMgbm90IHNldCwgdGhlbiBbbmFtZV0gd2lsbCBiZSB0aGUgdG9nZ2xlIG1lbnUgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVtYWlsPzogc3RyaW5nXG4gICAqXG4gICAqIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgbmF2aWdhdGlvbiBkcmF3ZXIgc3VibGFiZWwgaW4gdGhlIFt0b2dnbGVdIG1lbnUgdGV4dC5cbiAgICogaWYgW2VtYWlsXSBhbmQgW25hbWVdIGFyZSBub3Qgc2V0LCB0aGVuIHRoZSB0b2dnbGUgbWVudSBpcyBub3QgcmVuZGVyZWQuXG4gICAqL1xuICBASW5wdXQoKSBlbWFpbD86IHN0cmluZztcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHJvdXRlciB3YXMgaW5qZWN0ZWQuXG4gICAqL1xuICBnZXQgcm91dGVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9yb3V0ZXIgJiYgISF0aGlzLm5hdmlnYXRpb25Sb3V0ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBUZExheW91dENvbXBvbmVudCkpXG4gICAgcHJpdmF0ZSBfbGF5b3V0OiBUZExheW91dENvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9zYW5pdGl6ZTogRG9tU2FuaXRpemVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXQuc2lkZW5hdi5vcGVuZWRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChvcGVuZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKCFvcGVuZWQpIHtcbiAgICAgICAgICB0aGlzLl9tZW51VG9nZ2xlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNNZW51QXZhaWxhYmxlKSB7XG4gICAgICB0aGlzLl9tZW51VG9nZ2xlZCA9ICF0aGlzLl9tZW51VG9nZ2xlZDtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucm91dGVyRW5hYmxlZCAmJiB0aGlzLm5hdmlnYXRpb25Sb3V0ZSkge1xuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5uYXZpZ2F0aW9uUm91dGUpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm94eSB0b2dnbGUgbWV0aG9kIHRvIGFjY2VzcyBzaWRlbmF2IGZyb20gb3V0c2lkZSAoZnJvbSB0ZC1sYXlvdXQgdGVtcGxhdGUpLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZSgpOiBQcm9taXNlPE1hdERyYXdlclRvZ2dsZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXQudG9nZ2xlKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJveHkgb3BlbiBtZXRob2QgdG8gYWNjZXNzIHNpZGVuYXYgZnJvbSBvdXRzaWRlIChmcm9tIHRkLWxheW91dCB0ZW1wbGF0ZSkuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiBQcm9taXNlPE1hdERyYXdlclRvZ2dsZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXQub3BlbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3h5IGNsb3NlIG1ldGhvZCB0byBhY2Nlc3Mgc2lkZW5hdiBmcm9tIG91dHNpZGUgKGZyb20gdGQtbGF5b3V0IHRlbXBsYXRlKS5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiBQcm9taXNlPE1hdERyYXdlclRvZ2dsZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXQuY2xvc2UoKTtcbiAgfVxufVxuIiwiPG1hdC10b29sYmFyXG4gIFtjb2xvcl09XCJjb2xvclwiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiXG4gIFtjbGFzcy50ZC10b29sYmFyLWJhY2tncm91bmRdPVwiISFpc0JhY2tncm91bmRBdmFpbGFibGVcIlxuICBjbGFzcz1cInRkLW5hZ2l2YXRpb24tZHJhd2VyLXRvb2xiYXJcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGQtbmF2aWdhdGlvbi1kcmF3ZXItdG9vbGJhcl1cIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNDdXN0b21Ub29sYmFyXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJpY29uIHx8IGxvZ28gfHwgc2lkZW5hdlRpdGxlIHx8IGF2YXRhclwiXG4gICAgICBjbGFzcz1cInRkLW5hdmlnYXRpb24tZHJhd2VyLXRvb2xiYXItY29udGVudFwiXG4gICAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwicm91dGVyRW5hYmxlZFwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICAqbmdJZj1cImxvZ28gJiYgIWljb25cIlxuICAgICAgICBjbGFzcz1cIm1hdC1pY29uLWxvZ29cIlxuICAgICAgICBbc3ZnSWNvbl09XCJsb2dvXCJcbiAgICAgID48L21hdC1pY29uPlxuICAgICAgPGltZ1xuICAgICAgICAqbmdJZj1cImF2YXRhciAmJiAhbG9nbyAmJiAhaWNvblwiXG4gICAgICAgIGNsYXNzPVwidGQtbmFnaXZhdGlvbi1kcmF3ZXItdG9vbGJhci1hdmF0YXJcIlxuICAgICAgICBbYXR0ci5zcmNdPVwiYXZhdGFyXCJcbiAgICAgIC8+XG4gICAgICA8c3BhbiAqbmdJZj1cInNpZGVuYXZUaXRsZVwiIGNsYXNzPVwidGQtbmF2aWdhdGlvbi1kcmF3ZXItdGl0bGVcIj57e1xuICAgICAgICBzaWRlbmF2VGl0bGVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0ZC1uYXZpZ2F0aW9uLWRyYXdlci1uYW1lXCIgKm5nSWY9XCJlbWFpbCAmJiBuYW1lXCI+XG4gICAgICB7eyBuYW1lIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0ZC1uYXZpZ2F0aW9uLWRyYXdlci1tZW51LXRvZ2dsZVwiXG4gICAgICBocmVmXG4gICAgICAqbmdJZj1cImVtYWlsIHx8IG5hbWVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZC1uYXZpZ2F0aW9uLWRyYXdlci1sYWJlbFwiPnt7IGVtYWlsIHx8IG5hbWUgfX08L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBjbGFzcz1cInRkLW5hdmlnYXRpb24tZHJhd2VyLW1lbnUtYnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCJpc01lbnVBdmFpbGFibGVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhbWVudVRvZ2dsZWRcIj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJtZW51VG9nZ2xlZFwiPmFycm93X2Ryb3BfdXA8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9tYXQtdG9vbGJhcj5cbjxkaXYgY2xhc3M9XCJ0ZC1uYXZpZ2F0aW9uLWRyYXdlci1jb250ZW50XCIgW0B0ZENvbGxhcHNlXT1cIm1lbnVUb2dnbGVkXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRkLW5hdmlnYXRpb24tZHJhd2VyLW1lbnUtY29udGVudFwiIFtAdGRDb2xsYXBzZV09XCIhbWVudVRvZ2dsZWRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RkLW5hdmlnYXRpb24tZHJhd2VyLW1lbnVdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
@@ -0,0 +1,126 @@
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
2
|
+
import { ViewContainerRef, TemplateRef } from '@angular/core';
|
3
|
+
import { LoadingType, LoadingMode, LoadingStrategy, } from '../loading.component';
|
4
|
+
import { TdLoadingService } from '../services/loading.service';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "../services/loading.service";
|
7
|
+
/**
|
8
|
+
* Context class for variable reference
|
9
|
+
*/
|
10
|
+
export class TdLoadingContext {
|
11
|
+
constructor() {
|
12
|
+
this.$implicit = undefined;
|
13
|
+
this.tdLoading = undefined;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
// Constant for generation of the id for the next component
|
17
|
+
let TD_LOADING_NEXT_ID = 0;
|
18
|
+
export class TdLoadingDirective {
|
19
|
+
/**
|
20
|
+
* tdLoadingUntil?: any
|
21
|
+
* If its null, undefined or false it will be used to register requests to the mask.
|
22
|
+
* Else if its any value that can be resolved as true, it will resolve the mask.
|
23
|
+
* [name] is optional when using [until], but can still be used to register/resolve it manually.
|
24
|
+
*/
|
25
|
+
set until(until) {
|
26
|
+
if (!this.name) {
|
27
|
+
this.name = 'td-loading-until-' + TD_LOADING_NEXT_ID++;
|
28
|
+
}
|
29
|
+
this._context.$implicit = this._context.tdLoading = until;
|
30
|
+
if (!until) {
|
31
|
+
this._loadingService.register(this.name);
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
this._loadingService.resolveAll(this.name);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
constructor(_viewContainerRef, _templateRef, _loadingService) {
|
38
|
+
this._viewContainerRef = _viewContainerRef;
|
39
|
+
this._templateRef = _templateRef;
|
40
|
+
this._loadingService = _loadingService;
|
41
|
+
this._context = new TdLoadingContext();
|
42
|
+
/**
|
43
|
+
* tdLoadingType?: LoadingType or ['linear' | 'circular']
|
44
|
+
* Sets the type of loading mask depending on value.
|
45
|
+
* Defaults to [LoadingType.Circular | 'circular'].
|
46
|
+
*/
|
47
|
+
this.type = LoadingType.Circular;
|
48
|
+
/**
|
49
|
+
* tdLoadingMode?: LoadingMode or ['determinate' | 'indeterminate']
|
50
|
+
* Sets the mode of loading mask depending on value.
|
51
|
+
* Defaults to [LoadingMode.Indeterminate | 'indeterminate'].
|
52
|
+
*/
|
53
|
+
this.mode = LoadingMode.Indeterminate;
|
54
|
+
/**
|
55
|
+
* tdLoadingStrategy?: LoadingStrategy or ['replace' | 'overlay']
|
56
|
+
* Sets the strategy of loading mask depending on value.
|
57
|
+
* Defaults to [LoadingMode.Replace | 'replace'].
|
58
|
+
*/
|
59
|
+
this.strategy = LoadingStrategy.Replace;
|
60
|
+
/**
|
61
|
+
* tdLoadingColor?: "primary" | "accent" | "warn"
|
62
|
+
* Sets the theme color of the loading component. Defaults to "primary"
|
63
|
+
*/
|
64
|
+
this.color = 'primary';
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Registers component in the DOM, so it will be available when calling resolve/register.
|
68
|
+
*/
|
69
|
+
ngOnInit() {
|
70
|
+
this._registerComponent();
|
71
|
+
}
|
72
|
+
/**
|
73
|
+
* Remove component when directive is destroyed.
|
74
|
+
*/
|
75
|
+
ngOnDestroy() {
|
76
|
+
this._loadingService.removeComponent(this.name);
|
77
|
+
this._loadingRef = undefined;
|
78
|
+
}
|
79
|
+
/**
|
80
|
+
* Creates [TdLoadingComponent] and attaches it to this directive's [ViewContainerRef].
|
81
|
+
* Passes this directive's [TemplateRef] to modify DOM depending on loading `strategy`.
|
82
|
+
*/
|
83
|
+
_registerComponent() {
|
84
|
+
if (!this.name) {
|
85
|
+
throw new Error('Name is needed to register loading directive');
|
86
|
+
}
|
87
|
+
// Check if `TdLoadingComponent` has been created before trying to add one again.
|
88
|
+
// There is a weird edge case when using `[routerLinkActive]` that calls the `ngOnInit` twice in a row
|
89
|
+
if (!this._loadingRef) {
|
90
|
+
this._loadingRef = this._loadingService.createComponent({
|
91
|
+
name: this.name,
|
92
|
+
type: this.type,
|
93
|
+
mode: this.mode,
|
94
|
+
color: this.color,
|
95
|
+
strategy: this.strategy,
|
96
|
+
}, this._viewContainerRef, this._templateRef, this._context);
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
TdLoadingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdLoadingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1.TdLoadingService }], target: i0.ɵɵFactoryTarget.Directive });
|
101
|
+
TdLoadingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TdLoadingDirective, selector: "[tdLoading]", inputs: { name: ["tdLoading", "name"], until: ["tdLoadingUntil", "until"], type: ["tdLoadingType", "type"], mode: ["tdLoadingMode", "mode"], strategy: ["tdLoadingStrategy", "strategy"], color: ["tdLoadingColor", "color"] }, ngImport: i0 });
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdLoadingDirective, decorators: [{
|
103
|
+
type: Directive,
|
104
|
+
args: [{
|
105
|
+
selector: '[tdLoading]',
|
106
|
+
}]
|
107
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i1.TdLoadingService }]; }, propDecorators: { name: [{
|
108
|
+
type: Input,
|
109
|
+
args: ['tdLoading']
|
110
|
+
}], until: [{
|
111
|
+
type: Input,
|
112
|
+
args: ['tdLoadingUntil']
|
113
|
+
}], type: [{
|
114
|
+
type: Input,
|
115
|
+
args: ['tdLoadingType']
|
116
|
+
}], mode: [{
|
117
|
+
type: Input,
|
118
|
+
args: ['tdLoadingMode']
|
119
|
+
}], strategy: [{
|
120
|
+
type: Input,
|
121
|
+
args: ['tdLoadingStrategy']
|
122
|
+
}], color: [{
|
123
|
+
type: Input,
|
124
|
+
args: ['tdLoadingColor']
|
125
|
+
}] } });
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9hZGluZy9zcmMvZGlyZWN0aXZlcy9sb2FkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsV0FBVyxFQUNYLFdBQVcsRUFDWCxlQUFlLEdBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUcvRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFDUyxjQUFTLEdBQVEsU0FBUyxDQUFDO1FBQzNCLGNBQVMsR0FBUSxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUFBO0FBRUQsMkRBQTJEO0FBQzNELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBSzNCLE1BQU0sT0FBTyxrQkFBa0I7SUFXN0I7Ozs7O09BS0c7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFnQ0QsWUFDVSxpQkFBbUMsRUFDbkMsWUFBMkMsRUFDM0MsZUFBaUM7UUFGakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0Msb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBOURuQyxhQUFRLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQTZCNUQ7Ozs7V0FJRztRQUVILFNBQUksR0FBZ0IsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUV6Qzs7OztXQUlHO1FBQ3FCLFNBQUksR0FBZ0IsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUV0RTs7OztXQUlHO1FBRUgsYUFBUSxHQUNOLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFFMUI7OztXQUdHO1FBQ3NCLFVBQUssR0FBa0MsU0FBUyxDQUFDO0lBTXZFLENBQUM7SUFFSjs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7U0FDakU7UUFDRCxpRkFBaUY7UUFDakYsc0dBQXNHO1FBQ3RHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQ3JEO2dCQUNFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLEVBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7U0FDSDtJQUNILENBQUM7O2dIQXpHVSxrQkFBa0I7b0dBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnS0FVQyxJQUFJO3NCQURILEtBQUs7dUJBQUMsV0FBVztnQkFVZCxLQUFLO3NCQURSLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQW1CdkIsSUFBSTtzQkFESCxLQUFLO3VCQUFDLGVBQWU7Z0JBUUUsSUFBSTtzQkFBM0IsS0FBSzt1QkFBQyxlQUFlO2dCQVF0QixRQUFRO3NCQURQLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVFELEtBQUs7c0JBQTdCLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIExvYWRpbmdUeXBlLFxuICBMb2FkaW5nTW9kZSxcbiAgTG9hZGluZ1N0cmF0ZWd5LFxufSBmcm9tICcuLi9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElMb2FkaW5nUmVmIH0gZnJvbSAnLi4vc2VydmljZXMvbG9hZGluZy5mYWN0b3J5JztcblxuLyoqXG4gKiBDb250ZXh0IGNsYXNzIGZvciB2YXJpYWJsZSByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGNsYXNzIFRkTG9hZGluZ0NvbnRleHQge1xuICBwdWJsaWMgJGltcGxpY2l0OiBhbnkgPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyB0ZExvYWRpbmc6IGFueSA9IHVuZGVmaW5lZDtcbn1cblxuLy8gQ29uc3RhbnQgZm9yIGdlbmVyYXRpb24gb2YgdGhlIGlkIGZvciB0aGUgbmV4dCBjb21wb25lbnRcbmxldCBURF9MT0FESU5HX05FWFRfSUQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGRMb2FkaW5nXScsXG59KVxuZXhwb3J0IGNsYXNzIFRkTG9hZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29udGV4dDogVGRMb2FkaW5nQ29udGV4dCA9IG5ldyBUZExvYWRpbmdDb250ZXh0KCk7XG4gIHByaXZhdGUgX2xvYWRpbmdSZWY/OiBJTG9hZGluZ1JlZjtcblxuICAvKipcbiAgICogdGRMb2FkaW5nOiBzdHJpbmdcbiAgICogTmFtZSByZWZlcmVuY2Ugb2YgdGhlIGxvYWRpbmcgbWFzaywgdXNlZCB0byByZWdpc3Rlci9yZXNvbHZlIHJlcXVlc3RzIHRvIHRoZSBtYXNrLlxuICAgKi9cbiAgQElucHV0KCd0ZExvYWRpbmcnKVxuICBuYW1lITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0ZExvYWRpbmdVbnRpbD86IGFueVxuICAgKiBJZiBpdHMgbnVsbCwgdW5kZWZpbmVkIG9yIGZhbHNlIGl0IHdpbGwgYmUgdXNlZCB0byByZWdpc3RlciByZXF1ZXN0cyB0byB0aGUgbWFzay5cbiAgICogRWxzZSBpZiBpdHMgYW55IHZhbHVlIHRoYXQgY2FuIGJlIHJlc29sdmVkIGFzIHRydWUsIGl0IHdpbGwgcmVzb2x2ZSB0aGUgbWFzay5cbiAgICogW25hbWVdIGlzIG9wdGlvbmFsIHdoZW4gdXNpbmcgW3VudGlsXSwgYnV0IGNhbiBzdGlsbCBiZSB1c2VkIHRvIHJlZ2lzdGVyL3Jlc29sdmUgaXQgbWFudWFsbHkuXG4gICAqL1xuICBASW5wdXQoJ3RkTG9hZGluZ1VudGlsJylcbiAgc2V0IHVudGlsKHVudGlsOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhpcy5uYW1lID0gJ3RkLWxvYWRpbmctdW50aWwtJyArIFREX0xPQURJTkdfTkVYVF9JRCsrO1xuICAgIH1cbiAgICB0aGlzLl9jb250ZXh0LiRpbXBsaWNpdCA9IHRoaXMuX2NvbnRleHQudGRMb2FkaW5nID0gdW50aWw7XG4gICAgaWYgKCF1bnRpbCkge1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UucmVnaXN0ZXIodGhpcy5uYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UucmVzb2x2ZUFsbCh0aGlzLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0ZExvYWRpbmdUeXBlPzogTG9hZGluZ1R5cGUgb3IgWydsaW5lYXInIHwgJ2NpcmN1bGFyJ11cbiAgICogU2V0cyB0aGUgdHlwZSBvZiBsb2FkaW5nIG1hc2sgZGVwZW5kaW5nIG9uIHZhbHVlLlxuICAgKiBEZWZhdWx0cyB0byBbTG9hZGluZ1R5cGUuQ2lyY3VsYXIgfCAnY2lyY3VsYXInXS5cbiAgICovXG4gIEBJbnB1dCgndGRMb2FkaW5nVHlwZScpXG4gIHR5cGU6IExvYWRpbmdUeXBlID0gTG9hZGluZ1R5cGUuQ2lyY3VsYXI7XG5cbiAgLyoqXG4gICAqIHRkTG9hZGluZ01vZGU/OiBMb2FkaW5nTW9kZSBvciBbJ2RldGVybWluYXRlJyB8ICdpbmRldGVybWluYXRlJ11cbiAgICogU2V0cyB0aGUgbW9kZSBvZiBsb2FkaW5nIG1hc2sgZGVwZW5kaW5nIG9uIHZhbHVlLlxuICAgKiBEZWZhdWx0cyB0byBbTG9hZGluZ01vZGUuSW5kZXRlcm1pbmF0ZSB8ICdpbmRldGVybWluYXRlJ10uXG4gICAqL1xuICBASW5wdXQoJ3RkTG9hZGluZ01vZGUnKSBtb2RlOiBMb2FkaW5nTW9kZSA9IExvYWRpbmdNb2RlLkluZGV0ZXJtaW5hdGU7XG5cbiAgLyoqXG4gICAqIHRkTG9hZGluZ1N0cmF0ZWd5PzogTG9hZGluZ1N0cmF0ZWd5IG9yIFsncmVwbGFjZScgfCAnb3ZlcmxheSddXG4gICAqIFNldHMgdGhlIHN0cmF0ZWd5IG9mIGxvYWRpbmcgbWFzayBkZXBlbmRpbmcgb24gdmFsdWUuXG4gICAqIERlZmF1bHRzIHRvIFtMb2FkaW5nTW9kZS5SZXBsYWNlIHwgJ3JlcGxhY2UnXS5cbiAgICovXG4gIEBJbnB1dCgndGRMb2FkaW5nU3RyYXRlZ3knKVxuICBzdHJhdGVneTogTG9hZGluZ1N0cmF0ZWd5Lk92ZXJsYXkgfCBMb2FkaW5nU3RyYXRlZ3kuUmVwbGFjZSA9XG4gICAgTG9hZGluZ1N0cmF0ZWd5LlJlcGxhY2U7XG5cbiAgLyoqXG4gICAqIHRkTG9hZGluZ0NvbG9yPzogXCJwcmltYXJ5XCIgfCBcImFjY2VudFwiIHwgXCJ3YXJuXCJcbiAgICogU2V0cyB0aGUgdGhlbWUgY29sb3Igb2YgdGhlIGxvYWRpbmcgY29tcG9uZW50LiBEZWZhdWx0cyB0byBcInByaW1hcnlcIlxuICAgKi9cbiAgQElucHV0KCd0ZExvYWRpbmdDb2xvcicpIGNvbG9yOiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJyA9ICdwcmltYXJ5JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgX3RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxUZExvYWRpbmdDb250ZXh0PixcbiAgICBwcml2YXRlIF9sb2FkaW5nU2VydmljZTogVGRMb2FkaW5nU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBjb21wb25lbnQgaW4gdGhlIERPTSwgc28gaXQgd2lsbCBiZSBhdmFpbGFibGUgd2hlbiBjYWxsaW5nIHJlc29sdmUvcmVnaXN0ZXIuXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWdpc3RlckNvbXBvbmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBjb21wb25lbnQgd2hlbiBkaXJlY3RpdmUgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMubmFtZSk7XG4gICAgdGhpcy5fbG9hZGluZ1JlZiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIFtUZExvYWRpbmdDb21wb25lbnRdIGFuZCBhdHRhY2hlcyBpdCB0byB0aGlzIGRpcmVjdGl2ZSdzIFtWaWV3Q29udGFpbmVyUmVmXS5cbiAgICogUGFzc2VzIHRoaXMgZGlyZWN0aXZlJ3MgW1RlbXBsYXRlUmVmXSB0byBtb2RpZnkgRE9NIGRlcGVuZGluZyBvbiBsb2FkaW5nIGBzdHJhdGVneWAuXG4gICAqL1xuICBwcml2YXRlIF9yZWdpc3RlckNvbXBvbmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOYW1lIGlzIG5lZWRlZCB0byByZWdpc3RlciBsb2FkaW5nIGRpcmVjdGl2ZScpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiBgVGRMb2FkaW5nQ29tcG9uZW50YCBoYXMgYmVlbiBjcmVhdGVkIGJlZm9yZSB0cnlpbmcgdG8gYWRkIG9uZSBhZ2Fpbi5cbiAgICAvLyBUaGVyZSBpcyBhIHdlaXJkIGVkZ2UgY2FzZSB3aGVuIHVzaW5nIGBbcm91dGVyTGlua0FjdGl2ZV1gIHRoYXQgY2FsbHMgdGhlIGBuZ09uSW5pdGAgdHdpY2UgaW4gYSByb3dcbiAgICBpZiAoIXRoaXMuX2xvYWRpbmdSZWYpIHtcbiAgICAgIHRoaXMuX2xvYWRpbmdSZWYgPSB0aGlzLl9sb2FkaW5nU2VydmljZS5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICBjb2xvcjogdGhpcy5jb2xvcixcbiAgICAgICAgICBzdHJhdGVneTogdGhpcy5zdHJhdGVneSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgdGhpcy5fdGVtcGxhdGVSZWYsXG4gICAgICAgIHRoaXMuX2NvbnRleHRcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -0,0 +1,187 @@
|
|
1
|
+
import { Component, ChangeDetectorRef, ElementRef, } from '@angular/core';
|
2
|
+
import { tdFadeInOutAnimation } from '@covalent/core/common';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/common";
|
5
|
+
import * as i2 from "@angular/material/progress-bar";
|
6
|
+
import * as i3 from "@angular/material/progress-spinner";
|
7
|
+
import * as i4 from "@angular/cdk/portal";
|
8
|
+
export var LoadingType;
|
9
|
+
(function (LoadingType) {
|
10
|
+
LoadingType["Circular"] = "circular";
|
11
|
+
LoadingType["Linear"] = "linear";
|
12
|
+
})(LoadingType || (LoadingType = {}));
|
13
|
+
export var LoadingMode;
|
14
|
+
(function (LoadingMode) {
|
15
|
+
LoadingMode["Determinate"] = "determinate";
|
16
|
+
LoadingMode["Indeterminate"] = "indeterminate";
|
17
|
+
})(LoadingMode || (LoadingMode = {}));
|
18
|
+
export var LoadingStrategy;
|
19
|
+
(function (LoadingStrategy) {
|
20
|
+
LoadingStrategy["Overlay"] = "overlay";
|
21
|
+
LoadingStrategy["Replace"] = "replace";
|
22
|
+
})(LoadingStrategy || (LoadingStrategy = {}));
|
23
|
+
export var LoadingStyle;
|
24
|
+
(function (LoadingStyle) {
|
25
|
+
LoadingStyle["FullScreen"] = "fullscreen";
|
26
|
+
LoadingStyle["Overlay"] = "overlay";
|
27
|
+
LoadingStyle["None"] = "none";
|
28
|
+
})(LoadingStyle || (LoadingStyle = {}));
|
29
|
+
export const TD_CIRCLE_DIAMETER = 40;
|
30
|
+
export class TdLoadingComponent {
|
31
|
+
/**
|
32
|
+
* Sets mode of [TdLoadingComponent] to LoadingMode.Determinate or LoadingMode.Indeterminate
|
33
|
+
*/
|
34
|
+
set mode(mode) {
|
35
|
+
this._defaultMode = mode;
|
36
|
+
}
|
37
|
+
get mode() {
|
38
|
+
return this._mode;
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Sets value of [TdLoadingComponent] if mode is 'LoadingMode.Determinate'
|
42
|
+
*/
|
43
|
+
set value(value) {
|
44
|
+
this._value = value;
|
45
|
+
// Check for changes for `OnPush` change detection
|
46
|
+
this._changeDetectorRef.markForCheck();
|
47
|
+
}
|
48
|
+
get value() {
|
49
|
+
return this._value;
|
50
|
+
}
|
51
|
+
constructor(_elementRef, _changeDetectorRef) {
|
52
|
+
this._elementRef = _elementRef;
|
53
|
+
this._changeDetectorRef = _changeDetectorRef;
|
54
|
+
this._mode = LoadingMode.Indeterminate;
|
55
|
+
this._defaultMode = LoadingMode.Indeterminate;
|
56
|
+
this._value = 0;
|
57
|
+
this._circleDiameter = TD_CIRCLE_DIAMETER;
|
58
|
+
/**
|
59
|
+
* Flag for animation
|
60
|
+
*/
|
61
|
+
this.animation = false;
|
62
|
+
this.style = LoadingStyle.None;
|
63
|
+
/**
|
64
|
+
* height: number
|
65
|
+
* Sets height of [TdLoadingComponent].
|
66
|
+
*/
|
67
|
+
this.height = 100;
|
68
|
+
/**
|
69
|
+
* type: LoadingType
|
70
|
+
* Sets type of [TdLoadingComponent] rendered.
|
71
|
+
*/
|
72
|
+
this.type = LoadingType.Circular;
|
73
|
+
/**
|
74
|
+
* color: primary' | 'accent' | 'warn'
|
75
|
+
* Sets theme color of [TdLoadingComponent] rendered.
|
76
|
+
*/
|
77
|
+
this.color = 'primary';
|
78
|
+
}
|
79
|
+
ngDoCheck() {
|
80
|
+
// When overlay is used and the host width has a value greater than 1px
|
81
|
+
// set the circle diameter when possible incase the loading component was rendered in a hidden state
|
82
|
+
if (this.isOverlay() && this._hostHeight() > 1 && this.animation) {
|
83
|
+
this._setCircleDiameter();
|
84
|
+
this._changeDetectorRef.markForCheck();
|
85
|
+
}
|
86
|
+
}
|
87
|
+
getHeight() {
|
88
|
+
// Ignore height if style is `overlay` or `fullscreen`.
|
89
|
+
// Add height if child elements have a height and style is `none`, else return default height.
|
90
|
+
if (this.isOverlay() || this.isFullScreen()) {
|
91
|
+
return undefined;
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
return this.height ? `${this.height}px` : '150px';
|
95
|
+
}
|
96
|
+
}
|
97
|
+
getCircleDiameter() {
|
98
|
+
return this._circleDiameter;
|
99
|
+
}
|
100
|
+
getCircleStrokeWidth() {
|
101
|
+
// we calculate the stroke width by setting it as 10% of its diameter
|
102
|
+
const strokeWidth = this.getCircleDiameter() / 10;
|
103
|
+
return Math.abs(strokeWidth);
|
104
|
+
}
|
105
|
+
isCircular() {
|
106
|
+
return this.type === LoadingType.Circular;
|
107
|
+
}
|
108
|
+
isLinear() {
|
109
|
+
return this.type === LoadingType.Linear;
|
110
|
+
}
|
111
|
+
isFullScreen() {
|
112
|
+
return this.style === LoadingStyle.FullScreen;
|
113
|
+
}
|
114
|
+
isOverlay() {
|
115
|
+
return this.style === LoadingStyle.Overlay;
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* Starts in animation and returns an observable for completition event.
|
119
|
+
*/
|
120
|
+
show() {
|
121
|
+
/* need to switch back to the selected mode, so we have saved it in another variable
|
122
|
+
* and then recover it. (issue with protractor)
|
123
|
+
*/
|
124
|
+
this._mode = this._defaultMode;
|
125
|
+
// Set values before the animations starts
|
126
|
+
this._setCircleDiameter();
|
127
|
+
// Check for changes for `OnPush` change detection
|
128
|
+
this.animation = true;
|
129
|
+
this._changeDetectorRef.markForCheck();
|
130
|
+
}
|
131
|
+
/**
|
132
|
+
* Starts out animation and returns an observable for completition event.
|
133
|
+
*/
|
134
|
+
hide() {
|
135
|
+
this.animation = false;
|
136
|
+
/* need to switch back and forth from determinate/indeterminate so the setInterval()
|
137
|
+
* inside mat-progress-spinner stops and protractor doesnt timeout waiting to sync.
|
138
|
+
*/
|
139
|
+
this._mode = LoadingMode.Determinate;
|
140
|
+
// Check for changes for `OnPush` change detection
|
141
|
+
/* little hack to reset the loader value and animation before removing it from DOM
|
142
|
+
* else, the loader will appear with prev value when its registered again
|
143
|
+
* and will do an animation going prev value to 0.
|
144
|
+
*/
|
145
|
+
this.value = 0;
|
146
|
+
// Check for changes for `OnPush` change detection
|
147
|
+
this._changeDetectorRef.markForCheck();
|
148
|
+
}
|
149
|
+
/**
|
150
|
+
* Calculate the proper diameter for the circle and set it
|
151
|
+
*/
|
152
|
+
_setCircleDiameter() {
|
153
|
+
// we set a default diameter of 100 since this is the default in material
|
154
|
+
let diameter = TD_CIRCLE_DIAMETER;
|
155
|
+
// if height is provided, then we take that as diameter
|
156
|
+
if (this.height) {
|
157
|
+
diameter = this.height;
|
158
|
+
// else if its not provided, then we take the host height
|
159
|
+
}
|
160
|
+
else if (this.height === undefined) {
|
161
|
+
diameter = this._hostHeight();
|
162
|
+
}
|
163
|
+
// if the diameter is over TD_CIRCLE_DIAMETER, we set TD_CIRCLE_DIAMETER
|
164
|
+
if (diameter <= TD_CIRCLE_DIAMETER) {
|
165
|
+
this._circleDiameter = Math.floor(diameter);
|
166
|
+
}
|
167
|
+
else {
|
168
|
+
this._circleDiameter = TD_CIRCLE_DIAMETER;
|
169
|
+
}
|
170
|
+
}
|
171
|
+
/**
|
172
|
+
* Returns the host height of the loading component
|
173
|
+
*/
|
174
|
+
_hostHeight() {
|
175
|
+
if (this._elementRef.nativeElement) {
|
176
|
+
return (this._elementRef.nativeElement).getBoundingClientRect().height;
|
177
|
+
}
|
178
|
+
return 0;
|
179
|
+
}
|
180
|
+
}
|
181
|
+
TdLoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdLoadingComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
182
|
+
TdLoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TdLoadingComponent, selector: "td-loading", ngImport: i0, template: "<div\n class=\"td-loading-wrapper\"\n [style.min-height]=\"getHeight()\"\n [class.td-overlay-circular]=\"(isOverlay() || isFullScreen()) && !isLinear()\"\n [class.td-overlay]=\"isOverlay() || isFullScreen()\"\n [class.td-fullscreen]=\"isFullScreen()\"\n>\n <div\n [@tdFadeInOut]=\"animation\"\n [style.min-height]=\"getHeight()\"\n class=\"td-loading\"\n >\n <mat-progress-spinner\n *ngIf=\"isCircular()\"\n [mode]=\"mode\"\n [value]=\"value\"\n [color]=\"color\"\n [diameter]=\"getCircleDiameter()\"\n [strokeWidth]=\"getCircleStrokeWidth()\"\n ></mat-progress-spinner>\n <mat-progress-bar\n *ngIf=\"isLinear()\"\n [mode]=\"mode\"\n [value]=\"value\"\n [color]=\"color\"\n ></mat-progress-bar>\n </div>\n <ng-template [cdkPortalOutlet]=\"content\"></ng-template>\n</div>\n", styles: [".td-loading-wrapper{position:relative;display:block}.td-loading-wrapper.td-fullscreen{position:inherit}.td-loading-wrapper .td-loading{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;align-content:center;max-width:100%;justify-content:center;flex:1}.td-loading-wrapper.td-overlay .td-loading{position:absolute;margin:0;top:0;left:0;right:0;z-index:1000}.td-loading-wrapper.td-overlay .td-loading mat-progress-bar{position:absolute;top:0;left:0;right:0}.td-loading-wrapper.td-overlay-circular .td-loading{bottom:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [tdFadeInOutAnimation] });
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TdLoadingComponent, decorators: [{
|
184
|
+
type: Component,
|
185
|
+
args: [{ selector: 'td-loading', animations: [tdFadeInOutAnimation], template: "<div\n class=\"td-loading-wrapper\"\n [style.min-height]=\"getHeight()\"\n [class.td-overlay-circular]=\"(isOverlay() || isFullScreen()) && !isLinear()\"\n [class.td-overlay]=\"isOverlay() || isFullScreen()\"\n [class.td-fullscreen]=\"isFullScreen()\"\n>\n <div\n [@tdFadeInOut]=\"animation\"\n [style.min-height]=\"getHeight()\"\n class=\"td-loading\"\n >\n <mat-progress-spinner\n *ngIf=\"isCircular()\"\n [mode]=\"mode\"\n [value]=\"value\"\n [color]=\"color\"\n [diameter]=\"getCircleDiameter()\"\n [strokeWidth]=\"getCircleStrokeWidth()\"\n ></mat-progress-spinner>\n <mat-progress-bar\n *ngIf=\"isLinear()\"\n [mode]=\"mode\"\n [value]=\"value\"\n [color]=\"color\"\n ></mat-progress-bar>\n </div>\n <ng-template [cdkPortalOutlet]=\"content\"></ng-template>\n</div>\n", styles: [".td-loading-wrapper{position:relative;display:block}.td-loading-wrapper.td-fullscreen{position:inherit}.td-loading-wrapper .td-loading{box-sizing:border-box;display:flex;flex-direction:row;align-items:center;align-content:center;max-width:100%;justify-content:center;flex:1}.td-loading-wrapper.td-overlay .td-loading{position:absolute;margin:0;top:0;left:0;right:0;z-index:1000}.td-loading-wrapper.td-overlay .td-loading mat-progress-bar{position:absolute;top:0;left:0;right:0}.td-loading-wrapper.td-overlay-circular .td-loading{bottom:0}\n"] }]
|
186
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9hZGluZy9zcmMvbG9hZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9hZGluZy9zcmMvbG9hZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUc3RCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLG9DQUFxQixDQUFBO0lBQ3JCLGdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsMENBQTJCLENBQUE7SUFDM0IsOENBQStCLENBQUE7QUFDakMsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6QixzQ0FBbUIsQ0FBQTtJQUNuQixzQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLHlDQUF5QixDQUFBO0lBQ3pCLG1DQUFtQixDQUFBO0lBQ25CLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsWUFBWSxLQUFaLFlBQVksUUFJdkI7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFRckMsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0I7O09BRUc7SUFDSCxJQUFJLElBQUksQ0FB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QUNuQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Z0hBN0tVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLGtEQ3RDL0IsdTFCQTZCQSw2c0NET2MsQ0FBQyxvQkFBb0IsQ0FBQzs0RkFFdkIsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLFlBQVksY0FHVixDQUFDLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbiAgRG9DaGVjayxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0ZEZhZGVJbk91dEFuaW1hdGlvbiB9IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5leHBvcnQgZW51bSBMb2FkaW5nVHlwZSB7XG4gIENpcmN1bGFyID0gJ2NpcmN1bGFyJyxcbiAgTGluZWFyID0gJ2xpbmVhcicsXG59XG5cbmV4cG9ydCBlbnVtIExvYWRpbmdNb2RlIHtcbiAgRGV0ZXJtaW5hdGUgPSAnZGV0ZXJtaW5hdGUnLFxuICBJbmRldGVybWluYXRlID0gJ2luZGV0ZXJtaW5hdGUnLFxufVxuXG5leHBvcnQgZW51bSBMb2FkaW5nU3RyYXRlZ3kge1xuICBPdmVybGF5ID0gJ292ZXJsYXknLFxuICBSZXBsYWNlID0gJ3JlcGxhY2UnLFxufVxuXG5leHBvcnQgZW51bSBMb2FkaW5nU3R5bGUge1xuICBGdWxsU2NyZWVuID0gJ2Z1bGxzY3JlZW4nLFxuICBPdmVybGF5ID0gJ292ZXJsYXknLFxuICBOb25lID0gJ25vbmUnLFxufVxuXG5leHBvcnQgY29uc3QgVERfQ0lSQ0xFX0RJQU1FVEVSID0gNDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWxvYWRpbmcnLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3RkRmFkZUluT3V0QW5pbWF0aW9uXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRMb2FkaW5nQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjayB7XG4gIHByaXZhdGUgX21vZGU6IExvYWRpbmdNb2RlID0gTG9hZGluZ01vZGUuSW5kZXRlcm1pbmF0ZTtcbiAgcHJpdmF0ZSBfZGVmYXVsdE1vZGU6IExvYWRpbmdNb2RlID0gTG9hZGluZ01vZGUuSW5kZXRlcm1pbmF0ZTtcbiAgcHJpdmF0ZSBfdmFsdWUgPSAwO1xuICBwcml2YXRlIF9jaXJjbGVEaWFtZXRlcjogbnVtYmVyID0gVERfQ0lSQ0xFX0RJQU1FVEVSO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciBhbmltYXRpb25cbiAgICovXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDb250ZW50IGluamVjdGVkIGludG8gbG9hZGluZyBjb21wb25lbnQuXG4gICAqL1xuICBjb250ZW50ITogVGVtcGxhdGVQb3J0YWw8YW55PjtcblxuICAvKipcbiAgICogU2V0cyBtb2RlIG9mIFtUZExvYWRpbmdDb21wb25lbnRdIHRvIExvYWRpbmdNb2RlLkRldGVybWluYXRlIG9yIExvYWRpbmdNb2RlLkluZGV0ZXJtaW5hdGVcbiAgICovXG4gIHNldCBtb2RlKG1vZGU6IExvYWRpbmdNb2RlKSB7XG4gICAgdGhpcy5fZGVmYXVsdE1vZGUgPSBtb2RlO1xuICB9XG4gIGdldCBtb2RlKCk6IExvYWRpbmdNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHZhbHVlIG9mIFtUZExvYWRpbmdDb21wb25lbnRdIGlmIG1vZGUgaXMgJ0xvYWRpbmdNb2RlLkRldGVybWluYXRlJ1xuICAgKi9cbiAgc2V0IHZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIC8vIENoZWNrIGZvciBjaGFuZ2VzIGZvciBgT25QdXNoYCBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc3R5bGU6IExvYWRpbmdTdHlsZSA9IExvYWRpbmdTdHlsZS5Ob25lO1xuXG4gIC8qKlxuICAgKiBoZWlnaHQ6IG51bWJlclxuICAgKiBTZXRzIGhlaWdodCBvZiBbVGRMb2FkaW5nQ29tcG9uZW50XS5cbiAgICovXG4gIGhlaWdodCA9IDEwMDtcblxuICAvKipcbiAgICogdHlwZTogTG9hZGluZ1R5cGVcbiAgICogU2V0cyB0eXBlIG9mIFtUZExvYWRpbmdDb21wb25lbnRdIHJlbmRlcmVkLlxuICAgKi9cbiAgdHlwZTogTG9hZGluZ1R5cGUgPSBMb2FkaW5nVHlwZS5DaXJjdWxhcjtcblxuICAvKipcbiAgICogY29sb3I6IHByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2FybidcbiAgICogU2V0cyB0aGVtZSBjb2xvciBvZiBbVGRMb2FkaW5nQ29tcG9uZW50XSByZW5kZXJlZC5cbiAgICovXG4gIGNvbG9yOiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJyA9ICdwcmltYXJ5JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIC8vIFdoZW4gb3ZlcmxheSBpcyB1c2VkIGFuZCB0aGUgaG9zdCB3aWR0aCBoYXMgYSB2YWx1ZSBncmVhdGVyIHRoYW4gMXB4XG4gICAgLy8gc2V0IHRoZSBjaXJjbGUgZGlhbWV0ZXIgd2hlbiBwb3NzaWJsZSBpbmNhc2UgdGhlIGxvYWRpbmcgY29tcG9uZW50IHdhcyByZW5kZXJlZCBpbiBhIGhpZGRlbiBzdGF0ZVxuICAgIGlmICh0aGlzLmlzT3ZlcmxheSgpICYmIHRoaXMuX2hvc3RIZWlnaHQoKSA+IDEgJiYgdGhpcy5hbmltYXRpb24pIHtcbiAgICAgIHRoaXMuX3NldENpcmNsZURpYW1ldGVyKCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBnZXRIZWlnaHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBJZ25vcmUgaGVpZ2h0IGlmIHN0eWxlIGlzIGBvdmVybGF5YCBvciBgZnVsbHNjcmVlbmAuXG4gICAgLy8gQWRkIGhlaWdodCBpZiBjaGlsZCBlbGVtZW50cyBoYXZlIGEgaGVpZ2h0IGFuZCBzdHlsZSBpcyBgbm9uZWAsIGVsc2UgcmV0dXJuIGRlZmF1bHQgaGVpZ2h0LlxuICAgIGlmICh0aGlzLmlzT3ZlcmxheSgpIHx8IHRoaXMuaXNGdWxsU2NyZWVuKCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmhlaWdodCA/IGAke3RoaXMuaGVpZ2h0fXB4YCA6ICcxNTBweCc7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2lyY2xlRGlhbWV0ZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2lyY2xlRGlhbWV0ZXI7XG4gIH1cblxuICBnZXRDaXJjbGVTdHJva2VXaWR0aCgpOiBudW1iZXIge1xuICAgIC8vIHdlIGNhbGN1bGF0ZSB0aGUgc3Ryb2tlIHdpZHRoIGJ5IHNldHRpbmcgaXQgYXMgMTAlIG9mIGl0cyBkaWFtZXRlclxuICAgIGNvbnN0IHN0cm9rZVdpZHRoOiBudW1iZXIgPSB0aGlzLmdldENpcmNsZURpYW1ldGVyKCkgLyAxMDtcbiAgICByZXR1cm4gTWF0aC5hYnMoc3Ryb2tlV2lkdGgpO1xuICB9XG5cbiAgaXNDaXJjdWxhcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBMb2FkaW5nVHlwZS5DaXJjdWxhcjtcbiAgfVxuXG4gIGlzTGluZWFyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IExvYWRpbmdUeXBlLkxpbmVhcjtcbiAgfVxuXG4gIGlzRnVsbFNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdHlsZSA9PT0gTG9hZGluZ1N0eWxlLkZ1bGxTY3JlZW47XG4gIH1cblxuICBpc092ZXJsYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3R5bGUgPT09IExvYWRpbmdTdHlsZS5PdmVybGF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBpbiBhbmltYXRpb24gYW5kIHJldHVybnMgYW4gb2JzZXJ2YWJsZSBmb3IgY29tcGxldGl0aW9uIGV2ZW50LlxuICAgKi9cbiAgc2hvdygpOiB2b2lkIHtcbiAgICAvKiBuZWVkIHRvIHN3aXRjaCBiYWNrIHRvIHRoZSBzZWxlY3RlZCBtb2RlLCBzbyB3ZSBoYXZlIHNhdmVkIGl0IGluIGFub3RoZXIgdmFyaWFibGVcbiAgICAgKiAgYW5kIHRoZW4gcmVjb3ZlciBpdC4gKGlzc3VlIHdpdGggcHJvdHJhY3RvcilcbiAgICAgKi9cbiAgICB0aGlzLl9tb2RlID0gdGhpcy5fZGVmYXVsdE1vZGU7XG4gICAgLy8gU2V0IHZhbHVlcyBiZWZvcmUgdGhlIGFuaW1hdGlvbnMgc3RhcnRzXG4gICAgdGhpcy5fc2V0Q2lyY2xlRGlhbWV0ZXIoKTtcbiAgICAvLyBDaGVjayBmb3IgY2hhbmdlcyBmb3IgYE9uUHVzaGAgY2hhbmdlIGRldGVjdGlvblxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgb3V0IGFuaW1hdGlvbiBhbmQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIGZvciBjb21wbGV0aXRpb24gZXZlbnQuXG4gICAqL1xuICBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgLyogbmVlZCB0byBzd2l0Y2ggYmFjayBhbmQgZm9ydGggZnJvbSBkZXRlcm1pbmF0ZS9pbmRldGVybWluYXRlIHNvIHRoZSBzZXRJbnRlcnZhbCgpXG4gICAgICogaW5zaWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyIHN0b3BzIGFuZCBwcm90cmFjdG9yIGRvZXNudCB0aW1lb3V0IHdhaXRpbmcgdG8gc3luYy5cbiAgICAgKi9cbiAgICB0aGlzLl9tb2RlID0gTG9hZGluZ01vZGUuRGV0ZXJtaW5hdGU7XG4gICAgLy8gQ2hlY2sgZm9yIGNoYW5nZXMgZm9yIGBPblB1c2hgIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAvKiBsaXR0bGUgaGFjayB0byByZXNldCB0aGUgbG9hZGVyIHZhbHVlIGFuZCBhbmltYXRpb24gYmVmb3JlIHJlbW92aW5nIGl0IGZyb20gRE9NXG4gICAgICogZWxzZSwgdGhlIGxvYWRlciB3aWxsIGFwcGVhciB3aXRoIHByZXYgdmFsdWUgd2hlbiBpdHMgcmVnaXN0ZXJlZCBhZ2FpblxuICAgICAqIGFuZCB3aWxsIGRvIGFuIGFuaW1hdGlvbiBnb2luZyBwcmV2IHZhbHVlIHRvIDAuXG4gICAgICovXG4gICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgLy8gQ2hlY2sgZm9yIGNoYW5nZXMgZm9yIGBPblB1c2hgIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHByb3BlciBkaWFtZXRlciBmb3IgdGhlIGNpcmNsZSBhbmQgc2V0IGl0XG4gICAqL1xuICBwcml2YXRlIF9zZXRDaXJjbGVEaWFtZXRlcigpOiB2b2lkIHtcbiAgICAvLyB3ZSBzZXQgYSBkZWZhdWx0IGRpYW1ldGVyIG9mIDEwMCBzaW5jZSB0aGlzIGlzIHRoZSBkZWZhdWx0IGluIG1hdGVyaWFsXG4gICAgbGV0IGRpYW1ldGVyOiBudW1iZXIgPSBURF9DSVJDTEVfRElBTUVURVI7XG4gICAgLy8gaWYgaGVpZ2h0IGlzIHByb3ZpZGVkLCB0aGVuIHdlIHRha2UgdGhhdCBhcyBkaWFtZXRlclxuICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgZGlhbWV0ZXIgPSB0aGlzLmhlaWdodDtcbiAgICAgIC8vIGVsc2UgaWYgaXRzIG5vdCBwcm92aWRlZCwgdGhlbiB3ZSB0YWtlIHRoZSBob3N0IGhlaWdodFxuICAgIH0gZWxzZSBpZiAodGhpcy5oZWlnaHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGlhbWV0ZXIgPSB0aGlzLl9ob3N0SGVpZ2h0KCk7XG4gICAgfVxuICAgIC8vIGlmIHRoZSBkaWFtZXRlciBpcyBvdmVyIFREX0NJUkNMRV9ESUFNRVRFUiwgd2Ugc2V0IFREX0NJUkNMRV9ESUFNRVRFUlxuICAgIGlmIChkaWFtZXRlciA8PSBURF9DSVJDTEVfRElBTUVURVIpIHtcbiAgICAgIHRoaXMuX2NpcmNsZURpYW1ldGVyID0gTWF0aC5mbG9vcihkaWFtZXRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NpcmNsZURpYW1ldGVyID0gVERfQ0lSQ0xFX0RJQU1FVEVSO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBob3N0IGhlaWdodCBvZiB0aGUgbG9hZGluZyBjb21wb25lbnRcbiAgICovXG4gIHByaXZhdGUgX2hvc3RIZWlnaHQoKTogbnVtYmVyIHtcbiAgICBpZiAoPEhUTUxFbGVtZW50PnRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuICg8SFRNTEVsZW1lbnQ+KFxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICkpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJ0ZC1sb2FkaW5nLXdyYXBwZXJcIlxuICBbc3R5bGUubWluLWhlaWdodF09XCJnZXRIZWlnaHQoKVwiXG4gIFtjbGFzcy50ZC1vdmVybGF5LWNpcmN1bGFyXT1cIihpc092ZXJsYXkoKSB8fCBpc0Z1bGxTY3JlZW4oKSkgJiYgIWlzTGluZWFyKClcIlxuICBbY2xhc3MudGQtb3ZlcmxheV09XCJpc092ZXJsYXkoKSB8fCBpc0Z1bGxTY3JlZW4oKVwiXG4gIFtjbGFzcy50ZC1mdWxsc2NyZWVuXT1cImlzRnVsbFNjcmVlbigpXCJcbj5cbiAgPGRpdlxuICAgIFtAdGRGYWRlSW5PdXRdPVwiYW5pbWF0aW9uXCJcbiAgICBbc3R5bGUubWluLWhlaWdodF09XCJnZXRIZWlnaHQoKVwiXG4gICAgY2xhc3M9XCJ0ZC1sb2FkaW5nXCJcbiAgPlxuICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgKm5nSWY9XCJpc0NpcmN1bGFyKClcIlxuICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgIFtkaWFtZXRlcl09XCJnZXRDaXJjbGVEaWFtZXRlcigpXCJcbiAgICAgIFtzdHJva2VXaWR0aF09XCJnZXRDaXJjbGVTdHJva2VXaWR0aCgpXCJcbiAgICA+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICA8bWF0LXByb2dyZXNzLWJhclxuICAgICAgKm5nSWY9XCJpc0xpbmVhcigpXCJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
@@ -11,19 +11,19 @@ import { TdLoadingComponent } from './loading.component';
|
|
11
11
|
import * as i0 from "@angular/core";
|
12
12
|
const TD_LOADING = [TdLoadingComponent, TdLoadingDirective];
|
13
13
|
export class CovalentLoadingModule {
|
14
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
15
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: CovalentLoadingModule, declarations: [TdLoadingComponent, TdLoadingDirective], imports: [CommonModule,
|
16
|
-
MatProgressBarModule,
|
17
|
-
MatProgressSpinnerModule,
|
18
|
-
OverlayModule,
|
19
|
-
PortalModule], exports: [TdLoadingComponent, TdLoadingDirective] });
|
20
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CovalentLoadingModule, providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER], imports: [CommonModule,
|
21
|
-
MatProgressBarModule,
|
22
|
-
MatProgressSpinnerModule,
|
23
|
-
OverlayModule,
|
24
|
-
PortalModule] });
|
25
14
|
}
|
26
|
-
i0.ɵɵ
|
15
|
+
CovalentLoadingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
16
|
+
CovalentLoadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CovalentLoadingModule, declarations: [TdLoadingComponent, TdLoadingDirective], imports: [CommonModule,
|
17
|
+
MatProgressBarModule,
|
18
|
+
MatProgressSpinnerModule,
|
19
|
+
OverlayModule,
|
20
|
+
PortalModule], exports: [TdLoadingComponent, TdLoadingDirective] });
|
21
|
+
CovalentLoadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentLoadingModule, providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER], imports: [CommonModule,
|
22
|
+
MatProgressBarModule,
|
23
|
+
MatProgressSpinnerModule,
|
24
|
+
OverlayModule,
|
25
|
+
PortalModule] });
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CovalentLoadingModule, decorators: [{
|
27
27
|
type: NgModule,
|
28
28
|
args: [{
|
29
29
|
imports: [
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
38
38
|
providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER],
|
39
39
|
}]
|
40
40
|
}] });
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9hZGluZy9zcmMvbG9hZGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFekQsTUFBTSxVQUFVLEdBQWdCLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQWN6RSxNQUFNLE9BQU8scUJBQXFCOzttSEFBckIscUJBQXFCO29IQUFyQixxQkFBcUIsaUJBZEQsa0JBQWtCLEVBQUUsa0JBQWtCLGFBSW5FLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLGFBQWE7UUFDYixZQUFZLGFBUmlCLGtCQUFrQixFQUFFLGtCQUFrQjtvSEFjMUQscUJBQXFCLGFBRnJCLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsWUFSckQsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsYUFBYTtRQUNiLFlBQVk7NEZBTUgscUJBQXFCO2tCQVpqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLGdCQUFnQixDQUFDO2lCQUN4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuaW1wb3J0IHsgTE9BRElOR19QUk9WSURFUiB9IGZyb20gJy4vc2VydmljZXMvbG9hZGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IExPQURJTkdfRkFDVE9SWV9QUk9WSURFUiB9IGZyb20gJy4vc2VydmljZXMvbG9hZGluZy5mYWN0b3J5JztcbmltcG9ydCB7IFRkTG9hZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sb2FkaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcuY29tcG9uZW50JztcblxuY29uc3QgVERfTE9BRElORzogVHlwZTxhbnk+W10gPSBbVGRMb2FkaW5nQ29tcG9uZW50LCBUZExvYWRpbmdEaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbVERfTE9BRElOR10sXG4gIGV4cG9ydHM6IFtURF9MT0FESU5HXSxcbiAgcHJvdmlkZXJzOiBbTE9BRElOR19GQUNUT1JZX1BST1ZJREVSLCBMT0FESU5HX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRMb2FkaW5nTW9kdWxlIHt9XG4iXX0=
|