brainloper-ui 15.0.1 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/brainloper-ui.module.mjs +151 -151
- package/esm2022/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +30 -0
- package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +23 -0
- package/esm2022/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +83 -0
- package/esm2022/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +42 -0
- package/esm2022/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +183 -0
- package/esm2022/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +746 -0
- package/esm2022/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +122 -0
- package/esm2022/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +205 -0
- package/esm2022/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +227 -0
- package/esm2022/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +89 -0
- package/esm2022/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +86 -0
- package/esm2022/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +117 -0
- package/esm2022/src/app/modules/directives/carousel-item.directive.mjs +20 -0
- package/esm2022/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +6 -0
- package/esm2022/src/app/modules/services/crypto.service.mjs +38 -0
- package/esm2022/src/app/modules/services/export-data.service.mjs +169 -0
- package/{esm2020 → esm2022}/src/app/modules/services/file-forms.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/app/modules/services/fuel-order-pdf.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/app/modules/services/functions.service.mjs +4 -4
- package/esm2022/src/app/modules/services/generate-pdf.service.mjs +93 -0
- package/esm2022/src/app/modules/services/http.service.mjs +142 -0
- package/esm2022/src/app/modules/services/loading/loading.component.mjs +30 -0
- package/{esm2020 → esm2022}/src/app/modules/services/local-storage.service.mjs +6 -6
- package/esm2022/src/app/modules/services/message.service.mjs +202 -0
- package/esm2022/src/app/modules/services/purchase-order-pdf.service.mjs +179 -0
- package/esm2022/src/app/modules/services/session.service.mjs +43 -0
- package/{esm2020 → esm2022}/src/app/modules/services/work-order-pdf.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/brainloper-ui.mjs +499 -409
- package/{fesm2015 → fesm2022}/brainloper-ui.mjs.map +1 -1
- package/package.json +17 -23
- package/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/carousel/carousel.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/combos/combos.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/data-table/data-table.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/file-input/file-input.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/filters/filters.component.d.ts +1 -1
- package/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.d.ts +1 -1
- package/src/app/modules/directives/carousel-item.directive.d.ts +1 -1
- package/esm2020/src/app/modules/brainloper-ui/components/bread-crumb/bread-crumb.component.mjs +0 -29
- package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-icon/button-icon.component.mjs +0 -23
- package/esm2020/src/app/modules/brainloper-ui/components/buttons/button-label/button-label.component.mjs +0 -83
- package/esm2020/src/app/modules/brainloper-ui/components/carousel/carousel.component.mjs +0 -40
- package/esm2020/src/app/modules/brainloper-ui/components/combos/combos.component.mjs +0 -176
- package/esm2020/src/app/modules/brainloper-ui/components/data-table/data-table.component.mjs +0 -728
- package/esm2020/src/app/modules/brainloper-ui/components/data-table/table-modal/table-modal.component.mjs +0 -118
- package/esm2020/src/app/modules/brainloper-ui/components/file-input/file-input.component.mjs +0 -187
- package/esm2020/src/app/modules/brainloper-ui/components/filters/filters.component.mjs +0 -222
- package/esm2020/src/app/modules/brainloper-ui/components/report/template-fuel/template-fuel.component.mjs +0 -84
- package/esm2020/src/app/modules/brainloper-ui/components/report/template-ot/template-ot.component.mjs +0 -81
- package/esm2020/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs +0 -108
- package/esm2020/src/app/modules/directives/carousel-item.directive.mjs +0 -18
- package/esm2020/src/app/modules/interfaces/menu-break-crumb/menu-break-crumb.mjs +0 -8
- package/esm2020/src/app/modules/services/crypto.service.mjs +0 -37
- package/esm2020/src/app/modules/services/export-data.service.mjs +0 -166
- package/esm2020/src/app/modules/services/generate-pdf.service.mjs +0 -89
- package/esm2020/src/app/modules/services/http.service.mjs +0 -140
- package/esm2020/src/app/modules/services/loading/loading.component.mjs +0 -28
- package/esm2020/src/app/modules/services/message.service.mjs +0 -200
- package/esm2020/src/app/modules/services/purchase-order-pdf.service.mjs +0 -178
- package/esm2020/src/app/modules/services/session.service.mjs +0 -42
- package/fesm2015/brainloper-ui.mjs +0 -3914
- package/fesm2020/brainloper-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/brainloper-ui.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/doc.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/fondoTransparente.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/brainloper-ui/components/file-input/imagenes/pdf.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/buttons/button-lavel-edit.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/combos/combos-configuration.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/params.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/rules.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/data-table/table-configuration.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumActions.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/enumRules.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/enum/httpResponseType.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-forms-params.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/file-forms-service/file-input-params.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/filters/header-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-base.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-ot.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pdf-purchase-order.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/interfaces/report/template-pfd-fo.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/modules/services/screen-size-util.mjs +0 -0
package/esm2022/src/app/modules/brainloper-ui/components/select-filter/select-filter.component.mjs
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/forms";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/progress-spinner";
|
|
6
|
+
import * as i4 from "@angular/material/input";
|
|
7
|
+
export class SelectFilterComponent {
|
|
8
|
+
searchFormValueChangesSubscription;
|
|
9
|
+
input;
|
|
10
|
+
array;
|
|
11
|
+
placeholder;
|
|
12
|
+
color;
|
|
13
|
+
displayMember;
|
|
14
|
+
showSpinner = true;
|
|
15
|
+
noResultsMessage = 'No results';
|
|
16
|
+
hasGroup;
|
|
17
|
+
groupArrayName;
|
|
18
|
+
noResults = false;
|
|
19
|
+
localSpinner = false;
|
|
20
|
+
filteredReturn = new EventEmitter();
|
|
21
|
+
filteredItems = [];
|
|
22
|
+
searchForm;
|
|
23
|
+
constructor(fb) {
|
|
24
|
+
this.searchForm = fb.group({
|
|
25
|
+
value: ''
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.searchFormValueChangesSubscription = this.searchForm.valueChanges.subscribe(value => {
|
|
30
|
+
const searchValue = value['value'] ? value['value'].toLowerCase() : '';
|
|
31
|
+
if (this.showSpinner) {
|
|
32
|
+
this.localSpinner = true;
|
|
33
|
+
}
|
|
34
|
+
if (searchValue) {
|
|
35
|
+
if (this.displayMember == null) {
|
|
36
|
+
this.filteredItems = this.array.filter(name => name.toLowerCase().includes(searchValue));
|
|
37
|
+
}
|
|
38
|
+
else if (this.hasGroup && this.groupArrayName && this.displayMember) {
|
|
39
|
+
this.filteredItems = this.array.map(a => {
|
|
40
|
+
const objCopy = { ...a };
|
|
41
|
+
objCopy[this.groupArrayName] = objCopy[this.groupArrayName].filter(g => g[this.displayMember].toLowerCase().includes(searchValue));
|
|
42
|
+
return objCopy;
|
|
43
|
+
}).filter(x => x[this.groupArrayName].length > 0);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.filteredItems = this.array.filter(name => name[this.displayMember].toLowerCase().includes(searchValue));
|
|
47
|
+
}
|
|
48
|
+
this.noResults = this.filteredItems.length === 0;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.filteredItems = [...this.array];
|
|
52
|
+
this.noResults = false;
|
|
53
|
+
}
|
|
54
|
+
this.filteredReturn.emit(this.filteredItems);
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
if (this.showSpinner) {
|
|
57
|
+
this.localSpinner = false;
|
|
58
|
+
}
|
|
59
|
+
}, 2000);
|
|
60
|
+
});
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
this.input.nativeElement.focus();
|
|
63
|
+
}, 500);
|
|
64
|
+
if (!this.placeholder) {
|
|
65
|
+
this.placeholder = 'Search...';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
handleKeydown(event) {
|
|
69
|
+
const isAlphanumeric = (event.key && event.key.length === 1) ||
|
|
70
|
+
(event.code >= 'KeyA' && event.code <= 'KeyZ') ||
|
|
71
|
+
(event.code >= 'Digit0' && event.code <= 'Digit9') ||
|
|
72
|
+
(event.code === 'Space');
|
|
73
|
+
if (isAlphanumeric) {
|
|
74
|
+
event.stopPropagation();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
ngOnDestroy() {
|
|
78
|
+
this.filteredReturn.emit(this.array);
|
|
79
|
+
this.searchFormValueChangesSubscription.unsubscribe();
|
|
80
|
+
}
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectFilterComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectFilterComponent, selector: "app-select-filter", inputs: { array: "array", placeholder: "placeholder", color: "color", displayMember: "displayMember", showSpinner: "showSpinner", noResultsMessage: "noResultsMessage", hasGroup: "hasGroup", groupArrayName: "groupArrayName" }, outputs: { filteredReturn: "filteredReturn" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"searchForm\" class=\"mat-filter\" [ngStyle]=\"{'background-color': color ? color : 'white'}\">\n <div>\n <input #input class=\"mat-filter-input\" matInput placeholder=\"{{placeholder}}\" formControlName=\"value\" (keydown)=\"handleKeydown($event)\">\n <mat-spinner *ngIf=\"localSpinner\" class=\"spinner\" diameter=\"16\"></mat-spinner>\n </div>\n <div *ngIf=\"noResults\"\n class=\"noResultsMessage\">\n {{noResultsMessage}}\n</div>\n</form>\n", styles: [".mat-filter{position:sticky;top:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:gray;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:16px;box-sizing:border-box}.mat-filter-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:0;background-color:unset;color:gray;width:100%}.spinner{position:absolute;right:16px;top:calc(50% - 8px)}.noResultsMessage{margin-top:10px;font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectFilterComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'app-select-filter', template: "<form [formGroup]=\"searchForm\" class=\"mat-filter\" [ngStyle]=\"{'background-color': color ? color : 'white'}\">\n <div>\n <input #input class=\"mat-filter-input\" matInput placeholder=\"{{placeholder}}\" formControlName=\"value\" (keydown)=\"handleKeydown($event)\">\n <mat-spinner *ngIf=\"localSpinner\" class=\"spinner\" diameter=\"16\"></mat-spinner>\n </div>\n <div *ngIf=\"noResults\"\n class=\"noResultsMessage\">\n {{noResultsMessage}}\n</div>\n</form>\n", styles: [".mat-filter{position:sticky;top:0;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:gray;z-index:100;font-size:inherit;box-shadow:none;border-radius:0;padding:16px;box-sizing:border-box}.mat-filter-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:0;background-color:unset;color:gray;width:100%}.spinner{position:absolute;right:16px;top:calc(50% - 8px)}.noResultsMessage{margin-top:10px;font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}\n"] }]
|
|
87
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { input: [{
|
|
88
|
+
type: ViewChild,
|
|
89
|
+
args: ['input', { static: true }]
|
|
90
|
+
}], array: [{
|
|
91
|
+
type: Input,
|
|
92
|
+
args: ['array']
|
|
93
|
+
}], placeholder: [{
|
|
94
|
+
type: Input,
|
|
95
|
+
args: ['placeholder']
|
|
96
|
+
}], color: [{
|
|
97
|
+
type: Input,
|
|
98
|
+
args: ['color']
|
|
99
|
+
}], displayMember: [{
|
|
100
|
+
type: Input,
|
|
101
|
+
args: ['displayMember']
|
|
102
|
+
}], showSpinner: [{
|
|
103
|
+
type: Input,
|
|
104
|
+
args: ['showSpinner']
|
|
105
|
+
}], noResultsMessage: [{
|
|
106
|
+
type: Input,
|
|
107
|
+
args: ['noResultsMessage']
|
|
108
|
+
}], hasGroup: [{
|
|
109
|
+
type: Input,
|
|
110
|
+
args: ['hasGroup']
|
|
111
|
+
}], groupArrayName: [{
|
|
112
|
+
type: Input,
|
|
113
|
+
args: ['groupArrayName']
|
|
114
|
+
}], filteredReturn: [{
|
|
115
|
+
type: Output
|
|
116
|
+
}] } });
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3NlbGVjdC1maWx0ZXIvc2VsZWN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYnJhaW5sb3Blci11aS9jb21wb25lbnRzL3NlbGVjdC1maWx0ZXIvc2VsZWN0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWdCckcsTUFBTSxPQUFPLHFCQUFxQjtJQUV4QixrQ0FBa0MsQ0FBZTtJQUNuQixLQUFLLENBQUM7SUFFNUIsS0FBSyxDQUFNO0lBQ0wsV0FBVyxDQUFTO0lBQzFCLEtBQUssQ0FBUztJQUNOLGFBQWEsQ0FBUztJQUN4QixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2QsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO0lBQ3hDLFFBQVEsQ0FBVTtJQUNaLGNBQWMsQ0FBUztJQUVoRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWxCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDWCxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUU1QyxhQUFhLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLFVBQVUsQ0FBWTtJQUU3QixZQUFZLEVBQWU7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3pCLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0NBQWtDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JGLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUM1QjtZQUVELElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7aUJBQzVGO3FCQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ25FLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ3BDLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7d0JBQ25JLE9BQU8sT0FBTyxDQUFDO29CQUNuQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDckQ7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7aUJBQ2hIO2dCQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDMUI7WUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2lCQUM3QjtZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVSLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUlDLGFBQWEsQ0FBQyxLQUFvQjtRQUNoQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQ3hELENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7WUFDOUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQztZQUNsRCxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUM7UUFFN0IsSUFBSSxjQUFjLEVBQUU7WUFDaEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVDLFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hELENBQUM7d0dBeEZVLHFCQUFxQjs0RkFBckIscUJBQXFCLHdiQ2hCbEMsOGRBVUE7OzRGRE1hLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7a0dBT1MsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVwQixLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ1EsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNKLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDVSxhQUFhO3NCQUFwQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ0EsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNPLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ04sUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNRLGNBQWM7c0JBQXRDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUtiLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQSxcbiAgWixcbiAgWkVSTyxcbiAgTklORSxcbiAgU1BBQ0UsIEVORCwgSE9NRSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNlbGVjdC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSAge1xuXG4gIHByaXZhdGUgc2VhcmNoRm9ybVZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0O1xuXG4gIEBJbnB1dCgnYXJyYXknKSBhcnJheTogYW55O1xuICBASW5wdXQoJ3BsYWNlaG9sZGVyJykgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCdjb2xvcicpIGNvbG9yOiBzdHJpbmc7XG4gIEBJbnB1dCgnZGlzcGxheU1lbWJlcicpIGRpc3BsYXlNZW1iZXI6IHN0cmluZztcbiAgQElucHV0KCdzaG93U3Bpbm5lcicpIHNob3dTcGlubmVyID0gdHJ1ZTtcbiAgQElucHV0KCdub1Jlc3VsdHNNZXNzYWdlJykgbm9SZXN1bHRzTWVzc2FnZSA9ICdObyByZXN1bHRzJztcbiAgQElucHV0KCdoYXNHcm91cCcpIGhhc0dyb3VwOiBib29sZWFuO1xuICBASW5wdXQoJ2dyb3VwQXJyYXlOYW1lJykgZ3JvdXBBcnJheU5hbWU6IHN0cmluZztcblxuICBub1Jlc3VsdHMgPSBmYWxzZTtcblxuICBsb2NhbFNwaW5uZXIgPSBmYWxzZTtcbiAgQE91dHB1dCgpIGZpbHRlcmVkUmV0dXJuID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGZpbHRlcmVkSXRlbXM6IGFueSA9IFtdO1xuICBwdWJsaWMgc2VhcmNoRm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuc2VhcmNoRm9ybSA9IGZiLmdyb3VwKHtcbiAgICAgIHZhbHVlOiAnJ1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWFyY2hGb3JtVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHZhbHVlWyd2YWx1ZSddID8gdmFsdWVbJ3ZhbHVlJ10udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgICAgICBpZiAodGhpcy5zaG93U3Bpbm5lcikge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFNwaW5uZXIgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlYXJjaFZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TWVtYmVyID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLmFycmF5LmZpbHRlcihuYW1lID0+IG5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc0dyb3VwICYmIHRoaXMuZ3JvdXBBcnJheU5hbWUgJiYgdGhpcy5kaXNwbGF5TWVtYmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5hcnJheS5tYXAoYSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iakNvcHkgPSB7IC4uLmEgfTtcbiAgICAgICAgICAgICAgICAgICAgb2JqQ29weVt0aGlzLmdyb3VwQXJyYXlOYW1lXSA9IG9iakNvcHlbdGhpcy5ncm91cEFycmF5TmFtZV0uZmlsdGVyKGcgPT4gZ1t0aGlzLmRpc3BsYXlNZW1iZXJdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iakNvcHk7XG4gICAgICAgICAgICAgICAgfSkuZmlsdGVyKHggPT4geFt0aGlzLmdyb3VwQXJyYXlOYW1lXS5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5hcnJheS5maWx0ZXIobmFtZSA9PiBuYW1lW3RoaXMuZGlzcGxheU1lbWJlcl0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm5vUmVzdWx0cyA9IHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPT09IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5hcnJheV07XG4gICAgICAgICAgICB0aGlzLm5vUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZFJldHVybi5lbWl0KHRoaXMuZmlsdGVyZWRJdGVtcyk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG93U3Bpbm5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTcGlubmVyID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDIwMDApO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sIDUwMCk7XG5cbiAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9ICdTZWFyY2guLi4nO1xuICAgIH1cbn1cblxuXG5cbiAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGlzQWxwaGFudW1lcmljID0gKGV2ZW50LmtleSAmJiBldmVudC5rZXkubGVuZ3RoID09PSAxKSB8fFxuICAgICAgICAoZXZlbnQuY29kZSA+PSAnS2V5QScgJiYgZXZlbnQuY29kZSA8PSAnS2V5WicpIHx8XG4gICAgICAgIChldmVudC5jb2RlID49ICdEaWdpdDAnICYmIGV2ZW50LmNvZGUgPD0gJ0RpZ2l0OScpIHx8XG4gICAgICAgIChldmVudC5jb2RlID09PSAnU3BhY2UnKTtcblxuICAgIGlmIChpc0FscGhhbnVtZXJpYykge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG59XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5maWx0ZXJlZFJldHVybi5lbWl0KHRoaXMuYXJyYXkpO1xuICAgIHRoaXMuc2VhcmNoRm9ybVZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiIGNsYXNzPVwibWF0LWZpbHRlclwiIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IGNvbG9yID8gY29sb3IgOiAnd2hpdGUnfVwiPlxuICA8ZGl2PlxuICA8aW5wdXQgI2lucHV0IGNsYXNzPVwibWF0LWZpbHRlci1pbnB1dFwiIG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3twbGFjZWhvbGRlcn19XCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAoa2V5ZG93bik9XCJoYW5kbGVLZXlkb3duKCRldmVudClcIj5cbiAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJsb2NhbFNwaW5uZXJcIiBjbGFzcz1cInNwaW5uZXJcIiBkaWFtZXRlcj1cIjE2XCI+PC9tYXQtc3Bpbm5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJub1Jlc3VsdHNcIlxuICAgICBjbGFzcz1cIm5vUmVzdWx0c01lc3NhZ2VcIj5cbiAge3tub1Jlc3VsdHNNZXNzYWdlfX1cbjwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CarouselItemDirective {
|
|
4
|
+
templateRef;
|
|
5
|
+
carouselItem;
|
|
6
|
+
constructor(templateRef) {
|
|
7
|
+
this.templateRef = templateRef;
|
|
8
|
+
}
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CarouselItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CarouselItemDirective, selector: "[carouselItem]", inputs: { carouselItem: "carouselItem" }, ngImport: i0 });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CarouselItemDirective, decorators: [{
|
|
13
|
+
type: Directive,
|
|
14
|
+
args: [{
|
|
15
|
+
selector: '[carouselItem]'
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { carouselItem: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}] } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZGlyZWN0aXZlcy9jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLHFCQUFxQjtJQUdiO0lBRlYsWUFBWSxDQUFVO0lBRS9CLFlBQW1CLFdBQTZCO1FBQTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtJQUFJLENBQUM7d0dBSDFDLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO2tHQUVVLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2Fyb3VzZWxJdGVtXSdcbn0pXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgY2Fyb3VzZWxJdGVtITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PikgeyB9XG59Il19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class MenuBreadCrumb {
|
|
2
|
+
name = "";
|
|
3
|
+
router = null;
|
|
4
|
+
current = false;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1icmVhay1jcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pbnRlcmZhY2VzL21lbnUtYnJlYWstY3J1bWIvbWVudS1icmVhay1jcnVtYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ1QsTUFBTSxHQUFJLElBQUksQ0FBQTtJQUNkLE9BQU8sR0FBSSxLQUFLLENBQUE7Q0FDakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElNZW51QnJlYWRDcnVtYiB7XG4gIG5hbWU6c3RyaW5nLFxuICByb3V0ZXI/OnN0cmluZyxcbiAgY3VycmVudD86Ym9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgTWVudUJyZWFkQ3J1bWIgaW1wbGVtZW50cyBJTWVudUJyZWFkQ3J1bWIgIHtcbiAgbmFtZSA9IFwiXCJcbiAgcm91dGVyPyA9IG51bGxcbiAgY3VycmVudD8gPSBmYWxzZVxufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as CryptoJS from 'crypto-js';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
//declare var require: any
|
|
5
|
+
//var CryptoJS = require("crypto-js");
|
|
6
|
+
export class CryptoService {
|
|
7
|
+
key;
|
|
8
|
+
constructor() {
|
|
9
|
+
this.key = "ssaldkmaosweiuf231owdalsd0";
|
|
10
|
+
}
|
|
11
|
+
asignarKey(key) {
|
|
12
|
+
this.key = key;
|
|
13
|
+
}
|
|
14
|
+
encode(data) {
|
|
15
|
+
const strData = JSON.stringify(data);
|
|
16
|
+
let c = CryptoJS.AES.encrypt(strData, this.key);
|
|
17
|
+
return c;
|
|
18
|
+
}
|
|
19
|
+
decode(data) {
|
|
20
|
+
try {
|
|
21
|
+
var bytes = CryptoJS.AES.decrypt(data, this.key);
|
|
22
|
+
var str = bytes.toString(CryptoJS.enc.Utf8);
|
|
23
|
+
return JSON.parse(str);
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
console.log('Error try to decode string');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CryptoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CryptoService, providedIn: 'root' });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CryptoService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root'
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return []; } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc2VydmljZXMvY3J5cHRvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQTs7QUFDckMsMEJBQTBCO0FBQzFCLHNDQUFzQztBQUl0QyxNQUFNLE9BQU8sYUFBYTtJQUV0QixHQUFHLENBQVE7SUFDWDtRQUNJLElBQUksQ0FBQyxHQUFHLEdBQUcsNEJBQTRCLENBQUE7SUFDM0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHO1FBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBQyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJO1FBQ1AsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBVSxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBUSxDQUFDO1FBQzdELE9BQU8sQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFXO1FBQ2YsSUFBRztZQUNGLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QjtRQUFBLE9BQU0sQ0FBQyxFQUFDO1lBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1NBQ3pDO0lBQ0osQ0FBQzt3R0F4QlEsYUFBYTs0R0FBYixhQUFhLGNBRlYsTUFBTTs7NEZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnXG4vL2RlY2xhcmUgdmFyIHJlcXVpcmU6IGFueVxuLy92YXIgQ3J5cHRvSlMgPSByZXF1aXJlKFwiY3J5cHRvLWpzXCIpO1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xuICB9KVxuZXhwb3J0IGNsYXNzIENyeXB0b1NlcnZpY2Uge1xuXG4gICAga2V5OnN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICB0aGlzLmtleSA9IFwic3NhbGRrbWFvc3dlaXVmMjMxb3dkYWxzZDBcIlxuICAgIH1cblxuICAgIGFzaWduYXJLZXkoa2V5KXtcbiAgICAgICAgdGhpcy5rZXk9a2V5O1xuICAgIH1cbiAgICBlbmNvZGUoZGF0YSkge1xuICAgICAgICBjb25zdCBzdHJEYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgIGxldCBjOnN0cmluZyA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHN0ckRhdGEsIHRoaXMua2V5KSBhcyBhbnk7XG4gICAgICAgICByZXR1cm4gY1xuICAgIH1cbiAgICBkZWNvZGUoZGF0YTpzdHJpbmcpe1xuICAgICAgIHRyeXtcbiAgICAgICAgdmFyIGJ5dGVzID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoZGF0YSwgdGhpcy5rZXkpO1xuICAgICAgICB2YXIgc3RyID0gYnl0ZXMudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xuXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgfWNhdGNoKGUpe1xuICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgdHJ5IHRvIGRlY29kZSBzdHJpbmcnKVxuICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlbmNvZGVTSEEyNTYoZGF0YSkge1xuICAgIC8vICAgICBjb25zdCBzdHJEYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgLy8gICAgIHJldHVybiBDcnlwdG9KUy5TSEEyNTYoc3RyRGF0YSwgdGhpcy5rZXkpO1xuICAgIC8vIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as fs from 'file-saver';
|
|
3
|
+
import { Workbook } from 'exceljs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./http.service";
|
|
6
|
+
import * as i2 from "./functions.service";
|
|
7
|
+
import * as i3 from "./message.service";
|
|
8
|
+
export class ExportDataService {
|
|
9
|
+
http;
|
|
10
|
+
functionEter;
|
|
11
|
+
message;
|
|
12
|
+
constructor(http, functionEter, message) {
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.functionEter = functionEter;
|
|
15
|
+
this.message = message;
|
|
16
|
+
}
|
|
17
|
+
async generateExcelWithSheets(title, header, name, bodies, url, params, filtersPost, titleFields, sheetNameFields, BodyFields) {
|
|
18
|
+
this.message.openLoading("Cargando", "Generando archivo");
|
|
19
|
+
bodies = await this.getDataBody(url, params, bodies, filtersPost);
|
|
20
|
+
const workbook = new Workbook();
|
|
21
|
+
for (let index = 0; index < bodies.length; index++) {
|
|
22
|
+
const body = bodies[index];
|
|
23
|
+
if (titleFields) {
|
|
24
|
+
title = titleFields.map(param => body[param]).join("-");
|
|
25
|
+
}
|
|
26
|
+
var nameSheet = "sheet";
|
|
27
|
+
if (sheetNameFields) {
|
|
28
|
+
nameSheet = sheetNameFields.map(param => body[param]).join("-");
|
|
29
|
+
}
|
|
30
|
+
const worksheet = await this.generateToXlsx(title, header, `(${(index + 1) + ') ' + nameSheet}`, body, null, null, null, BodyFields, false);
|
|
31
|
+
workbook.addWorksheet(worksheet.name, { views: [{ state: 'frozen', ySplit: 1 }] });
|
|
32
|
+
const newWorksheet = workbook.getWorksheet(worksheet.name);
|
|
33
|
+
newWorksheet.model = worksheet.model;
|
|
34
|
+
}
|
|
35
|
+
const buffer = await workbook.xlsx.writeBuffer();
|
|
36
|
+
this.saveAsExcelFile(buffer, name);
|
|
37
|
+
this.message.closeLoading();
|
|
38
|
+
}
|
|
39
|
+
async generateToXlsx(title, header, name, body, url, params, filtersPost, BodyFields, generateFile = true) {
|
|
40
|
+
if (!generateFile)
|
|
41
|
+
this.message.openLoading("Cargando", "Generando el archivo");
|
|
42
|
+
body = await this.getDataBody(url, params, body, filtersPost);
|
|
43
|
+
let workbook = new Workbook();
|
|
44
|
+
let worksheet = workbook.addWorksheet(name);
|
|
45
|
+
// Add new row
|
|
46
|
+
let titleRow = worksheet.addRow([title]);
|
|
47
|
+
// Set font, size and style in title row.
|
|
48
|
+
titleRow.font = {
|
|
49
|
+
name: 'Comic Sans MS',
|
|
50
|
+
family: 4,
|
|
51
|
+
size: 16,
|
|
52
|
+
underline: 'double',
|
|
53
|
+
bold: true,
|
|
54
|
+
};
|
|
55
|
+
// Blank Row
|
|
56
|
+
// worksheet.addRow([]);
|
|
57
|
+
// let addheader = false
|
|
58
|
+
// for (let p of header.filter(x => x.id === null)) {
|
|
59
|
+
// worksheet.addRow([body[p.value]??p.value])
|
|
60
|
+
// addheader = true
|
|
61
|
+
// }
|
|
62
|
+
worksheet.addRow([]);
|
|
63
|
+
let addheader = false;
|
|
64
|
+
for (let p of header.filter(x => x.id === null)) {
|
|
65
|
+
let value = p.value;
|
|
66
|
+
const matches = value.match(/{(.*?)}/g);
|
|
67
|
+
if (matches) {
|
|
68
|
+
matches.forEach(match => {
|
|
69
|
+
const key = match.slice(1, -1);
|
|
70
|
+
value = value.replace(match, body[key] ?? match);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
worksheet.addRow([value]);
|
|
74
|
+
addheader = true;
|
|
75
|
+
}
|
|
76
|
+
if (addheader)
|
|
77
|
+
worksheet.addRow([]);
|
|
78
|
+
//Add Header Row
|
|
79
|
+
let headerRowValue = header.filter(x => x.id != null).map((p) => { return p.value ?? p.id; });
|
|
80
|
+
let _headerRowValue = worksheet.addRow(headerRowValue);
|
|
81
|
+
// Cell Style : Fill and Border
|
|
82
|
+
_headerRowValue.eachCell((cell, number) => {
|
|
83
|
+
cell.fill = {
|
|
84
|
+
type: 'pattern',
|
|
85
|
+
pattern: 'lightUp',
|
|
86
|
+
fgColor: { argb: '6775f500' },
|
|
87
|
+
bgColor: { argb: '6775f500' },
|
|
88
|
+
};
|
|
89
|
+
cell.border = {
|
|
90
|
+
top: { style: 'thin' },
|
|
91
|
+
left: { style: 'thin' },
|
|
92
|
+
bottom: { style: 'thin' },
|
|
93
|
+
right: { style: 'thin' },
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
var headerRow = header.filter(x => x.id != null);
|
|
97
|
+
let data = BodyFields != null ? body[BodyFields] ?? [] : body;
|
|
98
|
+
for (let d of data) {
|
|
99
|
+
var row = [];
|
|
100
|
+
for (let h of headerRow) {
|
|
101
|
+
var dh = d[`${h.id}`];
|
|
102
|
+
if (h.rules) {
|
|
103
|
+
for (const rule of h.rules) {
|
|
104
|
+
if (rule.rule == enumRules['==']) {
|
|
105
|
+
if (dh == rule.valueRule.toString())
|
|
106
|
+
dh = rule.valueAction;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
row.push(dh?.toString());
|
|
111
|
+
}
|
|
112
|
+
worksheet.addRow(row);
|
|
113
|
+
}
|
|
114
|
+
worksheet.columns.forEach(function (column, i) {
|
|
115
|
+
var maxLength = 0;
|
|
116
|
+
column["eachCell"]({ includeEmpty: true }, function (cell) {
|
|
117
|
+
var columnLength = cell.value ? cell.value.toString().length : 10;
|
|
118
|
+
if (columnLength > maxLength) {
|
|
119
|
+
maxLength = columnLength;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
column.width = maxLength < 10 ? 10 : maxLength;
|
|
123
|
+
});
|
|
124
|
+
if (!generateFile) {
|
|
125
|
+
return worksheet;
|
|
126
|
+
}
|
|
127
|
+
workbook.xlsx.writeBuffer().then((data) => {
|
|
128
|
+
this.saveAsExcelFile(data, name);
|
|
129
|
+
});
|
|
130
|
+
if (!generateFile)
|
|
131
|
+
this.message.closeLoading();
|
|
132
|
+
}
|
|
133
|
+
saveAsExcelFile(buffer, fileName) {
|
|
134
|
+
const data = new Blob([buffer], {
|
|
135
|
+
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'
|
|
136
|
+
});
|
|
137
|
+
fs.saveAs(data, `${fileName}_export_${new Date().getTime()}.xlsx`);
|
|
138
|
+
}
|
|
139
|
+
async getDataBody(url, params, body, filtersPost) {
|
|
140
|
+
if (body)
|
|
141
|
+
return body;
|
|
142
|
+
if (url) {
|
|
143
|
+
var res;
|
|
144
|
+
res = await this.http.postDataBody(url, filtersPost, params);
|
|
145
|
+
if (res['count']) {
|
|
146
|
+
return res['data'];
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
return res;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportDataService, deps: [{ token: i1.HttpService }, { token: i2.FunctionsService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
154
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportDataService, providedIn: 'root' });
|
|
155
|
+
}
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportDataService, decorators: [{
|
|
157
|
+
type: Injectable,
|
|
158
|
+
args: [{
|
|
159
|
+
providedIn: 'root'
|
|
160
|
+
}]
|
|
161
|
+
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.FunctionsService }, { type: i3.MessageService }]; } });
|
|
162
|
+
var enumRules;
|
|
163
|
+
(function (enumRules) {
|
|
164
|
+
enumRules[enumRules[">"] = 0] = ">";
|
|
165
|
+
enumRules[enumRules["<"] = 1] = "<";
|
|
166
|
+
enumRules[enumRules["=="] = 2] = "==";
|
|
167
|
+
enumRules[enumRules["!="] = 3] = "!=";
|
|
168
|
+
})(enumRules || (enumRules = {}));
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zZXJ2aWNlcy9leHBvcnQtZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFPbkMsTUFBTSxPQUFPLGlCQUFpQjtJQUdsQjtJQUNBO0lBQ0E7SUFIVixZQUNVLElBQWlCLEVBQ2pCLFlBQThCLEVBQzlCLE9BQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQUksQ0FBQztJQUV0QyxLQUFLLENBQUMsdUJBQXVCLENBQzNCLEtBQWEsRUFDYixNQUFxQixFQUNyQixJQUFZLEVBQ1osTUFBbUIsRUFDbkIsR0FBWSxFQUNaLE1BQWlCLEVBQ2pCLFdBQXVDLEVBQ3ZDLFdBQXNCLEVBQ3RCLGVBQTBCLEVBQzFCLFVBQWtCO1FBRWxCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1FBRTFELE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQVcsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDNUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUU5QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxD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QUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLElBQUksRUFBRSxpRkFBaUY7U0FDeEYsQ0FBQyxDQUFDO1FBQ0gsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUksR0FBVyxFQUFFLE1BQXFCLEVBQUUsSUFBTyxFQUFFLFdBQXVDO1FBQy9HLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXRCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxHQUFRLENBQUE7WUFDWixHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQzVELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUNuQjtpQkFBTTtnQkFDTCxPQUFPLEdBQUcsQ0FBQTthQUNYO1NBQ0Y7SUFFSCxDQUFDO3dHQTFMVSxpQkFBaUI7NEdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQThMRCxJQUFLLFNBS0o7QUFMRCxXQUFLLFNBQVM7SUFDWixtQ0FBRyxDQUFBO0lBQ0gsbUNBQUcsQ0FBQTtJQUNILHFDQUFJLENBQUE7SUFDSixxQ0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUxJLFNBQVMsS0FBVCxTQUFTLFFBS2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vbWVzc2FnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBXb3JrYm9vayB9IGZyb20gJ2V4Y2VsanMnO1xuaW1wb3J0IHsgcGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kYXRhLXRhYmxlL3BhcmFtcyc7XG5pbXBvcnQgeyBGdW5jdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9mdW5jdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBIZWFkZXJGaWx0ZXJzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWx0ZXJzL2hlYWRlci1maWx0ZXJzJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydERhdGFTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgZnVuY3Rpb25FdGVyOiBGdW5jdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZTogTWVzc2FnZVNlcnZpY2UpIHsgfVxuXG4gIGFzeW5jIGdlbmVyYXRlRXhjZWxXaXRoU2hlZXRzPFQ+KFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgaGVhZGVyOiBBcnJheTxwYXJhbXM+LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBib2RpZXM/OiBBcnJheTxhbnk+LFxuICAgIHVybD86IHN0cmluZyxcbiAgICBwYXJhbXM/OiBwYXJhbXNbXSxcbiAgICBmaWx0ZXJzUG9zdD86IEFycmF5PEhlYWRlckZpbHRlcnM8YW55Pj4sXG4gICAgdGl0bGVGaWVsZHM/OiBzdHJpbmdbXSxcbiAgICBzaGVldE5hbWVGaWVsZHM/OiBzdHJpbmdbXSxcbiAgICBCb2R5RmllbGRzPzpzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIGFyY2hpdm9cIilcblxuICAgYm9kaWVzID0gYXdhaXQgdGhpcy5nZXREYXRhQm9keTxBcnJheTxUPj4odXJsLCBwYXJhbXMsIGJvZGllcywgZmlsdGVyc1Bvc3QpXG4gIGNvbnN0IHdvcmtib29rID0gbmV3IFdvcmtib29rKCk7XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYm9kaWVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgYm9keSA9IGJvZGllc1tpbmRleF07XG5cbiAgICAgIGlmICh0aXRsZUZpZWxkcykge1xuICAgICAgICB0aXRsZSA9IHRpdGxlRmllbGRzLm1hcChwYXJhbSA9PiBib2R5W3BhcmFtXSkuam9pbihcIi1cIik7XG4gICAgICB9XG5cbiAgICAgIHZhciBuYW1lU2hlZXQgPSBcInNoZWV0XCI7XG5cbiAgICAgIGlmIChzaGVldE5hbWVGaWVsZHMpIHtcbiAgICAgICAgbmFtZVNoZWV0ID0gc2hlZXROYW1lRmllbGRzLm1hcChwYXJhbSA9PiBib2R5W3BhcmFtXSkuam9pbihcIi1cIik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdvcmtzaGVldCA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVUb1hsc3godGl0bGUsIGhlYWRlciwgYCgkeyhpbmRleCsxKSsnKSAnK25hbWVTaGVldH1gLCBib2R5LCBudWxsLCBudWxsLCBudWxsLCBCb2R5RmllbGRzLCBmYWxzZSk7XG4gICAgICB3b3JrYm9vay5hZGRXb3Jrc2hlZXQod29ya3NoZWV0Lm5hbWUsIHsgdmlld3M6IFt7IHN0YXRlOiAnZnJvemVuJywgeVNwbGl0OiAxIH1dIH0pO1xuICAgICAgY29uc3QgbmV3V29ya3NoZWV0ID0gd29ya2Jvb2suZ2V0V29ya3NoZWV0KHdvcmtzaGVldC5uYW1lKTtcbiAgICAgIG5ld1dvcmtzaGVldC5tb2RlbCA9IHdvcmtzaGVldC5tb2RlbDtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCB3b3JrYm9vay54bHN4LndyaXRlQnVmZmVyKCk7XG4gICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoYnVmZmVyLCBuYW1lKTtcblxuICAgIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdlbmVyYXRlVG9YbHN4PFQ+KFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgaGVhZGVyOiBBcnJheTxwYXJhbXM+LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBib2R5PzogVCxcbiAgICB1cmw/OiBzdHJpbmcsXG4gICAgcGFyYW1zPzogQXJyYXk8cGFyYW1zPixcbiAgICBmaWx0ZXJzUG9zdD86IEFycmF5PEhlYWRlckZpbHRlcnM8YW55Pj4sXG4gICAgQm9keUZpZWxkcz86c3RyaW5nLFxuICAgIGdlbmVyYXRlRmlsZTogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPGFueT4ge1xuXG4gICAgaWYgKCFnZW5lcmF0ZUZpbGUpIHRoaXMubWVzc2FnZS5vcGVuTG9hZGluZyhcIkNhcmdhbmRvXCIsIFwiR2VuZXJhbmRvIGVsIGFyY2hpdm9cIilcblxuICAgIGJvZHkgPSBhd2FpdCB0aGlzLmdldERhdGFCb2R5PFQ+KHVybCwgcGFyYW1zLCBib2R5LCBmaWx0ZXJzUG9zdClcblxuICAgIGxldCB3b3JrYm9vayA9IG5ldyBXb3JrYm9vaygpO1xuICAgIGxldCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQobmFtZSk7XG5cbiAgICAvLyBBZGQgbmV3IHJvd1xuICAgIGxldCB0aXRsZVJvdyA9IHdvcmtzaGVldC5hZGRSb3coW3RpdGxlXSk7XG5cbiAgICAvLyBTZXQgZm9udCwgc2l6ZSBhbmQgc3R5bGUgaW4gdGl0bGUgcm93LlxuICAgIHRpdGxlUm93LmZvbnQgPSB7XG4gICAgICBuYW1lOiAnQ29taWMgU2FucyBNUycsXG4gICAgICBmYW1pbHk6IDQsXG4gICAgICBzaXplOiAxNixcbiAgICAgIHVuZGVybGluZTogJ2RvdWJsZScsXG4gICAgICBib2xkOiB0cnVlLFxuICAgIH07XG5cbiAgICAvLyBCbGFuayBSb3dcbiAgICAvLyB3b3Jrc2hlZXQuYWRkUm93KFtdKTtcbiAgICAvLyBsZXQgYWRkaGVhZGVyID0gZmFsc2VcbiAgICAvLyBmb3IgKGxldCBwIG9mIGhlYWRlci5maWx0ZXIoeCA9PiB4LmlkID09PSBudWxsKSkge1xuICAgIC8vICAgd29ya3NoZWV0LmFkZFJvdyhbYm9keVtwLnZhbHVlXT8/cC52YWx1ZV0pXG4gICAgLy8gICBhZGRoZWFkZXIgPSB0cnVlXG4gICAgLy8gfVxuXG4gICAgd29ya3NoZWV0LmFkZFJvdyhbXSk7XG4gICAgbGV0IGFkZGhlYWRlciA9IGZhbHNlO1xuICAgIGZvciAobGV0IHAgb2YgaGVhZGVyLmZpbHRlcih4ID0+IHguaWQgPT09IG51bGwpKSB7XG4gICAgICBsZXQgdmFsdWUgPSBwLnZhbHVlO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IHZhbHVlLm1hdGNoKC97KC4qPyl9L2cpO1xuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbWF0Y2hlcy5mb3JFYWNoKG1hdGNoID0+IHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBtYXRjaC5zbGljZSgxLCAtMSk7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKG1hdGNoLCBib2R5W2tleV0gPz8gbWF0Y2gpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHdvcmtzaGVldC5hZGRSb3coW3ZhbHVlXSk7XG4gICAgICBhZGRoZWFkZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChhZGRoZWFkZXIpIHdvcmtzaGVldC5hZGRSb3coW10pO1xuXG4gICAgLy9BZGQgSGVhZGVyIFJvd1xuICAgIGxldCBoZWFkZXJSb3dWYWx1ZSA9IGhlYWRlci5maWx0ZXIoeCA9PiB4LmlkICE9IG51bGwpLm1hcCgocCkgPT4geyByZXR1cm4gcC52YWx1ZT8/cC5pZCB9KVxuICAgIGxldCBfaGVhZGVyUm93VmFsdWUgPSB3b3Jrc2hlZXQuYWRkUm93KGhlYWRlclJvd1ZhbHVlKTtcblxuICAgIC8vIENlbGwgU3R5bGUgOiBGaWxsIGFuZCBCb3JkZXJcbiAgICBfaGVhZGVyUm93VmFsdWUuZWFjaENlbGwoKGNlbGwsIG51bWJlcikgPT4ge1xuICAgICAgY2VsbC5maWxsID0ge1xuICAgICAgICB0eXBlOiAncGF0dGVybicsXG4gICAgICAgIHBhdHRlcm46ICdsaWdodFVwJyxcbiAgICAgICAgZmdDb2xvcjogeyBhcmdiOiAnNjc3NWY1MDAnIH0sXG4gICAgICAgIGJnQ29sb3I6IHsgYXJnYjogJzY3NzVmNTAwJyB9LFxuICAgICAgfTtcbiAgICAgIGNlbGwuYm9yZGVyID0ge1xuICAgICAgICB0b3A6IHsgc3R5bGU6ICd0aGluJyB9LFxuICAgICAgICBsZWZ0OiB7IHN0eWxlOiAndGhpbicgfSxcbiAgICAgICAgYm90dG9tOiB7IHN0eWxlOiAndGhpbicgfSxcbiAgICAgICAgcmlnaHQ6IHsgc3R5bGU6ICd0aGluJyB9LFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHZhciBoZWFkZXJSb3cgPSBoZWFkZXIuZmlsdGVyKHggPT4geC5pZCAhPSBudWxsKVxuXG4gICAgbGV0IGRhdGEgPSBCb2R5RmllbGRzICE9IG51bGwgPyBib2R5W0JvZHlGaWVsZHNdID8/IFtdIDogYm9keVxuICAgIGZvciAobGV0IGQgb2YgZGF0YSkge1xuICAgICAgdmFyIHJvdyA9IFtdXG4gICAgICBmb3IgKGxldCBoIG9mIGhlYWRlclJvdykge1xuICAgICAgICB2YXIgZGggPSBkW2Ake2guaWR9YF1cbiAgICAgICAgaWYgKGgucnVsZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgaC5ydWxlcykge1xuICAgICAgICAgICAgaWYgKHJ1bGUucnVsZSA9PSBlbnVtUnVsZXNbJz09J10pIHtcbiAgICAgICAgICAgICAgaWYgKGRoID09IHJ1bGUudmFsdWVSdWxlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgZGggPSBydWxlLnZhbHVlQWN0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJvdy5wdXNoKGRoPy50b1N0cmluZygpKVxuICAgICAgfVxuICAgICAgd29ya3NoZWV0LmFkZFJvdyhyb3cpO1xuICAgIH1cblxuICAgIHdvcmtzaGVldC5jb2x1bW5zLmZvckVhY2goZnVuY3Rpb24gKGNvbHVtbiwgaSkge1xuICAgICAgdmFyIG1heExlbmd0aCA9IDA7XG4gICAgICBjb2x1bW5bXCJlYWNoQ2VsbFwiXSh7IGluY2x1ZGVFbXB0eTogdHJ1ZSB9LCBmdW5jdGlvbiAoY2VsbCkge1xuICAgICAgICB2YXIgY29sdW1uTGVuZ3RoID0gY2VsbC52YWx1ZSA/IGNlbGwudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggOiAxMDtcbiAgICAgICAgaWYgKGNvbHVtbkxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgICAgIG1heExlbmd0aCA9IGNvbHVtbkxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb2x1bW4ud2lkdGggPSBtYXhMZW5ndGggPCAxMCA/IDEwIDogbWF4TGVuZ3RoO1xuICAgIH0pO1xuXG4gICAgaWYgKCFnZW5lcmF0ZUZpbGUpIHtcbiAgICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gICAgfVxuXG4gICAgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGRhdGEsIG5hbWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFnZW5lcmF0ZUZpbGUpIHRoaXMubWVzc2FnZS5jbG9zZUxvYWRpbmcoKVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcbiAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04J1xuICAgIH0pO1xuICAgIGZzLnNhdmVBcyhkYXRhLCBgJHtmaWxlTmFtZX1fZXhwb3J0XyR7bmV3IERhdGUoKS5nZXRUaW1lKCl9Lnhsc3hgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGF0YUJvZHk8VD4odXJsOiBzdHJpbmcsIHBhcmFtczogQXJyYXk8cGFyYW1zPiwgYm9keTogVCwgZmlsdGVyc1Bvc3Q/OiBBcnJheTxIZWFkZXJGaWx0ZXJzPGFueT4+KTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKGJvZHkpIHJldHVybiBib2R5O1xuXG4gICAgaWYgKHVybCkge1xuICAgICAgdmFyIHJlczogYW55XG4gICAgICByZXMgPSBhd2FpdCB0aGlzLmh0dHAucG9zdERhdGFCb2R5KHVybCwgZmlsdGVyc1Bvc3QsIHBhcmFtcylcbiAgICAgIGlmIChyZXNbJ2NvdW50J10pIHtcbiAgICAgICAgcmV0dXJuIHJlc1snZGF0YSddXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzXG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuZW51bSBlbnVtUnVsZXMge1xuICBcIj5cIixcbiAgXCI8XCIsXG4gIFwiPT1cIixcbiAgXCIhPVwiXG59XG4iXX0=
|
|
@@ -12,13 +12,13 @@ export class FileFormsService {
|
|
|
12
12
|
}
|
|
13
13
|
return (formD);
|
|
14
14
|
}
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileFormsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileFormsService, providedIn: 'root' });
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
FileFormsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileFormsService, providedIn: 'root' });
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileFormsService, decorators: [{
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileFormsService, decorators: [{
|
|
19
19
|
type: Injectable,
|
|
20
20
|
args: [{
|
|
21
21
|
providedIn: 'root'
|
|
22
22
|
}]
|
|
23
23
|
}], ctorParameters: function () { return []; } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1mb3Jtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2ZpbGUtZm9ybXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLG1CQUFtQixDQUFDLElBQVMsRUFBRSxNQUFPO1FBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUEsc0JBQXNCO1FBQzVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVcsRUFBRSxFQUFFO2dCQUM3QixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFZixDQUFDO3dHQWZVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUZvcm1zU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBjcmVhdGVNdWx0aXBhcnRGb3JtKGZpbGU6RmlsZSwgcGFyYW1zPyl7XG5cbiAgICBjb25zdCBmb3JtRCA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1ELmFwcGVuZCgnZmlsZScsZmlsZSwnZm9ybS1kYXRhJyk7Ly9Bc2lnbmEgZWwgY2FtcG8gRmlsZVxuICAgIGlmKHBhcmFtcyl7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcbiAgICAgICAgZm9ybUQuYXBwZW5kKGVsZW1lbnQuaWQsZWxlbWVudC52YWx1ZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4oZm9ybUQpXG5cbiAgfVxuXG59XG4iXX0=
|