vsn 0.1.89 → 0.1.90

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.
@@ -4,7 +4,7 @@ export declare class WrappedArray<T> extends Array<T> {
4
4
  readonly $wrapped: boolean;
5
5
  constructor(...items: T[]);
6
6
  dispatch(event: string, ...args: any[]): void;
7
- on(event: string, callback: EventDispatcherCallback): void;
7
+ on(event: string, callback: EventDispatcherCallback, ctx?: any): void;
8
8
  off(event: string, key?: number): void;
9
9
  once(event: string, callback: EventDispatcherCallback): void;
10
10
  push(...items: T[]): number;
@@ -43,8 +43,8 @@ var WrappedArray = /** @class */ (function (_super) {
43
43
  }
44
44
  (_a = this.dispatcher).dispatch.apply(_a, __spreadArray([event], args));
45
45
  };
46
- WrappedArray.prototype.on = function (event, callback) {
47
- this.dispatcher.on(event, callback);
46
+ WrappedArray.prototype.on = function (event, callback, ctx) {
47
+ this.dispatcher.on(event, callback, ctx);
48
48
  };
49
49
  WrappedArray.prototype.off = function (event, key) {
50
50
  this.dispatcher.off(event, key);
@@ -1 +1 @@
1
- {"version":3,"file":"WrappedArray.js","sourceRoot":"","sources":["../../src/Scope/WrappedArray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WrappedArray.js","sourceRoot":"","sources":["../../src/Scope/WrappedArray.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,11 @@
1
1
  import { Attribute } from "../Attribute";
2
2
  import { Tag } from "../Tag";
3
- import { Tree } from "../AST";
4
3
  export declare class List extends Attribute {
5
4
  static readonly canDefer: boolean;
6
5
  static readonly scoped: boolean;
7
- tree: Tree;
8
6
  items: any[];
9
7
  tags: Tag[];
10
8
  protected template: Node;
11
- compile(): Promise<void>;
12
9
  setup(): Promise<void>;
13
10
  extract(): Promise<void>;
14
11
  protected addExistingItems(defaultList: any[] | null): Promise<void>;
@@ -61,7 +61,6 @@ exports.List = void 0;
61
61
  var Attribute_1 = require("../Attribute");
62
62
  var Tag_1 = require("../Tag");
63
63
  var WrappedArray_1 = require("../Scope/WrappedArray");
64
- var AST_1 = require("../AST");
65
64
  var ElementHelper_1 = require("../helpers/ElementHelper");
66
65
  var Registry_1 = require("../Registry");
67
66
  var DOM_1 = require("../DOM");
@@ -70,25 +69,6 @@ var List = /** @class */ (function (_super) {
70
69
  function List() {
71
70
  return _super !== null && _super.apply(this, arguments) || this;
72
71
  }
73
- List.prototype.compile = function () {
74
- return __awaiter(this, void 0, void 0, function () {
75
- var listAttr;
76
- return __generator(this, function (_a) {
77
- switch (_a.label) {
78
- case 0:
79
- listAttr = this.getAttributeBinding();
80
- this.tree = new AST_1.Tree(listAttr);
81
- return [4 /*yield*/, this.tree.prepare(this.tag.scope, this.tag.dom, this.tag)];
82
- case 1:
83
- _a.sent();
84
- return [4 /*yield*/, _super.prototype.compile.call(this)];
85
- case 2:
86
- _a.sent();
87
- return [2 /*return*/];
88
- }
89
- });
90
- });
91
- };
92
72
  List.prototype.setup = function () {
93
73
  return __awaiter(this, void 0, void 0, function () {
94
74
  var template, templateTag, templateNode;
@@ -131,30 +111,48 @@ var List = /** @class */ (function (_super) {
131
111
  };
132
112
  List.prototype.extract = function () {
133
113
  return __awaiter(this, void 0, void 0, function () {
134
- var items, toAdd, i;
114
+ var listAttr, ref, listScope, listKey, items, toAdd, i;
115
+ var _this = this;
135
116
  return __generator(this, function (_a) {
136
117
  switch (_a.label) {
137
- case 0: return [4 /*yield*/, this.tree.evaluate(this.tag.scope, this.tag.dom, this.tag)];
118
+ case 0:
119
+ listAttr = this.getAttributeBinding('items');
120
+ ref = this.tag.scope.getReference(listAttr);
121
+ return [4 /*yield*/, ref.getScope()];
138
122
  case 1:
139
- items = _a.sent();
140
- return [4 /*yield*/, this.addExistingItems(items)];
123
+ listScope = _a.sent();
124
+ return [4 /*yield*/, ref.getKey()];
141
125
  case 2:
126
+ listKey = _a.sent();
127
+ items = listScope.get(listKey);
128
+ return [4 /*yield*/, this.addExistingItems(items)];
129
+ case 3:
142
130
  _a.sent();
143
- if (!this.tag.hasRawAttribute('initial-items')) return [3 /*break*/, 6];
131
+ listScope.on("change:" + listKey, function (e) {
132
+ if (e.oldValue instanceof WrappedArray_1.WrappedArray) {
133
+ e.oldValue.map(function (item) {
134
+ _this.remove(item);
135
+ });
136
+ e.oldValue.offWithContext('add', _this);
137
+ e.oldValue.offWithContext('remove', _this);
138
+ }
139
+ _this.addExistingItems(e.value);
140
+ });
141
+ if (!this.tag.hasRawAttribute('initial-items')) return [3 /*break*/, 7];
144
142
  toAdd = parseInt(this.tag.getRawAttributeValue('initial-items'));
145
143
  i = 0;
146
- _a.label = 3;
147
- case 3:
148
- if (!(i < toAdd)) return [3 /*break*/, 6];
149
- return [4 /*yield*/, this.add({})];
144
+ _a.label = 4;
150
145
  case 4:
151
- _a.sent();
152
- _a.label = 5;
146
+ if (!(i < toAdd)) return [3 /*break*/, 7];
147
+ return [4 /*yield*/, this.add({})];
153
148
  case 5:
149
+ _a.sent();
150
+ _a.label = 6;
151
+ case 6:
154
152
  i++;
155
- return [3 /*break*/, 3];
156
- case 6: return [4 /*yield*/, _super.prototype.extract.call(this)];
157
- case 7:
153
+ return [3 /*break*/, 4];
154
+ case 7: return [4 /*yield*/, _super.prototype.extract.call(this)];
155
+ case 8:
158
156
  _a.sent();
159
157
  return [2 /*return*/];
160
158
  }
@@ -164,7 +162,6 @@ var List = /** @class */ (function (_super) {
164
162
  List.prototype.addExistingItems = function (defaultList) {
165
163
  return __awaiter(this, void 0, void 0, function () {
166
164
  var _i, defaultList_1, existingItem, _a, _b, element, tag;
167
- var _this = this;
168
165
  return __generator(this, function (_c) {
169
166
  switch (_c.label) {
170
167
  case 0:
@@ -206,12 +203,8 @@ var List = /** @class */ (function (_super) {
206
203
  if (!(this.items instanceof WrappedArray_1.WrappedArray)) {
207
204
  this.items = new WrappedArray_1.WrappedArray(this.items);
208
205
  }
209
- this.items.on('add', function (item) {
210
- _this.add(item);
211
- });
212
- this.items.on('remove', function (item) {
213
- _this.remove(item);
214
- });
206
+ this.items.on('add', this.add, this);
207
+ this.items.on('remove', this.remove, this);
215
208
  this.tag.scope.set('add', this.add.bind(this));
216
209
  this.tag.scope.set('remove', this.remove.bind(this));
217
210
  return [2 /*return*/];
@@ -238,6 +231,7 @@ var List = /** @class */ (function (_super) {
238
231
  var tag = this.tags[i];
239
232
  var listItem = tag.scope.get(this.listItemName);
240
233
  if ([listItem, listItem.wrapped].indexOf(item) > -1) {
234
+ tag.deconstruct();
241
235
  tag.removeFromDOM();
242
236
  this.tags.splice(i, 1);
243
237
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/attributes/List.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/attributes/List.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.1.89";
1
+ export declare const VERSION = "0.1.90";
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.1.89';
4
+ exports.VERSION = '0.1.90';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vsn",
3
- "version": "0.1.89",
3
+ "version": "0.1.90",
4
4
  "description": "SEO Friendly Javascript/Typescript Framework",
5
5
  "keywords": [
6
6
  "framework",
@@ -14,8 +14,8 @@ export class WrappedArray<T> extends Array<T> {
14
14
  this.dispatcher.dispatch(event, ...args);
15
15
  }
16
16
 
17
- on(event: string, callback: EventDispatcherCallback) {
18
- this.dispatcher.on(event, callback);
17
+ on(event: string, callback: EventDispatcherCallback, ctx?: any) {
18
+ this.dispatcher.on(event, callback, ctx);
19
19
  }
20
20
 
21
21
  off(event: string, key?: number) {
@@ -1,27 +1,20 @@
1
1
  import {Attribute} from "../Attribute";
2
2
  import {Tag} from "../Tag";
3
3
  import {WrappedArray} from "../Scope/WrappedArray";
4
- import {Tree} from "../AST";
5
4
  import {ElementHelper} from "../helpers/ElementHelper";
6
5
  import {Registry} from "../Registry";
7
6
  import {DOM} from "../DOM";
7
+ import {Scope} from "../Scope";
8
8
 
9
9
  @Registry.attribute('vsn-list')
10
10
  export class List extends Attribute {
11
11
  public static readonly canDefer: boolean = false;
12
12
  public static readonly scoped: boolean = true;
13
- public tree: Tree;
13
+
14
14
  public items: any[];
15
15
  public tags: Tag[];
16
16
  protected template: Node;
17
17
 
18
- public async compile() {
19
- const listAttr: string = this.getAttributeBinding();
20
- this.tree = new Tree(listAttr);
21
- await this.tree.prepare(this.tag.scope, this.tag.dom, this.tag);
22
- await super.compile();
23
- }
24
-
25
18
  public async setup() {
26
19
  if (this.tag.element.children.length > 0) {
27
20
  const template = this.tag.element.children[0];
@@ -50,9 +43,24 @@ export class List extends Attribute {
50
43
  }
51
44
 
52
45
  public async extract() {
53
- const items = await this.tree.evaluate(this.tag.scope, this.tag.dom, this.tag);
46
+ const listAttr: string = this.getAttributeBinding('items');
47
+ const ref = this.tag.scope.getReference(listAttr);
48
+ const listScope: Scope = await ref.getScope();
49
+ const listKey: string = await ref.getKey();
50
+ const items = listScope.get(listKey);
54
51
  await this.addExistingItems(items);
55
52
 
53
+ listScope.on(`change:${listKey}`, (e) => {
54
+ if (e.oldValue instanceof WrappedArray) {
55
+ e.oldValue.map((item) => {
56
+ this.remove(item);
57
+ });
58
+ e.oldValue.offWithContext('add', this);
59
+ e.oldValue.offWithContext('remove', this);
60
+ }
61
+ this.addExistingItems(e.value);
62
+ });
63
+
56
64
  if (this.tag.hasRawAttribute('initial-items')) {
57
65
  const toAdd: number = parseInt(this.tag.getRawAttributeValue('initial-items'));
58
66
  for (let i = 0; i < toAdd; i++) {
@@ -86,12 +94,8 @@ export class List extends Attribute {
86
94
  this.items = new WrappedArray(this.items);
87
95
  }
88
96
 
89
- (this.items as WrappedArray<any>).on('add', (item) => {
90
- this.add(item);
91
- });
92
- (this.items as WrappedArray<any>).on('remove', (item) => {
93
- this.remove(item);
94
- });
97
+ (this.items as WrappedArray<any>).on('add', this.add, this);
98
+ (this.items as WrappedArray<any>).on('remove', this.remove, this);
95
99
 
96
100
  this.tag.scope.set('add', this.add.bind(this));
97
101
  this.tag.scope.set('remove', this.remove.bind(this));
@@ -110,6 +114,7 @@ export class List extends Attribute {
110
114
  const tag: Tag = this.tags[i];
111
115
  const listItem = tag.scope.get(this.listItemName);
112
116
  if ([listItem, listItem.wrapped].indexOf(item) > -1) {
117
+ tag.deconstruct();
113
118
  tag.removeFromDOM();
114
119
  this.tags.splice(i, 1);
115
120
 
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.1.89';
1
+ export const VERSION = '0.1.90';
2
2