@wemake4u/form-player-se 1.0.30 → 1.0.32
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/esm2022/lib/common/path.mjs +35 -0
- package/esm2022/lib/components/actionsCellRenderer/actionsCellRenderer.component.mjs +29 -16
- package/esm2022/lib/components/hostCellRenderer/hostCellRenderer.component.mjs +3 -2
- package/esm2022/lib/directives/grid.directive.mjs +82 -24
- package/esm2022/lib/directives/repeat.directive.mjs +1 -5
- package/esm2022/lib/directives/tabitem.directive.mjs +26 -0
- package/esm2022/lib/directives/validationpatch.directive.mjs +44 -2
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +94 -15
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +60 -38
- package/esm2022/lib/locale/locale-de.mjs +3 -2
- package/esm2022/lib/locale/locale-en.mjs +3 -2
- package/esm2022/lib/locale/locale-es.mjs +3 -2
- package/esm2022/lib/locale/locale-fr.mjs +3 -2
- package/esm2022/lib/locale/locale-it.mjs +3 -2
- package/esm2022/lib/locale/locale-pt.mjs +3 -2
- package/esm2022/lib/services/cache.service.mjs +86 -0
- package/esm2022/lib/services/dialog.service.mjs +2 -2
- package/esm2022/lib/services/form.service.mjs +41 -18
- package/esm2022/lib/services/formatter.service.mjs +2 -2
- package/esm2022/lib/services/function.service.mjs +14 -3
- package/esm2022/lib/services/grid.service.mjs +46 -26
- package/esm2022/lib/services/programmability.service.mjs +80 -45
- package/esm2022/lib/services/scope.service.mjs +9 -2
- package/esm2022/lib/services/toast.service.mjs +2 -2
- package/esm2022/lib/services/validation.service.mjs +2 -2
- package/esm2022/lib/services/weak.service.mjs +6 -1
- package/esm2022/lib/utils/bound.mjs +12 -0
- package/esm2022/lib/utils/groupByRow.mjs +2 -1
- package/esm2022/lib/utils/isMeaningful.mjs +13 -0
- package/esm2022/lib/utils/proxy.mjs +55 -0
- package/fesm2022/wemake4u-form-player-se.mjs +702 -207
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/common/path.d.ts +4 -0
- package/lib/components/actionsCellRenderer/actionsCellRenderer.component.d.ts +4 -0
- package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +1 -0
- package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +1 -0
- package/lib/components/setFilter/setFilter.component.d.ts +1 -0
- package/lib/dialog/dialog.component.d.ts +7 -0
- package/lib/directives/grid.directive.d.ts +17 -4
- package/lib/directives/tabitem.directive.d.ts +9 -0
- package/lib/directives/validationpatch.directive.d.ts +9 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +29 -5
- package/lib/dynamic-form/dynamic-form.component.d.ts +16 -6
- package/lib/locale/locale-de.d.ts +1 -0
- package/lib/locale/locale-en.d.ts +1 -0
- package/lib/locale/locale-es.d.ts +1 -0
- package/lib/locale/locale-fr.d.ts +1 -0
- package/lib/locale/locale-it.d.ts +1 -0
- package/lib/locale/locale-pt.d.ts +1 -0
- package/lib/locale/locale.d.ts +7 -0
- package/lib/services/cache.service.d.ts +21 -0
- package/lib/services/form.service.d.ts +7 -2
- package/lib/services/function.service.d.ts +2 -0
- package/lib/services/grid.service.d.ts +11 -5
- package/lib/services/programmability.service.d.ts +5 -4
- package/lib/services/scope.service.d.ts +5 -0
- package/lib/services/weak.service.d.ts +1 -0
- package/lib/utils/{functions.d.ts → bound.d.ts} +0 -1
- package/lib/utils/groupByRow.d.ts +1 -0
- package/lib/utils/isMeaningful.d.ts +1 -0
- package/lib/utils/proxy.d.ts +2 -0
- package/package.json +1 -1
- package/esm2022/lib/utils/functions.mjs +0 -31
|
@@ -39,6 +39,11 @@ export class WeakService {
|
|
|
39
39
|
delete cachedObject[key];
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
invalidateAll(source) {
|
|
43
|
+
if (this.cache.has(source)) {
|
|
44
|
+
this.cache.delete(source);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
42
47
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WeakService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
48
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WeakService, providedIn: 'root' });
|
|
44
49
|
}
|
|
@@ -48,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
48
53
|
providedIn: 'root'
|
|
49
54
|
}]
|
|
50
55
|
}], ctorParameters: () => [] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvc2VydmljZXMvd2Vhay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sV0FBVztJQUV0QixnQkFBZ0IsQ0FBQztJQUVULEtBQUssR0FBRyxJQUFJLE9BQU8sRUFBK0IsQ0FBQztJQUUzRCxNQUFNLENBQUMsTUFBYyxFQUFFLEdBQVc7UUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksQ0FBSSxNQUFjLEVBQUUsR0FBVyxFQUFFLElBQWEsRUFDOUMsV0FBMkMsSUFBSSxFQUMvQyxRQUFvQyxJQUFJO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7UUFFN0MsSUFBSSxHQUFHLElBQUksWUFBWTtlQUNsQixDQUFDLFFBQVEsSUFBSSxJQUFJO21CQUNmLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNuQyxDQUFDO1lBQ0MsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksTUFBTSxHQUFRLElBQUksRUFBRSxDQUFDO1FBRXpCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4QyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ2xCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBRTNCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYyxFQUFFLEdBQVc7UUFDcEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDO1lBQzdDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWM7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO3dHQTlEVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vha1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwcml2YXRlIGNhY2hlID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xyXG5cclxuICBleGlzdHMoc291cmNlOiBvYmplY3QsIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMoc291cmNlKSkge1xyXG4gICAgICBjb25zdCBjYWNoZWRPYmplY3QgPSB0aGlzLmNhY2hlLmdldChzb3VyY2UpITtcclxuICAgICAgcmV0dXJuIChrZXkgaW4gY2FjaGVkT2JqZWN0KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNhbGw8VD4oc291cmNlOiBvYmplY3QsIGtleTogc3RyaW5nLCBmdW5jOiAoKSA9PiBUXHJcbiAgICAsIHJldXNhYmxlOiAoKHZhbHVlOiBUKSA9PiBib29sZWFuKSB8IG51bGwgPSBudWxsXHJcbiAgICAsIHN0b3JlOiAoKHZhbHVlOiBUKSA9PiBhbnkpIHwgbnVsbCA9IG51bGxcclxuICAgICk6IFQge1xyXG4gICAgaWYgKCF0aGlzLmNhY2hlLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgIHRoaXMuY2FjaGUuc2V0KHNvdXJjZSwge30pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNhY2hlZE9iamVjdCA9IHRoaXMuY2FjaGUuZ2V0KHNvdXJjZSkhO1xyXG5cclxuICAgIGlmIChrZXkgaW4gY2FjaGVkT2JqZWN0XHJcbiAgICAgICYmIChyZXVzYWJsZSA9PSBudWxsXHJcbiAgICAgICAgfHwgcmV1c2FibGUoY2FjaGVkT2JqZWN0W2tleV0pKSlcclxuICAgIHtcclxuICAgICAgcmV0dXJuIGNhY2hlZE9iamVjdFtrZXldO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHQ6IGFueSA9IGZ1bmMoKTtcclxuXHJcbiAgICBpZiAoc3RvcmUgIT0gbnVsbCkge1xyXG4gICAgICByZXN1bHQgPSBzdG9yZShyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGUgPSBpc09ic2VydmFibGUocmVzdWx0KTtcclxuXHJcbiAgICBpZiAob2JzZXJ2YWJsZSkge1xyXG4gICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcclxuICAgICAgICB0YWtlKDEpLCAgICAgICAgXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjYWNoZWRPYmplY3Rba2V5XSA9IHJlc3VsdDtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaW52YWxpZGF0ZShzb3VyY2U6IG9iamVjdCwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhY2hlLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgIGNvbnN0IGNhY2hlZE9iamVjdCA9IHRoaXMuY2FjaGUuZ2V0KHNvdXJjZSkhO1xyXG4gICAgICBkZWxldGUgY2FjaGVkT2JqZWN0W2tleV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnZhbGlkYXRlQWxsKHNvdXJjZTogb2JqZWN0KSB7XHJcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMoc291cmNlKSkge1xyXG4gICAgICB0aGlzLmNhY2hlLmRlbGV0ZShzb3VyY2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { bindFunction } from '../utils/proxy';
|
|
2
|
+
export function ToBoundArrows(instance, methodNames) {
|
|
3
|
+
const result = {};
|
|
4
|
+
for (const name of methodNames) {
|
|
5
|
+
const original = instance[name];
|
|
6
|
+
if (typeof original === 'function') {
|
|
7
|
+
result[name] = bindFunction(original, instance);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi91dGlscy9ib3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsUUFBVyxFQUNYLFdBQXdCO0lBQ3hCLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7SUFFdkMsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxNQUFNLENBQUMsSUFBYyxDQUFDLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiaW5kRnVuY3Rpb24gfSBmcm9tICcuLi91dGlscy9wcm94eSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gVG9Cb3VuZEFycm93czxUIGV4dGVuZHMgb2JqZWN0PihcclxuICBpbnN0YW5jZTogVCxcclxuICBtZXRob2ROYW1lczogKGtleW9mIFQpW10pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgZm9yIChjb25zdCBuYW1lIG9mIG1ldGhvZE5hbWVzKSB7XHJcbiAgICBjb25zdCBvcmlnaW5hbCA9IGluc3RhbmNlW25hbWVdO1xyXG4gICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXN1bHRbbmFtZSBhcyBzdHJpbmddID0gYmluZEZ1bmN0aW9uKG9yaWdpbmFsLCBpbnN0YW5jZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcbiJdfQ==
|
|
@@ -4,6 +4,7 @@ export function groupByRow(forms) {
|
|
|
4
4
|
type: form.type,
|
|
5
5
|
name: form.name,
|
|
6
6
|
title: form.title,
|
|
7
|
+
readonly: form.readonly,
|
|
7
8
|
disabled: form.disabled,
|
|
8
9
|
inactive: form.inactive,
|
|
9
10
|
path: form.path,
|
|
@@ -32,4 +33,4 @@ function groupRowsRecursively(components) {
|
|
|
32
33
|
components
|
|
33
34
|
}));
|
|
34
35
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBCeVJvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3V0aWxzL2dyb3VwQnlSb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMENBLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtRQUNYLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1FBQ3pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtRQUMzQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztLQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFVBQXVCO0lBQ25ELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO0lBRXJELFNBQVMsZ0JBQWdCLENBQUMsU0FBb0I7UUFDNUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFFakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBRUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUUzQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDLElBQUksQ0FBQztZQUN4QixHQUFHLEtBQUs7WUFDUixJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNoRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFN0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLEdBQUc7UUFDSCxVQUFVO0tBQ1gsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIEZvcm0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5OiBzdHJpbmcgfCBib29sZWFuIHwgbnVsbDtcclxuICBkaXNhYmxlZDogc3RyaW5nIHwgYm9vbGVhbiB8IG51bGw7XHJcbiAgaW5hY3RpdmU6IHN0cmluZyB8IGJvb2xlYW4gfCBudWxsO1xyXG4gIHBhdGg6IHN0cmluZyB8IG51bGw7XHJcbiAgdmVydGljYWxBbGlnbm1lbnQ6IHN0cmluZyB8IG51bGw7XHJcbiAgaXNUZW1wbGF0ZTogYm9vbGVhbiB8IG51bGw7XHJcbiAgaTE4bjogYW55LFxyXG4gIGNvbXBvbmVudHM6IENvbXBvbmVudFtdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ29tcG9uZW50IHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGxheW91dDogeyBjb2x1bW5zOiBudW1iZXIgfCBudWxsLCByb3c6IHN0cmluZyB9O1xyXG4gIGNvbXBvbmVudHM/OiBDb21wb25lbnRbXTtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmludGVyZmFjZSBSb3dDb21wb25lbnQge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbGF5b3V0OiB7IGNvbHVtbnM6IG51bWJlciB8IG51bGwsIHJvdzogc3RyaW5nIH07XHJcbiAgcm93cz86IFJvd0dyb3VwW107XHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUm93R3JvdXAge1xyXG4gIHJvdzogc3RyaW5nO1xyXG4gIGNvbXBvbmVudHM6IFJvd0NvbXBvbmVudFtdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgR3JvdXBlZEZvcm0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpc1RlbXBsYXRlOiBib29sZWFuIHwgbnVsbDtcclxuICByb3dzOiBSb3dHcm91cFtdO1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQnlSb3coZm9ybXM6IEZvcm1bXSk6IEdyb3VwZWRGb3JtW10ge1xyXG4gIHJldHVybiBmb3Jtcy5tYXAoZm9ybSA9PiAoe1xyXG4gICAgaWQ6IGZvcm0uaWQsXHJcbiAgICB0eXBlOiBmb3JtLnR5cGUsXHJcbiAgICBuYW1lOiBmb3JtLm5hbWUsXHJcbiAgICB0aXRsZTogZm9ybS50aXRsZSxcclxuICAgIHJlYWRvbmx5OiBmb3JtLnJlYWRvbmx5LFxyXG4gICAgZGlzYWJsZWQ6IGZvcm0uZGlzYWJsZWQsXHJcbiAgICBpbmFjdGl2ZTogZm9ybS5pbmFjdGl2ZSxcclxuICAgIHBhdGg6IGZvcm0ucGF0aCxcclxuICAgIHZlcnRpY2FsQWxpZ25tZW50OiBmb3JtLnZlcnRpY2FsQWxpZ25tZW50LFxyXG4gICAgaXNUZW1wbGF0ZTogZm9ybS5pc1RlbXBsYXRlLFxyXG4gICAgaTE4bjogZm9ybS5pMThuLFxyXG4gICAgcm93czogZ3JvdXBSb3dzUmVjdXJzaXZlbHkoZm9ybS5jb21wb25lbnRzKVxyXG4gIH0pKTsgIFxyXG59XHJcblxyXG5mdW5jdGlvbiBncm91cFJvd3NSZWN1cnNpdmVseShjb21wb25lbnRzOiBDb21wb25lbnRbXSk6IFJvd0dyb3VwW10ge1xyXG4gIGNvbnN0IGdyb3VwZWRNYXAgPSBuZXcgTWFwPHN0cmluZywgUm93Q29tcG9uZW50W10+KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHByb2Nlc3NDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnQpIHtcclxuICAgIGNvbnN0IHJvdyA9IGNvbXBvbmVudC5sYXlvdXQucm93O1xyXG5cclxuICAgIGlmICghZ3JvdXBlZE1hcC5oYXMocm93KSkge1xyXG4gICAgICBncm91cGVkTWFwLnNldChyb3csIFtdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7IGNvbXBvbmVudHMsIC4uLnByb3BzIH0gPSBjb21wb25lbnQ7XHJcblxyXG4gICAgZ3JvdXBlZE1hcC5nZXQocm93KSEucHVzaCh7XHJcbiAgICAgIC4uLnByb3BzLFxyXG4gICAgICByb3dzOiBjb21wb25lbnRzID8gZ3JvdXBSb3dzUmVjdXJzaXZlbHkoY29tcG9uZW50cykgOiB1bmRlZmluZWRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50cy5mb3JFYWNoKGNvbXBvbmVudCA9PiBwcm9jZXNzQ29tcG9uZW50KGNvbXBvbmVudCkpO1xyXG5cclxuICByZXR1cm4gQXJyYXkuZnJvbShncm91cGVkTWFwLmVudHJpZXMoKSkubWFwKChbcm93LCBjb21wb25lbnRzXSkgPT4gKHtcclxuICAgIHJvdyxcclxuICAgIGNvbXBvbmVudHNcclxuICB9KSk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function isMeaningful(x) {
|
|
2
|
+
if (x == null)
|
|
3
|
+
return false; // null/undefined
|
|
4
|
+
if (Array.isArray(x))
|
|
5
|
+
return x.length > 0; // empty array
|
|
6
|
+
if (typeof x === 'string')
|
|
7
|
+
return x.trim().length > 0; // empty string
|
|
8
|
+
if (typeof x === 'object')
|
|
9
|
+
return Object.keys(x).length > 0; // empty object
|
|
10
|
+
return !!x; // number/boolean/other
|
|
11
|
+
}
|
|
12
|
+
;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNNZWFuaW5nZnVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvaXNNZWFuaW5nZnVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBTTtJQUNqQyxJQUFJLENBQUMsSUFBSSxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBa0IsaUJBQWlCO0lBQy9ELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUksY0FBYztJQUM1RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZTtJQUN0RSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWU7SUFDNUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0FBQ3JDLENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTWVhbmluZ2Z1bCh4OiBhbnkpOiBib29sZWFuIHtcclxuICBpZiAoeCA9PSBudWxsKSByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAgLy8gbnVsbC91bmRlZmluZWRcclxuICBpZiAoQXJyYXkuaXNBcnJheSh4KSkgcmV0dXJuIHgubGVuZ3RoID4gMDsgICAgLy8gZW1wdHkgYXJyYXlcclxuICBpZiAodHlwZW9mIHggPT09ICdzdHJpbmcnKSByZXR1cm4geC50cmltKCkubGVuZ3RoID4gMDsgLy8gZW1wdHkgc3RyaW5nXHJcbiAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JykgcmV0dXJuIE9iamVjdC5rZXlzKHgpLmxlbmd0aCA+IDA7IC8vIGVtcHR5IG9iamVjdFxyXG4gIHJldHVybiAhIXg7IC8vIG51bWJlci9ib29sZWFuL290aGVyXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export function bindFunction(fn, context) {
|
|
2
|
+
if (fn.bind && context && fn.prototype !== undefined) {
|
|
3
|
+
return fn.bind(context);
|
|
4
|
+
}
|
|
5
|
+
return (...args) => fn.apply(context, args);
|
|
6
|
+
}
|
|
7
|
+
export function toProxy(instance, seen = new WeakMap()) {
|
|
8
|
+
if (instance === null || typeof instance !== 'object')
|
|
9
|
+
return instance;
|
|
10
|
+
if (seen.has(instance))
|
|
11
|
+
return seen.get(instance);
|
|
12
|
+
const proxy = new Proxy(instance, {
|
|
13
|
+
get: (target, property, receiver) => {
|
|
14
|
+
let value;
|
|
15
|
+
try {
|
|
16
|
+
value = Reflect.get(target, property, receiver);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
if (typeof property === 'symbol' || property === 'toJSON')
|
|
22
|
+
return value;
|
|
23
|
+
if (typeof value === 'function') {
|
|
24
|
+
return bindFunction(value, instance);
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === 'object' && value !== null) {
|
|
27
|
+
if (value instanceof Date || value instanceof RegExp || value instanceof Map || value instanceof Set) {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
if (Array.isArray(value)) {
|
|
31
|
+
if (seen.has(value))
|
|
32
|
+
return seen.get(value);
|
|
33
|
+
const arrayProxy = new Proxy(value, {
|
|
34
|
+
get(arrTarget, index, arrReceiver) {
|
|
35
|
+
const item = Reflect.get(arrTarget, index, arrReceiver);
|
|
36
|
+
return typeof item === 'object' && item !== null
|
|
37
|
+
? toProxy(item, seen)
|
|
38
|
+
: item;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
seen.set(value, arrayProxy);
|
|
42
|
+
return arrayProxy;
|
|
43
|
+
}
|
|
44
|
+
return toProxy(value, seen);
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
},
|
|
48
|
+
has(target, key) {
|
|
49
|
+
return key in target;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
seen.set(instance, proxy);
|
|
53
|
+
return proxy;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi91dGlscy9wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQVksRUFBRSxPQUFZO0lBQ3JELElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNyRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsUUFBYSxFQUFFLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRTtJQUN6RCxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQ3ZFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ2hDLEdBQUcsRUFBRSxDQUFDLE1BQVcsRUFBRSxRQUFxQixFQUFFLFFBQWEsRUFBRSxFQUFFO1lBQ3pELElBQUksS0FBVSxDQUFDO1lBQ2YsSUFBSSxDQUFDO2dCQUNILEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDbEQsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBRUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFeEUsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2hELElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksTUFBTSxJQUFJLEtBQUssWUFBWSxHQUFHLElBQUksS0FBSyxZQUFZLEdBQUcsRUFBRSxDQUFDO29CQUNyRyxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO2dCQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN6QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO3dCQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO3dCQUNsQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXOzRCQUMvQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7NEJBQ3hELE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJO2dDQUM5QyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7Z0NBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ1gsQ0FBQztxQkFDRixDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQzVCLE9BQU8sVUFBVSxDQUFDO2dCQUNwQixDQUFDO2dCQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHO1lBQ2IsT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDO1FBQ3ZCLENBQUM7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYmluZEZ1bmN0aW9uKGZuOiBGdW5jdGlvbiwgY29udGV4dDogYW55KSB7XHJcbiAgaWYgKGZuLmJpbmQgJiYgY29udGV4dCAmJiBmbi5wcm90b3R5cGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIGZuLmJpbmQoY29udGV4dCk7XHJcbiAgfVxyXG4gIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IGZuLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9Qcm94eShpbnN0YW5jZTogYW55LCBzZWVuID0gbmV3IFdlYWtNYXAoKSk6IGFueSB7ICBcclxuICBpZiAoaW5zdGFuY2UgPT09IG51bGwgfHwgdHlwZW9mIGluc3RhbmNlICE9PSAnb2JqZWN0JykgcmV0dXJuIGluc3RhbmNlO1xyXG4gIGlmIChzZWVuLmhhcyhpbnN0YW5jZSkpIHJldHVybiBzZWVuLmdldChpbnN0YW5jZSk7XHJcblxyXG4gIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KGluc3RhbmNlLCB7XHJcbiAgICBnZXQ6ICh0YXJnZXQ6IGFueSwgcHJvcGVydHk6IFByb3BlcnR5S2V5LCByZWNlaXZlcjogYW55KSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHZhbHVlID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wZXJ0eSwgcmVjZWl2ZXIpO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnc3ltYm9sJyB8fCBwcm9wZXJ0eSA9PT0gJ3RvSlNPTicpIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICByZXR1cm4gYmluZEZ1bmN0aW9uKHZhbHVlLCBpbnN0YW5jZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCB8fCB2YWx1ZSBpbnN0YW5jZW9mIE1hcCB8fCB2YWx1ZSBpbnN0YW5jZW9mIFNldCkge1xyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSByZXR1cm4gc2Vlbi5nZXQodmFsdWUpO1xyXG4gICAgICAgICAgY29uc3QgYXJyYXlQcm94eSA9IG5ldyBQcm94eSh2YWx1ZSwge1xyXG4gICAgICAgICAgICBnZXQoYXJyVGFyZ2V0LCBpbmRleCwgYXJyUmVjZWl2ZXIpIHtcclxuICAgICAgICAgICAgICBjb25zdCBpdGVtID0gUmVmbGVjdC5nZXQoYXJyVGFyZ2V0LCBpbmRleCwgYXJyUmVjZWl2ZXIpO1xyXG4gICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgPyB0b1Byb3h5KGl0ZW0sIHNlZW4pXHJcbiAgICAgICAgICAgICAgICA6IGl0ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgc2Vlbi5zZXQodmFsdWUsIGFycmF5UHJveHkpO1xyXG4gICAgICAgICAgcmV0dXJuIGFycmF5UHJveHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdG9Qcm94eSh2YWx1ZSwgc2Vlbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0sXHJcbiAgICBoYXModGFyZ2V0LCBrZXkpIHtcclxuICAgICAgcmV0dXJuIGtleSBpbiB0YXJnZXQ7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHNlZW4uc2V0KGluc3RhbmNlLCBwcm94eSk7XHJcbiAgcmV0dXJuIHByb3h5O1xyXG59XHJcbiJdfQ==
|