vsn 0.1.24 → 0.1.28
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 +18 -7
- package/demo/vsn.js +1 -0
- package/dist/AST/ArithmeticAssignmentNode.d.ts +23 -0
- package/dist/AST/ArithmeticAssignmentNode.js +313 -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/AST/BooleanLiteralNode.js +31 -0
- 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 +12 -0
- package/dist/AST/ElementQueryNode.js +111 -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/AST/NumberLiteralNode.js +36 -0
- 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 +128 -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 +9 -61
- package/dist/AST.js +84 -1413
- package/dist/AST.js.map +1 -1
- package/dist/Attribute.d.ts +1 -1
- package/dist/Attribute.js +3 -3
- package/dist/Attribute.js.map +1 -1
- package/dist/Configuration.d.ts +1 -1
- package/dist/Configuration.js +4 -4
- package/dist/Configuration.js.map +1 -1
- package/dist/Controller.d.ts +12 -4
- package/dist/Controller.js +38 -6
- package/dist/Controller.js.map +1 -1
- package/dist/DOM/DOMObject.d.ts +1 -1
- package/dist/DOM/DOMObject.js +2 -2
- package/dist/DOM/DOMObject.js.map +1 -1
- package/dist/DOM.d.ts +1 -1
- package/dist/DOM.js +4 -4
- package/dist/DOM.js.map +1 -1
- package/dist/EventDispatcher.d.ts +29 -0
- package/dist/EventDispatcher.js +132 -0
- package/dist/EventDispatcher.js.map +1 -0
- package/dist/Formats.js +2 -2
- package/dist/Formats.js.map +1 -1
- package/dist/MessageList.d.ts +14 -0
- package/dist/MessageList.js +88 -0
- package/dist/MessageList.js.map +1 -0
- package/dist/Model/Field.d.ts +8 -0
- package/dist/Model/Field.js +38 -0
- package/dist/Model/Field.js.map +1 -0
- package/dist/Model.d.ts +12 -0
- package/dist/Model.js +61 -0
- package/dist/Model.js.map +1 -0
- package/dist/Registry.d.ts +5 -2
- package/dist/Registry.js +17 -16
- package/dist/Registry.js.map +1 -1
- package/dist/Scope/DynamicScopeData.d.ts +6 -0
- package/dist/Scope/DynamicScopeData.js +54 -0
- 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 +137 -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 -48
- package/dist/Scope.js +39 -324
- package/dist/Scope.js.map +1 -1
- package/dist/SimplePromise.d.ts +42 -0
- package/dist/SimplePromise.js +217 -0
- package/dist/SimplePromise.js.map +1 -0
- package/dist/Tag.js +11 -5
- package/dist/Tag.js.map +1 -1
- package/dist/Types.d.ts +1 -0
- package/dist/Types.js +8 -1
- 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/JSONAttribute.js.map +1 -1
- package/dist/attributes/List.js +7 -7
- package/dist/attributes/List.js.map +1 -1
- package/dist/attributes/On.js +4 -1
- package/dist/attributes/On.js.map +1 -1
- package/dist/attributes/Radio.js +4 -2
- package/dist/attributes/Radio.js.map +1 -1
- package/dist/attributes/ScopeChange.js +1 -1
- package/dist/attributes/ScopeChange.js.map +1 -1
- package/dist/attributes/SetAttribute.js.map +1 -1
- package/dist/attributes/StandardAttribute.js +1 -1
- package/dist/attributes/StandardAttribute.js.map +1 -1
- package/dist/attributes/StyleAttribute.js +1 -1
- package/dist/attributes/StyleAttribute.js.map +1 -1
- package/dist/{Vision.d.ts → vsn.d.ts} +7 -2
- package/dist/{Vision.js → vsn.js} +21 -12
- package/dist/vsn.js.map +1 -0
- package/package.json +9 -13
- package/src/AST/ArithmeticAssignmentNode.ts +236 -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 +25 -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 +53 -0
- package/src/AST/UnitLiteralNode.ts +51 -0
- package/src/AST.ts +45 -1014
- package/src/Attribute.ts +2 -2
- package/src/Configuration.ts +3 -3
- package/src/Controller.ts +31 -6
- package/src/DOM/DOMObject.ts +1 -1
- package/src/DOM.ts +4 -4
- package/src/EventDispatcher.ts +134 -0
- package/src/Formats.ts +2 -2
- package/src/MessageList.ts +81 -0
- package/src/Model/Field.ts +20 -0
- package/src/Model.ts +43 -0
- package/src/Registry.ts +13 -5
- package/src/Scope/DynamicScopeData.ts +29 -0
- package/src/Scope/QueryReference.ts +29 -0
- package/src/Scope/ScopeData.ts +21 -0
- package/src/Scope/ScopeDataAbstract.ts +126 -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 +35 -251
- package/src/SimplePromise.ts +219 -0
- package/src/Tag.ts +9 -5
- package/src/Types.ts +6 -1
- package/src/Validators.ts +45 -0
- package/src/attributes/Bind.ts +3 -2
- package/src/attributes/JSONAttribute.ts +2 -1
- package/src/attributes/List.ts +4 -4
- package/src/attributes/On.ts +2 -0
- package/src/attributes/Radio.ts +5 -3
- package/src/attributes/ScopeChange.ts +2 -2
- package/src/attributes/SetAttribute.ts +2 -1
- package/src/attributes/StandardAttribute.ts +1 -1
- package/src/attributes/StyleAttribute.ts +3 -2
- package/src/attributes/TypeAttribute.ts +1 -1
- package/src/{Vision.ts → vsn.ts} +12 -5
- package/test/AST/ArithmeticAssignmentNode.spec.ts +47 -0
- package/test/AST.spec.ts +3 -2
- package/test/Controller.spec.ts +44 -0
- package/test/DOM.spec.ts +1 -1
- package/test/MessageList.spec.ts +101 -0
- package/test/Model/DataModel.spec.ts +0 -0
- package/test/Scope/DynamicScopeData.spec.ts +141 -0
- package/test/Scope.spec.ts +15 -3
- package/test/SimplePromise.spec.ts +271 -0
- package/test/Tag/TagList.spec.ts +1 -1
- package/test/attributes/Bind.spec.ts +5 -5
- package/test/attributes/JSONAttribute.spec.ts +1 -1
- package/test/attributes/ListItem.spec.ts +1 -1
- package/webpack.config.js +2 -2
- package/demo/vision.js +0 -1
- package/dist/Vision.js.map +0 -1
- package/main.py +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"On.js","sourceRoot":"","sources":["../../src/attributes/On.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AACvC,8BAA4B;AAC5B,wCAAqC;AAGrC;IAAiC,sBAAS;IAA1C;;
|
|
1
|
+
{"version":3,"file":"On.js","sourceRoot":"","sources":["../../src/attributes/On.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AACvC,8BAA4B;AAC5B,wCAAqC;AAGrC;IAAiC,sBAAS;IAA1C;;IAgCA,CAAC;IAjBgB,oBAAO,GAApB;;;;;;wBACU,IAAI,GAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;wBAC9B,qBAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAAlE,SAAkE,CAAC;wBACnE,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEK,wBAAW,GAAjB,UAAkB,CAAC;;;;;wBACf,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;4BAClC,CAAC,CAAC,cAAc,EAAE,CAAC;wBACvB,qBAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAAnE,SAAmE,CAAC;;;;;KACvE;IAEY,oBAAO,GAApB;;;;;wBACI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAChH,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IA7BsB,eAAY,GAAa;QAC5C,OAAO;QACP,YAAY;QACZ,aAAa;QACb,OAAO;QACP,YAAY;QACZ,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;KACX,CAAC;IAbgB,EAAE;QADvB,mBAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;OACP,EAAE,CAgCvB;IAAD,SAAC;CAAA,AAhCD,CAAiC,qBAAS,GAgCzC;AAhCqB,gBAAE"}
|
package/dist/attributes/Radio.js
CHANGED
|
@@ -118,7 +118,7 @@ var Radio = /** @class */ (function (_super) {
|
|
|
118
118
|
return __generator(this, function (_a) {
|
|
119
119
|
switch (_a.label) {
|
|
120
120
|
case 0:
|
|
121
|
-
this.boundScope.
|
|
121
|
+
this.boundScope.on("change:" + this.key, this.checkSelected, this);
|
|
122
122
|
this.tag.addEventHandler('change', this.getAttributeModifiers(), this.handleEvent.bind(this));
|
|
123
123
|
return [4 /*yield*/, this.checkSelected()];
|
|
124
124
|
case 1:
|
|
@@ -156,8 +156,10 @@ var Radio = /** @class */ (function (_super) {
|
|
|
156
156
|
};
|
|
157
157
|
Radio.prototype.checkSelected = function () {
|
|
158
158
|
return __awaiter(this, void 0, void 0, function () {
|
|
159
|
+
var scopeValue;
|
|
159
160
|
return __generator(this, function (_a) {
|
|
160
|
-
|
|
161
|
+
scopeValue = this.boundScope.get(this.key);
|
|
162
|
+
this.tag.checked = "" + scopeValue === this.tag.value;
|
|
161
163
|
return [2 /*return*/];
|
|
162
164
|
});
|
|
163
165
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../src/attributes/Radio.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAqC;AACrC,0CAAuC;
|
|
1
|
+
{"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../src/attributes/Radio.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAqC;AACrC,0CAAuC;AAMvC;IAA2B,yBAAS;IAApC;;IA8CA,CAAC;IAzCgB,qBAAK,GAAlB;;;;;;wBACQ,QAAQ,GAAW,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;wBAEzF,IAAI;4BACA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;yBAC/C;wBAAC,OAAO,CAAC,EAAE;4BACR,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC1B,sBAAO;yBACV;wBAED,KAAA,IAAI,CAAA;wBAAO,qBAAM,GAAG,CAAC,MAAM,EAAE,EAAA;;wBAA7B,GAAK,GAAG,GAAG,SAAkB,CAAC;wBAC9B,KAAA,IAAI,CAAA;wBAAc,qBAAM,GAAG,CAAC,QAAQ,EAAE,EAAA;;wBAAtC,GAAK,UAAU,GAAG,SAAoB,CAAC;wBACvC,qBAAM,iBAAM,KAAK,WAAE,EAAA;;wBAAnB,SAAmB,CAAC;;;;;KACvB;IAEY,uBAAO,GAApB;;;;;6BACQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAhB,wBAAgB;wBAChB,qBAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAA;;wBAA5B,SAA4B,CAAC;;4BACjC,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEY,uBAAO,GAApB;;;;;wBACI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,YAAU,IAAI,CAAC,GAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;wBACnE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC9F,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEY,wBAAQ,GAArB;;;;4BACI,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,qBAAM,iBAAM,QAAQ,WAAE,EAAA;;wBAAtB,SAAsB,CAAC;;;;;KAC1B;IAEK,2BAAW,GAAjB,UAAkB,CAAC;;;gBACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;;;KACjD;IAEK,6BAAa,GAAnB;;;;gBACU,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAG,UAAY,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;;;;KACzD;IA5CsB,cAAQ,GAAY,KAAK,CAAC;IADxC,KAAK;QADjB,mBAAQ,CAAC,SAAS,CAAC,WAAW,CAAC;OACnB,KAAK,CA8CjB;IAAD,YAAC;CAAA,AA9CD,CAA2B,qBAAS,GA8CnC;AA9CY,sBAAK"}
|
|
@@ -95,7 +95,7 @@ var ScopeChange = /** @class */ (function (_super) {
|
|
|
95
95
|
ref = this.tag.scope.getReference(binding, false);
|
|
96
96
|
return [4 /*yield*/, ref.getScope()];
|
|
97
97
|
case 1:
|
|
98
|
-
_b = (_a = (_d.sent())).
|
|
98
|
+
_b = (_a = (_d.sent())).on;
|
|
99
99
|
_c = "change:";
|
|
100
100
|
return [4 /*yield*/, ref.getKey()];
|
|
101
101
|
case 2:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeChange.js","sourceRoot":"","sources":["../../src/attributes/ScopeChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AACvC,8BAA4B;AAE5B,wCAAqC;AAGrC;IAA0C,+BAAS;IAAnD;;IAqBA,CAAC;IAjBgB,6BAAO,GAApB;;;;;;wBACU,IAAI,GAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;wBAC9B,qBAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAAlE,SAAkE,CAAC;wBACnE,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEY,6BAAO,GAApB;;;;;;wBACU,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACrC,GAAG,GAAmB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBACvE,qBAAM,GAAG,CAAC,QAAQ,EAAE,EAAA;;wBAArB,KAAA,CAAA,KAAA,CAAC,SAAoB,CAAC,CAAA,CAAC,
|
|
1
|
+
{"version":3,"file":"ScopeChange.js","sourceRoot":"","sources":["../../src/attributes/ScopeChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AACvC,8BAA4B;AAE5B,wCAAqC;AAGrC;IAA0C,+BAAS;IAAnD;;IAqBA,CAAC;IAjBgB,6BAAO,GAApB;;;;;;wBACU,IAAI,GAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;wBAC9B,qBAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAAlE,SAAkE,CAAC;wBACnE,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEY,6BAAO,GAApB;;;;;;wBACU,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACrC,GAAG,GAAmB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBACvE,qBAAM,GAAG,CAAC,QAAQ,EAAE,EAAA;;wBAArB,KAAA,CAAA,KAAA,CAAC,SAAoB,CAAC,CAAA,CAAC,EAAE,CAAA;;wBAAW,qBAAM,GAAG,CAAC,MAAM,EAAE,EAAA;;wBAAtD,cAA0B,MAAU,SAAkB,CAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC;wBACvF,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEK,iCAAW,GAAjB,UAAkB,CAAC;;;;4BACf,qBAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAAnE,SAAmE,CAAC;;;;;KACvE;IAnBsB,oBAAQ,GAAY,KAAK,CAAC;IAD/B,WAAW;QADhC,mBAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC;OACjB,WAAW,CAqBhC;IAAD,kBAAC;CAAA,AArBD,CAA0C,qBAAS,GAqBlD;AArBqB,kCAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetAttribute.js","sourceRoot":"","sources":["../../src/attributes/SetAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAAuC;AACvC,wCAAqC;
|
|
1
|
+
{"version":3,"file":"SetAttribute.js","sourceRoot":"","sources":["../../src/attributes/SetAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAAuC;AACvC,wCAAqC;AAIrC;IAAkC,gCAAS;IAA3C;;IAuCA,CAAC;IAjCG,sBAAW,+BAAK;aAMhB;YACI,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;aATD,UAAiB,CAAM;YACnB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACpC;QACL,CAAC;;;OAAA;IAOY,4BAAK,GAAlB;;;;;;wBACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAE3C,IAAI;4BACA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACpD;wBAAC,OAAO,CAAC,EAAE;4BACR,sBAAO;yBACV;wBACD,KAAA,IAAI,CAAA;wBAAO,qBAAM,GAAG,CAAC,MAAM,EAAE,EAAA;;wBAA7B,GAAK,GAAG,GAAG,SAAkB,CAAC;wBAC9B,KAAA,IAAI,CAAA;wBAAc,qBAAM,GAAG,CAAC,QAAQ,EAAE,EAAA;;wBAAtC,GAAK,UAAU,GAAG,SAAoB,CAAC;wBACvC,qBAAM,iBAAM,KAAK,WAAE,EAAA;;wBAAnB,SAAmB,CAAC;;;;;KACvB;IAEY,8BAAO,GAApB;;;;gBACQ,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACnC,SAAS,GAAW,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5D,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;oBAChB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/D,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;iBACtC;gBACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;;;KACxC;IArCsB,qBAAQ,GAAY,KAAK,CAAC;IADxC,YAAY;QADxB,mBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;OACjB,YAAY,CAuCxB;IAAD,mBAAC;CAAA,AAvCD,CAAkC,qBAAS,GAuC1C;AAvCY,oCAAY"}
|
|
@@ -93,7 +93,7 @@ var StandardAttribute = /** @class */ (function (_super) {
|
|
|
93
93
|
return __generator(this, function (_a) {
|
|
94
94
|
switch (_a.label) {
|
|
95
95
|
case 0:
|
|
96
|
-
this.tag.scope.
|
|
96
|
+
this.tag.scope.on("change:" + this.key, this.updateTo.bind(this));
|
|
97
97
|
return [4 /*yield*/, _super.prototype.connect.call(this)];
|
|
98
98
|
case 1:
|
|
99
99
|
_a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardAttribute.js","sourceRoot":"","sources":["../../src/attributes/StandardAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAuC;AAEvC;IAAuC,qCAAS;IAAhD;;IA4FA,CAAC;IAnFgB,iCAAK,GAAlB;;;;;wBACI,IAAI,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;4BAClH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;yBACzD;wBACD,qBAAM,iBAAM,KAAK,WAAE,EAAA;;wBAAnB,SAAmB,CAAC;;;;;KACvB;IAEY,mCAAO,GAApB;;;;;wBACI,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,qBAAM,iBAAM,OAAO,WAAE,EAAA;;wBAArB,SAAqB,CAAC;;;;;KACzB;IAEY,mCAAO,GAApB;;;;;wBACI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"StandardAttribute.js","sourceRoot":"","sources":["../../src/attributes/StandardAttribute.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ var StyleAttribute = /** @class */ (function (_super) {
|
|
|
103
103
|
return __generator(this, function (_a) {
|
|
104
104
|
switch (_a.label) {
|
|
105
105
|
case 0:
|
|
106
|
-
this.styleScope.
|
|
106
|
+
this.styleScope.on("change", this.handleEvent.bind(this));
|
|
107
107
|
return [4 /*yield*/, _super.prototype.connect.call(this)];
|
|
108
108
|
case 1:
|
|
109
109
|
_a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleAttribute.js","sourceRoot":"","sources":["../../src/attributes/StyleAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAqC;AACrC,0CAAuC;AACvC,kCAA+
|
|
1
|
+
{"version":3,"file":"StyleAttribute.js","sourceRoot":"","sources":["../../src/attributes/StyleAttribute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DOM } from "./DOM";
|
|
2
|
-
import { EventDispatcher } from "simple-ts-event-dispatcher";
|
|
3
2
|
import { Registry } from "./Registry";
|
|
4
3
|
import "./Types";
|
|
5
4
|
import "./Formats";
|
|
6
5
|
import { Configuration } from "./Configuration";
|
|
6
|
+
import { EventDispatcher } from "./EventDispatcher";
|
|
7
7
|
export declare class Vision extends EventDispatcher {
|
|
8
8
|
protected static _instance: Vision;
|
|
9
9
|
protected _dom?: DOM;
|
|
@@ -20,5 +20,10 @@ export * from './Registry';
|
|
|
20
20
|
export * from './Attribute';
|
|
21
21
|
export * from './AST';
|
|
22
22
|
export { DOM } from './DOM';
|
|
23
|
-
export {
|
|
23
|
+
export { Scope } from './Scope';
|
|
24
|
+
export { ScopeReference } from './Scope/ScopeReference';
|
|
25
|
+
export { WrappedArray } from './Scope/WrappedArray';
|
|
26
|
+
export { Controller } from './Controller';
|
|
27
|
+
export { Property, property } from './Scope/properties/Property';
|
|
28
|
+
export { Tag } from './Tag';
|
|
24
29
|
export declare const vision: Vision;
|
|
@@ -61,11 +61,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
63
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
-
exports.vision = exports.
|
|
64
|
+
exports.vision = exports.Tag = exports.property = exports.Property = exports.Controller = exports.WrappedArray = exports.ScopeReference = exports.Scope = exports.DOM = exports.Vision = void 0;
|
|
65
65
|
var DOM_1 = require("./DOM");
|
|
66
|
-
var
|
|
67
|
-
var Scope_1 = require("./Scope");
|
|
68
|
-
var simple_ts_models_1 = require("simple-ts-models");
|
|
66
|
+
var WrappedArray_1 = require("./Scope/WrappedArray");
|
|
69
67
|
var Registry_1 = require("./Registry");
|
|
70
68
|
require("./Types");
|
|
71
69
|
require("./Formats");
|
|
@@ -73,6 +71,8 @@ var Configuration_1 = require("./Configuration");
|
|
|
73
71
|
var VisionHelper_1 = require("./helpers/VisionHelper");
|
|
74
72
|
var AST_1 = require("./AST");
|
|
75
73
|
var Query_1 = require("./Query");
|
|
74
|
+
var EventDispatcher_1 = require("./EventDispatcher");
|
|
75
|
+
var DynamicScopeData_1 = require("./Scope/DynamicScopeData");
|
|
76
76
|
var Vision = /** @class */ (function (_super) {
|
|
77
77
|
__extends(Vision, _super);
|
|
78
78
|
function Vision() {
|
|
@@ -86,8 +86,8 @@ var Vision = /** @class */ (function (_super) {
|
|
|
86
86
|
console.warn('No dom, running in CLI mode.');
|
|
87
87
|
}
|
|
88
88
|
_this.registry.classes.register('Object', Object);
|
|
89
|
-
_this.registry.classes.register('WrappedArray',
|
|
90
|
-
_this.registry.classes.register('
|
|
89
|
+
_this.registry.classes.register('WrappedArray', WrappedArray_1.WrappedArray);
|
|
90
|
+
_this.registry.classes.register('Data', DynamicScopeData_1.DynamicScopeData);
|
|
91
91
|
if (VisionHelper_1.VisionHelper.window) {
|
|
92
92
|
window['Vision'] = Vision;
|
|
93
93
|
window['Registry'] = Registry_1.Registry;
|
|
@@ -146,7 +146,7 @@ var Vision = /** @class */ (function (_super) {
|
|
|
146
146
|
configurable: true
|
|
147
147
|
});
|
|
148
148
|
return Vision;
|
|
149
|
-
}(
|
|
149
|
+
}(EventDispatcher_1.EventDispatcher));
|
|
150
150
|
exports.Vision = Vision;
|
|
151
151
|
__exportStar(require("./attributes/_imports"), exports);
|
|
152
152
|
__exportStar(require("./Registry"), exports);
|
|
@@ -154,9 +154,18 @@ __exportStar(require("./Attribute"), exports);
|
|
|
154
154
|
__exportStar(require("./AST"), exports);
|
|
155
155
|
var DOM_2 = require("./DOM");
|
|
156
156
|
Object.defineProperty(exports, "DOM", { enumerable: true, get: function () { return DOM_2.DOM; } });
|
|
157
|
-
var
|
|
158
|
-
Object.defineProperty(exports, "
|
|
159
|
-
|
|
160
|
-
Object.defineProperty(exports, "ScopeReference", { enumerable: true, get: function () { return
|
|
157
|
+
var Scope_1 = require("./Scope");
|
|
158
|
+
Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return Scope_1.Scope; } });
|
|
159
|
+
var ScopeReference_1 = require("./Scope/ScopeReference");
|
|
160
|
+
Object.defineProperty(exports, "ScopeReference", { enumerable: true, get: function () { return ScopeReference_1.ScopeReference; } });
|
|
161
|
+
var WrappedArray_2 = require("./Scope/WrappedArray");
|
|
162
|
+
Object.defineProperty(exports, "WrappedArray", { enumerable: true, get: function () { return WrappedArray_2.WrappedArray; } });
|
|
163
|
+
var Controller_1 = require("./Controller");
|
|
164
|
+
Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return Controller_1.Controller; } });
|
|
165
|
+
var Property_1 = require("./Scope/properties/Property");
|
|
166
|
+
Object.defineProperty(exports, "Property", { enumerable: true, get: function () { return Property_1.Property; } });
|
|
167
|
+
Object.defineProperty(exports, "property", { enumerable: true, get: function () { return Property_1.property; } });
|
|
168
|
+
var Tag_1 = require("./Tag");
|
|
169
|
+
Object.defineProperty(exports, "Tag", { enumerable: true, get: function () { return Tag_1.Tag; } });
|
|
161
170
|
exports.vision = Vision.instance;
|
|
162
|
-
//# sourceMappingURL=
|
|
171
|
+
//# sourceMappingURL=vsn.js.map
|
package/dist/vsn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vsn.js","sourceRoot":"","sources":["../src/vsn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vsn",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.28",
|
|
4
4
|
"description": "SEO Friendly Javascript/Typescript Framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
7
7
|
"typescript"
|
|
8
8
|
],
|
|
9
|
-
"main": "./dist/
|
|
9
|
+
"main": "./dist/vsn.js",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "rm -rf ./dist/ && tsc",
|
|
12
12
|
"build_dev": "rm -rf ./dist/ && webpack --env BUILD=development BENCHMARK=1",
|
|
13
|
-
"demo": "rm -rf ./dist/ && webpack --env BUILD=production BENCHMARK=1 && cp ./dist/
|
|
13
|
+
"demo": "rm -rf ./dist/ && webpack --env BUILD=production BENCHMARK=1 && cp ./dist/vsn.min.js ./demo/vsn.js",
|
|
14
14
|
"clean": "rm -rf ./dist/",
|
|
15
15
|
"test": "karma start --single-run",
|
|
16
16
|
"posttest": "codecov",
|
|
17
17
|
"sample": "rm -rf sample/dist/ && tsc -p sample/ && node sample/dist/sample/index.js"
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
|
-
"dependencies": {
|
|
21
|
-
"simple-ts-event-dispatcher": "^0.1.6",
|
|
22
|
-
"simple-ts-models": "^0.1.3",
|
|
23
|
-
"simple-ts-promise": "^0.1.6"
|
|
24
|
-
},
|
|
20
|
+
"dependencies": {},
|
|
25
21
|
"devDependencies": {
|
|
26
22
|
"@types/jasmine": "^3.6.10",
|
|
27
23
|
"codecov": "^3.8.1",
|
|
@@ -37,16 +33,16 @@
|
|
|
37
33
|
"webpack-cli": "^4.6.0"
|
|
38
34
|
},
|
|
39
35
|
"homepage": "https://www.vsnjs.com",
|
|
40
|
-
"git": "https://github.com/malero/
|
|
41
|
-
"typings": "./dist/
|
|
42
|
-
"types": "./dist/
|
|
36
|
+
"git": "https://github.com/malero/vsn.git",
|
|
37
|
+
"typings": "./dist/vsn.d.ts",
|
|
38
|
+
"types": "./dist/vsn.d.ts",
|
|
43
39
|
"author": "Malero <contact@vsnjs.com> (https://www.vsnjs.com/)",
|
|
44
40
|
"bugs": {
|
|
45
|
-
"url": "https://github.com/malero/
|
|
41
|
+
"url": "https://github.com/malero/vsn/issues",
|
|
46
42
|
"email": "contact@vsnjs.com"
|
|
47
43
|
},
|
|
48
44
|
"repository": {
|
|
49
45
|
"type": "git",
|
|
50
|
-
"url": "https://github.com/malero/
|
|
46
|
+
"url": "https://github.com/malero/vsn.git"
|
|
51
47
|
}
|
|
52
48
|
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import {Scope} from "../Scope";
|
|
2
|
+
import {DOM} from "../DOM";
|
|
3
|
+
import {Tag} from "../Tag";
|
|
4
|
+
import {DOMObject} from "../DOM/DOMObject";
|
|
5
|
+
import {Token, TokenType, Tree, TreeNode} from "../AST";
|
|
6
|
+
import {Node} from "./Node";
|
|
7
|
+
import {RootScopeMemberNode} from "./RootScopeMemberNode";
|
|
8
|
+
import {ScopeMemberNode} from "./ScopeMemberNode";
|
|
9
|
+
import {ElementQueryNode} from "./ElementQueryNode";
|
|
10
|
+
import {ElementAttributeNode} from "./ElementAttributeNode";
|
|
11
|
+
import {ElementStyleNode} from "./ElementStyleNode";
|
|
12
|
+
import {UnitLiteral} from "./UnitLiteralNode";
|
|
13
|
+
import {Controller} from "../vsn";
|
|
14
|
+
|
|
15
|
+
export class ArithmeticAssignmentNode extends Node implements TreeNode {
|
|
16
|
+
constructor(
|
|
17
|
+
public readonly left: RootScopeMemberNode | ScopeMemberNode,
|
|
18
|
+
public readonly right: TreeNode,
|
|
19
|
+
public readonly type: TokenType
|
|
20
|
+
) {
|
|
21
|
+
super();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
protected _getChildNodes(): Node[] {
|
|
25
|
+
return [
|
|
26
|
+
this.left as Node,
|
|
27
|
+
this.right as Node
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
32
|
+
let scopes = [];
|
|
33
|
+
const name: string = await this.left.name.evaluate(scope, dom, tag);
|
|
34
|
+
|
|
35
|
+
if (this.left instanceof ScopeMemberNode) {
|
|
36
|
+
const inner = await this.left.scope.evaluate(scope, dom, tag);
|
|
37
|
+
if (this.left.scope instanceof ElementQueryNode) {
|
|
38
|
+
scopes.push(...inner);
|
|
39
|
+
} else if (inner instanceof Scope) {
|
|
40
|
+
scopes.push(inner);
|
|
41
|
+
} else if (inner instanceof Controller) {
|
|
42
|
+
scopes.push(inner.scope);
|
|
43
|
+
} else {
|
|
44
|
+
scopes.push(scope)
|
|
45
|
+
}
|
|
46
|
+
} else if ((this.left instanceof ElementAttributeNode || this.left instanceof ElementStyleNode) && this.left.elementRef) {
|
|
47
|
+
scopes = await this.left.elementRef.evaluate(scope, dom, tag);
|
|
48
|
+
} else
|
|
49
|
+
scopes.push(scope);
|
|
50
|
+
|
|
51
|
+
const values = [];
|
|
52
|
+
for (let localScope of scopes) {
|
|
53
|
+
if (localScope instanceof DOMObject) {
|
|
54
|
+
await this.handleDOMObject(name, dom, localScope, tag);
|
|
55
|
+
} else {
|
|
56
|
+
if (localScope['$wrapped'] && localScope['$scope']) {
|
|
57
|
+
localScope = localScope['$scope'];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// We get the values from the passed scope, but set the value on the local scope
|
|
61
|
+
let left: number | Array<any> | string = await this.left.evaluate(scope, dom, tag);
|
|
62
|
+
let right: number | Array<any> | string = await this.right.evaluate(scope, dom, tag);
|
|
63
|
+
|
|
64
|
+
if (left instanceof Array) {
|
|
65
|
+
left = this.handleArray(name, left, right, localScope);
|
|
66
|
+
} else if ((left as any) instanceof UnitLiteral || right instanceof UnitLiteral) {
|
|
67
|
+
left = this.handleUnit(name, left, right, localScope);
|
|
68
|
+
} else if (Number.isFinite(left)) {
|
|
69
|
+
left = this.handleNumber(name, left, right, localScope);
|
|
70
|
+
} else {
|
|
71
|
+
left = this.handleString(name, left, right, localScope);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
values.push(left);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return values.length > 1 ? values : values[0];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public handleNumber(key, left, right, scope) {
|
|
81
|
+
if (right !== null && !Number.isFinite(right))
|
|
82
|
+
right = parseFloat(`${right}`);
|
|
83
|
+
|
|
84
|
+
left = left as number;
|
|
85
|
+
right = right as number;
|
|
86
|
+
|
|
87
|
+
switch (this.type) {
|
|
88
|
+
case TokenType.ASSIGN:
|
|
89
|
+
left = right;
|
|
90
|
+
break;
|
|
91
|
+
case TokenType.ADD_ASSIGN:
|
|
92
|
+
left += right;
|
|
93
|
+
break;
|
|
94
|
+
case TokenType.SUBTRACT_ASSIGN:
|
|
95
|
+
left -= right;
|
|
96
|
+
break;
|
|
97
|
+
case TokenType.MULTIPLY_ASSIGN:
|
|
98
|
+
left *= right;
|
|
99
|
+
break;
|
|
100
|
+
case TokenType.DIVIDE_ASSIGN:
|
|
101
|
+
left /= right;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
scope.set(key, left);
|
|
105
|
+
return left;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
public handleString(key, left, right, scope) {
|
|
109
|
+
switch (this.type) {
|
|
110
|
+
case TokenType.ASSIGN:
|
|
111
|
+
left = right;
|
|
112
|
+
break;
|
|
113
|
+
case TokenType.ADD_ASSIGN:
|
|
114
|
+
left = `${left}${right}`;
|
|
115
|
+
break;
|
|
116
|
+
case TokenType.SUBTRACT_ASSIGN:
|
|
117
|
+
left.replace(right, '');
|
|
118
|
+
break;
|
|
119
|
+
case TokenType.MULTIPLY_ASSIGN:
|
|
120
|
+
left *= right;
|
|
121
|
+
break;
|
|
122
|
+
case TokenType.DIVIDE_ASSIGN:
|
|
123
|
+
left /= right;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
scope.set(key, left);
|
|
128
|
+
return left;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
public handleUnit(key, left, right, scope) {
|
|
132
|
+
if (!(left instanceof UnitLiteral)) {
|
|
133
|
+
left = new UnitLiteral(left);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (!(right instanceof UnitLiteral)) {
|
|
137
|
+
right = new UnitLiteral(right);
|
|
138
|
+
}
|
|
139
|
+
const unit = left.unit || right.unit || 'px';
|
|
140
|
+
|
|
141
|
+
switch (this.type) {
|
|
142
|
+
case TokenType.ASSIGN:
|
|
143
|
+
left = right;
|
|
144
|
+
break;
|
|
145
|
+
case TokenType.ADD_ASSIGN:
|
|
146
|
+
left = new UnitLiteral(`${left.amount+right.amount}${unit}`);
|
|
147
|
+
break;
|
|
148
|
+
case TokenType.SUBTRACT_ASSIGN:
|
|
149
|
+
left = new UnitLiteral(`${left.amount-right.amount}${unit}`);
|
|
150
|
+
break;
|
|
151
|
+
case TokenType.MULTIPLY_ASSIGN:
|
|
152
|
+
left = new UnitLiteral(`${left.amount*right.amount}${unit}`);
|
|
153
|
+
break;
|
|
154
|
+
case TokenType.DIVIDE_ASSIGN:
|
|
155
|
+
left = new UnitLiteral(`${left.amount/right.amount}${unit}`);
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
scope.set(key, left);
|
|
160
|
+
return left;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
public async handleDOMObject(key: string, dom: DOM, domObject: DOMObject, tag: Tag) {
|
|
164
|
+
let left = domObject.scope.get(key);
|
|
165
|
+
let right: number | Array<any> | string = await this.right.evaluate(domObject.scope, dom, tag);
|
|
166
|
+
if (left instanceof Array)
|
|
167
|
+
return this.handleArray(key, left, right, domObject.scope);
|
|
168
|
+
|
|
169
|
+
return this.handleString(key, left, right, domObject.scope);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
public handleArray(key, left, right, scope) {
|
|
173
|
+
if (!(right instanceof Array))
|
|
174
|
+
right = [right];
|
|
175
|
+
switch (this.type) {
|
|
176
|
+
case TokenType.ASSIGN:
|
|
177
|
+
left.splice(0, left.length);
|
|
178
|
+
left.push(...right);
|
|
179
|
+
break;
|
|
180
|
+
case TokenType.ADD_ASSIGN:
|
|
181
|
+
left.push(...right);
|
|
182
|
+
break;
|
|
183
|
+
case TokenType.SUBTRACT_ASSIGN:
|
|
184
|
+
for (let i = left.length - 1; i >= 0; i--) {
|
|
185
|
+
if (right.indexOf(left[i]) > -1) {
|
|
186
|
+
left.splice(i, 1);
|
|
187
|
+
i++;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
break;
|
|
191
|
+
case TokenType.TILDE:
|
|
192
|
+
for (const toggle of right) {
|
|
193
|
+
const index = left.indexOf(toggle);
|
|
194
|
+
if (index > -1) {
|
|
195
|
+
left.splice(index, 1);
|
|
196
|
+
} else {
|
|
197
|
+
left.push(toggle);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/*
|
|
204
|
+
We have to trigger a change manually here. Setting the variable on the scope with an array won't trigger
|
|
205
|
+
it since we are modifying values inside of the array instance.
|
|
206
|
+
*/
|
|
207
|
+
scope.dispatch(`change:${key}`);
|
|
208
|
+
|
|
209
|
+
return left;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public static match(tokens: Token[]): boolean {
|
|
213
|
+
return [
|
|
214
|
+
TokenType.ASSIGN,
|
|
215
|
+
TokenType.ADD_ASSIGN,
|
|
216
|
+
TokenType.SUBTRACT_ASSIGN,
|
|
217
|
+
TokenType.MULTIPLY_ASSIGN,
|
|
218
|
+
TokenType.DIVIDE_ASSIGN,
|
|
219
|
+
TokenType.TILDE,
|
|
220
|
+
].indexOf(tokens[0].type) > -1;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
public static parse(lastNode: any, token, tokens: Token[]): ArithmeticAssignmentNode {
|
|
224
|
+
if (!(lastNode instanceof RootScopeMemberNode) && !(lastNode instanceof ScopeMemberNode) && !(lastNode instanceof ElementAttributeNode) && !(lastNode instanceof ElementStyleNode)) {
|
|
225
|
+
throw SyntaxError(`Invalid assignment syntax near ${Tree.toCode(tokens.splice(0, 10))}`);
|
|
226
|
+
}
|
|
227
|
+
tokens.splice(0, 1); // consume =
|
|
228
|
+
const assignmentTokens: Token[] = Tree.getNextStatementTokens(tokens, false, false, true);
|
|
229
|
+
|
|
230
|
+
return new ArithmeticAssignmentNode(
|
|
231
|
+
lastNode as RootScopeMemberNode,
|
|
232
|
+
Tree.processTokens(assignmentTokens),
|
|
233
|
+
token.type
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {Scope} from "../Scope";
|
|
2
|
+
import {DOM} from "../DOM";
|
|
3
|
+
import {Tag} from "../Tag";
|
|
4
|
+
import {Token, TokenType, Tree, TreeNode} from "../AST";
|
|
5
|
+
import {Node} from "./Node";
|
|
6
|
+
|
|
7
|
+
export class ArithmeticNode extends Node implements TreeNode {
|
|
8
|
+
constructor(
|
|
9
|
+
public readonly left: TreeNode,
|
|
10
|
+
public readonly right: TreeNode,
|
|
11
|
+
public readonly type: TokenType
|
|
12
|
+
) {
|
|
13
|
+
super();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
protected _getChildNodes(): Node[] {
|
|
17
|
+
return [
|
|
18
|
+
this.left as Node,
|
|
19
|
+
this.right as Node
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
24
|
+
const left: any = await this.left.evaluate(scope, dom, tag);
|
|
25
|
+
const right: any = await this.right.evaluate(scope, dom, tag);
|
|
26
|
+
|
|
27
|
+
switch (this.type) {
|
|
28
|
+
case TokenType.ADD:
|
|
29
|
+
return left + right;
|
|
30
|
+
case TokenType.SUBTRACT:
|
|
31
|
+
return left - right;
|
|
32
|
+
case TokenType.MULTIPLY:
|
|
33
|
+
return left * right;
|
|
34
|
+
case TokenType.DIVIDE:
|
|
35
|
+
return left / right;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public static match(tokens: Token[]): boolean {
|
|
40
|
+
return [
|
|
41
|
+
TokenType.ADD,
|
|
42
|
+
TokenType.SUBTRACT,
|
|
43
|
+
TokenType.MULTIPLY,
|
|
44
|
+
TokenType.DIVIDE
|
|
45
|
+
].indexOf(tokens[0].type) > -1
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public static parse(lastNode, token, tokens: Token[]) {
|
|
49
|
+
tokens.splice(0, 1); // Remove arithmetic operator
|
|
50
|
+
return new ArithmeticNode(lastNode, Tree.processTokens(Tree.getNextStatementTokens(tokens)), token.type)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {Scope} from "../Scope";
|
|
2
|
+
import {DOM} from "../DOM";
|
|
3
|
+
import {Tag} from "../Tag";
|
|
4
|
+
import {WrappedArray} from "../Scope/WrappedArray";
|
|
5
|
+
import {Token, TokenType, Tree, TreeNode} from "../AST";
|
|
6
|
+
import {Node} from "./Node";
|
|
7
|
+
|
|
8
|
+
export class ArrayNode extends Node implements TreeNode {
|
|
9
|
+
constructor(
|
|
10
|
+
public readonly values: Node[]
|
|
11
|
+
) {
|
|
12
|
+
super();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
protected _getChildNodes(): Node[] {
|
|
16
|
+
return new Array(...this.values);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
20
|
+
const arr: WrappedArray<any> = new WrappedArray();
|
|
21
|
+
for (const val of this.values) {
|
|
22
|
+
arr.push(await val.evaluate(scope, dom, tag));
|
|
23
|
+
}
|
|
24
|
+
return arr;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public static match(tokens: Token[]): boolean {
|
|
28
|
+
return tokens[0].type === TokenType.L_BRACKET;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public static parse(lastNode, token, tokens: Token[]): ArrayNode {
|
|
32
|
+
const valueTokens: Token[][] = Tree.getBlockTokens(tokens);
|
|
33
|
+
const values: Node[] = [];
|
|
34
|
+
for (const arg of valueTokens) {
|
|
35
|
+
values.push(Tree.processTokens(arg));
|
|
36
|
+
}
|
|
37
|
+
return new ArrayNode(values);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
|
|
7
|
+
export class BlockNode extends Node implements TreeNode {
|
|
8
|
+
constructor(
|
|
9
|
+
public readonly statements: Node[]
|
|
10
|
+
) {
|
|
11
|
+
super();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
protected _getChildNodes(): Node[] {
|
|
15
|
+
return [...(this.statements as Node[])];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
19
|
+
let returnValue: any = null;
|
|
20
|
+
for (let i = 0; i < this.statements.length; i++) {
|
|
21
|
+
returnValue = await this.statements[i].evaluate(scope, dom, tag);
|
|
22
|
+
}
|
|
23
|
+
return returnValue;
|
|
24
|
+
}
|
|
25
|
+
}
|