@solidev/data 0.0.1-dev.3 → 0.0.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/auth/auth-interceptor.service.mjs +13 -4
- package/esm2020/lib/auth/auth.service.mjs +20 -9
- package/esm2020/lib/data/data-backend.mjs +3 -3
- package/esm2020/lib/data/data-model.mjs +5 -1
- package/esm2020/lib/data/data-query.mjs +32 -25
- package/esm2020/lib/data/fields/base.mjs +9 -8
- package/esm2020/lib/data/fields/computed.mjs +10 -0
- package/esm2020/lib/data/fields/index.mjs +2 -1
- package/esm2020/lib/dispedit/choice.pipe.mjs +44 -4
- package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +17 -6
- package/esm2020/lib/dispedit/factor.pipe.mjs +37 -4
- package/esm2020/lib/dispedit/factorc.pipe.mjs +59 -8
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +3 -3
- package/esm2020/lib/dispedit/flags/flags.component.mjs +140 -0
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +4 -4
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +94 -0
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +62 -15
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +3 -3
- package/esm2020/lib/messages/message.service.mjs +3 -3
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +5 -5
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +4 -4
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +4 -4
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +4 -4
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +5 -6
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +6 -1
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +7 -1
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +7 -7
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +10 -7
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/model-list-filter.mjs +11 -10
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list.service.mjs +21 -16
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/updates/update/update.component.mjs +17 -0
- package/esm2020/lib/updates/update.service.mjs +58 -0
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +3 -3
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +3 -3
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +4 -4
- package/esm2020/lib/utils/tab-memory.service.mjs +20 -11
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/solidev-data.mjs +752 -201
- package/fesm2015/solidev-data.mjs.map +1 -1
- package/fesm2020/solidev-data.mjs +733 -199
- package/fesm2020/solidev-data.mjs.map +1 -1
- package/lib/auth/auth.service.d.ts +6 -1
- package/lib/data/data-model.d.ts +1 -0
- package/lib/data/data-query.d.ts +14 -11
- package/lib/data/fields/base.d.ts +6 -5
- package/lib/data/fields/computed.d.ts +14 -0
- package/lib/data/fields/index.d.ts +1 -0
- package/lib/dispedit/choice.pipe.d.ts +5 -0
- package/lib/dispedit/dispedit/dispedit.component.d.ts +6 -1
- package/lib/dispedit/factor.pipe.d.ts +7 -0
- package/lib/dispedit/factorc.pipe.d.ts +8 -0
- package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
- package/lib/dispedit/flags/flags.component.d.ts +40 -0
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +1 -1
- package/lib/dispedit/richedit/richedit.component.d.ts +31 -0
- package/lib/dispedit/sdelete/sdelete.component.d.ts +13 -4
- package/lib/messages/message-zone/message-zone.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +2 -2
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.d.ts +1 -0
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.d.ts +6 -1
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +3 -3
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filter.d.ts +4 -2
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +1 -1
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +1 -1
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +1 -1
- package/lib/modellist/model-list.service.d.ts +6 -6
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/updates/update/update.component.d.ts +8 -0
- package/lib/updates/update.service.d.ts +16 -0
- package/lib/uploader/ng-file-drop.directive.d.ts +1 -1
- package/lib/uploader/ng-file-select.directive.d.ts +1 -1
- package/lib/utils/tab-memory.service.d.ts +4 -3
- package/package.json +7 -4
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField, } from './base';
|
|
2
|
+
export class ComputedFieldManager extends BaseFieldManager {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.computed = true;
|
|
6
|
+
}
|
|
7
|
+
fromJson(data, coll) { }
|
|
8
|
+
}
|
|
9
|
+
export const computedField = (meta = {}) => genericDataField(meta, 'computedField', ComputedFieldManager);
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvY29tcHV0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixnQkFBZ0IsR0FFakIsTUFBTSxRQUFRLENBQUM7QUFVaEIsTUFBTSxPQUFPLG9CQUNYLFNBQVEsZ0JBQW1CO0lBRDdCOztRQUtrQixhQUFRLEdBQUcsSUFBSSxDQUFDO0lBR2xDLENBQUM7SUFEaUIsUUFBUSxDQUFDLElBQVMsRUFBRSxJQUFzQixJQUFRLENBQUM7Q0FDcEU7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsT0FBb0MsRUFBRSxFQUNwQixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VGaWVsZE1hbmFnZXIsXG4gIEZpZWxkRGVjb3JhdG9yRm4sXG4gIGdlbmVyaWNEYXRhRmllbGQsXG4gIElGaWVsZE1ldGFkYXRhLFxufSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEtY29sbGVjdGlvbic7XG5pbXBvcnQgeyBJQ2hhckZpZWxkQ2hvaWNlIH0gZnJvbSAnLi9zdHJpbmdmaWVsZHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wdXRlZEZpZWxkTWV0YWRhdGE8VD4gZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxUPiB7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBmYWN0b3I/OiBudW1iZXI7XG4gIGNob2ljZXM/OiBJQ2hhckZpZWxkQ2hvaWNlW107XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wdXRlZEZpZWxkTWFuYWdlcjxUPlxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8VD5cbiAgaW1wbGVtZW50cyBJQ29tcHV0ZWRGaWVsZE1ldGFkYXRhPFQ+XG57XG4gIHB1YmxpYyBmaWVsZD86IHN0cmluZztcbiAgcHVibGljIG92ZXJyaWRlIGNvbXB1dGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55LCBjb2xsPzogQ29sbGVjdGlvbjxhbnk+KTogYW55IHt9XG59XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlZEZpZWxkID0gKFxuICBtZXRhOiBJQ29tcHV0ZWRGaWVsZE1ldGFkYXRhPGFueT4gPSB7fVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKG1ldGEsICdjb21wdXRlZEZpZWxkJywgQ29tcHV0ZWRGaWVsZE1hbmFnZXIpO1xuIl19
|
|
@@ -4,4 +4,5 @@ export { dateField, datetimeField } from './datetime';
|
|
|
4
4
|
export { foreignKeyField, manyToManyField, reverseForeignKeyField, detailsField, } from './relations';
|
|
5
5
|
export { booleanField } from './boolean';
|
|
6
6
|
export { decimalField, integerField, floatField } from './numbers';
|
|
7
|
-
|
|
7
|
+
export { computedField } from './computed';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBjaGFyRmllbGQsXG4gIGVtYWlsRmllbGQsXG4gIHRleHRGaWVsZCxcbiAgcGFzc3dvcmRGaWVsZCxcbn0gZnJvbSAnLi9zdHJpbmdmaWVsZHMnO1xuZXhwb3J0IHsgcHJpbWFyeUZpZWxkIH0gZnJvbSAnLi9wcmltYXJ5ZmllbGQnO1xuZXhwb3J0IHsgZGF0ZUZpZWxkLCBkYXRldGltZUZpZWxkIH0gZnJvbSAnLi9kYXRldGltZSc7XG5leHBvcnQge1xuICBmb3JlaWduS2V5RmllbGQsXG4gIG1hbnlUb01hbnlGaWVsZCxcbiAgcmV2ZXJzZUZvcmVpZ25LZXlGaWVsZCxcbiAgZGV0YWlsc0ZpZWxkLFxufSBmcm9tICcuL3JlbGF0aW9ucyc7XG5leHBvcnQgeyBib29sZWFuRmllbGQgfSBmcm9tICcuL2Jvb2xlYW4nO1xuZXhwb3J0IHsgZGVjaW1hbEZpZWxkLCBpbnRlZ2VyRmllbGQsIGZsb2F0RmllbGQgfSBmcm9tICcuL251bWJlcnMnO1xuZXhwb3J0IHsgY29tcHV0ZWRGaWVsZCB9IGZyb20gJy4vY29tcHV0ZWQnO1xuIl19
|
|
@@ -27,13 +27,53 @@ export class ChoicePipe {
|
|
|
27
27
|
return `[${fvalue}] ??`;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
ChoicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
ChoicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
ChoicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ChoicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
31
|
+
ChoicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ChoicePipe, isStandalone: true, name: "choice" });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ChoicePipe, decorators: [{
|
|
33
33
|
type: Pipe,
|
|
34
34
|
args: [{
|
|
35
35
|
name: 'choice',
|
|
36
36
|
standalone: true,
|
|
37
37
|
}]
|
|
38
38
|
}] });
|
|
39
|
-
|
|
39
|
+
export class PChoicePipe {
|
|
40
|
+
transform(value, model, field, mode = 'desc') {
|
|
41
|
+
if (!model) {
|
|
42
|
+
return '-';
|
|
43
|
+
}
|
|
44
|
+
if (!value) {
|
|
45
|
+
return '-';
|
|
46
|
+
}
|
|
47
|
+
// Use value from input, not from field
|
|
48
|
+
const fvalue = value; //- (model as any)[field];
|
|
49
|
+
if (mode === 'code') {
|
|
50
|
+
return `${fvalue}`;
|
|
51
|
+
}
|
|
52
|
+
const manager = model.FM(field);
|
|
53
|
+
const choices = manager.choices;
|
|
54
|
+
if (!choices) {
|
|
55
|
+
return `${fvalue}`;
|
|
56
|
+
}
|
|
57
|
+
for (const ch of choices) {
|
|
58
|
+
if (ch.value === fvalue) {
|
|
59
|
+
if (mode === 'desc') {
|
|
60
|
+
return ch.desc;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return `[${fvalue}] ${ch.desc}`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return `[${fvalue}] ??`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
PChoicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: PChoicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
71
|
+
PChoicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: PChoicePipe, isStandalone: true, name: "pchoice" });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: PChoicePipe, decorators: [{
|
|
73
|
+
type: Pipe,
|
|
74
|
+
args: [{
|
|
75
|
+
name: 'pchoice',
|
|
76
|
+
standalone: true,
|
|
77
|
+
}]
|
|
78
|
+
}] });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGlzcGVkaXQvY2hvaWNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFNBQVMsQ0FDUCxLQUFRLEVBQ1IsS0FBYSxFQUNiLE9BQWlDLE1BQU07UUFFdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxNQUFNLE1BQU0sR0FBSSxLQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ25CLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztTQUNwQjtRQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQUksT0FBZSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUU7WUFDeEIsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDdkIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxNQUFNLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNqQzthQUNGO1NBQ0Y7UUFDRCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7SUFDMUIsQ0FBQzs7dUdBNUJVLFVBQVU7cUdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUp0QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7QUFvQ0QsTUFBTSxPQUFPLFdBQVc7SUFDdEIsU0FBUyxDQUNQLEtBQVUsRUFDVixLQUFRLEVBQ1IsS0FBYSxFQUNiLE9BQWlDLE1BQU07UUFFdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUNELHVDQUF1QztRQUN2QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQywwQkFBMEI7UUFDaEQsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ25CLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztTQUNwQjtRQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQUksT0FBZSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUU7WUFDeEIsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDdkIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxNQUFNLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNqQzthQUNGO1NBQ0Y7UUFDRCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7SUFDMUIsQ0FBQzs7d0dBakNVLFdBQVc7c0dBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUp2QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO29CQUNmLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Nob2ljZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob2ljZVBpcGU8VCBleHRlbmRzIERhdGFNb2RlbD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBULFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgbW9kZTogJ2NvZGUnIHwgJ2Rlc2MnIHwgJ2JvdGgnID0gJ2Rlc2MnXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgY29uc3QgZnZhbHVlID0gKHZhbHVlIGFzIGFueSlbZmllbGRdO1xuICAgIGlmIChtb2RlID09PSAnY29kZScpIHtcbiAgICAgIHJldHVybiBgJHtmdmFsdWV9YDtcbiAgICB9XG4gICAgY29uc3QgbWFuYWdlciA9IHZhbHVlLkZNKGZpZWxkKTtcbiAgICBjb25zdCBjaG9pY2VzID0gKG1hbmFnZXIgYXMgYW55KS5jaG9pY2VzO1xuICAgIGlmICghY2hvaWNlcykge1xuICAgICAgcmV0dXJuIGAke2Z2YWx1ZX1gO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNoIG9mIGNob2ljZXMpIHtcbiAgICAgIGlmIChjaC52YWx1ZSA9PT0gZnZhbHVlKSB7XG4gICAgICAgIGlmIChtb2RlID09PSAnZGVzYycpIHtcbiAgICAgICAgICByZXR1cm4gY2guZGVzYztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYFske2Z2YWx1ZX1dICR7Y2guZGVzY31gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgWyR7ZnZhbHVlfV0gPz9gO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3BjaG9pY2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQQ2hvaWNlUGlwZTxUIGV4dGVuZHMgRGF0YU1vZGVsPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IGFueSxcbiAgICBtb2RlbDogVCxcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIG1vZGU6ICdjb2RlJyB8ICdkZXNjJyB8ICdib3RoJyA9ICdkZXNjJ1xuICApOiBzdHJpbmcge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiAnLSc7XG4gICAgfVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnLSc7XG4gICAgfVxuICAgIC8vIFVzZSB2YWx1ZSBmcm9tIGlucHV0LCBub3QgZnJvbSBmaWVsZFxuICAgIGNvbnN0IGZ2YWx1ZSA9IHZhbHVlOyAvLy0gKG1vZGVsIGFzIGFueSlbZmllbGRdO1xuICAgIGlmIChtb2RlID09PSAnY29kZScpIHtcbiAgICAgIHJldHVybiBgJHtmdmFsdWV9YDtcbiAgICB9XG4gICAgY29uc3QgbWFuYWdlciA9IG1vZGVsLkZNKGZpZWxkKTtcbiAgICBjb25zdCBjaG9pY2VzID0gKG1hbmFnZXIgYXMgYW55KS5jaG9pY2VzO1xuICAgIGlmICghY2hvaWNlcykge1xuICAgICAgcmV0dXJuIGAke2Z2YWx1ZX1gO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNoIG9mIGNob2ljZXMpIHtcbiAgICAgIGlmIChjaC52YWx1ZSA9PT0gZnZhbHVlKSB7XG4gICAgICAgIGlmIChtb2RlID09PSAnZGVzYycpIHtcbiAgICAgICAgICByZXR1cm4gY2guZGVzYztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYFske2Z2YWx1ZX1dICR7Y2guZGVzY31gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgWyR7ZnZhbHVlfV0gPz9gO1xuICB9XG59XG4iXX0=
|