@indice/ng-components 0.2.174 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_styles.scss +63 -15
- package/{esm2020 → esm2022}/indice-ng-components.mjs +4 -4
- package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +156 -0
- package/esm2022/lib/controls/advanced-search/models.mjs +109 -0
- package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
- package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -14
- package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -26
- package/{esm2020 → esm2022}/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -20
- package/esm2022/lib/controls/combobox/combobox.component.mjs +121 -0
- package/esm2022/lib/controls/content-tile/content-tile-header/content-tile-header.component.mjs +17 -0
- package/esm2022/lib/controls/content-tile/content-tile-item/content-tile-item.component.mjs +19 -0
- package/esm2022/lib/controls/content-tile/content-tile.component.mjs +63 -0
- package/esm2022/lib/controls/date-picker/date-picker.component.mjs +300 -0
- package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +72 -0
- package/{esm2020 → esm2022}/lib/controls/kpi-tile/kpi-tile.component.mjs +43 -43
- package/esm2022/lib/controls/language-selection/language-selection.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/controls/list-view/list-column.component.mjs +25 -25
- package/{esm2020 → esm2022}/lib/controls/list-view/list-details-section.component.mjs +17 -17
- package/{esm2020 → esm2022}/lib/controls/list-view/list-tile.component.mjs +17 -17
- package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
- package/esm2022/lib/controls/list-view/list-view.component.mjs +210 -0
- package/{esm2020 → esm2022}/lib/controls/nav-links-list/nav-links-list.component.mjs +54 -54
- package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
- package/esm2022/lib/controls/pager/pager.component.mjs +130 -0
- package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +46 -0
- package/esm2022/lib/controls/side-pane/side-pane.component.mjs +87 -0
- package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +29 -0
- package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +49 -0
- package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-info.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-label.directive.mjs +16 -16
- package/esm2022/lib/controls/stepper/lib-step.component.mjs +81 -0
- package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +108 -0
- package/{esm2020 → esm2022}/lib/controls/stepper/types/step-selected-event.mjs +3 -3
- package/{esm2020 → esm2022}/lib/controls/stepper/types/stepper-type.mjs +11 -11
- package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +66 -0
- package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab-label.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab.component.mjs +57 -57
- package/{esm2020 → esm2022}/lib/controls/toaster/toaster-container.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/controls/toaster/toaster.component.mjs +31 -31
- package/esm2022/lib/controls/toggle/toggle.component.mjs +64 -0
- package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +87 -0
- package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +34 -0
- package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
- package/esm2022/lib/directives/click-outside.directive.mjs +189 -0
- package/{esm2020 → esm2022}/lib/directives/dynamic-component-host.directive.mjs +17 -17
- package/esm2022/lib/helpers/base-list.component.mjs +230 -0
- package/esm2022/lib/icons.mjs +36 -0
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -19
- package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
- package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +90 -0
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +54 -54
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -45
- package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +20 -20
- package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +86 -0
- package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +101 -0
- package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +106 -0
- package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
- package/esm2022/lib/ng-components.module.mjs +320 -0
- package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
- package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/pages/auth/logged-out/logged-out.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/pages/http-status/error/error.component.mjs +17 -17
- package/{esm2020 → esm2022}/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -14
- package/esm2022/lib/pipes/address.pipe.mjs +21 -0
- package/esm2022/lib/pipes/duration-format.pipe.mjs +64 -0
- package/esm2022/lib/pipes/short-number.pipe.mjs +43 -0
- package/esm2022/lib/services/breadcrumb.service.mjs +174 -0
- package/{esm2020 → esm2022}/lib/services/component-loader/component-loader-options.class.mjs +7 -7
- package/esm2022/lib/services/component-loader/component-loader.class.mjs +188 -0
- package/esm2022/lib/services/component-loader/component-loader.factory.mjs +32 -0
- package/{esm2020 → esm2022}/lib/services/component-loader/content-ref.class.mjs +12 -12
- package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
- package/esm2022/lib/services/modal-service/modal-container-component.mjs +126 -0
- package/{esm2020 → esm2022}/lib/services/modal-service/modal-options.class.mjs +35 -35
- package/esm2022/lib/services/modal-service/modal-service.mjs +220 -0
- package/{esm2020 → esm2022}/lib/services/modal-service/modal-styles.class.mjs +10 -10
- package/{esm2020 → esm2022}/lib/services/modal-service/modal.class.mjs +27 -27
- package/{esm2020 → esm2022}/lib/services/toaster.service.mjs +26 -26
- package/esm2022/lib/services/user-settings.service.mjs +35 -0
- package/esm2022/lib/services/utilities.service.mjs +47 -0
- package/{esm2020 → esm2022}/lib/tokens.mjs +7 -7
- package/esm2022/lib/types.mjs +133 -0
- package/{esm2020 → esm2022}/public-api.mjs +78 -70
- package/{fesm2020 → fesm2022}/indice-ng-components.mjs +4898 -4592
- package/fesm2022/indice-ng-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/controls/advanced-search/advanced-search.component.d.ts +40 -40
- package/lib/controls/advanced-search/models.d.ts +91 -91
- package/lib/controls/avatar-initials/avatar-initials.component.d.ts +14 -14
- package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -7
- package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -12
- package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +10 -10
- package/lib/controls/combobox/combobox.component.d.ts +35 -34
- package/lib/controls/content-tile/content-tile-header/content-tile-header.component.d.ts +7 -0
- package/lib/controls/content-tile/content-tile-item/content-tile-item.component.d.ts +8 -0
- package/lib/controls/content-tile/content-tile.component.d.ts +23 -0
- package/lib/controls/date-picker/date-picker.component.d.ts +53 -53
- package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +26 -26
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +15 -15
- package/lib/controls/language-selection/language-selection.component.d.ts +14 -14
- package/lib/controls/list-view/list-column.component.d.ts +9 -9
- package/lib/controls/list-view/list-details-section.component.d.ts +7 -7
- package/lib/controls/list-view/list-tile.component.d.ts +7 -7
- package/lib/controls/list-view/list-view-empty-state.component.d.ts +11 -11
- package/lib/controls/list-view/list-view.component.d.ts +62 -61
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +21 -21
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +22 -22
- package/lib/controls/pager/pager.component.d.ts +36 -36
- package/lib/controls/progress-bar/progress-bar.component.d.ts +16 -0
- package/lib/controls/side-pane/side-pane.component.d.ts +22 -18
- package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +12 -11
- package/lib/controls/stats-grid/stats-grid.component.d.ts +16 -0
- package/lib/controls/stepper/lib-step-info.directive.d.ts +8 -8
- package/lib/controls/stepper/lib-step-label.directive.d.ts +8 -8
- package/lib/controls/stepper/lib-step.component.d.ts +34 -34
- package/lib/controls/stepper/lib-stepper.component.d.ts +43 -43
- package/lib/controls/stepper/types/step-selected-event.d.ts +12 -12
- package/lib/controls/stepper/types/stepper-type.d.ts +10 -10
- package/lib/controls/tabs/lib-tab-group.component.d.ts +21 -21
- package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -8
- package/lib/controls/tabs/lib-tab.component.d.ts +24 -24
- package/lib/controls/toaster/toaster-container.component.d.ts +13 -13
- package/lib/controls/toaster/toaster.component.d.ts +15 -15
- package/lib/controls/toggle/toggle.component.d.ts +19 -19
- package/lib/controls/toggle-button/toggle-button.component.d.ts +25 -25
- package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +15 -14
- package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +24 -24
- package/lib/directives/click-outside.directive.d.ts +40 -40
- package/lib/directives/dynamic-component-host.directive.d.ts +9 -9
- package/lib/helpers/base-list.component.d.ts +54 -53
- package/lib/icons.d.ts +34 -34
- package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +8 -8
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +39 -39
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +26 -26
- package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +20 -20
- package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -14
- package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +15 -15
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -10
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +26 -24
- package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +42 -42
- package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +29 -28
- package/lib/layouts/views/view-layout/view-layout.component.d.ts +31 -31
- package/lib/ng-components.module.d.ts +71 -65
- package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +13 -13
- package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +12 -12
- package/lib/pages/auth/logged-out/logged-out.component.d.ts +12 -12
- package/lib/pages/http-status/error/error.component.d.ts +8 -8
- package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +8 -8
- package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -8
- package/lib/pipes/address.pipe.d.ts +8 -8
- package/lib/pipes/duration-format.pipe.d.ts +8 -8
- package/lib/pipes/short-number.pipe.d.ts +7 -0
- package/lib/services/breadcrumb.service.d.ts +29 -29
- package/lib/services/component-loader/component-loader-options.class.d.ts +30 -30
- package/lib/services/component-loader/component-loader.class.d.ts +92 -92
- package/lib/services/component-loader/component-loader.factory.d.ts +24 -24
- package/lib/services/component-loader/content-ref.class.d.ts +12 -12
- package/lib/services/modal-service/modal-backdrop-component.d.ts +20 -20
- package/lib/services/modal-service/modal-container-component.d.ts +33 -33
- package/lib/services/modal-service/modal-options.class.d.ts +81 -81
- package/lib/services/modal-service/modal-service.d.ts +58 -58
- package/lib/services/modal-service/modal-styles.class.d.ts +10 -10
- package/lib/services/modal-service/modal.class.d.ts +43 -43
- package/lib/services/toaster.service.d.ts +11 -11
- package/lib/services/user-settings.service.d.ts +13 -13
- package/lib/services/utilities.service.d.ts +11 -11
- package/lib/tokens.d.ts +10 -10
- package/lib/types.d.ts +179 -177
- package/package.json +14 -21
- package/public-api.d.ts +68 -60
- package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +0 -156
- package/esm2020/lib/controls/advanced-search/models.mjs +0 -109
- package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
- package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -117
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -292
- package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
- package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
- package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
- package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -206
- package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
- package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
- package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
- package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
- package/esm2020/lib/controls/stepper/lib-step.component.mjs +0 -81
- package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +0 -108
- package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
- package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
- package/esm2020/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
- package/esm2020/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -31
- package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
- package/esm2020/lib/directives/click-outside.directive.mjs +0 -189
- package/esm2020/lib/helpers/base-list.component.mjs +0 -226
- package/esm2020/lib/icons.mjs +0 -36
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -130
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -90
- package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -30
- package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
- package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -101
- package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
- package/esm2020/lib/ng-components.module.mjs +0 -288
- package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
- package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
- package/esm2020/lib/pipes/address.pipe.mjs +0 -21
- package/esm2020/lib/pipes/duration-format.pipe.mjs +0 -64
- package/esm2020/lib/services/breadcrumb.service.mjs +0 -174
- package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
- package/esm2020/lib/services/component-loader/component-loader.factory.mjs +0 -32
- package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
- package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
- package/esm2020/lib/services/modal-service/modal-service.mjs +0 -220
- package/esm2020/lib/services/user-settings.service.mjs +0 -35
- package/esm2020/lib/services/utilities.service.mjs +0 -47
- package/esm2020/lib/types.mjs +0 -132
- package/fesm2015/indice-ng-components.mjs +0 -4852
- package/fesm2015/indice-ng-components.mjs.map +0 -1
- package/fesm2020/indice-ng-components.mjs.map +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { Component, HostListener } from '@angular/core';
|
|
2
|
-
import { animationTime, cssClassNames } from './modal-styles.class';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./modal-options.class";
|
|
5
|
-
/**
|
|
6
|
-
* Modal container component.
|
|
7
|
-
* @remarks
|
|
8
|
-
* All dynamic content `TemplateRef` or `Component` case will be drawn inside this.
|
|
9
|
-
* You can override css classes to theme it {@link cssClassNames}
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export class ModalContainerComponent {
|
|
13
|
-
constructor(options, _element, renderer) {
|
|
14
|
-
this._element = _element;
|
|
15
|
-
this.renderer = renderer;
|
|
16
|
-
this.isShown = false;
|
|
17
|
-
this.animationsEnabled = false;
|
|
18
|
-
this.isModalHiding = false;
|
|
19
|
-
this.clickStartedInContent = false;
|
|
20
|
-
this.config = Object.assign({}, options);
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
if (this.animationsEnabled) {
|
|
24
|
-
this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);
|
|
25
|
-
}
|
|
26
|
-
this.renderer.setStyle(this._element.nativeElement, 'display', 'block');
|
|
27
|
-
setTimeout(() => {
|
|
28
|
-
this.isShown = true;
|
|
29
|
-
this.renderer.addClass(this._element.nativeElement, cssClassNames.show);
|
|
30
|
-
}, this.animationsEnabled ? animationTime.backdrop : 0);
|
|
31
|
-
if (this._element.nativeElement) {
|
|
32
|
-
this._element.nativeElement.focus();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
onClickStarted(event) {
|
|
36
|
-
this.clickStartedInContent = event.target !== this._element.nativeElement;
|
|
37
|
-
}
|
|
38
|
-
onClickStop(event) {
|
|
39
|
-
const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;
|
|
40
|
-
if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {
|
|
41
|
-
this.clickStartedInContent = false;
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
this.hide();
|
|
45
|
-
}
|
|
46
|
-
onPopState() {
|
|
47
|
-
this.hide();
|
|
48
|
-
}
|
|
49
|
-
onEsc(event) {
|
|
50
|
-
if (!this.isShown) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {
|
|
54
|
-
event.preventDefault();
|
|
55
|
-
}
|
|
56
|
-
if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {
|
|
57
|
-
this.hide();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
ngOnDestroy() {
|
|
61
|
-
if (this.isShown) {
|
|
62
|
-
this._hide();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
hide(result) {
|
|
66
|
-
if (this.isModalHiding || !this.isShown) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (this.config.closeInterceptor) {
|
|
70
|
-
this.config.closeInterceptor().then(() => this._hide(), () => undefined);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
this._hide(result);
|
|
74
|
-
}
|
|
75
|
-
_hide(result) {
|
|
76
|
-
this.isModalHiding = true;
|
|
77
|
-
this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);
|
|
78
|
-
setTimeout(() => {
|
|
79
|
-
this.isShown = false;
|
|
80
|
-
this.modalService?.hide(this.config.id, result);
|
|
81
|
-
this.isModalHiding = false;
|
|
82
|
-
}, this.animationsEnabled ? animationTime.modal : 0);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i1.ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ModalContainerComponent, selector: "lib-modal-container", host: { attributes: { "role": "dialog", "tabindex": "-1" }, listeners: { "mousedown": "onClickStarted($event)", "click": "onClickStop($event)", "window:popstate": "onPopState()", "window:keydown.esc": "onEsc($event)" }, properties: { "attr.aria-modal": "true", "attr.aria-labelledby": "config.ariaLabelledBy", "attr.aria-describedby": "config.ariaDescribedby" }, classAttribute: "modal" }, ngImport: i0, template: `
|
|
87
|
-
<div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
|
|
88
|
-
<div class="modal-content">
|
|
89
|
-
<ng-content></ng-content>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
`, isInline: true });
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalContainerComponent, decorators: [{
|
|
94
|
-
type: Component,
|
|
95
|
-
args: [{
|
|
96
|
-
selector: 'lib-modal-container',
|
|
97
|
-
template: `
|
|
98
|
-
<div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
|
|
99
|
-
<div class="modal-content">
|
|
100
|
-
<ng-content></ng-content>
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
`,
|
|
104
|
-
host: {
|
|
105
|
-
class: 'modal',
|
|
106
|
-
role: 'dialog',
|
|
107
|
-
tabindex: '-1',
|
|
108
|
-
'[attr.aria-modal]': 'true',
|
|
109
|
-
'[attr.aria-labelledby]': 'config.ariaLabelledBy',
|
|
110
|
-
'[attr.aria-describedby]': 'config.ariaDescribedby',
|
|
111
|
-
},
|
|
112
|
-
}]
|
|
113
|
-
}], ctorParameters: function () { return [{ type: i1.ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { onClickStarted: [{
|
|
114
|
-
type: HostListener,
|
|
115
|
-
args: ['mousedown', ['$event']]
|
|
116
|
-
}], onClickStop: [{
|
|
117
|
-
type: HostListener,
|
|
118
|
-
args: ['click', ['$event']]
|
|
119
|
-
}], onPopState: [{
|
|
120
|
-
type: HostListener,
|
|
121
|
-
args: ['window:popstate']
|
|
122
|
-
}], onEsc: [{
|
|
123
|
-
type: HostListener,
|
|
124
|
-
args: ['window:keydown.esc', ['$event']]
|
|
125
|
-
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLWNvbnRhaW5lci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUlwRTs7Ozs7O0dBTUc7QUFtQkgsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFZLE9BQXFCLEVBQVksUUFBb0IsRUFBVSxRQUFtQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RSxVQUFVLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFD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QUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQyxFQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs7b0hBN0ZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGljQWhCeEI7Ozs7OztHQU1UOzJGQVVVLHVCQUF1QjtrQkFsQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLE9BQU87d0JBQ2QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7d0JBQ2QsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0Isd0JBQXdCLEVBQUUsdUJBQXVCO3dCQUNqRCx5QkFBeUIsRUFBRSx3QkFBd0I7cUJBQ3BEO2lCQUNGO29KQStCQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVdqQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCO2dCQU0vQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbmltYXRpb25UaW1lLCBjc3NDbGFzc05hbWVzIH0gZnJvbSAnLi9tb2RhbC1zdHlsZXMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tICcuL21vZGFsLW9wdGlvbnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLXNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFsIGNvbnRhaW5lciBjb21wb25lbnQuXHJcbiAqIEByZW1hcmtzXHJcbiAqIEFsbCBkeW5hbWljIGNvbnRlbnQgYFRlbXBsYXRlUmVmYCBvciBgQ29tcG9uZW50YCBjYXNlIHdpbGwgYmUgZHJhd24gaW5zaWRlIHRoaXMuXHJcbiAqIFlvdSBjYW4gb3ZlcnJpZGUgY3NzIGNsYXNzZXMgdG8gdGhlbWUgaXQge0BsaW5rIGNzc0NsYXNzTmFtZXN9XHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbW9kYWwtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoY29uZmlnLmNsYXNzID8gJyAnICsgY29uZmlnLmNsYXNzIDogJycpXCIgcm9sZT1cImRvY3VtZW50XCIgZm9jdXNUcmFwPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnbW9kYWwnLFxyXG4gICAgcm9sZTogJ2RpYWxvZycsXHJcbiAgICB0YWJpbmRleDogJy0xJyxcclxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcclxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2NvbmZpZy5hcmlhTGFiZWxsZWRCeScsXHJcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnY29uZmlnLmFyaWFEZXNjcmliZWRieScsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBsZXZlbD86IG51bWJlcjtcclxuICBwdWJsaWMgY29uZmlnOiBNb2RhbE9wdGlvbnM7XHJcbiAgcHVibGljIG1vZGFsU2VydmljZT86IE1vZGFsU2VydmljZTtcclxuICBwcml2YXRlIGlzU2hvd24gPSBmYWxzZTtcclxuICBwcml2YXRlIGFuaW1hdGlvbnNFbmFibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc01vZGFsSGlkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb2RhbE9wdGlvbnMsIHByb3RlY3RlZCBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5mYWRlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzTmFtZXMuc2hvdyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdGFydGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGV2ZW50LnRhcmdldCAhPT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2tTdG9wKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjbGlja2VkSW5CYWNrZHJvcCA9IGV2ZW50LnRhcmdldCA9PT0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmICF0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudDtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5pZ25vcmVCYWNrZHJvcENsaWNrIHx8IHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJyB8fCAhY2xpY2tlZEluQmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy5jbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cG9wc3RhdGUnKVxyXG4gIG9uUG9wU3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzYycsIFsnJGV2ZW50J10pXHJcbiAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNyB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZy5rZXlib2FyZCAmJiB0aGlzLmNvbmZpZy5pZCA9PT0gdGhpcy5tb2RhbFNlcnZpY2U/LmdldEFjdGl2ZU1vZGFsKCkuY29uZmlnLmlkKSB7XHJcbiAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHRoaXMuX2hpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGUocmVzdWx0PzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc01vZGFsSGlkaW5nIHx8ICF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNsb3NlSW50ZXJjZXB0b3IpIHtcclxuICAgICAgdGhpcy5jb25maWcuY2xvc2VJbnRlcmNlcHRvcigpLnRoZW4oXHJcbiAgICAgICAgKCkgPT4gdGhpcy5faGlkZSgpLFxyXG4gICAgICAgICgpID0+IHVuZGVmaW5lZFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlKHJlc3VsdD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pc01vZGFsSGlkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlPy5oaWRlKHRoaXMuY29uZmlnLmlkLCByZXN1bHQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmFuaW1hdGlvbnNFbmFibGVkID8gYW5pbWF0aW9uVGltZS5tb2RhbCA6IDBcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { animationTime, cssClassNames } from './modal-styles.class';
|
|
5
|
-
import { ModalBackdropComponent } from './modal-backdrop-component';
|
|
6
|
-
import { ModalContainerComponent } from './modal-container-component';
|
|
7
|
-
import { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';
|
|
8
|
-
import { Modal } from './modal.class';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../component-loader/component-loader.factory";
|
|
11
|
-
import * as i2 from "./modal-options.class";
|
|
12
|
-
/**
|
|
13
|
-
* A service for using modals.
|
|
14
|
-
*
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
export class ModalService {
|
|
18
|
-
constructor(clf, rendererFactory, document, modalDefaultOption) {
|
|
19
|
-
this.clf = clf;
|
|
20
|
-
this.document = document;
|
|
21
|
-
this.onBeforeShow = new Subject();
|
|
22
|
-
this.onShown = new Subject();
|
|
23
|
-
this.onBeforeHide = new Subject();
|
|
24
|
-
this.onHidden = new Subject();
|
|
25
|
-
this.loaders = [];
|
|
26
|
-
this.modalsCount = 0;
|
|
27
|
-
this.initialPadding = '0px';
|
|
28
|
-
this.backdropLoader = this.clf.createLoader();
|
|
29
|
-
this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };
|
|
30
|
-
this.renderer = rendererFactory.createRenderer(null, null);
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
this.loaders.forEach((loader) => loader.instance?.hide());
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Opens a new modal.
|
|
37
|
-
*
|
|
38
|
-
* @param content - `Component` or `TemplateRef` type.
|
|
39
|
-
* @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.
|
|
40
|
-
* @returns An instance of {@link Modal}
|
|
41
|
-
*/
|
|
42
|
-
show(content, config) {
|
|
43
|
-
this.modalsCount++;
|
|
44
|
-
const combinedConfig = { ...this.defaultConfig, ...config };
|
|
45
|
-
combinedConfig.id = config?.id || new Date().getUTCMilliseconds();
|
|
46
|
-
console.log('show', combinedConfig);
|
|
47
|
-
this.createLoaders();
|
|
48
|
-
this.addBodyPadding();
|
|
49
|
-
if (this.modalsCount === 1) {
|
|
50
|
-
this.renderer.addClass(this.document.body, cssClassNames.modalOpen);
|
|
51
|
-
}
|
|
52
|
-
this.showBackdrop(combinedConfig);
|
|
53
|
-
return this.showModal(content, combinedConfig);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Hide an active modal.
|
|
57
|
-
* @param id - Id of modal to hide. If not provided all active modals are hidden.
|
|
58
|
-
* @param result - A result to be sent to observers.
|
|
59
|
-
*/
|
|
60
|
-
hide(id, result) {
|
|
61
|
-
if (this.modalsCount === 1 || id == null) {
|
|
62
|
-
this.hideBackdrop();
|
|
63
|
-
this.revertScrollbar();
|
|
64
|
-
this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);
|
|
65
|
-
}
|
|
66
|
-
this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;
|
|
67
|
-
setTimeout(() => {
|
|
68
|
-
this.hideModal(id, result);
|
|
69
|
-
this.removeLoaders(id);
|
|
70
|
-
},
|
|
71
|
-
//Bug
|
|
72
|
-
//Should use combined config but for the moment is not possible to pass it this parameter.
|
|
73
|
-
//If config is an instance variable then every newly opened modal will override the config
|
|
74
|
-
//resulting in opened modals to get a new configuration
|
|
75
|
-
this.defaultConfig.animated ? animationTime.backdrop : 0);
|
|
76
|
-
}
|
|
77
|
-
getActiveModal() {
|
|
78
|
-
return this.loaders[this.modalsCount - 1].instance;
|
|
79
|
-
}
|
|
80
|
-
showModal(content, combinedConfig) {
|
|
81
|
-
const modalLoader = this.loaders[this.loaders.length - 1];
|
|
82
|
-
if (combinedConfig && combinedConfig.providers) {
|
|
83
|
-
combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));
|
|
84
|
-
}
|
|
85
|
-
const modal = new Modal();
|
|
86
|
-
const modalContainerRef = modalLoader
|
|
87
|
-
.provide({ provide: ModalOptions, useValue: combinedConfig })
|
|
88
|
-
.provide({ provide: Modal, useValue: modal })
|
|
89
|
-
.attach(ModalContainerComponent)
|
|
90
|
-
.to('body');
|
|
91
|
-
modal.setClass = (newClass) => {
|
|
92
|
-
if (modalContainerRef.instance) {
|
|
93
|
-
modalContainerRef.instance.config.class = newClass;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
modal.onBeforeHide = new Subject();
|
|
97
|
-
modal.onHidden = new Subject();
|
|
98
|
-
this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);
|
|
99
|
-
this.copyEvent(modalLoader.onHidden, modal.onHidden);
|
|
100
|
-
modalContainerRef.show({
|
|
101
|
-
content,
|
|
102
|
-
animationsEnabled: combinedConfig.animated,
|
|
103
|
-
initialState: combinedConfig.initialState,
|
|
104
|
-
modalService: this,
|
|
105
|
-
id: combinedConfig.id,
|
|
106
|
-
});
|
|
107
|
-
if (modalContainerRef.instance) {
|
|
108
|
-
modalContainerRef.instance.level = this.modalsCount;
|
|
109
|
-
modal.content = modalLoader.getInnerComponent();
|
|
110
|
-
modal.id = modalContainerRef.instance.config?.id;
|
|
111
|
-
modal.hide = (res) => modalContainerRef.instance?.hide(res);
|
|
112
|
-
}
|
|
113
|
-
return modal;
|
|
114
|
-
}
|
|
115
|
-
hideModal(id, result) {
|
|
116
|
-
if (id != null) {
|
|
117
|
-
const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);
|
|
118
|
-
const modalLoader = this.loaders[indexToRemove];
|
|
119
|
-
if (modalLoader) {
|
|
120
|
-
modalLoader.hide(id, result);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
this.loaders.forEach((loader) => {
|
|
125
|
-
if (loader.instance) {
|
|
126
|
-
loader.hide(loader.instance.config.id);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
showBackdrop(combinedConfig) {
|
|
132
|
-
const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';
|
|
133
|
-
const isBackdropInDOM = this.backdropRef != null;
|
|
134
|
-
if (isBackdropEnabled && !isBackdropInDOM) {
|
|
135
|
-
this.backdropLoader
|
|
136
|
-
.attach(ModalBackdropComponent)
|
|
137
|
-
.to('body')
|
|
138
|
-
.show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });
|
|
139
|
-
this.backdropRef = this.backdropLoader.componentRef;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
hideBackdrop() {
|
|
143
|
-
if (!this.backdropRef) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
this.backdropRef.instance.hide();
|
|
147
|
-
this.backdropRef = void 0;
|
|
148
|
-
}
|
|
149
|
-
removeLoaders(id) {
|
|
150
|
-
if (id != null) {
|
|
151
|
-
const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);
|
|
152
|
-
if (indexToRemove >= 0) {
|
|
153
|
-
this.loaders.splice(indexToRemove, 1);
|
|
154
|
-
this.loaders.forEach((loader, i) => {
|
|
155
|
-
if (loader.instance) {
|
|
156
|
-
loader.instance.level = i + 1;
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
this.loaders.splice(0, this.loaders.length);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
addBodyPadding() {
|
|
166
|
-
if (this.modalsCount === 1) {
|
|
167
|
-
const width = this.getScrollbarWidth();
|
|
168
|
-
if (this.isScrollBarPresent(width)) {
|
|
169
|
-
this.initialPadding = this.document.body.style.paddingRight;
|
|
170
|
-
const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);
|
|
171
|
-
this.document.body.style.paddingRight = `${actualPadding + width}px`;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
revertScrollbar() {
|
|
176
|
-
this.document.body.style.paddingRight = this.initialPadding;
|
|
177
|
-
}
|
|
178
|
-
getScrollbarWidth() {
|
|
179
|
-
const measurer = this.document.createElement('div');
|
|
180
|
-
measurer.className = 'modal-scrollbar-measure';
|
|
181
|
-
const body = this.document.body;
|
|
182
|
-
body.appendChild(measurer);
|
|
183
|
-
const width = measurer.getBoundingClientRect().width - measurer.clientWidth;
|
|
184
|
-
body.removeChild(measurer);
|
|
185
|
-
return width;
|
|
186
|
-
}
|
|
187
|
-
isScrollBarPresent(scrollbarWidth) {
|
|
188
|
-
const rect = this.document.body.getBoundingClientRect();
|
|
189
|
-
const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);
|
|
190
|
-
const uncertainty = 0.1 * scrollbarWidth;
|
|
191
|
-
return bodyToViewportGap >= scrollbarWidth - uncertainty;
|
|
192
|
-
}
|
|
193
|
-
createLoaders() {
|
|
194
|
-
const loader = this.clf.createLoader();
|
|
195
|
-
this.copyEvent(loader.onBeforeShow, this.onBeforeShow);
|
|
196
|
-
this.copyEvent(loader.onShown, this.onShown);
|
|
197
|
-
this.copyEvent(loader.onBeforeHide, this.onBeforeHide);
|
|
198
|
-
this.copyEvent(loader.onHidden, this.onHidden);
|
|
199
|
-
this.loaders.push(loader);
|
|
200
|
-
}
|
|
201
|
-
copyEvent(from, to) {
|
|
202
|
-
from.subscribe((data) => {
|
|
203
|
-
to.next(data);
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalService, deps: [{ token: i1.ComponentLoaderFactory }, { token: i0.RendererFactory2 }, { token: DOCUMENT }, { token: MODAL_CONFIG_DEFAULT_OVERRIDE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
208
|
-
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalService });
|
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ModalService, decorators: [{
|
|
210
|
-
type: Injectable
|
|
211
|
-
}], ctorParameters: function () { return [{ type: i1.ComponentLoaderFactory }, { type: i0.RendererFactory2 }, { type: undefined, decorators: [{
|
|
212
|
-
type: Inject,
|
|
213
|
-
args: [DOCUMENT]
|
|
214
|
-
}] }, { type: i2.ModalOptions, decorators: [{
|
|
215
|
-
type: Optional
|
|
216
|
-
}, {
|
|
217
|
-
type: Inject,
|
|
218
|
-
args: [MODAL_CONFIG_DEFAULT_OVERRIDE]
|
|
219
|
-
}] }]; } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUd0Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFhdkIsWUFDVSxHQUEyQixFQUNuQyxlQUFpQyxFQUNQLFFBQWEsRUFDWSxrQkFBZ0M7UUFIM0UsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFFVCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBZmpDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFLekIsWUFBTyxHQUErQyxFQUFFLENBQUM7UUFFekQsZ0JB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QUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFzQixFQUFFLEVBQW9CO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBM05VLFlBQVksd0ZBZ0JiLFFBQVEsYUFDSSw2QkFBNkI7NkdBakJ4QyxZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQWlCTixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsQmFja2Ryb3BDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWJhY2tkcm9wLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXItY29tcG9uZW50JztcclxuaW1wb3J0IHsgbW9kYWxDb25maWdEZWZhdWx0cywgTW9kYWxPcHRpb25zLCBNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuLi9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuZmFjdG9yeSc7XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIGZvciB1c2luZyBtb2RhbHMuXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZVNob3cgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZUhpZGUgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIGJhY2tkcm9wUmVmPzogQ29tcG9uZW50UmVmPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+O1xyXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogTW9kYWxPcHRpb25zO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PjtcclxuICBwcml2YXRlIGxvYWRlcnM6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD5bXSA9IFtdO1xyXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuICBwcml2YXRlIG1vZGFsc0NvdW50ID0gMDtcclxuICBwcml2YXRlIGluaXRpYWxQYWRkaW5nID0gJzBweCc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNsZjogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcclxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9EQUxfQ09ORklHX0RFRkFVTFRfT1ZFUlJJREUpIG1vZGFsRGVmYXVsdE9wdGlvbjogTW9kYWxPcHRpb25zXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJhY2tkcm9wTG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+KCk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLm1vZGFsQ29uZmlnRGVmYXVsdHMsIC4uLm1vZGFsRGVmYXVsdE9wdGlvbiB9O1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZXJzLmZvckVhY2goKGxvYWRlcikgPT4gbG9hZGVyLmluc3RhbmNlPy5oaWRlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBuZXcgbW9kYWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udGVudCAtIGBDb21wb25lbnRgIG9yIGBUZW1wbGF0ZVJlZmAgdHlwZS5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gU3BlY2lmaWMge0BsaW5rIE1vZGFsT3B0aW9ucyB8IG9wdGlvbnN9ICBmb3IgdGhpcyBtb2RhbC4gR2xvYmFsIGFuZCBzcGVjaWZpYyBvcHRpb25zIGFyZSBtZXJnZWQuXHJcbiAgICogQHJldHVybnMgQW4gaW5zdGFuY2Ugb2Yge0BsaW5rIE1vZGFsfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93PFQ+KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0sIGNvbmZpZz86IE1vZGFsT3B0aW9uczxUPikge1xyXG4gICAgdGhpcy5tb2RhbHNDb3VudCsrO1xyXG4gICAgY29uc3QgY29tYmluZWRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH07XHJcbiAgICBjb21iaW5lZENvbmZpZy5pZCA9IGNvbmZpZz8uaWQgfHwgbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKTtcclxuICAgIGNvbnNvbGUubG9nKCdzaG93JywgY29tYmluZWRDb25maWcpO1xyXG4gICAgdGhpcy5jcmVhdGVMb2FkZXJzKCk7XHJcblxyXG4gICAgdGhpcy5hZGRCb2R5UGFkZGluZygpO1xyXG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIGNzc0NsYXNzTmFtZXMubW9kYWxPcGVuKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0JhY2tkcm9wKGNvbWJpbmVkQ29uZmlnKTtcclxuICAgIHJldHVybiB0aGlzLnNob3dNb2RhbDxUPihjb250ZW50LCBjb21iaW5lZENvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIaWRlIGFuIGFjdGl2ZSBtb2RhbC5cclxuICAgKiBAcGFyYW0gaWQgLSBJZCBvZiBtb2RhbCB0byBoaWRlLiBJZiBub3QgcHJvdmlkZWQgYWxsIGFjdGl2ZSBtb2RhbHMgYXJlIGhpZGRlbi5cclxuICAgKiBAcGFyYW0gcmVzdWx0IC0gQSByZXN1bHQgdG8gYmUgc2VudCB0byBvYnNlcnZlcnMuXHJcbiAgICovXHJcbiAgcHVibGljIGhpZGUoaWQ/OiBudW1iZXIgfCBzdHJpbmcsIHJlc3VsdD86IGFueSkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEgfHwgaWQgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmhpZGVCYWNrZHJvcCgpO1xyXG4gICAgICB0aGlzLnJldmVydFNjcm9sbGJhcigpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgY3NzQ2xhc3NOYW1lcy5tb2RhbE9wZW4pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RhbHNDb3VudCA9IHRoaXMubW9kYWxzQ291bnQgPj0gMSAmJiBpZCAhPSBudWxsID8gdGhpcy5tb2RhbHNDb3VudCAtIDEgOiAwO1xyXG4gICAgc2V0VGltZW91dChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZU1vZGFsKGlkLCByZXN1bHQpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlTG9hZGVycyhpZCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8vQnVnXHJcbiAgICAgIC8vU2hvdWxkIHVzZSBjb21iaW5lZCBjb25maWcgYnV0IGZvciB0aGUgbW9tZW50IGlzIG5vdCBwb3NzaWJsZSB0byBwYXNzIGl0IHRoaXMgcGFyYW1ldGVyLlxyXG4gICAgICAvL0lmIGNvbmZpZyBpcyBhbiBpbnN0YW5jZSB2YXJpYWJsZSB0aGVuIGV2ZXJ5IG5ld2x5IG9wZW5lZCBtb2RhbCB3aWxsIG92ZXJyaWRlIHRoZSBjb25maWdcclxuICAgICAgLy9yZXN1bHRpbmcgaW4gb3BlbmVkIG1vZGFscyB0byBnZXQgYSBuZXcgY29uZmlndXJhdGlvblxyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcuYW5pbWF0ZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY3RpdmVNb2RhbCgpOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkZXJzW3RoaXMubW9kYWxzQ291bnQgLSAxXS5pbnN0YW5jZSBhcyBNb2RhbENvbnRhaW5lckNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd01vZGFsPFQ+KGNvbnRlbnQ6IGFueSwgY29tYmluZWRDb25maWc6IE1vZGFsT3B0aW9ucyk6IE1vZGFsPFQ+IHtcclxuICAgIGNvbnN0IG1vZGFsTG9hZGVyID0gdGhpcy5sb2FkZXJzW3RoaXMubG9hZGVycy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChjb21iaW5lZENvbmZpZyAmJiBjb21iaW5lZENvbmZpZy5wcm92aWRlcnMpIHtcclxuICAgICAgY29tYmluZWRDb25maWcucHJvdmlkZXJzLmZvckVhY2goKHByb3ZpZGVyKSA9PiBtb2RhbExvYWRlci5wcm92aWRlKHByb3ZpZGVyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbW9kYWwgPSBuZXcgTW9kYWw8YW55PigpO1xyXG4gICAgY29uc3QgbW9kYWxDb250YWluZXJSZWYgPSBtb2RhbExvYWRlclxyXG4gICAgICAucHJvdmlkZSh7IHByb3ZpZGU6IE1vZGFsT3B0aW9ucywgdXNlVmFsdWU6IGNvbWJpbmVkQ29uZmlnIH0pXHJcbiAgICAgIC5wcm92aWRlKHsgcHJvdmlkZTogTW9kYWwsIHVzZVZhbHVlOiBtb2RhbCB9KVxyXG4gICAgICAuYXR0YWNoKE1vZGFsQ29udGFpbmVyQ29tcG9uZW50KVxyXG4gICAgICAudG8oJ2JvZHknKTtcclxuXHJcbiAgICBtb2RhbC5zZXRDbGFzcyA9IChuZXdDbGFzczogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZSkge1xyXG4gICAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmNvbmZpZy5jbGFzcyA9IG5ld0NsYXNzO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIG1vZGFsLm9uQmVmb3JlSGlkZSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBtb2RhbC5vbkhpZGRlbiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChtb2RhbExvYWRlci5vbkJlZm9yZUhpZGUsIG1vZGFsLm9uQmVmb3JlSGlkZSk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChtb2RhbExvYWRlci5vbkhpZGRlbiwgbW9kYWwub25IaWRkZW4pO1xyXG4gICAgbW9kYWxDb250YWluZXJSZWYuc2hvdyh7XHJcbiAgICAgIGNvbnRlbnQsXHJcbiAgICAgIGFuaW1hdGlvbnNFbmFibGVkOiBjb21iaW5lZENvbmZpZy5hbmltYXRlZCxcclxuICAgICAgaW5pdGlhbFN0YXRlOiBjb21iaW5lZENvbmZpZy5pbml0aWFsU3RhdGUsXHJcbiAgICAgIG1vZGFsU2VydmljZTogdGhpcyxcclxuICAgICAgaWQ6IGNvbWJpbmVkQ29uZmlnLmlkLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlKSB7XHJcbiAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmxldmVsID0gdGhpcy5tb2RhbHNDb3VudDtcclxuICAgICAgbW9kYWwuY29udGVudCA9IG1vZGFsTG9hZGVyLmdldElubmVyQ29tcG9uZW50KCk7XHJcbiAgICAgIG1vZGFsLmlkID0gbW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UuY29uZmlnPy5pZDtcclxuICAgICAgbW9kYWwuaGlkZSA9IChyZXMpID0+IG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlPy5oaWRlKHJlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vZGFsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlTW9kYWwoaWQ/OiBudW1iZXIgfCBzdHJpbmcsIHJlc3VsdD86IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGlkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMubG9hZGVycy5maW5kSW5kZXgoKGxvYWRlcikgPT4gbG9hZGVyLmluc3RhbmNlPy5jb25maWcuaWQgPT09IGlkKTtcclxuICAgICAgY29uc3QgbW9kYWxMb2FkZXIgPSB0aGlzLmxvYWRlcnNbaW5kZXhUb1JlbW92ZV07XHJcbiAgICAgIGlmIChtb2RhbExvYWRlcikge1xyXG4gICAgICAgIG1vZGFsTG9hZGVyLmhpZGUoaWQsIHJlc3VsdCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKChsb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4pID0+IHtcclxuICAgICAgICBpZiAobG9hZGVyLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICBsb2FkZXIuaGlkZShsb2FkZXIuaW5zdGFuY2UuY29uZmlnLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93QmFja2Ryb3AoY29tYmluZWRDb25maWc6IE1vZGFsT3B0aW9ucyk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNCYWNrZHJvcEVuYWJsZWQgPSBjb21iaW5lZENvbmZpZy5iYWNrZHJvcCA9PT0gdHJ1ZSB8fCBjb21iaW5lZENvbmZpZy5iYWNrZHJvcCA9PT0gJ3N0YXRpYyc7XHJcbiAgICBjb25zdCBpc0JhY2tkcm9wSW5ET00gPSB0aGlzLmJhY2tkcm9wUmVmICE9IG51bGw7XHJcbiAgICBpZiAoaXNCYWNrZHJvcEVuYWJsZWQgJiYgIWlzQmFja2Ryb3BJbkRPTSkge1xyXG4gICAgICB0aGlzLmJhY2tkcm9wTG9hZGVyXHJcbiAgICAgICAgLmF0dGFjaChNb2RhbEJhY2tkcm9wQ29tcG9uZW50KVxyXG4gICAgICAgIC50bygnYm9keScpXHJcbiAgICAgICAgLnNob3coeyBhbmltYXRpb25zRW5hYmxlZDogY29tYmluZWRDb25maWcuYW5pbWF0ZWQsIGJhY2tkcm9wTG9hZGVyOiB0aGlzLmJhY2tkcm9wTG9hZGVyIH0pO1xyXG4gICAgICB0aGlzLmJhY2tkcm9wUmVmID0gdGhpcy5iYWNrZHJvcExvYWRlci5jb21wb25lbnRSZWY7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGVCYWNrZHJvcCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5iYWNrZHJvcFJlZikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmJhY2tkcm9wUmVmLmluc3RhbmNlLmhpZGUoKTtcclxuICAgIHRoaXMuYmFja2Ryb3BSZWYgPSB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZUxvYWRlcnMoaWQ/OiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChpZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmxvYWRlcnMuZmluZEluZGV4KChsb2FkZXIpID0+IGxvYWRlci5pbnN0YW5jZT8uY29uZmlnLmlkID09PSBpZCk7XHJcbiAgICAgIGlmIChpbmRleFRvUmVtb3ZlID49IDApIHtcclxuICAgICAgICB0aGlzLmxvYWRlcnMuc3BsaWNlKGluZGV4VG9SZW1vdmUsIDEpO1xyXG4gICAgICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKChsb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4sIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgaWYgKGxvYWRlci5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBsb2FkZXIuaW5zdGFuY2UubGV2ZWwgPSBpICsgMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkZXJzLnNwbGljZSgwLCB0aGlzLmxvYWRlcnMubGVuZ3RoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQm9keVBhZGRpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RhbHNDb3VudCA9PT0gMSkge1xyXG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuZ2V0U2Nyb2xsYmFyV2lkdGgoKTtcclxuICAgICAgaWYgKHRoaXMuaXNTY3JvbGxCYXJQcmVzZW50KHdpZHRoKSkge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbFBhZGRpbmcgPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0O1xyXG4gICAgICAgIGNvbnN0IGFjdHVhbFBhZGRpbmcgPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSkucGFkZGluZ1JpZ2h0KTtcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7YWN0dWFsUGFkZGluZyArIHdpZHRofXB4YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXZlcnRTY3JvbGxiYXIoKSB7XHJcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gdGhpcy5pbml0aWFsUGFkZGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2Nyb2xsYmFyV2lkdGgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG1lYXN1cmVyID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIG1lYXN1cmVyLmNsYXNzTmFtZSA9ICdtb2RhbC1zY3JvbGxiYXItbWVhc3VyZSc7XHJcblxyXG4gICAgY29uc3QgYm9keSA9IHRoaXMuZG9jdW1lbnQuYm9keTtcclxuICAgIGJvZHkuYXBwZW5kQ2hpbGQobWVhc3VyZXIpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBtZWFzdXJlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIG1lYXN1cmVyLmNsaWVudFdpZHRoO1xyXG4gICAgYm9keS5yZW1vdmVDaGlsZChtZWFzdXJlcik7XHJcblxyXG4gICAgcmV0dXJuIHdpZHRoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Njcm9sbEJhclByZXNlbnQoc2Nyb2xsYmFyV2lkdGg6IG51bWJlcikge1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGJvZHlUb1ZpZXdwb3J0R2FwID0gd2luZG93LmlubmVyV2lkdGggLSAocmVjdC5sZWZ0ICsgcmVjdC5yaWdodCk7XHJcbiAgICBjb25zdCB1bmNlcnRhaW50eSA9IDAuMSAqIHNjcm9sbGJhcldpZHRoO1xyXG4gICAgcmV0dXJuIGJvZHlUb1ZpZXdwb3J0R2FwID49IHNjcm9sbGJhcldpZHRoIC0gdW5jZXJ0YWludHk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxvYWRlcnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsb2FkZXIgPSB0aGlzLmNsZi5jcmVhdGVMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+KCk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25CZWZvcmVTaG93LCB0aGlzLm9uQmVmb3JlU2hvdyk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25TaG93biwgdGhpcy5vblNob3duKTtcclxuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkJlZm9yZUhpZGUsIHRoaXMub25CZWZvcmVIaWRlKTtcclxuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkhpZGRlbiwgdGhpcy5vbkhpZGRlbik7XHJcbiAgICB0aGlzLmxvYWRlcnMucHVzaChsb2FkZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb3B5RXZlbnQoZnJvbTogU3ViamVjdDx1bmtub3duPiwgdG86IFN1YmplY3Q8dW5rbm93bj4pIHtcclxuICAgIGZyb20uc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRvLm5leHQoZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class UserSettingsService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this._defaultPreferences = {
|
|
6
|
-
'MobileSideBar': true
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
getAll() {
|
|
10
|
-
const settingsJson = localStorage.getItem(UserSettingsService.SETTINGS_KEY);
|
|
11
|
-
if (settingsJson) {
|
|
12
|
-
return JSON.parse(settingsJson);
|
|
13
|
-
}
|
|
14
|
-
return this._defaultPreferences;
|
|
15
|
-
}
|
|
16
|
-
get(key) {
|
|
17
|
-
const settings = this.getAll();
|
|
18
|
-
return settings[key];
|
|
19
|
-
}
|
|
20
|
-
set(key, value) {
|
|
21
|
-
const settings = this.getAll();
|
|
22
|
-
settings[key] = value;
|
|
23
|
-
localStorage.setItem(UserSettingsService.SETTINGS_KEY, JSON.stringify(settings));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
UserSettingsService.SETTINGS_KEY = '@indice/ng-components_user-settings';
|
|
27
|
-
UserSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UserSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
28
|
-
UserSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UserSettingsService, providedIn: 'root' });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UserSettingsService, decorators: [{
|
|
30
|
-
type: Injectable,
|
|
31
|
-
args: [{
|
|
32
|
-
providedIn: 'root'
|
|
33
|
-
}]
|
|
34
|
-
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBTVksd0JBQW1CLEdBQXFDO1lBQzVELGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7S0FvQkw7SUFsQlUsTUFBTTtRQUNULE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUUsSUFBSSxZQUFZLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRU0sR0FBRyxDQUFDLEdBQW1CO1FBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU0sR0FBRyxDQUFDLEdBQW1CLEVBQUUsS0FBVTtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQzs7QUF2QmMsZ0NBQVksR0FBRyxxQ0FBc0MsQ0FBQTtnSEFEM0QsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVXNlclNldHRpbmdLZXkgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXR0aW5nc1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgU0VUVElOR1NfS0VZID0gJ0BpbmRpY2UvbmctY29tcG9uZW50c191c2VyLXNldHRpbmdzJztcclxuXHJcbiAgICBwcml2YXRlIF9kZWZhdWx0UHJlZmVyZW5jZXM6IHsgW2tleSBpbiBVc2VyU2V0dGluZ0tleV06IGFueSB9ID0ge1xyXG4gICAgICAgICdNb2JpbGVTaWRlQmFyJzogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0QWxsKCk6IHsgW2tleSBpbiBVc2VyU2V0dGluZ0tleV06IGFueSB9IHtcclxuICAgICAgICBjb25zdCBzZXR0aW5nc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShVc2VyU2V0dGluZ3NTZXJ2aWNlLlNFVFRJTkdTX0tFWSk7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzSnNvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzZXR0aW5nc0pzb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFByZWZlcmVuY2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQoa2V5OiBVc2VyU2V0dGluZ0tleSk6IGFueSB7IFxyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5nZXRBbGwoKTtcclxuICAgICAgICByZXR1cm4gc2V0dGluZ3Nba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0KGtleTogVXNlclNldHRpbmdLZXksIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ2V0QWxsKCk7XHJcbiAgICAgICAgc2V0dGluZ3Nba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFVzZXJTZXR0aW5nc1NlcnZpY2UuU0VUVElOR1NfS0VZLCBKU09OLnN0cmluZ2lmeShzZXR0aW5ncykpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class UtilitiesService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
get validationErrors() {
|
|
6
|
-
const messages = [];
|
|
7
|
-
const errors = this.problemDetails && this.problemDetails.errors;
|
|
8
|
-
for (const property in errors) {
|
|
9
|
-
if (property) {
|
|
10
|
-
const propertyMessages = errors[property];
|
|
11
|
-
propertyMessages.forEach((message) => {
|
|
12
|
-
messages.push(message);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
Object.values(errors || {}).forEach(message => {
|
|
17
|
-
message.forEach(x => {
|
|
18
|
-
messages.push(x);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return messages;
|
|
24
|
-
}
|
|
25
|
-
getValidationProblemDetails(problemDetails) {
|
|
26
|
-
this.problemDetails = problemDetails;
|
|
27
|
-
if (this.validationErrors.length === 0 && this.problemDetails.title) {
|
|
28
|
-
return new Array(1).fill(this.problemDetails.title);
|
|
29
|
-
}
|
|
30
|
-
return this.validationErrors;
|
|
31
|
-
}
|
|
32
|
-
getPathFromUrl(url) {
|
|
33
|
-
if (!url) {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
return url.split(/[?#]/)[0];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
UtilitiesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UtilitiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
-
UtilitiesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UtilitiesService, providedIn: 'root' });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UtilitiesService, decorators: [{
|
|
42
|
-
type: Injectable,
|
|
43
|
-
args: [{
|
|
44
|
-
providedIn: 'root'
|
|
45
|
-
}]
|
|
46
|
-
}], ctorParameters: function () { return []; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixnQkFBZ0IsQ0FBQztJQUlqQixJQUFXLGdCQUFnQjtRQUN6QixNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNqRSxLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sRUFBRTtZQUM3QixJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7b0JBQzNDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUM1QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNsQixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuQixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU0sMkJBQTJCLENBQUMsY0FBeUM7UUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRTtZQUNuRSxPQUFPLElBQUksS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVNLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDOzs2R0F0Q1UsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElWYWxpZGF0aW9uUHJvYmxlbURldGFpbHMgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHVibGljIHByb2JsZW1EZXRhaWxzPzogSVZhbGlkYXRpb25Qcm9ibGVtRGV0YWlscztcclxuXHJcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uRXJyb3JzKCk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9ibGVtRGV0YWlscyAmJiB0aGlzLnByb2JsZW1EZXRhaWxzLmVycm9ycztcclxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gZXJyb3JzKSB7XHJcbiAgICAgIGlmIChwcm9wZXJ0eSkge1xyXG4gICAgICAgIGNvbnN0IHByb3BlcnR5TWVzc2FnZXMgPSBlcnJvcnNbcHJvcGVydHldO1xyXG4gICAgICAgIHByb3BlcnR5TWVzc2FnZXMuZm9yRWFjaCgobWVzc2FnZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMoZXJyb3JzIHx8IHt9KS5mb3JFYWNoKG1lc3NhZ2UgPT4ge1xyXG4gICAgICAgICAgbWVzc2FnZS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRWYWxpZGF0aW9uUHJvYmxlbURldGFpbHMocHJvYmxlbURldGFpbHM6IElWYWxpZGF0aW9uUHJvYmxlbURldGFpbHMpOiBzdHJpbmdbXSB7XHJcbiAgICB0aGlzLnByb2JsZW1EZXRhaWxzID0gcHJvYmxlbURldGFpbHM7XHJcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnByb2JsZW1EZXRhaWxzLnRpdGxlKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8c3RyaW5nPigxKS5maWxsKHRoaXMucHJvYmxlbURldGFpbHMudGl0bGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvbkVycm9ycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXRoRnJvbVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVybC5zcGxpdCgvWz8jXS8pWzBdO1xyXG4gIH1cclxufVxyXG4iXX0=
|