@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
34 lines • 3.52 kB
JavaScript
var TupleSelector_1;
import { __decorate } from "tslib";
import { addTupleType, Tuple } from "./exports";
import stringify from "json-stable-stringify";
// export interface TupleSelectorJsonI {
// name: string;
// selector: { [name: string]: any };
// }
export let TupleSelector = TupleSelector_1 = class TupleSelector extends Tuple {
name;
selector;
constructor(name, selector) {
super("vortex.TupleSelector");
this.name = name;
this.selector = selector;
}
toOrderedJsonStr() {
const fieldJsonDict = this.toJsonField(this.selector);
return stringify({
"name": this.name,
"selector": fieldJsonDict
});
}
static fromJsonStr(jsonStr) {
const data = JSON.parse(jsonStr);
const newTs = new TupleSelector_1(data.name, {});
newTs.selector = newTs.fromJsonField(data.selector);
return newTs;
}
};
TupleSelector = TupleSelector_1 = __decorate([
addTupleType
], TupleSelector);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHVwbGVTZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92b3J0ZXgvVHVwbGVTZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQy9DLE9BQVEsU0FBUyxNQUFNLHVCQUF1QixDQUFBO0FBRTlDLHdDQUF3QztBQUN4QyxvQkFBb0I7QUFDcEIseUNBQXlDO0FBQ3pDLElBQUk7QUFHRyxXQUFNLGFBQWEscUJBQW5CLE1BQU0sYUFBYyxTQUFRLEtBQUs7SUFFekI7SUFDQTtJQUZYLFlBQ1csSUFBWSxFQUNaLFFBQWE7UUFFcEIsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFIdEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQUs7SUFHeEIsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3JELE9BQU8sU0FBUyxDQUFDO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxhQUFhO1NBQzVCLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWU7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQzlDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkQsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztDQUNKLENBQUE7QUF0QlksYUFBYTtJQUR6QixZQUFZO0dBQ0EsYUFBYSxDQXNCekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRUdXBsZVR5cGUsIFR1cGxlIH0gZnJvbSBcIi4vZXhwb3J0c1wiXG5pbXBvcnQgIHN0cmluZ2lmeSBmcm9tIFwianNvbi1zdGFibGUtc3RyaW5naWZ5XCJcblxuLy8gZXhwb3J0IGludGVyZmFjZSBUdXBsZVNlbGVjdG9ySnNvbkkge1xuLy8gICAgIG5hbWU6IHN0cmluZztcbi8vICAgICBzZWxlY3RvcjogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG4vLyB9XG5cbkBhZGRUdXBsZVR5cGVcbmV4cG9ydCBjbGFzcyBUdXBsZVNlbGVjdG9yIGV4dGVuZHMgVHVwbGUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgc2VsZWN0b3I6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihcInZvcnRleC5UdXBsZVNlbGVjdG9yXCIpXG4gICAgfVxuICAgIFxuICAgIHRvT3JkZXJlZEpzb25TdHIoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmllbGRKc29uRGljdCA9IHRoaXMudG9Kc29uRmllbGQodGhpcy5zZWxlY3RvcilcbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeSh7XG4gICAgICAgICAgICBcIm5hbWVcIjogdGhpcy5uYW1lLFxuICAgICAgICAgICAgXCJzZWxlY3RvclwiOiBmaWVsZEpzb25EaWN0XG4gICAgICAgIH0pXG4gICAgfVxuICAgIFxuICAgIHN0YXRpYyBmcm9tSnNvblN0cihqc29uU3RyOiBzdHJpbmcpOiBUdXBsZVNlbGVjdG9yIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoanNvblN0cilcbiAgICAgICAgY29uc3QgbmV3VHMgPSBuZXcgVHVwbGVTZWxlY3RvcihkYXRhLm5hbWUsIHt9KVxuICAgICAgICBuZXdUcy5zZWxlY3RvciA9IG5ld1RzLmZyb21Kc29uRmllbGQoZGF0YS5zZWxlY3RvcilcbiAgICAgICAgcmV0dXJuIG5ld1RzXG4gICAgfVxufVxuIl19