vsn 0.1.27 → 0.1.30
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/vsn.js +1 -1
- package/dist/AST/ArithmeticAssignmentNode.d.ts +23 -0
- package/dist/AST/ArithmeticAssignmentNode.js +324 -0
- package/dist/AST/ArithmeticAssignmentNode.js.map +1 -0
- package/dist/AST/ArithmeticNode.d.ts +15 -0
- package/dist/AST/ArithmeticNode.js +114 -0
- package/dist/AST/ArithmeticNode.js.map +1 -0
- package/dist/AST/ArrayNode.d.ts +14 -0
- package/dist/AST/ArrayNode.js +114 -0
- package/dist/AST/ArrayNode.js.map +1 -0
- package/dist/AST/BlockNode.d.ts +11 -0
- package/dist/AST/BlockNode.js +98 -0
- package/dist/AST/BlockNode.js.map +1 -0
- package/dist/AST/BooleanLiteralNode.d.ts +5 -0
- package/dist/{Model/Collection.js → AST/BooleanLiteralNode.js} +12 -18
- package/dist/AST/BooleanLiteralNode.js.map +1 -0
- package/dist/AST/ComparisonNode.d.ts +15 -0
- package/dist/AST/ComparisonNode.js +120 -0
- package/dist/AST/ComparisonNode.js.map +1 -0
- package/dist/AST/ConditionalNode.d.ts +13 -0
- package/dist/AST/ConditionalNode.js +95 -0
- package/dist/AST/ConditionalNode.js.map +1 -0
- package/dist/AST/ElementAttributeNode.d.ts +18 -0
- package/dist/AST/ElementAttributeNode.js +159 -0
- package/dist/AST/ElementAttributeNode.js.map +1 -0
- package/dist/AST/ElementQueryNode.d.ts +13 -0
- package/dist/AST/ElementQueryNode.js +116 -0
- package/dist/AST/ElementQueryNode.js.map +1 -0
- package/dist/AST/ElementStyleNode.d.ts +18 -0
- package/dist/AST/ElementStyleNode.js +159 -0
- package/dist/AST/ElementStyleNode.js.map +1 -0
- package/dist/AST/ForStatementNode.d.ts +17 -0
- package/dist/AST/ForStatementNode.js +121 -0
- package/dist/AST/ForStatementNode.js.map +1 -0
- package/dist/AST/FunctionArgumentNode.d.ts +11 -0
- package/dist/AST/FunctionArgumentNode.js +100 -0
- package/dist/AST/FunctionArgumentNode.js.map +1 -0
- package/dist/AST/FunctionCallNode.d.ts +13 -0
- package/dist/AST/FunctionCallNode.js +102 -0
- package/dist/AST/FunctionCallNode.js.map +1 -0
- package/dist/AST/IfStatementNode.d.ts +14 -0
- package/dist/AST/IfStatementNode.js +128 -0
- package/dist/AST/IfStatementNode.js.map +1 -0
- package/dist/AST/InNode.d.ts +15 -0
- package/dist/AST/InNode.js +107 -0
- package/dist/AST/InNode.js.map +1 -0
- package/dist/AST/IndexNode.d.ts +16 -0
- package/dist/AST/IndexNode.js +126 -0
- package/dist/AST/IndexNode.js.map +1 -0
- package/dist/AST/LiteralNode.d.ts +10 -0
- package/dist/AST/LiteralNode.js +74 -0
- package/dist/AST/LiteralNode.js.map +1 -0
- package/dist/AST/Node.d.ts +19 -0
- package/dist/AST/Node.js +117 -0
- package/dist/AST/Node.js.map +1 -0
- package/dist/AST/NotNode.d.ts +12 -0
- package/dist/AST/NotNode.js +103 -0
- package/dist/AST/NotNode.js.map +1 -0
- package/dist/AST/NumberLiteralNode.d.ts +5 -0
- package/dist/{Model/fields/EmailField.js → AST/NumberLiteralNode.js} +17 -17
- package/dist/AST/NumberLiteralNode.js.map +1 -0
- package/dist/AST/ObjectNode.d.ts +14 -0
- package/dist/AST/ObjectNode.js +131 -0
- package/dist/AST/ObjectNode.js.map +1 -0
- package/dist/AST/RootScopeMemberNode.d.ts +11 -0
- package/dist/AST/RootScopeMemberNode.js +87 -0
- package/dist/AST/RootScopeMemberNode.js.map +1 -0
- package/dist/AST/ScopeMemberNode.d.ts +12 -0
- package/dist/AST/ScopeMemberNode.js +134 -0
- package/dist/AST/ScopeMemberNode.js.map +1 -0
- package/dist/AST/UnitLiteralNode.d.ts +15 -0
- package/dist/AST/UnitLiteralNode.js +72 -0
- package/dist/AST/UnitLiteralNode.js.map +1 -0
- package/dist/AST.d.ts +7 -60
- package/dist/AST.js +74 -1493
- package/dist/AST.js.map +1 -1
- package/dist/Controller.d.ts +4 -2
- package/dist/Controller.js +10 -2
- package/dist/Controller.js.map +1 -1
- package/dist/EventDispatcher.d.ts +4 -1
- package/dist/EventDispatcher.js +27 -12
- package/dist/EventDispatcher.js.map +1 -1
- package/dist/MessageList.d.ts +2 -1
- package/dist/MessageList.js +9 -1
- package/dist/MessageList.js.map +1 -1
- package/dist/Model/Field.d.ts +8 -0
- package/dist/Model/{fields/StringField.js → Field.js} +19 -24
- package/dist/Model/Field.js.map +1 -0
- package/dist/Model.d.ts +5 -4
- package/dist/Model.js +7 -18
- package/dist/Model.js.map +1 -1
- package/dist/Registry.d.ts +3 -0
- package/dist/Registry.js +11 -0
- package/dist/Registry.js.map +1 -1
- package/dist/Scope/DynamicScopeData.d.ts +6 -0
- package/dist/{Model/DataModel.js → Scope/DynamicScopeData.js} +15 -17
- package/dist/Scope/DynamicScopeData.js.map +1 -0
- package/dist/Scope/QueryReference.d.ts +10 -0
- package/dist/Scope/QueryReference.js +103 -0
- package/dist/Scope/QueryReference.js.map +1 -0
- package/dist/Scope/ScopeData.d.ts +4 -0
- package/dist/Scope/ScopeData.js +40 -0
- package/dist/Scope/ScopeData.js.map +1 -0
- package/dist/Scope/ScopeDataAbstract.d.ts +22 -0
- package/dist/Scope/ScopeDataAbstract.js +138 -0
- package/dist/Scope/ScopeDataAbstract.js.map +1 -0
- package/dist/Scope/ScopeReference.d.ts +10 -0
- package/dist/Scope/ScopeReference.js +73 -0
- package/dist/Scope/ScopeReference.js.map +1 -0
- package/dist/Scope/ScopedVariableType.d.ts +6 -0
- package/dist/Scope/ScopedVariableType.js +14 -0
- package/dist/Scope/ScopedVariableType.js.map +1 -0
- package/dist/Scope/WrappedArray.d.ts +16 -0
- package/dist/Scope/WrappedArray.js +121 -0
- package/dist/Scope/WrappedArray.js.map +1 -0
- package/dist/Scope/properties/Property.d.ts +18 -0
- package/dist/Scope/properties/Property.js +93 -0
- package/dist/Scope/properties/Property.js.map +1 -0
- package/dist/Scope.d.ts +4 -45
- package/dist/Scope.js +31 -266
- package/dist/Scope.js.map +1 -1
- package/dist/SimplePromise.d.ts +2 -2
- package/dist/SimplePromise.js.map +1 -1
- package/dist/Tag/List.d.ts +2 -2
- package/dist/Tag/List.js +14 -6
- package/dist/Tag/List.js.map +1 -1
- package/dist/Tag.js +1 -1
- package/dist/Tag.js.map +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/Types.js +8 -2
- package/dist/Types.js.map +1 -1
- package/dist/Validators.d.ts +7 -0
- package/dist/Validators.js +54 -0
- package/dist/Validators.js.map +1 -0
- package/dist/attributes/Bind.js +1 -1
- package/dist/attributes/Bind.js.map +1 -1
- package/dist/attributes/ClassConstructor.d.ts +1 -0
- package/dist/attributes/ClassConstructor.js +1 -1
- package/dist/attributes/ClassConstructor.js.map +1 -1
- package/dist/attributes/JSONAttribute.js.map +1 -1
- package/dist/attributes/List.js +4 -4
- package/dist/attributes/List.js.map +1 -1
- package/dist/attributes/Radio.js.map +1 -1
- package/dist/attributes/SetAttribute.js.map +1 -1
- package/dist/attributes/StyleAttribute.js.map +1 -1
- package/dist/vsn.d.ts +9 -1
- package/dist/vsn.js +24 -9
- package/dist/vsn.js.map +1 -1
- package/package.json +1 -1
- package/src/AST/ArithmeticAssignmentNode.ts +243 -0
- package/src/AST/ArithmeticNode.ts +52 -0
- package/src/AST/ArrayNode.ts +39 -0
- package/src/AST/BlockNode.ts +25 -0
- package/src/AST/BooleanLiteralNode.ts +10 -0
- package/src/AST/ComparisonNode.ts +57 -0
- package/src/AST/ConditionalNode.ts +36 -0
- package/src/AST/ElementAttributeNode.ts +63 -0
- package/src/AST/ElementQueryNode.ts +27 -0
- package/src/AST/ElementStyleNode.ts +63 -0
- package/src/AST/ForStatementNode.ts +59 -0
- package/src/AST/FunctionArgumentNode.ts +27 -0
- package/src/AST/FunctionCallNode.ts +32 -0
- package/src/AST/IfStatementNode.ts +67 -0
- package/src/AST/InNode.ts +46 -0
- package/src/AST/IndexNode.ts +61 -0
- package/src/AST/LiteralNode.ts +17 -0
- package/src/AST/Node.ts +71 -0
- package/src/AST/NotNode.ts +41 -0
- package/src/AST/NumberLiteralNode.ts +14 -0
- package/src/AST/ObjectNode.ts +55 -0
- package/src/AST/RootScopeMemberNode.ts +25 -0
- package/src/AST/ScopeMemberNode.ts +58 -0
- package/src/AST/UnitLiteralNode.ts +51 -0
- package/src/AST.ts +34 -1094
- package/src/Controller.ts +10 -2
- package/src/EventDispatcher.ts +29 -12
- package/src/MessageList.ts +5 -1
- package/src/Model/Field.ts +20 -0
- package/src/Model.ts +8 -22
- package/src/Registry.ts +10 -0
- package/src/{Model/DataModel.ts → Scope/DynamicScopeData.ts} +8 -10
- package/src/Scope/QueryReference.ts +29 -0
- package/src/Scope/ScopeData.ts +21 -0
- package/src/Scope/ScopeDataAbstract.ts +127 -0
- package/src/Scope/ScopeReference.ts +30 -0
- package/src/Scope/ScopedVariableType.ts +7 -0
- package/src/Scope/WrappedArray.ts +88 -0
- package/src/Scope/properties/Property.ts +79 -0
- package/src/Scope.ts +28 -194
- package/src/SimplePromise.ts +2 -2
- package/src/Tag/List.ts +4 -4
- package/src/Tag.ts +1 -1
- package/src/Types.ts +7 -2
- package/src/Validators.ts +45 -0
- package/src/attributes/Bind.ts +3 -3
- package/src/attributes/ClassConstructor.ts +2 -1
- package/src/attributes/JSONAttribute.ts +2 -1
- package/src/attributes/List.ts +1 -1
- package/src/attributes/Radio.ts +2 -1
- package/src/attributes/ScopeChange.ts +1 -1
- package/src/attributes/SetAttribute.ts +2 -1
- package/src/attributes/StyleAttribute.ts +2 -1
- package/src/attributes/TypeAttribute.ts +1 -1
- package/src/vsn.ts +14 -4
- package/test/AST/ArithmeticAssignmentNode.spec.ts +47 -0
- package/test/AST.spec.ts +2 -2
- package/test/Controller.spec.ts +44 -0
- package/test/MessageList.spec.ts +1 -1
- package/test/Model/DataModel.spec.ts +0 -141
- package/test/Scope/DynamicScopeData.spec.ts +141 -0
- package/test/Scope.spec.ts +13 -1
- package/test/Tag/TagList.spec.ts +1 -1
- package/dist/Model/Collection.d.ts +0 -5
- package/dist/Model/Collection.js.map +0 -1
- package/dist/Model/DataModel.d.ts +0 -6
- package/dist/Model/DataModel.js.map +0 -1
- package/dist/Model/ModelAbstract.d.ts +0 -20
- package/dist/Model/ModelAbstract.js +0 -122
- package/dist/Model/ModelAbstract.js.map +0 -1
- package/dist/Model/fields/BooleanField.d.ts +0 -5
- package/dist/Model/fields/BooleanField.js +0 -43
- package/dist/Model/fields/BooleanField.js.map +0 -1
- package/dist/Model/fields/EmailField.d.ts +0 -5
- package/dist/Model/fields/EmailField.js.map +0 -1
- package/dist/Model/fields/Field.d.ts +0 -13
- package/dist/Model/fields/Field.js +0 -79
- package/dist/Model/fields/Field.js.map +0 -1
- package/dist/Model/fields/FloatField.d.ts +0 -5
- package/dist/Model/fields/FloatField.js +0 -47
- package/dist/Model/fields/FloatField.js.map +0 -1
- package/dist/Model/fields/PositiveNumberField.d.ts +0 -5
- package/dist/Model/fields/PositiveNumberField.js +0 -51
- package/dist/Model/fields/PositiveNumberField.js.map +0 -1
- package/dist/Model/fields/StringField.d.ts +0 -5
- package/dist/Model/fields/StringField.js.map +0 -1
- package/src/Model/Collection.ts +0 -13
- package/src/Model/ModelAbstract.ts +0 -114
- package/src/Model/fields/BooleanField.ts +0 -16
- package/src/Model/fields/EmailField.ts +0 -12
- package/src/Model/fields/Field.ts +0 -65
- package/src/Model/fields/FloatField.ts +0 -22
- package/src/Model/fields/PositiveNumberField.ts +0 -24
- package/src/Model/fields/StringField.ts +0 -16
- package/test/Model.spec.ts +0 -306
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
54
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
55
|
+
to[j] = from[i];
|
|
56
|
+
return to;
|
|
57
|
+
};
|
|
58
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
exports.FunctionCallNode = void 0;
|
|
60
|
+
var Node_1 = require("./Node");
|
|
61
|
+
var ScopeMemberNode_1 = require("./ScopeMemberNode");
|
|
62
|
+
var FunctionCallNode = /** @class */ (function (_super) {
|
|
63
|
+
__extends(FunctionCallNode, _super);
|
|
64
|
+
function FunctionCallNode(fnc, args) {
|
|
65
|
+
var _this = _super.call(this) || this;
|
|
66
|
+
_this.fnc = fnc;
|
|
67
|
+
_this.args = args;
|
|
68
|
+
return _this;
|
|
69
|
+
}
|
|
70
|
+
FunctionCallNode.prototype._getChildNodes = function () {
|
|
71
|
+
return [
|
|
72
|
+
this.fnc,
|
|
73
|
+
this.args
|
|
74
|
+
];
|
|
75
|
+
};
|
|
76
|
+
FunctionCallNode.prototype.evaluate = function (scope, dom, tag) {
|
|
77
|
+
if (tag === void 0) { tag = null; }
|
|
78
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
+
var functionScope, values;
|
|
80
|
+
var _a;
|
|
81
|
+
return __generator(this, function (_b) {
|
|
82
|
+
switch (_b.label) {
|
|
83
|
+
case 0:
|
|
84
|
+
functionScope = scope;
|
|
85
|
+
if (!(this.fnc instanceof ScopeMemberNode_1.ScopeMemberNode)) return [3 /*break*/, 2];
|
|
86
|
+
return [4 /*yield*/, this.fnc.scope.evaluate(scope, dom, tag)];
|
|
87
|
+
case 1:
|
|
88
|
+
functionScope = _b.sent();
|
|
89
|
+
_b.label = 2;
|
|
90
|
+
case 2: return [4 /*yield*/, this.args.evaluate(scope, dom, tag)];
|
|
91
|
+
case 3:
|
|
92
|
+
values = _b.sent();
|
|
93
|
+
return [4 /*yield*/, this.fnc.evaluate(scope, dom, tag)];
|
|
94
|
+
case 4: return [2 /*return*/, (_a = (_b.sent())).call.apply(_a, __spreadArray([functionScope.wrapped || functionScope], values))];
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
return FunctionCallNode;
|
|
100
|
+
}(Node_1.Node));
|
|
101
|
+
exports.FunctionCallNode = FunctionCallNode;
|
|
102
|
+
//# sourceMappingURL=FunctionCallNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionCallNode.js","sourceRoot":"","sources":["../../src/AST/FunctionCallNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA4B;AAE5B,qDAAkD;AAElD;IAA+C,oCAAI;IAC/C,0BACoB,GAAsC,EACtC,IAAiC;QAFrD,YAII,iBAAO,SACV;QAJmB,SAAG,GAAH,GAAG,CAAmC;QACtC,UAAI,GAAJ,IAAI,CAA6B;;IAGrD,CAAC;IAES,yCAAc,GAAxB;QACI,OAAO;YACH,IAAI,CAAC,GAAW;YAChB,IAAI,CAAC,IAAY;SACpB,CAAA;IACL,CAAC;IAEY,mCAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;;;wBACrD,aAAa,GAAU,KAAK,CAAC;6BAC7B,CAAA,IAAI,CAAC,GAAG,YAAY,iCAAe,CAAA,EAAnC,wBAAmC;wBACnB,qBAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA9D,aAAa,GAAG,SAA8C,CAAC;;4BAEpD,qBAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAlD,MAAM,GAAG,SAAyC;wBAChD,qBAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;4BAAhD,sBAAO,CAAA,KAAA,CAAC,SAAwC,CAAC,CAAA,CAAC,IAAI,0BAAC,aAAa,CAAC,OAAO,IAAI,aAAa,GAAK,MAAM,IAAE;;;;KAC7G;IACL,uBAAC;AAAD,CAAC,AAvBD,CAA+C,WAAI,GAuBlD;AAvBY,4CAAgB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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 { ConditionalNode } from "./ConditionalNode";
|
|
7
|
+
export declare class IfStatementNode extends Node implements TreeNode {
|
|
8
|
+
protected nodes: ConditionalNode[];
|
|
9
|
+
constructor(nodes: ConditionalNode[]);
|
|
10
|
+
protected _getChildNodes(): Node[];
|
|
11
|
+
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any>;
|
|
12
|
+
static parseConditional(tokens: Token[]): ConditionalNode;
|
|
13
|
+
static parse(lastNode: any, token: any, tokens: Token[]): IfStatementNode;
|
|
14
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
54
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
55
|
+
to[j] = from[i];
|
|
56
|
+
return to;
|
|
57
|
+
};
|
|
58
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
exports.IfStatementNode = void 0;
|
|
60
|
+
var AST_1 = require("../AST");
|
|
61
|
+
var Node_1 = require("./Node");
|
|
62
|
+
var ConditionalNode_1 = require("./ConditionalNode");
|
|
63
|
+
var LiteralNode_1 = require("./LiteralNode");
|
|
64
|
+
var IfStatementNode = /** @class */ (function (_super) {
|
|
65
|
+
__extends(IfStatementNode, _super);
|
|
66
|
+
function IfStatementNode(nodes) {
|
|
67
|
+
var _this = _super.call(this) || this;
|
|
68
|
+
_this.nodes = nodes;
|
|
69
|
+
return _this;
|
|
70
|
+
}
|
|
71
|
+
IfStatementNode.prototype._getChildNodes = function () {
|
|
72
|
+
return __spreadArray([], this.nodes);
|
|
73
|
+
};
|
|
74
|
+
IfStatementNode.prototype.evaluate = function (scope, dom, tag) {
|
|
75
|
+
if (tag === void 0) { tag = null; }
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var _i, _a, condition, uno;
|
|
78
|
+
return __generator(this, function (_b) {
|
|
79
|
+
switch (_b.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
_i = 0, _a = this.nodes;
|
|
82
|
+
_b.label = 1;
|
|
83
|
+
case 1:
|
|
84
|
+
if (!(_i < _a.length)) return [3 /*break*/, 5];
|
|
85
|
+
condition = _a[_i];
|
|
86
|
+
return [4 /*yield*/, condition.evaluate(scope, dom, tag)];
|
|
87
|
+
case 2:
|
|
88
|
+
uno = _b.sent();
|
|
89
|
+
if (!uno) return [3 /*break*/, 4];
|
|
90
|
+
return [4 /*yield*/, condition.block.evaluate(scope, dom, tag)];
|
|
91
|
+
case 3: return [2 /*return*/, _b.sent()];
|
|
92
|
+
case 4:
|
|
93
|
+
_i++;
|
|
94
|
+
return [3 /*break*/, 1];
|
|
95
|
+
case 5: return [2 /*return*/];
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
IfStatementNode.parseConditional = function (tokens) {
|
|
101
|
+
if ([
|
|
102
|
+
AST_1.TokenType.IF,
|
|
103
|
+
AST_1.TokenType.ELSE_IF
|
|
104
|
+
].indexOf(tokens[0].type) === -1) {
|
|
105
|
+
throw SyntaxError('Invalid Syntax');
|
|
106
|
+
}
|
|
107
|
+
tokens.splice(0, 1); // consume if and else if
|
|
108
|
+
return new ConditionalNode_1.ConditionalNode(AST_1.Tree.processTokens(AST_1.Tree.getBlockTokens(tokens, null)[0]), AST_1.Tree.processTokens(AST_1.Tree.getBlockTokens(tokens, null)[0]));
|
|
109
|
+
};
|
|
110
|
+
IfStatementNode.parse = function (lastNode, token, tokens) {
|
|
111
|
+
if (tokens[1].type !== AST_1.TokenType.L_PAREN) {
|
|
112
|
+
throw SyntaxError('If statement needs to be followed by a condition encased in parenthesis.');
|
|
113
|
+
}
|
|
114
|
+
var nodes = [];
|
|
115
|
+
nodes.push(IfStatementNode.parseConditional(tokens));
|
|
116
|
+
while (tokens.length > 0 && AST_1.TokenType.ELSE_IF === tokens[0].type) {
|
|
117
|
+
nodes.push(IfStatementNode.parseConditional(tokens));
|
|
118
|
+
}
|
|
119
|
+
if (tokens.length > 0 && AST_1.TokenType.ELSE === tokens[0].type) {
|
|
120
|
+
tokens.splice(0, 1); // Consume else
|
|
121
|
+
nodes.push(new ConditionalNode_1.ConditionalNode(new LiteralNode_1.LiteralNode(true), AST_1.Tree.processTokens(AST_1.Tree.getBlockTokens(tokens, null)[0])));
|
|
122
|
+
}
|
|
123
|
+
return new IfStatementNode(nodes);
|
|
124
|
+
};
|
|
125
|
+
return IfStatementNode;
|
|
126
|
+
}(Node_1.Node));
|
|
127
|
+
exports.IfStatementNode = IfStatementNode;
|
|
128
|
+
//# sourceMappingURL=IfStatementNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IfStatementNode.js","sourceRoot":"","sources":["../../src/AST/IfStatementNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,8BAAwD;AACxD,+BAA4B;AAC5B,qDAAkD;AAClD,6CAA0C;AAE1C;IAAqC,mCAAI;IACrC,yBACc,KAAwB;QADtC,YAGI,iBAAO,SACV;QAHa,WAAK,GAAL,KAAK,CAAmB;;IAGtC,CAAC;IAES,wCAAc,GAAxB;QACI,yBACQ,IAAI,CAAC,KAAgB,EAC5B;IACL,CAAC;IAEY,kCAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;;8BACvB,EAAV,KAAA,IAAI,CAAC,KAAK;;;6BAAV,CAAA,cAAU,CAAA;wBAAvB,SAAS;wBACK,qBAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAxD,GAAG,GAAY,SAAyC;6BAC1D,GAAG,EAAH,wBAAG;wBACI,qBAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;4BAAtD,sBAAO,SAA+C,EAAC;;wBAHvC,IAAU,CAAA;;;;;;KAMrC;IAEa,gCAAgB,GAA9B,UAA+B,MAAe;QAC1C,IAAI;YACA,eAAS,CAAC,EAAE;YACZ,eAAS,CAAC,OAAO;SACpB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAG;YAC/B,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;SACvC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAC9C,OAAO,IAAI,iCAAe,CACtB,UAAI,CAAC,aAAa,CAAC,UAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,UAAI,CAAC,aAAa,CAAC,UAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IACN,CAAC;IAEa,qBAAK,GAAnB,UAAoB,QAAQ,EAAE,KAAK,EAAE,MAAe;QAChD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAS,CAAC,OAAO,EAAE;YACtC,MAAM,WAAW,CAAC,0EAA0E,CAAC,CAAC;SACjG;QACD,IAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAErD,OAAM,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,eAAS,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC7D,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;SACxD;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,eAAS,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,iCAAe,CAC1B,IAAI,yBAAW,CAAC,IAAI,CAAC,EACrB,UAAI,CAAC,aAAa,CAAC,UAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC,CAAA;SACL;QAED,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACL,sBAAC;AAAD,CAAC,AA1DD,CAAqC,WAAI,GA0DxC;AA1DY,0CAAe"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
export declare class InNode extends Node implements TreeNode {
|
|
7
|
+
readonly left: TreeNode;
|
|
8
|
+
readonly right: TreeNode;
|
|
9
|
+
readonly flip: boolean;
|
|
10
|
+
constructor(left: TreeNode, right: TreeNode, flip?: boolean);
|
|
11
|
+
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<boolean>;
|
|
12
|
+
protected _getChildNodes(): Node[];
|
|
13
|
+
static match(tokens: Token[]): boolean;
|
|
14
|
+
static parse(lastNode: any, token: any, tokens: Token[]): InNode;
|
|
15
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
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.InNode = void 0;
|
|
55
|
+
var AST_1 = require("../AST");
|
|
56
|
+
var Node_1 = require("./Node");
|
|
57
|
+
var InNode = /** @class */ (function (_super) {
|
|
58
|
+
__extends(InNode, _super);
|
|
59
|
+
function InNode(left, right, flip) {
|
|
60
|
+
if (flip === void 0) { flip = false; }
|
|
61
|
+
var _this = _super.call(this) || this;
|
|
62
|
+
_this.left = left;
|
|
63
|
+
_this.right = right;
|
|
64
|
+
_this.flip = flip;
|
|
65
|
+
return _this;
|
|
66
|
+
}
|
|
67
|
+
InNode.prototype.evaluate = function (scope, dom, tag) {
|
|
68
|
+
if (tag === void 0) { tag = null; }
|
|
69
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
+
var toCheck, array, inArray;
|
|
71
|
+
return __generator(this, function (_a) {
|
|
72
|
+
switch (_a.label) {
|
|
73
|
+
case 0: return [4 /*yield*/, this.left.evaluate(scope, dom, tag)];
|
|
74
|
+
case 1:
|
|
75
|
+
toCheck = _a.sent();
|
|
76
|
+
return [4 /*yield*/, this.right.evaluate(scope, dom, tag)];
|
|
77
|
+
case 2:
|
|
78
|
+
array = _a.sent();
|
|
79
|
+
inArray = array.indexOf(toCheck) > -1;
|
|
80
|
+
if (this.flip)
|
|
81
|
+
inArray = !inArray;
|
|
82
|
+
return [2 /*return*/, inArray];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
InNode.prototype._getChildNodes = function () {
|
|
88
|
+
return [
|
|
89
|
+
this.left,
|
|
90
|
+
this.right
|
|
91
|
+
];
|
|
92
|
+
};
|
|
93
|
+
InNode.match = function (tokens) {
|
|
94
|
+
return tokens[0].type === AST_1.TokenType.IN || (tokens[0].type === AST_1.TokenType.NOT && tokens[1].type === AST_1.TokenType.IN);
|
|
95
|
+
};
|
|
96
|
+
InNode.parse = function (lastNode, token, tokens) {
|
|
97
|
+
var flip = tokens[0].type === AST_1.TokenType.NOT;
|
|
98
|
+
if (flip)
|
|
99
|
+
tokens.splice(0, 1); // consume not
|
|
100
|
+
tokens.splice(0, 1); // consume in
|
|
101
|
+
var containedTokens = AST_1.Tree.getNextStatementTokens(tokens, false, false, true);
|
|
102
|
+
return new InNode(lastNode, AST_1.Tree.processTokens(containedTokens), flip);
|
|
103
|
+
};
|
|
104
|
+
return InNode;
|
|
105
|
+
}(Node_1.Node));
|
|
106
|
+
exports.InNode = InNode;
|
|
107
|
+
//# sourceMappingURL=InNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InNode.js","sourceRoot":"","sources":["../../src/AST/InNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,8BAAwD;AACxD,+BAA4B;AAE5B;IAA4B,0BAAI;IAC5B,gBACoB,IAAc,EACd,KAAe,EACf,IAAqB;QAArB,qBAAA,EAAA,YAAqB;QAHzC,YAKI,iBAAO,SACV;QALmB,UAAI,GAAJ,IAAI,CAAU;QACd,WAAK,GAAL,KAAK,CAAU;QACf,UAAI,GAAJ,IAAI,CAAiB;;IAGzC,CAAC;IAEY,yBAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;4BACzC,qBAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAnD,OAAO,GAAG,SAAyC;wBAC3C,qBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAlD,KAAK,GAAG,SAA0C;wBAEpD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC1C,IAAI,IAAI,CAAC,IAAI;4BACT,OAAO,GAAG,CAAC,OAAO,CAAC;wBACvB,sBAAO,OAAO,EAAC;;;;KAClB;IAES,+BAAc,GAAxB;QACI,OAAO;YACH,IAAI,CAAC,IAAY;YACjB,IAAI,CAAC,KAAa;SACrB,CAAC;IACN,CAAC;IAEa,YAAK,GAAnB,UAAoB,MAAe;QAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAS,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAS,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IAEa,YAAK,GAAnB,UAAoB,QAAQ,EAAE,KAAK,EAAE,MAAe;QAChD,IAAM,IAAI,GAAY,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAS,CAAC,GAAG,CAAC;QACvD,IAAI,IAAI;YACJ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa;QAElC,IAAM,eAAe,GAAG,UAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChF,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IACL,aAAC;AAAD,CAAC,AAvCD,CAA4B,WAAI,GAuC/B;AAvCY,wBAAM"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
export declare class IndexNode extends Node implements TreeNode {
|
|
7
|
+
readonly object: Node;
|
|
8
|
+
readonly index: Node;
|
|
9
|
+
readonly indexTwo: Node;
|
|
10
|
+
constructor(object: Node, index: Node, indexTwo?: Node);
|
|
11
|
+
protected _getChildNodes(): Node[];
|
|
12
|
+
negativeIndex(obj: any[], index: number | string): number | string;
|
|
13
|
+
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any>;
|
|
14
|
+
static match(tokens: Token[]): boolean;
|
|
15
|
+
static parse(lastNode: any, token: any, tokens: Token[]): IndexNode;
|
|
16
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
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.IndexNode = void 0;
|
|
55
|
+
var AST_1 = require("../AST");
|
|
56
|
+
var Node_1 = require("./Node");
|
|
57
|
+
var IndexNode = /** @class */ (function (_super) {
|
|
58
|
+
__extends(IndexNode, _super);
|
|
59
|
+
function IndexNode(object, index, indexTwo) {
|
|
60
|
+
if (indexTwo === void 0) { indexTwo = null; }
|
|
61
|
+
var _this = _super.call(this) || this;
|
|
62
|
+
_this.object = object;
|
|
63
|
+
_this.index = index;
|
|
64
|
+
_this.indexTwo = indexTwo;
|
|
65
|
+
return _this;
|
|
66
|
+
}
|
|
67
|
+
IndexNode.prototype._getChildNodes = function () {
|
|
68
|
+
var children = [
|
|
69
|
+
this.object,
|
|
70
|
+
this.index
|
|
71
|
+
];
|
|
72
|
+
if (this.indexTwo)
|
|
73
|
+
children.push(this.indexTwo);
|
|
74
|
+
return children;
|
|
75
|
+
};
|
|
76
|
+
IndexNode.prototype.negativeIndex = function (obj, index) {
|
|
77
|
+
if (Number.isFinite(index) && index < 0)
|
|
78
|
+
return obj.length + index;
|
|
79
|
+
return index;
|
|
80
|
+
};
|
|
81
|
+
IndexNode.prototype.evaluate = function (scope, dom, tag) {
|
|
82
|
+
if (tag === void 0) { tag = null; }
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var obj, index, _a, _b, indexTwo, _c, _d, values, i;
|
|
85
|
+
return __generator(this, function (_e) {
|
|
86
|
+
switch (_e.label) {
|
|
87
|
+
case 0: return [4 /*yield*/, this.object.evaluate(scope, dom, tag)];
|
|
88
|
+
case 1:
|
|
89
|
+
obj = _e.sent();
|
|
90
|
+
_a = this.negativeIndex;
|
|
91
|
+
_b = [obj];
|
|
92
|
+
return [4 /*yield*/, this.index.evaluate(scope, dom, tag)];
|
|
93
|
+
case 2:
|
|
94
|
+
index = _a.apply(this, _b.concat([_e.sent()]));
|
|
95
|
+
if (!(Number.isFinite(index) && this.indexTwo)) return [3 /*break*/, 4];
|
|
96
|
+
_c = this.negativeIndex;
|
|
97
|
+
_d = [obj];
|
|
98
|
+
return [4 /*yield*/, this.indexTwo.evaluate(scope, dom, tag)];
|
|
99
|
+
case 3:
|
|
100
|
+
indexTwo = _c.apply(this, _d.concat([_e.sent()]));
|
|
101
|
+
values = [];
|
|
102
|
+
for (i = index; i <= indexTwo; i++) {
|
|
103
|
+
values.push(obj[i]);
|
|
104
|
+
}
|
|
105
|
+
return [2 /*return*/, values];
|
|
106
|
+
case 4: return [2 /*return*/, (obj)[index]];
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
IndexNode.match = function (tokens) {
|
|
112
|
+
return tokens[0].type === AST_1.TokenType.L_BRACKET;
|
|
113
|
+
};
|
|
114
|
+
IndexNode.parse = function (lastNode, token, tokens) {
|
|
115
|
+
var valueTokens = AST_1.Tree.getBlockTokens(tokens, AST_1.TokenType.COLON);
|
|
116
|
+
var values = [];
|
|
117
|
+
for (var _i = 0, valueTokens_1 = valueTokens; _i < valueTokens_1.length; _i++) {
|
|
118
|
+
var arg = valueTokens_1[_i];
|
|
119
|
+
values.push(AST_1.Tree.processTokens(arg));
|
|
120
|
+
}
|
|
121
|
+
return new IndexNode(lastNode, values[0], values.length > 1 && values[1]);
|
|
122
|
+
};
|
|
123
|
+
return IndexNode;
|
|
124
|
+
}(Node_1.Node));
|
|
125
|
+
exports.IndexNode = IndexNode;
|
|
126
|
+
//# sourceMappingURL=IndexNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexNode.js","sourceRoot":"","sources":["../../src/AST/IndexNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,8BAAwD;AACxD,+BAA4B;AAE5B;IAA+B,6BAAI;IAC/B,mBACoB,MAAY,EACZ,KAAW,EACX,QAAqB;QAArB,yBAAA,EAAA,eAAqB;QAHzC,YAKI,iBAAO,SACV;QALmB,YAAM,GAAN,MAAM,CAAM;QACZ,WAAK,GAAL,KAAK,CAAM;QACX,cAAQ,GAAR,QAAQ,CAAa;;IAGzC,CAAC;IAES,kCAAc,GAAxB;QACI,IAAM,QAAQ,GAAG;YACb,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,KAAK;SACb,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ;YACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,iCAAa,GAApB,UAAqB,GAAU,EAAE,KAAsB;QACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YACnC,OAAO,GAAG,CAAC,MAAM,GAAI,KAAgB,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IAEK,4BAAQ,GAAd,UAAe,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;4BACtC,qBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAjD,GAAG,GAAG,SAA2C;wBACxB,KAAA,IAAI,CAAC,aAAa,CAAA;8BAAC,GAAG;wBAAE,qBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA3F,KAAK,GAAoB,SAAA,IAAI,aAAoB,SAA0C,GAAC;6BAE9F,CAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAA,EAAvC,wBAAuC;wBACd,KAAA,IAAI,CAAC,aAAa,CAAA;8BAAC,GAAG;wBAAE,qBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAxF,QAAQ,GAAW,SAAA,IAAI,aAAoB,SAA6C,GAAW;wBACnG,MAAM,GAAG,EAAE,CAAC;wBAClB,KAAS,CAAC,GAAW,KAAe,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;4BACtD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvB;wBACD,sBAAO,MAAM,EAAC;4BAEd,sBAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAC;;;;KAE3B;IAEa,eAAK,GAAnB,UAAoB,MAAe;QAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,eAAS,CAAC,SAAS,CAAC;IAClD,CAAC;IAEa,eAAK,GAAnB,UAAoB,QAAQ,EAAE,KAAK,EAAE,MAAe;QAChD,IAAM,WAAW,GAAc,UAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAS,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,KAAkB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;YAA1B,IAAM,GAAG,oBAAA;YACV,MAAM,CAAC,IAAI,CAAC,UAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACL,gBAAC;AAAD,CAAC,AAtDD,CAA+B,WAAI,GAsDlC;AAtDY,8BAAS"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Scope } from "../Scope";
|
|
2
|
+
import { DOM } from "../DOM";
|
|
3
|
+
import { Tag } from "../Tag";
|
|
4
|
+
import { TreeNode } from "../AST";
|
|
5
|
+
import { Node } from "./Node";
|
|
6
|
+
export declare class LiteralNode<T = any> extends Node implements TreeNode {
|
|
7
|
+
readonly value: T;
|
|
8
|
+
constructor(value: T);
|
|
9
|
+
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<T>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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.LiteralNode = void 0;
|
|
55
|
+
var Node_1 = require("./Node");
|
|
56
|
+
var LiteralNode = /** @class */ (function (_super) {
|
|
57
|
+
__extends(LiteralNode, _super);
|
|
58
|
+
function LiteralNode(value) {
|
|
59
|
+
var _this = _super.call(this) || this;
|
|
60
|
+
_this.value = value;
|
|
61
|
+
return _this;
|
|
62
|
+
}
|
|
63
|
+
LiteralNode.prototype.evaluate = function (scope, dom, tag) {
|
|
64
|
+
if (tag === void 0) { tag = null; }
|
|
65
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
+
return __generator(this, function (_a) {
|
|
67
|
+
return [2 /*return*/, this.value];
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
return LiteralNode;
|
|
72
|
+
}(Node_1.Node));
|
|
73
|
+
exports.LiteralNode = LiteralNode;
|
|
74
|
+
//# sourceMappingURL=LiteralNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiteralNode.js","sourceRoot":"","sources":["../../src/AST/LiteralNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA4B;AAE5B;IAA0C,+BAAI;IAC1C,qBACoB,KAAQ;QAD5B,YAGI,iBAAO,SACV;QAHmB,WAAK,GAAL,KAAK,CAAG;;IAG5B,CAAC;IAEY,8BAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;gBACzD,sBAAO,IAAI,CAAC,KAAK,EAAC;;;KACrB;IACL,kBAAC;AAAD,CAAC,AAVD,CAA0C,WAAI,GAU7C;AAVY,kCAAW"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Scope } from "../Scope";
|
|
2
|
+
import { DOM } from "../DOM";
|
|
3
|
+
import { Tag } from "../Tag";
|
|
4
|
+
import { TreeNode } from "../AST";
|
|
5
|
+
export declare abstract class Node implements TreeNode {
|
|
6
|
+
protected requiresPrep: boolean;
|
|
7
|
+
protected _isPreparationRequired: boolean;
|
|
8
|
+
protected childNodes: Node[];
|
|
9
|
+
protected nodeCache: {
|
|
10
|
+
[key: string]: Node[];
|
|
11
|
+
};
|
|
12
|
+
abstract evaluate(scope: Scope, dom: DOM, tag?: Tag): any;
|
|
13
|
+
isPreparationRequired(): boolean;
|
|
14
|
+
prepare(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;
|
|
15
|
+
protected _getChildNodes(): Node[];
|
|
16
|
+
getChildNodes(): Node[];
|
|
17
|
+
findChildrenByType<T = Node>(t: any): T[];
|
|
18
|
+
findChildrenByTypes<T = Node>(types: any[], cacheKey?: string): T[];
|
|
19
|
+
}
|