vsn 0.1.125 → 0.1.127
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 +4 -8
- package/demo/examples/component-slots.html +16 -22
- package/demo/examples/loop.html +21 -0
- package/demo/resources/xhr-test-component.html +4 -0
- package/demo/vsn.js +2 -2
- package/dist/AST/ElementQueryNode.d.ts +2 -1
- package/dist/AST/ElementQueryNode.js +5 -5
- package/dist/AST/ElementQueryNode.js.map +1 -1
- package/dist/AST/FunctionNode.d.ts +1 -1
- package/dist/AST/LoopNode.d.ts +12 -0
- package/dist/AST/LoopNode.js +121 -0
- package/dist/AST/LoopNode.js.map +1 -0
- package/dist/AST/OnNode.d.ts +1 -1
- package/dist/AST/OnNode.js.map +1 -1
- package/dist/AST.d.ts +64 -62
- package/dist/AST.js +82 -69
- package/dist/AST.js.map +1 -1
- package/dist/Attribute.d.ts +1 -0
- package/dist/Attribute.js +6 -1
- package/dist/Attribute.js.map +1 -1
- package/dist/Component.d.ts +2 -0
- package/dist/Component.js +12 -27
- package/dist/Component.js.map +1 -1
- package/dist/DOM/AbstractDOM.d.ts +48 -0
- package/dist/DOM/AbstractDOM.js +937 -0
- package/dist/DOM/AbstractDOM.js.map +1 -0
- package/dist/DOM/ShadowDOM.d.ts +5 -0
- package/dist/DOM/ShadowDOM.js +32 -0
- package/dist/DOM/ShadowDOM.js.map +1 -0
- package/dist/DOM.d.ts +3 -48
- package/dist/DOM.js +6 -913
- package/dist/DOM.js.map +1 -1
- package/dist/Tag.d.ts +2 -0
- package/dist/Tag.js +119 -20
- package/dist/Tag.js.map +1 -1
- package/dist/helpers/VisionHelper.d.ts +1 -0
- package/dist/helpers/VisionHelper.js +45 -0
- package/dist/helpers/VisionHelper.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/vsn.js +2 -7
- package/dist/vsn.js.map +1 -1
- package/package.json +1 -1
- package/src/AST/ElementQueryNode.ts +2 -1
- package/src/AST/FunctionNode.ts +1 -1
- package/src/AST/LoopNode.ts +35 -0
- package/src/AST/OnNode.ts +2 -2
- package/src/AST.ts +19 -7
- package/src/Attribute.ts +3 -1
- package/src/Component.ts +15 -13
- package/src/DOM/AbstractDOM.ts +389 -0
- package/src/DOM/ShadowDOM.ts +15 -0
- package/src/DOM.ts +4 -385
- package/src/Tag.ts +31 -0
- package/src/helpers/VisionHelper.ts +6 -0
- package/src/version.ts +1 -1
- package/src/vsn.ts +2 -5
- package/test/AST/ClassNode.spec.ts +5 -5
- package/test/AST.spec.ts +21 -21
- package/test/Controller.spec.ts +1 -1
- package/test/DOM.spec.ts +3 -3
- package/test/Tag/TagList.spec.ts +1 -1
- package/test/attributes/Bind.spec.ts +12 -12
- package/test/attributes/JSONAttribute.spec.ts +5 -5
- package/test/attributes/ListItem.spec.ts +6 -6
- package/test/attributes/ScopeAttribute.spec.ts +2 -2
- package/test/attributes/ServiceAttribute.spec.ts +1 -1
- package/test/attributes/SetAttribute.spec.ts +3 -3
- package/test/attributes/Styles.spec.ts +2 -2
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Scope } from "../Scope";
|
|
2
|
-
import { DOM
|
|
2
|
+
import { DOM } from "../DOM";
|
|
3
3
|
import { Tag } from "../Tag";
|
|
4
4
|
import { Token, TreeNode } from "../AST";
|
|
5
5
|
import { Node } from "./Node";
|
|
6
|
+
import { EQuerySelectDirection } from "../DOM/AbstractDOM";
|
|
6
7
|
export declare class ElementQueryNode extends Node implements TreeNode {
|
|
7
8
|
readonly query: string;
|
|
8
9
|
readonly first: boolean;
|
|
@@ -52,13 +52,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
52
|
};
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
54
|
exports.ElementQueryNode = void 0;
|
|
55
|
-
var DOM_1 = require("../DOM");
|
|
56
55
|
var Node_1 = require("./Node");
|
|
56
|
+
var AbstractDOM_1 = require("../DOM/AbstractDOM");
|
|
57
57
|
var ElementQueryNode = /** @class */ (function (_super) {
|
|
58
58
|
__extends(ElementQueryNode, _super);
|
|
59
59
|
function ElementQueryNode(query, first, direction) {
|
|
60
60
|
if (first === void 0) { first = false; }
|
|
61
|
-
if (direction === void 0) { direction =
|
|
61
|
+
if (direction === void 0) { direction = AbstractDOM_1.EQuerySelectDirection.ALL; }
|
|
62
62
|
var _this = _super.call(this) || this;
|
|
63
63
|
_this.query = query;
|
|
64
64
|
_this.first = first;
|
|
@@ -117,12 +117,12 @@ var ElementQueryNode = /** @class */ (function (_super) {
|
|
|
117
117
|
ElementQueryNode.parse = function (lastNode, token, tokens) {
|
|
118
118
|
tokens.shift();
|
|
119
119
|
var first = false;
|
|
120
|
-
var direction =
|
|
120
|
+
var direction = AbstractDOM_1.EQuerySelectDirection.ALL;
|
|
121
121
|
if (token.full.startsWith('?>')) {
|
|
122
|
-
direction =
|
|
122
|
+
direction = AbstractDOM_1.EQuerySelectDirection.DOWN;
|
|
123
123
|
}
|
|
124
124
|
else if (token.full.startsWith('?<')) {
|
|
125
|
-
direction =
|
|
125
|
+
direction = AbstractDOM_1.EQuerySelectDirection.UP;
|
|
126
126
|
first = true;
|
|
127
127
|
}
|
|
128
128
|
return new ElementQueryNode(token.value, first, direction);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementQueryNode.js","sourceRoot":"","sources":["../../src/AST/ElementQueryNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ElementQueryNode.js","sourceRoot":"","sources":["../../src/AST/ElementQueryNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA4B;AAC5B,kDAAyD;AAEzD;IAAsC,oCAAI;IAGtC,0BACoB,KAAa,EACb,KAAsB,EACtB,SAA4D;QAD5D,sBAAA,EAAA,aAAsB;QACtB,0BAAA,EAAA,YAAmC,mCAAqB,CAAC,GAAG;QAHhF,YAKI,iBAAO,SACV;QALmB,WAAK,GAAL,KAAK,CAAQ;QACb,WAAK,GAAL,KAAK,CAAiB;QACtB,eAAS,GAAT,SAAS,CAAmD;QALtE,kBAAY,GAAY,IAAI,CAAC;;IAQvC,CAAC;IAEK,mCAAQ,GAAd,UAAe,KAAY,EAAE,GAAQ,EAAE,GAAe,EAAE,SAA0B;QAA3C,oBAAA,EAAA,UAAe;QAAE,0BAAA,EAAA,iBAA0B;;;;;;wBACxE,KAAA,GAAG,CAAA;gCAAH,wBAAG;wBAAI,qBAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAA;;8BAA/B,SAA+B;;;wBAA5C,GAAG,KAAyC,CAAC;wBAC5B,qBAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAA;;wBAA/D,QAAQ,GAAG,SAAoD;wBACrE,sBAAO,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAC;;;;KAC5D;IAEK,kCAAO,GAAb,UAAc,KAAY,EAAE,GAAQ,EAAE,GAAe,EAAE,IAAgB;QAAjC,oBAAA,EAAA,UAAe;QAAE,qBAAA,EAAA,WAAgB;;;;;;wBAC7D,KAAA,GAAG,CAAA;gCAAH,wBAAG;wBAAI,qBAAM,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAA;;8BAA/B,SAA+B;;;wBAA5C,GAAG,KAAyC,CAAC;wBAC7C,qBAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,EAAA;;wBAApC,SAAoC,CAAC;;;;;KACxC;IAEa,sBAAK,GAAnB,UAAoB,QAAQ,EAAE,KAAK,EAAE,MAAe;QAChD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,SAAS,GAAG,mCAAqB,CAAC,GAAG,CAAC;QAC1C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC7B,SAAS,GAAG,mCAAqB,CAAC,IAAI,CAAC;SAC1C;aAAM,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACpC,SAAS,GAAG,mCAAqB,CAAC,EAAE,CAAC;YACrC,KAAK,GAAG,IAAI,CAAC;SAChB;QACD,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IACL,uBAAC;AAAD,CAAC,AAlCD,CAAsC,WAAI,GAkCzC;AAlCY,4CAAgB"}
|
|
@@ -16,5 +16,5 @@ export declare class FunctionNode extends Node implements TreeNode {
|
|
|
16
16
|
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<(...args: any[]) => Promise<any>>;
|
|
17
17
|
collectGarbage(): Promise<void>;
|
|
18
18
|
getFunction(scope: Scope, dom: DOM, tag?: Tag, createFunctionScope?: boolean): Promise<(...args: any[]) => Promise<any>>;
|
|
19
|
-
static parse<T = FunctionNode>(lastNode: any, token: any, tokens: Token[], cls?: any):
|
|
19
|
+
static parse<T = FunctionNode>(lastNode: any, token: any, tokens: Token[], cls?: any): T;
|
|
20
20
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Token, TreeNode } from "../AST";
|
|
2
|
+
import { FunctionNode } from "./FunctionNode";
|
|
3
|
+
import { Scope } from "../Scope";
|
|
4
|
+
import { DOM } from "../DOM";
|
|
5
|
+
import { Tag } from "../Tag";
|
|
6
|
+
export declare class LoopNode extends FunctionNode implements TreeNode {
|
|
7
|
+
protected looping?: boolean;
|
|
8
|
+
prepare(scope: Scope, dom: DOM, tag: Tag, meta: any): Promise<void>;
|
|
9
|
+
loop(func: any): Promise<void>;
|
|
10
|
+
setTimeout(func: any, time?: number): void;
|
|
11
|
+
static parse<T = LoopNode>(lastNode: any, token: any, tokens: Token[]): T;
|
|
12
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
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.LoopNode = void 0;
|
|
55
|
+
var FunctionNode_1 = require("./FunctionNode");
|
|
56
|
+
var LoopNode = /** @class */ (function (_super) {
|
|
57
|
+
__extends(LoopNode, _super);
|
|
58
|
+
function LoopNode() {
|
|
59
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
60
|
+
_this.looping = true;
|
|
61
|
+
return _this;
|
|
62
|
+
}
|
|
63
|
+
LoopNode.prototype.prepare = function (scope, dom, tag, meta) {
|
|
64
|
+
if (tag === void 0) { tag = null; }
|
|
65
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
+
var classPrep, func;
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
switch (_a.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
classPrep = meta === null || meta === void 0 ? void 0 : meta.ClassNodePrepare;
|
|
71
|
+
if (!(tag && !classPrep)) return [3 /*break*/, 2];
|
|
72
|
+
return [4 /*yield*/, this.getFunction(tag.scope || scope, dom, tag)];
|
|
73
|
+
case 1:
|
|
74
|
+
func = _a.sent();
|
|
75
|
+
this.setTimeout(func);
|
|
76
|
+
_a.label = 2;
|
|
77
|
+
case 2: return [4 /*yield*/, _super.prototype.prepare.call(this, scope, dom, tag, meta)];
|
|
78
|
+
case 3:
|
|
79
|
+
_a.sent();
|
|
80
|
+
return [2 /*return*/];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
LoopNode.prototype.loop = function (func) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
87
|
+
return __generator(this, function (_a) {
|
|
88
|
+
switch (_a.label) {
|
|
89
|
+
case 0:
|
|
90
|
+
if (!this.looping) return [3 /*break*/, 2];
|
|
91
|
+
return [4 /*yield*/, func()];
|
|
92
|
+
case 1:
|
|
93
|
+
_a.sent();
|
|
94
|
+
this.setTimeout(func);
|
|
95
|
+
_a.label = 2;
|
|
96
|
+
case 2: return [2 /*return*/];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
LoopNode.prototype.setTimeout = function (func, time) {
|
|
102
|
+
var _this = this;
|
|
103
|
+
if (time === void 0) { time = 33; }
|
|
104
|
+
setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
105
|
+
return __generator(this, function (_a) {
|
|
106
|
+
switch (_a.label) {
|
|
107
|
+
case 0: return [4 /*yield*/, this.loop(func)];
|
|
108
|
+
case 1:
|
|
109
|
+
_a.sent();
|
|
110
|
+
return [2 /*return*/];
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}); }, time);
|
|
114
|
+
};
|
|
115
|
+
LoopNode.parse = function (lastNode, token, tokens) {
|
|
116
|
+
return _super.parse.call(this, lastNode, token, tokens, LoopNode);
|
|
117
|
+
};
|
|
118
|
+
return LoopNode;
|
|
119
|
+
}(FunctionNode_1.FunctionNode));
|
|
120
|
+
exports.LoopNode = LoopNode;
|
|
121
|
+
//# sourceMappingURL=LoopNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoopNode.js","sourceRoot":"","sources":["../../src/AST/LoopNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAA4C;AAK5C;IAA8B,4BAAY;IAA1C;QAAA,qEA4BC;QA3Ba,aAAO,GAAa,IAAI,CAAC;;IA2BvC,CAAC;IAzBgB,0BAAO,GAApB,UAAqB,KAAY,EAAE,GAAQ,EAAE,GAAe,EAAE,IAAI;QAArB,oBAAA,EAAA,UAAe;;;;;;wBAClD,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC;6BACrC,CAAA,GAAG,IAAI,CAAC,SAAS,CAAA,EAAjB,wBAAiB;wBACJ,qBAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA3D,IAAI,GAAG,SAAoD;wBACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;4BAE1B,qBAAM,iBAAM,OAAO,YAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAA;;wBAA1C,SAA0C,CAAC;;;;;KAC9C;IAEK,uBAAI,GAAV,UAAW,IAAI;;;;;6BACP,IAAI,CAAC,OAAO,EAAZ,wBAAY;wBACZ,qBAAM,IAAI,EAAE,EAAA;;wBAAZ,SAAY,CAAC;wBACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;;;;;KAE7B;IAED,6BAAU,GAAV,UAAW,IAAI,EAAE,IAAiB;QAAlC,iBAIC;QAJgB,qBAAA,EAAA,SAAiB;QAC9B,UAAU,CAAC;;;4BACP,qBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;wBAArB,SAAqB,CAAC;;;;aACzB,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IAEa,cAAK,GAAnB,UAAkC,QAAQ,EAAE,KAAK,EAAE,MAAe;QAC9D,OAAO,OAAM,KAAK,YAAI,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACL,eAAC;AAAD,CAAC,AA5BD,CAA8B,2BAAY,GA4BzC;AA5BY,4BAAQ"}
|
package/dist/AST/OnNode.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ import { DOM } from "../DOM";
|
|
|
5
5
|
import { Tag } from "../Tag";
|
|
6
6
|
export declare class OnNode extends FunctionNode implements TreeNode {
|
|
7
7
|
prepare(scope: Scope, dom: DOM, tag: Tag, meta: any): Promise<void>;
|
|
8
|
-
static parse(lastNode: any, token: any, tokens: Token[]):
|
|
8
|
+
static parse<T = OnNode>(lastNode: any, token: any, tokens: Token[]): T;
|
|
9
9
|
}
|
package/dist/AST/OnNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnNode.js","sourceRoot":"","sources":["../../src/AST/OnNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAA4C;AAK5C;IAA4B,0BAAY;IAAxC;;IAgBA,CAAC;IAfgB,wBAAO,GAApB,UAAqB,KAAY,EAAE,GAAQ,EAAE,GAAe,EAAE,IAAI;QAArB,oBAAA,EAAA,UAAe;;;;;;;wBAClD,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC;6BACrC,CAAA,GAAG,IAAI,CAAC,SAAS,CAAA,EAAjB,wBAAiB;wBACJ,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA9C,SAAO,SAAuC;wBACpD,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;4BAAO,cAAO;iCAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gCAAP,yBAAO;;;;;gDACzD,qBAAM,MAAI,wCAAI,IAAI,KAAC;;4CAAnB,SAAmB,CAAC;4CACpB,qBAAM,IAAI,CAAC,cAAc,EAAE,EAAA;;4CAA3B,SAA2B,CAAC;;;;;yBAC/B,EAAE,IAAI,CAAC,CAAC;;4BAEb,qBAAM,iBAAM,OAAO,YAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAA;;wBAA1C,SAA0C,CAAC;;;;;KAC9C;IAEa,YAAK,GAAnB,
|
|
1
|
+
{"version":3,"file":"OnNode.js","sourceRoot":"","sources":["../../src/AST/OnNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAA4C;AAK5C;IAA4B,0BAAY;IAAxC;;IAgBA,CAAC;IAfgB,wBAAO,GAApB,UAAqB,KAAY,EAAE,GAAQ,EAAE,GAAe,EAAE,IAAI;QAArB,oBAAA,EAAA,UAAe;;;;;;;wBAClD,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC;6BACrC,CAAA,GAAG,IAAI,CAAC,SAAS,CAAA,EAAjB,wBAAiB;wBACJ,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA9C,SAAO,SAAuC;wBACpD,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;4BAAO,cAAO;iCAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gCAAP,yBAAO;;;;;gDACzD,qBAAM,MAAI,wCAAI,IAAI,KAAC;;4CAAnB,SAAmB,CAAC;4CACpB,qBAAM,IAAI,CAAC,cAAc,EAAE,EAAA;;4CAA3B,SAA2B,CAAC;;;;;yBAC/B,EAAE,IAAI,CAAC,CAAC;;4BAEb,qBAAM,iBAAM,OAAO,YAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAA;;wBAA1C,SAA0C,CAAC;;;;;KAC9C;IAEa,YAAK,GAAnB,UAAgC,QAAQ,EAAE,KAAK,EAAE,MAAe;QAC5D,OAAO,OAAM,KAAK,YAAI,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IACL,aAAC;AAAD,CAAC,AAhBD,CAA4B,2BAAY,GAgBvC;AAhBY,wBAAM"}
|
package/dist/AST.d.ts
CHANGED
|
@@ -25,68 +25,70 @@ export declare enum TokenType {
|
|
|
25
25
|
TYPE_UINT = 3,
|
|
26
26
|
TYPE_FLOAT = 4,
|
|
27
27
|
TYPE_STRING = 5,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
89
|
-
|
|
28
|
+
TYPE_BOOL = 6,
|
|
29
|
+
RETURN = 7,
|
|
30
|
+
NOT = 8,
|
|
31
|
+
OF = 9,
|
|
32
|
+
AS = 10,
|
|
33
|
+
IN = 11,
|
|
34
|
+
WITH = 12,
|
|
35
|
+
NAMED_STACK = 13,
|
|
36
|
+
FOR = 14,
|
|
37
|
+
IF = 15,
|
|
38
|
+
ELSE_IF = 16,
|
|
39
|
+
ELSE = 17,
|
|
40
|
+
FUNC = 18,
|
|
41
|
+
LOOP = 19,
|
|
42
|
+
ON = 20,
|
|
43
|
+
CLASS = 21,
|
|
44
|
+
NAME = 22,
|
|
45
|
+
L_BRACE = 23,
|
|
46
|
+
R_BRACE = 24,
|
|
47
|
+
L_BRACKET = 25,
|
|
48
|
+
R_BRACKET = 26,
|
|
49
|
+
L_PAREN = 27,
|
|
50
|
+
R_PAREN = 28,
|
|
51
|
+
TILDE = 29,
|
|
52
|
+
PERIOD = 30,
|
|
53
|
+
COMMA = 31,
|
|
54
|
+
COLON = 32,
|
|
55
|
+
SEMICOLON = 33,
|
|
56
|
+
STRING_FORMAT = 34,
|
|
57
|
+
STRING_LITERAL = 35,
|
|
58
|
+
NUMBER_LITERAL = 36,
|
|
59
|
+
BOOLEAN_LITERAL = 37,
|
|
60
|
+
NULL_LITERAL = 38,
|
|
61
|
+
STRICT_EQUALS = 39,
|
|
62
|
+
STRICT_NOT_EQUALS = 40,
|
|
63
|
+
EQUALS = 41,
|
|
64
|
+
NOT_EQUALS = 42,
|
|
65
|
+
GREATER_THAN_EQUAL = 43,
|
|
66
|
+
LESS_THAN_EQUAL = 44,
|
|
67
|
+
GREATER_THAN = 45,
|
|
68
|
+
LESS_THAN = 46,
|
|
69
|
+
ASSIGN = 47,
|
|
70
|
+
AND = 48,
|
|
71
|
+
OR = 49,
|
|
72
|
+
ADD = 50,
|
|
73
|
+
SUBTRACT = 51,
|
|
74
|
+
MULTIPLY = 52,
|
|
75
|
+
DIVIDE = 53,
|
|
76
|
+
ADD_ASSIGN = 54,
|
|
77
|
+
SUBTRACT_ASSIGN = 55,
|
|
78
|
+
MULTIPLY_ASSIGN = 56,
|
|
79
|
+
DIVIDE_ASSIGN = 57,
|
|
80
|
+
EXCLAMATION_POINT = 58,
|
|
81
|
+
ELEMENT_REFERENCE = 59,
|
|
82
|
+
ELEMENT_ATTRIBUTE = 60,
|
|
83
|
+
ELEMENT_STYLE = 61,
|
|
84
|
+
ELEMENT_QUERY = 62,
|
|
85
|
+
UNIT = 63,
|
|
86
|
+
XHR_GET = 64,
|
|
87
|
+
XHR_POST = 65,
|
|
88
|
+
XHR_PUT = 66,
|
|
89
|
+
XHR_DELETE = 67,
|
|
90
|
+
MODIFIER = 68,
|
|
91
|
+
DISPATCH_EVENT = 69
|
|
90
92
|
}
|
|
91
93
|
export interface TreeNode<T = any> {
|
|
92
94
|
evaluate(scope: Scope, dom: DOM, tag?: Tag): any;
|
package/dist/AST.js
CHANGED
|
@@ -80,6 +80,7 @@ var DispatchEventNode_1 = require("./AST/DispatchEventNode");
|
|
|
80
80
|
var WithNode_1 = require("./AST/WithNode");
|
|
81
81
|
var AsNode_1 = require("./AST/AsNode");
|
|
82
82
|
var NamedStackNode_1 = require("./AST/NamedStackNode");
|
|
83
|
+
var LoopNode_1 = require("./AST/LoopNode");
|
|
83
84
|
function lower(str) {
|
|
84
85
|
return str ? str.toLowerCase() : null;
|
|
85
86
|
}
|
|
@@ -98,68 +99,70 @@ var TokenType;
|
|
|
98
99
|
TokenType[TokenType["TYPE_UINT"] = 3] = "TYPE_UINT";
|
|
99
100
|
TokenType[TokenType["TYPE_FLOAT"] = 4] = "TYPE_FLOAT";
|
|
100
101
|
TokenType[TokenType["TYPE_STRING"] = 5] = "TYPE_STRING";
|
|
101
|
-
TokenType[TokenType["
|
|
102
|
-
TokenType[TokenType["
|
|
103
|
-
TokenType[TokenType["
|
|
104
|
-
TokenType[TokenType["
|
|
105
|
-
TokenType[TokenType["
|
|
106
|
-
TokenType[TokenType["
|
|
107
|
-
TokenType[TokenType["
|
|
108
|
-
TokenType[TokenType["
|
|
109
|
-
TokenType[TokenType["
|
|
110
|
-
TokenType[TokenType["
|
|
111
|
-
TokenType[TokenType["
|
|
112
|
-
TokenType[TokenType["
|
|
113
|
-
TokenType[TokenType["
|
|
114
|
-
TokenType[TokenType["
|
|
115
|
-
TokenType[TokenType["
|
|
116
|
-
TokenType[TokenType["
|
|
117
|
-
TokenType[TokenType["
|
|
118
|
-
TokenType[TokenType["
|
|
119
|
-
TokenType[TokenType["
|
|
120
|
-
TokenType[TokenType["
|
|
121
|
-
TokenType[TokenType["
|
|
122
|
-
TokenType[TokenType["
|
|
123
|
-
TokenType[TokenType["
|
|
124
|
-
TokenType[TokenType["
|
|
125
|
-
TokenType[TokenType["
|
|
126
|
-
TokenType[TokenType["
|
|
127
|
-
TokenType[TokenType["
|
|
128
|
-
TokenType[TokenType["
|
|
129
|
-
TokenType[TokenType["
|
|
130
|
-
TokenType[TokenType["
|
|
131
|
-
TokenType[TokenType["
|
|
132
|
-
TokenType[TokenType["
|
|
133
|
-
TokenType[TokenType["
|
|
134
|
-
TokenType[TokenType["
|
|
135
|
-
TokenType[TokenType["
|
|
136
|
-
TokenType[TokenType["
|
|
137
|
-
TokenType[TokenType["
|
|
138
|
-
TokenType[TokenType["
|
|
139
|
-
TokenType[TokenType["
|
|
140
|
-
TokenType[TokenType["
|
|
141
|
-
TokenType[TokenType["
|
|
142
|
-
TokenType[TokenType["
|
|
143
|
-
TokenType[TokenType["
|
|
144
|
-
TokenType[TokenType["
|
|
145
|
-
TokenType[TokenType["
|
|
146
|
-
TokenType[TokenType["
|
|
147
|
-
TokenType[TokenType["
|
|
148
|
-
TokenType[TokenType["
|
|
149
|
-
TokenType[TokenType["
|
|
150
|
-
TokenType[TokenType["
|
|
151
|
-
TokenType[TokenType["
|
|
152
|
-
TokenType[TokenType["
|
|
153
|
-
TokenType[TokenType["
|
|
154
|
-
TokenType[TokenType["
|
|
155
|
-
TokenType[TokenType["
|
|
156
|
-
TokenType[TokenType["
|
|
157
|
-
TokenType[TokenType["
|
|
158
|
-
TokenType[TokenType["
|
|
159
|
-
TokenType[TokenType["
|
|
160
|
-
TokenType[TokenType["
|
|
161
|
-
TokenType[TokenType["
|
|
162
|
-
TokenType[TokenType["
|
|
102
|
+
TokenType[TokenType["TYPE_BOOL"] = 6] = "TYPE_BOOL";
|
|
103
|
+
TokenType[TokenType["RETURN"] = 7] = "RETURN";
|
|
104
|
+
TokenType[TokenType["NOT"] = 8] = "NOT";
|
|
105
|
+
TokenType[TokenType["OF"] = 9] = "OF";
|
|
106
|
+
TokenType[TokenType["AS"] = 10] = "AS";
|
|
107
|
+
TokenType[TokenType["IN"] = 11] = "IN";
|
|
108
|
+
TokenType[TokenType["WITH"] = 12] = "WITH";
|
|
109
|
+
TokenType[TokenType["NAMED_STACK"] = 13] = "NAMED_STACK";
|
|
110
|
+
TokenType[TokenType["FOR"] = 14] = "FOR";
|
|
111
|
+
TokenType[TokenType["IF"] = 15] = "IF";
|
|
112
|
+
TokenType[TokenType["ELSE_IF"] = 16] = "ELSE_IF";
|
|
113
|
+
TokenType[TokenType["ELSE"] = 17] = "ELSE";
|
|
114
|
+
TokenType[TokenType["FUNC"] = 18] = "FUNC";
|
|
115
|
+
TokenType[TokenType["LOOP"] = 19] = "LOOP";
|
|
116
|
+
TokenType[TokenType["ON"] = 20] = "ON";
|
|
117
|
+
TokenType[TokenType["CLASS"] = 21] = "CLASS";
|
|
118
|
+
TokenType[TokenType["NAME"] = 22] = "NAME";
|
|
119
|
+
TokenType[TokenType["L_BRACE"] = 23] = "L_BRACE";
|
|
120
|
+
TokenType[TokenType["R_BRACE"] = 24] = "R_BRACE";
|
|
121
|
+
TokenType[TokenType["L_BRACKET"] = 25] = "L_BRACKET";
|
|
122
|
+
TokenType[TokenType["R_BRACKET"] = 26] = "R_BRACKET";
|
|
123
|
+
TokenType[TokenType["L_PAREN"] = 27] = "L_PAREN";
|
|
124
|
+
TokenType[TokenType["R_PAREN"] = 28] = "R_PAREN";
|
|
125
|
+
TokenType[TokenType["TILDE"] = 29] = "TILDE";
|
|
126
|
+
TokenType[TokenType["PERIOD"] = 30] = "PERIOD";
|
|
127
|
+
TokenType[TokenType["COMMA"] = 31] = "COMMA";
|
|
128
|
+
TokenType[TokenType["COLON"] = 32] = "COLON";
|
|
129
|
+
TokenType[TokenType["SEMICOLON"] = 33] = "SEMICOLON";
|
|
130
|
+
TokenType[TokenType["STRING_FORMAT"] = 34] = "STRING_FORMAT";
|
|
131
|
+
TokenType[TokenType["STRING_LITERAL"] = 35] = "STRING_LITERAL";
|
|
132
|
+
TokenType[TokenType["NUMBER_LITERAL"] = 36] = "NUMBER_LITERAL";
|
|
133
|
+
TokenType[TokenType["BOOLEAN_LITERAL"] = 37] = "BOOLEAN_LITERAL";
|
|
134
|
+
TokenType[TokenType["NULL_LITERAL"] = 38] = "NULL_LITERAL";
|
|
135
|
+
TokenType[TokenType["STRICT_EQUALS"] = 39] = "STRICT_EQUALS";
|
|
136
|
+
TokenType[TokenType["STRICT_NOT_EQUALS"] = 40] = "STRICT_NOT_EQUALS";
|
|
137
|
+
TokenType[TokenType["EQUALS"] = 41] = "EQUALS";
|
|
138
|
+
TokenType[TokenType["NOT_EQUALS"] = 42] = "NOT_EQUALS";
|
|
139
|
+
TokenType[TokenType["GREATER_THAN_EQUAL"] = 43] = "GREATER_THAN_EQUAL";
|
|
140
|
+
TokenType[TokenType["LESS_THAN_EQUAL"] = 44] = "LESS_THAN_EQUAL";
|
|
141
|
+
TokenType[TokenType["GREATER_THAN"] = 45] = "GREATER_THAN";
|
|
142
|
+
TokenType[TokenType["LESS_THAN"] = 46] = "LESS_THAN";
|
|
143
|
+
TokenType[TokenType["ASSIGN"] = 47] = "ASSIGN";
|
|
144
|
+
TokenType[TokenType["AND"] = 48] = "AND";
|
|
145
|
+
TokenType[TokenType["OR"] = 49] = "OR";
|
|
146
|
+
TokenType[TokenType["ADD"] = 50] = "ADD";
|
|
147
|
+
TokenType[TokenType["SUBTRACT"] = 51] = "SUBTRACT";
|
|
148
|
+
TokenType[TokenType["MULTIPLY"] = 52] = "MULTIPLY";
|
|
149
|
+
TokenType[TokenType["DIVIDE"] = 53] = "DIVIDE";
|
|
150
|
+
TokenType[TokenType["ADD_ASSIGN"] = 54] = "ADD_ASSIGN";
|
|
151
|
+
TokenType[TokenType["SUBTRACT_ASSIGN"] = 55] = "SUBTRACT_ASSIGN";
|
|
152
|
+
TokenType[TokenType["MULTIPLY_ASSIGN"] = 56] = "MULTIPLY_ASSIGN";
|
|
153
|
+
TokenType[TokenType["DIVIDE_ASSIGN"] = 57] = "DIVIDE_ASSIGN";
|
|
154
|
+
TokenType[TokenType["EXCLAMATION_POINT"] = 58] = "EXCLAMATION_POINT";
|
|
155
|
+
TokenType[TokenType["ELEMENT_REFERENCE"] = 59] = "ELEMENT_REFERENCE";
|
|
156
|
+
TokenType[TokenType["ELEMENT_ATTRIBUTE"] = 60] = "ELEMENT_ATTRIBUTE";
|
|
157
|
+
TokenType[TokenType["ELEMENT_STYLE"] = 61] = "ELEMENT_STYLE";
|
|
158
|
+
TokenType[TokenType["ELEMENT_QUERY"] = 62] = "ELEMENT_QUERY";
|
|
159
|
+
TokenType[TokenType["UNIT"] = 63] = "UNIT";
|
|
160
|
+
TokenType[TokenType["XHR_GET"] = 64] = "XHR_GET";
|
|
161
|
+
TokenType[TokenType["XHR_POST"] = 65] = "XHR_POST";
|
|
162
|
+
TokenType[TokenType["XHR_PUT"] = 66] = "XHR_PUT";
|
|
163
|
+
TokenType[TokenType["XHR_DELETE"] = 67] = "XHR_DELETE";
|
|
164
|
+
TokenType[TokenType["MODIFIER"] = 68] = "MODIFIER";
|
|
165
|
+
TokenType[TokenType["DISPATCH_EVENT"] = 69] = "DISPATCH_EVENT";
|
|
163
166
|
})(TokenType = exports.TokenType || (exports.TokenType = {}));
|
|
164
167
|
var TOKEN_PATTERNS = [
|
|
165
168
|
{
|
|
@@ -188,23 +191,23 @@ var TOKEN_PATTERNS = [
|
|
|
188
191
|
},
|
|
189
192
|
{
|
|
190
193
|
type: TokenType.TYPE_INT,
|
|
191
|
-
pattern: /^int
|
|
194
|
+
pattern: /^int\s/
|
|
192
195
|
},
|
|
193
196
|
{
|
|
194
197
|
type: TokenType.TYPE_UINT,
|
|
195
|
-
pattern: /^uint
|
|
198
|
+
pattern: /^uint\s/
|
|
196
199
|
},
|
|
197
200
|
{
|
|
198
201
|
type: TokenType.TYPE_FLOAT,
|
|
199
|
-
pattern: /^float
|
|
202
|
+
pattern: /^float\s/
|
|
200
203
|
},
|
|
201
204
|
{
|
|
202
|
-
type: TokenType.
|
|
203
|
-
pattern:
|
|
205
|
+
type: TokenType.TYPE_BOOL,
|
|
206
|
+
pattern: /^bool\s/
|
|
204
207
|
},
|
|
205
208
|
{
|
|
206
|
-
type: TokenType.
|
|
207
|
-
pattern:
|
|
209
|
+
type: TokenType.UNIT,
|
|
210
|
+
pattern: /^\d+\.?\d?(?:cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)/
|
|
208
211
|
},
|
|
209
212
|
{
|
|
210
213
|
type: TokenType.BOOLEAN_LITERAL,
|
|
@@ -262,6 +265,10 @@ var TOKEN_PATTERNS = [
|
|
|
262
265
|
type: TokenType.FUNC,
|
|
263
266
|
pattern: /^func\s/
|
|
264
267
|
},
|
|
268
|
+
{
|
|
269
|
+
type: TokenType.LOOP,
|
|
270
|
+
pattern: /^loop\s/
|
|
271
|
+
},
|
|
265
272
|
{
|
|
266
273
|
type: TokenType.ON,
|
|
267
274
|
pattern: /^on\s/
|
|
@@ -657,6 +664,12 @@ var Tree = /** @class */ (function () {
|
|
|
657
664
|
blockNodes.push(node);
|
|
658
665
|
node = null;
|
|
659
666
|
}
|
|
667
|
+
else if (token.type === TokenType.LOOP) {
|
|
668
|
+
node = LoopNode_1.LoopNode.parse(node, token, tokens);
|
|
669
|
+
lastBlock = node;
|
|
670
|
+
blockNodes.push(node);
|
|
671
|
+
node = null;
|
|
672
|
+
}
|
|
660
673
|
else if (token.type === TokenType.ON) {
|
|
661
674
|
node = OnNode_1.OnNode.parse(node, token, tokens);
|
|
662
675
|
lastBlock = node;
|