UNPKG

6.67 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var PageInstance = /** @class */ (function () {
4 function PageInstance(page, occurrence) {
5 if (page === undefined || occurrence === undefined) {
6 return;
7 }
8 this.occurrence = occurrence;
9 this.page = page;
10 this.node = page.node();
11 if (!this.node) {
12 throw new Error('The node did not return the initial state.');
13 }
14 }
15 Object.defineProperty(PageInstance.prototype, "path", {
16 get: function () {
17 return this.page.path;
18 },
19 enumerable: true,
20 configurable: true
21 });
22 Object.defineProperty(PageInstance.prototype, "mutex", {
23 get: function () {
24 return this.occurrence.mutex;
25 },
26 enumerable: true,
27 configurable: true
28 });
29 Object.defineProperty(PageInstance.prototype, "parent", {
30 get: function () {
31 return this.occurrence.parent;
32 },
33 enumerable: true,
34 configurable: true
35 });
36 Object.defineProperty(PageInstance.prototype, "openedFrom", {
37 get: function () {
38 return this.occurrence.openedFrom;
39 },
40 enumerable: true,
41 configurable: true
42 });
43 Object.defineProperty(PageInstance.prototype, "title", {
44 get: function () {
45 return this.occurrence.title || this.page.title;
46 },
47 enumerable: true,
48 configurable: true
49 });
50 Object.defineProperty(PageInstance.prototype, "state", {
51 get: function () {
52 return this.node;
53 },
54 enumerable: true,
55 configurable: true
56 });
57 Object.defineProperty(PageInstance.prototype, "params", {
58 get: function () {
59 return this.occurrence.params || {};
60 },
61 enumerable: true,
62 configurable: true
63 });
64 PageInstance.prototype.reduce = function (action) {
65 var newState = this.node.reduce(action);
66 if (newState === this.state) {
67 return this;
68 }
69 var clone = new PageInstance(this.page, this.occurrence);
70 clone.node = newState;
71 return clone;
72 };
73 return PageInstance;
74}());
75exports.PageInstance = PageInstance;
76//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhZ2VJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBO0lBT0Usc0JBQVksSUFBMkIsRUFBRSxVQUFtQztRQUMxRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4QixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsc0JBQVcsOEJBQUk7YUFBZjtZQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN4QixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLCtCQUFLO2FBQWhCO1lBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsZ0NBQU07YUFBakI7WUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDaEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyxvQ0FBVTthQUFyQjtZQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUVELHNCQUFXLCtCQUFLO2FBQWhCO1lBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2xELENBQUM7OztPQUFBO0lBRUQsc0JBQVcsK0JBQUs7YUFBaEI7WUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLGdDQUFNO2FBQWpCO1lBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFhLEVBQUUsQ0FBQztRQUMvQyxDQUFDOzs7T0FBQTtJQUVNLDZCQUFNLEdBQWIsVUFBYyxNQUFtQjtRQUMvQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFNLEtBQUssR0FBUyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRSxLQUFLLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQTVERCxJQTREQztBQTVEWSxvQ0FBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZHVjaWJsZSwgQWN0aW9uIH0gZnJvbSAncmVkdWNpYmxlLW5vZGUnO1xyXG5pbXBvcnQgeyBQYWdlT2NjdXJyZW5jZSwgUGFnZSB9IGZyb20gJy4vcGFnZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VJbnN0YW5jZTxUUGFyYW1zID0ge30sIFRTdGF0ZSA9IHt9PlxyXG4gIGltcGxlbWVudHMgUmVkdWNpYmxlPFBhZ2VJbnN0YW5jZTxUUGFyYW1zLCBUU3RhdGU+PiB7XHJcbiAgcHJpdmF0ZSBub2RlOiBSZWR1Y2libGU8VFN0YXRlPjtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IG9jY3VycmVuY2U6IFBhZ2VPY2N1cnJlbmNlPFRQYXJhbXM+O1xyXG4gIHB1YmxpYyByZWFkb25seSBwYWdlOiBQYWdlPFRQYXJhbXMsIFRTdGF0ZT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IFBhZ2U8VFBhcmFtcywgVFN0YXRlPiwgb2NjdXJyZW5jZTogUGFnZU9jY3VycmVuY2U8VFBhcmFtcz4pIHtcclxuICAgIGlmIChwYWdlID09PSB1bmRlZmluZWQgfHwgb2NjdXJyZW5jZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9jY3VycmVuY2UgPSBvY2N1cnJlbmNlO1xyXG4gICAgdGhpcy5wYWdlID0gcGFnZTtcclxuXHJcbiAgICB0aGlzLm5vZGUgPSBwYWdlLm5vZGUoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMubm9kZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBub2RlIGRpZCBub3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlLnBhdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG11dGV4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5vY2N1cnJlbmNlLm11dGV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwYXJlbnQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLm9jY3VycmVuY2UucGFyZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBvcGVuZWRGcm9tKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5vY2N1cnJlbmNlLm9wZW5lZEZyb207XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRpdGxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5vY2N1cnJlbmNlLnRpdGxlIHx8IHRoaXMucGFnZS50aXRsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogVFN0YXRlIHtcclxuICAgIHJldHVybiB0aGlzLm5vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBhcmFtcygpOiBUUGFyYW1zIHtcclxuICAgIHJldHVybiB0aGlzLm9jY3VycmVuY2UucGFyYW1zIHx8IDxUUGFyYW1zPnt9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZHVjZShhY3Rpb246IEFjdGlvbjxhbnk+KTogdGhpcyB7XHJcbiAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMubm9kZS5yZWR1Y2UoYWN0aW9uKTtcclxuICAgIGlmIChuZXdTdGF0ZSA9PT0gdGhpcy5zdGF0ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjbG9uZSA9IDx0aGlzPm5ldyBQYWdlSW5zdGFuY2UodGhpcy5wYWdlLCB0aGlzLm9jY3VycmVuY2UpO1xyXG4gICAgY2xvbmUubm9kZSA9IG5ld1N0YXRlO1xyXG4gICAgcmV0dXJuIGNsb25lO1xyXG4gIH1cclxufVxyXG4iXX0=
\No newline at end of file