@indice/ng-components 0.2.139 → 0.2.141
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/README.md +4 -4
- package/{src/assets/styles/indice-ng-icons-inline.css → _styles.css} +3501 -2286
- package/esm2020/indice-ng-components.mjs +5 -0
- package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
- package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +260 -0
- package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +68 -0
- package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +36 -0
- package/esm2020/lib/controls/list-view/list-column.component.mjs +25 -0
- package/esm2020/lib/controls/list-view/list-details-section.component.mjs +17 -0
- package/esm2020/lib/controls/list-view/list-tile.component.mjs +17 -0
- package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
- package/esm2020/lib/controls/list-view/list-view.component.mjs +183 -0
- package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +37 -0
- package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +77 -0
- package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
- package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
- package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
- package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
- package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
- package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
- package/esm2020/lib/directives/click-outside.directive.mjs +189 -0
- package/esm2020/lib/directives/dynamic-component-host.directive.mjs +17 -0
- package/esm2020/lib/helpers/base-list.component.mjs +181 -0
- package/esm2020/lib/icons.mjs +32 -0
- package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +135 -0
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +101 -0
- package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
- package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +49 -0
- package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
- package/esm2020/lib/ng-components.module.mjs +221 -0
- package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
- package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
- package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
- package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
- package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
- package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
- package/esm2020/lib/pipes/address.pipe.mjs +21 -0
- package/esm2020/lib/pipes/duration-format.pipe.mjs +64 -0
- package/esm2020/lib/services/component-loader/component-loader-options.class.mjs +8 -0
- package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
- package/esm2020/lib/services/component-loader/component-loader.factory.mjs +32 -0
- package/esm2020/lib/services/component-loader/content-ref.class.mjs +13 -0
- package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
- package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
- package/esm2020/lib/services/modal-service/modal-options.class.mjs +35 -0
- package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
- package/esm2020/lib/services/modal-service/modal-styles.class.mjs +11 -0
- package/esm2020/lib/services/modal-service/modal.class.mjs +27 -0
- package/esm2020/lib/services/toaster.service.mjs +24 -0
- package/esm2020/lib/tokens.mjs +5 -0
- package/esm2020/lib/types.mjs +117 -0
- package/esm2020/public-api.mjs +53 -0
- package/fesm2015/indice-ng-components.mjs +3268 -0
- package/fesm2015/indice-ng-components.mjs.map +1 -0
- package/fesm2020/indice-ng-components.mjs +3225 -0
- package/fesm2020/indice-ng-components.mjs.map +1 -0
- package/indice-ng-components.d.ts +5 -0
- package/lib/controls/avatar-initials/avatar-initials.component.d.ts +14 -0
- package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +10 -0
- package/lib/controls/date-picker/date-picker.component.d.ts +48 -0
- package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +25 -0
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +13 -0
- package/lib/controls/list-view/list-column.component.d.ts +9 -0
- package/lib/controls/list-view/list-details-section.component.d.ts +7 -0
- package/lib/controls/list-view/list-tile.component.d.ts +7 -0
- package/lib/controls/list-view/list-view-empty-state.component.d.ts +11 -0
- package/lib/controls/list-view/list-view.component.d.ts +55 -0
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +15 -0
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +23 -0
- package/lib/controls/pager/pager.component.d.ts +36 -0
- package/lib/controls/side-pane/side-pane.component.d.ts +18 -0
- package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +11 -0
- package/lib/controls/toaster/toaster-container.component.d.ts +13 -0
- package/lib/controls/toaster/toaster.component.d.ts +15 -0
- package/lib/controls/toggle/toggle.component.d.ts +19 -0
- package/lib/directives/click-outside.directive.d.ts +40 -0
- package/lib/directives/dynamic-component-host.directive.d.ts +9 -0
- package/lib/helpers/base-list.component.d.ts +42 -0
- package/lib/icons.d.ts +30 -0
- package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +8 -0
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +41 -0
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +28 -0
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +24 -0
- package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +25 -0
- package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +28 -0
- package/lib/layouts/views/view-layout/view-layout.component.d.ts +31 -0
- package/lib/ng-components.module.d.ts +49 -0
- package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +13 -0
- package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +12 -0
- package/lib/pages/auth/logged-out/logged-out.component.d.ts +12 -0
- package/lib/pages/http-status/error/error.component.d.ts +8 -0
- package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +8 -0
- package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -0
- package/lib/pipes/address.pipe.d.ts +8 -0
- package/lib/pipes/duration-format.pipe.d.ts +8 -0
- package/lib/services/component-loader/component-loader-options.class.d.ts +30 -0
- package/lib/services/component-loader/component-loader.class.d.ts +92 -0
- package/lib/services/component-loader/component-loader.factory.d.ts +24 -0
- package/lib/services/component-loader/content-ref.class.d.ts +12 -0
- package/lib/services/modal-service/modal-backdrop-component.d.ts +20 -0
- package/lib/services/modal-service/modal-container-component.d.ts +33 -0
- package/lib/services/modal-service/modal-options.class.d.ts +81 -0
- package/lib/services/modal-service/modal-service.d.ts +58 -0
- package/lib/services/modal-service/modal-styles.class.d.ts +10 -0
- package/lib/services/modal-service/modal.class.d.ts +43 -0
- package/lib/services/toaster.service.d.ts +11 -0
- package/lib/tokens.d.ts +5 -0
- package/lib/types.d.ts +153 -0
- package/{src/assets/styles/modal.css → modal.css} +157 -157
- package/package.json +24 -20
- package/{src/public-api.ts → public-api.d.ts} +43 -60
- package/CHANGELOG.md +0 -1
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -10
- package/scripts/css-bundle.ts +0 -33
- package/src/_styles.css +0 -36
- package/src/_tests/utilities.service.spec.ts +0 -16
- package/src/assets/styles/avatar-initials.css +0 -37
- package/src/assets/styles/base.css +0 -46
- package/src/assets/styles/cards.css +0 -71
- package/src/assets/styles/collapsible-panel.css +0 -25
- package/src/assets/styles/components.css +0 -34
- package/src/assets/styles/date-picker.component.css +0 -0
- package/src/assets/styles/drop-down-menu.css +0 -50
- package/src/assets/styles/form-layout.css +0 -49
- package/src/assets/styles/list-view-empty-state.css +0 -0
- package/src/assets/styles/list-view.css +0 -64
- package/src/assets/styles/model-view-layout.css +0 -45
- package/src/assets/styles/nav-links.css +0 -35
- package/src/assets/styles/notifications-indicator.component.css +0 -43
- package/src/assets/styles/pager.css +0 -29
- package/src/assets/styles/shell-layout.css +0 -232
- package/src/assets/styles/side-pane.css +0 -46
- package/src/assets/styles/side-view-layout.css +0 -58
- package/src/assets/styles/toast.css +0 -72
- package/src/assets/styles/toggle.css +0 -26
- package/src/assets/styles/view-layout.css +0 -58
- package/src/lib/controls/avatar-initials/avatar-initials.component.html +0 -3
- package/src/lib/controls/avatar-initials/avatar-initials.component.ts +0 -47
- package/src/lib/controls/collapsible-panel/collapsible-panel.component.html +0 -15
- package/src/lib/controls/collapsible-panel/collapsible-panel.component.ts +0 -16
- package/src/lib/controls/date-picker/date-picker.component.html +0 -133
- package/src/lib/controls/date-picker/date-picker.component.ts +0 -258
- package/src/lib/controls/drop-down-menu/drop-down-menu.component.html +0 -61
- package/src/lib/controls/drop-down-menu/drop-down-menu.component.ts +0 -59
- package/src/lib/controls/kpi-tile/kpi-tile.component.html +0 -18
- package/src/lib/controls/kpi-tile/kpi-tile.component.ts +0 -26
- package/src/lib/controls/list-view/list-column.component.ts +0 -10
- package/src/lib/controls/list-view/list-details-section.component.ts +0 -8
- package/src/lib/controls/list-view/list-tile.component.ts +0 -8
- package/src/lib/controls/list-view/list-view-empty-state.component.html +0 -20
- package/src/lib/controls/list-view/list-view-empty-state.component.ts +0 -19
- package/src/lib/controls/list-view/list-view.component.html +0 -151
- package/src/lib/controls/list-view/list-view.component.ts +0 -146
- package/src/lib/controls/nav-links-list/nav-links-list.component.html +0 -27
- package/src/lib/controls/nav-links-list/nav-links-list.component.ts +0 -25
- package/src/lib/controls/notifications-indicator/notifications-indicator.component.html +0 -78
- package/src/lib/controls/notifications-indicator/notifications-indicator.component.ts +0 -75
- package/src/lib/controls/pager/pager.component.html +0 -33
- package/src/lib/controls/pager/pager.component.ts +0 -106
- package/src/lib/controls/side-pane/side-pane.component.html +0 -10
- package/src/lib/controls/side-pane/side-pane.component.ts +0 -59
- package/src/lib/controls/skeleton-loader/skeleton-loader.component.html +0 -112
- package/src/lib/controls/skeleton-loader/skeleton-loader.component.ts +0 -20
- package/src/lib/controls/toaster/toaster-container.component.html +0 -1
- package/src/lib/controls/toaster/toaster-container.component.ts +0 -27
- package/src/lib/controls/toaster/toaster.component.html +0 -103
- package/src/lib/controls/toaster/toaster.component.ts +0 -26
- package/src/lib/controls/toggle/toggle.component.html +0 -15
- package/src/lib/controls/toggle/toggle.component.ts +0 -58
- package/src/lib/directives/click-outside.directive.ts +0 -196
- package/src/lib/directives/dynamic-component-host.directive.ts +0 -7
- package/src/lib/directives/screen-size.directive.ts +0 -67
- package/src/lib/helpers/base-list.component.ts +0 -204
- package/src/lib/icons.ts +0 -39
- package/src/lib/layouts/shell/shell-footer/shell-footer.component.html +0 -71
- package/src/lib/layouts/shell/shell-footer/shell-footer.component.ts +0 -14
- package/src/lib/layouts/shell/shell-header/shell-header.component.html +0 -199
- package/src/lib/layouts/shell/shell-header/shell-header.component.ts +0 -111
- package/src/lib/layouts/shell/shell-layout/shell-layout.component.html +0 -36
- package/src/lib/layouts/shell/shell-layout/shell-layout.component.ts +0 -91
- package/src/lib/layouts/views/form-layout/form-layout.component.html +0 -67
- package/src/lib/layouts/views/form-layout/form-layout.component.ts +0 -66
- package/src/lib/layouts/views/model-view-layout/model-view-layout.component.html +0 -43
- package/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts +0 -37
- package/src/lib/layouts/views/side-view-layout/side-view-layout.component.html +0 -36
- package/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts +0 -67
- package/src/lib/layouts/views/view-layout/view-layout.component.html +0 -68
- package/src/lib/layouts/views/view-layout/view-layout.component.ts +0 -82
- package/src/lib/ng-components.module.ts +0 -135
- package/src/lib/pages/auth/auth-callback/auth-callback.component.html +0 -1
- package/src/lib/pages/auth/auth-callback/auth-callback.component.ts +0 -22
- package/src/lib/pages/auth/auth-renew/auth-renew.component.ts +0 -20
- package/src/lib/pages/auth/logged-out/logged-out.component.html +0 -1
- package/src/lib/pages/auth/logged-out/logged-out.component.ts +0 -22
- package/src/lib/pages/http-status/error/error.component.html +0 -13
- package/src/lib/pages/http-status/error/error.component.ts +0 -13
- package/src/lib/pages/http-status/page-not-found/page-not-found.component.html +0 -14
- package/src/lib/pages/http-status/page-not-found/page-not-found.component.ts +0 -14
- package/src/lib/pages/http-status/unauthorized/unauthorized.component.html +0 -15
- package/src/lib/pages/http-status/unauthorized/unauthorized.component.ts +0 -11
- package/src/lib/pipes/address.pipe.ts +0 -17
- package/src/lib/pipes/duration-format.pipe.ts +0 -67
- package/src/lib/services/component-loader/component-loader-options.class.ts +0 -31
- package/src/lib/services/component-loader/component-loader.class.ts +0 -226
- package/src/lib/services/component-loader/component-loader.factory.ts +0 -27
- package/src/lib/services/component-loader/content-ref.class.ts +0 -10
- package/src/lib/services/interceptors/bad-request.interceptor.ts +0 -34
- package/src/lib/services/modal-service/modal-backdrop-component.ts +0 -40
- package/src/lib/services/modal-service/modal-container-component.ts +0 -125
- package/src/lib/services/modal-service/modal-options.class.ts +0 -92
- package/src/lib/services/modal-service/modal-service.ts +0 -237
- package/src/lib/services/modal-service/modal-styles.class.ts +0 -11
- package/src/lib/services/modal-service/modal.class.ts +0 -45
- package/src/lib/services/shell-state-service.service.ts +0 -10
- package/src/lib/services/toaster.service.ts +0 -23
- package/src/lib/services/utilities.service.ts +0 -40
- package/src/lib/tokens.ts +0 -6
- package/src/lib/types.ts +0 -210
- package/src/test.ts +0 -28
- package/tsconfig.lib.json +0 -26
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
- package/webpack.config.js +0 -36
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../layouts/views/view-layout/view-layout.component";
|
|
4
|
+
export class ErrorComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.error = 'Error!';
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
ErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
ErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ErrorComponent, selector: "lib-error", ngImport: i0, template: "<lib-view-layout [show-header]=\"false\" title=\"500 - \u03C0\u03B1\u03C1\u03BF\u03C5\u03C3\u03B9\u03AC\u03C3\u03C4\u03B7\u03BA\u03B5 \u03C3\u03C6\u03AC\u03BB\u03BC\u03B1!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">500</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">\u03C3\u03C6\u03AC\u03BB\u03BC\u03B1, \u03BA\u03B1\u03C4\u03B9 \u03B4\u03B5\u03BD \u03C0\u03AE\u03B3\u03B5 \u03BA\u03B1\u03BB\u03AC...!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n", components: [{ type: i1.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ErrorComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'lib-error', template: "<lib-view-layout [show-header]=\"false\" title=\"500 - \u03C0\u03B1\u03C1\u03BF\u03C5\u03C3\u03B9\u03AC\u03C3\u03C4\u03B7\u03BA\u03B5 \u03C3\u03C6\u03AC\u03BB\u03BC\u03B1!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">500</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">\u03C3\u03C6\u03AC\u03BB\u03BC\u03B1, \u03BA\u03B1\u03C4\u03B9 \u03B4\u03B5\u03BD \u03C0\u03AE\u03B3\u03B5 \u03BA\u03B1\u03BB\u03AC...!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n" }]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL2h0dHAtc3RhdHVzL2Vycm9yL2Vycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9odHRwLXN0YXR1cy9lcnJvci9lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNbEQsTUFBTSxPQUFPLGNBQWM7SUFKM0I7UUFLUyxVQUFLLEdBQUcsUUFBUSxDQUFDO0tBS3pCO0lBSEMsUUFBUTtJQUNSLENBQUM7OzJHQUpVLGNBQWM7K0ZBQWQsY0FBYyxpRENOM0Isa2pDQWFBOzJGRFBhLGNBQWM7a0JBSjFCLFNBQVM7K0JBQ0UsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lcnJvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXJyb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBlcnJvciA9ICdFcnJvciEnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxsaWItdmlldy1sYXlvdXQgW3Nob3ctaGVhZGVyXT1cImZhbHNlXCIgdGl0bGU9XCI1MDAgLSDPgM6xz4HOv8+Fz4POuc6sz4PPhM63zrrOtSDPg8+GzqzOu868zrEhXCI+XHJcbiAgPGRpdiBjbGFzcz1cImJnLWdyYXktNjAwIHZpZXctY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWF4LXctMnhsIG14LWF1dG8gdGV4dC1jZW50ZXIgcHktMTYgcHgtNCBzbTpweS0yMCBzbTpweC02IGxnOnB4LThcIj5cclxuICAgICAgPGgyIGNsYXNzPVwidGV4dC0zeGwgZm9udC1leHRyYWJvbGQgdGV4dC13aGl0ZSBzbTp0ZXh0LTR4bFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2tcIj41MDA8L3NwYW4+XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDxwIGNsYXNzPVwibXQtNCB0ZXh0LWxnIGxlYWRpbmctNiB0ZXh0LWdyYXktMjAwXCI+z4PPhs6szrvOvM6xLCDOus6xz4TOuSDOtM61zr0gz4DOrs6zzrUgzrrOsc67zqwuLi4hPC9wPlxyXG4gICAgICA8YSBocmVmPVwiL1wiIGNsYXNzPVwibXQtOCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNSBweS0zIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1iYXNlIGZvbnQtc20gcm91bmRlZC1zbSB0ZXh0LWdyYXktNjAwIGJnLXdoaXRlIGhvdmVyOmJnLWdyYXktNTAgc206dy1hdXRvXCI+XHJcbiAgICAgICAgz4DOsc+Ezq7Pg8+EzrUgzrXOtM+OIM6zzrnOsSDOvc6xIM61z4DOuc+Dz4TPgc6tz4jOtc+EzrVcclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbGliLXZpZXctbGF5b3V0PlxyXG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../layouts/views/view-layout/view-layout.component";
|
|
4
|
+
export class PageNotFoundComponent {
|
|
5
|
+
constructor() { }
|
|
6
|
+
ngOnInit() {
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
PageNotFoundComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
PageNotFoundComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PageNotFoundComponent, selector: "lib-page-not-found", ngImport: i0, template: "<lib-view-layout [show-header]=\"false\" title=\"404 - \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">\u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5 \u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03C0\u03BF\u03C5 \u03B6\u03B7\u03C4\u03AE\u03C3\u03B1\u03C4\u03B5!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n", components: [{ type: i1.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PageNotFoundComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'lib-page-not-found', template: "<lib-view-layout [show-header]=\"false\" title=\"404 - \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">\u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5 \u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03C0\u03BF\u03C5 \u03B6\u03B7\u03C4\u03AE\u03C3\u03B1\u03C4\u03B5!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n" }]
|
|
14
|
+
}], ctorParameters: function () { return []; } });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1ub3QtZm91bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL2h0dHAtc3RhdHVzL3BhZ2Utbm90LWZvdW5kL3BhZ2Utbm90LWZvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9odHRwLXN0YXR1cy9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7a0hBTFUscUJBQXFCO3NHQUFyQixxQkFBcUIsMERDTmxDLHVoQ0FjQTsyRkRSYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBhZ2Utbm90LWZvdW5kJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1ub3QtZm91bmQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlTm90Rm91bmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxsaWItdmlldy1sYXlvdXQgW3Nob3ctaGVhZGVyXT1cImZhbHNlXCIgdGl0bGU9XCI0MDQgLSDOtM61zr0gzrLPgc6tzrjOt866zrUhXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYXgtdy00eGwgbXgtYXV0byB0ZXh0LWNlbnRlciBweS0xNiBweC00IHNtOnB5LTIwIHNtOnB4LTYgbGc6cHgtOFwiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJ0ZXh0LTN4bCBmb250LWV4dHJhYm9sZCBzbTp0ZXh0LTR4bFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2tcIj40MDQ8L3NwYW4+XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDxwIGNsYXNzPVwibXQtNCB0ZXh0LWxnIGxlYWRpbmctNiB0ZXh0LWdyYXktODAwXCI+zrTOtc69IM6yz4HOrc64zrfOus61IM63IM+DzrXOu86vzrTOsSDPgM6/z4UgzrbOt8+Ezq7Pg86xz4TOtSE8L3A+XHJcbiAgICAgIDxhIGhyZWY9XCIvXCJcclxuICAgICAgICAgY2xhc3M9XCJtdC04IGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC01IHB5LTMgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCB0ZXh0LWJhc2UgZm9udC1zbSByb3VuZGVkLXNtIHRleHQtZ3JheS02MDAgYmctd2hpdGUgaG92ZXI6YmctZ3JheS01MCBzbTp3LWF1dG9cIj5cclxuICAgICAgICDPgM6xz4TOrs+Dz4TOtSDOtc60z44gzrPOuc6xIM69zrEgzrXPgM65z4PPhM+Bzq3PiM61z4TOtVxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9saWItdmlldy1sYXlvdXQ+XHJcbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../layouts/views/view-layout/view-layout.component";
|
|
4
|
+
export class UnauthorizedComponent {
|
|
5
|
+
constructor() { }
|
|
6
|
+
ngOnInit() { }
|
|
7
|
+
}
|
|
8
|
+
UnauthorizedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: UnauthorizedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
UnauthorizedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: UnauthorizedComponent, selector: "lib-unauthorized", ngImport: i0, template: "<lib-view-layout [show-header]=\"false\" title=\"401 - \u03B4\u03B5\u03BD \u03B5\u03C0\u03B9\u03C4\u03C1\u03AD\u03C0\u03B5\u03C4\u03B1\u03B9 \u03B7 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">401</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">\u03B4\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03C4\u03B1 \u03BA\u03B1\u03C4\u03AC\u03BB\u03BB\u03B7\u03BB\u03B1 \u03B4\u03B9\u03BA\u03B1\u03B9\u03CE\u03BC\u03B1\u03C4\u03B1 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7\u03C2!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n </lib-view-layout>\r\n\r\n\r\n", components: [{ type: i1.ViewLayoutComponent, selector: "lib-view-layout", inputs: ["show-header", "fluid", "title", "icon", "actions", "busy", "search-placeholder", "view", "meta-items"], outputs: ["onAction", "onSearch"] }] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: UnauthorizedComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'lib-unauthorized', template: "<lib-view-layout [show-header]=\"false\" title=\"401 - \u03B4\u03B5\u03BD \u03B5\u03C0\u03B9\u03C4\u03C1\u03AD\u03C0\u03B5\u03C4\u03B1\u03B9 \u03B7 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">401</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">\u03B4\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03C4\u03B1 \u03BA\u03B1\u03C4\u03AC\u03BB\u03BB\u03B7\u03BB\u03B1 \u03B4\u03B9\u03BA\u03B1\u03B9\u03CE\u03BC\u03B1\u03C4\u03B1 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7\u03C2!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n \u03C0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C3\u03C4\u03C1\u03AD\u03C8\u03B5\u03C4\u03B5\r\n </a>\r\n </div>\r\n </div>\r\n </lib-view-layout>\r\n\r\n\r\n" }]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9odHRwLXN0YXR1cy91bmF1dGhvcml6ZWQvdW5hdXRob3JpemVkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9odHRwLXN0YXR1cy91bmF1dGhvcml6ZWQvdW5hdXRob3JpemVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZUFBZSxDQUFDOzs7QUFNMUQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxnQkFBZ0IsQ0FBQztJQUVWLFFBQVEsS0FBVyxDQUFDOztrSEFIaEIscUJBQXFCO3NHQUFyQixxQkFBcUIsd0RDTmxDLHlyQ0FlQTsyRkRUYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdW5hdXRob3JpemVkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdW5hdXRob3JpemVkLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5hdXRob3JpemVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7IH1cclxufVxyXG4iLCI8bGliLXZpZXctbGF5b3V0IFtzaG93LWhlYWRlcl09XCJmYWxzZVwiIHRpdGxlPVwiNDAxIC0gzrTOtc69IM61z4DOuc+Ez4HOrc+AzrXPhM6xzrkgzrcgz4DPgc+Mz4POss6xz4POtyFcIj5cclxuICA8ZGl2IGNsYXNzPVwiYmctZ3JheS02MDAgdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYXgtdy0yeGwgbXgtYXV0byB0ZXh0LWNlbnRlciBweS0xNiBweC00IHNtOnB5LTIwIHNtOnB4LTYgbGc6cHgtOFwiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJ0ZXh0LTN4bCBmb250LWV4dHJhYm9sZCB0ZXh0LXdoaXRlIHNtOnRleHQtNHhsXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJibG9ja1wiPjQwMTwvc3Bhbj5cclxuICAgICAgPC9oMj5cclxuICAgICAgPHAgY2xhc3M9XCJtdC00IHRleHQtbGcgbGVhZGluZy02IHRleHQtZ3JheS0yMDBcIj7OtM61zr0gzq3Ph861z4TOtSDPhM6xIM66zrHPhM6szrvOu863zrvOsSDOtM65zrrOsc65z47OvM6xz4TOsSDPgM+Bz4zPg86yzrHPg863z4IhPC9wPlxyXG4gICAgICA8YSBocmVmPVwiL1wiIGNsYXNzPVwibXQtOCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNSBweS0zIGJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1iYXNlIGZvbnQtc20gcm91bmRlZC1zbSB0ZXh0LWdyYXktNjAwIGJnLXdoaXRlIGhvdmVyOmJnLWdyYXktNTAgc206dy1hdXRvXCI+XHJcbiAgICAgICAgz4DOsc+Ezq7Pg8+EzrUgzrXOtM+OIM6zzrnOsSDOvc6xIM61z4DOuc+Dz4TPgc6tz4jOtc+EzrVcclxuICAgICAgPC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPC9saWItdmlldy1sYXlvdXQ+XHJcblxyXG5cclxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AddressPipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
if (value === undefined || null || '') {
|
|
6
|
+
return '';
|
|
7
|
+
}
|
|
8
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
9
|
+
return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode ? ', ' + +value.postalCode : ''}`;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
AddressPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AddressPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
AddressPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AddressPipe, name: "address", pure: false });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AddressPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{
|
|
17
|
+
name: 'address',
|
|
18
|
+
pure: false
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3BpcGVzL2FkZHJlc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLFdBQVc7SUFFcEIsU0FBUyxDQUFDLEtBQTJCO1FBQ2pDLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ25DLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxpREFBaUQ7UUFDakQsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3BMLENBQUM7O3dHQVJRLFdBQVc7c0dBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUp2QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxLQUFLO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQWRkcmVzcyB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdhZGRyZXNzJyxcclxuICAgIHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogSUFkZHJlc3MgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IG51bGwgfHwgJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLnN0cmVldCB8fCAnJ30ke3ZhbHVlLnN0cmVldE51bWJlciA/ICcgJyArIHZhbHVlLnN0cmVldE51bWJlciA6ICcnfSR7dmFsdWUuY2l0eSA/ICcsICcgKyB2YWx1ZS5jaXR5IDogJyd9JHsrdmFsdWUucG9zdGFsQ29kZSEgPyAnLCAnICsgK3ZhbHVlLnBvc3RhbENvZGUhIDogJyd9YDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DurationFormatPipe {
|
|
4
|
+
transform(value, arg1, arg2) {
|
|
5
|
+
let days;
|
|
6
|
+
let seconds;
|
|
7
|
+
let minutes;
|
|
8
|
+
let hours;
|
|
9
|
+
if (arg1 === 'ms' && arg2 === 'hhmmss') {
|
|
10
|
+
seconds = Math.floor((value / 1000) % 60);
|
|
11
|
+
minutes = Math.floor(((value / (1000 * 60)) % 60));
|
|
12
|
+
hours = Math.floor((value / (1000 * 60 * 60)));
|
|
13
|
+
return this.format(arg2, seconds, minutes, hours, days);
|
|
14
|
+
}
|
|
15
|
+
else if (arg1 === 's' && arg2 === 'hhmmss') {
|
|
16
|
+
seconds = Math.floor((value % 60));
|
|
17
|
+
minutes = Math.floor(((value / 60) % 60));
|
|
18
|
+
hours = Math.floor(((value / 60) / 60));
|
|
19
|
+
return this.format(arg2, seconds, minutes, hours, days);
|
|
20
|
+
}
|
|
21
|
+
else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {
|
|
22
|
+
seconds = Math.floor(((value / 1000) % 60));
|
|
23
|
+
minutes = Math.floor((value / (1000 * 60) % 60));
|
|
24
|
+
hours = Math.floor((value / (1000 * 60 * 60) % 24));
|
|
25
|
+
days = Math.floor((value / (1000 * 60 * 60 * 24)));
|
|
26
|
+
return this.format(arg2, seconds, minutes, hours, days);
|
|
27
|
+
}
|
|
28
|
+
else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {
|
|
29
|
+
seconds = Math.floor(value % 60);
|
|
30
|
+
minutes = Math.floor(((value / 60) % 60));
|
|
31
|
+
hours = Math.floor(((value / 60) / 60) % 24);
|
|
32
|
+
days = Math.floor((((value / 60) / 60) / 24));
|
|
33
|
+
return this.format(arg2, seconds, minutes, hours, days);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
format(arg2, seconds, minutes, hours, days) {
|
|
40
|
+
(days < 10) ? days = '0' + days : days;
|
|
41
|
+
(hours < 10) ? hours = '0' + hours : hours;
|
|
42
|
+
(minutes < 10) ? minutes = '0' + minutes : minutes;
|
|
43
|
+
(seconds < 10) ? seconds = '0' + seconds : seconds;
|
|
44
|
+
switch (arg2) {
|
|
45
|
+
case 'hhmmss':
|
|
46
|
+
return `${hours}:${minutes}:${seconds}`;
|
|
47
|
+
case 'ddhhmmss':
|
|
48
|
+
return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;
|
|
49
|
+
case 'ddhhmmssLong':
|
|
50
|
+
return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
DurationFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: DurationFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
56
|
+
DurationFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: DurationFormatPipe, name: "durationFormat", pure: false });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: DurationFormatPipe, decorators: [{
|
|
58
|
+
type: Pipe,
|
|
59
|
+
args: [{
|
|
60
|
+
name: 'durationFormat',
|
|
61
|
+
pure: false
|
|
62
|
+
}]
|
|
63
|
+
}] });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tZm9ybWF0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvcGlwZXMvZHVyYXRpb24tZm9ybWF0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFTLEVBQUUsSUFBUztRQUV4QyxJQUFJLElBQVMsQ0FBQztRQUNkLElBQUksT0FBWSxDQUFDO1FBQ2pCLElBQUksT0FBWSxDQUFDO1FBQ2pCLElBQUksS0FBVSxDQUFDO1FBRWYsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDdEMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBRXpEO2FBQU0sSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcs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QUFDO1FBQ25ELENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRW5ELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxRQUFRO2dCQUNYLE9BQU8sR0FBRyxLQUFLLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBRTFDLEtBQUssVUFBVTtnQkFDYixPQUFPLEdBQUcsSUFBSSxNQUFNLEtBQUssTUFBTSxPQUFPLE1BQU0sT0FBTyxHQUFHLENBQUM7WUFFekQsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEdBQUcsSUFBSSxVQUFVLEtBQUssV0FBVyxPQUFPLGFBQWEsT0FBTyxVQUFVLENBQUM7U0FDakY7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzsrR0ExRFUsa0JBQWtCOzZHQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFKOUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZHVyYXRpb25Gb3JtYXQnLFxyXG4gIHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEdXJhdGlvbkZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZzE6IGFueSwgYXJnMjogYW55KTogc3RyaW5nIHtcclxuXHJcbiAgICBsZXQgZGF5czogYW55O1xyXG4gICAgbGV0IHNlY29uZHM6IGFueTtcclxuICAgIGxldCBtaW51dGVzOiBhbnk7XHJcbiAgICBsZXQgaG91cnM6IGFueTtcclxuXHJcbiAgICBpZiAoYXJnMSA9PT0gJ21zJyAmJiBhcmcyID09PSAnaGhtbXNzJykge1xyXG4gICAgICBzZWNvbmRzID0gTWF0aC5mbG9vcigodmFsdWUgLyAxMDAwKSAlIDYwKTtcclxuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKCh2YWx1ZSAvICgxMDAwICogNjApKSAlIDYwKSk7XHJcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcigodmFsdWUgLyAoMTAwMCAqIDYwICogNjApKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdChhcmcyLCBzZWNvbmRzLCBtaW51dGVzLCBob3VycywgZGF5cyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChhcmcxID09PSAncycgJiYgYXJnMiA9PT0gJ2hobW1zcycpIHtcclxuICAgICAgc2Vjb25kcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgNjApKTtcclxuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKCh2YWx1ZSAvIDYwKSAlIDYwKSk7XHJcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcigoKHZhbHVlIC8gNjApIC8gNjApKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KGFyZzIsIHNlY29uZHMsIG1pbnV0ZXMsIGhvdXJzLCBkYXlzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGFyZzEgPT09ICdtcycgJiYgKGFyZzIgPT09ICdkZGhobW1zcycgfHwgYXJnMiA9PT0gJ2RkaGhtbXNzTG9uZycpKSB7XHJcbiAgICAgIHNlY29uZHMgPSBNYXRoLmZsb29yKCgodmFsdWUgLyAxMDAwKSAlIDYwKSk7XHJcbiAgICAgIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAvICgxMDAwICogNjApICUgNjApKTtcclxuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKCh2YWx1ZSAvICgxMDAwICogNjAgKiA2MCkgJSAyNCkpO1xyXG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigodmFsdWUgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KGFyZzIsIHNlY29uZHMsIG1pbnV0ZXMsIGhvdXJzLCBkYXlzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGFyZzEgPT09ICdzJyAmJiAoYXJnMiA9PT0gJ2RkaGhtbXNzJyB8fCBhcmcyID09PSAnZGRoaG1tc3NMb25nJykpIHtcclxuICAgICAgc2Vjb25kcyA9IE1hdGguZmxvb3IodmFsdWUgJSA2MCk7XHJcbiAgICAgIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCgodmFsdWUgLyA2MCkgJSA2MCkpO1xyXG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKCh2YWx1ZSAvIDYwKSAvIDYwKSAlIDI0KTtcclxuICAgICAgZGF5cyA9IE1hdGguZmxvb3IoKCgodmFsdWUgLyA2MCkgLyA2MCkgLyAyNCkpO1xyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXQoYXJnMiwgc2Vjb25kcywgbWludXRlcywgaG91cnMsIGRheXMpO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdChhcmcyOiBzdHJpbmcsIHNlY29uZHM6IGFueSwgbWludXRlczogYW55LCBob3VyczogYW55LCBkYXlzOiBhbnkpOiBhbnkge1xyXG4gICAgKGRheXMgPCAxMCkgPyBkYXlzID0gJzAnICsgZGF5cyA6IGRheXM7XHJcbiAgICAoaG91cnMgPCAxMCkgPyBob3VycyA9ICcwJyArIGhvdXJzIDogaG91cnM7XHJcbiAgICAobWludXRlcyA8IDEwKSA/IG1pbnV0ZXMgPSAnMCcgKyBtaW51dGVzIDogbWludXRlcztcclxuICAgIChzZWNvbmRzIDwgMTApID8gc2Vjb25kcyA9ICcwJyArIHNlY29uZHMgOiBzZWNvbmRzO1xyXG5cclxuICAgIHN3aXRjaCAoYXJnMikge1xyXG4gICAgICBjYXNlICdoaG1tc3MnOlxyXG4gICAgICAgIHJldHVybiBgJHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9YDtcclxuXHJcbiAgICAgIGNhc2UgJ2RkaGhtbXNzJzpcclxuICAgICAgICByZXR1cm4gYCR7ZGF5c31kLCAke2hvdXJzfWgsICR7bWludXRlc31tLCAke3NlY29uZHN9c2A7XHJcblxyXG4gICAgICBjYXNlICdkZGhobW1zc0xvbmcnOlxyXG4gICAgICAgIHJldHVybiBgJHtkYXlzfSBkYXlzLCAke2hvdXJzfSBob3VycywgJHttaW51dGVzfSBtaW51dGVzLCAke3NlY29uZHN9IHNlY29uZHNgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options passed to {@link ComponentLoader.show}.
|
|
3
|
+
*
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export class ComponentLoaderOptions {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci1vcHRpb25zLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci1vcHRpb25zLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0NBdUJsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogT3B0aW9ucyBwYXNzZWQgdG8ge0BsaW5rIENvbXBvbmVudExvYWRlci5zaG93fS5cclxuICogXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExvYWRlck9wdGlvbnMge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBjb250ZW50IHRvIGJlIGRyYXduIGluc2lkZSBgPG5nLWNvbnRlbnQ+YCBvZiBgQ29tcG9uZW50TG9hZGVyYCBhdHRhY2hlZCBjb21wb25lbnQuXHJcblx0ICogQHJlbWFya3NcclxuXHQgKiBgY29udGVudGAgY2FuIGJlIGBDb21wb25lbnRgICwgYFRlbXBsYXRlUmVmYCBvciBgU3RyaW5nYC5cclxuICAgKi9cclxuICBjb250ZW50Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgLyoqXHJcbiAgICogVGhlIGRhdGEgdG8gYmUgcGFzc2VkIHRvIHZpZXcgZm9yIGBUZW1wbGF0ZVJlZmAgY2FzZS5cclxuICAgKi9cclxuICBjb250ZXh0PzogdW5rbm93bjtcclxuICAvKipcclxuICAgKiBJbml0aWFsIGRhdGEgdG8gYmUgcGFzc2VkIHRvIGBjb250ZW50YCBmb3IgYENvbXBvbmVudGAgY2FzZS5cclxuICAgKi9cclxuICBpbml0aWFsU3RhdGU/OiB1bmtub3duO1xyXG4gIC8qKlxyXG4gICAqIE90aGVyIHByb3BlcnRpZXMgcGFzc2VkIHRvIGF0dGFjaGVkIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xyXG4gIC8qKlxyXG4gICAqIGlkYCAtIFRoZSBpZCBvZiB0aGUgYXR0YWNoZWQgY29tcG9uZW50IHJlZi5cclxuICAgKi9cclxuICBpZD86IG51bWJlciB8IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { ElementRef, TemplateRef, Injector, } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { ContentRef } from './content-ref.class';
|
|
4
|
+
/**
|
|
5
|
+
* Provides ways of loading and handling dynamic content.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}
|
|
9
|
+
* You can use this loader in two ways:
|
|
10
|
+
* - Attaches a component to `ViewContainerRef`.
|
|
11
|
+
* - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export class ComponentLoader {
|
|
16
|
+
constructor(vcr, cfr, applicationRef, injector) {
|
|
17
|
+
this.vcr = vcr;
|
|
18
|
+
this.cfr = cfr;
|
|
19
|
+
this.applicationRef = applicationRef;
|
|
20
|
+
this.injector = injector;
|
|
21
|
+
/**
|
|
22
|
+
* Before content is shown event.
|
|
23
|
+
*/
|
|
24
|
+
this.onBeforeShow = new Subject();
|
|
25
|
+
/**
|
|
26
|
+
* After show content event.
|
|
27
|
+
* @returns The id of newly created component ref.
|
|
28
|
+
*/
|
|
29
|
+
this.onShown = new Subject();
|
|
30
|
+
/**
|
|
31
|
+
* Before content is hidden event.
|
|
32
|
+
* @returns The instance of attached component;
|
|
33
|
+
*/
|
|
34
|
+
this.onBeforeHide = new Subject();
|
|
35
|
+
/**
|
|
36
|
+
* After content is hidden event.
|
|
37
|
+
* @returns The id of destroyed component ref.
|
|
38
|
+
*/
|
|
39
|
+
this.onHidden = new Subject();
|
|
40
|
+
this.providers = [];
|
|
41
|
+
this.containerDefaultSelector = 'body';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Attaches component.
|
|
45
|
+
* @param componentType - The type component to attach.
|
|
46
|
+
* @returns Current instance of {@link ComponentLoader}
|
|
47
|
+
*/
|
|
48
|
+
attach(componentType) {
|
|
49
|
+
this.componentFactory = this.cfr.resolveComponentFactory(componentType);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Body will be used in nothing is provided.
|
|
54
|
+
* @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.
|
|
55
|
+
* @returns Current instance of {@link ComponentLoader}
|
|
56
|
+
*/
|
|
57
|
+
to(container) {
|
|
58
|
+
this.container = container || this.container;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Adds provider to the providers array. These providers will be injected to the attached component.
|
|
63
|
+
*
|
|
64
|
+
* @see {@link https://angular.io/guide/glossary#di-token | Injection Token}
|
|
65
|
+
*
|
|
66
|
+
* @param provider - Provider to inject.
|
|
67
|
+
* @returns Current instance of {@link ComponentLoader}
|
|
68
|
+
*/
|
|
69
|
+
provide(provider) {
|
|
70
|
+
this.providers.push(provider);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Attaches attached component to dom and any dynamic content if provided.
|
|
75
|
+
* @remarks
|
|
76
|
+
* Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.
|
|
77
|
+
*
|
|
78
|
+
* @param options - {@link ComponentLoaderOptions}.
|
|
79
|
+
* @returns A reference to the created content.
|
|
80
|
+
*/
|
|
81
|
+
show(options = {}) {
|
|
82
|
+
if (this.componentRef) {
|
|
83
|
+
throw Error('Component is already shown');
|
|
84
|
+
}
|
|
85
|
+
if (!this.componentFactory) {
|
|
86
|
+
throw Error('You must attach a component');
|
|
87
|
+
}
|
|
88
|
+
this.onBeforeShow.next();
|
|
89
|
+
if (options.content) {
|
|
90
|
+
this.contentRef = this.getContentRef(options.content, options.context, options.initialState);
|
|
91
|
+
}
|
|
92
|
+
this.createComponentAndAttachToView(options);
|
|
93
|
+
this.appendContentToContainer();
|
|
94
|
+
this.markComponentsForCheck();
|
|
95
|
+
this.onShown.next(options.id);
|
|
96
|
+
return this.componentRef;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Removes attached component from dom.
|
|
100
|
+
* @remarks
|
|
101
|
+
* Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.
|
|
102
|
+
*
|
|
103
|
+
* @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.
|
|
104
|
+
* @returns Current instance of {@link ComponentLoader}
|
|
105
|
+
*/
|
|
106
|
+
hide(id, result) {
|
|
107
|
+
if (!this.componentRef) {
|
|
108
|
+
throw Error('No attached component found to hide');
|
|
109
|
+
}
|
|
110
|
+
this.onBeforeHide.next(this.componentRef.instance);
|
|
111
|
+
const componentEl = this.componentRef.location.nativeElement;
|
|
112
|
+
componentEl.parentNode.removeChild(componentEl);
|
|
113
|
+
if (this.contentRef?.componentRef) {
|
|
114
|
+
this.contentRef.componentRef.destroy();
|
|
115
|
+
}
|
|
116
|
+
if (this.vcr && this.contentRef?.viewRef) {
|
|
117
|
+
this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));
|
|
118
|
+
}
|
|
119
|
+
if (this.contentRef?.viewRef) {
|
|
120
|
+
this.contentRef.viewRef.destroy();
|
|
121
|
+
}
|
|
122
|
+
this.contentRef = void 0;
|
|
123
|
+
this.componentRef = void 0;
|
|
124
|
+
this.onHidden.next(id ? { id, result } : null);
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
getInnerComponent() {
|
|
128
|
+
return this.innerComponent;
|
|
129
|
+
}
|
|
130
|
+
markComponentsForCheck() {
|
|
131
|
+
if (this.contentRef?.componentRef) {
|
|
132
|
+
this.innerComponent = this.contentRef.componentRef.instance;
|
|
133
|
+
this.contentRef.componentRef.changeDetectorRef.markForCheck();
|
|
134
|
+
this.contentRef.componentRef.changeDetectorRef.detectChanges();
|
|
135
|
+
}
|
|
136
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
137
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
138
|
+
}
|
|
139
|
+
createComponentAndAttachToView(options) {
|
|
140
|
+
const injector = Injector.create({
|
|
141
|
+
providers: this.providers,
|
|
142
|
+
parent: this.injector,
|
|
143
|
+
});
|
|
144
|
+
this.componentRef = this.componentFactory.create(injector, this.contentRef?.nodes);
|
|
145
|
+
this.applicationRef.attachView(this.componentRef.hostView);
|
|
146
|
+
this.instance = this.componentRef.instance;
|
|
147
|
+
Object.assign(this.componentRef.instance, options);
|
|
148
|
+
}
|
|
149
|
+
appendContentToContainer() {
|
|
150
|
+
if (this.container instanceof ElementRef) {
|
|
151
|
+
this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);
|
|
152
|
+
}
|
|
153
|
+
if (typeof this.container === 'string' && typeof document !== 'undefined') {
|
|
154
|
+
const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);
|
|
155
|
+
if (!selectedElement) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
selectedElement.appendChild(this.componentRef?.location.nativeElement);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
getContentRef(content, context, initialState) {
|
|
162
|
+
//TemplateRef case
|
|
163
|
+
if (content instanceof TemplateRef) {
|
|
164
|
+
if (this.vcr) {
|
|
165
|
+
const viewRef = this.vcr.createEmbeddedView(content, context);
|
|
166
|
+
viewRef.markForCheck();
|
|
167
|
+
return new ContentRef([viewRef.rootNodes], viewRef);
|
|
168
|
+
}
|
|
169
|
+
const viewRef = content.createEmbeddedView({});
|
|
170
|
+
this.applicationRef.attachView(viewRef);
|
|
171
|
+
return new ContentRef([viewRef.rootNodes], viewRef);
|
|
172
|
+
}
|
|
173
|
+
//Component case
|
|
174
|
+
if (typeof content === 'function') {
|
|
175
|
+
const contentCf = this.cfr.resolveComponentFactory(content);
|
|
176
|
+
const injector = Injector.create({
|
|
177
|
+
providers: this.providers,
|
|
178
|
+
parent: this.injector,
|
|
179
|
+
});
|
|
180
|
+
const componentRef = contentCf.create(injector);
|
|
181
|
+
Object.assign(componentRef.instance, initialState);
|
|
182
|
+
this.applicationRef.attachView(componentRef.hostView);
|
|
183
|
+
return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);
|
|
184
|
+
}
|
|
185
|
+
throw Error('Unsupported content type');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLFVBQVUsRUFFVixXQUFXLEVBR1gsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQTZCMUIsWUFDVSxHQUFpQyxFQUNqQyxHQUE2QixFQUM3QixjQUE4QixFQUM5QixRQUFrQjtRQUhsQixRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUNqQyxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhDNUI7O1dBRUc7UUFDSCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0I7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDeEI7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCOzs7V0FHRztRQUNILGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTWpCLGNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBRWpDLDZCQUF3QixHQUFHLE1BQU0sQ0FBQztJQU92QyxDQUFDO0lBRUo7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFzQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FB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QUFDO1NBQ3JEO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3JHO1FBRUQsTUFBTSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgVHlwZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIFN0YXRpY1Byb3ZpZGVyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBJbmplY3RvcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9jb21wb25lbnQtbG9hZGVyLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBDb250ZW50UmVmIH0gZnJvbSAnLi9jb250ZW50LXJlZi5jbGFzcyc7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgd2F5cyBvZiBsb2FkaW5nIGFuZCBoYW5kbGluZyBkeW5hbWljIGNvbnRlbnQuXHJcbiAqXHJcbiAqIEByZW1hcmtzXHJcbiAqIERvIE5PVCB1c2UgdGhpcyBkaXJlY3RseSwgY3JlYXRlIGFuIGluc3RhbmNlIHRocm91Z2gge0BsaW5rIENvbXBvbmVudExvYWRlckZhY3Rvcnl9XHJcbiAqIFlvdSBjYW4gdXNlIHRoaXMgbG9hZGVyIGluIHR3byB3YXlzOlxyXG4gKiAtIEF0dGFjaGVzIGEgY29tcG9uZW50IHRvIGBWaWV3Q29udGFpbmVyUmVmYC5cclxuICogLSBBdHRhY2hlcyBhIGNvbXBvbmVudCB0byBgVmlld0NvbnRhaW5lclJlZmAuIFRoZSBhdHRhY2hlZCBjb21wb25lbnQgaGFzIGEgYDxuZy1jb250ZW50PmAgdGFnIGluc2lkZSBpdHMgdmlldy4gVGhlIHtAbGluayBDb21wb25lbnRMb2FkZXJPcHRpb25zLmNvbnRlbnR9IHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMgdGFnLlxyXG4gKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXI8VD4ge1xyXG4gIC8qKlxyXG4gICAqIEJlZm9yZSBjb250ZW50IGlzIHNob3duIGV2ZW50LlxyXG4gICAqL1xyXG4gIG9uQmVmb3JlU2hvdyA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLyoqXHJcbiAgICogQWZ0ZXIgc2hvdyBjb250ZW50IGV2ZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiBuZXdseSBjcmVhdGVkIGNvbXBvbmVudCByZWYuXHJcbiAgICovXHJcbiAgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLyoqXHJcbiAgICogQmVmb3JlIGNvbnRlbnQgaXMgaGlkZGVuIGV2ZW50LlxyXG4gICAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiBhdHRhY2hlZCBjb21wb25lbnQ7XHJcbiAgICovXHJcbiAgb25CZWZvcmVIaWRlID0gbmV3IFN1YmplY3QoKTtcclxuICAvKipcclxuICAgKiBBZnRlciBjb250ZW50IGlzIGhpZGRlbiBldmVudC5cclxuICAgKiBAcmV0dXJucyBUaGUgaWQgb2YgZGVzdHJveWVkIGNvbXBvbmVudCByZWYuXHJcbiAgICovXHJcbiAgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwdWJsaWMgaW5zdGFuY2U/OiBUO1xyXG4gIHB1YmxpYyBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8VD47XHJcbiAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5PzogQ29tcG9uZW50RmFjdG9yeTxUPjtcclxuICBwcml2YXRlIGNvbnRhaW5lcjogc3RyaW5nIHwgRWxlbWVudFJlZiB8IGFueTtcclxuICBwcml2YXRlIHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtdO1xyXG4gIHByaXZhdGUgY29udGVudFJlZj86IENvbnRlbnRSZWY7XHJcbiAgcHJpdmF0ZSBjb250YWluZXJEZWZhdWx0U2VsZWN0b3IgPSAnYm9keSc7XHJcbiAgcHJpdmF0ZSBpbm5lckNvbXBvbmVudD86IENvbXBvbmVudFJlZjxUPjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkLFxyXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dGFjaGVzIGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0gY29tcG9uZW50VHlwZSAtIFRoZSB0eXBlIGNvbXBvbmVudCB0byBhdHRhY2guXHJcbiAgICogQHJldHVybnMgQ3VycmVudCBpbnN0YW5jZSBvZiB7QGxpbmsgQ29tcG9uZW50TG9hZGVyfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdHRhY2goY29tcG9uZW50VHlwZTogVHlwZTxUPik6IENvbXBvbmVudExvYWRlcjxUPiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnRUeXBlKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQm9keSB3aWxsIGJlIHVzZWQgaW4gbm90aGluZyBpcyBwcm92aWRlZC5cclxuICAgKiBAcGFyYW0gY29udGFpbmVyIC0gVGhlIGVsZW1lbnQgaW4gd2hpY2ggZHluYW1pYyBjb250ZW50IHdpbGwgYmUgZHJhd24gaW5zaWRlIHRvLiBGb3Igc3RyaW5nIGNhc2UgYSBxdWVyeSB0byB0aGUgZG9tIHdpbGwgYmUgZXhlY3V0ZWQgdG8gZmluZCB0aGUgZWxlbWVudC5cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHRvKGNvbnRhaW5lcj86IHN0cmluZyB8IEVsZW1lbnRSZWYpOiBDb21wb25lbnRMb2FkZXI8VD4ge1xyXG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXIgfHwgdGhpcy5jb250YWluZXI7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgcHJvdmlkZXIgdG8gdGhlIHByb3ZpZGVycyBhcnJheS4gVGhlc2UgcHJvdmlkZXJzIHdpbGwgYmUgaW5qZWN0ZWQgdG8gdGhlIGF0dGFjaGVkIGNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9nbG9zc2FyeSNkaS10b2tlbiB8IEluamVjdGlvbiBUb2tlbn1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFByb3ZpZGVyIHRvIGluamVjdC5cclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICovXHJcbiAgcHVibGljIHByb3ZpZGUocHJvdmlkZXI6IFN0YXRpY1Byb3ZpZGVyKTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcclxuICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBdHRhY2hlcyBhdHRhY2hlZCBjb21wb25lbnQgdG8gZG9tIGFuZCBhbnkgZHluYW1pYyBjb250ZW50IGlmIHByb3ZpZGVkLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogQWxzbyB0cmlnZ2VycyB0aGUge0BsaW5rIENvbXBvbmVudExvYWRlci5vbkJlZm9yZVNob3d9IGFuZCB7QGxpbmsgQ29tcG9uZW50TG9hZGVyLm9uU2hvd259IGV2ZW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0ge0BsaW5rIENvbXBvbmVudExvYWRlck9wdGlvbnN9LlxyXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIGNvbnRlbnQuXHJcbiAgICovXHJcbiAgcHVibGljIHNob3cob3B0aW9uczogQ29tcG9uZW50TG9hZGVyT3B0aW9ucyA9IHt9KTogQ29tcG9uZW50UmVmPFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xyXG4gICAgICB0aHJvdyBFcnJvcignQ29tcG9uZW50IGlzIGFscmVhZHkgc2hvd24nKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jb21wb25lbnRGYWN0b3J5KSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdZb3UgbXVzdCBhdHRhY2ggYSBjb21wb25lbnQnKTtcclxuICAgIH1cclxuICAgIHRoaXMub25CZWZvcmVTaG93Lm5leHQoKTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5jb250ZW50KSB7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZiA9IHRoaXMuZ2V0Q29udGVudFJlZihvcHRpb25zLmNvbnRlbnQsIG9wdGlvbnMuY29udGV4dCwgb3B0aW9ucy5pbml0aWFsU3RhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnRBbmRBdHRhY2hUb1ZpZXcob3B0aW9ucyk7XHJcbiAgICB0aGlzLmFwcGVuZENvbnRlbnRUb0NvbnRhaW5lcigpO1xyXG4gICAgdGhpcy5tYXJrQ29tcG9uZW50c0ZvckNoZWNrKCk7XHJcblxyXG4gICAgdGhpcy5vblNob3duLm5leHQob3B0aW9ucy5pZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhdHRhY2hlZCBjb21wb25lbnQgZnJvbSBkb20uXHJcbiAgICogQHJlbWFya3NcclxuICAgKiBBbHNvIHRyaWdnZXJzIHRoZSB7QGxpbmsgQ29tcG9uZW50TG9hZGVyLm9uQmVmb3JlSGlkZX0gYW5kIHtAbGluayBDb21wb25lbnRMb2FkZXIub25IaWRkZW59IGV2ZW50cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCAtIElmIHByb3ZpZGVkIGl0IGlzIHJldHVybmVkIHRocm91Z2ggdGhlIHtAbGluayBDb21wb25lbnRMb2FkZXIub25IaWRkZW59LlxyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgaW5zdGFuY2Ugb2Yge0BsaW5rIENvbXBvbmVudExvYWRlcn1cclxuICAgKi9cclxuICBwdWJsaWMgaGlkZShpZD86IG51bWJlciB8IHN0cmluZywgcmVzdWx0PzogYW55KTogQ29tcG9uZW50TG9hZGVyPFQ+IHtcclxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ05vIGF0dGFjaGVkIGNvbXBvbmVudCBmb3VuZCB0byBoaWRlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vbkJlZm9yZUhpZGUubmV4dCh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50RWwgPSB0aGlzLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29tcG9uZW50RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb21wb25lbnRFbCk7XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb250ZW50UmVmLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52Y3IgJiYgdGhpcy5jb250ZW50UmVmPy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMudmNyLnJlbW92ZSh0aGlzLnZjci5pbmRleE9mKHRoaXMuY29udGVudFJlZi52aWV3UmVmKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi52aWV3UmVmLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGVudFJlZiA9IHZvaWQgMDtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdm9pZCAwO1xyXG5cclxuICAgIHRoaXMub25IaWRkZW4ubmV4dChpZCA/IHsgaWQsIHJlc3VsdCB9IDogbnVsbCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBnZXRJbm5lckNvbXBvbmVudCgpOiBDb21wb25lbnRSZWY8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5uZXJDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcmtDb21wb25lbnRzRm9yQ2hlY2soKSB7XHJcbiAgICBpZiAodGhpcy5jb250ZW50UmVmPy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5pbm5lckNvbXBvbmVudCA9IHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIHRoaXMuY29udGVudFJlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb21wb25lbnRSZWYhLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWYhLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50QW5kQXR0YWNoVG9WaWV3KG9wdGlvbnM6IENvbXBvbmVudExvYWRlck9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiB0aGlzLnByb3ZpZGVycyxcclxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeSEuY3JlYXRlKGluamVjdG9yLCB0aGlzLmNvbnRlbnRSZWY/Lm5vZGVzKTtcclxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwZW5kQ29udGVudFRvQ29udGFpbmVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xyXG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY29tcG9uZW50UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWluZXIgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lcikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lckRlZmF1bHRTZWxlY3Rvcik7XHJcbiAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHNlbGVjdGVkRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbXBvbmVudFJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRlbnRSZWYoY29udGVudD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sIGNvbnRleHQ/OiBhbnksIGluaXRpYWxTdGF0ZT86IGFueSk6IENvbnRlbnRSZWYge1xyXG4gICAgLy9UZW1wbGF0ZVJlZiBjYXNlXHJcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICh0aGlzLnZjcikge1xyXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXc8VGVtcGxhdGVSZWY8VD4+KGNvbnRlbnQsIGNvbnRleHQpO1xyXG4gICAgICAgIHZpZXdSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFt2aWV3UmVmLnJvb3ROb2Rlc10sIHZpZXdSZWYpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHZpZXdSZWYgPSBjb250ZW50LmNyZWF0ZUVtYmVkZGVkVmlldyh7fSk7XHJcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh2aWV3UmVmKTtcclxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFt2aWV3UmVmLnJvb3ROb2Rlc10sIHZpZXdSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ29tcG9uZW50IGNhc2VcclxuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjb250ZW50Q2YgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb250ZW50KTtcclxuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5wcm92aWRlcnMsXHJcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGVudENmLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCBpbml0aWFsU3RhdGUpO1xyXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50UmVmKFtbY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRdXSwgY29tcG9uZW50UmVmLmhvc3RWaWV3LCBjb21wb25lbnRSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIHRocm93IEVycm9yKCdVbnN1cHBvcnRlZCBjb250ZW50IHR5cGUnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ComponentLoader } from './component-loader.class';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Use to create instances of {@link ComponentLoader}.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export class ComponentLoaderFactory {
|
|
10
|
+
constructor(componentFactoryResolver, injector, applicationRef) {
|
|
11
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
12
|
+
this.injector = injector;
|
|
13
|
+
this.applicationRef = applicationRef;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Returns a new instance of {@link ComponentLoader}
|
|
17
|
+
* @param viewContainerRef - The view container the dynamic content will be attached to.
|
|
18
|
+
* @returns A new instance of {@link ComponentLoader}.
|
|
19
|
+
*
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
createLoader(viewContainerRef) {
|
|
23
|
+
return new ComponentLoader(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
+
ComponentLoaderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ComponentLoaderFactory, providedIn: 'root' });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
|
|
29
|
+
type: Injectable,
|
|
30
|
+
args: [{ providedIn: 'root' }]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxvYWRlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEMsVUFBVSxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRTNEOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1Usd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLGNBQThCO1FBRjlCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDckMsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBSSxnQkFBbUM7UUFDakQsT0FBTyxJQUFJLGVBQWUsQ0FBSSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckgsQ0FBQzs7bUhBaEJVLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRFQsTUFBTTsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4vY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcblxyXG4vKipcclxuICogVXNlIHRvIGNyZWF0ZSBpbnN0YW5jZXMgb2Yge0BsaW5rIENvbXBvbmVudExvYWRlcn0uXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRMb2FkZXJGYWN0b3J5IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9XHJcbiAgICogQHBhcmFtIHZpZXdDb250YWluZXJSZWYgLSBUaGUgdmlldyBjb250YWluZXIgdGhlIGR5bmFtaWMgY29udGVudCB3aWxsIGJlIGF0dGFjaGVkIHRvLlxyXG4gICAqIEByZXR1cm5zIEEgbmV3IGluc3RhbmNlIG9mIHtAbGluayBDb21wb25lbnRMb2FkZXJ9LlxyXG4gICAqXHJcbiAgICogQHB1YmxpY1xyXG4gICAqL1xyXG4gIGNyZWF0ZUxvYWRlcjxUPih2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudExvYWRlcjxUPiB7XHJcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudExvYWRlcjxUPih2aWV3Q29udGFpbmVyUmVmLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgdGhpcy5hcHBsaWNhdGlvblJlZiwgdGhpcy5pbmplY3Rvcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holds information about the dynamic content.
|
|
3
|
+
* @remarks
|
|
4
|
+
* `ComponentRef` is undefined in the case content is of `TemplateRef` type.
|
|
5
|
+
*/
|
|
6
|
+
export class ContentRef {
|
|
7
|
+
constructor(nodes, viewRef, componentRef) {
|
|
8
|
+
this.nodes = nodes;
|
|
9
|
+
this.viewRef = viewRef;
|
|
10
|
+
this.componentRef = componentRef;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZWYuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvY29tcG9uZW50LWxvYWRlci9jb250ZW50LXJlZi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBbUIsS0FBWSxFQUFTLE9BQWlCLEVBQVMsWUFBZ0M7UUFBL0UsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBUyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7SUFBRyxDQUFDO0NBQ3ZHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBWaWV3UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogSG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGR5bmFtaWMgY29udGVudC5cclxuICogQHJlbWFya3NcclxuICogYENvbXBvbmVudFJlZmAgaXMgdW5kZWZpbmVkIGluIHRoZSBjYXNlIGNvbnRlbnQgaXMgb2YgYFRlbXBsYXRlUmVmYCB0eXBlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbnRlbnRSZWYge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBub2RlczogYW55W10sIHB1YmxpYyB2aWV3UmVmPzogVmlld1JlZiwgcHVibGljIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+KSB7fVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { animationTime, cssClassNames } from './modal-styles.class';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Background layer for modals.
|
|
6
|
+
* Override class name to theme it.
|
|
7
|
+
* @see {@link cssClassNames}
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export class ModalBackdropComponent {
|
|
11
|
+
constructor(element, renderer) {
|
|
12
|
+
this.element = element;
|
|
13
|
+
this.renderer = renderer;
|
|
14
|
+
this.animationsEnabled = false;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
if (this.animationsEnabled) {
|
|
18
|
+
this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);
|
|
19
|
+
this.reflow(this.element.nativeElement);
|
|
20
|
+
}
|
|
21
|
+
this.renderer.addClass(this.element.nativeElement, cssClassNames.show);
|
|
22
|
+
}
|
|
23
|
+
hide() {
|
|
24
|
+
this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);
|
|
25
|
+
setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);
|
|
26
|
+
}
|
|
27
|
+
reflow(element) {
|
|
28
|
+
((bs) => bs)(element.offsetHeight);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
ModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ModalBackdropComponent, selector: "lib-modal-backdrop", host: { classAttribute: "modal-backdrop" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ModalBackdropComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{
|
|
36
|
+
selector: 'lib-modal-backdrop',
|
|
37
|
+
encapsulation: ViewEncapsulation.None,
|
|
38
|
+
template: '',
|
|
39
|
+
host: {
|
|
40
|
+
class: cssClassNames.backdrop,
|
|
41
|
+
},
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRjVELHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVxQyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLENBQUMsQ0FBQyxFQUFPLEVBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0dBTHZCLEVBQUU7MkZBS0Qsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGFBQWEsQ0FBQyxRQUFRO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBsYXllciBmb3IgbW9kYWxzLlxyXG4gKiBPdmVycmlkZSBjbGFzcyBuYW1lIHRvIHRoZW1lIGl0LlxyXG4gKiBAc2VlIHtAbGluayBjc3NDbGFzc05hbWVzfVxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWJhY2tkcm9wJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogY3NzQ2xhc3NOYW1lcy5iYWNrZHJvcCxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYWNrZHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBhbmltYXRpb25zRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgICB0aGlzLnJlZmxvdyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGUoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJhY2tkcm9wTG9hZGVyPy5oaWRlKCksIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMCk7XHJcbiAgfVxyXG5cclxuICByZWZsb3coZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICAoKGJzOiBhbnkpOiB2b2lkID0+IGJzKShlbGVtZW50Lm9mZnNldEhlaWdodCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|