@abp/ng.theme.shared 8.2.1 → 8.3.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,64 +1,55 @@
1
1
  import { SubscriptionService, uuid } from '@abp/ng.core';
2
- import { Component, ContentChild, EventEmitter, Inject, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
2
+ import { Component, DestroyRef, contentChild, effect, inject, input, model, output, viewChild, } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
4
  import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
4
- import { fromEvent, Subject } from 'rxjs';
5
- import { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';
5
+ import { fromEvent } from 'rxjs';
6
+ import { debounceTime, filter } from 'rxjs/operators';
6
7
  import { Confirmation } from '../../models/confirmation';
7
8
  import { ConfirmationService } from '../../services/confirmation.service';
8
9
  import { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';
9
10
  import { ButtonComponent } from '../button/button.component';
10
11
  import { ModalRefService } from './modal-ref.service';
11
12
  import * as i0 from "@angular/core";
12
- import * as i1 from "../../services/confirmation.service";
13
- import * as i2 from "@abp/ng.core";
14
- import * as i3 from "@ng-bootstrap/ng-bootstrap";
15
- import * as i4 from "./modal-ref.service";
16
- import * as i5 from "@angular/common";
13
+ import * as i1 from "@angular/common";
17
14
  export class ModalComponent {
18
- get visible() {
19
- return this._visible;
20
- }
21
- set visible(value) {
22
- if (typeof value !== 'boolean')
23
- return;
24
- this.toggle$.next(value);
25
- }
26
- get busy() {
27
- return this._busy;
28
- }
29
- set busy(value) {
30
- if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {
31
- this.abpSubmit.loading = value;
32
- }
33
- this._busy = value;
34
- }
35
15
  get modalWindowRef() {
36
16
  return document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);
37
17
  }
38
18
  get isFormDirty() {
39
19
  return Boolean(this.modalWindowRef?.querySelector('.ng-dirty'));
40
20
  }
41
- constructor(confirmationService, subscription, suppressUnsavedChangesWarningToken, modal, modalRefService) {
42
- this.confirmationService = confirmationService;
43
- this.subscription = subscription;
44
- this.suppressUnsavedChangesWarningToken = suppressUnsavedChangesWarningToken;
45
- this.modal = modal;
46
- this.modalRefService = modalRefService;
47
- this.options = {
48
- keyboard: true,
49
- };
50
- this.suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken;
51
- this.visibleChange = new EventEmitter();
52
- this.init = new EventEmitter();
53
- this.appear = new EventEmitter();
54
- this.disappear = new EventEmitter();
55
- this._visible = false;
56
- this._busy = false;
21
+ constructor() {
22
+ this.confirmationService = inject(ConfirmationService);
23
+ this.modal = inject(NgbModal);
24
+ this.modalRefService = inject(ModalRefService);
25
+ this.suppressUnsavedChangesWarningToken = inject(SUPPRESS_UNSAVED_CHANGES_WARNING, {
26
+ optional: true,
27
+ });
28
+ this.destroyRef = inject(DestroyRef);
29
+ this.visible = model(false);
30
+ this.busy = input(false, {
31
+ transform: (value) => {
32
+ if (this.abpSubmit() && this.abpSubmit() instanceof ButtonComponent) {
33
+ this.abpSubmit().loading = value;
34
+ }
35
+ return value;
36
+ },
37
+ });
38
+ this.options = input({ keyboard: true });
39
+ this.suppressUnsavedChangesWarning = input(this.suppressUnsavedChangesWarningToken);
40
+ this.modalContent = viewChild('modalContent');
41
+ this.abpHeader = contentChild('abpHeader');
42
+ this.abpBody = contentChild('abpBody');
43
+ this.abpFooter = contentChild('abpFooter');
44
+ this.abpSubmit = contentChild(ButtonComponent, { read: ButtonComponent });
45
+ this.init = output();
46
+ this.appear = output();
47
+ this.disappear = output();
57
48
  this.isConfirmationOpen = false;
58
- this.destroy$ = new Subject();
59
49
  this.modalIdentifier = `modal-${uuid()}`;
60
- this.toggle$ = new Subject();
61
- this.initToggleStream();
50
+ effect(() => {
51
+ this.toggle(this.visible());
52
+ });
62
53
  }
63
54
  ngOnInit() {
64
55
  this.modalRefService.register(this);
@@ -66,7 +57,7 @@ export class ModalComponent {
66
57
  dismiss(mode) {
67
58
  switch (mode) {
68
59
  case 'hard':
69
- this.visible = false;
60
+ this.visible.set(false);
70
61
  break;
71
62
  case 'soft':
72
63
  this.close();
@@ -75,116 +66,76 @@ export class ModalComponent {
75
66
  break;
76
67
  }
77
68
  }
78
- initToggleStream() {
79
- this.subscription.addOne(this.toggle$.pipe(debounceTime(0), distinctUntilChanged()), value => this.toggle(value));
80
- }
81
69
  toggle(value) {
82
- this._visible = value;
83
- this.visibleChange.emit(value);
70
+ this.visible.set(value);
84
71
  if (!value) {
85
72
  this.modalRef?.dismiss();
86
73
  this.disappear.emit();
87
- this.destroy$.next();
88
74
  return;
89
75
  }
90
76
  setTimeout(() => this.listen(), 0);
91
- this.modalRef = this.modal.open(this.modalContent, {
77
+ this.modalRef = this.modal.open(this.modalContent(), {
92
78
  size: 'md',
93
79
  centered: false,
94
80
  keyboard: false,
95
81
  scrollable: true,
96
82
  beforeDismiss: () => {
97
- if (!this.visible)
83
+ if (!this.visible())
98
84
  return true;
99
85
  this.close();
100
- return !this.visible;
86
+ return !this.visible();
101
87
  },
102
- ...this.options,
103
- windowClass: `${this.options.windowClass || ''} ${this.modalIdentifier}`,
88
+ ...this.options(),
89
+ windowClass: `${this.options().windowClass || ''} ${this.modalIdentifier}`,
104
90
  });
105
91
  this.appear.emit();
106
92
  }
107
93
  ngOnDestroy() {
108
94
  this.modalRefService.unregister(this);
109
95
  this.toggle(false);
110
- this.destroy$.next();
111
96
  }
112
97
  close() {
113
- if (this.busy)
98
+ if (this.busy())
114
99
  return;
115
- if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {
100
+ if (this.isFormDirty && !this.suppressUnsavedChangesWarning()) {
116
101
  if (this.isConfirmationOpen)
117
102
  return;
118
103
  this.isConfirmationOpen = true;
119
104
  this.confirmationService
120
- .warn('AbpUi::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpUi::AreYouSure', { dismissible: false })
105
+ .warn('AbpUi::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpUi::AreYouSure', {
106
+ dismissible: false,
107
+ })
121
108
  .subscribe((status) => {
122
109
  this.isConfirmationOpen = false;
123
110
  if (status === Confirmation.Status.confirm) {
124
- this.visible = false;
111
+ this.visible.set(false);
125
112
  }
126
113
  });
127
114
  }
128
115
  else {
129
- this.visible = false;
116
+ this.visible.set(false);
130
117
  }
131
118
  }
132
119
  listen() {
133
120
  if (this.modalWindowRef) {
134
121
  fromEvent(this.modalWindowRef, 'keyup')
135
- .pipe(takeUntil(this.destroy$), debounceTime(150), filter((key) => key && key.key === 'Escape' && this.options.keyboard))
122
+ .pipe(takeUntilDestroyed(this.destroyRef), debounceTime(150), filter((key) => key && key.key === 'Escape' && this.options().keyboard))
136
123
  .subscribe(() => this.close());
137
124
  }
138
125
  fromEvent(window, 'beforeunload')
139
- .pipe(takeUntil(this.destroy$))
126
+ .pipe(takeUntilDestroyed(this.destroyRef))
140
127
  .subscribe(event => {
141
- if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {
128
+ if (this.isFormDirty && !this.suppressUnsavedChangesWarning()) {
142
129
  event.preventDefault();
143
130
  }
144
131
  });
145
132
  this.init.emit();
146
133
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ConfirmationService }, { token: i2.SubscriptionService }, { token: SUPPRESS_UNSAVED_CHANGES_WARNING, optional: true }, { token: i3.NgbModal }, { token: i4.ModalRefService }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ModalComponent, selector: "abp-modal", inputs: { visible: "visible", busy: "busy", options: "options", suppressUnsavedChangesWarning: "suppressUnsavedChangesWarning" }, outputs: { visibleChange: "visibleChange", init: "init", appear: "appear", disappear: "disappear" }, providers: [SubscriptionService], queries: [{ propertyName: "abpHeader", first: true, predicate: ["abpHeader"], descendants: true }, { propertyName: "abpBody", first: true, predicate: ["abpBody"], descendants: true }, { propertyName: "abpFooter", first: true, predicate: ["abpFooter"], descendants: true }, { propertyName: "abpSubmit", first: true, predicate: ButtonComponent, descendants: true, read: ButtonComponent }], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n @if (abpHeader) {\r\n <div id=\"abp-modal-header\" class=\"modal-header abp-modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader\"></ng-container>\r\n \u200B\r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n }\r\n @if (abpBody) {\r\n <div id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody\"></ng-container>\r\n </div>\r\n }\r\n @if (abpFooter) {\r\n <div id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter\"></ng-container>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ModalComponent, selector: "abp-modal", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, suppressUnsavedChangesWarning: { classPropertyName: "suppressUnsavedChangesWarning", publicName: "suppressUnsavedChangesWarning", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange", init: "init", appear: "appear", disappear: "disappear" }, providers: [SubscriptionService], queries: [{ propertyName: "abpHeader", first: true, predicate: ["abpHeader"], descendants: true, isSignal: true }, { propertyName: "abpBody", first: true, predicate: ["abpBody"], descendants: true, isSignal: true }, { propertyName: "abpFooter", first: true, predicate: ["abpFooter"], descendants: true, isSignal: true }, { propertyName: "abpSubmit", first: true, predicate: ButtonComponent, descendants: true, read: ButtonComponent, isSignal: true }], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n @if (abpHeader()) {\r\n <div id=\"abp-modal-header\" class=\"modal-header abp-modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader()\"></ng-container>\r\n \u200B\r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n }\r\n @if (abpBody()) {\r\n <div id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody()\"></ng-container>\r\n </div>\r\n }\r\n @if (abpFooter()) {\r\n <div id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter()\"></ng-container>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
149
136
  }
150
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModalComponent, decorators: [{
151
138
  type: Component,
152
- args: [{ selector: 'abp-modal', providers: [SubscriptionService], template: "<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n @if (abpHeader) {\r\n <div id=\"abp-modal-header\" class=\"modal-header abp-modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader\"></ng-container>\r\n \u200B\r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n }\r\n @if (abpBody) {\r\n <div id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody\"></ng-container>\r\n </div>\r\n }\r\n @if (abpFooter) {\r\n <div id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter\"></ng-container>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"] }]
153
- }], ctorParameters: () => [{ type: i1.ConfirmationService }, { type: i2.SubscriptionService }, { type: undefined, decorators: [{
154
- type: Optional
155
- }, {
156
- type: Inject,
157
- args: [SUPPRESS_UNSAVED_CHANGES_WARNING]
158
- }] }, { type: i3.NgbModal }, { type: i4.ModalRefService }], propDecorators: { visible: [{
159
- type: Input
160
- }], busy: [{
161
- type: Input
162
- }], options: [{
163
- type: Input
164
- }], suppressUnsavedChangesWarning: [{
165
- type: Input
166
- }], modalContent: [{
167
- type: ViewChild,
168
- args: ['modalContent']
169
- }], abpHeader: [{
170
- type: ContentChild,
171
- args: ['abpHeader', { static: false }]
172
- }], abpBody: [{
173
- type: ContentChild,
174
- args: ['abpBody', { static: false }]
175
- }], abpFooter: [{
176
- type: ContentChild,
177
- args: ['abpFooter', { static: false }]
178
- }], abpSubmit: [{
179
- type: ContentChild,
180
- args: [ButtonComponent, { static: false, read: ButtonComponent }]
181
- }], visibleChange: [{
182
- type: Output
183
- }], init: [{
184
- type: Output
185
- }], appear: [{
186
- type: Output
187
- }], disappear: [{
188
- type: Output
189
- }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQWdDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQXNDLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBVTFGLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFB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RSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7Z0JBR3BELGFBQWE7c0JBQS9CLE1BQU07Z0JBRVksSUFBSTtzQkFBdEIsTUFBTTtnQkFFWSxNQUFNO3NCQUF4QixNQUFNO2dCQUVZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlLCB1dWlkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiTW9kYWxPcHRpb25zLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uZmlybWF0aW9uJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU1VQUFJFU1NfVU5TQVZFRF9DSEFOR0VTX1dBUk5JTkcgfSBmcm9tICcuLi8uLi90b2tlbnMvc3VwcHJlc3MtdW5zYXZlZC1jaGFuZ2VzLXdhcm5pbmcudG9rZW4nO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpc21pc3NhYmxlTW9kYWwsIE1vZGFsRGlzbWlzc01vZGUsIE1vZGFsUmVmU2VydmljZSB9IGZyb20gJy4vbW9kYWwtcmVmLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kYWxTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbU3Vic2NyaXB0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEaXNtaXNzYWJsZU1vZGFsIHtcclxuICBASW5wdXQoKVxyXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcbiAgfVxyXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHJldHVybjtcclxuICAgIHRoaXMudG9nZ2xlJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGJ1c3koKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYnVzeTtcclxuICB9XHJcbiAgc2V0IGJ1c3kodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLmFicFN1Ym1pdCAmJiB0aGlzLmFicFN1Ym1pdCBpbnN0YW5jZW9mIEJ1dHRvbkNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLmFicFN1Ym1pdC5sb2FkaW5nID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYnVzeSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogTmdiTW9kYWxPcHRpb25zID0ge1xyXG4gICAga2V5Ym9hcmQ6IHRydWUsXHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgc3VwcHJlc3NVbnNhdmVkQ2hhbmdlc1dhcm5pbmcgPSB0aGlzLnN1cHByZXNzVW5zYXZlZENoYW5nZXNXYXJuaW5nVG9rZW47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcpIG1vZGFsQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2FicEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBIZWFkZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdhYnBCb2R5JywgeyBzdGF0aWM6IGZhbHNlIH0pIGFicEJvZHk/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdhYnBGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwRm9vdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChCdXR0b25Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogQnV0dG9uQ29tcG9uZW50IH0pXHJcbiAgYWJwU3VibWl0PzogQnV0dG9uQ29tcG9uZW50O1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBhcHBlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBkaXNhcHBlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIF92aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIF9idXN5ID0gZmFsc2U7XHJcblxyXG4gIG1vZGFsUmVmITogTmdiTW9kYWxSZWY7XHJcblxyXG4gIGlzQ29uZmlybWF0aW9uT3BlbiA9IGZhbHNlO1xyXG5cclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG1vZGFsSWRlbnRpZmllciA9IGBtb2RhbC0ke3V1aWQoKX1gO1xyXG5cclxuICBwcml2YXRlIHRvZ2dsZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBnZXQgbW9kYWxXaW5kb3dSZWYoKSB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbmdiLW1vZGFsLXdpbmRvdy4ke3RoaXMubW9kYWxJZGVudGlmaWVyfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRm9ybURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tb2RhbFdpbmRvd1JlZj8ucXVlcnlTZWxlY3RvcignLm5nLWRpcnR5JykpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KFNVUFBSRVNTX1VOU0FWRURfQ0hBTkdFU19XQVJOSU5HKVxyXG4gICAgcHJpdmF0ZSBzdXBwcmVzc1Vuc2F2ZWRDaGFuZ2VzV2FybmluZ1Rva2VuOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBtb2RhbDogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIG1vZGFsUmVmU2VydmljZTogTW9kYWxSZWZTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0VG9nZ2xlU3RyZWFtKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbFJlZlNlcnZpY2UucmVnaXN0ZXIodGhpcyk7XHJcbiAgfVxyXG5cclxuICBkaXNtaXNzKG1vZGU6IE1vZGFsRGlzbWlzc01vZGUpIHtcclxuICAgIHN3aXRjaCAobW9kZSkge1xyXG4gICAgICBjYXNlICdoYXJkJzpcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc29mdCc6XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VG9nZ2xlU3RyZWFtKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKHRoaXMudG9nZ2xlJC5waXBlKGRlYm91bmNlVGltZSgwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHZhbHVlID0+XHJcbiAgICAgIHRoaXMudG9nZ2xlKHZhbHVlKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvZ2dsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG5cclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgdGhpcy5tb2RhbFJlZj8uZGlzbWlzcygpO1xyXG4gICAgICB0aGlzLmRpc2FwcGVhci5lbWl0KCk7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxpc3RlbigpLCAwKTtcclxuICAgIHRoaXMubW9kYWxSZWYgPSB0aGlzLm1vZGFsLm9wZW4odGhpcy5tb2RhbENvbnRlbnQsIHtcclxuICAgICAgc2l6ZTogJ21kJyxcclxuICAgICAgY2VudGVyZWQ6IGZhbHNlLFxyXG4gICAgICBrZXlib2FyZDogZmFsc2UsXHJcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICAgIGJlZm9yZURpc21pc3M6ICgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICByZXR1cm4gIXRoaXMudmlzaWJsZTtcclxuICAgICAgfSxcclxuICAgICAgLi4udGhpcy5vcHRpb25zLFxyXG4gICAgICB3aW5kb3dDbGFzczogYCR7dGhpcy5vcHRpb25zLndpbmRvd0NsYXNzIHx8ICcnfSAke3RoaXMubW9kYWxJZGVudGlmaWVyfWAsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFwcGVhci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kYWxSZWZTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyk7XHJcbiAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgaWYgKHRoaXMuYnVzeSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmlzRm9ybURpcnR5ICYmICF0aGlzLnN1cHByZXNzVW5zYXZlZENoYW5nZXNXYXJuaW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzQ29uZmlybWF0aW9uT3BlbikgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pc0NvbmZpcm1hdGlvbk9wZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcclxuICAgICAgICAud2FybihcclxuICAgICAgICAgICdBYnBVaTo6QXJlWW91U3VyZVlvdVdhbnRUb0NhbmNlbEVkaXRpbmdXYXJuaW5nTWVzc2FnZScsXHJcbiAgICAgICAgICAnQWJwVWk6OkFyZVlvdVN1cmUnLFxyXG4gICAgICAgICAgeyBkaXNtaXNzaWJsZTogZmFsc2UgfSxcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzQ29uZmlybWF0aW9uT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaXN0ZW4oKSB7XHJcbiAgICBpZiAodGhpcy5tb2RhbFdpbmRvd1JlZikge1xyXG4gICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5tb2RhbFdpbmRvd1JlZiwgJ2tleXVwJylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgxNTApLFxyXG4gICAgICAgICAgZmlsdGVyKChrZXk6IEtleWJvYXJkRXZlbnQpID0+IGtleSAmJiBrZXkua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpLFxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ2JlZm9yZXVubG9hZCcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNGb3JtRGlydHkgJiYgIXRoaXMuc3VwcHJlc3NVbnNhdmVkQ2hhbmdlc1dhcm5pbmcpIHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluaXQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG48bmctdGVtcGxhdGUgI21vZGFsQ29udGVudCBsZXQtbW9kYWw+XHJcbiAgQGlmIChhYnBIZWFkZXIpIHtcclxuICAgIDxkaXYgaWQ9XCJhYnAtbW9kYWwtaGVhZGVyXCIgY2xhc3M9XCJtb2RhbC1oZWFkZXIgYWJwLW1vZGFsLWhlYWRlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWJwSGVhZGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIOKAi1xyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgaWQ9XCJhYnAtbW9kYWwtY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1zbSBidG4tY2xvc2VcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGFicEJvZHkpIHtcclxuICAgIDxkaXYgaWQ9XCJhYnAtbW9kYWwtYm9keVwiIGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWJwQm9keVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoYWJwRm9vdGVyKSB7XHJcbiAgICA8ZGl2IGlkPVwiYWJwLW1vZGFsLWZvb3RlclwiIGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhYnBGb290ZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
139
+ args: [{ selector: 'abp-modal', providers: [SubscriptionService], template: "<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n @if (abpHeader()) {\r\n <div id=\"abp-modal-header\" class=\"modal-header abp-modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader()\"></ng-container>\r\n \u200B\r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n }\r\n @if (abpBody()) {\r\n <div id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody()\"></ng-container>\r\n </div>\r\n }\r\n @if (abpFooter()) {\r\n <div id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter()\"></ng-container>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"] }]
140
+ }], ctorParameters: () => [] });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBSVYsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQWdDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFzQyxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVTFGLE1BQU0sT0FBTyxjQUFjO0lBOEN6QixJQUFJLGNBQWM7UUFDaEIsT0FBTyxR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QUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxDQUFDO2dCQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDOytHQXhKVSxjQUFjO21HQUFkLGNBQWMsZ3NCQUZkLENBQUMsbUJBQW1CLENBQUMsd1hBa0NQLGVBQWUsMkJBQVUsZUFBZSwyS0NqRW5FLHMyQkEyQkE7OzRGRE1hLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWLENBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlLCB1dWlkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRGVzdHJveVJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIGNvbnRlbnRDaGlsZCxcclxuICBlZmZlY3QsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG1vZGVsLFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsIE5nYk1vZGFsT3B0aW9ucywgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpcm1hdGlvbic7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFNVUFBSRVNTX1VOU0FWRURfQ0hBTkdFU19XQVJOSU5HIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3N1cHByZXNzLXVuc2F2ZWQtY2hhbmdlcy13YXJuaW5nLnRva2VuJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXNtaXNzYWJsZU1vZGFsLCBNb2RhbERpc21pc3NNb2RlLCBNb2RhbFJlZlNlcnZpY2UgfSBmcm9tICcuL21vZGFsLXJlZi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIE1vZGFsU2l6ZSA9ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRGlzbWlzc2FibGVNb2RhbCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2UgPSBpbmplY3QoQ29uZmlybWF0aW9uU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGFsID0gaW5qZWN0KE5nYk1vZGFsKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kYWxSZWZTZXJ2aWNlID0gaW5qZWN0KE1vZGFsUmVmU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1cHByZXNzVW5zYXZlZENoYW5nZXNXYXJuaW5nVG9rZW4gPSBpbmplY3QoU1VQUFJFU1NfVU5TQVZFRF9DSEFOR0VTX1dBUk5JTkcsIHtcclxuICAgIG9wdGlvbmFsOiB0cnVlLFxyXG4gIH0pO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICB2aXNpYmxlID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBidXN5ID0gaW5wdXQoZmFsc2UsIHtcclxuICAgIHRyYW5zZm9ybTogKHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmFicFN1Ym1pdCgpICYmIHRoaXMuYWJwU3VibWl0KCkgaW5zdGFuY2VvZiBCdXR0b25Db21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLmFicFN1Ym1pdCgpLmxvYWRpbmcgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICBvcHRpb25zID0gaW5wdXQ8TmdiTW9kYWxPcHRpb25zPih7IGtleWJvYXJkOiB0cnVlIH0pO1xyXG5cclxuICBzdXBwcmVzc1Vuc2F2ZWRDaGFuZ2VzV2FybmluZyA9IGlucHV0KHRoaXMuc3VwcHJlc3NVbnNhdmVkQ2hhbmdlc1dhcm5pbmdUb2tlbik7XHJcblxyXG4gIG1vZGFsQ29udGVudCA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignbW9kYWxDb250ZW50Jyk7XHJcblxyXG4gIGFicEhlYWRlciA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignYWJwSGVhZGVyJyk7XHJcblxyXG4gIGFicEJvZHkgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ2FicEJvZHknKTtcclxuXHJcbiAgYWJwRm9vdGVyID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdhYnBGb290ZXInKTtcclxuXHJcbiAgYWJwU3VibWl0ID0gY29udGVudENoaWxkKEJ1dHRvbkNvbXBvbmVudCwgeyByZWFkOiBCdXR0b25Db21wb25lbnQgfSk7XHJcblxyXG4gIHJlYWRvbmx5IGluaXQgPSBvdXRwdXQoKTtcclxuXHJcbiAgcmVhZG9ubHkgYXBwZWFyID0gb3V0cHV0KCk7XHJcblxyXG4gIHJlYWRvbmx5IGRpc2FwcGVhciA9IG91dHB1dCgpO1xyXG5cclxuICBtb2RhbFJlZiE6IE5nYk1vZGFsUmVmO1xyXG5cclxuICBpc0NvbmZpcm1hdGlvbk9wZW4gPSBmYWxzZTtcclxuXHJcbiAgbW9kYWxJZGVudGlmaWVyID0gYG1vZGFsLSR7dXVpZCgpfWA7XHJcblxyXG4gIGdldCBtb2RhbFdpbmRvd1JlZigpIHtcclxuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBuZ2ItbW9kYWwtd2luZG93LiR7dGhpcy5tb2RhbElkZW50aWZpZXJ9YCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNGb3JtRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLm1vZGFsV2luZG93UmVmPy5xdWVyeVNlbGVjdG9yKCcubmctZGlydHknKSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudG9nZ2xlKHRoaXMudmlzaWJsZSgpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGFsUmVmU2VydmljZS5yZWdpc3Rlcih0aGlzKTtcclxuICB9XHJcblxyXG4gIGRpc21pc3MobW9kZTogTW9kYWxEaXNtaXNzTW9kZSkge1xyXG4gICAgc3dpdGNoIChtb2RlKSB7XHJcbiAgICAgIGNhc2UgJ2hhcmQnOlxyXG4gICAgICAgIHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzb2Z0JzpcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdG9nZ2xlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnZpc2libGUuc2V0KHZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWY/LmRpc21pc3MoKTtcclxuICAgICAgdGhpcy5kaXNhcHBlYXIuZW1pdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxpc3RlbigpLCAwKTtcclxuICAgIHRoaXMubW9kYWxSZWYgPSB0aGlzLm1vZGFsLm9wZW4odGhpcy5tb2RhbENvbnRlbnQoKSwge1xyXG4gICAgICBzaXplOiAnbWQnLFxyXG4gICAgICBjZW50ZXJlZDogZmFsc2UsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZSxcclxuICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgYmVmb3JlRGlzbWlzczogKCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKCkpIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLnZpc2libGUoKTtcclxuICAgICAgfSxcclxuICAgICAgLi4udGhpcy5vcHRpb25zKCksXHJcbiAgICAgIHdpbmRvd0NsYXNzOiBgJHt0aGlzLm9wdGlvbnMoKS53aW5kb3dDbGFzcyB8fCAnJ30gJHt0aGlzLm1vZGFsSWRlbnRpZmllcn1gLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hcHBlYXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGFsUmVmU2VydmljZS51bnJlZ2lzdGVyKHRoaXMpO1xyXG4gICAgdGhpcy50b2dnbGUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICBpZiAodGhpcy5idXN5KCkpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5pc0Zvcm1EaXJ0eSAmJiAhdGhpcy5zdXBwcmVzc1Vuc2F2ZWRDaGFuZ2VzV2FybmluZygpKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzQ29uZmlybWF0aW9uT3BlbikgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pc0NvbmZpcm1hdGlvbk9wZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcclxuICAgICAgICAud2FybignQWJwVWk6OkFyZVlvdVN1cmVZb3VXYW50VG9DYW5jZWxFZGl0aW5nV2FybmluZ01lc3NhZ2UnLCAnQWJwVWk6OkFyZVlvdVN1cmUnLCB7XHJcbiAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNDb25maXJtYXRpb25PcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pIHtcclxuICAgICAgICAgICAgdGhpcy52aXNpYmxlLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpc2libGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxpc3RlbigpIHtcclxuICAgIGlmICh0aGlzLm1vZGFsV2luZG93UmVmKSB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLm1vZGFsV2luZG93UmVmLCAna2V5dXAnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcclxuICAgICAgICAgIGZpbHRlcigoa2V5OiBLZXlib2FyZEV2ZW50KSA9PiBrZXkgJiYga2V5LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5vcHRpb25zKCkua2V5Ym9hcmQpLFxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ2JlZm9yZXVubG9hZCcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pc0Zvcm1EaXJ0eSAmJiAhdGhpcy5zdXBwcmVzc1Vuc2F2ZWRDaGFuZ2VzV2FybmluZygpKSB7XHJcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5pbml0LmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2RhbENvbnRlbnQgbGV0LW1vZGFsPlxyXG4gIEBpZiAoYWJwSGVhZGVyKCkpIHtcclxuICAgIDxkaXYgaWQ9XCJhYnAtbW9kYWwtaGVhZGVyXCIgY2xhc3M9XCJtb2RhbC1oZWFkZXIgYWJwLW1vZGFsLWhlYWRlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWJwSGVhZGVyKClcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAg4oCLXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBpZD1cImFicC1tb2RhbC1jbG9zZS1idXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuLXNtIGJ0bi1jbG9zZVwiXHJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoYWJwQm9keSgpKSB7XHJcbiAgICA8ZGl2IGlkPVwiYWJwLW1vZGFsLWJvZHlcIiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFicEJvZHkoKVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoYWJwRm9vdGVyKCkpIHtcclxuICAgIDxkaXYgaWQ9XCJhYnAtbW9kYWwtZm9vdGVyXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFicEZvb3RlcigpXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -2,4 +2,5 @@ export * from './ng-bootstrap-config.provider';
2
2
  export * from './route.provider';
3
3
  export * from './tenant-not-found.provider';
4
4
  export * from './error-handlers.provider';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmctYm9vdHN0cmFwLWNvbmZpZy5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGUucHJvdmlkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3RlbmFudC1ub3QtZm91bmQucHJvdmlkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLWhhbmRsZXJzLnByb3ZpZGVyJztcclxuIl19
5
+ export * from './theme-shared-config.provider';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZy1ib290c3RyYXAtY29uZmlnLnByb3ZpZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGVuYW50LW5vdC1mb3VuZC5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItaGFuZGxlcnMucHJvdmlkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3RoZW1lLXNoYXJlZC1jb25maWcucHJvdmlkZXInO1xyXG4iXX0=
@@ -0,0 +1,117 @@
1
+ import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
2
+ import { noop } from '@abp/ng.core';
3
+ import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
4
+ import { VALIDATION_BLUEPRINTS, VALIDATION_MAP_ERRORS_FN, defaultMapErrorsFn, VALIDATION_VALIDATE_ON_SUBMIT, } from '@ngx-validate/core';
5
+ import { DEFAULT_VALIDATION_BLUEPRINTS } from '../constants';
6
+ import { DocumentDirHandlerService, ErrorHandler } from '../handlers';
7
+ import { THEME_SHARED_APPEND_CONTENT, HTTP_ERROR_CONFIG, CONFIRMATION_ICONS, DEFAULT_CONFIRMATION_ICONS, } from '../tokens';
8
+ import { DateParserFormatter } from '../utils';
9
+ import { DEFAULT_HANDLERS_PROVIDERS, NG_BOOTSTRAP_CONFIG_PROVIDERS, THEME_SHARED_ROUTE_PROVIDERS, tenantNotFoundProvider, } from './';
10
+ export var ThemeSharedFeatureKind;
11
+ (function (ThemeSharedFeatureKind) {
12
+ ThemeSharedFeatureKind[ThemeSharedFeatureKind["HttpErrorConfig"] = 0] = "HttpErrorConfig";
13
+ ThemeSharedFeatureKind[ThemeSharedFeatureKind["ValidationBluePrint"] = 1] = "ValidationBluePrint";
14
+ ThemeSharedFeatureKind[ThemeSharedFeatureKind["ValidationErrorsFn"] = 2] = "ValidationErrorsFn";
15
+ ThemeSharedFeatureKind[ThemeSharedFeatureKind["ValidateOnSubmit"] = 3] = "ValidateOnSubmit";
16
+ ThemeSharedFeatureKind[ThemeSharedFeatureKind["Validation"] = 4] = "Validation";
17
+ ThemeSharedFeatureKind[ThemeSharedFeatureKind["ConfirmationIcons"] = 5] = "ConfirmationIcons";
18
+ })(ThemeSharedFeatureKind || (ThemeSharedFeatureKind = {}));
19
+ function makeThemeSharedFeature(kind, providers) {
20
+ return {
21
+ ɵkind: kind,
22
+ ɵproviders: providers,
23
+ };
24
+ }
25
+ export function withHttpErrorConfig(httpErrorConfig) {
26
+ return makeThemeSharedFeature(ThemeSharedFeatureKind.HttpErrorConfig, [
27
+ {
28
+ provide: HTTP_ERROR_CONFIG,
29
+ useValue: httpErrorConfig,
30
+ },
31
+ ]);
32
+ }
33
+ export function withValidationBluePrint(bluePrints) {
34
+ return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidationBluePrint, [
35
+ {
36
+ provide: VALIDATION_BLUEPRINTS,
37
+ useValue: {
38
+ ...DEFAULT_VALIDATION_BLUEPRINTS,
39
+ ...(bluePrints || {}),
40
+ },
41
+ },
42
+ ]);
43
+ }
44
+ export function withValidationMapErrorsFn(mapErrorsFn) {
45
+ return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidationErrorsFn, [
46
+ {
47
+ provide: VALIDATION_MAP_ERRORS_FN,
48
+ useValue: mapErrorsFn || defaultMapErrorsFn,
49
+ },
50
+ ]);
51
+ }
52
+ export function withValidateOnSubmit(validateOnSubmit) {
53
+ return makeThemeSharedFeature(ThemeSharedFeatureKind.ValidateOnSubmit, [
54
+ {
55
+ provide: VALIDATION_VALIDATE_ON_SUBMIT,
56
+ useValue: validateOnSubmit,
57
+ },
58
+ ]);
59
+ }
60
+ export function withConfirmationIcon(confirmationIcons) {
61
+ return makeThemeSharedFeature(ThemeSharedFeatureKind.HttpErrorConfig, [
62
+ {
63
+ provide: CONFIRMATION_ICONS,
64
+ useValue: { ...DEFAULT_CONFIRMATION_ICONS, ...(confirmationIcons || {}) },
65
+ },
66
+ ]);
67
+ }
68
+ export function provideAbpThemeShared(...features) {
69
+ const providers = [
70
+ {
71
+ provide: APP_INITIALIZER,
72
+ multi: true,
73
+ deps: [ErrorHandler],
74
+ useFactory: noop,
75
+ },
76
+ THEME_SHARED_ROUTE_PROVIDERS,
77
+ {
78
+ provide: APP_INITIALIZER,
79
+ multi: true,
80
+ deps: [THEME_SHARED_APPEND_CONTENT],
81
+ useFactory: noop,
82
+ },
83
+ { provide: HTTP_ERROR_CONFIG, useValue: undefined },
84
+ { provide: NgbDateParserFormatter, useClass: DateParserFormatter },
85
+ NG_BOOTSTRAP_CONFIG_PROVIDERS,
86
+ {
87
+ provide: VALIDATION_BLUEPRINTS,
88
+ useValue: { ...DEFAULT_VALIDATION_BLUEPRINTS },
89
+ },
90
+ {
91
+ provide: VALIDATION_MAP_ERRORS_FN,
92
+ useValue: defaultMapErrorsFn,
93
+ },
94
+ {
95
+ provide: VALIDATION_VALIDATE_ON_SUBMIT,
96
+ useValue: undefined,
97
+ },
98
+ DocumentDirHandlerService,
99
+ {
100
+ provide: APP_INITIALIZER,
101
+ useFactory: noop,
102
+ multi: true,
103
+ deps: [DocumentDirHandlerService],
104
+ },
105
+ {
106
+ provide: CONFIRMATION_ICONS,
107
+ useValue: { ...DEFAULT_CONFIRMATION_ICONS },
108
+ },
109
+ tenantNotFoundProvider,
110
+ DEFAULT_HANDLERS_PROVIDERS,
111
+ ];
112
+ for (const feature of features) {
113
+ providers.push(...feature.ɵproviders);
114
+ }
115
+ return makeEnvironmentProviders(providers);
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLWNvbmZpZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3Byb3ZpZGVycy90aGVtZS1zaGFyZWQtY29uZmlnLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQVksd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsNkJBQTZCLEdBRTlCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBRWxCLDBCQUEwQixHQUMzQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUNMLDBCQUEwQixFQUMxQiw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUN2QixNQUFNLElBQUksQ0FBQztBQUVaLE1BQU0sQ0FBTixJQUFZLHNCQU9YO0FBUEQsV0FBWSxzQkFBc0I7SUFDaEMseUZBQWUsQ0FBQTtJQUNmLGlHQUFtQixDQUFBO0lBQ25CLCtGQUFrQixDQUFBO0lBQ2xCLDJGQUFnQixDQUFBO0lBQ2hCLCtFQUFVLENBQUE7SUFDViw2RkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBUFcsc0JBQXNCLEtBQXRC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R0FBRywwQkFBMEIsRUFBRTtTQUM1QztRQUNELHNCQUFzQjtRQUN0QiwwQkFBMEI7S0FDM0IsQ0FBQztJQUVGLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBQcm92aWRlciwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIFZBTElEQVRJT05fQkxVRVBSSU5UUyxcclxuICBWQUxJREFUSU9OX01BUF9FUlJPUlNfRk4sXHJcbiAgZGVmYXVsdE1hcEVycm9yc0ZuLFxyXG4gIFZBTElEQVRJT05fVkFMSURBVEVfT05fU1VCTUlULFxyXG4gIFZhbGlkYXRpb24sXHJcbn0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgREVGQVVMVF9WQUxJREFUSU9OX0JMVUVQUklOVFMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudERpckhhbmRsZXJTZXJ2aWNlLCBFcnJvckhhbmRsZXIgfSBmcm9tICcuLi9oYW5kbGVycyc7XHJcbmltcG9ydCB7IEh0dHBFcnJvckNvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7XHJcbiAgVEhFTUVfU0hBUkVEX0FQUEVORF9DT05URU5ULFxyXG4gIEhUVFBfRVJST1JfQ09ORklHLFxyXG4gIENPTkZJUk1BVElPTl9JQ09OUyxcclxuICBDb25maXJtYXRpb25JY29ucyxcclxuICBERUZBVUxUX0NPTkZJUk1BVElPTl9JQ09OUyxcclxufSBmcm9tICcuLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBEYXRlUGFyc2VyRm9ybWF0dGVyIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIERFRkFVTFRfSEFORExFUlNfUFJPVklERVJTLFxyXG4gIE5HX0JPT1RTVFJBUF9DT05GSUdfUFJPVklERVJTLFxyXG4gIFRIRU1FX1NIQVJFRF9ST1VURV9QUk9WSURFUlMsXHJcbiAgdGVuYW50Tm90Rm91bmRQcm92aWRlcixcclxufSBmcm9tICcuLyc7XHJcblxyXG5leHBvcnQgZW51bSBUaGVtZVNoYXJlZEZlYXR1cmVLaW5kIHtcclxuICBIdHRwRXJyb3JDb25maWcsXHJcbiAgVmFsaWRhdGlvbkJsdWVQcmludCxcclxuICBWYWxpZGF0aW9uRXJyb3JzRm4sXHJcbiAgVmFsaWRhdGVPblN1Ym1pdCxcclxuICBWYWxpZGF0aW9uLFxyXG4gIENvbmZpcm1hdGlvbkljb25zLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lU2hhcmVkRmVhdHVyZTxLaW5kVCBleHRlbmRzIFRoZW1lU2hhcmVkRmVhdHVyZUtpbmQ+IHtcclxuICDJtWtpbmQ6IEtpbmRUO1xyXG4gIMm1cHJvdmlkZXJzOiBQcm92aWRlcltdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYWtlVGhlbWVTaGFyZWRGZWF0dXJlPEtpbmRUIGV4dGVuZHMgVGhlbWVTaGFyZWRGZWF0dXJlS2luZD4oXHJcbiAga2luZDogS2luZFQsXHJcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdLFxyXG4pOiBUaGVtZVNoYXJlZEZlYXR1cmU8S2luZFQ+IHtcclxuICByZXR1cm4ge1xyXG4gICAgybVraW5kOiBraW5kLFxyXG4gICAgybVwcm92aWRlcnM6IHByb3ZpZGVycyxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd2l0aEh0dHBFcnJvckNvbmZpZyhcclxuICBodHRwRXJyb3JDb25maWc6IEh0dHBFcnJvckNvbmZpZyxcclxuKTogVGhlbWVTaGFyZWRGZWF0dXJlPFRoZW1lU2hhcmVkRmVhdHVyZUtpbmQuSHR0cEVycm9yQ29uZmlnPiB7XHJcbiAgcmV0dXJuIG1ha2VUaGVtZVNoYXJlZEZlYXR1cmUoVGhlbWVTaGFyZWRGZWF0dXJlS2luZC5IdHRwRXJyb3JDb25maWcsIFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogSFRUUF9FUlJPUl9DT05GSUcsXHJcbiAgICAgIHVzZVZhbHVlOiBodHRwRXJyb3JDb25maWcsXHJcbiAgICB9LFxyXG4gIF0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd2l0aFZhbGlkYXRpb25CbHVlUHJpbnQoXHJcbiAgYmx1ZVByaW50czogVmFsaWRhdGlvbi5CbHVlcHJpbnRzLFxyXG4pOiBUaGVtZVNoYXJlZEZlYXR1cmU8VGhlbWVTaGFyZWRGZWF0dXJlS2luZC5WYWxpZGF0aW9uQmx1ZVByaW50PiB7XHJcbiAgcmV0dXJuIG1ha2VUaGVtZVNoYXJlZEZlYXR1cmUoVGhlbWVTaGFyZWRGZWF0dXJlS2luZC5WYWxpZGF0aW9uQmx1ZVByaW50LCBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fQkxVRVBSSU5UUyxcclxuICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAuLi5ERUZBVUxUX1ZBTElEQVRJT05fQkxVRVBSSU5UUyxcclxuICAgICAgICAuLi4oYmx1ZVByaW50cyB8fCB7fSksXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIF0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd2l0aFZhbGlkYXRpb25NYXBFcnJvcnNGbihcclxuICBtYXBFcnJvcnNGbjogVmFsaWRhdGlvbi5NYXBFcnJvcnNGbixcclxuKTogVGhlbWVTaGFyZWRGZWF0dXJlPFRoZW1lU2hhcmVkRmVhdHVyZUtpbmQuVmFsaWRhdGlvbkVycm9yc0ZuPiB7XHJcbiAgcmV0dXJuIG1ha2VUaGVtZVNoYXJlZEZlYXR1cmUoVGhlbWVTaGFyZWRGZWF0dXJlS2luZC5WYWxpZGF0aW9uRXJyb3JzRm4sIFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVkFMSURBVElPTl9NQVBfRVJST1JTX0ZOLFxyXG4gICAgICB1c2VWYWx1ZTogbWFwRXJyb3JzRm4gfHwgZGVmYXVsdE1hcEVycm9yc0ZuLFxyXG4gICAgfSxcclxuICBdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhWYWxpZGF0ZU9uU3VibWl0KFxyXG4gIHZhbGlkYXRlT25TdWJtaXQ6IGJvb2xlYW4sXHJcbik6IFRoZW1lU2hhcmVkRmVhdHVyZTxUaGVtZVNoYXJlZEZlYXR1cmVLaW5kLlZhbGlkYXRlT25TdWJtaXQ+IHtcclxuICByZXR1cm4gbWFrZVRoZW1lU2hhcmVkRmVhdHVyZShUaGVtZVNoYXJlZEZlYXR1cmVLaW5kLlZhbGlkYXRlT25TdWJtaXQsIFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVkFMSURBVElPTl9WQUxJREFURV9PTl9TVUJNSVQsXHJcbiAgICAgIHVzZVZhbHVlOiB2YWxpZGF0ZU9uU3VibWl0LFxyXG4gICAgfSxcclxuICBdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDb25maXJtYXRpb25JY29uKFxyXG4gIGNvbmZpcm1hdGlvbkljb25zOiBQYXJ0aWFsPENvbmZpcm1hdGlvbkljb25zPixcclxuKTogVGhlbWVTaGFyZWRGZWF0dXJlPFRoZW1lU2hhcmVkRmVhdHVyZUtpbmQuSHR0cEVycm9yQ29uZmlnPiB7XHJcbiAgcmV0dXJuIG1ha2VUaGVtZVNoYXJlZEZlYXR1cmUoVGhlbWVTaGFyZWRGZWF0dXJlS2luZC5IdHRwRXJyb3JDb25maWcsIFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ09ORklSTUFUSU9OX0lDT05TLFxyXG4gICAgICB1c2VWYWx1ZTogeyAuLi5ERUZBVUxUX0NPTkZJUk1BVElPTl9JQ09OUywgLi4uKGNvbmZpcm1hdGlvbkljb25zIHx8IHt9KSB9LFxyXG4gICAgfSxcclxuICBdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBYnBUaGVtZVNoYXJlZCguLi5mZWF0dXJlczogVGhlbWVTaGFyZWRGZWF0dXJlPFRoZW1lU2hhcmVkRmVhdHVyZUtpbmQ+W10pIHtcclxuICBjb25zdCBwcm92aWRlcnMgPSBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIGRlcHM6IFtFcnJvckhhbmRsZXJdLFxyXG4gICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgfSxcclxuICAgIFRIRU1FX1NIQVJFRF9ST1VURV9QUk9WSURFUlMsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIGRlcHM6IFtUSEVNRV9TSEFSRURfQVBQRU5EX0NPTlRFTlRdLFxyXG4gICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgfSxcclxuICAgIHsgcHJvdmlkZTogSFRUUF9FUlJPUl9DT05GSUcsIHVzZVZhbHVlOiB1bmRlZmluZWQgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgdXNlQ2xhc3M6IERhdGVQYXJzZXJGb3JtYXR0ZXIgfSxcclxuICAgIE5HX0JPT1RTVFJBUF9DT05GSUdfUFJPVklERVJTLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBWQUxJREFUSU9OX0JMVUVQUklOVFMsXHJcbiAgICAgIHVzZVZhbHVlOiB7IC4uLkRFRkFVTFRfVkFMSURBVElPTl9CTFVFUFJJTlRTIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBWQUxJREFUSU9OX01BUF9FUlJPUlNfRk4sXHJcbiAgICAgIHVzZVZhbHVlOiBkZWZhdWx0TWFwRXJyb3JzRm4sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBWQUxJREFUSU9OX1ZBTElEQVRFX09OX1NVQk1JVCxcclxuICAgICAgdXNlVmFsdWU6IHVuZGVmaW5lZCxcclxuICAgIH0sXHJcbiAgICBEb2N1bWVudERpckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IG5vb3AsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICBkZXBzOiBbRG9jdW1lbnREaXJIYW5kbGVyU2VydmljZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDT05GSVJNQVRJT05fSUNPTlMsXHJcbiAgICAgIHVzZVZhbHVlOiB7IC4uLkRFRkFVTFRfQ09ORklSTUFUSU9OX0lDT05TIH0sXHJcbiAgICB9LFxyXG4gICAgdGVuYW50Tm90Rm91bmRQcm92aWRlcixcclxuICAgIERFRkFVTFRfSEFORExFUlNfUFJPVklERVJTLFxyXG4gIF07XHJcblxyXG4gIGZvciAoY29uc3QgZmVhdHVyZSBvZiBmZWF0dXJlcykge1xyXG4gICAgcHJvdmlkZXJzLnB1c2goLi4uZmVhdHVyZS7JtXByb3ZpZGVycyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XHJcbn1cclxuIl19