@rosoftlab/ionic 1.0.0-alpha-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/README.md +27 -0
- package/esm2022/lib/components/index.mjs +4 -0
- package/esm2022/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.mjs +266 -0
- package/esm2022/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.mjs +292 -0
- package/esm2022/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.mjs +269 -0
- package/esm2022/lib/decorators/index.mjs +3 -0
- package/esm2022/lib/decorators/ionic-datatable-layout.mjs +10 -0
- package/esm2022/lib/decorators/ionic-list.decorator.mjs +9 -0
- package/esm2022/lib/interfaces/index.mjs +2 -0
- package/esm2022/lib/interfaces/ionic-list-layout-config.mjs +2 -0
- package/esm2022/lib/ionic-dialog.service.mjs +51 -0
- package/esm2022/lib/rsl-ionic-module.module.mjs +86 -0
- package/esm2022/lib/translate.extension.mjs +48 -0
- package/esm2022/lib/types/index.mjs +2 -0
- package/esm2022/lib/types/repeat/repeat-section.type.mjs +135 -0
- package/esm2022/lib/validators/index.mjs +2 -0
- package/esm2022/lib/validators/must-match.mjs +12 -0
- package/esm2022/lib/wrappers/accordion-wrapper.component.mjs +50 -0
- package/esm2022/lib/wrappers/index.mjs +3 -0
- package/esm2022/lib/wrappers/panel-wrapper.component.mjs +37 -0
- package/esm2022/lib/wrappers/wrappers.module.mjs +56 -0
- package/esm2022/public-api.mjs +12 -0
- package/esm2022/rosoftlab-ionic.mjs +5 -0
- package/fesm2022/rosoftlab-ionic.mjs +1251 -0
- package/fesm2022/rosoftlab-ionic.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/index.d.ts +3 -0
- package/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.d.ts +69 -0
- package/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.d.ts +66 -0
- package/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.d.ts +58 -0
- package/lib/decorators/index.d.ts +2 -0
- package/lib/decorators/ionic-datatable-layout.d.ts +7 -0
- package/lib/decorators/ionic-list.decorator.d.ts +2 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/interfaces/ionic-list-layout-config.d.ts +8 -0
- package/lib/ionic-dialog.service.d.ts +10 -0
- package/lib/rsl-ionic-module.module.d.ts +13 -0
- package/lib/translate.extension.d.ts +17 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/repeat/repeat-section.type.d.ts +51 -0
- package/lib/validators/index.d.ts +1 -0
- package/lib/validators/must-match.d.ts +6 -0
- package/lib/wrappers/accordion-wrapper.component.d.ts +6 -0
- package/lib/wrappers/index.d.ts +2 -0
- package/lib/wrappers/panel-wrapper.component.d.ts +6 -0
- package/lib/wrappers/wrappers.module.d.ts +13 -0
- package/package.json +31 -0
- package/public-api.d.ts +8 -0
@@ -0,0 +1,135 @@
|
|
1
|
+
import { Component, ElementRef, ViewChild } from '@angular/core';
|
2
|
+
import { FieldArrayType } from '@ngx-formly/core';
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
4
|
+
import { getValueFromJsonData, readFileAsync } from '@rosoftlab/core';
|
5
|
+
import { FileSaverService } from 'ngx-filesaver';
|
6
|
+
import * as XLSX from 'xlsx';
|
7
|
+
import { IonicDialogService } from '../../ionic-dialog.service';
|
8
|
+
import { WrappersModule } from '../../wrappers/wrappers.module';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
import * as i1 from "../../ionic-dialog.service";
|
11
|
+
import * as i2 from "@ngx-translate/core";
|
12
|
+
import * as i3 from "ngx-filesaver";
|
13
|
+
import * as i4 from "@angular/common";
|
14
|
+
import * as i5 from "@ionic/angular";
|
15
|
+
import * as i6 from "@ngx-formly/core";
|
16
|
+
export class RepeatTypeComponent extends FieldArrayType {
|
17
|
+
constructor(dialogService, translate, fileSaverService) {
|
18
|
+
super();
|
19
|
+
this.dialogService = dialogService;
|
20
|
+
this.translate = translate;
|
21
|
+
this.fileSaverService = fileSaverService;
|
22
|
+
this.data = null;
|
23
|
+
this.serach = null;
|
24
|
+
this.showSerach = false;
|
25
|
+
this.filterValue = null;
|
26
|
+
this.importDataProp = null;
|
27
|
+
this.exportDataProp = null;
|
28
|
+
this.deleteMessage = this.translate.instant("General.Delete.Question");
|
29
|
+
this.deleteButton = this.translate.instant("General.Delete.Button");
|
30
|
+
this.cancelButton = this.translate.instant("General.Cancel.Button");
|
31
|
+
}
|
32
|
+
remove(i, { markAsDirty } = { markAsDirty: true }) {
|
33
|
+
this.dialogService.confirm(this.deleteMessage, null, this.deleteButton, this.cancelButton).then((value) => {
|
34
|
+
if (value.data) {
|
35
|
+
var onDelete = this.field.props['onDelete'];
|
36
|
+
if (onDelete) {
|
37
|
+
onDelete(this.field.fieldGroup[i].model).subscribe(() => {
|
38
|
+
super.remove(i);
|
39
|
+
});
|
40
|
+
}
|
41
|
+
super.remove(i);
|
42
|
+
}
|
43
|
+
});
|
44
|
+
}
|
45
|
+
ngOnInit() {
|
46
|
+
this.typeKey = this.field.key;
|
47
|
+
this.serach = this.props['search'];
|
48
|
+
this.exportDataProp = this.props['export'] || null;
|
49
|
+
this.importDataProp = this.props['import'] || null;
|
50
|
+
if (this.serach) {
|
51
|
+
this.showSerach = this.serach.showSerach;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
postPopulate(field) {
|
55
|
+
if (this.showSerach) {
|
56
|
+
this.data = field.fieldGroup;
|
57
|
+
if (this.filterValue) {
|
58
|
+
this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue));
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
handleChange(event) {
|
63
|
+
if (this.showSerach) {
|
64
|
+
if (this.data == null && this.field.fieldGroup !== null) {
|
65
|
+
this.data = this.field.fieldGroup;
|
66
|
+
}
|
67
|
+
this.filterValue = event.target.value.toLowerCase();
|
68
|
+
this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue));
|
69
|
+
}
|
70
|
+
}
|
71
|
+
importData() {
|
72
|
+
this.fileInput.nativeElement.click();
|
73
|
+
}
|
74
|
+
async handleImportFile(event) {
|
75
|
+
const file = event.target.files[0];
|
76
|
+
if (file) {
|
77
|
+
try {
|
78
|
+
const fileContents = await readFileAsync(file);
|
79
|
+
// Handle the file contents here (e.g., display or process the data)
|
80
|
+
const wb = XLSX.read(fileContents); //, { type: 'binary' });
|
81
|
+
const wsname = wb.SheetNames[0];
|
82
|
+
const ws = wb.Sheets[wsname];
|
83
|
+
const excelData = XLSX.utils.sheet_to_json(ws); //, { header: 1 });
|
84
|
+
excelData.forEach(element => {
|
85
|
+
const jsonX = getValueFromJsonData(element, this.importDataProp.keyProp);
|
86
|
+
const idx = this.field.parent.model[this.typeKey].findIndex(f => f[this.importDataProp.keyProp] === jsonX);
|
87
|
+
if (idx >= 0) {
|
88
|
+
const existingdata = this.field.parent.model[this.typeKey][idx];
|
89
|
+
for (const prop of this.importDataProp.propertiesToImport) {
|
90
|
+
const jsonVal = getValueFromJsonData(element, prop);
|
91
|
+
if (existingdata[prop] !== jsonVal) {
|
92
|
+
var fieldControl = this.field.fieldGroup[idx].formControl;
|
93
|
+
fieldControl.controls[prop].setValue(jsonVal);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
else {
|
98
|
+
super.add(null, element);
|
99
|
+
}
|
100
|
+
});
|
101
|
+
}
|
102
|
+
catch (error) {
|
103
|
+
console.error('Error reading the file:', error);
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
exportData() {
|
108
|
+
// Filter the data to include only the specified properties
|
109
|
+
const filteredData = this.field.parent.model[this.typeKey].map(item => {
|
110
|
+
const filteredItem = {};
|
111
|
+
for (const prop of this.exportDataProp.propertiesToExport) {
|
112
|
+
filteredItem[prop] = item[prop];
|
113
|
+
}
|
114
|
+
return filteredItem;
|
115
|
+
});
|
116
|
+
const ws = XLSX.utils.json_to_sheet(filteredData);
|
117
|
+
const wb = XLSX.utils.book_new();
|
118
|
+
XLSX.utils.book_append_sheet(wb, ws, this.exportDataProp.sheetName);
|
119
|
+
const excelBuffer = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
|
120
|
+
const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
121
|
+
this.fileSaverService.save(blob, this.exportDataProp.fileName);
|
122
|
+
}
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: RepeatTypeComponent, deps: [{ token: i1.IonicDialogService }, { token: i2.TranslateService }, { token: i3.FileSaverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: RepeatTypeComponent, isStandalone: true, selector: "formly-repeat-section", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n\r\n<ion-list lines=\"full\">\r\n <ion-item *ngFor=\"let field of field.fieldGroup; let i = index\" class=\"row align-items-baseline\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"field\"></formly-field>\r\n <ion-button [disabled]=\"props.disabled\" color=\"danger\" slot=\"end\" (click)='remove(i)'>\r\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n</ion-list>\r\n\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>", styles: [".formly-ion-list-item{display:inline;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i5.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i5.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i5.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i5.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i5.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i5.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i5.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i5.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }] }); }
|
125
|
+
}
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: RepeatTypeComponent, decorators: [{
|
127
|
+
type: Component,
|
128
|
+
args: [{ standalone: true, selector: 'formly-repeat-section', imports: [
|
129
|
+
WrappersModule
|
130
|
+
], template: "<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n\r\n<ion-list lines=\"full\">\r\n <ion-item *ngFor=\"let field of field.fieldGroup; let i = index\" class=\"row align-items-baseline\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"field\"></formly-field>\r\n <ion-button [disabled]=\"props.disabled\" color=\"danger\" slot=\"end\" (click)='remove(i)'>\r\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n</ion-list>\r\n\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>", styles: [".formly-ion-list-item{display:inline;width:100%}\n"] }]
|
131
|
+
}], ctorParameters: function () { return [{ type: i1.IonicDialogService }, { type: i2.TranslateService }, { type: i3.FileSaverService }]; }, propDecorators: { fileInput: [{
|
132
|
+
type: ViewChild,
|
133
|
+
args: ['fileInput']
|
134
|
+
}] } });
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LXNlY3Rpb24udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9pb25pYy9zcmMvbGliL3R5cGVzL3JlcGVhdC9yZXBlYXQtc2VjdGlvbi50eXBlLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9saWIvdHlwZXMvcmVwZWF0L3JlcGVhdC1zZWN0aW9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBeUJoRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQWVyRCxZQUNTLGFBQWlDLEVBQ2pDLFNBQTJCLEVBQzFCLGdCQUFrQztRQUMxQyxLQUFLLEVBQUUsQ0FBQztRQUhELGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBYjVDLFNBQUksR0FBd0IsSUFBSSxDQUFDO1FBQ2pDLFdBQU0sR0FBZSxJQUFJLENBQUM7UUFDMUIsZUFB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U0FBUztpQ0FFSSxJQUFJLFlBQ04sdUJBQXVCLFdBR3hCO3dCQUNQLGNBQWM7cUJBQ2Y7dUtBTXVCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmllbGRBcnJheVR5cGUsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tSnNvbkRhdGEsIHJlYWRGaWxlQXN5bmMgfSBmcm9tICdAcm9zb2Z0bGFiL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlU2F2ZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LWZpbGVzYXZlcic7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IElvbmljRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2lvbmljLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV3JhcHBlcnNNb2R1bGUgfSBmcm9tICcuLi8uLi93cmFwcGVycy93cmFwcGVycy5tb2R1bGUnO1xyXG5cclxuaW50ZXJmYWNlIFNlYXJjaFByb3Age1xyXG4gIHNob3dTZXJhY2g6IGJvb2xlYW5cclxuICBzZWFyY2hQcm9wOiBzdHJpbmdcclxufVxyXG5pbnRlcmZhY2UgRXhwb3J0RGF0YVByb3Age1xyXG4gIHByb3BlcnRpZXNUb0V4cG9ydDogc3RyaW5nW11cclxuICBzaGVldE5hbWU6IHN0cmluZztcclxuICBmaWxlTmFtZTogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBJbXBvcnREYXRhUHJvcCB7XHJcbiAga2V5UHJvcDogc3RyaW5nXHJcbiAgcHJvcGVydGllc1RvSW1wb3J0OiBzdHJpbmdbXVxyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ2Zvcm1seS1yZXBlYXQtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdC1zZWN0aW9uLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlcGVhdC1zZWN0aW9uLnNjc3MnXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBXcmFwcGVyc01vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGVhdFR5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEFycmF5VHlwZSB7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XHJcbiAgZGF0YTogRm9ybWx5RmllbGRDb25maWdbXSA9IG51bGw7XHJcbiAgc2VyYWNoOiBTZWFyY2hQcm9wID0gbnVsbDtcclxuICBzaG93U2VyYWNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGVsZXRlTWVzc2FnZTogc3RyaW5nXHJcbiAgZGVsZXRlQnV0dG9uOiBzdHJpbmdcclxuICBjYW5jZWxCdXR0b246IHN0cmluZ1xyXG4gIGZpbHRlclZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHR5cGVLZXk6IHN0cmluZztcclxuICBpbXBvcnREYXRhUHJvcDogSW1wb3J0RGF0YVByb3AgPSBudWxsO1xyXG4gIGV4cG9ydERhdGFQcm9wOiBFeHBvcnREYXRhUHJvcCA9IG51bGw7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nU2VydmljZTogSW9uaWNEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgZmlsZVNhdmVyU2VydmljZTogRmlsZVNhdmVyU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZGVsZXRlTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJHZW5lcmFsLkRlbGV0ZS5RdWVzdGlvblwiKVxyXG4gICAgdGhpcy5kZWxldGVCdXR0b24gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiR2VuZXJhbC5EZWxldGUuQnV0dG9uXCIpXHJcbiAgICB0aGlzLmNhbmNlbEJ1dHRvbiA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJHZW5lcmFsLkNhbmNlbC5CdXR0b25cIilcclxuXHJcbiAgfVxyXG4gIG92ZXJyaWRlIHJlbW92ZShpOiBudW1iZXIsIHsgbWFya0FzRGlydHkgfSA9IHsgbWFya0FzRGlydHk6IHRydWUgfSkge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm0odGhpcy5kZWxldGVNZXNzYWdlLCBudWxsLCB0aGlzLmRlbGV0ZUJ1dHRvbiwgdGhpcy5jYW5jZWxCdXR0b24pLnRoZW4oXHJcbiAgICAgICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlLmRhdGEpIHtcclxuICAgICAgICAgIHZhciBvbkRlbGV0ZSA9IHRoaXMuZmllbGQucHJvcHNbJ29uRGVsZXRlJ107XHJcbiAgICAgICAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgICAgICAgb25EZWxldGUodGhpcy5maWVsZC5maWVsZEdyb3VwW2ldLm1vZGVsKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3VwZXIucmVtb3ZlKGkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc3VwZXIucmVtb3ZlKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHlwZUtleSA9IHRoaXMuZmllbGQua2V5IGFzIHN0cmluZ1xyXG4gICAgdGhpcy5zZXJhY2ggPSB0aGlzLnByb3BzWydzZWFyY2gnXVxyXG4gICAgdGhpcy5leHBvcnREYXRhUHJvcCA9IHRoaXMucHJvcHNbJ2V4cG9ydCddIHx8IG51bGxcclxuICAgIHRoaXMuaW1wb3J0RGF0YVByb3AgPSB0aGlzLnByb3BzWydpbXBvcnQnXSB8fCBudWxsXHJcbiAgICBpZiAodGhpcy5zZXJhY2gpIHtcclxuICAgICAgdGhpcy5zaG93U2VyYWNoID0gdGhpcy5zZXJhY2guc2hvd1NlcmFjaFxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcG9zdFBvcHVsYXRlKGZpZWxkOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNob3dTZXJhY2gpIHtcclxuICAgICAgdGhpcy5kYXRhID0gZmllbGQuZmllbGRHcm91cFxyXG4gICAgICBpZiAodGhpcy5maWx0ZXJWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZmllbGQuZmllbGRHcm91cCA9IHRoaXMuZGF0YS5maWx0ZXIoZiA9PiBmLmZvcm1Db250cm9sLnZhbHVlW3RoaXMuc2VyYWNoLnNlYXJjaFByb3BdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXJWYWx1ZSkpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5zaG93U2VyYWNoKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEgPT0gbnVsbCAmJiB0aGlzLmZpZWxkLmZpZWxkR3JvdXAgIT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmZpZWxkLmZpZWxkR3JvdXBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpbHRlclZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuZmllbGQuZmllbGRHcm91cCA9IHRoaXMuZGF0YS5maWx0ZXIoZiA9PiBmLmZvcm1Db250cm9sLnZhbHVlW3RoaXMuc2VyYWNoLnNlYXJjaFByb3BdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXJWYWx1ZSkpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGltcG9ydERhdGEoKSB7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG4gIGFzeW5jIGhhbmRsZUltcG9ydEZpbGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuXHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICB0cnkge1xyXG5cclxuXHJcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnRzID0gYXdhaXQgcmVhZEZpbGVBc3luYyhmaWxlKTtcclxuICAgICAgICAvLyBIYW5kbGUgdGhlIGZpbGUgY29udGVudHMgaGVyZSAoZS5nLiwgZGlzcGxheSBvciBwcm9jZXNzIHRoZSBkYXRhKVxyXG4gICAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGZpbGVDb250ZW50cykvLywgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgICAgY29uc3QgZXhjZWxEYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzKS8vLCB7IGhlYWRlcjogMSB9KTtcclxuICAgICAgICBleGNlbERhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIGNvbnN0IGpzb25YID0gZ2V0VmFsdWVGcm9tSnNvbkRhdGEoZWxlbWVudCwgdGhpcy5pbXBvcnREYXRhUHJvcC5rZXlQcm9wKVxyXG4gICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5maWVsZC5wYXJlbnQubW9kZWxbdGhpcy50eXBlS2V5XS5maW5kSW5kZXgoZiA9PiBmW3RoaXMuaW1wb3J0RGF0YVByb3Aua2V5UHJvcF0gPT09IGpzb25YKVxyXG4gICAgICAgICAgaWYgKGlkeCA+PSAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nZGF0YSA9IHRoaXMuZmllbGQucGFyZW50Lm1vZGVsW3RoaXMudHlwZUtleV1baWR4XVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5pbXBvcnREYXRhUHJvcC5wcm9wZXJ0aWVzVG9JbXBvcnQpIHtcclxuICAgICAgICAgICAgICBjb25zdCBqc29uVmFsID0gZ2V0VmFsdWVGcm9tSnNvbkRhdGEoZWxlbWVudCwgcHJvcClcclxuICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdkYXRhW3Byb3BdICE9PSBqc29uVmFsKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZmllbGRDb250cm9sID0gdGhpcy5maWVsZC5maWVsZEdyb3VwW2lkeF0uZm9ybUNvbnRyb2wgYXMgRm9ybUdyb3VwXHJcbiAgICAgICAgICAgICAgICBmaWVsZENvbnRyb2wuY29udHJvbHNbcHJvcF0uc2V0VmFsdWUoanNvblZhbClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHN1cGVyLmFkZChudWxsLCBlbGVtZW50KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWFkaW5nIHRoZSBmaWxlOicsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0RGF0YSgpIHtcclxuXHJcbiAgICAvLyBGaWx0ZXIgdGhlIGRhdGEgdG8gaW5jbHVkZSBvbmx5IHRoZSBzcGVjaWZpZWQgcHJvcGVydGllc1xyXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5maWVsZC5wYXJlbnQubW9kZWxbdGhpcy50eXBlS2V5XS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlcmVkSXRlbTogYW55ID0ge307XHJcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLmV4cG9ydERhdGFQcm9wLnByb3BlcnRpZXNUb0V4cG9ydCkge1xyXG4gICAgICAgIGZpbHRlcmVkSXRlbVtwcm9wXSA9IGl0ZW1bcHJvcF07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZpbHRlcmVkSXRlbTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChmaWx0ZXJlZERhdGEpO1xyXG4gICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XHJcbiAgICBYTFNYLnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdiLCB3cywgdGhpcy5leHBvcnREYXRhUHJvcC5zaGVldE5hbWUpO1xyXG5cclxuICAgIGNvbnN0IGV4Y2VsQnVmZmVyOiBhbnkgPSBYTFNYLndyaXRlKHdiLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XHJcblxyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtleGNlbEJ1ZmZlcl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyB9KTtcclxuICAgIHRoaXMuZmlsZVNhdmVyU2VydmljZS5zYXZlKGJsb2IsIHRoaXMuZXhwb3J0RGF0YVByb3AuZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0VmFsdWVGcm9tSnNvbkRhdGEoanNvbkRhdGE6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gIC8vICAgLy8gQ29udmVydCB0aGUga2V5IGFuZCBhbGwgSlNPTiBrZXlzIHRvIGxvd2VyY2FzZVxyXG4gIC8vICAgY29uc3QgbG93ZXJjYXNlS2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XHJcbiAgLy8gICBjb25zdCBsb3dlcmNhc2VLZXlzID0gT2JqZWN0LmtleXMoanNvbkRhdGEpLm1hcChrID0+IGsudG9Mb3dlckNhc2UoKSk7XHJcblxyXG4gIC8vICAgLy8gRmluZCB0aGUgbG93ZXJjYXNlIGtleSBpbiB0aGUgbG93ZXJjYXNlIGtleXMgYXJyYXlcclxuICAvLyAgIGNvbnN0IGluZGV4ID0gbG93ZXJjYXNlS2V5cy5pbmRleE9mKGxvd2VyY2FzZUtleSk7XHJcblxyXG4gIC8vICAgLy8gSWYgZm91bmQsIHVzZSB0aGUgb3JpZ2luYWwgKHByb3BlciBjYXNlKSBrZXkgdG8gYWNjZXNzIHRoZSB2YWx1ZVxyXG4gIC8vICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gIC8vICAgICBjb25zdCBvcmlnaW5hbEtleSA9IE9iamVjdC5rZXlzKGpzb25EYXRhKVtpbmRleF07XHJcbiAgLy8gICAgIHJldHVybiBqc29uRGF0YVtvcmlnaW5hbEtleV07XHJcbiAgLy8gICB9XHJcblxyXG4gIC8vICAgLy8gS2V5IG5vdCBmb3VuZFxyXG4gIC8vICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAvLyB9XHJcbiAgLy8gcHJpdmF0ZSByZWFkRmlsZUFzeW5jKGZpbGU6IEZpbGUpOiBQcm9taXNlPGFueT4ge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gIC8vICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuICAvLyAgICAgcmVhZGVyLm9ubG9hZCA9IChldmVudDogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgcmVzb2x2ZShldmVudC50YXJnZXQucmVzdWx0KTtcclxuICAvLyAgICAgfTtcclxuXHJcbiAgLy8gICAgIHJlYWRlci5vbmVycm9yID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAvLyAgICAgICByZWplY3QoZXZlbnQudGFyZ2V0LmVycm9yKTtcclxuICAvLyAgICAgfTtcclxuXHJcbiAgLy8gICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxufSIsIjxpb24taGVhZGVyIFt0cmFuc2x1Y2VudF09XCJ0cnVlXCI+XHJcbiAgPGlvbi10b29sYmFyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2lvbi10b29sYmFyPlxyXG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy1jb250YWluZXI+XHJcbjwvaW9uLWhlYWRlcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gIDxpb24tdGl0bGUgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCI+e3twcm9wcy5sYWJlbH19PC9pb24tdGl0bGU+XHJcblxyXG4gIDxpb24tYnV0dG9uIHNsb3Q9XCJlbmRcIiAoY2xpY2spPVwiZXhwb3J0RGF0YSgpXCIgZmlsbD1cImNsZWFyXCIgW2Rpc2FibGVkXT1cInByb3BzLmRpc2FibGVkXCIgKm5nSWY9XCJleHBvcnREYXRhUHJvcFwiPlxyXG4gICAgPGlvbi1pY29uIG5hbWU9XCJjbG91ZC1kb3dubG9hZC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICA8L2lvbi1idXR0b24+XHJcblxyXG4gIDxpb24tYnV0dG9uIHNsb3Q9XCJlbmRcIiAoY2xpY2spPVwiaW1wb3J0RGF0YSgpXCIgZmlsbD1cImNsZWFyXCIgW2Rpc2FibGVkXT1cInByb3BzLmRpc2FibGVkXCIgKm5nSWY9XCJpbXBvcnREYXRhUHJvcFwiPlxyXG4gICAgPGlvbi1pY29uIG5hbWU9XCJjbG91ZC11cGxvYWQtb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG4gIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgYWNjZXB0PVwiLnhsc3gsLnhscywuY3N2XCIgKGNoYW5nZSk9XCJoYW5kbGVJbXBvcnRGaWxlKCRldmVudClcIj5cclxuXHJcbiAgPGlvbi1idXR0b24gc2xvdD1cImVuZFwiIChjbGljayk9XCJhZGQoKVwiIGZpbGw9XCJjbGVhclwiIFtkaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZFwiPlxyXG4gICAgPGlvbi1pY29uIHNpemU9XCJsYXJnZVwiIG5hbWU9XCJhZGRcIj48L2lvbi1pY29uPlxyXG4gIDwvaW9uLWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48aW9uLWxpc3QgbGluZXM9XCJmdWxsXCI+XHJcbiAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtYmFzZWxpbmVcIj5cclxuICAgIDxmb3JtbHktZmllbGQgY2xhc3M9XCJmb3JtbHktaW9uLWxpc3QtaXRlbVwiIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LWZpZWxkPlxyXG4gICAgPGlvbi1idXR0b24gW2Rpc2FibGVkXT1cInByb3BzLmRpc2FibGVkXCIgY29sb3I9XCJkYW5nZXJcIiBzbG90PVwiZW5kXCIgKGNsaWNrKT0ncmVtb3ZlKGkpJz5cclxuICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwidHJhc2hcIj48L2lvbi1pY29uPlxyXG4gICAgPC9pb24tYnV0dG9uPlxyXG4gIDwvaW9uLWl0ZW0+XHJcbjwvaW9uLWxpc3Q+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNzZWFyY2g+XHJcbiAgPGlvbi10b29sYmFyICpuZ0lmPVwic2hvd1NlcmFjaFwiPlxyXG4gICAgPGlvbi1zZWFyY2hiYXIgW2RlYm91bmNlXT1cIjEwMDBcIiAoaW9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCI+PC9pb24tc2VhcmNoYmFyPlxyXG4gIDwvaW9uLXRvb2xiYXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './must-match';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi92YWxpZGF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tdXN0LW1hdGNoJztcclxuIl19
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export function fieldMatchValidator(control) {
|
2
|
+
const { password, confirmPassword } = control.value;
|
3
|
+
// avoid displaying the message error when values are empty
|
4
|
+
if (!confirmPassword || !password) {
|
5
|
+
return null;
|
6
|
+
}
|
7
|
+
if (confirmPassword === password) {
|
8
|
+
return null;
|
9
|
+
}
|
10
|
+
return { fieldMatch: { message: 'Fields.Not.Matching' } };
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVzdC1tYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9pb25pYy9zcmMvbGliL3ZhbGlkYXRvcnMvbXVzdC1tYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBd0I7SUFDeEQsTUFBTSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRXBELDJEQUEyRDtJQUMzRCxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLGVBQWUsS0FBSyxRQUFRLEVBQUU7UUFDOUIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZE1hdGNoVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnN0IHsgcGFzc3dvcmQsIGNvbmZpcm1QYXNzd29yZCB9ID0gY29udHJvbC52YWx1ZTtcblxuICAgIC8vIGF2b2lkIGRpc3BsYXlpbmcgdGhlIG1lc3NhZ2UgZXJyb3Igd2hlbiB2YWx1ZXMgYXJlIGVtcHR5XG4gICAgaWYgKCFjb25maXJtUGFzc3dvcmQgfHwgIXBhc3N3b3JkKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChjb25maXJtUGFzc3dvcmQgPT09IHBhc3N3b3JkKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7IGZpZWxkTWF0Y2g6IHsgbWVzc2FnZTogJ0ZpZWxkcy5Ob3QuTWF0Y2hpbmcnIH0gfTtcbn0iXX0=
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { Component } from '@angular/core';
|
2
|
+
import { FieldWrapper } from '@ngx-formly/core';
|
3
|
+
import { WrappersModule } from './wrappers.module';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@ionic/angular";
|
6
|
+
export class AccordionWrapperComponent extends FieldWrapper {
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: AccordionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: AccordionWrapperComponent, isStandalone: true, selector: "formly-accordion-panel", usesInheritance: true, ngImport: i0, template: `
|
9
|
+
|
10
|
+
<ion-accordion-group [value]="['first']">
|
11
|
+
<ion-accordion value="first">
|
12
|
+
<ion-item slot="header">
|
13
|
+
<ion-card-title>{{ props.label}}</ion-card-title>
|
14
|
+
</ion-item>
|
15
|
+
<div class="ion-padding" slot="content">
|
16
|
+
<ng-container #fieldComponent></ng-container>
|
17
|
+
</div>
|
18
|
+
</ion-accordion>
|
19
|
+
</ion-accordion-group>
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "component", type: i1.IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: i1.IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }] }); }
|
24
|
+
}
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: AccordionWrapperComponent, decorators: [{
|
26
|
+
type: Component,
|
27
|
+
args: [{
|
28
|
+
standalone: true,
|
29
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
30
|
+
selector: 'formly-accordion-panel',
|
31
|
+
template: `
|
32
|
+
|
33
|
+
<ion-accordion-group [value]="['first']">
|
34
|
+
<ion-accordion value="first">
|
35
|
+
<ion-item slot="header">
|
36
|
+
<ion-card-title>{{ props.label}}</ion-card-title>
|
37
|
+
</ion-item>
|
38
|
+
<div class="ion-padding" slot="content">
|
39
|
+
<ng-container #fieldComponent></ng-container>
|
40
|
+
</div>
|
41
|
+
</ion-accordion>
|
42
|
+
</ion-accordion-group>
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
`,
|
47
|
+
imports: [WrappersModule]
|
48
|
+
}]
|
49
|
+
}] });
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9saWIvd3JhcHBlcnMvYWNjb3JkaW9uLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBd0JuRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsWUFBWTs4R0FBOUMseUJBQXlCO2tHQUF6Qix5QkFBeUIseUdBbEIxQjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsMkRBQ1MsY0FBYzs7MkZBRWIseUJBQXlCO2tCQXRCckMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztHQWVUO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmllbGRXcmFwcGVyIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IFdyYXBwZXJzTW9kdWxlIH0gZnJvbSAnLi93cmFwcGVycy5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnZm9ybWx5LWFjY29yZGlvbi1wYW5lbCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgPGlvbi1hY2NvcmRpb24tZ3JvdXAgIFt2YWx1ZV09XCJbJ2ZpcnN0J11cIj5cclxuICAgIDxpb24tYWNjb3JkaW9uIHZhbHVlPVwiZmlyc3RcIj5cclxuICAgICAgICA8aW9uLWl0ZW0gc2xvdD1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGU+e3sgcHJvcHMubGFiZWx9fTwvaW9uLWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzbG90PVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICNmaWVsZENvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvaW9uLWFjY29yZGlvbj5cclxuICA8L2lvbi1hY2NvcmRpb24tZ3JvdXA+XHJcblxyXG5cclxuICAgICAgICAgICAgXHJcbiAgYCxcclxuICBpbXBvcnRzOiBbV3JhcHBlcnNNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25XcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRXcmFwcGVyIHsgfVxyXG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './accordion-wrapper.component';
|
2
|
+
export * from './panel-wrapper.component';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi93cmFwcGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY29yZGlvbi13cmFwcGVyLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9wYW5lbC13cmFwcGVyLmNvbXBvbmVudCdcclxuXHJcbiJdfQ==
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { Component } from '@angular/core';
|
2
|
+
import { FieldWrapper } from '@ngx-formly/core';
|
3
|
+
import { WrappersModule } from './wrappers.module';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@ionic/angular";
|
6
|
+
export class PanelWrapperComponent extends FieldWrapper {
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PanelWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: PanelWrapperComponent, isStandalone: true, selector: "formly-wrapper-panel", usesInheritance: true, ngImport: i0, template: `
|
9
|
+
<ion-card>
|
10
|
+
<ion-card-header>
|
11
|
+
<ion-card-title>{{ props.label}}</ion-card-title>
|
12
|
+
</ion-card-header>
|
13
|
+
<ion-card-content>
|
14
|
+
<ng-container #fieldComponent></ng-container>
|
15
|
+
</ion-card-content>
|
16
|
+
</ion-card>
|
17
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }] }); }
|
18
|
+
}
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: PanelWrapperComponent, decorators: [{
|
20
|
+
type: Component,
|
21
|
+
args: [{
|
22
|
+
standalone: true,
|
23
|
+
selector: 'formly-wrapper-panel',
|
24
|
+
template: `
|
25
|
+
<ion-card>
|
26
|
+
<ion-card-header>
|
27
|
+
<ion-card-title>{{ props.label}}</ion-card-title>
|
28
|
+
</ion-card-header>
|
29
|
+
<ion-card-content>
|
30
|
+
<ng-container #fieldComponent></ng-container>
|
31
|
+
</ion-card-content>
|
32
|
+
</ion-card>
|
33
|
+
`,
|
34
|
+
imports: [WrappersModule]
|
35
|
+
}]
|
36
|
+
}] });
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi93cmFwcGVycy9wYW5lbC13cmFwcGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQWlCbkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQVk7OEdBQTFDLHFCQUFxQjtrR0FBckIscUJBQXFCLHVHQVp0Qjs7Ozs7Ozs7O0dBU1QsMkRBQ1MsY0FBYzs7MkZBRWIscUJBQXFCO2tCQWZqQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkV3JhcHBlciB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgV3JhcHBlcnNNb2R1bGUgfSBmcm9tICcuL3dyYXBwZXJzLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2Zvcm1seS13cmFwcGVyLXBhbmVsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNhcmQ+XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGU+e3sgcHJvcHMubGFiZWx9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyICNmaWVsZENvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICBgLFxuICBpbXBvcnRzOiBbV3JhcHBlcnNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEZpZWxkV3JhcHBlciB7IH1cbiJdfQ==
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
4
|
+
import { IonicModule } from '@ionic/angular';
|
5
|
+
import { FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';
|
6
|
+
import { FormlyIonicModule } from '@ngx-formly/ionic';
|
7
|
+
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
8
|
+
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
|
9
|
+
import { registerTranslateExtension } from '../translate.extension';
|
10
|
+
import * as i0 from "@angular/core";
|
11
|
+
const COMMON_MODULES = [
|
12
|
+
CommonModule,
|
13
|
+
IonicModule,
|
14
|
+
ReactiveFormsModule,
|
15
|
+
FormlyIonicModule,
|
16
|
+
NgxDatatableModule
|
17
|
+
];
|
18
|
+
export class WrappersModule {
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: WrappersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
20
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: WrappersModule, imports: [CommonModule,
|
21
|
+
IonicModule,
|
22
|
+
ReactiveFormsModule,
|
23
|
+
FormlyIonicModule,
|
24
|
+
NgxDatatableModule, TranslateModule], exports: [CommonModule,
|
25
|
+
IonicModule,
|
26
|
+
ReactiveFormsModule,
|
27
|
+
FormlyIonicModule,
|
28
|
+
NgxDatatableModule, FormlyModule,
|
29
|
+
TranslateModule] }); }
|
30
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: WrappersModule, providers: [
|
31
|
+
{ provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },
|
32
|
+
], imports: [COMMON_MODULES, TranslateModule, CommonModule,
|
33
|
+
IonicModule,
|
34
|
+
ReactiveFormsModule,
|
35
|
+
FormlyIonicModule,
|
36
|
+
NgxDatatableModule, FormlyModule,
|
37
|
+
TranslateModule] }); }
|
38
|
+
}
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: WrappersModule, decorators: [{
|
40
|
+
type: NgModule,
|
41
|
+
args: [{
|
42
|
+
imports: [
|
43
|
+
...COMMON_MODULES,
|
44
|
+
TranslateModule
|
45
|
+
],
|
46
|
+
providers: [
|
47
|
+
{ provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },
|
48
|
+
],
|
49
|
+
exports: [
|
50
|
+
...COMMON_MODULES,
|
51
|
+
FormlyModule,
|
52
|
+
TranslateModule
|
53
|
+
],
|
54
|
+
}]
|
55
|
+
}] });
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9saWIvd3JhcHBlcnMvd3JhcHBlcnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFcEUsTUFBTSxjQUFjLEdBQUc7SUFDckIsWUFBWTtJQUNaLFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtDQUNuQixDQUFDO0FBZ0JGLE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxZQXJCekIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGtCQUFrQixFQU1oQixlQUFlLGFBVmpCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixrQkFBa0IsRUFhaEIsWUFBWTtZQUNaLGVBQWU7K0dBR04sY0FBYyxhQVRkO1lBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7U0FDMUcsWUFMSSxjQUFjLEVBQ2pCLGVBQWUsRUFWakIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGtCQUFrQixFQWFoQixZQUFZO1lBQ1osZUFBZTs7MkZBR04sY0FBYztrQkFkMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxjQUFjO3dCQUNqQixlQUFlO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7cUJBQzFHO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLGNBQWM7d0JBQ2pCLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEZPUk1MWV9DT05GSUcsIEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5SW9uaWNNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9pb25pYyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcbmltcG9ydCB7IHJlZ2lzdGVyVHJhbnNsYXRlRXh0ZW5zaW9uIH0gZnJvbSAnLi4vdHJhbnNsYXRlLmV4dGVuc2lvbic7XG5cbmNvbnN0IENPTU1PTl9NT0RVTEVTID0gW1xuICBDb21tb25Nb2R1bGUsXG4gIElvbmljTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBGb3JtbHlJb25pY01vZHVsZSxcbiAgTmd4RGF0YXRhYmxlTW9kdWxlXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgLi4uQ09NTU9OX01PRFVMRVMsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRk9STUxZX0NPTkZJRywgbXVsdGk6IHRydWUsIHVzZUZhY3Rvcnk6IHJlZ2lzdGVyVHJhbnNsYXRlRXh0ZW5zaW9uLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC4uLkNPTU1PTl9NT0RVTEVTLFxuICAgIEZvcm1seU1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV3JhcHBlcnNNb2R1bGUgeyB9XG4iXX0=
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/*
|
2
|
+
* Public API Surface of ionic
|
3
|
+
*/
|
4
|
+
export * from './lib/components';
|
5
|
+
export * from './lib/decorators';
|
6
|
+
export * from './lib/interfaces';
|
7
|
+
export * from './lib/ionic-dialog.service';
|
8
|
+
export * from './lib/translate.extension';
|
9
|
+
export * from './lib/types';
|
10
|
+
export * from './lib/validators';
|
11
|
+
export * from './lib/wrappers';
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9pb25pYy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGlvbmljXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWNvcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW9uaWMtZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJhbnNsYXRlLmV4dGVuc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dyYXBwZXJzJztcblxuIl19
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './public-api';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zb2Z0bGFiLWlvbmljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9yb3NvZnRsYWItaW9uaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|