@evotor-dev/ui-kit 8.7.0 → 8.8.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.
Files changed (35) hide show
  1. package/esm2022/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.mjs +3 -3
  2. package/esm2022/lib/components/evo-autocomplete/components/evo-autocomplete-default-option/evo-autocomplete-default-option.component.mjs +2 -2
  3. package/esm2022/lib/components/evo-modal/classes/EvoConfiguredComponentModalDrawingStrategy.mjs +8 -0
  4. package/esm2022/lib/components/evo-modal/classes/EvoConfiguredModalDrawingStrategy.mjs +14 -0
  5. package/esm2022/lib/components/evo-modal/classes/EvoConfiguredTemplateModalDrawingStrategy.mjs +11 -0
  6. package/esm2022/lib/components/evo-modal/classes/EvoDynamicModalDrawingStrategy.mjs +9 -0
  7. package/esm2022/lib/components/evo-modal/classes/EvoModalDrawingStrategy.mjs +3 -0
  8. package/esm2022/lib/components/evo-modal/enums.mjs +8 -0
  9. package/esm2022/lib/components/evo-modal/evo-modal-buttons/evo-modal-buttons.component.mjs +17 -0
  10. package/esm2022/lib/components/evo-modal/evo-modal-portal.mjs +29 -0
  11. package/esm2022/lib/components/evo-modal/evo-modal.component.mjs +128 -103
  12. package/esm2022/lib/components/evo-modal/evo-modal.provider.mjs +18 -0
  13. package/esm2022/lib/components/evo-modal/evo-modal.service.mjs +47 -12
  14. package/esm2022/lib/components/evo-modal/interfaces.mjs +2 -0
  15. package/esm2022/lib/components/evo-modal/public-api.mjs +7 -1
  16. package/esm2022/lib/components/evo-modal/tokens.mjs +12 -0
  17. package/esm2022/lib/components/evo-modal/utils.mjs +21 -0
  18. package/fesm2022/evotor-dev-ui-kit.mjs +424 -241
  19. package/fesm2022/evotor-dev-ui-kit.mjs.map +1 -1
  20. package/lib/components/evo-modal/classes/EvoConfiguredComponentModalDrawingStrategy.d.ts +6 -0
  21. package/lib/components/evo-modal/classes/EvoConfiguredModalDrawingStrategy.d.ts +6 -0
  22. package/lib/components/evo-modal/classes/EvoConfiguredTemplateModalDrawingStrategy.d.ts +6 -0
  23. package/lib/components/evo-modal/classes/EvoDynamicModalDrawingStrategy.d.ts +6 -0
  24. package/lib/components/evo-modal/classes/EvoModalDrawingStrategy.d.ts +5 -0
  25. package/lib/components/evo-modal/enums.d.ts +6 -0
  26. package/lib/components/evo-modal/evo-modal-buttons/evo-modal-buttons.component.d.ts +6 -0
  27. package/lib/components/evo-modal/evo-modal-portal.d.ts +16 -0
  28. package/lib/components/evo-modal/evo-modal.component.d.ts +48 -32
  29. package/lib/components/evo-modal/evo-modal.provider.d.ts +3 -0
  30. package/lib/components/evo-modal/evo-modal.service.d.ts +13 -12
  31. package/lib/components/evo-modal/interfaces.d.ts +47 -0
  32. package/lib/components/evo-modal/public-api.d.ts +6 -0
  33. package/lib/components/evo-modal/tokens.d.ts +7 -0
  34. package/lib/components/evo-modal/utils.d.ts +5 -0
  35. package/package.json +1 -1
@@ -1,127 +1,152 @@
1
- import { Component, Input } from '@angular/core';
2
- import { fromEvent } from 'rxjs';
1
+ import { ChangeDetectionStrategy, Component, computed, createComponent, DestroyRef, ElementRef, EnvironmentInjector, inject, Injector, model, signal, viewChild, ViewContainerRef } from '@angular/core';
2
+ import { filter, finalize, fromEvent } from 'rxjs';
3
3
  import { takeWhile } from 'rxjs/operators';
4
- import { Key } from 'ts-keycode-enum';
5
- import { EvoButtonComponent } from '../evo-button/components/evo-button/evo-button.component';
6
- import { NgClass } from '@angular/common';
4
+ import { EvoButtonComponent } from '../evo-button';
5
+ import { EvoUiClassDirective } from "../../directives";
6
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
7
+ import { EVO_MODAL_DATA, EVO_MODAL_ROOT_ID } from './tokens';
8
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
9
+ import { EvoModalService } from './evo-modal.service';
10
+ import { isConfiguredComponentModalParams, isConfiguredTemplateModalParams, isDynamicModalParams } from './utils';
11
+ import { EvoModalCloseTargets } from './enums';
12
+ import { EvoDynamicModalDrawingStrategy } from './classes/EvoDynamicModalDrawingStrategy';
13
+ import { EvoConfiguredComponentModalDrawingStrategy } from './classes/EvoConfiguredComponentModalDrawingStrategy';
14
+ import { EvoConfiguredTemplateModalDrawingStrategy } from './classes/EvoConfiguredTemplateModalDrawingStrategy';
15
+ import { EvoModalButtonsComponent } from './evo-modal-buttons/evo-modal-buttons.component';
7
16
  import * as i0 from "@angular/core";
8
- import * as i1 from "./evo-modal.service";
9
- export var EvoModalCloseTargets;
10
- (function (EvoModalCloseTargets) {
11
- EvoModalCloseTargets["BACKGROUND"] = "background";
12
- EvoModalCloseTargets["BUTTON"] = "button";
13
- EvoModalCloseTargets["DEFAULT"] = "default";
14
- EvoModalCloseTargets["ESC"] = "escape";
15
- })(EvoModalCloseTargets || (EvoModalCloseTargets = {}));
16
17
  export class EvoModalComponent {
17
- get id() {
18
- return this._id;
19
- }
20
- set id(id) {
21
- if (id) {
22
- this._id = id;
23
- this.modalService.register(id);
24
- }
25
- else {
26
- throw new Error("EvoModal. Can't be registered, wrong id passed");
27
- }
28
- }
29
- constructor(modalService, elRef) {
30
- this.modalService = modalService;
31
- this.elRef = elRef;
32
- this.declineButtonColor = 'secondary';
33
- this.declineButtonTheme = 'rounded-outline';
34
- this.isAcceptLoading = false;
35
- this.isDeclineDisabled = false;
36
- this.isVisible = false;
18
+ constructor() {
19
+ // eslint-disable-next-line @typescript-eslint/member-ordering
20
+ this.evoModalRootId = inject(EVO_MODAL_ROOT_ID);
21
+ this.acceptText = model('');
22
+ this.acceptButtonColor = model(`success`);
23
+ this.acceptButtonTheme = model(`rounded-solid`);
24
+ this.asyncAccept = model(null);
25
+ this.declineText = model('');
26
+ this.declineButtonColor = model('secondary');
27
+ this.declineButtonTheme = model('rounded-outline');
28
+ this.id = model(this.evoModalRootId);
29
+ this.titleText = model('');
30
+ this.contentContainer = viewChild('contentContainer', { read: ViewContainerRef });
31
+ this.contentContainer$ = toObservable(this.contentContainer);
32
+ this.drawingStrategy = signal(null);
33
+ this.isDynamicContent = signal(false);
34
+ this.isLoading = signal(false);
35
+ this.isVisible = computed(() => this.modalState()?.isOpen || false);
36
+ this.modalContainer = viewChild('modalContainer', { read: ViewContainerRef });
37
+ this.modalContainer$ = toObservable(this.modalContainer);
38
+ this.modalContent = signal(null);
39
+ this.modalElement = viewChild('modal', { read: ElementRef });
40
+ this.modalState = signal(null);
41
+ this.showButtons = computed(() => this.acceptText() || this.declineText());
37
42
  this.closeTargets = EvoModalCloseTargets;
38
- this.closeTarget = EvoModalCloseTargets.DEFAULT;
43
+ this.destroyRef = inject(DestroyRef);
44
+ this.environmentInjector = inject(EnvironmentInjector);
45
+ this.evoModalService = inject(EvoModalService);
39
46
  }
40
47
  ngOnInit() {
48
+ this.evoModalService.register(this.id());
41
49
  this.subscribeModalEvents();
42
50
  }
43
51
  ngOnDestroy() {
44
- this.modalService.unregister(this.id);
52
+ this.evoModalService.unregister(this.id());
45
53
  }
46
- onBackgroundClick($event) {
47
- if (this.declineText &&
48
- $event &&
49
- $event.target &&
50
- !this.elRef.nativeElement.querySelector('.evo-modal').contains($event.target) &&
51
- this.modalState.isOpen) {
52
- this.handleOnClose(false, this.closeTargets.BACKGROUND);
54
+ onAcceptClick() {
55
+ const asyncAcceptAction = this.asyncAccept()?.();
56
+ if (!asyncAcceptAction) {
57
+ return this.close(true, EvoModalCloseTargets.BUTTON);
53
58
  }
59
+ this.isLoading.set(true);
60
+ asyncAcceptAction.pipe(finalize(() => this.isLoading.set(false)), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.close(true, EvoModalCloseTargets.BUTTON));
54
61
  }
55
- handleOnClose(agreement, closeTarget) {
56
- this.closeTarget = closeTarget;
57
- if (agreement === false && this.isDeclineDisabled) {
58
- return;
62
+ onBackgroundClick(event) {
63
+ if (this.canCloseByBackground(event)) {
64
+ this.close(false, EvoModalCloseTargets.BACKGROUND);
59
65
  }
60
- if (agreement && typeof this.asyncAccept === 'function') {
61
- const setAsyncStates = (isLoading = false) => {
62
- this.isDeclineDisabled = isLoading;
63
- this.isAcceptLoading = isLoading;
64
- };
65
- setAsyncStates(true);
66
- return this.asyncAccept().subscribe(() => {
67
- setAsyncStates(false);
68
- this.modalService.close(this.id, agreement, {
69
- closeTarget: this.closeTarget,
70
- });
71
- }, () => {
72
- setAsyncStates(false);
73
- });
66
+ }
67
+ onDeclineClick() {
68
+ if (this.isLoading()) {
69
+ return;
74
70
  }
75
- this.modalService.close(this.id, agreement, {
76
- closeTarget: this.closeTarget,
77
- });
71
+ this.close(false, EvoModalCloseTargets.BUTTON);
78
72
  }
79
- subscribeModalEvents() {
80
- this.modalService.getEventsSubscription(this.id).subscribe((modalState) => {
81
- this.modalState = modalState;
82
- // timeout for modal animation support
83
- setTimeout(() => {
84
- this.isVisible = modalState.isOpen;
85
- });
86
- if (modalState.isOpen) {
87
- this.initKeyboardListener();
88
- }
73
+ clearView() {
74
+ this.modalContainer()?.clear();
75
+ }
76
+ insertComponent({ data, injector, component }, target = 'modal') {
77
+ const dynamicComponentRef = createComponent(component, {
78
+ environmentInjector: this.environmentInjector,
79
+ elementInjector: Injector.create({
80
+ providers: [
81
+ {
82
+ provide: EVO_MODAL_DATA,
83
+ useValue: data,
84
+ },
85
+ ],
86
+ parent: injector,
87
+ }),
89
88
  });
89
+ this.getInsertionContainer(target).pipe(filter((container) => !!container), takeUntilDestroyed(this.destroyRef)).subscribe((container) => {
90
+ container.insert(dynamicComponentRef.hostView);
91
+ dynamicComponentRef.changeDetectorRef.markForCheck();
92
+ });
93
+ }
94
+ canCloseByBackground(event) {
95
+ return (this.declineText() || this.isDynamicContent()) &&
96
+ !this.isLoading() &&
97
+ this.modalState().isOpen &&
98
+ event?.target &&
99
+ !this.modalElement().nativeElement.contains(event.target);
100
+ }
101
+ close(agreement, closeTarget) {
102
+ this.evoModalService.close(this.id(), agreement, { closeTarget });
103
+ this.clearView();
104
+ if (this.id() !== this.evoModalRootId) {
105
+ return;
106
+ }
107
+ this.evoModalService.unregister(this.evoModalRootId);
108
+ this.evoModalService.cleanupDefaultHost();
109
+ }
110
+ getInsertionContainer(target) {
111
+ return target === 'modal' ? this.modalContainer$ : this.contentContainer$;
90
112
  }
91
113
  initKeyboardListener() {
92
- return fromEvent(document.body, 'keydown')
93
- .pipe(takeWhile(() => {
94
- return this.modalState.isOpen;
95
- }))
96
- .subscribe((event) => {
97
- if (this.declineText && event.keyCode === Key.Escape) {
98
- this.handleOnClose(false, this.closeTargets.ESC);
114
+ fromEvent(document.body, 'keydown').pipe(takeWhile(() => this.modalState().isOpen), filter((event) => (this.declineText() || this.isDynamicContent()) && event.key === 'Escape'), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.close(false, this.closeTargets.ESC));
115
+ }
116
+ setDrawingStrategy(params) {
117
+ switch (true) {
118
+ case isDynamicModalParams(params):
119
+ return this.drawingStrategy.set(new EvoDynamicModalDrawingStrategy());
120
+ case isConfiguredComponentModalParams(params):
121
+ return this.drawingStrategy.set(new EvoConfiguredComponentModalDrawingStrategy());
122
+ case isConfiguredTemplateModalParams(params):
123
+ return this.drawingStrategy.set(new EvoConfiguredTemplateModalDrawingStrategy());
124
+ default:
125
+ return;
126
+ }
127
+ }
128
+ subscribeModalEvents() {
129
+ this.evoModalService.getEventsSubscription(this.id()).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((modalState) => {
130
+ this.modalState.set(modalState);
131
+ if (!modalState.isOpen) {
132
+ return;
99
133
  }
134
+ this.initKeyboardListener();
135
+ this.setDrawingStrategy(modalState.params);
136
+ this.drawingStrategy()?.draw.call(this, modalState.params);
100
137
  });
101
138
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalComponent, deps: [{ token: i1.EvoModalService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoModalComponent, isStandalone: true, selector: "evo-modal", inputs: { id: "id", titleText: "titleText", acceptText: "acceptText", acceptButtonColor: "acceptButtonColor", acceptButtonTheme: "acceptButtonTheme", declineText: "declineText", declineButtonColor: "declineButtonColor", declineButtonTheme: "declineButtonTheme", asyncAccept: "asyncAccept" }, ngImport: i0, template: "@if (modalState?.isOpen) {\n <div\n class=\"evo-modal__background\"\n [ngClass]=\"{'evo-modal__background_visible': isVisible}\"\n (click)=\"onBackgroundClick($event)\"\n ></div>\n\n <div class=\"evo-modal__wrapper\" [ngClass]=\"{'evo-modal_visible': isVisible}\" (click)=\"onBackgroundClick($event)\">\n <div class=\"evo-modal\">\n <div class=\"evo-modal__icon\">\n <ng-content select=\"evo-icon\" />\n </div>\n\n @if (titleText !== undefined) {\n <h2 class=\"evo-modal__title\">{{ titleText }}</h2>\n }\n\n <div class=\"evo-modal__content\">\n <ng-content />\n </div>\n <div class=\"evo-modal__buttons\" [ngClass]=\"{'evo-modal__buttons_single-btn': !declineText || !acceptText}\">\n @if (declineText) {\n <button\n evoButton\n class=\"evo-modal__button evo-modal__button_decline\"\n [color]=\"declineButtonColor\"\n [theme]=\"declineButtonTheme\"\n [disabled]=\"isDeclineDisabled\"\n (click)=\"handleOnClose(false, closeTargets.BUTTON)\"\n >\n {{ declineText }}\n </button>\n }\n\n @if (acceptText) {\n <button\n evoButton\n class=\"evo-modal__button evo-modal__button_accept\"\n [color]=\"acceptButtonColor\"\n [theme]=\"acceptButtonTheme\"\n [loading]=\"isAcceptLoading\"\n (click)=\"handleOnClose(true, closeTargets.BUTTON)\"\n >\n {{ acceptText }}\n </button>\n }\n </div>\n </div>\n </div>\n}\n", styles: [".evo-modal{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;max-width:738px;height:auto;max-height:100%;margin-top:50px;padding:56px 0 16px;overflow:hidden;text-align:center;background-color:#fff;border-radius:16px;box-shadow:0 0 12px 2px #0000004d;opacity:0;transition:margin-top .25s,opacity .25s;transition-delay:50ms}.evo-modal_visible .evo-modal{margin-top:0;opacity:1}@media (min-width: 768px){.evo-modal{width:738px;height:auto;padding:32px 0}}.evo-modal__title{margin-top:0;margin-bottom:0;padding-right:32px;padding-left:32px;font-weight:700;font-size:16px;line-height:24px}@media (min-width: 768px){.evo-modal__title{width:674px;padding-right:16px;padding-left:16px;font-size:24px;line-height:32px}}.evo-modal__icon{margin-bottom:8px}.evo-modal__icon ::ng-deep evo-icon{display:block;width:64px;height:64px}@media (min-width: 768px){.evo-modal__icon{margin-bottom:32px}}.evo-modal__icon:empty{display:none}.evo-modal__content{width:100%;margin-top:32px;padding:0 32px;overflow:auto;font-size:14px;line-height:22px}.evo-modal__content:empty{display:none;margin-top:0}@media (min-width: 768px){.evo-modal__content{padding:0 16px}}.evo-modal__content ::ng-deep *:last-child{margin-bottom:0}.evo-modal__background{position:fixed;inset:0;z-index:1010;display:flex;justify-content:center;width:100%;height:100%;background:#00000080;opacity:0;transition:opacity .25s}.evo-modal__background_visible{opacity:1}.evo-modal__wrapper{position:fixed;inset:0;z-index:1011;display:flex;justify-content:center;align-items:center;width:100%;padding:16px}@media (min-width: 768px){.evo-modal__wrapper{width:auto}}.evo-modal__buttons{display:flex;flex-shrink:0;flex-direction:column-reverse;justify-content:center;align-items:center;width:100%;margin-top:56px;padding-right:32px;padding-left:32px}@media (min-width: 768px){.evo-modal__buttons{display:grid;width:auto;grid-template-columns:repeat(2,minmax(140px,1fr));grid-column-gap:32px;margin:32px auto 0;padding-right:16px;padding-left:16px}.evo-modal__buttons_single-btn{grid-template-columns:minmax(140px,1fr)}}.evo-modal__button{display:block;width:100%}@media (min-width: 768px){.evo-modal__button{width:auto}}.evo-modal__button+.evo-modal__button{margin:0 0 16px}@media (min-width: 768px){.evo-modal__button+.evo-modal__button{margin:0}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: EvoButtonComponent, selector: "button[evoButton], a[evoButton]", inputs: ["size", "color", "theme", "disabled", "loading"] }] }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: EvoModalComponent, isStandalone: true, selector: "evo-modal", inputs: { acceptText: { classPropertyName: "acceptText", publicName: "acceptText", isSignal: true, isRequired: false, transformFunction: null }, acceptButtonColor: { classPropertyName: "acceptButtonColor", publicName: "acceptButtonColor", isSignal: true, isRequired: false, transformFunction: null }, acceptButtonTheme: { classPropertyName: "acceptButtonTheme", publicName: "acceptButtonTheme", isSignal: true, isRequired: false, transformFunction: null }, asyncAccept: { classPropertyName: "asyncAccept", publicName: "asyncAccept", isSignal: true, isRequired: false, transformFunction: null }, declineText: { classPropertyName: "declineText", publicName: "declineText", isSignal: true, isRequired: false, transformFunction: null }, declineButtonColor: { classPropertyName: "declineButtonColor", publicName: "declineButtonColor", isSignal: true, isRequired: false, transformFunction: null }, declineButtonTheme: { classPropertyName: "declineButtonTheme", publicName: "declineButtonTheme", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { acceptText: "acceptTextChange", acceptButtonColor: "acceptButtonColorChange", acceptButtonTheme: "acceptButtonThemeChange", asyncAccept: "asyncAcceptChange", declineText: "declineTextChange", declineButtonColor: "declineButtonColorChange", declineButtonTheme: "declineButtonThemeChange", id: "idChange", titleText: "titleTextChange" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "modalElement", first: true, predicate: ["modal"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@if (isVisible()) {\n <div class=\"evo-modal__background\" (click)=\"onBackgroundClick($event)\"></div>\n\n <div class=\"evo-modal__wrapper\" (click)=\"onBackgroundClick($event)\">\n <div class=\"evo-modal\" #modal>\n @if (isDynamicContent()) {\n <ng-template #modalContainer/>\n } @else {\n <div class=\"evo-modal__icon\">\n <ng-content select=\"evo-icon\"/>\n </div>\n\n @if (titleText()) {\n <h2 class=\"evo-modal__title\">{{ titleText() }}</h2>\n }\n\n <div class=\"evo-modal__content\">\n <ng-content/>\n\n <ng-container *ngTemplateOutlet=\"modalContent()?.template; context: {data: modalContent()?.context}\"/>\n\n <ng-template #contentContainer/>\n </div>\n\n @if (showButtons()) {\n <evo-modal-buttons [single]=\"!declineText() || !acceptText()\">\n @if (declineText()) {\n <button\n class=\"evo-modal__button_decline\"\n evoButton\n [color]=\"declineButtonColor()\"\n [theme]=\"declineButtonTheme()\"\n [disabled]=\"isLoading()\"\n (click)=\"onDeclineClick()\"\n >{{ declineText() }}</button>\n }\n\n @if (acceptText()) {\n <button\n class=\"evo-modal__button_accept\"\n evoButton\n [color]=\"acceptButtonColor()\"\n [theme]=\"acceptButtonTheme()\"\n [loading]=\"isLoading()\"\n (click)=\"onAcceptClick()\"\n >{{ acceptText() }}</button>\n }\n </evo-modal-buttons>\n }\n }\n </div>\n </div>\n}\n", styles: ["@keyframes appearance{0%{opacity:0}to{opacity:1}}.evo-modal{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;max-width:752px;height:auto;max-height:100%;padding:16px;overflow:hidden;text-align:center;background-color:#fff;border-radius:16px;box-shadow:0 0 12px 2px #0000004d;animation:appearance .25s linear}@media (min-width: 768px){.evo-modal{width:752px;height:auto;padding:32px}}.evo-modal__title{margin-top:0;margin-bottom:0;font-weight:700;font-size:16px;line-height:24px}@media (min-width: 768px){.evo-modal__title{width:674px;font-size:24px;line-height:32px}}.evo-modal__icon{margin-bottom:8px}.evo-modal__icon ::ng-deep evo-icon{display:block;width:64px;height:64px}@media (min-width: 768px){.evo-modal__icon{margin-bottom:32px}}.evo-modal__icon:empty{display:none}.evo-modal__content{width:100%;margin-top:32px;overflow:auto;font-size:14px;line-height:22px}.evo-modal__content:empty{display:none;margin-top:0}.evo-modal__content ::ng-deep *:last-child{margin-bottom:0}.evo-modal__background{position:fixed;inset:0;z-index:1010;display:flex;justify-content:center;width:100%;height:100%;background:#00000080}.evo-modal__wrapper{position:fixed;inset:0;z-index:1011;display:flex;justify-content:center;align-items:center;width:100%;padding:16px}@media (min-width: 768px){.evo-modal__wrapper{width:auto}}\n"], dependencies: [{ kind: "component", type: EvoButtonComponent, selector: "button[evoButton], a[evoButton]", inputs: ["size", "color", "theme", "disabled", "loading"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EvoModalButtonsComponent, selector: "evo-modal-buttons, [evo-modal-buttons]", inputs: ["single"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
141
  }
105
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalComponent, decorators: [{
106
143
  type: Component,
107
- args: [{ selector: 'evo-modal', standalone: true, imports: [NgClass, EvoButtonComponent], template: "@if (modalState?.isOpen) {\n <div\n class=\"evo-modal__background\"\n [ngClass]=\"{'evo-modal__background_visible': isVisible}\"\n (click)=\"onBackgroundClick($event)\"\n ></div>\n\n <div class=\"evo-modal__wrapper\" [ngClass]=\"{'evo-modal_visible': isVisible}\" (click)=\"onBackgroundClick($event)\">\n <div class=\"evo-modal\">\n <div class=\"evo-modal__icon\">\n <ng-content select=\"evo-icon\" />\n </div>\n\n @if (titleText !== undefined) {\n <h2 class=\"evo-modal__title\">{{ titleText }}</h2>\n }\n\n <div class=\"evo-modal__content\">\n <ng-content />\n </div>\n <div class=\"evo-modal__buttons\" [ngClass]=\"{'evo-modal__buttons_single-btn': !declineText || !acceptText}\">\n @if (declineText) {\n <button\n evoButton\n class=\"evo-modal__button evo-modal__button_decline\"\n [color]=\"declineButtonColor\"\n [theme]=\"declineButtonTheme\"\n [disabled]=\"isDeclineDisabled\"\n (click)=\"handleOnClose(false, closeTargets.BUTTON)\"\n >\n {{ declineText }}\n </button>\n }\n\n @if (acceptText) {\n <button\n evoButton\n class=\"evo-modal__button evo-modal__button_accept\"\n [color]=\"acceptButtonColor\"\n [theme]=\"acceptButtonTheme\"\n [loading]=\"isAcceptLoading\"\n (click)=\"handleOnClose(true, closeTargets.BUTTON)\"\n >\n {{ acceptText }}\n </button>\n }\n </div>\n </div>\n </div>\n}\n", styles: [".evo-modal{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;max-width:738px;height:auto;max-height:100%;margin-top:50px;padding:56px 0 16px;overflow:hidden;text-align:center;background-color:#fff;border-radius:16px;box-shadow:0 0 12px 2px #0000004d;opacity:0;transition:margin-top .25s,opacity .25s;transition-delay:50ms}.evo-modal_visible .evo-modal{margin-top:0;opacity:1}@media (min-width: 768px){.evo-modal{width:738px;height:auto;padding:32px 0}}.evo-modal__title{margin-top:0;margin-bottom:0;padding-right:32px;padding-left:32px;font-weight:700;font-size:16px;line-height:24px}@media (min-width: 768px){.evo-modal__title{width:674px;padding-right:16px;padding-left:16px;font-size:24px;line-height:32px}}.evo-modal__icon{margin-bottom:8px}.evo-modal__icon ::ng-deep evo-icon{display:block;width:64px;height:64px}@media (min-width: 768px){.evo-modal__icon{margin-bottom:32px}}.evo-modal__icon:empty{display:none}.evo-modal__content{width:100%;margin-top:32px;padding:0 32px;overflow:auto;font-size:14px;line-height:22px}.evo-modal__content:empty{display:none;margin-top:0}@media (min-width: 768px){.evo-modal__content{padding:0 16px}}.evo-modal__content ::ng-deep *:last-child{margin-bottom:0}.evo-modal__background{position:fixed;inset:0;z-index:1010;display:flex;justify-content:center;width:100%;height:100%;background:#00000080;opacity:0;transition:opacity .25s}.evo-modal__background_visible{opacity:1}.evo-modal__wrapper{position:fixed;inset:0;z-index:1011;display:flex;justify-content:center;align-items:center;width:100%;padding:16px}@media (min-width: 768px){.evo-modal__wrapper{width:auto}}.evo-modal__buttons{display:flex;flex-shrink:0;flex-direction:column-reverse;justify-content:center;align-items:center;width:100%;margin-top:56px;padding-right:32px;padding-left:32px}@media (min-width: 768px){.evo-modal__buttons{display:grid;width:auto;grid-template-columns:repeat(2,minmax(140px,1fr));grid-column-gap:32px;margin:32px auto 0;padding-right:16px;padding-left:16px}.evo-modal__buttons_single-btn{grid-template-columns:minmax(140px,1fr)}}.evo-modal__button{display:block;width:100%}@media (min-width: 768px){.evo-modal__button{width:auto}}.evo-modal__button+.evo-modal__button{margin:0 0 16px}@media (min-width: 768px){.evo-modal__button+.evo-modal__button{margin:0}}\n"] }]
108
- }], ctorParameters: () => [{ type: i1.EvoModalService }, { type: i0.ElementRef }], propDecorators: { id: [{
109
- type: Input
110
- }], titleText: [{
111
- type: Input
112
- }], acceptText: [{
113
- type: Input
114
- }], acceptButtonColor: [{
115
- type: Input
116
- }], acceptButtonTheme: [{
117
- type: Input
118
- }], declineText: [{
119
- type: Input
120
- }], declineButtonColor: [{
121
- type: Input
122
- }], declineButtonTheme: [{
123
- type: Input
124
- }], asyncAccept: [{
125
- type: Input
126
- }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1tb2RhbC9ldm8tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLW1vZGFsL2V2by1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFDLFNBQVMsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVwQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQUV4QyxNQUFNLENBQU4sSUFBWSxvQkFLWDtBQUxELFdBQVksb0JBQW9CO0lBQzVCLGlEQUF5QixDQUFBO0lBQ3pCLHlDQUFpQixDQUFBO0lBQ2pCLDJDQUFtQixDQUFBO0lBQ25CLHNDQUFjLENBQUE7QUFDbEIsQ0FBQyxFQUxXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFLL0I7QUFTRCxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLElBQUksRUFBRTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBYSxFQUFFLENBQUMsRUFBVTtRQUN0QixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFFB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LEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RXZvTW9kYWxTZXJ2aWNlLCBFdm9Nb2RhbFN0YXRlfSBmcm9tICcuL2V2by1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlV2hpbGV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7S2V5fSBmcm9tICd0cy1rZXljb2RlLWVudW0nO1xuaW1wb3J0IHtFdm9CdXR0b25Db2xvciwgRXZvQnV0dG9uVGhlbWV9IGZyb20gJy4uL2V2by1idXR0b24nO1xuaW1wb3J0IHtFdm9CdXR0b25Db21wb25lbnR9IGZyb20gJy4uL2V2by1idXR0b24vY29tcG9uZW50cy9ldm8tYnV0dG9uL2V2by1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TmdDbGFzc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGVudW0gRXZvTW9kYWxDbG9zZVRhcmdldHMge1xuICAgIEJBQ0tHUk9VTkQgPSAnYmFja2dyb3VuZCcsXG4gICAgQlVUVE9OID0gJ2J1dHRvbicsXG4gICAgREVGQVVMVCA9ICdkZWZhdWx0JyxcbiAgICBFU0MgPSAnZXNjYXBlJyxcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldm8tbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldm8tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2V2by1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIEV2b0J1dHRvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGlkKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9pZCA9IGlkO1xuICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UucmVnaXN0ZXIoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXZvTW9kYWwuIENhbid0IGJlIHJlZ2lzdGVyZWQsIHdyb25nIGlkIHBhc3NlZFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHRpdGxlVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFjY2VwdFRleHQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBhY2NlcHRCdXR0b25Db2xvcjogRXZvQnV0dG9uQ29sb3I7XG4gICAgQElucHV0KCkgYWNjZXB0QnV0dG9uVGhlbWU6IEV2b0J1dHRvblRoZW1lO1xuICAgIEBJbnB1dCgpIGRlY2xpbmVUZXh0OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGVjbGluZUJ1dHRvbkNvbG9yOiBFdm9CdXR0b25Db2xvciA9ICdzZWNvbmRhcnknO1xuICAgIEBJbnB1dCgpIGRlY2xpbmVCdXR0b25UaGVtZTogRXZvQnV0dG9uVGhlbWUgPSAncm91bmRlZC1vdXRsaW5lJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBASW5wdXQoKSBhc3luY0FjY2VwdDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgbW9kYWxTdGF0ZTogRXZvTW9kYWxTdGF0ZTtcbiAgICBpc0FjY2VwdExvYWRpbmcgPSBmYWxzZTtcbiAgICBpc0RlY2xpbmVEaXNhYmxlZCA9IGZhbHNlO1xuICAgIGlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgY2xvc2VUYXJnZXRzID0gRXZvTW9kYWxDbG9zZVRhcmdldHM7XG4gICAgcHJpdmF0ZSBfaWQ6IHN0cmluZztcbiAgICBwcml2YXRlIGNsb3NlVGFyZ2V0OiBFdm9Nb2RhbENsb3NlVGFyZ2V0cyA9IEV2b01vZGFsQ2xvc2VUYXJnZXRzLkRFRkFVTFQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IEV2b01vZGFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVNb2RhbEV2ZW50cygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS51bnJlZ2lzdGVyKHRoaXMuaWQpO1xuICAgIH1cblxuICAgIG9uQmFja2dyb3VuZENsaWNrKCRldmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRlY2xpbmVUZXh0ICYmXG4gICAgICAgICAgICAkZXZlbnQgJiZcbiAgICAgICAgICAgICRldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgICF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmV2by1tb2RhbCcpLmNvbnRhaW5zKCRldmVudC50YXJnZXQpICYmXG4gICAgICAgICAgICB0aGlzLm1vZGFsU3RhdGUuaXNPcGVuXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVPbkNsb3NlKGZhbHNlLCB0aGlzLmNsb3NlVGFyZ2V0cy5CQUNLR1JPVU5EKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU9uQ2xvc2UoYWdyZWVtZW50OiBib29sZWFuLCBjbG9zZVRhcmdldDogRXZvTW9kYWxDbG9zZVRhcmdldHMpOiBTdWJzY3JpcHRpb24ge1xuICAgICAgICB0aGlzLmNsb3NlVGFyZ2V0ID0gY2xvc2VUYXJnZXQ7XG5cbiAgICAgICAgaWYgKGFncmVlbWVudCA9PT0gZmFsc2UgJiYgdGhpcy5pc0RlY2xpbmVEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZ3JlZW1lbnQgJiYgdHlwZW9mIHRoaXMuYXN5bmNBY2NlcHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHNldEFzeW5jU3RhdGVzID0gKGlzTG9hZGluZyA9IGZhbHNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0RlY2xpbmVEaXNhYmxlZCA9IGlzTG9hZGluZztcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWNjZXB0TG9hZGluZyA9IGlzTG9hZGluZztcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNldEFzeW5jU3RhdGVzKHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXN5bmNBY2NlcHQoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRBc3luY1N0YXRlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNsb3NlKHRoaXMuaWQsIGFncmVlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMuY2xvc2VUYXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRBc3luY1N0YXRlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2UodGhpcy5pZCwgYWdyZWVtZW50LCB7XG4gICAgICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5jbG9zZVRhcmdldCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVNb2RhbEV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZ2V0RXZlbnRzU3Vic2NyaXB0aW9uKHRoaXMuaWQpLnN1YnNjcmliZSgobW9kYWxTdGF0ZTogRXZvTW9kYWxTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFN0YXRlID0gbW9kYWxTdGF0ZTtcbiAgICAgICAgICAgIC8vIHRpbWVvdXQgZm9yIG1vZGFsIGFuaW1hdGlvbiBzdXBwb3J0XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IG1vZGFsU3RhdGUuaXNPcGVuO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAobW9kYWxTdGF0ZS5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRLZXlib2FyZExpc3RlbmVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEtleWJvYXJkTGlzdGVuZXIoKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgcmV0dXJuIGZyb21FdmVudChkb2N1bWVudC5ib2R5LCAna2V5ZG93bicpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFN0YXRlLmlzT3BlbjtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVjbGluZVRleHQgJiYgZXZlbnQua2V5Q29kZSA9PT0gS2V5LkVzY2FwZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU9uQ2xvc2UoZmFsc2UsIHRoaXMuY2xvc2VUYXJnZXRzLkVTQyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGlmIChtb2RhbFN0YXRlPy5pc09wZW4pIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZXZvLW1vZGFsX19iYWNrZ3JvdW5kXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydldm8tbW9kYWxfX2JhY2tncm91bmRfdmlzaWJsZSc6IGlzVmlzaWJsZX1cIlxuICAgICAgICAoY2xpY2spPVwib25CYWNrZ3JvdW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImV2by1tb2RhbF9fd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsnZXZvLW1vZGFsX3Zpc2libGUnOiBpc1Zpc2libGV9XCIgKGNsaWNrKT1cIm9uQmFja2dyb3VuZENsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV2by1tb2RhbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2by1tb2RhbF9faWNvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV2by1pY29uXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKHRpdGxlVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZXZvLW1vZGFsX190aXRsZVwiPnt7IHRpdGxlVGV4dCB9fTwvaDI+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldm8tbW9kYWxfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZvLW1vZGFsX19idXR0b25zXCIgW25nQ2xhc3NdPVwieydldm8tbW9kYWxfX2J1dHRvbnNfc2luZ2xlLWJ0bic6ICFkZWNsaW5lVGV4dCB8fCAhYWNjZXB0VGV4dH1cIj5cbiAgICAgICAgICAgICAgICBAaWYgKGRlY2xpbmVUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2b0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldm8tbW9kYWxfX2J1dHRvbiBldm8tbW9kYWxfX2J1dHRvbl9kZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkZWNsaW5lQnV0dG9uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRlY2xpbmVCdXR0b25UaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEZWNsaW5lRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9uQ2xvc2UoZmFsc2UsIGNsb3NlVGFyZ2V0cy5CVVRUT04pXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGVjbGluZVRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChhY2NlcHRUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2b0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldm8tbW9kYWxfX2J1dHRvbiBldm8tbW9kYWxfX2J1dHRvbl9hY2NlcHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjY2VwdEJ1dHRvbkNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJhY2NlcHRCdXR0b25UaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJpc0FjY2VwdExvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9uQ2xvc2UodHJ1ZSwgY2xvc2VUYXJnZXRzLkJVVFRPTilcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBhY2NlcHRUZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
144
+ args: [{ selector: 'evo-modal', standalone: true, imports: [
145
+ EvoButtonComponent,
146
+ EvoUiClassDirective,
147
+ NgIf,
148
+ NgTemplateOutlet,
149
+ EvoModalButtonsComponent,
150
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isVisible()) {\n <div class=\"evo-modal__background\" (click)=\"onBackgroundClick($event)\"></div>\n\n <div class=\"evo-modal__wrapper\" (click)=\"onBackgroundClick($event)\">\n <div class=\"evo-modal\" #modal>\n @if (isDynamicContent()) {\n <ng-template #modalContainer/>\n } @else {\n <div class=\"evo-modal__icon\">\n <ng-content select=\"evo-icon\"/>\n </div>\n\n @if (titleText()) {\n <h2 class=\"evo-modal__title\">{{ titleText() }}</h2>\n }\n\n <div class=\"evo-modal__content\">\n <ng-content/>\n\n <ng-container *ngTemplateOutlet=\"modalContent()?.template; context: {data: modalContent()?.context}\"/>\n\n <ng-template #contentContainer/>\n </div>\n\n @if (showButtons()) {\n <evo-modal-buttons [single]=\"!declineText() || !acceptText()\">\n @if (declineText()) {\n <button\n class=\"evo-modal__button_decline\"\n evoButton\n [color]=\"declineButtonColor()\"\n [theme]=\"declineButtonTheme()\"\n [disabled]=\"isLoading()\"\n (click)=\"onDeclineClick()\"\n >{{ declineText() }}</button>\n }\n\n @if (acceptText()) {\n <button\n class=\"evo-modal__button_accept\"\n evoButton\n [color]=\"acceptButtonColor()\"\n [theme]=\"acceptButtonTheme()\"\n [loading]=\"isLoading()\"\n (click)=\"onAcceptClick()\"\n >{{ acceptText() }}</button>\n }\n </evo-modal-buttons>\n }\n }\n </div>\n </div>\n}\n", styles: ["@keyframes appearance{0%{opacity:0}to{opacity:1}}.evo-modal{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;max-width:752px;height:auto;max-height:100%;padding:16px;overflow:hidden;text-align:center;background-color:#fff;border-radius:16px;box-shadow:0 0 12px 2px #0000004d;animation:appearance .25s linear}@media (min-width: 768px){.evo-modal{width:752px;height:auto;padding:32px}}.evo-modal__title{margin-top:0;margin-bottom:0;font-weight:700;font-size:16px;line-height:24px}@media (min-width: 768px){.evo-modal__title{width:674px;font-size:24px;line-height:32px}}.evo-modal__icon{margin-bottom:8px}.evo-modal__icon ::ng-deep evo-icon{display:block;width:64px;height:64px}@media (min-width: 768px){.evo-modal__icon{margin-bottom:32px}}.evo-modal__icon:empty{display:none}.evo-modal__content{width:100%;margin-top:32px;overflow:auto;font-size:14px;line-height:22px}.evo-modal__content:empty{display:none;margin-top:0}.evo-modal__content ::ng-deep *:last-child{margin-bottom:0}.evo-modal__background{position:fixed;inset:0;z-index:1010;display:flex;justify-content:center;width:100%;height:100%;background:#00000080}.evo-modal__wrapper{position:fixed;inset:0;z-index:1011;display:flex;justify-content:center;align-items:center;width:100%;padding:16px}@media (min-width: 768px){.evo-modal__wrapper{width:auto}}\n"] }]
151
+ }] });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1tb2RhbC9ldm8tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLW1vZGFsL2V2by1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzNELE9BQU8sRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdDQUFnQyxFQUFFLCtCQUErQixFQUFFLG9CQUFvQixFQUFD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QUczQixVQUFVLDZDQzVFaEUsMHBFQXFEQSxxNENEVFEsa0JBQWtCLHVJQUdsQixnQkFBZ0Isb0pBQ2hCLHdCQUF3Qjs7NEZBSW5CLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDSSxXQUFXLGNBR1QsSUFBSSxXQUNQO3dCQUNMLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3FCQUMzQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNyZWF0ZUNvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgbW9kZWwsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgdmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ZpbHRlciwgZmluYWxpemUsIGZyb21FdmVudCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VXaGlsZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFdm9CdXR0b25Db2xvciwgRXZvQnV0dG9uVGhlbWV9IGZyb20gJy4uL2V2by1idXR0b24nO1xuaW1wb3J0IHtFdm9CdXR0b25Db21wb25lbnR9IGZyb20gJy4uL2V2by1idXR0b24nO1xuaW1wb3J0IHtFdm9VaUNsYXNzRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlc1wiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtFVk9fTU9EQUxfREFUQSwgRVZPX01PREFMX1JPT1RfSUR9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7TmdJZiwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RXZvRHluYW1pY01vZGFsUGFyYW1zLCBFdm9Nb2RhbENvbWJpbmVkUGFyYW1zLCBFdm9Nb2RhbFN0YXRlfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtFdm9Nb2RhbFNlcnZpY2V9IGZyb20gJy4vZXZvLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHtpc0NvbmZpZ3VyZWRDb21wb25lbnRNb2RhbFBhcmFtcywgaXNDb25maWd1cmVkVGVtcGxhdGVNb2RhbFBhcmFtcywgaXNEeW5hbWljTW9kYWxQYXJhbXN9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtFdm9Nb2RhbENsb3NlVGFyZ2V0c30gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge0V2b01vZGFsRHJhd2luZ1N0cmF0ZWd5fSBmcm9tICcuL2NsYXNzZXMvRXZvTW9kYWxEcmF3aW5nU3RyYXRlZ3knO1xuaW1wb3J0IHtFdm9EeW5hbWljTW9kYWxEcmF3aW5nU3RyYXRlZ3l9IGZyb20gJy4vY2xhc3Nlcy9Fdm9EeW5hbWljTW9kYWxEcmF3aW5nU3RyYXRlZ3knO1xuaW1wb3J0IHtFdm9Db25maWd1cmVkQ29tcG9uZW50TW9kYWxEcmF3aW5nU3RyYXRlZ3l9IGZyb20gJy4vY2xhc3Nlcy9Fdm9Db25maWd1cmVkQ29tcG9uZW50TW9kYWxEcmF3aW5nU3RyYXRlZ3knO1xuaW1wb3J0IHtFdm9Db25maWd1cmVkVGVtcGxhdGVNb2RhbERyYXdpbmdTdHJhdGVneX0gZnJvbSAnLi9jbGFzc2VzL0V2b0NvbmZpZ3VyZWRUZW1wbGF0ZU1vZGFsRHJhd2luZ1N0cmF0ZWd5JztcbmltcG9ydCB7RXZvTW9kYWxCdXR0b25zQ29tcG9uZW50fSBmcm9tICcuL2V2by1tb2RhbC1idXR0b25zL2V2by1tb2RhbC1idXR0b25zLmNvbXBvbmVudCc7XG5cbnR5cGUgSW5zZXJ0aW9uQ29udGFpbmVyVHlwZSA9ICdtb2RhbCcgfCAnY29udGVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXZvLW1vZGFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ldm8tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRXZvQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBFdm9VaUNsYXNzRGlyZWN0aXZlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBFdm9Nb2RhbEJ1dHRvbnNDb21wb25lbnQsXG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRXZvTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZvTW9kYWxSb290SWQgPSBpbmplY3QoRVZPX01PREFMX1JPT1RfSUQpO1xuXG4gICAgYWNjZXB0VGV4dCA9IG1vZGVsPHN0cmluZz4oJycpO1xuICAgIGFjY2VwdEJ1dHRvbkNvbG9yID0gbW9kZWw8RXZvQnV0dG9uQ29sb3I+KGBzdWNjZXNzYCk7XG4gICAgYWNjZXB0QnV0dG9uVGhlbWUgPSBtb2RlbDxFdm9CdXR0b25UaGVtZT4oYHJvdW5kZWQtc29saWRgKTtcbiAgICBhc3luY0FjY2VwdCA9IG1vZGVsPCgpID0+IE9ic2VydmFibGU8dW5rbm93bj4gfCBudWxsPihudWxsKTtcbiAgICBkZWNsaW5lVGV4dCA9IG1vZGVsPHN0cmluZz4oJycpO1xuICAgIGRlY2xpbmVCdXR0b25Db2xvciA9IG1vZGVsPEV2b0J1dHRvbkNvbG9yPignc2Vjb25kYXJ5Jyk7XG4gICAgZGVjbGluZUJ1dHRvblRoZW1lID0gbW9kZWw8RXZvQnV0dG9uVGhlbWU+KCdyb3VuZGVkLW91dGxpbmUnKTtcbiAgICBpZCA9IG1vZGVsPHN0cmluZz4odGhpcy5ldm9Nb2RhbFJvb3RJZCk7XG4gICAgdGl0bGVUZXh0ID0gbW9kZWw8c3RyaW5nPignJyk7XG5cbiAgICByZWFkb25seSBjb250ZW50Q29udGFpbmVyID0gdmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KTtcbiAgICByZWFkb25seSBjb250ZW50Q29udGFpbmVyJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRlbnRDb250YWluZXIpO1xuICAgIHJlYWRvbmx5IGRyYXdpbmdTdHJhdGVneSA9IHNpZ25hbDxFdm9Nb2RhbERyYXdpbmdTdHJhdGVneSB8IG51bGw+KG51bGwpO1xuICAgIHJlYWRvbmx5IGlzRHluYW1pY0NvbnRlbnQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAgcmVhZG9ubHkgaXNWaXNpYmxlID0gY29tcHV0ZWQoKCk6IGJvb2xlYW4gPT4gdGhpcy5tb2RhbFN0YXRlKCk/LmlzT3BlbiB8fCBmYWxzZSk7XG4gICAgcmVhZG9ubHkgbW9kYWxDb250YWluZXIgPSB2aWV3Q2hpbGQoJ21vZGFsQ29udGFpbmVyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KTtcbiAgICByZWFkb25seSBtb2RhbENvbnRhaW5lciQgPSB0b09ic2VydmFibGUodGhpcy5tb2RhbENvbnRhaW5lcik7XG4gICAgcmVhZG9ubHkgbW9kYWxDb250ZW50ID0gc2lnbmFsPHt0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8e2RhdGE6IHVua25vd259PiwgY29udGV4dDogdW5rbm93bn0gfCBudWxsPihudWxsKTtcbiAgICByZWFkb25seSBtb2RhbEVsZW1lbnQgPSB2aWV3Q2hpbGQoJ21vZGFsJywge3JlYWQ6IEVsZW1lbnRSZWZ9KTtcbiAgICByZWFkb25seSBtb2RhbFN0YXRlID0gc2lnbmFsPEV2b01vZGFsU3RhdGUgfCBudWxsPihudWxsKTtcbiAgICByZWFkb25seSBzaG93QnV0dG9ucyA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgPT4gdGhpcy5hY2NlcHRUZXh0KCkgfHwgdGhpcy5kZWNsaW5lVGV4dCgpKTtcblxuICAgIHJlYWRvbmx5IGNsb3NlVGFyZ2V0cyA9IEV2b01vZGFsQ2xvc2VUYXJnZXRzO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2b01vZGFsU2VydmljZSA9IGluamVjdChFdm9Nb2RhbFNlcnZpY2UpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXZvTW9kYWxTZXJ2aWNlLnJlZ2lzdGVyKHRoaXMuaWQoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlTW9kYWxFdmVudHMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldm9Nb2RhbFNlcnZpY2UudW5yZWdpc3Rlcih0aGlzLmlkKCkpO1xuICAgIH1cblxuICAgIG9uQWNjZXB0Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFzeW5jQWNjZXB0QWN0aW9uID0gdGhpcy5hc3luY0FjY2VwdCgpPy4oKTtcblxuICAgICAgICBpZiAoIWFzeW5jQWNjZXB0QWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9zZSh0cnVlLCBFdm9Nb2RhbENsb3NlVGFyZ2V0cy5CVVRUT04pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuXG4gICAgICAgIGFzeW5jQWNjZXB0QWN0aW9uLnBpcGUoXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKTogdm9pZCA9PiB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICApLnN1YnNjcmliZSgoKTogdm9pZCA9PiB0aGlzLmNsb3NlKHRydWUsIEV2b01vZGFsQ2xvc2VUYXJnZXRzLkJVVFRPTikpO1xuICAgIH1cblxuICAgIG9uQmFja2dyb3VuZENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5DbG9zZUJ5QmFja2dyb3VuZChldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoZmFsc2UsIEV2b01vZGFsQ2xvc2VUYXJnZXRzLkJBQ0tHUk9VTkQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EZWNsaW5lQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlKGZhbHNlLCBFdm9Nb2RhbENsb3NlVGFyZ2V0cy5CVVRUT04pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbGVhclZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kYWxDb250YWluZXIoKT8uY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5zZXJ0Q29tcG9uZW50KFxuICAgICAgICB7ZGF0YSwgaW5qZWN0b3IsIGNvbXBvbmVudH06IFBpY2s8RXZvRHluYW1pY01vZGFsUGFyYW1zLCAnZGF0YScgfCAnY29tcG9uZW50JyB8ICdpbmplY3Rvcic+LFxuICAgICAgICB0YXJnZXQ6IEluc2VydGlvbkNvbnRhaW5lclR5cGUgPSAnbW9kYWwnLFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBkeW5hbWljQ29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwge1xuICAgICAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgICAgZWxlbWVudEluamVjdG9yOiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBFVk9fTU9EQUxfREFUQSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcGFyZW50OiBpbmplY3RvcixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdldEluc2VydGlvbkNvbnRhaW5lcih0YXJnZXQpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGNvbnRhaW5lcik6IGNvbnRhaW5lciBpcyBWaWV3Q29udGFpbmVyUmVmID0+ICEhY29udGFpbmVyKSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICApLnN1YnNjcmliZSgoY29udGFpbmVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBjb250YWluZXIuaW5zZXJ0KGR5bmFtaWNDb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgZHluYW1pY0NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYW5DbG9zZUJ5QmFja2dyb3VuZChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmRlY2xpbmVUZXh0KCkgfHwgdGhpcy5pc0R5bmFtaWNDb250ZW50KCkpICYmXG4gICAgICAgICAgICAhdGhpcy5pc0xvYWRpbmcoKSAmJlxuICAgICAgICAgICAgdGhpcy5tb2RhbFN0YXRlKCkuaXNPcGVuICYmXG4gICAgICAgICAgICBldmVudD8udGFyZ2V0ICYmXG4gICAgICAgICAgICAhdGhpcy5tb2RhbEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZShhZ3JlZW1lbnQ6IGJvb2xlYW4sIGNsb3NlVGFyZ2V0OiBFdm9Nb2RhbENsb3NlVGFyZ2V0cyk6IHZvaWQge1xuICAgICAgICB0aGlzLmV2b01vZGFsU2VydmljZS5jbG9zZSh0aGlzLmlkKCksIGFncmVlbWVudCwge2Nsb3NlVGFyZ2V0fSk7XG4gICAgICAgIHRoaXMuY2xlYXJWaWV3KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQoKSAhPT0gdGhpcy5ldm9Nb2RhbFJvb3RJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ldm9Nb2RhbFNlcnZpY2UudW5yZWdpc3Rlcih0aGlzLmV2b01vZGFsUm9vdElkKTtcbiAgICAgICAgdGhpcy5ldm9Nb2RhbFNlcnZpY2UuY2xlYW51cERlZmF1bHRIb3N0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRJbnNlcnRpb25Db250YWluZXIodGFyZ2V0OiBJbnNlcnRpb25Db250YWluZXJUeXBlKTogT2JzZXJ2YWJsZTxWaWV3Q29udGFpbmVyUmVmPiB7XG4gICAgICAgIHJldHVybiB0YXJnZXQgPT09ICdtb2RhbCcgPyB0aGlzLm1vZGFsQ29udGFpbmVyJCA6IHRoaXMuY29udGVudENvbnRhaW5lciQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0S2V5Ym9hcmRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdrZXlkb3duJykucGlwZShcbiAgICAgICAgICAgIHRha2VXaGlsZSgoKTogYm9vbGVhbiA9PiB0aGlzLm1vZGFsU3RhdGUoKS5pc09wZW4pLFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4gPT4gKHRoaXMuZGVjbGluZVRleHQoKSB8fCB0aGlzLmlzRHluYW1pY0NvbnRlbnQoKSkgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJyksXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4gdGhpcy5jbG9zZShmYWxzZSwgdGhpcy5jbG9zZVRhcmdldHMuRVNDKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREcmF3aW5nU3RyYXRlZ3kocGFyYW1zOiBFdm9Nb2RhbENvbWJpbmVkUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSBpc0R5bmFtaWNNb2RhbFBhcmFtcyhwYXJhbXMpOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRyYXdpbmdTdHJhdGVneS5zZXQobmV3IEV2b0R5bmFtaWNNb2RhbERyYXdpbmdTdHJhdGVneSgpKTtcbiAgICAgICAgICAgIGNhc2UgaXNDb25maWd1cmVkQ29tcG9uZW50TW9kYWxQYXJhbXMocGFyYW1zKTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kcmF3aW5nU3RyYXRlZ3kuc2V0KG5ldyBFdm9Db25maWd1cmVkQ29tcG9uZW50TW9kYWxEcmF3aW5nU3RyYXRlZ3koKSk7XG4gICAgICAgICAgICBjYXNlIGlzQ29uZmlndXJlZFRlbXBsYXRlTW9kYWxQYXJhbXMocGFyYW1zKTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kcmF3aW5nU3RyYXRlZ3kuc2V0KG5ldyBFdm9Db25maWd1cmVkVGVtcGxhdGVNb2RhbERyYXdpbmdTdHJhdGVneSgpKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVNb2RhbEV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldm9Nb2RhbFNlcnZpY2UuZ2V0RXZlbnRzU3Vic2NyaXB0aW9uKHRoaXMuaWQoKSkucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICApLnN1YnNjcmliZSgobW9kYWxTdGF0ZTogRXZvTW9kYWxTdGF0ZSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFN0YXRlLnNldChtb2RhbFN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKCFtb2RhbFN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pbml0S2V5Ym9hcmRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5zZXREcmF3aW5nU3RyYXRlZ3kobW9kYWxTdGF0ZS5wYXJhbXMpO1xuICAgICAgICAgICAgdGhpcy5kcmF3aW5nU3RyYXRlZ3koKT8uZHJhdy5jYWxsKHRoaXMsIG1vZGFsU3RhdGUucGFyYW1zKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGlmIChpc1Zpc2libGUoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJldm8tbW9kYWxfX2JhY2tncm91bmRcIiAoY2xpY2spPVwib25CYWNrZ3JvdW5kQ2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImV2by1tb2RhbF9fd3JhcHBlclwiIChjbGljayk9XCJvbkJhY2tncm91bmRDbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldm8tbW9kYWxcIiAjbW9kYWw+XG4gICAgICAgICAgICBAaWYgKGlzRHluYW1pY0NvbnRlbnQoKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbW9kYWxDb250YWluZXIvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2by1tb2RhbF9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldm8taWNvblwiLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAodGl0bGVUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZXZvLW1vZGFsX190aXRsZVwiPnt7IHRpdGxlVGV4dCgpIH19PC9oMj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZvLW1vZGFsX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50Lz5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kYWxDb250ZW50KCk/LnRlbXBsYXRlOyBjb250ZXh0OiB7ZGF0YTogbW9kYWxDb250ZW50KCk/LmNvbnRleHR9XCIvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudENvbnRhaW5lci8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICBAaWYgKHNob3dCdXR0b25zKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGV2by1tb2RhbC1idXR0b25zIFtzaW5nbGVdPVwiIWRlY2xpbmVUZXh0KCkgfHwgIWFjY2VwdFRleHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChkZWNsaW5lVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV2by1tb2RhbF9fYnV0dG9uX2RlY2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldm9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImRlY2xpbmVCdXR0b25Db2xvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cImRlY2xpbmVCdXR0b25UaGVtZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9hZGluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVjbGluZUNsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBkZWNsaW5lVGV4dCgpIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWNjZXB0VGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV2by1tb2RhbF9fYnV0dG9uX2FjY2VwdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2b0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiYWNjZXB0QnV0dG9uQ29sb3IoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJhY2NlcHRCdXR0b25UaGVtZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY2NlcHRDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgYWNjZXB0VGV4dCgpIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZXZvLW1vZGFsLWJ1dHRvbnM+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { makeEnvironmentProviders } from "@angular/core";
2
+ import { EvoModalPortal } from './evo-modal-portal';
3
+ import { EVO_MODAL_CONFIG, EVO_MODAL_DEFAULT_CONFIG, EVO_MODAL_DEFAULT_ROOT_ID, EVO_MODAL_ROOT_ID } from './tokens';
4
+ import { merge } from 'lodash-es';
5
+ export function provideModal(config = {}) {
6
+ return makeEnvironmentProviders([
7
+ EvoModalPortal,
8
+ {
9
+ provide: EVO_MODAL_ROOT_ID,
10
+ useValue: EVO_MODAL_DEFAULT_ROOT_ID,
11
+ },
12
+ {
13
+ provide: EVO_MODAL_CONFIG,
14
+ useValue: merge(EVO_MODAL_DEFAULT_CONFIG, config),
15
+ },
16
+ ]);
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW1vZGFsLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLW1vZGFsL2V2by1tb2RhbC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLHdCQUF3QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFbEgsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVoQyxNQUFNLFVBQVUsWUFBWSxDQUFDLFNBQXlCLEVBQUU7SUFDcEQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QixjQUFjO1FBQ2Q7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFFBQVEsRUFBRSx5QkFBeUI7U0FDdEM7UUFDRDtZQUNJLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsUUFBUSxFQUFFLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLENBQUM7U0FDcEQ7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtFdm9Nb2RhbFBvcnRhbH0gZnJvbSAnLi9ldm8tbW9kYWwtcG9ydGFsJztcbmltcG9ydCB7RVZPX01PREFMX0NPTkZJRywgRVZPX01PREFMX0RFRkFVTFRfQ09ORklHLCBFVk9fTU9EQUxfREVGQVVMVF9ST09UX0lELCBFVk9fTU9EQUxfUk9PVF9JRH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtFdm9Nb2RhbENvbmZpZ30gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTW9kYWwoY29uZmlnOiBFdm9Nb2RhbENvbmZpZyA9IHt9KTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICBFdm9Nb2RhbFBvcnRhbCxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRVZPX01PREFMX1JPT1RfSUQsXG4gICAgICAgICAgICB1c2VWYWx1ZTogRVZPX01PREFMX0RFRkFVTFRfUk9PVF9JRCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRVZPX01PREFMX0NPTkZJRyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBtZXJnZShFVk9fTU9EQUxfREVGQVVMVF9DT05GSUcsIGNvbmZpZyksXG4gICAgICAgIH0sXG4gICAgXSk7XG59XG4iXX0=
@@ -1,32 +1,67 @@
1
- import { distinctUntilChanged, filter, tap } from 'rxjs/operators';
2
- import { Injectable } from '@angular/core';
1
+ import { distinctUntilChanged, filter } from 'rxjs/operators';
2
+ import { inject, Injectable } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { isEqual } from 'lodash-es';
5
+ import { EvoModalPortal } from "./evo-modal-portal";
6
+ import { EVO_MODAL_CONFIG, EVO_MODAL_ROOT_ID } from './tokens';
7
+ import { isConfiguredModalParams, isDynamicModalParams } from './utils';
5
8
  import * as i0 from "@angular/core";
6
9
  export class EvoModalService {
7
10
  constructor() {
11
+ this.portal = inject(EvoModalPortal);
12
+ this.config = inject(EVO_MODAL_CONFIG);
13
+ this.evoModalRootId = inject(EVO_MODAL_ROOT_ID);
8
14
  this.modalEvents$ = new Subject();
9
- this.registeredModals = {};
15
+ this.registeredModals = new Map();
10
16
  }
11
17
  register(id) {
12
- this.registeredModals[id] = { id, isOpen: false };
18
+ this.registeredModals.set(id, { id, isOpen: false });
13
19
  }
14
20
  unregister(id) {
15
- delete this.registeredModals[id];
21
+ this.registeredModals.delete(id);
16
22
  }
17
- open(id, params) {
18
- this.modalEvents$.next({ id, isOpen: true, params });
23
+ open(idOrParams, params) {
24
+ if (typeof idOrParams === 'string') {
25
+ this.modalEvents$.next({ id: idOrParams, isOpen: true, params });
26
+ }
27
+ else if (isDynamicModalParams(idOrParams)) {
28
+ this.openDynamicModal(idOrParams);
29
+ }
30
+ else if (isConfiguredModalParams(idOrParams)) {
31
+ this.openConfiguredModal(idOrParams);
32
+ }
19
33
  }
20
- close(id, agreement, params) {
34
+ close(id = this.evoModalRootId, agreement = false, params) {
21
35
  this.modalEvents$.next({ id, isOpen: false, agreement, params });
22
36
  }
23
37
  getEventsSubscription(id) {
24
- return this.modalEvents$.pipe(filter((data) => data.id === id), distinctUntilChanged((a, b) => isEqual(a, b)), tap((evoModalState) => evoModalState[id]));
38
+ return this.modalEvents$.pipe(filter(({ id: currentId }) => currentId === id), distinctUntilChanged((a, b) => isEqual(a, b)));
39
+ }
40
+ openDynamicModal(params) {
41
+ this.attachPortal();
42
+ this.modalEvents$.next({ id: this.evoModalRootId, isOpen: true, params });
43
+ }
44
+ openConfiguredModal(idOrParams) {
45
+ this.attachPortal();
46
+ this.modalEvents$.next({ id: this.evoModalRootId, isOpen: true, params: idOrParams });
47
+ }
48
+ cleanupDefaultHost() {
49
+ if (!this.portal.hasAttachedPortal()) {
50
+ return;
51
+ }
52
+ this.portal.detach();
53
+ }
54
+ attachPortal() {
55
+ if (this.portal.hasAttachedPortal()) {
56
+ return;
57
+ }
58
+ this.portal.attach(this.config.host);
25
59
  }
26
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalService }); }
61
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalService, providedIn: 'root' }); }
28
62
  }
29
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoModalService, decorators: [{
30
- type: Injectable
64
+ type: Injectable,
65
+ args: [{ providedIn: 'root' }]
31
66
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tbW9kYWwvZXZvLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFnQmxDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBR3FCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFDckQscUJBQWdCLEdBQXVDLEVBQUUsQ0FBQztLQXlCckU7SUF2QkcsUUFBUSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEVBQVUsRUFBRSxNQUF1QjtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxFQUFVLEVBQUUsU0FBa0IsRUFBRSxNQUF1QjtRQUN6RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3pCLE1BQU0sQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ2pELG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUM3QyxHQUFHLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDM0QsQ0FBQztJQUNOLENBQUM7K0dBM0JRLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7aXNFcXVhbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7RXZvU2lkZWJhclN0YXRlfSBmcm9tICcuLi9ldm8tc2lkZWJhcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZvTW9kYWxTdGF0ZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBpc09wZW46IGJvb2xlYW47XG4gICAgYWdyZWVtZW50PzogYm9vbGVhbjtcbiAgICBwYXJhbXM/OiBFdm9Nb2RhbFBhcmFtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdm9Nb2RhbFBhcmFtcyB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFdm9Nb2RhbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbEV2ZW50cyQgPSBuZXcgU3ViamVjdDxFdm9Nb2RhbFN0YXRlPigpO1xuICAgIHByaXZhdGUgcmVnaXN0ZXJlZE1vZGFsczoge1ttb2RhbElkOiBzdHJpbmddOiBFdm9Nb2RhbFN0YXRlfSA9IHt9O1xuXG4gICAgcmVnaXN0ZXIoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRNb2RhbHNbaWRdID0ge2lkLCBpc09wZW46IGZhbHNlfTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMucmVnaXN0ZXJlZE1vZGFsc1tpZF07XG4gICAgfVxuXG4gICAgb3BlbihpZDogc3RyaW5nLCBwYXJhbXM/OiBFdm9Nb2RhbFBhcmFtcykge1xuICAgICAgICB0aGlzLm1vZGFsRXZlbnRzJC5uZXh0KHtpZCwgaXNPcGVuOiB0cnVlLCBwYXJhbXN9KTtcbiAgICB9XG5cbiAgICBjbG9zZShpZDogc3RyaW5nLCBhZ3JlZW1lbnQ6IGJvb2xlYW4sIHBhcmFtcz86IEV2b01vZGFsUGFyYW1zKSB7XG4gICAgICAgIHRoaXMubW9kYWxFdmVudHMkLm5leHQoe2lkLCBpc09wZW46IGZhbHNlLCBhZ3JlZW1lbnQsIHBhcmFtc30pO1xuICAgIH1cblxuICAgIGdldEV2ZW50c1N1YnNjcmlwdGlvbihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFdm9Nb2RhbFN0YXRlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGFsRXZlbnRzJC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChkYXRhOiBFdm9TaWRlYmFyU3RhdGUpID0+IGRhdGEuaWQgPT09IGlkKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBpc0VxdWFsKGEsIGIpKSxcbiAgICAgICAgICAgIHRhcCgoZXZvTW9kYWxTdGF0ZTogRXZvTW9kYWxTdGF0ZSkgPT4gZXZvTW9kYWxTdGF0ZVtpZF0pLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tbW9kYWwvZXZvLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBUTdELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLFNBQVMsQ0FBQzs7QUFHdEUsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFHcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsTUFBTSxDQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFM0MsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUM1QyxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztLQTZEeEU7SUEzREcsUUFBUSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBS0QsSUFBSSxDQUFDLFVBQXFFLEVBQUUsTUFBdUI7UUFDL0YsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxJQUFJLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQUUsTUFBdUI7UUFDdEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQscUJBQXFCLENBQUMsRUFBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN6QixNQUFNLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBRSxTQUFTLEVBQWtCLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUMsRUFDOUQsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBNkI7UUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFvQztRQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7K0dBbkVRLGVBQWU7bUhBQWYsZUFBZSxjQURILE1BQU07OzRGQUNsQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7aXNFcXVhbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7RXZvU2lkZWJhclN0YXRlfSBmcm9tICcuLi9ldm8tc2lkZWJhcic7XG5pbXBvcnQge0V2b01vZGFsUG9ydGFsfSBmcm9tIFwiLi9ldm8tbW9kYWwtcG9ydGFsXCI7XG5pbXBvcnQge0VWT19NT0RBTF9DT05GSUcsIEVWT19NT0RBTF9ST09UX0lEfSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQge1xuICAgIEV2b0NvbmZpZ3VyZWRNb2RhbFBhcmFtcyxcbiAgICBFdm9EeW5hbWljTW9kYWxQYXJhbXMsXG4gICAgRXZvTW9kYWxDb25maWcsXG4gICAgRXZvTW9kYWxQYXJhbXMsXG4gICAgRXZvTW9kYWxTdGF0ZVxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtpc0NvbmZpZ3VyZWRNb2RhbFBhcmFtcywgaXNEeW5hbWljTW9kYWxQYXJhbXN9IGZyb20gJy4vdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBFdm9Nb2RhbFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3J0YWwgPSBpbmplY3QoRXZvTW9kYWxQb3J0YWwpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0PEV2b01vZGFsQ29uZmlnPihFVk9fTU9EQUxfQ09ORklHKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2b01vZGFsUm9vdElkID0gaW5qZWN0KEVWT19NT0RBTF9ST09UX0lEKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxFdmVudHMkID0gbmV3IFN1YmplY3Q8RXZvTW9kYWxTdGF0ZT4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdGVyZWRNb2RhbHMgPSBuZXcgTWFwPHN0cmluZywgRXZvTW9kYWxTdGF0ZT4oKTtcblxuICAgIHJlZ2lzdGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkTW9kYWxzLnNldChpZCwge2lkLCBpc09wZW46IGZhbHNlfSk7XG4gICAgfVxuXG4gICAgdW5yZWdpc3RlcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZE1vZGFscy5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIG9wZW48VD4ocGFyYW1zOiBFdm9Db25maWd1cmVkTW9kYWxQYXJhbXM8VD4pO1xuICAgIG9wZW4ocGFyYW1zOiBFdm9EeW5hbWljTW9kYWxQYXJhbXMpO1xuICAgIG9wZW4oaWQ6IHN0cmluZywgcGFyYW1zPzogRXZvTW9kYWxQYXJhbXMpO1xuICAgIG9wZW4oaWRPclBhcmFtczogc3RyaW5nIHwgRXZvRHluYW1pY01vZGFsUGFyYW1zIHwgRXZvQ29uZmlndXJlZE1vZGFsUGFyYW1zLCBwYXJhbXM/OiBFdm9Nb2RhbFBhcmFtcyk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIGlkT3JQYXJhbXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGFsRXZlbnRzJC5uZXh0KHtpZDogaWRPclBhcmFtcywgaXNPcGVuOiB0cnVlLCBwYXJhbXN9KTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0R5bmFtaWNNb2RhbFBhcmFtcyhpZE9yUGFyYW1zKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuRHluYW1pY01vZGFsKGlkT3JQYXJhbXMpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQ29uZmlndXJlZE1vZGFsUGFyYW1zKGlkT3JQYXJhbXMpKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5Db25maWd1cmVkTW9kYWwoaWRPclBhcmFtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZShpZCA9IHRoaXMuZXZvTW9kYWxSb290SWQsIGFncmVlbWVudCA9IGZhbHNlLCBwYXJhbXM/OiBFdm9Nb2RhbFBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGFsRXZlbnRzJC5uZXh0KHtpZCwgaXNPcGVuOiBmYWxzZSwgYWdyZWVtZW50LCBwYXJhbXN9KTtcbiAgICB9XG5cbiAgICBnZXRFdmVudHNTdWJzY3JpcHRpb24oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RXZvTW9kYWxTdGF0ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RhbEV2ZW50cyQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoe2lkOiBjdXJyZW50SWR9OiBFdm9TaWRlYmFyU3RhdGUpID0+IGN1cnJlbnRJZCA9PT0gaWQpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGlzRXF1YWwoYSwgYikpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9wZW5EeW5hbWljTW9kYWwocGFyYW1zOiBFdm9EeW5hbWljTW9kYWxQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdHRhY2hQb3J0YWwoKTtcblxuICAgICAgICB0aGlzLm1vZGFsRXZlbnRzJC5uZXh0KHtpZDogdGhpcy5ldm9Nb2RhbFJvb3RJZCwgaXNPcGVuOiB0cnVlLCBwYXJhbXN9KTtcbiAgICB9XG5cbiAgICBvcGVuQ29uZmlndXJlZE1vZGFsKGlkT3JQYXJhbXM6IEV2b0NvbmZpZ3VyZWRNb2RhbFBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmF0dGFjaFBvcnRhbCgpO1xuXG4gICAgICAgIHRoaXMubW9kYWxFdmVudHMkLm5leHQoe2lkOiB0aGlzLmV2b01vZGFsUm9vdElkLCBpc09wZW46IHRydWUsIHBhcmFtczogaWRPclBhcmFtc30pO1xuICAgIH1cblxuICAgIGNsZWFudXBEZWZhdWx0SG9zdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBvcnRhbC5oYXNBdHRhY2hlZFBvcnRhbCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBvcnRhbC5kZXRhY2goKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGF0dGFjaFBvcnRhbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9ydGFsLmhhc0F0dGFjaGVkUG9ydGFsKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucG9ydGFsLmF0dGFjaCh0aGlzLmNvbmZpZy5ob3N0KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1tb2RhbC9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBUZW1wbGF0ZVJlZiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2b0J1dHRvbkNvbG9yLCBFdm9CdXR0b25UaGVtZX0gZnJvbSAnLi4vZXZvLWJ1dHRvbi90eXBlcyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2b01vZGFsQ29uZmlnIHtcbiAgICBob3N0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2b01vZGFsU3RhdGUge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgaXNPcGVuOiBib29sZWFuO1xuICAgIGFncmVlbWVudD86IGJvb2xlYW47XG4gICAgcGFyYW1zPzogRXZvTW9kYWxDb21iaW5lZFBhcmFtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdm9EeW5hbWljTW9kYWxQYXJhbXMge1xuICAgIGNvbXBvbmVudDogVHlwZTx1bmtub3duPjtcbiAgICBkYXRhPzogdW5rbm93bjtcbiAgICBpbmplY3Rvcj86IEluamVjdG9yO1xufVxuXG5pbnRlcmZhY2UgRXZvQ29uZmlndXJlZEJhc2VNb2RhbFBhcmFtcyB7XG4gICAgYWNjZXB0QnV0dG9uQ29sb3I/OiBFdm9CdXR0b25Db2xvcjtcbiAgICBhY2NlcHRCdXR0b25UaGVtZT86IEV2b0J1dHRvblRoZW1lO1xuICAgIGFjY2VwdFRleHQ/OiBzdHJpbmc7XG4gICAgYXN5bmNBY2NlcHQ/OiAoKSA9PiBPYnNlcnZhYmxlPHVua25vd24+O1xuICAgIGRlY2xpbmVCdXR0b25Db2xvcj86IEV2b0J1dHRvbkNvbG9yO1xuICAgIGRlY2xpbmVCdXR0b25UaGVtZT86IEV2b0J1dHRvblRoZW1lO1xuICAgIGRlY2xpbmVUZXh0Pzogc3RyaW5nXG4gICAgdGl0bGVUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2b0NvbmZpZ3VyZWRUZW1wbGF0ZU1vZGFsUGFyYW1zPFQ+IGV4dGVuZHMgRXZvQ29uZmlndXJlZEJhc2VNb2RhbFBhcmFtcyB7XG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHtkYXRhOiBUfT47XG4gICAgY29tcG9uZW50PzogbmV2ZXI7XG4gICAgZGF0YT86IFQ7XG4gICAgaW5qZWN0b3I/OiBuZXZlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdm9Db25maWd1cmVkQ29tcG9uZW50TW9kYWxQYXJhbXM8VD4gZXh0ZW5kcyBFdm9Db25maWd1cmVkQmFzZU1vZGFsUGFyYW1zIHtcbiAgICBjb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gICAgZGF0YT86IFQ7XG4gICAgaW5qZWN0b3I/OiBJbmplY3RvcjtcbiAgICB0ZW1wbGF0ZT86IG5ldmVyO1xufVxuXG5leHBvcnQgdHlwZSBFdm9Db25maWd1cmVkTW9kYWxQYXJhbXM8VCA9IHVua25vd24+ID0gRXZvQ29uZmlndXJlZFRlbXBsYXRlTW9kYWxQYXJhbXM8VD4gfCBFdm9Db25maWd1cmVkQ29tcG9uZW50TW9kYWxQYXJhbXM8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZvTW9kYWxQYXJhbXMge1xuICAgIFtwcm9wZXJ0eTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IHR5cGUgRXZvTW9kYWxDb21iaW5lZFBhcmFtcyA9IEV2b01vZGFsUGFyYW1zIHwgRXZvRHluYW1pY01vZGFsUGFyYW1zIHwgRXZvQ29uZmlndXJlZE1vZGFsUGFyYW1zO1xuIl19
@@ -1,4 +1,10 @@
1
1
  export * from './evo-modal.module';
2
2
  export * from './evo-modal.component';
3
3
  export * from './evo-modal.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1tb2RhbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldm8tbW9kYWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZXZvLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2by1tb2RhbC5zZXJ2aWNlJztcbiJdfQ==
4
+ export * from "./enums";
5
+ export * from "./interfaces";
6
+ export * from "./evo-modal.provider";
7
+ export * from "./tokens";
8
+ export * from "./utils";
9
+ export * from './evo-modal-buttons/evo-modal-buttons.component';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V2by11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2V2by1tb2RhbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxpREFBaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXZvLW1vZGFsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2V2by1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldm8tbW9kYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnVtc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZvLW1vZGFsLnByb3ZpZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b2tlbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5leHBvcnQgKiBmcm9tICcuL2V2by1tb2RhbC1idXR0b25zL2V2by1tb2RhbC1idXR0b25zLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const EVO_MODAL_CONFIG = new InjectionToken('EVO_MODAL_CONFIG');
3
+ // Root ID
4
+ export const EVO_MODAL_DEFAULT_ROOT_ID = 'EVO_MODAL_ROOT_ID';
5
+ export const EVO_MODAL_ROOT_ID = new InjectionToken('EvoModal default root ID');
6
+ // Config
7
+ export const EVO_MODAL_DEFAULT_CONFIG = {
8
+ host: 'body',
9
+ };
10
+ // Modal Data
11
+ export const EVO_MODAL_DATA = new InjectionToken('EVO_MODAL_DATA');
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLW1vZGFsL3Rva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFpQixrQkFBa0IsQ0FBQyxDQUFDO0FBRXZGLFVBQVU7QUFDVixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxtQkFBbUIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBRXhGLFNBQVM7QUFDVCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBbUI7SUFDcEQsSUFBSSxFQUFFLE1BQU07Q0FDZixDQUFDO0FBRUYsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2b01vZGFsQ29uZmlnfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5cbmV4cG9ydCBjb25zdCBFVk9fTU9EQUxfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEV2b01vZGFsQ29uZmlnPignRVZPX01PREFMX0NPTkZJRycpO1xuXG4vLyBSb290IElEXG5leHBvcnQgY29uc3QgRVZPX01PREFMX0RFRkFVTFRfUk9PVF9JRCA9ICdFVk9fTU9EQUxfUk9PVF9JRCc7XG5leHBvcnQgY29uc3QgRVZPX01PREFMX1JPT1RfSUQgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRXZvTW9kYWwgZGVmYXVsdCByb290IElEJyk7XG5cbi8vIENvbmZpZ1xuZXhwb3J0IGNvbnN0IEVWT19NT0RBTF9ERUZBVUxUX0NPTkZJRzogRXZvTW9kYWxDb25maWcgPSB7XG4gICAgaG9zdDogJ2JvZHknLFxufTtcblxuLy8gTW9kYWwgRGF0YVxuZXhwb3J0IGNvbnN0IEVWT19NT0RBTF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuKCdFVk9fTU9EQUxfREFUQScpO1xuIl19
@@ -0,0 +1,21 @@
1
+ export function isDynamicModalParams(params) {
2
+ return params && !isConfiguredModalParams(params) && params?.hasOwnProperty('component');
3
+ }
4
+ export function isConfiguredModalParams(params) {
5
+ return params &&
6
+ (params.hasOwnProperty('titleText') ||
7
+ params.hasOwnProperty('acceptText') ||
8
+ params.hasOwnProperty('declineText') ||
9
+ params.hasOwnProperty('acceptButtonColor') ||
10
+ params.hasOwnProperty('acceptButtonTheme') ||
11
+ params.hasOwnProperty('declineButtonColor') ||
12
+ params.hasOwnProperty('declineButtonTheme') ||
13
+ params.hasOwnProperty('asyncAccept'));
14
+ }
15
+ export function isConfiguredTemplateModalParams(params) {
16
+ return params && isConfiguredModalParams(params) && params.hasOwnProperty('template');
17
+ }
18
+ export function isConfiguredComponentModalParams(params) {
19
+ return params && isConfiguredModalParams(params) && params.hasOwnProperty('component');
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tbW9kYWwvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQStCO0lBQ2hFLE9BQU8sTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQStCO0lBQ25FLE9BQU8sTUFBTTtRQUNULENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDL0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDbkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7WUFDcEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztZQUMxQyxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDO1lBQzFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7WUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzQyxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxNQUErQjtJQUMzRSxPQUFPLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzFGLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsTUFBK0I7SUFDNUUsT0FBTyxNQUFNLElBQUksdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBFdm9Db25maWd1cmVkQ29tcG9uZW50TW9kYWxQYXJhbXMsXG4gICAgRXZvQ29uZmlndXJlZE1vZGFsUGFyYW1zLCBFdm9Db25maWd1cmVkVGVtcGxhdGVNb2RhbFBhcmFtcyxcbiAgICBFdm9EeW5hbWljTW9kYWxQYXJhbXMsXG4gICAgRXZvTW9kYWxDb21iaW5lZFBhcmFtc1xufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljTW9kYWxQYXJhbXMocGFyYW1zPzogRXZvTW9kYWxDb21iaW5lZFBhcmFtcyk6IHBhcmFtcyBpcyBFdm9EeW5hbWljTW9kYWxQYXJhbXMge1xuICAgIHJldHVybiBwYXJhbXMgJiYgIWlzQ29uZmlndXJlZE1vZGFsUGFyYW1zKHBhcmFtcykgJiYgcGFyYW1zPy5oYXNPd25Qcm9wZXJ0eSgnY29tcG9uZW50Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZpZ3VyZWRNb2RhbFBhcmFtcyhwYXJhbXM/OiBFdm9Nb2RhbENvbWJpbmVkUGFyYW1zKTogcGFyYW1zIGlzIEV2b0NvbmZpZ3VyZWRNb2RhbFBhcmFtcyB7XG4gICAgcmV0dXJuIHBhcmFtcyAmJlxuICAgICAgICAocGFyYW1zLmhhc093blByb3BlcnR5KCd0aXRsZVRleHQnKSB8fFxuICAgICAgICAgICAgcGFyYW1zLmhhc093blByb3BlcnR5KCdhY2NlcHRUZXh0JykgfHxcbiAgICAgICAgICAgIHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnZGVjbGluZVRleHQnKSB8fFxuICAgICAgICAgICAgcGFyYW1zLmhhc093blByb3BlcnR5KCdhY2NlcHRCdXR0b25Db2xvcicpIHx8XG4gICAgICAgICAgICBwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2FjY2VwdEJ1dHRvblRoZW1lJykgfHxcbiAgICAgICAgICAgIHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnZGVjbGluZUJ1dHRvbkNvbG9yJykgfHxcbiAgICAgICAgICAgIHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnZGVjbGluZUJ1dHRvblRoZW1lJykgfHxcbiAgICAgICAgICAgIHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnYXN5bmNBY2NlcHQnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZpZ3VyZWRUZW1wbGF0ZU1vZGFsUGFyYW1zKHBhcmFtcz86IEV2b01vZGFsQ29tYmluZWRQYXJhbXMpOiBwYXJhbXMgaXMgRXZvQ29uZmlndXJlZFRlbXBsYXRlTW9kYWxQYXJhbXM8dW5rbm93bj4ge1xuICAgIHJldHVybiBwYXJhbXMgJiYgaXNDb25maWd1cmVkTW9kYWxQYXJhbXMocGFyYW1zKSAmJiBwYXJhbXMuaGFzT3duUHJvcGVydHkoJ3RlbXBsYXRlJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZpZ3VyZWRDb21wb25lbnRNb2RhbFBhcmFtcyhwYXJhbXM/OiBFdm9Nb2RhbENvbWJpbmVkUGFyYW1zKTogcGFyYW1zIGlzIEV2b0NvbmZpZ3VyZWRDb21wb25lbnRNb2RhbFBhcmFtczx1bmtub3duPiB7XG4gICAgcmV0dXJuIHBhcmFtcyAmJiBpc0NvbmZpZ3VyZWRNb2RhbFBhcmFtcyhwYXJhbXMpICYmIHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnY29tcG9uZW50Jyk7XG59XG4iXX0=