@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.
- package/esm2022/lib/components/modal/modal.component.mjs +57 -106
- package/esm2022/lib/providers/index.mjs +2 -1
- package/esm2022/lib/providers/theme-shared-config.provider.mjs +117 -0
- package/esm2022/lib/theme-shared.module.mjs +10 -62
- package/esm2022/lib/tokens/index.mjs +2 -1
- package/fesm2022/abp-ng.theme.shared.mjs +230 -212
- package/fesm2022/abp-ng.theme.shared.mjs.map +1 -1
- package/lib/components/modal/modal.component.d.ts +22 -32
- package/lib/providers/index.d.ts +1 -0
- package/lib/providers/theme-shared-config.provider.d.ts +22 -0
- package/lib/theme-shared.module.d.ts +3 -0
- package/lib/tokens/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,64 +1,55 @@
|
|
|
1
1
|
import { SubscriptionService, uuid } from '@abp/ng.core';
|
|
2
|
-
import { Component,
|
|
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
|
|
5
|
-
import { debounceTime,
|
|
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 "
|
|
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(
|
|
42
|
-
this.confirmationService =
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
61
|
-
|
|
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
|
|
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.
|
|
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', {
|
|
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
|
|
111
|
+
this.visible.set(false);
|
|
125
112
|
}
|
|
126
113
|
});
|
|
127
114
|
}
|
|
128
115
|
else {
|
|
129
|
-
this.visible
|
|
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(
|
|
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(
|
|
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: [
|
|
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: {
|
|
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: () => [
|
|
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
|
-
|
|
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
|