@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.
Files changed (48) hide show
  1. package/README.md +27 -0
  2. package/esm2022/lib/components/index.mjs +4 -0
  3. package/esm2022/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.mjs +266 -0
  4. package/esm2022/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.mjs +292 -0
  5. package/esm2022/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.mjs +269 -0
  6. package/esm2022/lib/decorators/index.mjs +3 -0
  7. package/esm2022/lib/decorators/ionic-datatable-layout.mjs +10 -0
  8. package/esm2022/lib/decorators/ionic-list.decorator.mjs +9 -0
  9. package/esm2022/lib/interfaces/index.mjs +2 -0
  10. package/esm2022/lib/interfaces/ionic-list-layout-config.mjs +2 -0
  11. package/esm2022/lib/ionic-dialog.service.mjs +51 -0
  12. package/esm2022/lib/rsl-ionic-module.module.mjs +86 -0
  13. package/esm2022/lib/translate.extension.mjs +48 -0
  14. package/esm2022/lib/types/index.mjs +2 -0
  15. package/esm2022/lib/types/repeat/repeat-section.type.mjs +135 -0
  16. package/esm2022/lib/validators/index.mjs +2 -0
  17. package/esm2022/lib/validators/must-match.mjs +12 -0
  18. package/esm2022/lib/wrappers/accordion-wrapper.component.mjs +50 -0
  19. package/esm2022/lib/wrappers/index.mjs +3 -0
  20. package/esm2022/lib/wrappers/panel-wrapper.component.mjs +37 -0
  21. package/esm2022/lib/wrappers/wrappers.module.mjs +56 -0
  22. package/esm2022/public-api.mjs +12 -0
  23. package/esm2022/rosoftlab-ionic.mjs +5 -0
  24. package/fesm2022/rosoftlab-ionic.mjs +1251 -0
  25. package/fesm2022/rosoftlab-ionic.mjs.map +1 -0
  26. package/index.d.ts +5 -0
  27. package/lib/components/index.d.ts +3 -0
  28. package/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.d.ts +69 -0
  29. package/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.d.ts +66 -0
  30. package/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.d.ts +58 -0
  31. package/lib/decorators/index.d.ts +2 -0
  32. package/lib/decorators/ionic-datatable-layout.d.ts +7 -0
  33. package/lib/decorators/ionic-list.decorator.d.ts +2 -0
  34. package/lib/interfaces/index.d.ts +1 -0
  35. package/lib/interfaces/ionic-list-layout-config.d.ts +8 -0
  36. package/lib/ionic-dialog.service.d.ts +10 -0
  37. package/lib/rsl-ionic-module.module.d.ts +13 -0
  38. package/lib/translate.extension.d.ts +17 -0
  39. package/lib/types/index.d.ts +1 -0
  40. package/lib/types/repeat/repeat-section.type.d.ts +51 -0
  41. package/lib/validators/index.d.ts +1 -0
  42. package/lib/validators/must-match.d.ts +6 -0
  43. package/lib/wrappers/accordion-wrapper.component.d.ts +6 -0
  44. package/lib/wrappers/index.d.ts +2 -0
  45. package/lib/wrappers/panel-wrapper.component.d.ts +6 -0
  46. package/lib/wrappers/wrappers.module.d.ts +13 -0
  47. package/package.json +31 -0
  48. 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==