@verisoft/ui-core 18.8.0 → 19.0.0-rc001
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/fesm2022/verisoft-ui-core.mjs +83 -84
- package/fesm2022/verisoft-ui-core.mjs.map +1 -1
- package/lib/components/breadcrumb/breadcrumbcore.component.d.ts +1 -1
- package/lib/components/checkbox/checkbox.model.d.ts +5 -3
- package/lib/components/dropdown-button/dropdown-button.model.d.ts +14 -0
- package/lib/components/dropdown-button/index.d.ts +1 -0
- package/lib/components/index.d.ts +1 -1
- package/lib/components/page-header/page-headercore.component.d.ts +1 -1
- package/lib/components/side-menu/services/side-menu-provider.service.d.ts +1 -1
- package/lib/components/unsubscribe.component.d.ts +1 -1
- package/package.json +15 -14
- package/esm2022/index.mjs +0 -7
- package/esm2022/lib/common/angular-helper.mjs +0 -23
- package/esm2022/lib/common/constants.mjs +0 -4
- package/esm2022/lib/common/control.models.mjs +0 -63
- package/esm2022/lib/common/datasource-component.model.mjs +0 -14
- package/esm2022/lib/common/deactivate-guard.model.mjs +0 -2
- package/esm2022/lib/common/download-file.mjs +0 -13
- package/esm2022/lib/common/filter.mjs +0 -7
- package/esm2022/lib/common/icons.mjs +0 -2
- package/esm2022/lib/common/index.mjs +0 -11
- package/esm2022/lib/common/notificable-property.model.mjs +0 -2
- package/esm2022/lib/common/rxjs.mjs +0 -11
- package/esm2022/lib/components/action-button-group/action-button-group.model.mjs +0 -3
- package/esm2022/lib/components/action-button-group/action-button.model.mjs +0 -2
- package/esm2022/lib/components/action-button-group/index.mjs +0 -3
- package/esm2022/lib/components/base-form/base-form-input.component.mjs +0 -100
- package/esm2022/lib/components/base-form/base-form.component.mjs +0 -187
- package/esm2022/lib/components/base-form/directives/detail-store.directive.mjs +0 -163
- package/esm2022/lib/components/base-form/index.mjs +0 -5
- package/esm2022/lib/components/base-form/models/base-form-input.models.mjs +0 -7
- package/esm2022/lib/components/base-form/models/base-form.models.mjs +0 -10
- package/esm2022/lib/components/base-form/models/index.mjs +0 -3
- package/esm2022/lib/components/breadcrumb/breadcrumb.model.mjs +0 -3
- package/esm2022/lib/components/breadcrumb/breadcrumb.service.mjs +0 -16
- package/esm2022/lib/components/breadcrumb/breadcrumbcore.component.mjs +0 -88
- package/esm2022/lib/components/breadcrumb/index.mjs +0 -4
- package/esm2022/lib/components/button/button.model.mjs +0 -3
- package/esm2022/lib/components/button/index.mjs +0 -2
- package/esm2022/lib/components/calendar/calendar.model.mjs +0 -3
- package/esm2022/lib/components/calendar/index.mjs +0 -2
- package/esm2022/lib/components/checkbox/checkbox.model.mjs +0 -3
- package/esm2022/lib/components/checkbox/index.mjs +0 -2
- package/esm2022/lib/components/confirm-dialog/confirm-dialog.model.mjs +0 -3
- package/esm2022/lib/components/confirm-dialog/index.mjs +0 -2
- package/esm2022/lib/components/dropdown/dropdown.model.mjs +0 -3
- package/esm2022/lib/components/dropdown/index.mjs +0 -2
- package/esm2022/lib/components/dynamic-component/dynamic-component.model.mjs +0 -2
- package/esm2022/lib/components/dynamic-component/index.mjs +0 -2
- package/esm2022/lib/components/filter/filter.model.mjs +0 -3
- package/esm2022/lib/components/filter/index.mjs +0 -2
- package/esm2022/lib/components/form-field/form-field.model.mjs +0 -3
- package/esm2022/lib/components/form-field/index.mjs +0 -2
- package/esm2022/lib/components/generic-field/generic-field.model.mjs +0 -3
- package/esm2022/lib/components/generic-field/index.mjs +0 -2
- package/esm2022/lib/components/generic-form/generic-form.component.mjs +0 -10
- package/esm2022/lib/components/generic-form/index.mjs +0 -2
- package/esm2022/lib/components/header/header.model.mjs +0 -4
- package/esm2022/lib/components/header/index.mjs +0 -2
- package/esm2022/lib/components/icons/icons.component.mjs +0 -29
- package/esm2022/lib/components/icons/icons.model.mjs +0 -3
- package/esm2022/lib/components/icons/index.mjs +0 -3
- package/esm2022/lib/components/index.mjs +0 -36
- package/esm2022/lib/components/input-group/index.mjs +0 -2
- package/esm2022/lib/components/input-group/input-group.model.mjs +0 -3
- package/esm2022/lib/components/loader/index.mjs +0 -2
- package/esm2022/lib/components/loader/loader.model.mjs +0 -3
- package/esm2022/lib/components/multiselect/index.mjs +0 -2
- package/esm2022/lib/components/multiselect/mutiselect.model.mjs +0 -3
- package/esm2022/lib/components/number-input/index.mjs +0 -2
- package/esm2022/lib/components/number-input/number-input.model.mjs +0 -3
- package/esm2022/lib/components/page-header/index.mjs +0 -4
- package/esm2022/lib/components/page-header/page-header.model.mjs +0 -3
- package/esm2022/lib/components/page-header/page-header.service.mjs +0 -16
- package/esm2022/lib/components/page-header/page-headercore.component.mjs +0 -52
- package/esm2022/lib/components/password/index.mjs +0 -2
- package/esm2022/lib/components/password/password.model.mjs +0 -11
- package/esm2022/lib/components/radiobutton/index.mjs +0 -2
- package/esm2022/lib/components/radiobutton/radiobutton.model.mjs +0 -3
- package/esm2022/lib/components/section/index.mjs +0 -2
- package/esm2022/lib/components/section/section.model.mjs +0 -3
- package/esm2022/lib/components/side-menu/directives/side-menu-service.directive.mjs +0 -31
- package/esm2022/lib/components/side-menu/index.mjs +0 -5
- package/esm2022/lib/components/side-menu/services/side-menu-provider.service.mjs +0 -25
- package/esm2022/lib/components/side-menu/services/side-menu.service.mjs +0 -50
- package/esm2022/lib/components/side-menu/side-menu.model.mjs +0 -6
- package/esm2022/lib/components/slider/index.mjs +0 -2
- package/esm2022/lib/components/slider/slider.model.mjs +0 -3
- package/esm2022/lib/components/snackbar/index.mjs +0 -2
- package/esm2022/lib/components/snackbar/snackbar.model.mjs +0 -3
- package/esm2022/lib/components/stepper/index.mjs +0 -2
- package/esm2022/lib/components/stepper/stepper.model.mjs +0 -3
- package/esm2022/lib/components/switch/index.mjs +0 -2
- package/esm2022/lib/components/switch/switch.model.mjs +0 -3
- package/esm2022/lib/components/tab-view/index.mjs +0 -2
- package/esm2022/lib/components/tab-view/tab-view.model.mjs +0 -3
- package/esm2022/lib/components/table/column-configuration.mjs +0 -32
- package/esm2022/lib/components/table/index.mjs +0 -5
- package/esm2022/lib/components/table/table-builder.mjs +0 -68
- package/esm2022/lib/components/table/table-column.directive.mjs +0 -86
- package/esm2022/lib/components/table/table.models.mjs +0 -150
- package/esm2022/lib/components/table-filter/index.mjs +0 -2
- package/esm2022/lib/components/table-filter/table-filter.model.mjs +0 -3
- package/esm2022/lib/components/textarea/index.mjs +0 -2
- package/esm2022/lib/components/textarea/textarea.model.mjs +0 -3
- package/esm2022/lib/components/textfield/index.mjs +0 -2
- package/esm2022/lib/components/textfield/textfield.model.mjs +0 -3
- package/esm2022/lib/components/tristatecheckbox/index.mjs +0 -2
- package/esm2022/lib/components/tristatecheckbox/tristatecheckbox.model.mjs +0 -3
- package/esm2022/lib/components/unsubscribe.component.mjs +0 -16
- package/esm2022/lib/directives/datasource.directive.mjs +0 -175
- package/esm2022/lib/directives/index.mjs +0 -5
- package/esm2022/lib/directives/shortcut.directive.mjs +0 -46
- package/esm2022/lib/directives/table-datasource.directive.mjs +0 -124
- package/esm2022/lib/directives/table-filter.directive.mjs +0 -56
- package/esm2022/lib/format/format.mjs +0 -63
- package/esm2022/lib/pipes/error/error.codes.mjs +0 -10
- package/esm2022/lib/pipes/error/error.models.mjs +0 -21
- package/esm2022/lib/pipes/error/error.pipe.mjs +0 -31
- package/esm2022/lib/pipes/error/warning.codes.mjs +0 -4
- package/esm2022/lib/pipes/error/warning.pipe.mjs +0 -31
- package/esm2022/lib/pipes/helper/enumToList.pipe.mjs +0 -22
- package/esm2022/lib/pipes/index.mjs +0 -8
- package/esm2022/lib/pipes/keyOrFn/keyOrFn.pipe.mjs +0 -31
- package/esm2022/lib/services/confirm-dialog.service.mjs +0 -45
- package/esm2022/lib/services/index.mjs +0 -5
- package/esm2022/lib/services/leave-form.service.mjs +0 -52
- package/esm2022/lib/services/screen-size.service.mjs +0 -29
- package/esm2022/lib/services/table.service.mjs +0 -27
- package/esm2022/verisoft-ui-core.mjs +0 -5
- package/lib/components/tristatecheckbox/index.d.ts +0 -1
- package/lib/components/tristatecheckbox/tristatecheckbox.model.d.ts +0 -4
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, EventEmitter, HostListener, inject, Input, Output, } from '@angular/core';
|
|
2
|
-
import { cloneDeep } from 'lodash-es';
|
|
3
|
-
import { Subject, takeUntil, filter, map } from 'rxjs';
|
|
4
|
-
import { PreventUnsavedChangesDirective } from '../../services';
|
|
5
|
-
import { isFormStateEqual } from './models';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class BaseFormDirective {
|
|
8
|
-
data;
|
|
9
|
-
dataChange = new EventEmitter();
|
|
10
|
-
statusChange = new EventEmitter();
|
|
11
|
-
formSubmit = new EventEmitter();
|
|
12
|
-
formClear = new EventEmitter();
|
|
13
|
-
formDestroyed$ = new Subject();
|
|
14
|
-
keys = [];
|
|
15
|
-
formGroup;
|
|
16
|
-
cd = inject(ChangeDetectorRef);
|
|
17
|
-
valueInitialization = false;
|
|
18
|
-
lastState;
|
|
19
|
-
guardViewChild;
|
|
20
|
-
formSubmitted = false;
|
|
21
|
-
guard = inject(PreventUnsavedChangesDirective);
|
|
22
|
-
unloadHandler(event) {
|
|
23
|
-
if (this.formGroup.dirty) {
|
|
24
|
-
event.preventDefault();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
canDeactivate() {
|
|
28
|
-
if (this.formGroup.dirty && !this.formSubmitted) {
|
|
29
|
-
const result = this.guard.showConfirmationDialog();
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
this.initializeFormGroup();
|
|
36
|
-
}
|
|
37
|
-
ngOnChanges(changes) {
|
|
38
|
-
if (changes['data'] && this.formGroup) {
|
|
39
|
-
this.valueInitialization = true;
|
|
40
|
-
const dirty = this.formGroup.dirty;
|
|
41
|
-
this.formGroup.patchValue(this.fromModel(this.data), {
|
|
42
|
-
emitEvent: false,
|
|
43
|
-
onlySelf: true,
|
|
44
|
-
});
|
|
45
|
-
this.formGroup.updateValueAndValidity();
|
|
46
|
-
if (!dirty) {
|
|
47
|
-
this.formGroup.markAsPristine();
|
|
48
|
-
}
|
|
49
|
-
this.valueInitialization = false;
|
|
50
|
-
this.createAndEmitIfFormStateChanged();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
ngAfterViewInit() {
|
|
54
|
-
this.cd.detectChanges();
|
|
55
|
-
}
|
|
56
|
-
ngOnDestroy() {
|
|
57
|
-
this.formDestroyed$.next();
|
|
58
|
-
this.formDestroyed$.complete();
|
|
59
|
-
}
|
|
60
|
-
createCompleteData() {
|
|
61
|
-
const change = this.toModel(this.formGroup?.value);
|
|
62
|
-
this.recursiveObjectAttributesTransformation(change);
|
|
63
|
-
const updatedData = this.applyChanges(cloneDeep(this.data), cloneDeep(change));
|
|
64
|
-
return updatedData;
|
|
65
|
-
}
|
|
66
|
-
submit() {
|
|
67
|
-
this.formSubmitted = true;
|
|
68
|
-
this.formGroup.markAllAsTouched();
|
|
69
|
-
if (!this.formGroup.invalid) {
|
|
70
|
-
this.formSubmit.emit(this.createCompleteData());
|
|
71
|
-
}
|
|
72
|
-
this.formGroup.markAsPristine();
|
|
73
|
-
}
|
|
74
|
-
clear() {
|
|
75
|
-
this.formClear.emit();
|
|
76
|
-
}
|
|
77
|
-
initializeFormGroup() {
|
|
78
|
-
this.formGroup = this.createFormGroup();
|
|
79
|
-
this.valueInitialization = true;
|
|
80
|
-
this.formGroup.patchValue(this.fromModel(this.data), {
|
|
81
|
-
emitEvent: false,
|
|
82
|
-
onlySelf: true,
|
|
83
|
-
});
|
|
84
|
-
this.formGroup.markAsPristine();
|
|
85
|
-
this.initValueChanges();
|
|
86
|
-
this.initStatusChanges();
|
|
87
|
-
this.valueInitialization = false;
|
|
88
|
-
}
|
|
89
|
-
initValueChanges() {
|
|
90
|
-
this.formGroup.valueChanges
|
|
91
|
-
.pipe(takeUntil(this.formDestroyed$), filter(() => !this.valueInitialization), map((value) => {
|
|
92
|
-
const change = this.toModel(value);
|
|
93
|
-
this.recursiveObjectAttributesTransformation(change);
|
|
94
|
-
const updatedData = this.applyChanges(cloneDeep(this.data), cloneDeep(change));
|
|
95
|
-
return updatedData;
|
|
96
|
-
}))
|
|
97
|
-
.subscribe((updatedData) => {
|
|
98
|
-
this.dataChange.emit(updatedData);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
initStatusChanges() {
|
|
102
|
-
this.formGroup.statusChanges
|
|
103
|
-
.pipe(takeUntil(this.formDestroyed$))
|
|
104
|
-
.subscribe(() => {
|
|
105
|
-
if (!this.valueInitialization) {
|
|
106
|
-
this.createAndEmitIfFormStateChanged();
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
this.createAndEmitIfFormStateChanged();
|
|
110
|
-
}
|
|
111
|
-
createAndEmitIfFormStateChanged() {
|
|
112
|
-
const formState = {
|
|
113
|
-
valid: !this.formGroup.invalid,
|
|
114
|
-
dirty: this.formGroup.dirty,
|
|
115
|
-
};
|
|
116
|
-
if (!isFormStateEqual(formState, this.lastState)) {
|
|
117
|
-
this.lastState = formState;
|
|
118
|
-
this.statusChange.emit(formState);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
applyChanges(data, changes) {
|
|
122
|
-
return Object.assign(data || {}, changes);
|
|
123
|
-
}
|
|
124
|
-
toModel(data) {
|
|
125
|
-
return data || {};
|
|
126
|
-
}
|
|
127
|
-
fromModel(data) {
|
|
128
|
-
return { ...(data || {}) };
|
|
129
|
-
}
|
|
130
|
-
recursiveObjectAttributesTransformation(obj) {
|
|
131
|
-
this.recursiveObjectAttributesTraversal(obj, this.transformEmptyStringToNullStringFn);
|
|
132
|
-
}
|
|
133
|
-
recursiveObjectAttributesTraversal(obj, transformationFn) {
|
|
134
|
-
if (obj === null ||
|
|
135
|
-
transformationFn === null ||
|
|
136
|
-
typeof transformationFn !== 'function') {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
const traverse = (obj) => {
|
|
140
|
-
for (const key in obj) {
|
|
141
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
142
|
-
if (obj.hasOwnProperty(key)) {
|
|
143
|
-
transformationFn(obj, key);
|
|
144
|
-
if (typeof obj[key] === 'object') {
|
|
145
|
-
traverse(obj[key]);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
traverse(obj);
|
|
151
|
-
}
|
|
152
|
-
transformEmptyStringToNullStringFn(obj, key) {
|
|
153
|
-
// if empty string - transformation to null string
|
|
154
|
-
if (typeof obj[key] === 'string' && obj[key] === '') {
|
|
155
|
-
try {
|
|
156
|
-
obj[key] = null;
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
console.error(`Cannot modify ${key}: ${error}`);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BaseFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
164
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: BaseFormDirective, isStandalone: true, selector: "[v-baseForm]", inputs: { data: "data" }, outputs: { dataChange: "dataChange", statusChange: "statusChange", formSubmit: "formSubmit", formClear: "formClear" }, host: { listeners: { "window:beforeunload": "unloadHandler($event)" } }, usesOnChanges: true, ngImport: i0 });
|
|
165
|
-
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BaseFormDirective, decorators: [{
|
|
167
|
-
type: Directive,
|
|
168
|
-
args: [{
|
|
169
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
170
|
-
selector: '[v-baseForm]',
|
|
171
|
-
standalone: true,
|
|
172
|
-
}]
|
|
173
|
-
}], propDecorators: { data: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], dataChange: [{
|
|
176
|
-
type: Output
|
|
177
|
-
}], statusChange: [{
|
|
178
|
-
type: Output
|
|
179
|
-
}], formSubmit: [{
|
|
180
|
-
type: Output
|
|
181
|
-
}], formClear: [{
|
|
182
|
-
type: Output
|
|
183
|
-
}], unloadHandler: [{
|
|
184
|
-
type: HostListener,
|
|
185
|
-
args: ['window:beforeunload', ['$event']]
|
|
186
|
-
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNdkQsTUFBTSxPQUFnQixpQkFBaUI7SUFHNUIsSUFBSSxDQUFXO0lBQ2QsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFDbkMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7SUFDN0MsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFDbkMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFL0MsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDckMsSUFBSSxHQUF1RSxFQUFFLENBQUM7SUFDOUUsU0FBUyxDQUFhO0lBQ3RCLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQixtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsU0FBUyxDQUFhO0lBQ3RCLGNBQWMsQ0FBYTtJQUMzQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ1osS0FBSyxHQUFH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USxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFJVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFhUCxhQUFhO3NCQURaLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByZXZlbnRVbnNhdmVkQ2hhbmdlc0NvcmUgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgUHJldmVudFVuc2F2ZWRDaGFuZ2VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlLCBpc0Zvcm1TdGF0ZUVxdWFsIH0gZnJvbSAnLi9tb2RlbHMnO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3YtYmFzZUZvcm1dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZvcm1EaXJlY3RpdmU8VCBleHRlbmRzIG9iamVjdD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBQcmV2ZW50VW5zYXZlZENoYW5nZXNDb3JlXG57XG4gIEBJbnB1dCgpIGRhdGEhOiBUIHwgYW55O1xuICBAT3V0cHV0KCkgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHN0YXR1c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXRlPigpO1xuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIGZvcm1DbGVhciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBmb3JtRGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGtleXM6IHsga2V5OiBzdHJpbmc7IGFsaWFzPzogc3RyaW5nOyB0eXBlPzogc3RyaW5nOyByZWFkT25seTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG4gIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgdmFsdWVJbml0aWFsaXphdGlvbiA9IGZhbHNlO1xuICBsYXN0U3RhdGUhOiBGb3JtU3RhdGU7XG4gIGd1YXJkVmlld0NoaWxkITogVmlld0NoaWxkO1xuICBmb3JtU3VibWl0dGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBndWFyZCA9IGluamVjdChQcmV2ZW50VW5zYXZlZENoYW5nZXNEaXJlY3RpdmUpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnLCBbJyRldmVudCddKVxuICB1bmxvYWRIYW5kbGVyKGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5kaXJ0eSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmRpcnR5ICYmICF0aGlzLmZvcm1TdWJtaXR0ZWQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ3VhcmQuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZygpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Hcm91cCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMudmFsdWVJbml0aWFsaXphdGlvbiA9IHRydWU7XG4gICAgICBjb25zdCBkaXJ0eSA9IHRoaXMuZm9ybUdyb3VwLmRpcnR5O1xuXG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuZnJvbU1vZGVsKHRoaXMuZGF0YSksIHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgb25seVNlbGY6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5mb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgaWYgKCFkaXJ0eSkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnZhbHVlSW5pdGlhbGl6YXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuY3JlYXRlQW5kRW1pdElmRm9ybVN0YXRlQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybURlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZm9ybURlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFic3RyYWN0IGNyZWF0ZUZvcm1Hcm91cCgpOiBGb3JtR3JvdXA7XG5cbiAgY3JlYXRlQ29tcGxldGVEYXRhKCkge1xuICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMudG9Nb2RlbCh0aGlzLmZvcm1Hcm91cD8udmFsdWUpO1xuICAgIHRoaXMucmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYW5zZm9ybWF0aW9uKGNoYW5nZSk7XG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSB0aGlzLmFwcGx5Q2hhbmdlcyhcbiAgICAgIGNsb25lRGVlcCh0aGlzLmRhdGEpLFxuICAgICAgY2xvbmVEZWVwKGNoYW5nZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWREYXRhO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IHRydWU7XG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5jcmVhdGVDb21wbGV0ZURhdGEoKSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmZvcm1DbGVhci5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtR3JvdXAoKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgIHRoaXMudmFsdWVJbml0aWFsaXphdGlvbiA9IHRydWU7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLmZyb21Nb2RlbCh0aGlzLmRhdGEpLCB7XG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgb25seVNlbGY6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHRoaXMuaW5pdFZhbHVlQ2hhbmdlcygpO1xuICAgIHRoaXMuaW5pdFN0YXR1c0NoYW5nZXMoKTtcbiAgICB0aGlzLnZhbHVlSW5pdGlhbGl6YXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFZhbHVlQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy52YWx1ZUluaXRpYWxpemF0aW9uKSxcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMudG9Nb2RlbCh2YWx1ZSk7XG4gICAgICAgICAgdGhpcy5yZWN1cnNpdmVPYmplY3RBdHRyaWJ1dGVzVHJhbnNmb3JtYXRpb24oY2hhbmdlKTtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHRoaXMuYXBwbHlDaGFuZ2VzKFxuICAgICAgICAgICAgY2xvbmVEZWVwKHRoaXMuZGF0YSksXG4gICAgICAgICAgICBjbG9uZURlZXAoY2hhbmdlKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWREYXRhO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodXBkYXRlZERhdGEpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodXBkYXRlZERhdGEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdGF0dXNDaGFuZ2VzKCkge1xuICAgIHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmZvcm1EZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVJbml0aWFsaXphdGlvbikge1xuICAgICAgICAgIHRoaXMuY3JlYXRlQW5kRW1pdElmRm9ybVN0YXRlQ2hhbmdlZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuY3JlYXRlQW5kRW1pdElmRm9ybVN0YXRlQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbmRFbWl0SWZGb3JtU3RhdGVDaGFuZ2VkKCkge1xuICAgIGNvbnN0IGZvcm1TdGF0ZTogRm9ybVN0YXRlID0ge1xuICAgICAgdmFsaWQ6ICF0aGlzLmZvcm1Hcm91cC5pbnZhbGlkLFxuICAgICAgZGlydHk6IHRoaXMuZm9ybUdyb3VwLmRpcnR5LFxuICAgIH07XG5cbiAgICBpZiAoIWlzRm9ybVN0YXRlRXF1YWwoZm9ybVN0YXRlLCB0aGlzLmxhc3RTdGF0ZSkpIHtcbiAgICAgIHRoaXMubGFzdFN0YXRlID0gZm9ybVN0YXRlO1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2UuZW1pdChmb3JtU3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhcHBseUNoYW5nZXMoZGF0YTogVCwgY2hhbmdlczogUGFydGlhbDxUPik6IFQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGRhdGEgfHwgKHt9IGFzIFQpLCBjaGFuZ2VzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b01vZGVsKGRhdGE6IFQpOiBQYXJ0aWFsPFQ+IHtcbiAgICByZXR1cm4gZGF0YSB8fCB7fTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmcm9tTW9kZWwoZGF0YTogVCk6IFQge1xuICAgIHJldHVybiB7IC4uLihkYXRhIHx8IHt9KSB9IGFzIFQ7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZU9iamVjdEF0dHJpYnV0ZXNUcmFuc2Zvcm1hdGlvbihvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYXZlcnNhbChcbiAgICAgIG9iaixcbiAgICAgIHRoaXMudHJhbnNmb3JtRW1wdHlTdHJpbmdUb051bGxTdHJpbmdGblxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZU9iamVjdEF0dHJpYnV0ZXNUcmF2ZXJzYWwoXG4gICAgb2JqOiBhbnksXG4gICAgdHJhbnNmb3JtYXRpb25GbjogKG9iajogYW55LCBrZXk6IHN0cmluZykgPT4gdm9pZFxuICApIHtcbiAgICBpZiAoXG4gICAgICBvYmogPT09IG51bGwgfHxcbiAgICAgIHRyYW5zZm9ybWF0aW9uRm4gPT09IG51bGwgfHxcbiAgICAgIHR5cGVvZiB0cmFuc2Zvcm1hdGlvbkZuICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHJhdmVyc2UgPSAob2JqOiBhbnkpID0+IHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgIHRyYW5zZm9ybWF0aW9uRm4ob2JqLCBrZXkpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRyYXZlcnNlKG9ialtrZXldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJhdmVyc2Uob2JqKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRW1wdHlTdHJpbmdUb051bGxTdHJpbmdGbihvYmo6IGFueSwga2V5OiBzdHJpbmcpIHtcbiAgICAvLyBpZiBlbXB0eSBzdHJpbmcgLSB0cmFuc2Zvcm1hdGlvbiB0byBudWxsIHN0cmluZ1xuICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdzdHJpbmcnICYmIG9ialtrZXldID09PSAnJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgb2JqW2tleV0gPSBudWxsO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IG1vZGlmeSAke2tleX06ICR7ZXJyb3J9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Input, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { createFeatureSelector, createSelector, Store } from '@ngrx/store';
|
|
4
|
-
import { createInitDetailAction, createInitNewDetailAction, createResetStateAction, createUpdateDetailAction, createUpdateDetailSetErrorsAction, createUpdateFormStateAction, } from '@verisoft/store';
|
|
5
|
-
import { takeUntil } from 'rxjs';
|
|
6
|
-
import { UnsubscribeComponent } from '../../unsubscribe.component';
|
|
7
|
-
import { BaseFormDirective } from '../base-form.component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class DetailStoreDirective extends UnsubscribeComponent {
|
|
10
|
-
form;
|
|
11
|
-
detailsRepository;
|
|
12
|
-
autoBind = true;
|
|
13
|
-
detailId;
|
|
14
|
-
ngrxFeatureKey;
|
|
15
|
-
destroyForm = true;
|
|
16
|
-
readonly = false;
|
|
17
|
-
readonlyControlNames = [];
|
|
18
|
-
store = inject(Store);
|
|
19
|
-
cdr = inject(ChangeDetectorRef);
|
|
20
|
-
route = inject(ActivatedRoute);
|
|
21
|
-
itemCache = null;
|
|
22
|
-
loaded;
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
if (!this.loaded) {
|
|
25
|
-
this.listenFormState();
|
|
26
|
-
}
|
|
27
|
-
this.listenFormChange();
|
|
28
|
-
this.listenFormStatusChange();
|
|
29
|
-
}
|
|
30
|
-
ngAfterViewInit() {
|
|
31
|
-
if (this.autoBind && !this.loaded) {
|
|
32
|
-
this.initForm();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
ngOnDestroy() {
|
|
36
|
-
super.ngOnDestroy();
|
|
37
|
-
if (this.destroyForm) {
|
|
38
|
-
this.store.dispatch(createResetStateAction(this.detailsRepository)());
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
initForm() {
|
|
42
|
-
if (this.detailId === 'create') {
|
|
43
|
-
this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
this.store.dispatch(createInitDetailAction(this.detailsRepository)({ obj: this.detailId }));
|
|
47
|
-
}
|
|
48
|
-
if (this.readonly) {
|
|
49
|
-
this.form.formGroup.disable();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.readonlyControlNames.forEach(x => {
|
|
53
|
-
this.form.formGroup.get(x)?.disable();
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
listenFormState() {
|
|
57
|
-
const selectIncomeData = createSelector(createFeatureSelector(this.ngrxFeatureKey), (state) => state?.[this.detailsRepository]);
|
|
58
|
-
this.store
|
|
59
|
-
.select(selectIncomeData)
|
|
60
|
-
.pipe(takeUntil(this.destroyed$))
|
|
61
|
-
.subscribe(({ item, loaded, backendValidationErrors } = {
|
|
62
|
-
item: undefined,
|
|
63
|
-
loaded: false,
|
|
64
|
-
saveItemState: { saveInProgress: false },
|
|
65
|
-
backendValidationErrors: []
|
|
66
|
-
}) => {
|
|
67
|
-
if (item
|
|
68
|
-
&& ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)
|
|
69
|
-
|| backendValidationErrors.length) {
|
|
70
|
-
this.handleValidation('propertyName', item.validationWarnings || [], 'validationWarning', 'warningMessage');
|
|
71
|
-
this.handleValidation('propertyName', item.validationErrors || [], 'validationError', 'errorMessage');
|
|
72
|
-
if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {
|
|
73
|
-
backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);
|
|
74
|
-
}
|
|
75
|
-
this.handleBackendValidation(backendValidationErrors);
|
|
76
|
-
this.cdr.markForCheck();
|
|
77
|
-
}
|
|
78
|
-
this.itemCache = item;
|
|
79
|
-
this.loaded = loaded;
|
|
80
|
-
this.cdr.detectChanges();
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
listenFormChange() {
|
|
84
|
-
this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {
|
|
85
|
-
this.store.dispatch(createUpdateDetailAction(this.detailsRepository)({ item }));
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
listenFormStatusChange() {
|
|
89
|
-
this.form.statusChange
|
|
90
|
-
.pipe(takeUntil(this.destroyed$))
|
|
91
|
-
.subscribe((formState) => {
|
|
92
|
-
this.store.dispatch(createUpdateFormStateAction(this.detailsRepository)({ formState }));
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
handleValidation = (controlName, errors, errorKey, messageKey) => {
|
|
96
|
-
if (errors.length > 0)
|
|
97
|
-
return;
|
|
98
|
-
errors.forEach((error) => {
|
|
99
|
-
const control = this.form.formGroup.get(error[controlName]);
|
|
100
|
-
if (control) {
|
|
101
|
-
control.disabled
|
|
102
|
-
? control.disable({ emitEvent: false, onlySelf: true })
|
|
103
|
-
: control.enable({ emitEvent: false, onlySelf: true });
|
|
104
|
-
control.setErrors({ [errorKey]: error[messageKey] }, { emitEvent: true });
|
|
105
|
-
control.markAsDirty();
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
};
|
|
109
|
-
handleBackendValidation(errors) {
|
|
110
|
-
errors.forEach(({ parameters, code }) => {
|
|
111
|
-
const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));
|
|
112
|
-
if (!control)
|
|
113
|
-
return;
|
|
114
|
-
control[control.disabled ? "disable" : "enable"]({ emitEvent: false, onlySelf: true });
|
|
115
|
-
control.setErrors({ "validationError": code }, { emitEvent: true });
|
|
116
|
-
control.markAsDirty();
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
dispatchErrors(item, errors) {
|
|
120
|
-
const error = errors.filter((e) => {
|
|
121
|
-
return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];
|
|
122
|
-
});
|
|
123
|
-
this.store.dispatch(createUpdateDetailSetErrorsAction(this.detailsRepository)({ error }));
|
|
124
|
-
return error;
|
|
125
|
-
}
|
|
126
|
-
normalizePropertyNames(input) {
|
|
127
|
-
return String(input[0]).toLocaleLowerCase() + String(input).slice(1);
|
|
128
|
-
}
|
|
129
|
-
isStateChanged(item) {
|
|
130
|
-
return item !== this.itemCache;
|
|
131
|
-
}
|
|
132
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DetailStoreDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
133
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: DetailStoreDirective, isStandalone: true, selector: "[v-useDetailStore]", inputs: { form: "form", detailsRepository: "detailsRepository", autoBind: "autoBind", detailId: "detailId", ngrxFeatureKey: "ngrxFeatureKey", destroyForm: "destroyForm", readonly: "readonly", readonlyControlNames: "readonlyControlNames" }, exportAs: ["useDetailStore"], usesInheritance: true, ngImport: i0 });
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DetailStoreDirective, decorators: [{
|
|
136
|
-
type: Directive,
|
|
137
|
-
args: [{
|
|
138
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
139
|
-
selector: '[v-useDetailStore]',
|
|
140
|
-
exportAs: 'useDetailStore',
|
|
141
|
-
standalone: true,
|
|
142
|
-
}]
|
|
143
|
-
}], propDecorators: { form: [{
|
|
144
|
-
type: Input,
|
|
145
|
-
args: [{ required: true }]
|
|
146
|
-
}], detailsRepository: [{
|
|
147
|
-
type: Input,
|
|
148
|
-
args: [{ required: true }]
|
|
149
|
-
}], autoBind: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], detailId: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}], ngrxFeatureKey: [{
|
|
154
|
-
type: Input,
|
|
155
|
-
args: [{ required: true }]
|
|
156
|
-
}], destroyForm: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], readonly: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], readonlyControlNames: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXN0b3JlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9kaXJlY3RpdmVzL2RldGFpbC1zdG9yZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUVMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixpQ0FBaUMsRUFDakMsMkJBQTJCLEdBRTVCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLG9CQUNYLFNBQVEsb0JBQW9CO0lBR0QsSUFBSSxDQUEwQjtJQUU5QixpQkFBaUIsQ0FBVTtJQUU3QyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRWhCLFFBQVEsQ0FBK0I7SUFFckIsY0FBYyxDQUFVO0lBRTFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbkIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQixvQkFBb0IsR0FBYSxFQUFFLENBQUM7SUFFN0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixHQUFHLEdBQUcsTUFB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QzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVM7UUFDOUIsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxDQUFDO3VHQTFMVSxvQkFBb0I7MkZBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFLNEIsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRUUsaUJBQWlCO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVxQixjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQmFja2VuZFZhbGlkYXRpb25FcnJvcixcbiAgY3JlYXRlSW5pdERldGFpbEFjdGlvbixcbiAgY3JlYXRlSW5pdE5ld0RldGFpbEFjdGlvbixcbiAgY3JlYXRlUmVzZXRTdGF0ZUFjdGlvbixcbiAgY3JlYXRlVXBkYXRlRGV0YWlsQWN0aW9uLFxuICBjcmVhdGVVcGRhdGVEZXRhaWxTZXRFcnJvcnNBY3Rpb24sXG4gIGNyZWF0ZVVwZGF0ZUZvcm1TdGF0ZUFjdGlvbixcbiAgRGV0YWlsU3RhdGUsXG59IGZyb20gJ0B2ZXJpc29mdC9zdG9yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVuc3Vic2NyaWJlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdW5zdWJzY3JpYmUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vYmFzZS1mb3JtLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2LXVzZURldGFpbFN0b3JlXScsXG4gIGV4cG9ydEFzOiAndXNlRGV0YWlsU3RvcmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEZXRhaWxTdG9yZURpcmVjdGl2ZVxuICBleHRlbmRzIFVuc3Vic2NyaWJlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZm9ybSE6IEJhc2VGb3JtRGlyZWN0aXZlPGFueT47XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZGV0YWlsc1JlcG9zaXRvcnkhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgYXV0b0JpbmQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGRldGFpbElkITogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG5ncnhGZWF0dXJlS2V5ITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRlc3Ryb3lGb3JtID0gdHJ1ZTtcblxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHJlYWRvbmx5Q29udHJvbE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcbiAgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gIHByaXZhdGUgaXRlbUNhY2hlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIGxvYWRlZCE6IGJvb2xlYW47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxvYWRlZCkge1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtU3RhdGUoKTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b0JpbmQgJiYgIXRoaXMubG9hZGVkKSB7XG4gICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5kZXN0cm95Rm9ybSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChjcmVhdGVSZXNldFN0YXRlQWN0aW9uKHRoaXMuZGV0YWlsc1JlcG9zaXRvcnkpKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKSB7XG4gICAgaWYgKHRoaXMuZGV0YWlsSWQgPT09ICdjcmVhdGUnKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKGNyZWF0ZUluaXROZXdEZXRhaWxBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIGNyZWF0ZUluaXREZXRhaWxBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoeyBvYmo6IHRoaXMuZGV0YWlsSWQgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuZm9ybS5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVhZG9ubHlDb250cm9sTmFtZXMuZm9yRWFjaCh4ID0+IHtcbiAgICAgIHRoaXMuZm9ybS5mb3JtR3JvdXAuZ2V0KHgpPy5kaXNhYmxlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvcm1TdGF0ZSgpIHtcbiAgICBjb25zdCBzZWxlY3RJbmNvbWVEYXRhID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8YW55Pih0aGlzLm5ncnhGZWF0dXJlS2V5KSxcbiAgICAgIChzdGF0ZTogYW55KSA9PiBzdGF0ZT8uW3RoaXMuZGV0YWlsc1JlcG9zaXRvcnldIGFzIERldGFpbFN0YXRlPGFueT5cbiAgICApO1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3Qoc2VsZWN0SW5jb21lRGF0YSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKFxuICAgICAgICAgIHsgaXRlbSwgbG9hZGVkLCBiYWNrZW5kVmFsaWRhdGlvbkVycm9ycyB9ID0ge1xuICAgICAgICAgICAgaXRlbTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9hZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNhdmVJdGVtU3RhdGU6IHsgc2F2ZUluUHJvZ3Jlc3M6IGZhbHNlIH0sXG4gICAgICAgICAgICBiYWNrZW5kVmFsaWRhdGlvbkVycm9yczogW11cbiAgICAgICAgICB9XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtXG4gICAgICAgICAgICAmJiAoKGl0ZW0udmFsaWRhdGlvbkVycm9ycyB8fCBpdGVtLnZhbGlkYXRpb25XYXJuaW5ncykgJiYgIXRoaXMuZm9ybS5mb3JtR3JvdXAuZGlydHkpXG4gICAgICAgICAgICB8fCBiYWNrZW5kVmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVmFsaWRhdGlvbihcbiAgICAgICAgICAgICAgJ3Byb3BlcnR5TmFtZScsXG4gICAgICAgICAgICAgIGl0ZW0udmFsaWRhdGlvbldhcm5pbmdzIHx8IFtdLFxuICAgICAgICAgICAgICAndmFsaWRhdGlvbldhcm5pbmcnLFxuICAgICAgICAgICAgICAnd2FybmluZ01lc3NhZ2UnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVWYWxpZGF0aW9uKFxuICAgICAgICAgICAgICAncHJvcGVydHlOYW1lJyxcbiAgICAgICAgICAgICAgaXRlbS52YWxpZGF0aW9uRXJyb3JzIHx8IFtdLFxuICAgICAgICAgICAgICAndmFsaWRhdGlvbkVycm9yJyxcbiAgICAgICAgICAgICAgJ2Vycm9yTWVzc2FnZSdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW1DYWNoZSAmJiB0aGlzLmlzU3RhdGVDaGFuZ2VkKGl0ZW0pICYmIGJhY2tlbmRWYWxpZGF0aW9uRXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBiYWNrZW5kVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMuZGlzcGF0Y2hFcnJvcnMoaXRlbSwgYmFja2VuZFZhbGlkYXRpb25FcnJvcnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUJhY2tlbmRWYWxpZGF0aW9uKGJhY2tlbmRWYWxpZGF0aW9uRXJyb3JzKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuaXRlbUNhY2hlID0gaXRlbTtcblxuICAgICAgICAgIHRoaXMubG9hZGVkID0gbG9hZGVkO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9ybUNoYW5nZSgpIHtcbiAgICB0aGlzLmZvcm0uZGF0YUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIGNyZWF0ZVVwZGF0ZURldGFpbEFjdGlvbih0aGlzLmRldGFpbHNSZXBvc2l0b3J5KSh7IGl0ZW0gfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvcm1TdGF0dXNDaGFuZ2UoKSB7XG4gICAgdGhpcy5mb3JtLnN0YXR1c0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChmb3JtU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBjcmVhdGVVcGRhdGVGb3JtU3RhdGVBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoeyBmb3JtU3RhdGUgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWYWxpZGF0aW9uID0gKFxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXG4gICAgZXJyb3JzOiBhbnlbXSxcbiAgICBlcnJvcktleTogc3RyaW5nLFxuICAgIG1lc3NhZ2VLZXk6IHN0cmluZ1xuICApID0+IHtcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHJldHVybjtcbiAgICBlcnJvcnMuZm9yRWFjaCgoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5mb3JtR3JvdXAuZ2V0KGVycm9yW2NvbnRyb2xOYW1lXSk7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGVkXG4gICAgICAgICAgPyBjb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KVxuICAgICAgICAgIDogY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoXG4gICAgICAgICAgeyBbZXJyb3JLZXldOiBlcnJvclttZXNzYWdlS2V5XSB9LFxuICAgICAgICAgIHsgZW1pdEV2ZW50OiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlQmFja2VuZFZhbGlkYXRpb24oZXJyb3JzOiBCYWNrZW5kVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgICBlcnJvcnMuZm9yRWFjaCgoeyBwYXJhbWV0ZXJzLCBjb2RlIH06IEJhY2tlbmRWYWxpZGF0aW9uRXJyb3IpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZm9ybUdyb3VwLmdldCh0aGlzLm5vcm1hbGl6ZVByb3BlcnR5TmFtZXMocGFyYW1ldGVycykpO1xuICAgICAgaWYgKCFjb250cm9sKSByZXR1cm47XG5cbiAgICAgIGNvbnRyb2xbY29udHJvbC5kaXNhYmxlZCA/IFwiZGlzYWJsZVwiIDogXCJlbmFibGVcIl0oeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgXCJ2YWxpZGF0aW9uRXJyb3JcIjogY29kZSB9LCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hFcnJvcnMoaXRlbTogYW55LCBlcnJvcnM6IEJhY2tlbmRWYWxpZGF0aW9uRXJyb3JbXSk6IEJhY2tlbmRWYWxpZGF0aW9uRXJyb3JbXSB7XG4gICAgY29uc3QgZXJyb3IgPSBlcnJvcnMuZmlsdGVyKChlOiBCYWNrZW5kVmFsaWRhdGlvbkVycm9yKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtQ2FjaGVbdGhpcy5ub3JtYWxpemVQcm9wZXJ0eU5hbWVzKGUucGFyYW1ldGVycyldID09PSBpdGVtW3RoaXMubm9ybWFsaXplUHJvcGVydHlOYW1lcyhlLnBhcmFtZXRlcnMpXTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBjcmVhdGVVcGRhdGVEZXRhaWxTZXRFcnJvcnNBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoeyBlcnJvciB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVByb3BlcnR5TmFtZXMoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyhpbnB1dFswXSkudG9Mb2NhbGVMb3dlckNhc2UoKSArIFN0cmluZyhpbnB1dCkuc2xpY2UoMSk7XG4gIH1cblxuICBwcml2YXRlIGlzU3RhdGVDaGFuZ2VkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpdGVtICE9PSB0aGlzLml0ZW1DYWNoZTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './base-form-input.component';
|
|
2
|
-
export * from './base-form.component';
|
|
3
|
-
export * from './directives/detail-store.directive';
|
|
4
|
-
export * from './models';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWZvcm0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RldGFpbC1zdG9yZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnOyJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export class BaseInputControls {
|
|
2
|
-
value;
|
|
3
|
-
ngControl;
|
|
4
|
-
label;
|
|
5
|
-
required;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLWlucHV0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9tb2RlbHMvYmFzZS1mb3JtLWlucHV0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLGlCQUFpQjtJQUNyQyxLQUFLLENBQVk7SUFFUixTQUFTLENBQWE7SUFFdEIsS0FBSyxDQUFVO0lBRWYsUUFBUSxDQUFXO0NBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0Q29udHJvbHM8VD4ge1xuICB2YWx1ZT86IFQgfCBudWxsO1xuXG4gIHJlYWRvbmx5IG5nQ29udHJvbD86IE5nQ29udHJvbDtcblxuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcblxuICByZWFkb25seSByZXF1aXJlZCE6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function isFormStateEqual(current, other) {
|
|
2
|
-
if (!current && !other) {
|
|
3
|
-
return true;
|
|
4
|
-
}
|
|
5
|
-
if (current && other) {
|
|
6
|
-
return current.dirty === other.dirty && current.valid === other.valid;
|
|
7
|
-
}
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9tb2RlbHMvYmFzZS1mb3JtLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQWtCLEVBQUUsS0FBZ0I7SUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3JCLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCYXNlRm9ybUNvcmUge1xuICBsYWJlbD86IHN0cmluZztcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5OiBib29sZWFuO1xuICB0b29sdGlwOiBzdHJpbmc7XG4gIGZvcm1EaXNwbGF5OiAnZmxleCcgfCAnYmxvY2snO1xuICBjbGVhcmFibGU6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIHRlc3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRm9ybURpcmVjdGl2ZUNvcmU8VD4ge1xuICBpbml0aWFsRGF0YTogVCB8IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU3RhdGUge1xuICBkaXJ0eTogYm9vbGVhbjtcbiAgdmFsaWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1TdGF0ZUVxdWFsKGN1cnJlbnQ6IEZvcm1TdGF0ZSwgb3RoZXI6IEZvcm1TdGF0ZSkge1xuICBpZiAoIWN1cnJlbnQgJiYgIW90aGVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoY3VycmVudCAmJiBvdGhlcikge1xuICAgIHJldHVybiBjdXJyZW50LmRpcnR5ID09PSBvdGhlci5kaXJ0eSAmJiBjdXJyZW50LnZhbGlkID09PSBvdGhlci52YWxpZDtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './base-form-input.models';
|
|
2
|
-
export * from './base-form.models';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWZvcm0vbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS1mb3JtLWlucHV0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZm9ybS5tb2RlbHMnOyJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken('BreadcrumbComponentToken');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsQ0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vc2lkZS1tZW51JztcblxuZXhwb3J0IGNvbnN0IEJSRUFEQ1JVTUJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEJyZWFkY3J1bWJDb3JlPihcbiAgICAnQnJlYWRjcnVtYkNvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iQ29yZSB7XG4gICAgaXRlbXM6IE1lbnVJdGVtW107XG4gICAgaG9tZVJvdXRlOiBzdHJpbmc7XG4gICAgdXNlSG9tZVJvdXRlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFkY3J1bWIge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcm91dGVyTGluaz86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgYWN0aXZlPzogYm9vbGVhbjtcbiAgICBhY3RpdmF0ZWRSb3V0ZT86IEFjdGl2YXRlZFJvdXRlO1xufVxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, Injectable, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class BreadcrumbService {
|
|
4
|
-
routeChange = new EventEmitter();
|
|
5
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
|
|
7
|
-
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbService, decorators: [{
|
|
9
|
-
type: Injectable,
|
|
10
|
-
args: [{
|
|
11
|
-
providedIn: 'root',
|
|
12
|
-
}]
|
|
13
|
-
}], propDecorators: { routeChange: [{
|
|
14
|
-
type: Output
|
|
15
|
-
}] } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1qRSxNQUFNLE9BQU8saUJBQWlCO0lBQ2xCLFdBQVcsR0FBNkIsSUFBSSxZQUFZLEVBQUUsQ0FBQzt1R0FEMUQsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs4QkFFVyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICcuL2JyZWFkY3J1bWIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNlcnZpY2Uge1xuICBAT3V0cHV0KCkgcm91dGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxCcmVhZGNydW1iPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbn1cbiJdfQ==
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, Input, inject, } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
3
|
-
import { filter, takeUntil } from 'rxjs';
|
|
4
|
-
import { UnsubscribeComponent } from '../unsubscribe.component';
|
|
5
|
-
import { BreadcrumbService } from './breadcrumb.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class BreadcrumbCoreComponent extends UnsubscribeComponent {
|
|
8
|
-
items = [];
|
|
9
|
-
homeRoute = '/';
|
|
10
|
-
useHomeRoute = false;
|
|
11
|
-
static ROUTE_DATA_BREADCRUMB = 'breadcrumb';
|
|
12
|
-
static ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';
|
|
13
|
-
static ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';
|
|
14
|
-
static BREADCRUMB_HIDE = 'breadcrumb_hide';
|
|
15
|
-
home = { icon: 'pi pi-home', routerLink: this.homeRoute };
|
|
16
|
-
router = inject(Router);
|
|
17
|
-
activatedRoute = inject(ActivatedRoute);
|
|
18
|
-
breadcrumbService = inject(BreadcrumbService);
|
|
19
|
-
cdr = inject(ChangeDetectorRef);
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.initBreadcrumbsCreation();
|
|
22
|
-
this.initRouteChangeListen();
|
|
23
|
-
}
|
|
24
|
-
initBreadcrumbsCreation() {
|
|
25
|
-
this.router.events
|
|
26
|
-
.pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this.destroyed$))
|
|
27
|
-
.subscribe(() => (this.items = this.createBreadcrumbs(this.activatedRoute.root)));
|
|
28
|
-
}
|
|
29
|
-
initRouteChangeListen() {
|
|
30
|
-
this.breadcrumbService.routeChange
|
|
31
|
-
.pipe(filter((x) => x.label !== 'Undefined'), takeUntil(this.destroyed$))
|
|
32
|
-
.subscribe((x) => {
|
|
33
|
-
this.items = [
|
|
34
|
-
...this.items,
|
|
35
|
-
{
|
|
36
|
-
label: x.label,
|
|
37
|
-
routerLink: x.routerLink,
|
|
38
|
-
url: x.url,
|
|
39
|
-
class: 'breadcrumb',
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
this.cdr.detectChanges();
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
createBreadcrumbs(route, routerLink = '', breadcrumbs = []) {
|
|
46
|
-
const children = route.children;
|
|
47
|
-
if (children.length === 0) {
|
|
48
|
-
return breadcrumbs;
|
|
49
|
-
}
|
|
50
|
-
for (const child of children) {
|
|
51
|
-
const routeURL = child.snapshot.url
|
|
52
|
-
.map((segment) => segment.path)
|
|
53
|
-
.join('/');
|
|
54
|
-
if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {
|
|
55
|
-
if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {
|
|
56
|
-
const route = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];
|
|
57
|
-
routerLink += `/${route}`;
|
|
58
|
-
}
|
|
59
|
-
if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {
|
|
60
|
-
routerLink += `/${routeURL}`;
|
|
61
|
-
}
|
|
62
|
-
const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];
|
|
63
|
-
if (label &&
|
|
64
|
-
BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&
|
|
65
|
-
child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE]) {
|
|
66
|
-
breadcrumbs.push({ label, routerLink: undefined });
|
|
67
|
-
}
|
|
68
|
-
else if (label && child.snapshot.routeConfig?.path !== '') {
|
|
69
|
-
breadcrumbs.push({ label, routerLink: routerLink });
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return this.createBreadcrumbs(child, routerLink, breadcrumbs);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbCoreComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
76
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: BreadcrumbCoreComponent, inputs: { items: "items", homeRoute: "homeRoute", useHomeRoute: "useHomeRoute" }, usesInheritance: true, ngImport: i0 });
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbCoreComponent, decorators: [{
|
|
79
|
-
type: Directive,
|
|
80
|
-
args: [{}]
|
|
81
|
-
}], propDecorators: { items: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], homeRoute: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], useHomeRoute: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYmNvcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iY29yZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHekQsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBQW9CO0lBR25CLEtBQUssR0FBZSxFQUFFLENBQUM7SUFDdkIsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRTlCLE1BQU0sQ0FBVSxxQkFBcUIsR0FBRyxZQUFZLENBQUM7SUFDckQsTUFBTSxDQUFVLHlCQUF5QixHQUFHLGdCQUFnQixDQUFDO0lBQzdELE1BQU0sQ0FBVSw4QkFBOEIsR0FBRyxxQkFBcUIsQ0FBQztJQUN2RSxNQUFNLENBQVUsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0lBQzNDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUVuRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFD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QUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pCLHVCQUF1QixDQUFDLDhCQUE4QixDQUN2RCxFQUNELENBQUM7b0JBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDckQsQ0FBQztxQkFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQzVELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQzt1R0FsR1UsdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7bUJBQUMsRUFBRTs4QkFLRixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vc2lkZS1tZW51JztcbmltcG9ydCB7IFVuc3Vic2NyaWJlQ29tcG9uZW50IH0gZnJvbSAnLi4vdW5zdWJzY3JpYmUuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb3JlIH0gZnJvbSAnLi9icmVhZGNydW1iLm1vZGVsJztcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi9icmVhZGNydW1iLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHt9KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb3JlQ29tcG9uZW50XG4gIGV4dGVuZHMgVW5zdWJzY3JpYmVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBCcmVhZGNydW1iQ29yZSwgT25Jbml0XG57XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGhvbWVSb3V0ZSA9ICcvJztcbiAgQElucHV0KCkgdXNlSG9tZVJvdXRlID0gZmFsc2U7XG5cbiAgc3RhdGljIHJlYWRvbmx5IFJPVVRFX0RBVEFfQlJFQURDUlVNQiA9ICdicmVhZGNydW1iJztcbiAgc3RhdGljIHJlYWRvbmx5IFJPVVRFX0RBVEFfQlJFQURDUlVNQl9VUkwgPSAnYnJlYWRjcnVtYl91cmwnO1xuICBzdGF0aWMgcmVhZG9ubHkgUk9VVEVfREFUQV9OT19CUkVBRENSVU1CX1JPVVRFID0gJ2JyZWFkY3J1bWJfbm9fcm91dGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgQlJFQURDUlVNQl9ISURFID0gJ2JyZWFkY3J1bWJfaGlkZSc7XG4gIHJlYWRvbmx5IGhvbWUgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogdGhpcy5ob21lUm91dGUgfTtcblxuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBicmVhZGNydW1iU2VydmljZSA9IGluamVjdChCcmVhZGNydW1iU2VydmljZSk7XG4gIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0QnJlYWRjcnVtYnNDcmVhdGlvbigpO1xuICAgIHRoaXMuaW5pdFJvdXRlQ2hhbmdlTGlzdGVuKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRCcmVhZGNydW1ic0NyZWF0aW9uKCkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiAodGhpcy5pdGVtcyA9IHRoaXMuY3JlYXRlQnJlYWRjcnVtYnModGhpcy5hY3RpdmF0ZWRSb3V0ZS5yb290KSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRSb3V0ZUNoYW5nZUxpc3RlbigpIHtcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLnJvdXRlQ2hhbmdlXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCh4KSA9PiB4LmxhYmVsICE9PSAnVW5kZWZpbmVkJyksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXG4gICAgICAgICAgLi4udGhpcy5pdGVtcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogeC5sYWJlbCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IHgucm91dGVyTGluayxcbiAgICAgICAgICAgIHVybDogeC51cmwsXG4gICAgICAgICAgICBjbGFzczogJ2JyZWFkY3J1bWInLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCcmVhZGNydW1icyhcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcm91dGVyTGluayA9ICcnLFxuICAgIGJyZWFkY3J1bWJzOiBNZW51SXRlbVtdID0gW11cbiAgKTogYW55IHtcbiAgICBjb25zdCBjaGlsZHJlbjogQWN0aXZhdGVkUm91dGVbXSA9IHJvdXRlLmNoaWxkcmVuO1xuXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IHJvdXRlVVJMOiBzdHJpbmcgPSBjaGlsZC5zbmFwc2hvdC51cmxcbiAgICAgICAgLm1hcCgoc2VnbWVudCkgPT4gc2VnbWVudC5wYXRoKVxuICAgICAgICAuam9pbignLycpO1xuXG4gICAgICBpZiAoIWNoaWxkLnNuYXBzaG90LmRhdGFbQnJlYWRjcnVtYkNvcmVDb21wb25lbnQuQlJFQURDUlVNQl9ISURFXSkge1xuICAgICAgICBpZiAoQnJlYWRjcnVtYkNvcmVDb21wb25lbnQuUk9VVEVfREFUQV9CUkVBRENSVU1CX1VSTCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3Qgcm91dGUgPVxuICAgICAgICAgICAgY2hpbGQuc25hcHNob3QuZGF0YVtCcmVhZGNydW1iQ29yZUNvbXBvbmVudC5ST1VURV9EQVRBX0JSRUFEQ1JVTUJfVVJMXTtcbiAgICAgICAgICByb3V0ZXJMaW5rICs9IGAvJHtyb3V0ZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFCcmVhZGNydW1iQ29yZUNvbXBvbmVudC5ST1VURV9EQVRBX0JSRUFEQ1JVTUJfVVJMICYmIHJvdXRlVVJMICE9PSAnJykge1xuICAgICAgICAgIHJvdXRlckxpbmsgKz0gYC8ke3JvdXRlVVJMfWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbCA9IGNoaWxkLnNuYXBzaG90LmRhdGFbQnJlYWRjcnVtYkNvcmVDb21wb25lbnQuUk9VVEVfREFUQV9CUkVBRENSVU1CXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGxhYmVsICYmXG4gICAgICAgICAgQnJlYWRjcnVtYkNvcmVDb21wb25lbnQuUk9VVEVfREFUQV9OT19CUkVBRENSVU1CX1JPVVRFICYmXG4gICAgICAgICAgY2hpbGQuc25hcHNob3QuZGF0YVtcbiAgICAgICAgICAgIEJyZWFkY3J1bWJDb3JlQ29tcG9uZW50LlJPVVRFX0RBVEFfTk9fQlJFQURDUlVNQl9ST1VURVxuICAgICAgICAgIF1cbiAgICAgICAgKSB7XG4gICAgICAgICAgYnJlYWRjcnVtYnMucHVzaCh7IGxhYmVsLCByb3V0ZXJMaW5rOiB1bmRlZmluZWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAobGFiZWwgJiYgY2hpbGQuc25hcHNob3Qucm91dGVDb25maWc/LnBhdGggIT09ICcnKSB7XG4gICAgICAgICAgYnJlYWRjcnVtYnMucHVzaCh7IGxhYmVsLCByb3V0ZXJMaW5rOiByb3V0ZXJMaW5rIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKGNoaWxkLCByb3V0ZXJMaW5rLCBicmVhZGNydW1icyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './breadcrumb.model';
|
|
2
|
-
export * from './breadcrumbcore.component';
|
|
3
|
-
export * from './breadcrumb.service';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYmNvcmUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLnNlcnZpY2UnOyJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const BUTTON_COMPONENT_TOKEN = new InjectionToken('ButtonComponentToken');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29udHJvbFNldmVyaXR5VHlwZSwgRmllbGRTaXplVHlwZSwgSWNvblBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBCVVRUT05fQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEJ1dHRvbkNvcmU+KFxuICAgICdCdXR0b25Db21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uQ29yZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBiYWRnZT86IHN0cmluZztcbiAgICBpY29uUG9zOiBJY29uUG9zaXRpb25UeXBlO1xuICAgIHJvdW5kZWQ6IGJvb2xlYW47XG4gICAgb3V0bGluZWQ6IGJvb2xlYW47XG4gICAgcmFpc2VkOiBib29sZWFuO1xuICAgIHNldmVyaXR5PzogQ29udHJvbFNldmVyaXR5VHlwZTtcbiAgICByb3V0ZXJMaW5rOiBhbnlbXTtcbiAgICBzaXplOiBGaWVsZFNpemVUeXBlIHwgdW5kZWZpbmVkO1xuICAgIHF1ZXJ5UGFyYW1zPzogUGFyYW1zO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './button.model';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLm1vZGVsJzsiXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const CALENDAR_COMPONENT_TOKEN = new InjectionToken('CalendarComponentToken');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgQ0FMRU5EQVJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENhbGVuZGFyQ29yZT4oXG4gICAgJ0NhbGVuZGFyQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyQ29yZSBleHRlbmRzIEJhc2VGb3JtQ29yZSB7XG4gICAgbWF4RGF0ZTogRGF0ZTtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgbWluRGF0ZTogRGF0ZTtcbiAgICBoZWFkZXI6IHN0cmluZztcbiAgICBmb290ZXI6IHN0cmluZztcbiAgICBmbG9hdExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgc2VsZWN0aW9uTW9kZTogXCJzaW5nbGVcIiB8IFwibXVsdGlwbGVcIiB8IFwicmFuZ2VcIiB8IHVuZGVmaW5lZDtcbn0iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './calendar.model';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci5tb2RlbCc7Il19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const CHECKBOX_COMPONENT_TOKEN = new InjectionToken('CheckboxComponentToken');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENoZWNrYm94Q29yZT4oXG4gICAgJ0NoZWNrYm94Q29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgdHlwZSBDaGVja2JveENvcmUgPSBCYXNlRm9ybUNvcmVcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './checkbox.model';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC5tb2RlbCc7Il19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const CONFIRM_DIALOG_COMPONENT_TOKEN = new InjectionToken('ConfirmDialogComponentToken');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBSXJELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCw2QkFBNkIsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBDb250cm9sU2V2ZXJpdHlUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IENPTkZJUk1fRElBTE9HX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb25maXJtRGlhbG9nQ29yZT4oXG4gICdDb25maXJtRGlhbG9nQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgdHlwZSBDb25maXJtRGlhbG9nQ29yZSA9IG9iamVjdFxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0RhdGEge1xuICB0aXRsZT86IHN0cmluZztcbiAgaGVhZGVySWNvbj86IHN0cmluZztcbiAgc2V2ZXJpdHk/OiBDb250cm9sU2V2ZXJpdHlUeXBlO1xuICBzaG93Q2FuY2VsQnV0dG9uPzogYm9vbGVhbjtcbiAgYnV0dG9uT3JkZXI/OiAnY29uZmlybS1jYW5jZWwnIHwgJ2NhbmNlbC1jb25maXJtJztcbiAgY29uZmlybUJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gIGNvbmZpcm1CdXR0b25Gbj86ICgpID0+IHZvaWQ7XG4gIGNhbmNlbEJ1dHRvbkZuPzogKCkgPT4gdm9pZDtcbiAgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcbiAgaW5uZXJIVE1MPzogc3RyaW5nIHwgU2FmZUh0bWw7XG4gIGRhdGE/OiB1bmtub3duO1xuICBjb21wb25lbnRUeXBlPzogVHlwZTx1bmtub3duPjtcbiAgY2xvc2FibGU/OiBib29sZWFuO1xuICB3aWR0aD86IHN0cmluZztcbiAgaGVpZ2h0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkRGlhbG9nRGF0YTxUSW5wdXRzID0gYW55LCBUT3V0cHV0cyA9IGFueT4gZXh0ZW5kcyBEaWFsb2dEYXRhIHtcbiAgZGF0YT86IFRJbnB1dHMgJiBUT3V0cHV0cztcbn1cbiJdfQ==
|