visitor-segments
Version:
Hellobar Segments.
80 lines (79 loc) • 5.13 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _AbstractSegments_segments, _AbstractSegments_visitor, _AbstractSegments_interpolation, _AbstractSegments_custom, _AbstractSegments_storage;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractSegments = void 0;
const visitor_1 = require("./visitor");
const segmentMaps_1 = require("./segmentMaps");
const interpolation_1 = require("./interpolation");
const localStorageAdapter_1 = require("./valueStorage/localStorageAdapter");
const custom_1 = require("./segments/custom");
class AbstractSegments {
constructor(scope, options) {
_AbstractSegments_segments.set(this, void 0);
_AbstractSegments_visitor.set(this, void 0);
_AbstractSegments_interpolation.set(this, void 0);
_AbstractSegments_custom.set(this, void 0);
_AbstractSegments_storage.set(this, void 0);
const storageAdapter = (options === null || options === void 0 ? void 0 : options.storageAdapter) || localStorageAdapter_1.LocalStorageAdapter;
__classPrivateFieldSet(this, _AbstractSegments_storage, options === null || options === void 0 ? void 0 : options.extraStorage, "f");
__classPrivateFieldSet(this, _AbstractSegments_visitor, new visitor_1.Visitor(scope, storageAdapter), "f");
__classPrivateFieldSet(this, _AbstractSegments_segments, (0, segmentMaps_1.buildSegments)((options === null || options === void 0 ? void 0 : options.segmentsMap) || segmentMaps_1.SEGMENTS, __classPrivateFieldGet(this, _AbstractSegments_visitor, "f")), "f");
__classPrivateFieldSet(this, _AbstractSegments_interpolation, new interpolation_1.Interpolation(this), "f");
__classPrivateFieldSet(this, _AbstractSegments_custom, new custom_1.Custom(__classPrivateFieldGet(this, _AbstractSegments_visitor, "f")), "f");
}
onUpdate(handler) {
__classPrivateFieldGet(this, _AbstractSegments_visitor, "f").onUpdate(handler);
__classPrivateFieldGet(this, _AbstractSegments_custom, "f").onUpdate(handler);
}
get visitor() {
return __classPrivateFieldGet(this, _AbstractSegments_visitor, "f");
}
interpolate(input) {
return __classPrivateFieldGet(this, _AbstractSegments_interpolation, "f").run(input);
}
set(key, value) {
__classPrivateFieldGet(this, _AbstractSegments_custom, "f").setValue(key, value);
}
get(key) {
var _a;
return __classPrivateFieldGet(this, _AbstractSegments_custom, "f").value[key] || ((_a = __classPrivateFieldGet(this, _AbstractSegments_storage, "f")) === null || _a === void 0 ? void 0 : _a.get(key));
}
visit() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, _reject) => {
resolve();
});
});
}
reset() {
__classPrivateFieldGet(this, _AbstractSegments_custom, "f").reset();
}
clear() {
__classPrivateFieldGet(this, _AbstractSegments_visitor, "f").clear();
}
getSegmentByKey(key) {
return __classPrivateFieldGet(this, _AbstractSegments_segments, "f")[key];
}
}
exports.AbstractSegments = AbstractSegments;
_AbstractSegments_segments = new WeakMap(), _AbstractSegments_visitor = new WeakMap(), _AbstractSegments_interpolation = new WeakMap(), _AbstractSegments_custom = new WeakMap(), _AbstractSegments_storage = new WeakMap();