vsn 0.1.121 → 0.1.123
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/demo/demo.html +1 -34
- package/demo/examples/component-slots.html +5 -1
- package/demo/examples/replace-html.html +19 -0
- package/demo/named-stack.html +34 -0
- package/demo/resources/xhr-html.html +1 -0
- package/demo/{xhr.html → resources/xhr-lazy.html} +18 -1
- package/demo/vsn.js +2 -2
- package/demo/xhr-test.html +4 -0
- package/dist/AST/{ArithmeticAssignmentNode.d.ts → AssignmentNode.d.ts} +2 -2
- package/dist/AST/{ArithmeticAssignmentNode.js → AssignmentNode.js} +20 -18
- package/dist/AST/AssignmentNode.js.map +1 -0
- package/dist/AST/NamedStackNode.d.ts +28 -0
- package/dist/AST/NamedStackNode.js +142 -0
- package/dist/AST/NamedStackNode.js.map +1 -0
- package/dist/AST.d.ts +64 -55
- package/dist/AST.js +98 -60
- package/dist/AST.js.map +1 -1
- package/dist/DOM.js +2 -2
- package/dist/DOM.js.map +1 -1
- package/dist/Scope.d.ts +2 -0
- package/dist/Scope.js +9 -1
- package/dist/Scope.js.map +1 -1
- package/dist/Tag.js +3 -1
- package/dist/Tag.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/AST/{ArithmeticAssignmentNode.ts → AssignmentNode.ts} +5 -3
- package/src/AST/NamedStackNode.ts +83 -0
- package/src/AST.ts +39 -4
- package/src/DOM.ts +2 -2
- package/src/Scope.ts +6 -1
- package/src/Tag.ts +3 -1
- package/src/version.ts +1 -1
- package/dist/AST/ArithmeticAssignmentNode.js.map +0 -1
package/demo/xhr-test.html
CHANGED
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
|
|
24
24
|
<a href="./xhr-response.html" vsn-xhr:put="@text = response" vsn-on:xhr-error="@text='error';wait(3);@text='Try Again'" id="link-put">Link</a>
|
|
25
25
|
|
|
26
|
+
<div id="html-container"></div>
|
|
27
|
+
<a href="./resources/xhr-html.html" vsn-xhr="#html-container.@html = response;?(#html-header).$color='yellow';" id="link-post">Link</a>
|
|
28
|
+
|
|
29
|
+
|
|
26
30
|
<script type="text/javascript" src="vsn.js"></script>
|
|
27
31
|
</body>
|
|
28
32
|
</html>
|
|
@@ -6,7 +6,7 @@ import { Token, TokenType, TreeNode } from "../AST";
|
|
|
6
6
|
import { Node } from "./Node";
|
|
7
7
|
import { RootScopeMemberNode } from "./RootScopeMemberNode";
|
|
8
8
|
import { ScopeMemberNode } from "./ScopeMemberNode";
|
|
9
|
-
export declare class
|
|
9
|
+
export declare class AssignmentNode extends Node implements TreeNode {
|
|
10
10
|
readonly left: RootScopeMemberNode | ScopeMemberNode;
|
|
11
11
|
readonly right: TreeNode;
|
|
12
12
|
readonly type: TokenType;
|
|
@@ -20,5 +20,5 @@ export declare class ArithmeticAssignmentNode extends Node implements TreeNode {
|
|
|
20
20
|
handleDOMObject(key: string, dom: DOM, scope: Scope, domObject: DOMObject, tag: Tag): Promise<any>;
|
|
21
21
|
handleArray(key: any, left: any, right: any, scope: any): any;
|
|
22
22
|
static match(tokens: Token[]): boolean;
|
|
23
|
-
static parse(lastNode: any, token: any, tokens: Token[]):
|
|
23
|
+
static parse(lastNode: any, token: any, tokens: Token[]): AssignmentNode;
|
|
24
24
|
}
|
|
@@ -51,7 +51,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.
|
|
54
|
+
exports.AssignmentNode = void 0;
|
|
55
55
|
var Scope_1 = require("../Scope");
|
|
56
56
|
var DOMObject_1 = require("../DOM/DOMObject");
|
|
57
57
|
var AST_1 = require("../AST");
|
|
@@ -63,22 +63,22 @@ var ElementAttributeNode_1 = require("./ElementAttributeNode");
|
|
|
63
63
|
var ElementStyleNode_1 = require("./ElementStyleNode");
|
|
64
64
|
var UnitLiteralNode_1 = require("./UnitLiteralNode");
|
|
65
65
|
var ScopeObject_1 = require("../Scope/ScopeObject");
|
|
66
|
-
var
|
|
67
|
-
__extends(
|
|
68
|
-
function
|
|
66
|
+
var AssignmentNode = /** @class */ (function (_super) {
|
|
67
|
+
__extends(AssignmentNode, _super);
|
|
68
|
+
function AssignmentNode(left, right, type) {
|
|
69
69
|
var _this = _super.call(this) || this;
|
|
70
70
|
_this.left = left;
|
|
71
71
|
_this.right = right;
|
|
72
72
|
_this.type = type;
|
|
73
73
|
return _this;
|
|
74
74
|
}
|
|
75
|
-
|
|
75
|
+
AssignmentNode.prototype._getChildNodes = function () {
|
|
76
76
|
return [
|
|
77
77
|
this.left,
|
|
78
78
|
this.right
|
|
79
79
|
];
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
AssignmentNode.prototype.evaluate = function (scope, dom, tag) {
|
|
82
82
|
if (tag === void 0) { tag = null; }
|
|
83
83
|
return __awaiter(this, void 0, void 0, function () {
|
|
84
84
|
var scopes, name, inner, elements, values, _i, scopes_1, localScope, left, right;
|
|
@@ -133,6 +133,8 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
133
133
|
case 7:
|
|
134
134
|
if (!(_i < scopes_1.length)) return [3 /*break*/, 13];
|
|
135
135
|
localScope = scopes_1[_i];
|
|
136
|
+
if (!localScope)
|
|
137
|
+
return [3 /*break*/, 12];
|
|
136
138
|
if (!(localScope instanceof DOMObject_1.DOMObject)) return [3 /*break*/, 9];
|
|
137
139
|
return [4 /*yield*/, this.handleDOMObject(name, dom, scope, localScope, tag)];
|
|
138
140
|
case 8:
|
|
@@ -159,7 +161,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
159
161
|
});
|
|
160
162
|
});
|
|
161
163
|
};
|
|
162
|
-
|
|
164
|
+
AssignmentNode.prototype.handle = function (name, left, right, localScope) {
|
|
163
165
|
if (left instanceof Array) {
|
|
164
166
|
left = this.handleArray(name, left, right, localScope);
|
|
165
167
|
}
|
|
@@ -174,7 +176,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
174
176
|
}
|
|
175
177
|
return left;
|
|
176
178
|
};
|
|
177
|
-
|
|
179
|
+
AssignmentNode.prototype.handleNumber = function (key, left, right, scope) {
|
|
178
180
|
if (right !== null && !Number.isFinite(right))
|
|
179
181
|
right = parseFloat("" + right);
|
|
180
182
|
left = left;
|
|
@@ -199,7 +201,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
199
201
|
scope.set(key, left);
|
|
200
202
|
return left;
|
|
201
203
|
};
|
|
202
|
-
|
|
204
|
+
AssignmentNode.prototype.handleString = function (key, left, right, scope) {
|
|
203
205
|
switch (this.type) {
|
|
204
206
|
case AST_1.TokenType.ASSIGN:
|
|
205
207
|
left = right;
|
|
@@ -220,7 +222,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
220
222
|
scope.set(key, left);
|
|
221
223
|
return left;
|
|
222
224
|
};
|
|
223
|
-
|
|
225
|
+
AssignmentNode.prototype.handleUnit = function (key, left, right, scope) {
|
|
224
226
|
if (!(left instanceof UnitLiteralNode_1.UnitLiteral)) {
|
|
225
227
|
left = new UnitLiteralNode_1.UnitLiteral(left);
|
|
226
228
|
}
|
|
@@ -248,7 +250,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
248
250
|
scope.set(key, left);
|
|
249
251
|
return left;
|
|
250
252
|
};
|
|
251
|
-
|
|
253
|
+
AssignmentNode.prototype.handleDOMObject = function (key, dom, scope, domObject, tag) {
|
|
252
254
|
return __awaiter(this, void 0, void 0, function () {
|
|
253
255
|
var left, right;
|
|
254
256
|
return __generator(this, function (_a) {
|
|
@@ -263,7 +265,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
263
265
|
});
|
|
264
266
|
});
|
|
265
267
|
};
|
|
266
|
-
|
|
268
|
+
AssignmentNode.prototype.handleArray = function (key, left, right, scope) {
|
|
267
269
|
if (!(right instanceof Array))
|
|
268
270
|
right = [right];
|
|
269
271
|
switch (this.type) {
|
|
@@ -302,7 +304,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
302
304
|
scope.dispatch("change:" + key);
|
|
303
305
|
return left;
|
|
304
306
|
};
|
|
305
|
-
|
|
307
|
+
AssignmentNode.match = function (tokens) {
|
|
306
308
|
return [
|
|
307
309
|
AST_1.TokenType.ASSIGN,
|
|
308
310
|
AST_1.TokenType.ADD_ASSIGN,
|
|
@@ -312,7 +314,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
312
314
|
AST_1.TokenType.TILDE,
|
|
313
315
|
].indexOf(tokens[0].type) > -1;
|
|
314
316
|
};
|
|
315
|
-
|
|
317
|
+
AssignmentNode.parse = function (lastNode, token, tokens) {
|
|
316
318
|
if (!(lastNode instanceof RootScopeMemberNode_1.RootScopeMemberNode) && !(lastNode instanceof ScopeMemberNode_1.ScopeMemberNode) && !(lastNode instanceof ElementAttributeNode_1.ElementAttributeNode) && !(lastNode instanceof ElementStyleNode_1.ElementStyleNode)) {
|
|
317
319
|
throw SyntaxError("Invalid assignment syntax near " + AST_1.Tree.toCode(tokens.splice(0, 10)));
|
|
318
320
|
}
|
|
@@ -325,9 +327,9 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
325
327
|
openCharacter: '',
|
|
326
328
|
closeCharacter: ';',
|
|
327
329
|
});
|
|
328
|
-
return new
|
|
330
|
+
return new AssignmentNode(lastNode, AST_1.Tree.processTokens(assignmentTokens), token.type);
|
|
329
331
|
};
|
|
330
|
-
return
|
|
332
|
+
return AssignmentNode;
|
|
331
333
|
}(Node_1.Node));
|
|
332
|
-
exports.
|
|
333
|
-
//# sourceMappingURL=
|
|
334
|
+
exports.AssignmentNode = AssignmentNode;
|
|
335
|
+
//# sourceMappingURL=AssignmentNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssignmentNode.js","sourceRoot":"","sources":["../../src/AST/AssignmentNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Scope } from "../Scope";
|
|
2
|
+
import { DOM } from "../DOM";
|
|
3
|
+
import { Tag } from "../Tag";
|
|
4
|
+
import { Token, TreeNode } from "../AST";
|
|
5
|
+
import { Node } from "./Node";
|
|
6
|
+
import { BlockNode } from "./BlockNode";
|
|
7
|
+
import { LiteralNode } from "./LiteralNode";
|
|
8
|
+
declare type StackContext = {
|
|
9
|
+
block: BlockNode;
|
|
10
|
+
scope: Scope;
|
|
11
|
+
dom: DOM;
|
|
12
|
+
tag: Tag;
|
|
13
|
+
};
|
|
14
|
+
export declare class NamedStackNode extends Node implements TreeNode {
|
|
15
|
+
readonly stackName: LiteralNode<string>;
|
|
16
|
+
readonly statements: BlockNode;
|
|
17
|
+
protected requiresPrep: boolean;
|
|
18
|
+
protected static stacks: {
|
|
19
|
+
[key: string]: StackContext[];
|
|
20
|
+
};
|
|
21
|
+
protected static executions: string[];
|
|
22
|
+
constructor(stackName: LiteralNode<string>, statements: BlockNode);
|
|
23
|
+
protected _getChildNodes(): Node[];
|
|
24
|
+
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;
|
|
25
|
+
static execute(stackName: string): Promise<boolean>;
|
|
26
|
+
static parse(lastNode: any, token: any, tokens: Token[]): NamedStackNode;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (_) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.NamedStackNode = void 0;
|
|
55
|
+
var Scope_1 = require("../Scope");
|
|
56
|
+
var AST_1 = require("../AST");
|
|
57
|
+
var Node_1 = require("./Node");
|
|
58
|
+
var LiteralNode_1 = require("./LiteralNode");
|
|
59
|
+
var NamedStackNode = /** @class */ (function (_super) {
|
|
60
|
+
__extends(NamedStackNode, _super);
|
|
61
|
+
function NamedStackNode(stackName, statements) {
|
|
62
|
+
var _this = _super.call(this) || this;
|
|
63
|
+
_this.stackName = stackName;
|
|
64
|
+
_this.statements = statements;
|
|
65
|
+
_this.requiresPrep = true;
|
|
66
|
+
return _this;
|
|
67
|
+
}
|
|
68
|
+
NamedStackNode.prototype._getChildNodes = function () {
|
|
69
|
+
return [
|
|
70
|
+
this.stackName,
|
|
71
|
+
this.statements
|
|
72
|
+
];
|
|
73
|
+
};
|
|
74
|
+
NamedStackNode.prototype.evaluate = function (scope, dom, tag) {
|
|
75
|
+
if (tag === void 0) { tag = null; }
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var stackName, execute;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
switch (_a.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
if (scope instanceof Scope_1.FunctionScope) { // NamedStackNode doesn't work with FunctionScope
|
|
82
|
+
scope = scope.parentScope;
|
|
83
|
+
}
|
|
84
|
+
return [4 /*yield*/, this.stackName.evaluate(scope, dom, tag)];
|
|
85
|
+
case 1:
|
|
86
|
+
stackName = _a.sent();
|
|
87
|
+
execute = false;
|
|
88
|
+
if (!NamedStackNode.stacks[stackName]) {
|
|
89
|
+
NamedStackNode.stacks[stackName] = [];
|
|
90
|
+
}
|
|
91
|
+
if (NamedStackNode.executions.indexOf(stackName) === -1)
|
|
92
|
+
execute = true;
|
|
93
|
+
NamedStackNode.stacks[stackName].push({
|
|
94
|
+
block: this.statements,
|
|
95
|
+
scope: scope,
|
|
96
|
+
dom: dom,
|
|
97
|
+
tag: tag
|
|
98
|
+
});
|
|
99
|
+
if (execute) {
|
|
100
|
+
NamedStackNode.execute(stackName);
|
|
101
|
+
}
|
|
102
|
+
return [2 /*return*/];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
NamedStackNode.execute = function (stackName) {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
+
var stack;
|
|
110
|
+
return __generator(this, function (_a) {
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0:
|
|
113
|
+
if (!(NamedStackNode.stacks[stackName].length > 0)) return [3 /*break*/, 3];
|
|
114
|
+
stack = NamedStackNode.stacks[stackName].shift();
|
|
115
|
+
if (NamedStackNode.executions.indexOf(stackName) === -1)
|
|
116
|
+
NamedStackNode.executions.push(stackName);
|
|
117
|
+
return [4 /*yield*/, stack.block.evaluate(stack.scope, stack.dom, stack.tag)];
|
|
118
|
+
case 1:
|
|
119
|
+
_a.sent();
|
|
120
|
+
return [4 /*yield*/, NamedStackNode.execute(stackName)];
|
|
121
|
+
case 2:
|
|
122
|
+
if (!(_a.sent())) {
|
|
123
|
+
NamedStackNode.executions.splice(NamedStackNode.executions.indexOf(stackName), 1);
|
|
124
|
+
}
|
|
125
|
+
return [2 /*return*/, true];
|
|
126
|
+
case 3: return [2 /*return*/, false];
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
NamedStackNode.parse = function (lastNode, token, tokens) {
|
|
132
|
+
tokens.shift(); // Consume stack
|
|
133
|
+
var stackName = tokens.shift();
|
|
134
|
+
var statementTokens = AST_1.Tree.getNextStatementTokens(tokens);
|
|
135
|
+
return new NamedStackNode(new LiteralNode_1.LiteralNode(stackName.value), AST_1.Tree.processTokens(statementTokens));
|
|
136
|
+
};
|
|
137
|
+
NamedStackNode.stacks = {};
|
|
138
|
+
NamedStackNode.executions = [];
|
|
139
|
+
return NamedStackNode;
|
|
140
|
+
}(Node_1.Node));
|
|
141
|
+
exports.NamedStackNode = NamedStackNode;
|
|
142
|
+
//# sourceMappingURL=NamedStackNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NamedStackNode.js","sourceRoot":"","sources":["../../src/AST/NamedStackNode.ts"],"names":[],"mappings":"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"}
|
package/dist/AST.d.ts
CHANGED
|
@@ -31,61 +31,62 @@ export declare enum TokenType {
|
|
|
31
31
|
AS = 9,
|
|
32
32
|
IN = 10,
|
|
33
33
|
WITH = 11,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
34
|
+
NAMED_STACK = 12,
|
|
35
|
+
FOR = 13,
|
|
36
|
+
IF = 14,
|
|
37
|
+
ELSE_IF = 15,
|
|
38
|
+
ELSE = 16,
|
|
39
|
+
FUNC = 17,
|
|
40
|
+
ON = 18,
|
|
41
|
+
CLASS = 19,
|
|
42
|
+
NAME = 20,
|
|
43
|
+
L_BRACE = 21,
|
|
44
|
+
R_BRACE = 22,
|
|
45
|
+
L_BRACKET = 23,
|
|
46
|
+
R_BRACKET = 24,
|
|
47
|
+
L_PAREN = 25,
|
|
48
|
+
R_PAREN = 26,
|
|
49
|
+
TILDE = 27,
|
|
50
|
+
PERIOD = 28,
|
|
51
|
+
COMMA = 29,
|
|
52
|
+
COLON = 30,
|
|
53
|
+
SEMICOLON = 31,
|
|
54
|
+
STRING_FORMAT = 32,
|
|
55
|
+
STRING_LITERAL = 33,
|
|
56
|
+
NUMBER_LITERAL = 34,
|
|
57
|
+
BOOLEAN_LITERAL = 35,
|
|
58
|
+
NULL_LITERAL = 36,
|
|
59
|
+
STRICT_EQUALS = 37,
|
|
60
|
+
STRICT_NOT_EQUALS = 38,
|
|
61
|
+
EQUALS = 39,
|
|
62
|
+
NOT_EQUALS = 40,
|
|
63
|
+
GREATER_THAN_EQUAL = 41,
|
|
64
|
+
LESS_THAN_EQUAL = 42,
|
|
65
|
+
GREATER_THAN = 43,
|
|
66
|
+
LESS_THAN = 44,
|
|
67
|
+
ASSIGN = 45,
|
|
68
|
+
AND = 46,
|
|
69
|
+
OR = 47,
|
|
70
|
+
ADD = 48,
|
|
71
|
+
SUBTRACT = 49,
|
|
72
|
+
MULTIPLY = 50,
|
|
73
|
+
DIVIDE = 51,
|
|
74
|
+
ADD_ASSIGN = 52,
|
|
75
|
+
SUBTRACT_ASSIGN = 53,
|
|
76
|
+
MULTIPLY_ASSIGN = 54,
|
|
77
|
+
DIVIDE_ASSIGN = 55,
|
|
78
|
+
EXCLAMATION_POINT = 56,
|
|
79
|
+
ELEMENT_REFERENCE = 57,
|
|
80
|
+
ELEMENT_ATTRIBUTE = 58,
|
|
81
|
+
ELEMENT_STYLE = 59,
|
|
82
|
+
ELEMENT_QUERY = 60,
|
|
83
|
+
UNIT = 61,
|
|
84
|
+
XHR_GET = 62,
|
|
85
|
+
XHR_POST = 63,
|
|
86
|
+
XHR_PUT = 64,
|
|
87
|
+
XHR_DELETE = 65,
|
|
88
|
+
MODIFIER = 66,
|
|
89
|
+
DISPATCH_EVENT = 67
|
|
89
90
|
}
|
|
90
91
|
export interface TreeNode<T = any> {
|
|
91
92
|
evaluate(scope: Scope, dom: DOM, tag?: Tag): any;
|
|
@@ -99,8 +100,15 @@ export interface IBlockInfo {
|
|
|
99
100
|
closeCharacter: string;
|
|
100
101
|
}
|
|
101
102
|
export declare const AttributableNodes: (typeof RootScopeMemberNode | typeof ScopeMemberNode | typeof ElementAttributeNode)[];
|
|
103
|
+
export interface ExecutionContext {
|
|
104
|
+
scope: Scope;
|
|
105
|
+
dom: DOM;
|
|
106
|
+
tag: Tag;
|
|
107
|
+
tree: Tree;
|
|
108
|
+
}
|
|
102
109
|
export declare class Tree {
|
|
103
110
|
readonly code: string;
|
|
111
|
+
protected static executing: Set<ExecutionContext>;
|
|
104
112
|
protected static cache: {
|
|
105
113
|
[key: string]: Node;
|
|
106
114
|
};
|
|
@@ -111,6 +119,7 @@ export declare class Tree {
|
|
|
111
119
|
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any>;
|
|
112
120
|
prepare(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;
|
|
113
121
|
bindToScopeChanges(scope: any, fnc: any, dom: DOM, tag?: Tag): Promise<void>;
|
|
122
|
+
static reprepareExecutingTrees(): void;
|
|
114
123
|
static tokenize(code: string): Token[];
|
|
115
124
|
static stripWhiteSpace(tokens: Token[]): Token[];
|
|
116
125
|
static processTokens(tokens: Token[], _node?: Node, _lastBlock?: Node): BlockNode;
|