vsn 0.1.32 → 0.1.35

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.
@@ -14,6 +14,7 @@ export declare type EventDispatcherCallback = (...args: any[]) => any;
14
14
  export declare class EventDispatcher {
15
15
  private static sources;
16
16
  private readonly _listeners;
17
+ private readonly _allListeners;
17
18
  private readonly _relays;
18
19
  private _lastKey;
19
20
  constructor();
@@ -25,5 +26,8 @@ export declare class EventDispatcher {
25
26
  off(event: string, key?: number): boolean;
26
27
  offWithContext(event: string, context: any): number;
27
28
  getListener(event: string, key: number): EventCallback | undefined;
29
+ all(fct: EventDispatcherCallback, context?: any, once?: boolean): number;
30
+ none(key: number): boolean;
31
+ noneWithContext(context: any): number;
28
32
  dispatch(event: string, ...args: any[]): void;
29
33
  }
@@ -31,6 +31,7 @@ var EventCallback = /** @class */ (function () {
31
31
  exports.EventCallback = EventCallback;
32
32
  var EventDispatcher = /** @class */ (function () {
33
33
  function EventDispatcher() {
34
+ this._allListeners = [];
34
35
  this._relays = [];
35
36
  this._lastKey = 0;
36
37
  this._listeners = {};
@@ -61,7 +62,7 @@ var EventDispatcher = /** @class */ (function () {
61
62
  return this.on(event, fct, context, true);
62
63
  };
63
64
  EventDispatcher.prototype.off = function (event, key) {
64
- if (event in this._listeners === false)
65
+ if (!(event in this._listeners))
65
66
  return false;
66
67
  if (key) {
67
68
  for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
@@ -102,6 +103,37 @@ var EventDispatcher = /** @class */ (function () {
102
103
  return cb;
103
104
  }
104
105
  };
106
+ EventDispatcher.prototype.all = function (fct, context, once) {
107
+ once = once || false;
108
+ this._lastKey++;
109
+ this._allListeners.push(new EventCallback(fct, this._lastKey, once, context));
110
+ return this._lastKey;
111
+ };
112
+ EventDispatcher.prototype.none = function (key) {
113
+ for (var _i = 0, _a = this._allListeners; _i < _a.length; _i++) {
114
+ var cb = _a[_i];
115
+ if (key == cb.key) {
116
+ this._allListeners.splice(this._allListeners.indexOf(cb), 1);
117
+ return true;
118
+ }
119
+ }
120
+ return false;
121
+ };
122
+ EventDispatcher.prototype.noneWithContext = function (context) {
123
+ var toRemove = [], cnt = 0;
124
+ for (var _i = 0, _a = this._allListeners; _i < _a.length; _i++) {
125
+ var cb = _a[_i];
126
+ if (context == cb.context) {
127
+ toRemove.push(cb);
128
+ }
129
+ }
130
+ for (var _b = 0, toRemove_2 = toRemove; _b < toRemove_2.length; _b++) {
131
+ var cb = toRemove_2[_b];
132
+ this._allListeners.splice(this._allListeners.indexOf(cb), 1);
133
+ cnt++;
134
+ }
135
+ return cnt;
136
+ };
105
137
  EventDispatcher.prototype.dispatch = function (event) {
106
138
  var args = [];
107
139
  for (var _i = 1; _i < arguments.length; _i++) {
@@ -120,8 +152,15 @@ var EventDispatcher = /** @class */ (function () {
120
152
  cb.call(args);
121
153
  }
122
154
  }
123
- for (var _a = 0, _b = this._relays; _a < _b.length; _a++) {
124
- var relay = _b[_a];
155
+ for (var _a = 0, _b = this._allListeners; _a < _b.length; _a++) {
156
+ var cb = _b[_a];
157
+ if (cb.once) {
158
+ this.none(cb.key);
159
+ }
160
+ cb.call(args);
161
+ }
162
+ for (var _c = 0, _d = this._relays; _c < _d.length; _c++) {
163
+ var relay = _d[_c];
125
164
  relay.dispatch.apply(relay, __spreadArray([event], args));
126
165
  }
127
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../src/EventDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../src/EventDispatcher.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare class ScopeDataAbstract extends EventDispatcher {
8
8
  __properties__: string[];
9
9
  protected _lastData: any;
10
10
  constructor();
11
- createProperty(name: string, propertyType?: typeof Property, config?: IPropertyConfig): Property;
11
+ createProperty(name: string, propertyType?: any, config?: IPropertyConfig): any;
12
12
  hasProperty(name: string): boolean;
13
13
  get keys(): string[];
14
14
  setData(data: IScopeData): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeDataAbstract.js","sourceRoot":"","sources":["../../src/Scope/ScopeDataAbstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopeDataAbstract.js","sourceRoot":"","sources":["../../src/Scope/ScopeDataAbstract.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare class WrappedArray<T> extends Array<T> {
8
8
  off(event: string, key?: number): void;
9
9
  once(event: string, callback: EventDispatcherCallback): void;
10
10
  push(...items: T[]): number;
11
+ remove(item: T): boolean;
11
12
  splice(start: number, deleteCount?: number): T[];
12
13
  concat(...items: any[]): T[];
13
14
  filter(callback: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[];
@@ -68,6 +68,14 @@ var WrappedArray = /** @class */ (function (_super) {
68
68
  }
69
69
  return num;
70
70
  };
71
+ WrappedArray.prototype.remove = function (item) {
72
+ var index = this.indexOf(item);
73
+ if (index === -1) {
74
+ return false;
75
+ }
76
+ this.splice(index, 1);
77
+ return true;
78
+ };
71
79
  WrappedArray.prototype.splice = function (start, deleteCount) {
72
80
  var removed = _super.prototype.splice.call(this, start, deleteCount);
73
81
  this.dispatch('change', {
@@ -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,8 +1,11 @@
1
- import { Property } from "./Property";
1
+ import { IPropertyConfig, Property } from "./Property";
2
2
  import { WrappedArray } from "../WrappedArray";
3
- export declare class ArrayProperty<T = any> extends Property {
3
+ export declare class ArrayProperty<T = any> extends Property<WrappedArray<T>> {
4
4
  _value: WrappedArray<T>;
5
- constructor(name: string, value: any);
5
+ allKey: number;
6
+ constructor(value?: any, config?: IPropertyConfig);
7
+ deconstruct(): void;
8
+ relayEvent(event: any, ...args: any[]): void;
6
9
  set value(v: any);
7
10
  get value(): any;
8
11
  }
@@ -14,19 +14,36 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
18
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
19
+ to[j] = from[i];
20
+ return to;
21
+ };
17
22
  Object.defineProperty(exports, "__esModule", { value: true });
18
23
  exports.ArrayProperty = void 0;
19
24
  var Property_1 = require("./Property");
20
25
  var WrappedArray_1 = require("../WrappedArray");
21
26
  var ArrayProperty = /** @class */ (function (_super) {
22
27
  __extends(ArrayProperty, _super);
23
- function ArrayProperty(name, value) {
24
- var _this = _super.call(this, name, value) || this;
25
- _this._value = new WrappedArray_1.WrappedArray();
26
- _this._value.dispatcher.addRelay(_this);
27
- _this.value = value;
28
+ function ArrayProperty(value, config) {
29
+ var _this = _super.call(this, new WrappedArray_1.WrappedArray(), config) || this;
30
+ _this.allKey = _this._value.dispatcher.all(_this.relayEvent, _this);
31
+ if (value !== undefined) {
32
+ _this.value = value;
33
+ }
28
34
  return _this;
29
35
  }
36
+ ArrayProperty.prototype.deconstruct = function () {
37
+ this._value.dispatcher.none(this.allKey);
38
+ _super.prototype.deconstruct.call(this);
39
+ };
40
+ ArrayProperty.prototype.relayEvent = function (event) {
41
+ var args = [];
42
+ for (var _i = 1; _i < arguments.length; _i++) {
43
+ args[_i - 1] = arguments[_i];
44
+ }
45
+ this.dispatch.apply(this, __spreadArray(['change'], args));
46
+ };
30
47
  Object.defineProperty(ArrayProperty.prototype, "value", {
31
48
  get: function () {
32
49
  return this._value;
@@ -34,9 +51,14 @@ var ArrayProperty = /** @class */ (function (_super) {
34
51
  set: function (v) {
35
52
  if (!(v instanceof Array))
36
53
  v = [v];
37
- this._value.splice(0, this._value.length);
38
- for (var i = 0; i < v.length; i++)
39
- this._value.push(v[i]);
54
+ if (this._value instanceof WrappedArray_1.WrappedArray) {
55
+ this._value.splice(0, this._value.length);
56
+ for (var i = 0; i < v.length; i++)
57
+ this._value.push(v[i]);
58
+ }
59
+ else if (v instanceof WrappedArray_1.WrappedArray) {
60
+ this._value = v;
61
+ }
40
62
  },
41
63
  enumerable: false,
42
64
  configurable: true
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayProperty.js","sourceRoot":"","sources":["../../../src/Scope/properties/ArrayProperty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AACpC,gDAA6C;AAE7C;IAA4C,iCAAQ;IAGhD,uBAAY,IAAY,EAAE,KAAU;QAApC,YACI,kBAAM,IAAI,EAAE,KAAK,CAAC,SAKrB;QAHG,KAAI,CAAC,MAAM,GAAG,IAAI,2BAAY,EAAO,CAAC;QACtC,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAI,CAAC,CAAC;QACtC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACvB,CAAC;IAED,sBAAI,gCAAK;aAUT;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAZD,UAAU,CAAK;YACX,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBACrB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;;;OAAA;IAKL,oBAAC;AAAD,CAAC,AAxBD,CAA4C,mBAAQ,GAwBnD;AAxBY,sCAAa"}
1
+ {"version":3,"file":"ArrayProperty.js","sourceRoot":"","sources":["../../../src/Scope/properties/ArrayProperty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAqD;AACrD,gDAA6C;AAE7C;IAA4C,iCAAyB;IAIjE,uBAAY,KAAW,EAAE,MAAwB;QAAjD,YACI,kBAAM,IAAI,2BAAY,EAAO,EAAE,MAAM,CAAC,SAKzC;QAJG,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAI,CAAC,UAAU,EAAE,KAAI,CAAC,CAAC;QAChE,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;;IACL,CAAC;IAED,mCAAW,GAAX;QACI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,iBAAM,WAAW,WAAE,CAAC;IACxB,CAAC;IAED,kCAAU,GAAV,UAAW,KAAK;QAAE,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,6BAAO;;QACrB,IAAI,CAAC,QAAQ,OAAb,IAAI,iBAAU,QAAQ,GAAK,IAAI,GAAE;IACrC,CAAC;IAED,sBAAI,gCAAK;aAcT;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAhBD,UAAU,CAAM;YACZ,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBACrB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEZ,IAAI,IAAI,CAAC,MAAM,YAAY,2BAAY,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM,IAAI,CAAC,YAAY,2BAAY,EAAE;gBAClC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACnB;QACL,CAAC;;;OAAA;IAKL,oBAAC;AAAD,CAAC,AAtCD,CAA4C,mBAAQ,GAsCnD;AAtCY,sCAAa"}
@@ -6,11 +6,11 @@ export interface IPropertyConfig {
6
6
  default?: any;
7
7
  validators?: TValidator[];
8
8
  }
9
- export declare class Property extends EventDispatcher {
9
+ export declare class Property<T = any> extends EventDispatcher {
10
10
  _type: string;
11
- _value: any;
11
+ _value: T;
12
12
  config: IPropertyConfig;
13
- constructor(value?: any, config?: IPropertyConfig);
13
+ constructor(value?: T, config?: IPropertyConfig);
14
14
  castType(value: any): any;
15
15
  set value(v: any);
16
16
  get value(): any;
@@ -1 +1 @@
1
- {"version":3,"file":"Property.js","sourceRoot":"","sources":["../../../src/Scope/properties/Property.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Property.js","sourceRoot":"","sources":["../../../src/Scope/properties/Property.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vsn",
3
- "version": "0.1.32",
3
+ "version": "0.1.35",
4
4
  "description": "SEO Friendly Javascript/Typescript Framework",
5
5
  "keywords": [
6
6
  "framework",
@@ -31,6 +31,7 @@ export type EventDispatcherCallback = (...args: any[]) => any;
31
31
  export class EventDispatcher {
32
32
  private static sources: EventDispatcher[] = [];
33
33
  private readonly _listeners: EventCallbackList;
34
+ private readonly _allListeners: EventCallback[] = [];
34
35
  private readonly _relays: EventDispatcher[] = [];
35
36
  private _lastKey: number;
36
37
 
@@ -70,7 +71,7 @@ export class EventDispatcher {
70
71
  }
71
72
 
72
73
  off(event: string, key?: number): boolean {
73
- if(event in this._listeners === false) return false;
74
+ if(!(event in this._listeners)) return false;
74
75
  if(key) {
75
76
  for(const cb of this._listeners[event]) {
76
77
  if(key == cb.key) {
@@ -110,6 +111,40 @@ export class EventDispatcher {
110
111
  }
111
112
  }
112
113
 
114
+ all(fct: EventDispatcherCallback, context?: any, once?: boolean): number {
115
+ once = once || false;
116
+ this._lastKey++;
117
+ this._allListeners.push(new EventCallback(fct, this._lastKey, once, context));
118
+ return this._lastKey;
119
+ }
120
+
121
+ none(key: number): boolean {
122
+ for(const cb of this._allListeners) {
123
+ if(key == cb.key) {
124
+ this._allListeners.splice(this._allListeners.indexOf(cb), 1);
125
+ return true;
126
+ }
127
+ }
128
+ return false;
129
+ }
130
+
131
+ noneWithContext(context: any): number {
132
+ let toRemove: EventCallback[] = [],
133
+ cnt = 0;
134
+
135
+ for(const cb of this._allListeners) {
136
+ if(context == cb.context) {
137
+ toRemove.push(cb);
138
+ }
139
+ }
140
+
141
+ for(const cb of toRemove) {
142
+ this._allListeners.splice(this._allListeners.indexOf(cb), 1);
143
+ cnt++;
144
+ }
145
+ return cnt;
146
+ }
147
+
113
148
  dispatch(event: string, ...args: any[]): void {
114
149
  if(event in this._listeners) {
115
150
  for (let i = 0; i < this._listeners[event].length; i++) {
@@ -127,6 +162,13 @@ export class EventDispatcher {
127
162
  }
128
163
  }
129
164
 
165
+ for (const cb of this._allListeners) {
166
+ if (cb.once) {
167
+ this.none(cb.key);
168
+ }
169
+ cb.call(args);
170
+ }
171
+
130
172
  for (const relay of this._relays) {
131
173
  relay.dispatch(event, ...args);
132
174
  }
@@ -18,7 +18,7 @@ export class ScopeDataAbstract extends EventDispatcher {
18
18
  this.__properties__ = [];
19
19
  }
20
20
 
21
- createProperty(name: string, propertyType = Property, config?: IPropertyConfig): Property {
21
+ createProperty(name: string, propertyType: any = Property, config?: IPropertyConfig): any {
22
22
  config = config || {};
23
23
  const instance = new propertyType(config.default, config),
24
24
  propDesc = Object.getOwnPropertyDescriptor(this, name);
@@ -39,6 +39,15 @@ export class WrappedArray<T> extends Array<T> {
39
39
  return num;
40
40
  }
41
41
 
42
+ remove(item: T): boolean {
43
+ const index: number = this.indexOf(item);
44
+ if (index === -1) {
45
+ return false;
46
+ }
47
+ this.splice(index, 1);
48
+ return true;
49
+ }
50
+
42
51
  splice(start: number, deleteCount?: number): T[] {
43
52
  const removed: T[] = super.splice(start, deleteCount);
44
53
 
@@ -1,25 +1,39 @@
1
- import {Property} from "./Property";
1
+ import {IPropertyConfig, Property} from "./Property";
2
2
  import {WrappedArray} from "../WrappedArray";
3
3
 
4
- export class ArrayProperty<T = any> extends Property {
4
+ export class ArrayProperty<T = any> extends Property<WrappedArray<T>> {
5
5
  _value: WrappedArray<T>;
6
+ allKey: number;
6
7
 
7
- constructor(name: string, value: any) {
8
- super(name, value);
8
+ constructor(value?: any, config?: IPropertyConfig) {
9
+ super(new WrappedArray<any>(), config);
10
+ this.allKey = this._value.dispatcher.all(this.relayEvent, this);
11
+ if (value !== undefined) {
12
+ this.value = value;
13
+ }
14
+ }
15
+
16
+ deconstruct() {
17
+ this._value.dispatcher.none(this.allKey);
18
+ super.deconstruct();
19
+ }
9
20
 
10
- this._value = new WrappedArray<any>();
11
- this._value.dispatcher.addRelay(this);
12
- this.value = value;
21
+ relayEvent(event, ...args) {
22
+ this.dispatch('change', ...args);
13
23
  }
14
24
 
15
- set value(v:any) {
25
+ set value(v: any) {
16
26
  if (!(v instanceof Array))
17
27
  v = [v];
18
28
 
19
- this._value.splice(0, this._value.length);
29
+ if (this._value instanceof WrappedArray) {
30
+ this._value.splice(0, this._value.length);
20
31
 
21
- for (let i = 0; i < v.length; i++)
22
- this._value.push(v[i]);
32
+ for (let i = 0; i < v.length; i++)
33
+ this._value.push(v[i]);
34
+ } else if (v instanceof WrappedArray) {
35
+ this._value = v;
36
+ }
23
37
  }
24
38
 
25
39
  get value() {
@@ -32,16 +32,15 @@ export interface IPropertyConfig {
32
32
  validators?: TValidator[];
33
33
  }
34
34
 
35
- export class Property extends EventDispatcher {
35
+ export class Property<T = any> extends EventDispatcher {
36
36
  _type: string = 'any';
37
- _value: any;
37
+ _value: T;
38
38
  config: IPropertyConfig;
39
39
 
40
- constructor(value?:any, config?: IPropertyConfig) {
40
+ constructor(value?: T, config?: IPropertyConfig) {
41
41
  super();
42
42
  this.config = config;
43
43
  this.type = config.type || 'any';
44
-
45
44
  this.value = value;
46
45
  }
47
46