@rosoftlab/ionic 1.0.0-alpha-17 → 1.0.1-alpha-2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. package/fesm2022/rosoftlab-ionic.mjs +41 -43
  2. package/fesm2022/rosoftlab-ionic.mjs.map +1 -1
  3. package/package.json +4 -6
  4. package/esm2022/lib/components/index.mjs +0 -5
  5. package/esm2022/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.mjs +0 -266
  6. package/esm2022/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.mjs +0 -292
  7. package/esm2022/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.mjs +0 -269
  8. package/esm2022/lib/components/rsl-ionic-sm-buttons/ionic-sm-buttons.component.mjs +0 -65
  9. package/esm2022/lib/decorators/index.mjs +0 -3
  10. package/esm2022/lib/decorators/ionic-datatable-layout.mjs +0 -10
  11. package/esm2022/lib/decorators/ionic-list.decorator.mjs +0 -9
  12. package/esm2022/lib/interfaces/index.mjs +0 -2
  13. package/esm2022/lib/interfaces/ionic-list-layout-config.mjs +0 -2
  14. package/esm2022/lib/ionic-dialog.service.mjs +0 -51
  15. package/esm2022/lib/rsl-ionic-module.module.mjs +0 -96
  16. package/esm2022/lib/translate.extension.mjs +0 -48
  17. package/esm2022/lib/types/index.mjs +0 -2
  18. package/esm2022/lib/types/repeat/repeat-section.type.mjs +0 -135
  19. package/esm2022/lib/types/repeat-datatable/repeat-datatable.component.mjs +0 -190
  20. package/esm2022/lib/validators/index.mjs +0 -2
  21. package/esm2022/lib/validators/must-match.mjs +0 -12
  22. package/esm2022/lib/wrappers/accordion-wrapper.component.mjs +0 -50
  23. package/esm2022/lib/wrappers/index.mjs +0 -3
  24. package/esm2022/lib/wrappers/panel-wrapper.component.mjs +0 -37
  25. package/esm2022/lib/wrappers/wrappers.module.mjs +0 -59
  26. package/esm2022/public-api.mjs +0 -12
  27. package/esm2022/rosoftlab-ionic.mjs +0 -5
@@ -1,269 +0,0 @@
1
- import { DatePipe, DecimalPipe, Location, PercentPipe } from '@angular/common';
2
- import { Component, Injector, Input } from '@angular/core';
3
- import { ActivatedRoute, NavigationStart, Router, UrlSegment } from '@angular/router';
4
- import { LoadingController, NavController } from '@ionic/angular';
5
- import { TranslateService } from '@ngx-translate/core';
6
- import { GridLayoutFormat } from '@rosoftlab/core';
7
- import * as jsonLogic from 'json-logic-js/logic.js';
8
- import { IonicDialogService } from '../../ionic-dialog.service';
9
- import { RslIonicModuleModule } from '../../rsl-ionic-module.module';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/router";
12
- import * as i2 from "@ngx-translate/core";
13
- import * as i3 from "@angular/common";
14
- import * as i4 from "@ionic/angular";
15
- import * as i5 from "../../ionic-dialog.service";
16
- export class RslIonicGridComponent {
17
- constructor(router, route, translate, location, injector, loadingCtrl, navCtrl, dialogService, datePipe, numberPipe, percentPipe) {
18
- this.router = router;
19
- this.route = route;
20
- this.translate = translate;
21
- this.location = location;
22
- this.injector = injector;
23
- this.loadingCtrl = loadingCtrl;
24
- this.navCtrl = navCtrl;
25
- this.dialogService = dialogService;
26
- this.datePipe = datePipe;
27
- this.numberPipe = numberPipe;
28
- this.percentPipe = percentPipe;
29
- this.data = [];
30
- this.pageIndex = 1;
31
- this.pageSize = 30;
32
- }
33
- ngOnInit() {
34
- this.setValueFromSnapshot(this, this.route.snapshot, 'showSerach', false);
35
- this.setValueFromSnapshot(this, this.route.snapshot, 'searchFields', null);
36
- this.setValueFromSnapshot(this, this.route.snapshot, 'customInclude', null);
37
- this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSort', null);
38
- this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSortDirection', '');
39
- this.setValueFromSnapshot(this, this.route.snapshot, 'deletePropertyName', 'name');
40
- this.setValueFromSnapshot(this, this.route.snapshot, 'defaultFilter', null);
41
- this.setValueFromSnapshot(this, this.route.snapshot, 'showHeader', true);
42
- this.setValueFromSnapshot(this, this.route.snapshot, 'deleteDisableRule', null);
43
- // this.showSerach = route.snapshot.data['showSerach'] || false;
44
- // this.searchFields = this.route.snapshot.data['searchFields'] || null;
45
- // this.customInclude = this.route.snapshot.data['customInclude'] || null;
46
- // this.defaultSort = this.route.snapshot.data['defaultSort'] || null;
47
- // this.defaultSortDirection = this.route.snapshot.data['defaultSortDirection'] || '';
48
- // this.deletePropertyName = this.route.snapshot.data['deletePropertyName'] || 'name';
49
- // this.defaultFilter = this.route.snapshot.data['defaultFilter'] || null;
50
- if (!this.modelService) {
51
- const SERVICE_TOKEN = this.route.snapshot.data['requiredService'];
52
- this.modelService = this.injector.get(SERVICE_TOKEN);
53
- }
54
- this.model = this.modelService.newModel();
55
- this.title = this.model.modelConfig.formTitle;
56
- this.getListLayout();
57
- const currentUrlSegments = this.router.url.split('/').map(segment => new UrlSegment(segment, {}));
58
- this.basePath = currentUrlSegments.map(segment => segment.path).join('/');
59
- this.router.events.subscribe(event => {
60
- if (event instanceof NavigationStart) {
61
- // Navigation to another page is about to occur
62
- this.data = [];
63
- this.pageIndex = 1;
64
- // Perform actions or update component as needed
65
- }
66
- });
67
- }
68
- setValueFromSnapshot(component, snapshot, key, defaultValue) {
69
- if (component[key] === undefined) {
70
- let dataFromSnapshot = snapshot.data[key];
71
- if (!dataFromSnapshot)
72
- dataFromSnapshot = snapshot.params[key];
73
- component[key] = dataFromSnapshot !== undefined ? dataFromSnapshot : defaultValue;
74
- }
75
- }
76
- async ionViewWillEnter() {
77
- this.data = [];
78
- const loading = await this.loadingCtrl.create({
79
- message: this.translate.instant('General.Loading'),
80
- spinner: 'circles',
81
- });
82
- loading.present();
83
- this.loadData(null, null, loading);
84
- }
85
- async handleChange(event) {
86
- const loading = await this.loadingCtrl.create({
87
- message: this.translate.instant('General.Loading'),
88
- spinner: 'circles',
89
- });
90
- loading.present();
91
- const query = event.target.value.toLowerCase();
92
- this.pageIndex = 1;
93
- this.loadData(null, query, loading);
94
- // this.results = this.data.filter((d) => d.toLowerCase().indexOf(query) > -1);
95
- }
96
- loadData(event = null, filterValue = undefined, loading = null) {
97
- const filters = [];
98
- let sorts = '';
99
- if (this.defaultSort) {
100
- if (this.defaultSortDirection === 'desc') {
101
- sorts = '-' + this.defaultSort;
102
- }
103
- else {
104
- sorts = this.defaultSort;
105
- }
106
- }
107
- if (this.showSerach) {
108
- if (filterValue) {
109
- const y = '(' + this.searchFields.replace(',', '|') + ')';
110
- filters.push(y + '@=*' + filterValue);
111
- }
112
- }
113
- if (this.defaultFilter) {
114
- filters.push(this.defaultFilter);
115
- }
116
- setTimeout(() => {
117
- const filtersValue = filters.join(', ');
118
- this.modelService.getAll(this.pageIndex, this.pageSize, sorts, filtersValue, this.customInclude).subscribe((response) => {
119
- if (this.pageIndex !== response.getMeta().meta.count) {
120
- this.pageIndex++;
121
- }
122
- else {
123
- if (event)
124
- event.target.disabled = true;
125
- }
126
- if (filterValue || loading)
127
- this.data = response.getModels();
128
- else
129
- this.data = this.data.concat(response.getModels());
130
- if (event)
131
- event.target.complete();
132
- if (loading)
133
- loading.dismiss();
134
- });
135
- }, 700);
136
- }
137
- async handleRefresh(event) {
138
- const loading = await this.loadingCtrl.create({
139
- message: this.translate.instant('General.Loading'),
140
- spinner: 'circles',
141
- });
142
- loading.present();
143
- this.pageIndex = 1;
144
- this.loadData(null, null, loading);
145
- event.target.complete();
146
- }
147
- onAdd() {
148
- console.log(this.basePath);
149
- this.navCtrl.navigateForward(this.basePath + '/add');
150
- }
151
- editModel(model) {
152
- this.navCtrl.navigateForward(this.basePath + '/edit/' + model.id);
153
- }
154
- getListLayout() {
155
- if (!this.model) {
156
- this.model = this.modelService.newModel();
157
- }
158
- this.gridLayout = Reflect.getMetadata('IonicListLayout', this.model);
159
- }
160
- deleteModel(model) {
161
- const msg = 'Do you want to delete ' + model[this.deletePropertyName] + '?';
162
- this.dialogService.confirm(msg).then((value) => {
163
- if (value.data) {
164
- this.modelService.delete(model.id).subscribe(() => {
165
- const tempData = [];
166
- // this.selectedObject.emit(null);
167
- this.data.map((item) => {
168
- if (item.id !== model.id) {
169
- tempData.push(item);
170
- }
171
- });
172
- this.data = tempData;
173
- });
174
- }
175
- });
176
- }
177
- getCelValue(row, propertyName) {
178
- if (!row)
179
- return "";
180
- // if (propertyName == 'kompetenzenStdev')
181
- // console.log(propertyName);
182
- if (propertyName.indexOf('.') === -1) {
183
- var gridLayout = this.gridLayout.find(f => f.key.indexOf(propertyName) > -1);
184
- return this.getFormatedValue(gridLayout, row[propertyName]);
185
- }
186
- else {
187
- const prop = propertyName.split('.')[0];
188
- const subProp = propertyName.replace(prop + '.', '');
189
- return this.getCelValue(row[prop], subProp);
190
- }
191
- }
192
- getFormatedValue(gridLayout, value) {
193
- if (gridLayout) {
194
- switch (gridLayout.formating) {
195
- case GridLayoutFormat.date:
196
- return this.datePipe.transform(value, gridLayout.customFormat);
197
- break;
198
- case GridLayoutFormat.number:
199
- return this.numberPipe.transform(value, gridLayout.customFormat);
200
- case GridLayoutFormat.percent:
201
- const valuePrc = value / 100;
202
- return this.percentPipe.transform(valuePrc, gridLayout.customFormat);
203
- default:
204
- return value;
205
- break;
206
- }
207
- }
208
- return value;
209
- }
210
- deleteEnabled(model) {
211
- if (this.deleteDisableRule) {
212
- return this.evaluateRule(this.deleteDisableRule, model);
213
- }
214
- else {
215
- return true;
216
- }
217
- }
218
- evaluateRule(rules, model) {
219
- let result = true;
220
- rules.forEach(rule => {
221
- let jsonRule;
222
- if (typeof rule.rule === 'string') {
223
- jsonRule = JSON.parse(rule.rule);
224
- }
225
- else {
226
- jsonRule = rule.rule;
227
- }
228
- if (rule.parameters) {
229
- const data = '{' + rule.parameters.map((item) => {
230
- return '"' + item + '":"' + model[item] + '"';
231
- }).join(',') + '}';
232
- result = jsonLogic.apply(jsonRule, JSON.parse(data));
233
- }
234
- else {
235
- result = jsonLogic.apply(jsonRule);
236
- }
237
- });
238
- return result;
239
- }
240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslIonicGridComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.Location }, { token: i0.Injector }, { token: i4.LoadingController }, { token: i4.NavController }, { token: i5.IonicDialogService }, { token: i3.DatePipe }, { token: i3.DecimalPipe }, { token: i3.PercentPipe }], target: i0.ɵɵFactoryTarget.Component }); }
241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RslIonicGridComponent, isStandalone: true, selector: "rsl-ionic-grid", inputs: { showSerach: "showSerach", searchFields: "searchFields", customInclude: "customInclude", defaultSort: "defaultSort", defaultSortDirection: "defaultSortDirection", deletePropertyName: "deletePropertyName", defaultFilter: "defaultFilter", showHeader: "showHeader", deleteDisableRule: "deleteDisableRule", model: "model", modelService: "modelService" }, ngImport: i0, template: "<ion-header *ngIf=\"showHeader\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\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<ion-content [fullscreen]=\"true\">\r\n\r\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ion-list>\r\n <ng-container *ngFor=\"let item of data\">\r\n <ion-item-sliding>\r\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n <ion-item-options *ngIf=\"deleteEnabled(item)\" side=\"end\">\r\n <ion-item-option color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"trash\" (click)='deleteModel(item)'></ion-icon>\r\n </ion-item-option>\r\n </ion-item-options>\r\n </ion-item-sliding>\r\n </ng-container>\r\n </ion-list>\r\n <ion-infinite-scroll threshold=\"100px\" (ionInfinite)=\"loadData($event)\">\r\n <ion-infinite-scroll-content loadingSpinner=\"bubbles\" loadingText=\"Loading more data...\">\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\r\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\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>\r\n\r\n<ng-template #listItem let-item='item'>\r\n <ion-item button (click)='editModel(item)'>\r\n <ion-label>\r\n <ng-container *ngFor=\"let row of gridLayout\">\r\n <h2 *ngIf=\"row.primary\"> {{getCelValue(item,row.key)}} </h2>\r\n <h3 *ngIf=\"!row.primary\">{{getCelValue(item,row.key)}} </h3>\r\n </ng-container>\r\n </ion-label>\r\n </ion-item>\r\n</ng-template>", dependencies: [{ kind: "ngmodule", type: RslIonicModuleModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.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: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: i4.IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: i4.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: i4.IonItemOption, selector: "ion-item-option", inputs: ["color", "disabled", "download", "expandable", "href", "mode", "rel", "target", "type"] }, { kind: "component", type: i4.IonItemOptions, selector: "ion-item-options", inputs: ["side"] }, { kind: "component", type: i4.IonItemSliding, selector: "ion-item-sliding", inputs: ["disabled"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i4.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i4.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: i4.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "component", type: i4.IonBackButton, selector: "ion-back-button" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
242
- }
243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslIonicGridComponent, decorators: [{
244
- type: Component,
245
- args: [{ standalone: true, selector: 'rsl-ionic-grid', imports: [RslIonicModuleModule], template: "<ion-header *ngIf=\"showHeader\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\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<ion-content [fullscreen]=\"true\">\r\n\r\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ion-list>\r\n <ng-container *ngFor=\"let item of data\">\r\n <ion-item-sliding>\r\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n <ion-item-options *ngIf=\"deleteEnabled(item)\" side=\"end\">\r\n <ion-item-option color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"trash\" (click)='deleteModel(item)'></ion-icon>\r\n </ion-item-option>\r\n </ion-item-options>\r\n </ion-item-sliding>\r\n </ng-container>\r\n </ion-list>\r\n <ion-infinite-scroll threshold=\"100px\" (ionInfinite)=\"loadData($event)\">\r\n <ion-infinite-scroll-content loadingSpinner=\"bubbles\" loadingText=\"Loading more data...\">\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\r\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\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>\r\n\r\n<ng-template #listItem let-item='item'>\r\n <ion-item button (click)='editModel(item)'>\r\n <ion-label>\r\n <ng-container *ngFor=\"let row of gridLayout\">\r\n <h2 *ngIf=\"row.primary\"> {{getCelValue(item,row.key)}} </h2>\r\n <h3 *ngIf=\"!row.primary\">{{getCelValue(item,row.key)}} </h3>\r\n </ng-container>\r\n </ion-label>\r\n </ion-item>\r\n</ng-template>" }]
246
- }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.Location }, { type: i0.Injector }, { type: i4.LoadingController }, { type: i4.NavController }, { type: i5.IonicDialogService }, { type: i3.DatePipe }, { type: i3.DecimalPipe }, { type: i3.PercentPipe }], propDecorators: { showSerach: [{
247
- type: Input
248
- }], searchFields: [{
249
- type: Input
250
- }], customInclude: [{
251
- type: Input
252
- }], defaultSort: [{
253
- type: Input
254
- }], defaultSortDirection: [{
255
- type: Input
256
- }], deletePropertyName: [{
257
- type: Input
258
- }], defaultFilter: [{
259
- type: Input
260
- }], showHeader: [{
261
- type: Input
262
- }], deleteDisableRule: [{
263
- type: Input
264
- }], model: [{
265
- type: Input
266
- }], modelService: [{
267
- type: Input
268
- }] } });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnNsLWlvbmljLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9saWIvY29tcG9uZW50cy9yc2wtaW9uaWMtZ3JpZC9yc2wtaW9uaWMtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi9jb21wb25lbnRzL3JzbC1pb25pYy1ncmlkL3JzbC1pb25pYy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBMEIsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUE4QixnQkFBZ0IsRUFBUSxNQUFNLGlCQUFpQixDQUFDO0FBRXJGLE9BQU8sS0FBSyxTQUFTLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7QUFRckUsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFDUyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsU0FBMkIsRUFDM0IsUUFBa0IsRUFDakIsUUFBa0IsRUFD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QUFJLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQ25CLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OEdBcFBVLHFCQUFxQjtrR0FBckIscUJBQXFCLGtiQ2xCbEMsNnRFQTBEYywyQ0QxQ0Ysb0JBQW9COzsyRkFFbkIscUJBQXFCO2tCQU5qQyxTQUFTO2lDQUNJLElBQUksWUFDTixnQkFBZ0IsV0FFakIsQ0FBQyxvQkFBb0IsQ0FBQzs2VkFJdEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSwgRGVjaW1hbFBpcGUsIExvY2F0aW9uLCBQZXJjZW50UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyLCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9hZGluZ0NvbnRyb2xsZXIsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVF1ZXJ5RGF0YSwgQmFzZVNlcnZpY2UsIEdyaWRMYXlvdXRGb3JtYXQsIFJ1bGUgfSBmcm9tICdAcm9zb2Z0bGFiL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlTW9kZWxGb3JtbHkgfSBmcm9tICdAcm9zb2Z0bGFiL2Zvcm1seSc7XHJcbmltcG9ydCAqIGFzIGpzb25Mb2dpYyBmcm9tICdqc29uLWxvZ2ljLWpzL2xvZ2ljLmpzJztcclxuaW1wb3J0IHsgSW9uaWNMaXN0TGF5b3V0Q29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IElvbmljRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2lvbmljLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUnNsSW9uaWNNb2R1bGVNb2R1bGUgfSBmcm9tICcuLi8uLi9yc2wtaW9uaWMtbW9kdWxlLm1vZHVsZSc7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgU29ydERpcmVjdGlvbiA9ICdhc2MnIHwgJ2Rlc2MnIHwgJyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdyc2wtaW9uaWMtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JzbC1pb25pYy1ncmlkLmNvbXBvbmVudC5odG1sJywgIFxyXG4gIGltcG9ydHM6IFtSc2xJb25pY01vZHVsZU1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSc2xJb25pY0dyaWRDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VNb2RlbEZvcm1seSwgVSBleHRlbmRzIEJhc2VTZXJ2aWNlPFQ+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd1NlcmFjaDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWFyY2hGaWVsZHM6IHN0cmluZztcclxuICBASW5wdXQoKSBjdXN0b21JbmNsdWRlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVmYXVsdFNvcnQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkZWZhdWx0U29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcclxuICBASW5wdXQoKSBkZWxldGVQcm9wZXJ0eU5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBkZWZhdWx0RmlsdGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0hlYWRlcjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGVEaXNhYmxlUnVsZTogUnVsZVtdO1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBUO1xyXG4gIEBJbnB1dCgpIG1vZGVsU2VydmljZTogVVxyXG5cclxuICBkYXRhOiBhbnlbXSA9IFtdO1xyXG4gIHBhZ2VJbmRleDogbnVtYmVyID0gMTtcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gMzBcclxuXHJcbiAgZ3JpZExheW91dDogSW9uaWNMaXN0TGF5b3V0Q29uZmlnW11cclxuICBiYXNlUGF0aDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGxvYWRpbmdDdHJsOiBMb2FkaW5nQ29udHJvbGxlcixcclxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcclxuICAgIHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBJb25pY0RpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgbnVtYmVyUGlwZTogRGVjaW1hbFBpcGUsXHJcbiAgICBwcml2YXRlIHBlcmNlbnRQaXBlOiBQZXJjZW50UGlwZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlRnJvbVNuYXBzaG90KHRoaXMsIHRoaXMucm91dGUuc25hcHNob3QsICdzaG93U2VyYWNoJywgZmFsc2UpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZUZyb21TbmFwc2hvdCh0aGlzLCB0aGlzLnJvdXRlLnNuYXBzaG90LCAnc2VhcmNoRmllbGRzJywgbnVsbCk7XHJcbiAgICB0aGlzLnNldFZhbHVlRnJvbVNuYXBzaG90KHRoaXMsIHRoaXMucm91dGUuc25hcHNob3QsICdjdXN0b21JbmNsdWRlJywgbnVsbCk7XHJcbiAgICB0aGlzLnNldFZhbHVlRnJvbVNuYXBzaG90KHRoaXMsIHRoaXMucm91dGUuc25hcHNob3QsICdkZWZhdWx0U29ydCcsIG51bGwpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZUZyb21TbmFwc2hvdCh0aGlzLCB0aGlzLnJvdXRlLnNuYXBzaG90LCAnZGVmYXVsdFNvcnREaXJlY3Rpb24nLCAnJyk7XHJcbiAgICB0aGlzLnNldFZhbHVlRnJvbVNuYXBzaG90KHRoaXMsIHRoaXMucm91dGUuc25hcHNob3QsICdkZWxldGVQcm9wZXJ0eU5hbWUnLCAnbmFtZScpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZUZyb21TbmFwc2hvdCh0aGlzLCB0aGlzLnJvdXRlLnNuYXBzaG90LCAnZGVmYXVsdEZpbHRlcicsIG51bGwpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZUZyb21TbmFwc2hvdCh0aGlzLCB0aGlzLnJvdXRlLnNuYXBzaG90LCAnc2hvd0hlYWRlcicsIHRydWUpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZUZyb21TbmFwc2hvdCh0aGlzLCB0aGlzLnJvdXRlLnNuYXBzaG90LCAnZGVsZXRlRGlzYWJsZVJ1bGUnLCBudWxsKTtcclxuXHJcbiAgICAvLyB0aGlzLnNob3dTZXJhY2ggPSByb3V0ZS5zbmFwc2hvdC5kYXRhWydzaG93U2VyYWNoJ10gfHwgZmFsc2U7XHJcbiAgICAvLyB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnc2VhcmNoRmllbGRzJ10gfHwgbnVsbDtcclxuXHJcbiAgICAvLyB0aGlzLmN1c3RvbUluY2x1ZGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2N1c3RvbUluY2x1ZGUnXSB8fCBudWxsO1xyXG5cclxuICAgIC8vIHRoaXMuZGVmYXVsdFNvcnQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2RlZmF1bHRTb3J0J10gfHwgbnVsbDtcclxuICAgIC8vIHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24gPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2RlZmF1bHRTb3J0RGlyZWN0aW9uJ10gfHwgJyc7XHJcblxyXG4gICAgLy8gdGhpcy5kZWxldGVQcm9wZXJ0eU5hbWUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2RlbGV0ZVByb3BlcnR5TmFtZSddIHx8ICduYW1lJztcclxuICAgIC8vIHRoaXMuZGVmYXVsdEZpbHRlciA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnZGVmYXVsdEZpbHRlciddIHx8IG51bGw7XHJcblxyXG4gICAgaWYgKCF0aGlzLm1vZGVsU2VydmljZSkge1xyXG4gICAgICBjb25zdCBTRVJWSUNFX1RPS0VOID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydyZXF1aXJlZFNlcnZpY2UnXTtcclxuICAgICAgdGhpcy5tb2RlbFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxVPig8YW55PlNFUlZJQ0VfVE9LRU4pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMubW9kZWxTZXJ2aWNlLm5ld01vZGVsKClcclxuICAgIHRoaXMudGl0bGUgPSB0aGlzLm1vZGVsLm1vZGVsQ29uZmlnLmZvcm1UaXRsZVxyXG4gICAgdGhpcy5nZXRMaXN0TGF5b3V0KClcclxuXHJcbiAgICBjb25zdCBjdXJyZW50VXJsU2VnbWVudHM6IFVybFNlZ21lbnRbXSA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnLycpLm1hcChzZWdtZW50ID0+IG5ldyBVcmxTZWdtZW50KHNlZ21lbnQsIHt9KSk7XHJcbiAgICB0aGlzLmJhc2VQYXRoID0gY3VycmVudFVybFNlZ21lbnRzLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgIC8vIE5hdmlnYXRpb24gdG8gYW5vdGhlciBwYWdlIGlzIGFib3V0IHRvIG9jY3VyXHJcbiAgICAgICAgdGhpcy5kYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSAxXHJcbiAgICAgICAgLy8gUGVyZm9ybSBhY3Rpb25zIG9yIHVwZGF0ZSBjb21wb25lbnQgYXMgbmVlZGVkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRWYWx1ZUZyb21TbmFwc2hvdDxUPihjb21wb25lbnQ6IGFueSwgc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiB2b2lkIHtcclxuICAgIGlmIChjb21wb25lbnRba2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBkYXRhRnJvbVNuYXBzaG90ID0gc25hcHNob3QuZGF0YVtrZXldO1xyXG4gICAgICBpZiAoIWRhdGFGcm9tU25hcHNob3QpXHJcbiAgICAgICAgZGF0YUZyb21TbmFwc2hvdCA9IHNuYXBzaG90LnBhcmFtc1trZXldO1xyXG4gICAgICBjb21wb25lbnRba2V5XSA9IGRhdGFGcm9tU25hcHNob3QgIT09IHVuZGVmaW5lZCA/IGRhdGFGcm9tU25hcHNob3QgOiBkZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIGlvblZpZXdXaWxsRW50ZXIoKSB7XHJcbiAgICB0aGlzLmRhdGEgPSBbXTtcclxuICAgIGNvbnN0IGxvYWRpbmcgPSBhd2FpdCB0aGlzLmxvYWRpbmdDdHJsLmNyZWF0ZSh7XHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dlbmVyYWwuTG9hZGluZycpLFxyXG4gICAgICBzcGlubmVyOiAnY2lyY2xlcycsXHJcbiAgICB9KTtcclxuICAgIGxvYWRpbmcucHJlc2VudCgpO1xyXG4gICAgdGhpcy5sb2FkRGF0YShudWxsLCBudWxsLCBsb2FkaW5nKTtcclxuICB9XHJcbiAgYXN5bmMgaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBjb25zdCBsb2FkaW5nID0gYXdhaXQgdGhpcy5sb2FkaW5nQ3RybC5jcmVhdGUoe1xyXG4gICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHZW5lcmFsLkxvYWRpbmcnKSxcclxuICAgICAgc3Bpbm5lcjogJ2NpcmNsZXMnLFxyXG4gICAgfSk7XHJcbiAgICBsb2FkaW5nLnByZXNlbnQoKTtcclxuICAgIGNvbnN0IHF1ZXJ5ID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmRleCA9IDFcclxuICAgIHRoaXMubG9hZERhdGEobnVsbCwgcXVlcnksIGxvYWRpbmcpO1xyXG4gICAgLy8gdGhpcy5yZXN1bHRzID0gdGhpcy5kYXRhLmZpbHRlcigoZCkgPT4gZC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkpID4gLTEpO1xyXG4gIH1cclxuICBsb2FkRGF0YShldmVudCA9IG51bGwsIGZpbHRlclZhbHVlID0gdW5kZWZpbmVkLCBsb2FkaW5nID0gbnVsbCkge1xyXG4gICAgY29uc3QgZmlsdGVycyA9IFtdO1xyXG4gICAgbGV0IHNvcnRzID0gJyc7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0U29ydCkge1xyXG4gICAgICBpZiAodGhpcy5kZWZhdWx0U29ydERpcmVjdGlvbiA9PT0gJ2Rlc2MnKSB7XHJcbiAgICAgICAgc29ydHMgPSAnLScgKyB0aGlzLmRlZmF1bHRTb3J0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvcnRzID0gdGhpcy5kZWZhdWx0U29ydDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvd1NlcmFjaCkge1xyXG4gICAgICBpZiAoZmlsdGVyVmFsdWUpIHtcclxuICAgICAgICBjb25zdCB5ID0gJygnICsgdGhpcy5zZWFyY2hGaWVsZHMucmVwbGFjZSgnLCcsICd8JykgKyAnKSc7XHJcbiAgICAgICAgZmlsdGVycy5wdXNoKHkgKyAnQD0qJyArIGZpbHRlclZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpbHRlcikge1xyXG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5kZWZhdWx0RmlsdGVyKVxyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlcnNWYWx1ZSA9IGZpbHRlcnMuam9pbignLCAnKTtcclxuICAgICAgdGhpcy5tb2RlbFNlcnZpY2UuZ2V0QWxsKHRoaXMucGFnZUluZGV4LCB0aGlzLnBhZ2VTaXplLCBzb3J0cywgZmlsdGVyc1ZhbHVlLCB0aGlzLmN1c3RvbUluY2x1ZGUpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2U6IEJhc2VRdWVyeURhdGE8VD4pID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnBhZ2VJbmRleCAhPT0gcmVzcG9uc2UuZ2V0TWV0YSgpLm1ldGEuY291bnQpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXgrK1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50KSBldmVudC50YXJnZXQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGZpbHRlclZhbHVlIHx8IGxvYWRpbmcpXHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlLmdldE1vZGVscygpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuY29uY2F0KHJlc3BvbnNlLmdldE1vZGVscygpKTtcclxuXHJcbiAgICAgICAgICBpZiAoZXZlbnQpIGV2ZW50LnRhcmdldC5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgaWYgKGxvYWRpbmcpXHJcbiAgICAgICAgICAgIGxvYWRpbmcuZGlzbWlzcygpXHJcbiAgICAgICAgfSlcclxuICAgIH0sIDcwMCk7XHJcbiAgfVxyXG4gIGFzeW5jIGhhbmRsZVJlZnJlc2goZXZlbnQpIHtcclxuICAgIGNvbnN0IGxvYWRpbmcgPSBhd2FpdCB0aGlzLmxvYWRpbmdDdHJsLmNyZWF0ZSh7XHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dlbmVyYWwuTG9hZGluZycpLFxyXG4gICAgICBzcGlubmVyOiAnY2lyY2xlcycsXHJcbiAgICB9KTtcclxuICAgIGxvYWRpbmcucHJlc2VudCgpO1xyXG4gICAgdGhpcy5wYWdlSW5kZXggPSAxXHJcbiAgICB0aGlzLmxvYWREYXRhKG51bGwsIG51bGwsIGxvYWRpbmcpO1xyXG4gICAgZXZlbnQudGFyZ2V0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIG9uQWRkKCkge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5iYXNlUGF0aClcclxuICAgIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUZvcndhcmQodGhpcy5iYXNlUGF0aCArICcvYWRkJyk7XHJcbiAgfVxyXG4gIGVkaXRNb2RlbChtb2RlbDogQmFzZU1vZGVsRm9ybWx5KSB7XHJcbiAgICB0aGlzLm5hdkN0cmwubmF2aWdhdGVGb3J3YXJkKHRoaXMuYmFzZVBhdGggKyAnL2VkaXQvJyArIG1vZGVsLmlkKTtcclxuICB9XHJcbiAgZ2V0TGlzdExheW91dCgpIHtcclxuICAgIGlmICghdGhpcy5tb2RlbCkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5tb2RlbFNlcnZpY2UubmV3TW9kZWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZExheW91dCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ0lvbmljTGlzdExheW91dCcsIHRoaXMubW9kZWwpO1xyXG4gIH1cclxuICBkZWxldGVNb2RlbChtb2RlbCkge1xyXG4gICAgY29uc3QgbXNnID0gJ0RvIHlvdSB3YW50IHRvIGRlbGV0ZSAnICsgbW9kZWxbdGhpcy5kZWxldGVQcm9wZXJ0eU5hbWVdICsgJz8nO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm0obXNnKS50aGVuKFxyXG4gICAgICAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZS5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsU2VydmljZS5kZWxldGUobW9kZWwuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBEYXRhID0gW107XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRPYmplY3QuZW1pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpdGVtLmlkICE9PSBtb2RlbC5pZCkge1xyXG4gICAgICAgICAgICAgICAgdGVtcERhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSB0ZW1wRGF0YTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBnZXRDZWxWYWx1ZShyb3c6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgaWYgKCFyb3cpXHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgLy8gaWYgKHByb3BlcnR5TmFtZSA9PSAna29tcGV0ZW56ZW5TdGRldicpXHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHByb3BlcnR5TmFtZSk7XHJcbiAgICBpZiAocHJvcGVydHlOYW1lLmluZGV4T2YoJy4nKSA9PT0gLTEpIHtcclxuICAgICAgdmFyIGdyaWRMYXlvdXQgPSB0aGlzLmdyaWRMYXlvdXQuZmluZChmID0+IGYua2V5LmluZGV4T2YocHJvcGVydHlOYW1lKSA+IC0xKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0ZWRWYWx1ZShncmlkTGF5b3V0LCByb3dbcHJvcGVydHlOYW1lXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwcm9wID0gcHJvcGVydHlOYW1lLnNwbGl0KCcuJylbMF07XHJcbiAgICAgIGNvbnN0IHN1YlByb3AgPSBwcm9wZXJ0eU5hbWUucmVwbGFjZShwcm9wICsgJy4nLCAnJyk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldENlbFZhbHVlKHJvd1twcm9wXSwgc3ViUHJvcCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0Rm9ybWF0ZWRWYWx1ZShncmlkTGF5b3V0OiBJb25pY0xpc3RMYXlvdXRDb25maWcsIHZhbHVlOiBhbnkpIHtcclxuXHJcbiAgICBpZiAoZ3JpZExheW91dCkge1xyXG4gICAgICBzd2l0Y2ggKGdyaWRMYXlvdXQuZm9ybWF0aW5nKSB7XHJcbiAgICAgICAgY2FzZSBHcmlkTGF5b3V0Rm9ybWF0LmRhdGU6XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsIGdyaWRMYXlvdXQuY3VzdG9tRm9ybWF0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgR3JpZExheW91dEZvcm1hdC5udW1iZXI6XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZ3JpZExheW91dC5jdXN0b21Gb3JtYXQpO1xyXG4gICAgICAgIGNhc2UgR3JpZExheW91dEZvcm1hdC5wZXJjZW50OlxyXG4gICAgICAgICAgY29uc3QgdmFsdWVQcmMgPSB2YWx1ZSAvIDEwMDtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnBlcmNlbnRQaXBlLnRyYW5zZm9ybSh2YWx1ZVByYywgZ3JpZExheW91dC5jdXN0b21Gb3JtYXQpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRW5hYmxlZChtb2RlbDogVCkge1xyXG4gICAgaWYgKHRoaXMuZGVsZXRlRGlzYWJsZVJ1bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVSdWxlKHRoaXMuZGVsZXRlRGlzYWJsZVJ1bGUsIG1vZGVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIGV2YWx1YXRlUnVsZShydWxlczogUnVsZVtdLCBtb2RlbDogVCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XHJcbiAgICBydWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xyXG4gICAgICBsZXQganNvblJ1bGU6IGFueTtcclxuICAgICAgaWYgKHR5cGVvZiBydWxlLnJ1bGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAganNvblJ1bGUgPSBKU09OLnBhcnNlKHJ1bGUucnVsZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAganNvblJ1bGUgPSBydWxlLnJ1bGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJ1bGUucGFyYW1ldGVycykge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSAneycgKyBydWxlLnBhcmFtZXRlcnMubWFwKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIHJldHVybiAnXCInICsgaXRlbSArICdcIjpcIicgKyBtb2RlbFtpdGVtXSArICdcIic7XHJcbiAgICAgICAgfSkuam9pbignLCcpICsgJ30nO1xyXG4gICAgICAgIHJlc3VsdCA9IGpzb25Mb2dpYy5hcHBseShqc29uUnVsZSwgSlNPTi5wYXJzZShkYXRhKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0ganNvbkxvZ2ljLmFwcGx5KGpzb25SdWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLWhlYWRlciAqbmdJZj1cInNob3dIZWFkZXJcIj5cclxuICA8aW9uLXRvb2xiYXI+XHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XHJcbiAgICAgIDxpb24tbWVudS1idXR0b24+PC9pb24tbWVudS1idXR0b24+XHJcbiAgICAgIDxpb24tYmFjay1idXR0b24+PC9pb24tYmFjay1idXR0b24+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2lvbi10b29sYmFyPlxyXG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy1jb250YWluZXI+XHJcbjwvaW9uLWhlYWRlcj5cclxuXHJcbjxpb24tY29udGVudCBbZnVsbHNjcmVlbl09XCJ0cnVlXCI+XHJcblxyXG4gIDxpb24tcmVmcmVzaGVyIHNsb3Q9XCJmaXhlZFwiIChpb25SZWZyZXNoKT1cImhhbmRsZVJlZnJlc2goJGV2ZW50KVwiPlxyXG4gICAgPGlvbi1yZWZyZXNoZXItY29udGVudD48L2lvbi1yZWZyZXNoZXItY29udGVudD5cclxuICA8L2lvbi1yZWZyZXNoZXI+XHJcblxyXG4gIDxpb24tbGlzdD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiPlxyXG4gICAgICA8aW9uLWl0ZW0tc2xpZGluZz5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxpb24taXRlbS1vcHRpb25zICpuZ0lmPVwiZGVsZXRlRW5hYmxlZChpdGVtKVwiIHNpZGU9XCJlbmRcIj5cclxuICAgICAgICAgIDxpb24taXRlbS1vcHRpb24gY29sb3I9XCJkYW5nZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwidHJhc2hcIiAoY2xpY2spPSdkZWxldGVNb2RlbChpdGVtKSc+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWl0ZW0tb3B0aW9uPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0tb3B0aW9ucz5cclxuICAgICAgPC9pb24taXRlbS1zbGlkaW5nPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9pb24tbGlzdD5cclxuICA8aW9uLWluZmluaXRlLXNjcm9sbCB0aHJlc2hvbGQ9XCIxMDBweFwiIChpb25JbmZpbml0ZSk9XCJsb2FkRGF0YSgkZXZlbnQpXCI+XHJcbiAgICA8aW9uLWluZmluaXRlLXNjcm9sbC1jb250ZW50IGxvYWRpbmdTcGlubmVyPVwiYnViYmxlc1wiIGxvYWRpbmdUZXh0PVwiTG9hZGluZyBtb3JlIGRhdGEuLi5cIj5cclxuICAgIDwvaW9uLWluZmluaXRlLXNjcm9sbC1jb250ZW50PlxyXG4gIDwvaW9uLWluZmluaXRlLXNjcm9sbD5cclxuXHJcbjwvaW9uLWNvbnRlbnQ+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICA8aW9uLXRpdGxlICBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPnt7dGl0bGUgfHRyYW5zbGF0ZX19PC9pb24tdGl0bGU+XHJcbiAgPGlvbi1idXR0b24gc2xvdD1cImVuZFwiIChjbGljayk9XCJvbkFkZCgpXCIgZmlsbD1cImNsZWFyXCI+XHJcbiAgICA8aW9uLWljb24gc2l6ZT1cImxhcmdlXCIgbmFtZT1cImFkZFwiPjwvaW9uLWljb24+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzZWFyY2g+XHJcbiAgPGlvbi10b29sYmFyICpuZ0lmPVwic2hvd1NlcmFjaFwiPlxyXG4gICAgPGlvbi1zZWFyY2hiYXIgW2RlYm91bmNlXT1cIjEwMDBcIiAoaW9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCI+PC9pb24tc2VhcmNoYmFyPlxyXG4gIDwvaW9uLXRvb2xiYXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xpc3RJdGVtIGxldC1pdGVtPSdpdGVtJz5cclxuICA8aW9uLWl0ZW0gYnV0dG9uIChjbGljayk9J2VkaXRNb2RlbChpdGVtKSc+XHJcbiAgICA8aW9uLWxhYmVsPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3cgb2YgZ3JpZExheW91dFwiPlxyXG4gICAgICAgIDxoMiAqbmdJZj1cInJvdy5wcmltYXJ5XCI+IHt7Z2V0Q2VsVmFsdWUoaXRlbSxyb3cua2V5KX19IDwvaDI+XHJcbiAgICAgICAgPGgzICpuZ0lmPVwiIXJvdy5wcmltYXJ5XCI+e3tnZXRDZWxWYWx1ZShpdGVtLHJvdy5rZXkpfX0gPC9oMz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2lvbi1sYWJlbD5cclxuICA8L2lvbi1pdGVtPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -1,65 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { FieldType } from '@ngx-formly/core';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { SmActionService, StateService } from '@rosoftlab/statemachine';
5
- import { WrappersModule } from '../../wrappers/wrappers.module';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@rosoftlab/statemachine";
8
- import * as i2 from "@ngx-translate/core";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "@ionic/angular";
11
- export class RslIonicSmButtonsComponent extends FieldType {
12
- constructor(smActionService, stateService, translate) {
13
- super();
14
- this.smActionService = smActionService;
15
- this.stateService = stateService;
16
- this.translate = translate;
17
- }
18
- ngOnInit() {
19
- this.objectType = this.props.attributes['objectType'];
20
- this.objectId = this.field.parent.model.id;
21
- this.loadCurrentState(this.field.model.currentStateId);
22
- this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType);
23
- // console.log(this.field)
24
- }
25
- executeAction(action) {
26
- // this.currentState = null
27
- // this.smActions$ = null
28
- // console.log(action.actionID)
29
- this.smActionService.executeAction(this.objectId, this.objectType, action.actionID, "")
30
- .subscribe(response => {
31
- // console.log(response)
32
- if (this.field.props['onStateCahnged'])
33
- this.field.props['onStateCahnged']({ model: this.field.parent.model, response });
34
- this.model['currentStateId'] = response.currentStateId;
35
- this.smActionService.getActions(this.objectId, this.objectType);
36
- this.options.resetModel();
37
- // this.field.formControl.updateValueAndValidity()
38
- this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType);
39
- // //this.smActions = []
40
- this.loadCurrentState(response.currentStateId);
41
- });
42
- // console.log(action);
43
- }
44
- loadCurrentState(stateId) {
45
- this.stateService.get(stateId).subscribe(state => this.currentState = state);
46
- }
47
- getColor(action) {
48
- if (action.props) {
49
- return action.props["Color"] ? action.props["Color"] : "primary";
50
- }
51
- return "primary";
52
- }
53
- getCurrentState() {
54
- return this.translate.instant('General.State.CurrentState', { field: this.currentState.name });
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslIonicSmButtonsComponent, deps: [{ token: i1.SmActionService }, { token: i1.StateService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: RslIonicSmButtonsComponent, isStandalone: true, selector: "app-ionic-sm-buttons", usesInheritance: true, ngImport: i0, template: "<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\r\n\r\n<!-- <p>Sync</p>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n </ion-button>\r\n</ion-list> -->\r\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n <!-- - {{action.actionID}} -->\r\n </ion-button>\r\n</ion-list>", styles: [""], dependencies: [{ kind: "ngmodule", type: WrappersModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslIonicSmButtonsComponent, decorators: [{
60
- type: Component,
61
- args: [{ standalone: true, selector: 'app-ionic-sm-buttons', imports: [
62
- WrappersModule
63
- ], template: "<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\r\n\r\n<!-- <p>Sync</p>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n </ion-button>\r\n</ion-list> -->\r\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n <!-- - {{action.actionID}} -->\r\n </ion-button>\r\n</ion-list>" }]
64
- }], ctorParameters: () => [{ type: i1.SmActionService }, { type: i1.StateService }, { type: i2.TranslateService }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtc20tYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi9jb21wb25lbnRzL3JzbC1pb25pYy1zbS1idXR0b25zL2lvbmljLXNtLWJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9saWIvY29tcG9uZW50cy9yc2wtaW9uaWMtc20tYnV0dG9ucy9pb25pYy1zbS1idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQXdELE1BQU0sa0JBQWtCLENBQUM7QUFFbkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFZLGVBQWUsRUFBUyxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQWVoRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsU0FBc0M7SUFNcEYsWUFDUyxlQUFnQyxFQUMvQixZQUEwQixFQUMzQixTQUEyQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQTtRQUhBLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUVwQyxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFXLENBQUE7UUFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFBO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2pGLDBCQUEwQjtJQUM1QixDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQWdCO1FBQzVCLDJCQUEyQjtRQUMzQix5QkFBeUI7UUFDekIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzthQUNwRixTQUFTLENBQ1IsUUFBUSxDQUFDLEVBQUU7WUFDVCx3QkFBd0I7WUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQTtZQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUUvRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQ3pCLDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2pGLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FDRixDQUFBO1FBQ0gsdUJBQXVCO0lBQ3pCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFZO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDdEMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FDbkMsQ0FBQTtJQUNILENBQUM7SUFDRCxRQUFRLENBQUMsTUFBZ0I7UUFDdkIsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFDRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQzs4R0F0RFUsMEJBQTBCO2tHQUExQiwwQkFBMEIsdUdDckJ2Qyxzc0JBY1cseURESVAsY0FBYzs7MkZBR0wsMEJBQTBCO2tCQVR0QyxTQUFTO2lDQUNJLElBQUksWUFDTixzQkFBc0IsV0FHdkI7d0JBQ1AsY0FBYztxQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5RmllbGRQcm9wcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZElucHV0IH0gZnJvbSAnQG5neC1mb3JtbHkvaW9uaWMvaW5wdXQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFNtQWN0aW9uLCBTbUFjdGlvblNlcnZpY2UsIFN0YXRlLCBTdGF0ZVNlcnZpY2UgfSBmcm9tICdAcm9zb2Z0bGFiL3N0YXRlbWFjaGluZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgV3JhcHBlcnNNb2R1bGUgfSBmcm9tICcuLi8uLi93cmFwcGVycy93cmFwcGVycy5tb2R1bGUnO1xyXG5pbnRlcmZhY2UgSW5wdXRQcm9wcyBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMgeyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1seUlucHV0RmllbGRDb25maWcgZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxJbnB1dFByb3BzPiB7XHJcbiAgdHlwZTogJ2lucHV0JyB8IFR5cGU8Rm9ybWx5RmllbGRJbnB1dD47XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ2FwcC1pb25pYy1zbS1idXR0b25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW9uaWMtc20tYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW9uaWMtc20tYnV0dG9ucy5jb21wb25lbnQuY3NzJ10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgV3JhcHBlcnNNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSc2xJb25pY1NtQnV0dG9uc0NvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc8SW5wdXRQcm9wcz4+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzbUFjdGlvbnMkOiBPYnNlcnZhYmxlPFNtQWN0aW9uW10+XHJcbiAgY3VycmVudFN0YXRlOiBTdGF0ZTtcclxuXHJcbiAgb2JqZWN0VHlwZTogc3RyaW5nO1xyXG4gIG9iamVjdElkOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc21BY3Rpb25TZXJ2aWNlOiBTbUFjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0YXRlU2VydmljZTogU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub2JqZWN0VHlwZSA9IHRoaXMucHJvcHMuYXR0cmlidXRlc1snb2JqZWN0VHlwZSddIGFzIHN0cmluZ1xyXG4gICAgdGhpcy5vYmplY3RJZCA9IHRoaXMuZmllbGQucGFyZW50Lm1vZGVsLmlkXHJcbiAgICB0aGlzLmxvYWRDdXJyZW50U3RhdGUodGhpcy5maWVsZC5tb2RlbC5jdXJyZW50U3RhdGVJZCk7XHJcbiAgICB0aGlzLnNtQWN0aW9ucyQgPSB0aGlzLnNtQWN0aW9uU2VydmljZS5nZXRBY3Rpb25zKHRoaXMub2JqZWN0SWQsIHRoaXMub2JqZWN0VHlwZSlcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZmllbGQpXHJcbiAgfVxyXG4gIGV4ZWN1dGVBY3Rpb24oYWN0aW9uOiBTbUFjdGlvbikge1xyXG4gICAgLy8gdGhpcy5jdXJyZW50U3RhdGUgPSBudWxsXHJcbiAgICAvLyB0aGlzLnNtQWN0aW9ucyQgPSBudWxsXHJcbiAgICAvLyBjb25zb2xlLmxvZyhhY3Rpb24uYWN0aW9uSUQpXHJcbiAgICB0aGlzLnNtQWN0aW9uU2VydmljZS5leGVjdXRlQWN0aW9uKHRoaXMub2JqZWN0SWQsIHRoaXMub2JqZWN0VHlwZSwgYWN0aW9uLmFjdGlvbklELCBcIlwiKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3BvbnNlKVxyXG4gICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJvcHNbJ29uU3RhdGVDYWhuZ2VkJ10pXHJcbiAgICAgICAgICAgIHRoaXMuZmllbGQucHJvcHNbJ29uU3RhdGVDYWhuZ2VkJ10oeyBtb2RlbDogdGhpcy5maWVsZC5wYXJlbnQubW9kZWwsIHJlc3BvbnNlIH0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFsnY3VycmVudFN0YXRlSWQnXSA9IHJlc3BvbnNlLmN1cnJlbnRTdGF0ZUlkXHJcbiAgICAgICAgICB0aGlzLnNtQWN0aW9uU2VydmljZS5nZXRBY3Rpb25zKHRoaXMub2JqZWN0SWQsIHRoaXMub2JqZWN0VHlwZSlcclxuXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucmVzZXRNb2RlbCgpXHJcbiAgICAgICAgICAvLyB0aGlzLmZpZWxkLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5zbUFjdGlvbnMkID0gdGhpcy5zbUFjdGlvblNlcnZpY2UuZ2V0QWN0aW9ucyh0aGlzLm9iamVjdElkLCB0aGlzLm9iamVjdFR5cGUpXHJcbiAgICAgICAgICAvLyAvL3RoaXMuc21BY3Rpb25zID0gW11cclxuICAgICAgICAgIHRoaXMubG9hZEN1cnJlbnRTdGF0ZShyZXNwb25zZS5jdXJyZW50U3RhdGVJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAvLyBjb25zb2xlLmxvZyhhY3Rpb24pO1xyXG4gIH1cclxuICBsb2FkQ3VycmVudFN0YXRlKHN0YXRlSWQ6IGFueSkge1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZ2V0KHN0YXRlSWQpLnN1YnNjcmliZShcclxuICAgICAgc3RhdGUgPT4gdGhpcy5jdXJyZW50U3RhdGUgPSBzdGF0ZVxyXG4gICAgKVxyXG4gIH1cclxuICBnZXRDb2xvcihhY3Rpb246IFNtQWN0aW9uKSB7XHJcbiAgICBpZiAoYWN0aW9uLnByb3BzKSB7XHJcbiAgICAgIHJldHVybiBhY3Rpb24ucHJvcHNbXCJDb2xvclwiXSA/IGFjdGlvbi5wcm9wc1tcIkNvbG9yXCJdIDogXCJwcmltYXJ5XCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJwcmltYXJ5XCJcclxuICB9XHJcbiAgZ2V0Q3VycmVudFN0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dlbmVyYWwuU3RhdGUuQ3VycmVudFN0YXRlJywgeyBmaWVsZDogdGhpcy5jdXJyZW50U3RhdGUubmFtZSB9KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8aW9uLWlucHV0IFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ3RleHQnXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW2lvbkZvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIj48L2lvbi1pbnB1dD4gLS0+XHJcblxyXG48IS0tIDxwPlN5bmM8L3A+XHJcbjxpb24tbGlzdD5cclxuICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHNtQWN0aW9uc1wiIGNvbG9yPVwie3tnZXRDb2xvcihhY3Rpb24pfX1cIiAoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbihhY3Rpb24pXCI+XHJcbiAgICB7e2FjdGlvbi5idXR0b25UcmFuc2xhdGlvbktleSB8dHJhbnNsYXRlfX1cclxuICA8L2lvbi1idXR0b24+XHJcbjwvaW9uLWxpc3Q+IC0tPlxyXG48aW9uLWxhYmVsICpuZ0lmPVwiY3VycmVudFN0YXRlXCI+e3sgZ2V0Q3VycmVudFN0YXRlKCkgfX08L2lvbi1sYWJlbD5cclxuPGlvbi1saXN0PlxyXG4gIDxpb24tYnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygc21BY3Rpb25zJCB8IGFzeW5jIFwiIGNvbG9yPVwie3tnZXRDb2xvcihhY3Rpb24pfX1cIiAoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbihhY3Rpb24pXCI+XHJcbiAgICB7e2FjdGlvbi5idXR0b25UcmFuc2xhdGlvbktleSB8dHJhbnNsYXRlfX1cclxuICAgICA8IS0tIC0ge3thY3Rpb24uYWN0aW9uSUR9fSAtLT5cclxuICA8L2lvbi1idXR0b24+XHJcbjwvaW9uLWxpc3Q+Il19
@@ -1,3 +0,0 @@
1
- export { IonicDataTableLayout } from './ionic-datatable-layout';
2
- export { IonicListLayout } from './ionic-list.decorator';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi9kZWNvcmF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElvbmljRGF0YVRhYmxlTGF5b3V0IH0gZnJvbSAnLi9pb25pYy1kYXRhdGFibGUtbGF5b3V0JztcclxuZXhwb3J0IHsgSW9uaWNMaXN0TGF5b3V0IH0gZnJvbSAnLi9pb25pYy1saXN0LmRlY29yYXRvcic7XHJcblxyXG4iXX0=
@@ -1,10 +0,0 @@
1
- export function IonicDataTableLayout(config) {
2
- return (target, propertyName) => {
3
- const annotations = Reflect.getMetadata('IonicDataTableLayout', target) || [];
4
- config.prop = propertyName;
5
- config.visible = config.visible === undefined ? true : config.visible;
6
- annotations.push(config);
7
- Reflect.defineMetadata('IonicDataTableLayout', annotations, target);
8
- };
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtZGF0YXRhYmxlLWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9pb25pYy9zcmMvbGliL2RlY29yYXRvcnMvaW9uaWMtZGF0YXRhYmxlLWxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBa0M7SUFDbkUsT0FBTyxDQUFDLE1BQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7UUFDekMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUUsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDM0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcclxuaW1wb3J0IHsgfSBmcm9tICdyZWZsZWN0LW1ldGFkYXRhJztcclxuZXhwb3J0IGludGVyZmFjZSBJb25pY0RhdGFUYWJsZUxheW91dENvbmZpZyBleHRlbmRzIFRhYmxlQ29sdW1uIHtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICBpc1RyYW5zbGF0ZWQ/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBJb25pY0RhdGFUYWJsZUxheW91dChjb25maWc6IElvbmljRGF0YVRhYmxlTGF5b3V0Q29uZmlnKSB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eU5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFubm90YXRpb25zID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnSW9uaWNEYXRhVGFibGVMYXlvdXQnLCB0YXJnZXQpIHx8IFtdO1xyXG4gICAgICAgIGNvbmZpZy5wcm9wID0gcHJvcGVydHlOYW1lO1xyXG4gICAgICAgIGNvbmZpZy52aXNpYmxlID0gY29uZmlnLnZpc2libGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBjb25maWcudmlzaWJsZTtcclxuICAgICAgICBhbm5vdGF0aW9ucy5wdXNoKGNvbmZpZyk7XHJcblxyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoJ0lvbmljRGF0YVRhYmxlTGF5b3V0JywgYW5ub3RhdGlvbnMsIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
@@ -1,9 +0,0 @@
1
- export function IonicListLayout(config) {
2
- return (target, propertyName) => {
3
- const annotations = Reflect.getMetadata('IonicListLayout', target) || [];
4
- config.key = propertyName;
5
- annotations.push(config);
6
- Reflect.defineMetadata('IonicListLayout', annotations, target);
7
- };
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtbGlzdC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi9kZWNvcmF0b3JzL2lvbmljLWxpc3QuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBNkI7SUFDekQsT0FBTyxDQUFDLE1BQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7UUFDekMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekUsTUFBTSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDMUIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QixPQUFPLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgfSBmcm9tICdyZWZsZWN0LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgSW9uaWNMaXN0TGF5b3V0Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pb25pYy1saXN0LWxheW91dC1jb25maWcnO1xyXG5leHBvcnQgZnVuY3Rpb24gSW9uaWNMaXN0TGF5b3V0KGNvbmZpZzogSW9uaWNMaXN0TGF5b3V0Q29uZmlnKSB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eU5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFubm90YXRpb25zID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnSW9uaWNMaXN0TGF5b3V0JywgdGFyZ2V0KSB8fCBbXTtcclxuICAgICAgICBjb25maWcua2V5ID0gcHJvcGVydHlOYW1lO1xyXG4gICAgICAgIGFubm90YXRpb25zLnB1c2goY29uZmlnKTtcclxuXHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSgnSW9uaWNMaXN0TGF5b3V0JywgYW5ub3RhdGlvbnMsIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJb25pY0xpc3RMYXlvdXRDb25maWcgfSBmcm9tICcuL2lvbmljLWxpc3QtbGF5b3V0LWNvbmZpZyc7XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtbGlzdC1sYXlvdXQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2lvbmljL3NyYy9saWIvaW50ZXJmYWNlcy9pb25pYy1saXN0LWxheW91dC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRMYXlvdXRGb3JtYXQgfSBmcm9tICdAcm9zb2Z0bGFiL2NvcmUnO1xyXG5leHBvcnQgaW50ZXJmYWNlIElvbmljTGlzdExheW91dENvbmZpZyB7XHJcbiAgICBrZXk/OiBzdHJpbmc7XHJcbiAgICBwcmltYXJ5OiBib29sZWFuO1xyXG4gICAgdHJhbnNsYXRlS2V5Pzogc3RyaW5nXHJcbiAgICBmb3JtYXRpbmc/OiBHcmlkTGF5b3V0Rm9ybWF0O1xyXG4gICAgY3VzdG9tRm9ybWF0Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AlertController } from '@ionic/angular';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ionic/angular";
5
- export class IonicDialogService {
6
- constructor(alertController) {
7
- this.alertController = alertController;
8
- }
9
- async confirm(message, title, confirmButtonText = 'Delete', cancelButtonText = 'Cancel') {
10
- let choice;
11
- const alert = await this.alertController.create({
12
- header: title,
13
- subHeader: message,
14
- buttons: [{
15
- text: cancelButtonText,
16
- handler: () => {
17
- alert.dismiss(false);
18
- return false;
19
- }
20
- }, {
21
- text: confirmButtonText,
22
- handler: () => {
23
- alert.dismiss(true);
24
- return true;
25
- }
26
- }]
27
- });
28
- await alert.present();
29
- await alert.onDidDismiss().then((data) => {
30
- choice = data;
31
- });
32
- return choice;
33
- }
34
- async showSaveMessage(message, title) {
35
- const alert = await this.alertController.create({
36
- header: title,
37
- subHeader: message,
38
- buttons: ['OK']
39
- });
40
- await alert.present();
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IonicDialogService, deps: [{ token: i1.AlertController }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IonicDialogService, providedIn: 'root' }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IonicDialogService, decorators: [{
46
- type: Injectable,
47
- args: [{
48
- providedIn: 'root'
49
- }]
50
- }], ctorParameters: () => [{ type: i1.AlertController }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvaW9uaWMvc3JjL2xpYi9pb25pYy1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUksQ0FBQztJQUN6RCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWdCLEVBQUUsS0FBYyxFQUM1QyxvQkFBNEIsUUFBUSxFQUNwQyxtQkFBMkIsUUFBUTtRQUNuQyxJQUFJLE1BQU0sQ0FBQTtRQUNWLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDOUMsTUFBTSxFQUFFLEtBQUs7WUFDYixTQUFTLEVBQUUsT0FBTztZQUNsQixPQUFPLEVBQUUsQ0FBQztvQkFDUixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixPQUFPLEVBQUUsR0FBRyxFQUFFO3dCQUNaLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7d0JBQ3BCLE9BQU8sS0FBSyxDQUFBO29CQUNkLENBQUM7aUJBQ0YsRUFBRTtvQkFDRCxJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFO3dCQUNaLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3BCLE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7aUJBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sR0FBRyxJQUFJLENBQUE7UUFDZixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sTUFBTSxDQUFBO0lBRWYsQ0FBQztJQUNELEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBZ0IsRUFBRSxLQUFjO1FBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDOUMsTUFBTSxFQUFFLEtBQUs7WUFDYixTQUFTLEVBQUUsT0FBTztZQUNsQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFeEIsQ0FBQzs4R0F6Q1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW9uaWNEaWFsb2dTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbGVydENvbnRyb2xsZXI6IEFsZXJ0Q29udHJvbGxlcikgeyB9XHJcbiAgYXN5bmMgY29uZmlybShtZXNzYWdlPzogc3RyaW5nLCB0aXRsZT86IHN0cmluZyxcclxuICAgIGNvbmZpcm1CdXR0b25UZXh0OiBzdHJpbmcgPSAnRGVsZXRlJyxcclxuICAgIGNhbmNlbEJ1dHRvblRleHQ6IHN0cmluZyA9ICdDYW5jZWwnKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgY2hvaWNlXHJcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDb250cm9sbGVyLmNyZWF0ZSh7XHJcbiAgICAgIGhlYWRlcjogdGl0bGUsXHJcbiAgICAgIHN1YkhlYWRlcjogbWVzc2FnZSxcclxuICAgICAgYnV0dG9uczogW3tcclxuICAgICAgICB0ZXh0OiBjYW5jZWxCdXR0b25UZXh0LFxyXG4gICAgICAgIGhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICAgIGFsZXJ0LmRpc21pc3MoZmFsc2UpXHJcbiAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHtcclxuICAgICAgICB0ZXh0OiBjb25maXJtQnV0dG9uVGV4dCxcclxuICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICBhbGVydC5kaXNtaXNzKHRydWUpO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XVxyXG4gICAgfSk7XHJcblxyXG4gICAgYXdhaXQgYWxlcnQucHJlc2VudCgpO1xyXG4gICAgYXdhaXQgYWxlcnQub25EaWREaXNtaXNzKCkudGhlbigoZGF0YSkgPT4ge1xyXG4gICAgICBjaG9pY2UgPSBkYXRhXHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGNob2ljZVxyXG5cclxuICB9XHJcbiAgYXN5bmMgc2hvd1NhdmVNZXNzYWdlKG1lc3NhZ2U/OiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDb250cm9sbGVyLmNyZWF0ZSh7XHJcbiAgICAgIGhlYWRlcjogdGl0bGUsXHJcbiAgICAgIHN1YkhlYWRlcjogbWVzc2FnZSxcclxuICAgICAgYnV0dG9uczogWydPSyddXHJcbiAgICB9KTtcclxuXHJcbiAgICBhd2FpdCBhbGVydC5wcmVzZW50KCk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIl19