vsn 0.1.54 → 0.1.57

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.
Files changed (49) hide show
  1. package/demo/demo.html +184 -62
  2. package/demo/vsn.js +2 -1
  3. package/dist/AST/FunctionNode.d.ts +18 -0
  4. package/dist/AST/FunctionNode.js +87 -0
  5. package/dist/AST/FunctionNode.js.map +1 -1
  6. package/dist/DOM/DOMObject.d.ts +6 -1
  7. package/dist/DOM/DOMObject.js.map +1 -1
  8. package/dist/DOM.js +46 -76
  9. package/dist/DOM.js.map +1 -1
  10. package/dist/Tag.d.ts +4 -3
  11. package/dist/Tag.js +48 -19
  12. package/dist/Tag.js.map +1 -1
  13. package/dist/Types.js +1 -1
  14. package/dist/Types.js.map +1 -1
  15. package/dist/attributes/Bind.js.map +1 -1
  16. package/dist/attributes/KeyAbstract.js +1 -1
  17. package/dist/attributes/KeyAbstract.js.map +1 -1
  18. package/dist/attributes/KeyDown.js +1 -1
  19. package/dist/attributes/KeyDown.js.map +1 -1
  20. package/dist/attributes/KeyUp.js +1 -1
  21. package/dist/attributes/KeyUp.js.map +1 -1
  22. package/dist/attributes/LazyAttribute.js +2 -2
  23. package/dist/attributes/LazyAttribute.js.map +1 -1
  24. package/dist/attributes/List.js +13 -9
  25. package/dist/attributes/List.js.map +1 -1
  26. package/dist/attributes/On.js +1 -1
  27. package/dist/attributes/On.js.map +1 -1
  28. package/dist/attributes/ScopeAttribute.js +15 -5
  29. package/dist/attributes/ScopeAttribute.js.map +1 -1
  30. package/dist/vsn.d.ts +1 -1
  31. package/dist/vsn.js +2 -2
  32. package/dist/vsn.js.map +1 -1
  33. package/dist/vsn.min.js +2 -0
  34. package/package.json +3 -4
  35. package/src/AST/FunctionNode.ts +31 -0
  36. package/src/DOM/DOMObject.ts +7 -1
  37. package/src/DOM.ts +0 -20
  38. package/src/Tag.ts +41 -14
  39. package/src/Types.ts +1 -1
  40. package/src/attributes/Bind.ts +1 -2
  41. package/src/attributes/KeyAbstract.ts +1 -1
  42. package/src/attributes/KeyDown.ts +1 -1
  43. package/src/attributes/KeyUp.ts +1 -1
  44. package/src/attributes/LazyAttribute.ts +2 -2
  45. package/src/attributes/List.ts +2 -0
  46. package/src/attributes/On.ts +1 -1
  47. package/src/vsn.ts +2 -2
  48. package/test/attributes/ListItem.spec.ts +1 -0
  49. package/webpack.config.js +10 -0
@@ -0,0 +1,18 @@
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 { LiteralNode } from "./LiteralNode";
7
+ import { RootScopeMemberNode } from "./RootScopeMemberNode";
8
+ import { ScopeMemberNode } from "./ScopeMemberNode";
9
+ export declare class FunctionNode extends Node implements TreeNode {
10
+ readonly name: LiteralNode<string>;
11
+ readonly variables: LiteralNode<string>[];
12
+ readonly block: RootScopeMemberNode | ScopeMemberNode;
13
+ constructor(name: LiteralNode<string>, variables: LiteralNode<string>[], block: RootScopeMemberNode | ScopeMemberNode);
14
+ protected _getChildNodes(): Node[];
15
+ prepare(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;
16
+ evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;
17
+ static parse(lastNode: any, token: any, tokens: Token[]): FunctionNode;
18
+ }
@@ -1 +1,88 @@
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.FunctionNode = void 0;
55
+ var Node_1 = require("./Node");
56
+ var FunctionNode = /** @class */ (function (_super) {
57
+ __extends(FunctionNode, _super);
58
+ function FunctionNode(name, variables, block) {
59
+ var _this = _super.call(this) || this;
60
+ _this.name = name;
61
+ _this.variables = variables;
62
+ _this.block = block;
63
+ return _this;
64
+ }
65
+ FunctionNode.prototype._getChildNodes = function () {
66
+ return [
67
+ this.block
68
+ ];
69
+ };
70
+ FunctionNode.prototype.prepare = function (scope, dom, tag) {
71
+ if (tag === void 0) { tag = null; }
72
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
73
+ return [2 /*return*/];
74
+ }); });
75
+ };
76
+ FunctionNode.prototype.evaluate = function (scope, dom, tag) {
77
+ if (tag === void 0) { tag = null; }
78
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
79
+ return [2 /*return*/];
80
+ }); });
81
+ };
82
+ FunctionNode.parse = function (lastNode, token, tokens) {
83
+ return new FunctionNode(null, null, null);
84
+ };
85
+ return FunctionNode;
86
+ }(Node_1.Node));
87
+ exports.FunctionNode = FunctionNode;
1
88
  //# sourceMappingURL=FunctionNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionNode.js","sourceRoot":"","sources":["../../src/AST/FunctionNode.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"FunctionNode.js","sourceRoot":"","sources":["../../src/AST/FunctionNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA4B;AAK5B;IAAkC,gCAAI;IAClC,sBACoB,IAAyB,EACzB,SAAgC,EAChC,KAA4C;QAHhE,YAKI,iBAAO,SACV;QALmB,UAAI,GAAJ,IAAI,CAAqB;QACzB,eAAS,GAAT,SAAS,CAAuB;QAChC,WAAK,GAAL,KAAK,CAAuC;;IAGhE,CAAC;IAES,qCAAc,GAAxB;QACI,OAAO;YACH,IAAI,CAAC,KAAK;SACb,CAAC;IACN,CAAC;IAEY,8BAAO,GAApB,UAAqB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;KAAI;IACnD,+BAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;KAAI;IAEnD,kBAAK,GAAnB,UAAoB,QAAQ,EAAE,KAAK,EAAE,MAAe;QAChD,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IACL,mBAAC;AAAD,CAAC,AArBD,CAAkC,WAAI,GAqBrC;AArBY,oCAAY"}
@@ -1,10 +1,15 @@
1
1
  import { Scope } from "../Scope";
2
2
  import { EventDispatcher } from "../EventDispatcher";
3
+ export interface IEventHandler {
4
+ event: string;
5
+ handler: (...args: any[]) => any;
6
+ context?: any;
7
+ }
3
8
  export declare abstract class DOMObject extends EventDispatcher {
4
9
  readonly element: HTMLElement;
5
10
  protected _scope: Scope;
6
11
  protected onEventHandlers: {
7
- [key: string]: any[];
12
+ [key: string]: IEventHandler[];
8
13
  };
9
14
  protected _uniqueScope: boolean;
10
15
  constructor(element: HTMLElement, props: any);
@@ -1 +1 @@
1
- {"version":3,"file":"DOMObject.js","sourceRoot":"","sources":["../../src/DOM/DOMObject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,sDAAmD;AAEnD;IAAwC,6BAAe;IAKnD,mBACoB,OAAoB,EACpC,KAAK;QAFT,YAII,iBAAO,SACV;QAJmB,aAAO,GAAP,OAAO,CAAa;QAH9B,kBAAY,GAAY,KAAK,CAAC;;IAOxC,CAAC;IAED,sBAAW,4BAAK;aAAhB;YACI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;gBACb,OAAO,IAAI,CAAC,MAAM,CAAC;YAEvB,OAAO,IAAI,CAAC;QAChB,CAAC;aAED,UAAiB,KAAY;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;;;OAJA;IAMM,kCAAc,GAArB,UAAsB,IAAY;IAElC,CAAC;IAEM,8BAAU,GAAjB,UAAkB,KAAa;IAE/B,CAAC;IAEM,+BAAW,GAAlB;;QACI,IAAI,IAAI,CAAC,YAAY;YACjB,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,CAAC;QAC9B,iBAAM,WAAW,WAAE,CAAC;IACxB,CAAC;IACL,gBAAC;AAAD,CAAC,AApCD,CAAwC,iCAAe,GAoCtD;AApCqB,8BAAS"}
1
+ {"version":3,"file":"DOMObject.js","sourceRoot":"","sources":["../../src/DOM/DOMObject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,sDAAmD;AAQnD;IAAwC,6BAAe;IAKnD,mBACoB,OAAoB,EACpC,KAAK;QAFT,YAII,iBAAO,SACV;QAJmB,aAAO,GAAP,OAAO,CAAa;QAH9B,kBAAY,GAAY,KAAK,CAAC;;IAOxC,CAAC;IAED,sBAAW,4BAAK;aAAhB;YACI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;gBACb,OAAO,IAAI,CAAC,MAAM,CAAC;YAEvB,OAAO,IAAI,CAAC;QAChB,CAAC;aAED,UAAiB,KAAY;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;;;OAJA;IAMM,kCAAc,GAArB,UAAsB,IAAY;IAElC,CAAC;IAEM,8BAAU,GAAjB,UAAkB,KAAa;IAE/B,CAAC;IAEM,+BAAW,GAAlB;;QACI,IAAI,IAAI,CAAC,YAAY;YACjB,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,CAAC;QAC9B,iBAAM,WAAW,WAAE,CAAC;IACxB,CAAC;IACL,gBAAC;AAAD,CAAC,AApCD,CAAwC,iCAAe,GAoCtD;AApCqB,8BAAS"}
package/dist/DOM.js CHANGED
@@ -255,10 +255,10 @@ var DOM = /** @class */ (function (_super) {
255
255
  DOM.prototype.buildFrom = function (ele, isRoot) {
256
256
  if (isRoot === void 0) { isRoot = false; }
257
257
  return __awaiter(this, void 0, void 0, function () {
258
- var allElements, _i, _a, tag, newTags, toBuild, toSkip, _b, _c, element, _d, toBuild_1, element, tag, _e, _f, newTags_1, tag, _g, newTags_2, tag, _h, newTags_3, tag, parentElement, foundParent, _j, _k, newTags_4, tag, _l, newTags_5, tag, _m, newTags_6, tag, _o, newTags_7, tag;
258
+ var allElements, _i, _a, tag, newTags, toBuild, toSkip, _b, _c, element, _d, toBuild_1, element, tag, _e, _f, newTags_1, tag, _g, newTags_2, tag, _h, newTags_3, tag, _j, newTags_4, tag, _k, newTags_5, tag, _l, newTags_6, tag;
259
259
  var _this = this;
260
- return __generator(this, function (_p) {
261
- switch (_p.label) {
260
+ return __generator(this, function (_m) {
261
+ switch (_m.label) {
262
262
  case 0:
263
263
  allElements = [];
264
264
  if (isRoot) {
@@ -300,118 +300,88 @@ var DOM = /** @class */ (function (_super) {
300
300
  _e = this;
301
301
  return [4 /*yield*/, this.getTagForElement(document.body)];
302
302
  case 1:
303
- _e._root = _p.sent();
304
- _p.label = 2;
303
+ _e._root = _m.sent();
304
+ _m.label = 2;
305
305
  case 2:
306
306
  _f = 0, newTags_1 = newTags;
307
- _p.label = 3;
307
+ _m.label = 3;
308
308
  case 3:
309
309
  if (!(_f < newTags_1.length)) return [3 /*break*/, 6];
310
310
  tag = newTags_1[_f];
311
311
  return [4 /*yield*/, tag.buildAttributes()];
312
312
  case 4:
313
- _p.sent();
314
- _p.label = 5;
313
+ _m.sent();
314
+ _m.label = 5;
315
315
  case 5:
316
316
  _f++;
317
317
  return [3 /*break*/, 3];
318
318
  case 6:
319
319
  _g = 0, newTags_2 = newTags;
320
- _p.label = 7;
320
+ _m.label = 7;
321
321
  case 7:
322
322
  if (!(_g < newTags_2.length)) return [3 /*break*/, 10];
323
323
  tag = newTags_2[_g];
324
324
  return [4 /*yield*/, tag.compileAttributes()];
325
325
  case 8:
326
- _p.sent();
327
- _p.label = 9;
326
+ _m.sent();
327
+ _m.label = 9;
328
328
  case 9:
329
329
  _g++;
330
330
  return [3 /*break*/, 7];
331
331
  case 10:
332
332
  _h = 0, newTags_3 = newTags;
333
- _p.label = 11;
333
+ _m.label = 11;
334
334
  case 11:
335
- if (!(_h < newTags_3.length)) return [3 /*break*/, 17];
335
+ if (!(_h < newTags_3.length)) return [3 /*break*/, 14];
336
336
  tag = newTags_3[_h];
337
- if (tag === this.root)
338
- return [3 /*break*/, 16];
339
- parentElement = tag.element.parentElement;
340
- foundParent = false;
341
- _p.label = 12;
337
+ return [4 /*yield*/, tag.setupAttributes()];
342
338
  case 12:
343
- if (!parentElement) return [3 /*break*/, 15];
344
- if (!(allElements.indexOf(parentElement) > -1)) return [3 /*break*/, 14];
345
- foundParent = true;
346
- _j = tag;
347
- return [4 /*yield*/, this.getTagForElement(parentElement)];
339
+ _m.sent();
340
+ _m.label = 13;
348
341
  case 13:
349
- _j.parentTag = _p.sent();
350
- return [3 /*break*/, 15];
342
+ _h++;
343
+ return [3 /*break*/, 11];
351
344
  case 14:
352
- parentElement = parentElement.parentElement;
353
- return [3 /*break*/, 12];
345
+ _j = 0, newTags_4 = newTags;
346
+ _m.label = 15;
354
347
  case 15:
355
- if (!foundParent)
356
- console.error('Could not find parent for ', tag);
357
- _p.label = 16;
348
+ if (!(_j < newTags_4.length)) return [3 /*break*/, 18];
349
+ tag = newTags_4[_j];
350
+ return [4 /*yield*/, tag.extractAttributes()];
358
351
  case 16:
359
- _h++;
360
- return [3 /*break*/, 11];
352
+ _m.sent();
353
+ _m.label = 17;
361
354
  case 17:
362
- _k = 0, newTags_4 = newTags;
363
- _p.label = 18;
355
+ _j++;
356
+ return [3 /*break*/, 15];
364
357
  case 18:
365
- if (!(_k < newTags_4.length)) return [3 /*break*/, 21];
366
- tag = newTags_4[_k];
367
- return [4 /*yield*/, tag.setupAttributes()];
358
+ _k = 0, newTags_5 = newTags;
359
+ _m.label = 19;
368
360
  case 19:
369
- _p.sent();
370
- _p.label = 20;
361
+ if (!(_k < newTags_5.length)) return [3 /*break*/, 22];
362
+ tag = newTags_5[_k];
363
+ return [4 /*yield*/, tag.connectAttributes()];
371
364
  case 20:
372
- _k++;
373
- return [3 /*break*/, 18];
365
+ _m.sent();
366
+ _m.label = 21;
374
367
  case 21:
375
- _l = 0, newTags_5 = newTags;
376
- _p.label = 22;
368
+ _k++;
369
+ return [3 /*break*/, 19];
377
370
  case 22:
378
- if (!(_l < newTags_5.length)) return [3 /*break*/, 25];
379
- tag = newTags_5[_l];
380
- return [4 /*yield*/, tag.extractAttributes()];
371
+ _l = 0, newTags_6 = newTags;
372
+ _m.label = 23;
381
373
  case 23:
382
- _p.sent();
383
- _p.label = 24;
374
+ if (!(_l < newTags_6.length)) return [3 /*break*/, 26];
375
+ tag = newTags_6[_l];
376
+ return [4 /*yield*/, tag.finalize()];
384
377
  case 24:
385
- _l++;
386
- return [3 /*break*/, 22];
378
+ _m.sent();
379
+ this.queued.splice(this.queued.indexOf(tag.element), 1);
380
+ _m.label = 25;
387
381
  case 25:
388
- _m = 0, newTags_6 = newTags;
389
- _p.label = 26;
382
+ _l++;
383
+ return [3 /*break*/, 23];
390
384
  case 26:
391
- if (!(_m < newTags_6.length)) return [3 /*break*/, 29];
392
- tag = newTags_6[_m];
393
- return [4 /*yield*/, tag.connectAttributes()];
394
- case 27:
395
- _p.sent();
396
- _p.label = 28;
397
- case 28:
398
- _m++;
399
- return [3 /*break*/, 26];
400
- case 29:
401
- _o = 0, newTags_7 = newTags;
402
- _p.label = 30;
403
- case 30:
404
- if (!(_o < newTags_7.length)) return [3 /*break*/, 33];
405
- tag = newTags_7[_o];
406
- return [4 /*yield*/, tag.finalize()];
407
- case 31:
408
- _p.sent();
409
- this.queued.splice(this.queued.indexOf(tag.element), 1);
410
- _p.label = 32;
411
- case 32:
412
- _o++;
413
- return [3 /*break*/, 30];
414
- case 33:
415
385
  newTags.forEach(function (tag) { return _this.observer.observe(tag.element, {
416
386
  attributes: true,
417
387
  characterData: true,
package/dist/DOM.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"DOM.js","sourceRoot":"","sources":["../src/DOM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DOM.js","sourceRoot":"","sources":["../src/DOM.ts"],"names":[],"mappings":"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"}
package/dist/Tag.d.ts CHANGED
@@ -14,6 +14,7 @@ export declare enum TagState {
14
14
  AttributesConnected = 5,
15
15
  Built = 6
16
16
  }
17
+ export declare const TaggedVariable: string;
17
18
  export declare class Tag extends DOMObject {
18
19
  readonly dom: DOM;
19
20
  readonly rawAttributes: {
@@ -89,9 +90,9 @@ export declare class Tag extends DOMObject {
89
90
  protected handleEvent(eventType: string, e: any): void;
90
91
  hasModifier(attribute: string, modifier: string): boolean;
91
92
  stripModifier(attribute: string, modifier: string): string;
92
- addEventHandler(eventType: string, modifiers: string[], handler: any): void;
93
- removeEventHandler(eventType: string, handler: any): void;
94
- createScope(): void;
93
+ addEventHandler(eventType: string, modifiers: string[], handler: any, context?: any): void;
94
+ removeEventHandler(eventType: string, handler: any, context?: any): void;
95
+ createScope(force?: boolean): Scope;
95
96
  watchAttribute(attributeName: string): Promise<StandardAttribute>;
96
97
  watchStyle(styleName: string): Promise<StyleAttribute>;
97
98
  private setupAttribute;
package/dist/Tag.js CHANGED
@@ -56,7 +56,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
56
56
  return to;
57
57
  };
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.Tag = exports.TagState = void 0;
59
+ exports.Tag = exports.TaggedVariable = exports.TagState = void 0;
60
60
  var Scope_1 = require("./Scope");
61
61
  var Attribute_1 = require("./Attribute");
62
62
  var DOM_1 = require("./DOM");
@@ -79,6 +79,7 @@ var TagState;
79
79
  TagState[TagState["AttributesConnected"] = 5] = "AttributesConnected";
80
80
  TagState[TagState["Built"] = 6] = "Built";
81
81
  })(TagState = exports.TagState || (exports.TagState = {}));
82
+ exports.TaggedVariable = '_vsn_tag';
82
83
  var Tag = /** @class */ (function (_super) {
83
84
  __extends(Tag, _super);
84
85
  function Tag(element, dom) {
@@ -96,6 +97,7 @@ var Tag = /** @class */ (function (_super) {
96
97
  'select',
97
98
  'textarea'
98
99
  ];
100
+ element[exports.TaggedVariable] = _this;
99
101
  _this.rawAttributes = {};
100
102
  _this.parsedAttributes = {};
101
103
  _this.attributes = [];
@@ -332,6 +334,20 @@ var Tag = /** @class */ (function (_super) {
332
334
  });
333
335
  Object.defineProperty(Tag.prototype, "parentTag", {
334
336
  get: function () {
337
+ if (!this._parentTag) {
338
+ var parentElement = this.element.parentElement;
339
+ var foundParent = false;
340
+ while (parentElement) {
341
+ if (parentElement[exports.TaggedVariable]) {
342
+ foundParent = true;
343
+ this.parentTag = parentElement[exports.TaggedVariable];
344
+ break;
345
+ }
346
+ parentElement = parentElement.parentElement;
347
+ }
348
+ if (!foundParent && DOM_1.DOM.instance.root !== this)
349
+ return DOM_1.DOM.instance.root;
350
+ }
335
351
  return this._parentTag;
336
352
  },
337
353
  set: function (tag) {
@@ -349,8 +365,10 @@ var Tag = /** @class */ (function (_super) {
349
365
  get: function () {
350
366
  if (!!this._scope)
351
367
  return this._scope;
352
- if (!!this._parentTag)
353
- return this._parentTag.scope;
368
+ if (this.uniqueScope)
369
+ return this.createScope();
370
+ if (!!this.parentTag)
371
+ return this.parentTag.scope;
354
372
  return null;
355
373
  },
356
374
  enumerable: false,
@@ -391,7 +409,7 @@ var Tag = /** @class */ (function (_super) {
391
409
  this.element.remove();
392
410
  };
393
411
  Tag.prototype.addToParentElement = function () {
394
- this._parentTag.element.appendChild(this.element);
412
+ this.parentTag.element.appendChild(this.element);
395
413
  };
396
414
  Tag.prototype.hide = function () {
397
415
  this.element.hidden = true;
@@ -549,7 +567,6 @@ var Tag = /** @class */ (function (_super) {
549
567
  requiresScope = true;
550
568
  if (requiresScope && !this.uniqueScope) {
551
569
  this._uniqueScope = true;
552
- this._scope = new Scope_1.Scope();
553
570
  }
554
571
  this._state = TagState.AttributesBuilt;
555
572
  return [2 /*return*/];
@@ -650,7 +667,7 @@ var Tag = /** @class */ (function (_super) {
650
667
  switch (_b.label) {
651
668
  case 0:
652
669
  if (this.isInput) {
653
- this.addEventHandler('input', [], this.inputMutation.bind(this));
670
+ this.addEventHandler('input', [], this.inputMutation, this);
654
671
  }
655
672
  _i = 0, _a = this.nonDeferredAttributes;
656
673
  _b.label = 1;
@@ -688,10 +705,13 @@ var Tag = /** @class */ (function (_super) {
688
705
  option.removeAttribute('selected');
689
706
  }
690
707
  }
691
- this.element.setAttribute('value', values.join(','));
708
+ //this.element.setAttribute('value', );
709
+ this.value = values.join(',');
692
710
  }
693
711
  else {
694
- this.element.setAttribute('value', e.target.value);
712
+ //this.element.setAttribute('value', e.target.value);
713
+ //(this.element as any).value = e.target.value;
714
+ this.value = e.target.value;
695
715
  }
696
716
  };
697
717
  Tag.prototype.finalize = function () {
@@ -720,7 +740,7 @@ var Tag = /** @class */ (function (_super) {
720
740
  this.scope.set('$value', this.value);
721
741
  for (var _i = 0, _a = this.onEventHandlers[eventType]; _i < _a.length; _i++) {
722
742
  var handler = _a[_i];
723
- handler(e);
743
+ handler.handler.call(handler.context, e);
724
744
  }
725
745
  };
726
746
  Tag.prototype.hasModifier = function (attribute, modifier) {
@@ -729,7 +749,8 @@ var Tag = /** @class */ (function (_super) {
729
749
  Tag.prototype.stripModifier = function (attribute, modifier) {
730
750
  return attribute.replace("|" + modifier, '');
731
751
  };
732
- Tag.prototype.addEventHandler = function (eventType, modifiers, handler) {
752
+ Tag.prototype.addEventHandler = function (eventType, modifiers, handler, context) {
753
+ if (context === void 0) { context = null; }
733
754
  var passiveValue = null;
734
755
  if (modifiers.indexOf('active') > -1) {
735
756
  passiveValue = false;
@@ -745,29 +766,37 @@ var Tag = /** @class */ (function (_super) {
745
766
  opts['passive'] = passiveValue === null && true || passiveValue;
746
767
  element.addEventListener(eventType, this.handleEvent.bind(this, eventType), opts);
747
768
  }
748
- this.onEventHandlers[eventType].push(handler);
769
+ this.onEventHandlers[eventType].push({
770
+ handler: handler,
771
+ event: eventType,
772
+ context: context,
773
+ });
749
774
  };
750
- Tag.prototype.removeEventHandler = function (eventType, handler) {
775
+ Tag.prototype.removeEventHandler = function (eventType, handler, context) {
776
+ if (context === void 0) { context = null; }
751
777
  if (!this.onEventHandlers[eventType])
752
778
  return;
753
- var index = this.onEventHandlers[eventType].indexOf(handler);
754
- if (index > -1) {
755
- this.onEventHandlers[eventType].splice(index, 1);
779
+ var _handler = this.onEventHandlers[eventType].find(function (h) { return h.handler === handler && h.context === context; });
780
+ if (_handler) {
781
+ this.onEventHandlers[eventType].splice(this.onEventHandlers[eventType].indexOf(_handler), 1);
756
782
  if (this.onEventHandlers[eventType].length === 0) {
757
783
  this.element.removeEventListener(eventType, this.handleEvent.bind(this, eventType));
758
784
  }
759
785
  }
760
786
  };
761
- Tag.prototype.createScope = function () {
787
+ Tag.prototype.createScope = function (force) {
788
+ if (force === void 0) { force = false; }
762
789
  // Standard attribute requires a unique scope
763
790
  // @todo: Does this cause any issues with attribute bindings on the parent scope prior to having its own scope? hmm...
764
- if (!this.uniqueScope) {
791
+ if ((!this.uniqueScope && force) || this.uniqueScope) {
765
792
  this._uniqueScope = true;
766
793
  this._scope = new Scope_1.Scope();
767
794
  if (this.parentTag) {
768
795
  this.scope.parentScope = this.parentTag.scope;
769
796
  }
797
+ return this._scope;
770
798
  }
799
+ return null;
771
800
  };
772
801
  Tag.prototype.watchAttribute = function (attributeName) {
773
802
  return __awaiter(this, void 0, void 0, function () {
@@ -781,7 +810,7 @@ var Tag = /** @class */ (function (_super) {
781
810
  return [2 /*return*/, attribute];
782
811
  }
783
812
  }
784
- this.createScope();
813
+ this.createScope(true);
785
814
  standardAttribute = new StandardAttribute_1.StandardAttribute(this, attributeName);
786
815
  this.attributes.push(standardAttribute);
787
816
  return [4 /*yield*/, this.setupAttribute(standardAttribute)];
@@ -804,7 +833,7 @@ var Tag = /** @class */ (function (_super) {
804
833
  return [2 /*return*/, attribute];
805
834
  }
806
835
  }
807
- this.createScope();
836
+ this.createScope(true);
808
837
  styleAttribute = new StyleAttribute_1.StyleAttribute(this, 'style');
809
838
  this.attributes.push(styleAttribute);
810
839
  return [4 /*yield*/, this.setupAttribute(styleAttribute)];