@zcomponent/core 0.0.15 → 0.0.16

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/lib/behavior.js CHANGED
@@ -17,8 +17,8 @@ export class Behavior extends Entity {
17
17
  this.enabledResolved.value = newValue;
18
18
  }
19
19
  };
20
- this.register(this.enabled, this._updateEnabledResolved);
21
- this.register(instance.enabledResolved, this._updateEnabledResolved);
20
+ this.register(this.enabled, this._updateEnabledResolved, { bindWhenDisabled: true });
21
+ this.register(instance.enabledResolved, this._updateEnabledResolved, { bindWhenDisabled: true });
22
22
  }
23
23
  }
24
24
  const behaviorsToRunAtDesignTime = new Set();
package/lib/component.js CHANGED
@@ -36,8 +36,8 @@ export class Component extends Entity {
36
36
  context.registerComponent(this, this.tags.value);
37
37
  };
38
38
  this.constructChildren(constructorProps?.children ?? []);
39
- this.register(this.enabled, this._updateEnabledResolved);
40
- this.register(this.tags, this._updateTags);
39
+ this.register(this.enabled, this._updateEnabledResolved, { bindWhenDisabled: true });
40
+ this.register(this.tags, this._updateTags, { bindWhenDisabled: true });
41
41
  }
42
42
  constructChildren(children, contextManager) {
43
43
  contextManager = contextManager ?? this.contextManager;
package/lib/emitter.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { Observable } from "./observable";
2
1
  export declare class Emitter<Args extends Array<any> = []> {
3
- hasListeners: Observable<boolean, never>;
4
- private _funcs;
2
+ protected _funcs: [fn: ((...args: Args) => void), priority: number][];
5
3
  private _emitting;
6
4
  private _toUnbind;
7
5
  private _needsSort;
package/lib/emitter.js CHANGED
@@ -1,7 +1,5 @@
1
- import { Observable } from "./observable";
2
1
  export class Emitter {
3
2
  constructor() {
4
- this.hasListeners = new Observable(false);
5
3
  this._funcs = [];
6
4
  this._emitting = false;
7
5
  this._toUnbind = new Set();
@@ -9,7 +7,6 @@ export class Emitter {
9
7
  }
10
8
  clearListeners() {
11
9
  this._funcs = [];
12
- this.hasListeners.value = false;
13
10
  this._needsSort = false;
14
11
  }
15
12
  /**
@@ -19,8 +16,6 @@ export class Emitter {
19
16
  addListener(f, priority = 0) {
20
17
  this._funcs.push([f, priority]);
21
18
  this._needsSort = true;
22
- if (!this.hasListeners.value)
23
- this.hasListeners.value = true;
24
19
  }
25
20
  /**
26
21
  * Unbind an existing function
@@ -36,8 +31,6 @@ export class Emitter {
36
31
  if (indx > -1) {
37
32
  this._funcs.splice(indx, 1);
38
33
  }
39
- if (this._funcs.length === 0 && this.hasListeners.value)
40
- this.hasListeners.value = false;
41
34
  }
42
35
  /**
43
36
  * Emit an event
package/lib/entity.js CHANGED
@@ -49,7 +49,9 @@ export class Entity {
49
49
  this.enabledResolved = new Observable(true);
50
50
  this._updateHandlers = (enabled) => {
51
51
  if (enabled && !this._handlersBound) {
52
- for (const [e, fn, priority] of this._registered) {
52
+ for (const [e, fn, priority, bindWhenDisabled] of this._registered) {
53
+ if (bindWhenDisabled)
54
+ continue;
53
55
  e.addListener(fn, priority);
54
56
  }
55
57
  this._handlersBound = true;
package/lib/event.d.ts CHANGED
@@ -1,9 +1,14 @@
1
1
  import { Emitter } from "./emitter";
2
+ import { Observable } from "./observable";
2
3
  export declare class Event<Args extends Array<any> = []> extends Emitter<Args> {
4
+ hasListeners: Observable<boolean, never>;
3
5
  /**
4
6
  * Emit an event.
5
7
  *
6
8
  * @param a - The argument to pass to handler functions.
7
9
  */
8
10
  emit(...args: Args): void;
11
+ clearListeners(): void;
12
+ addListener(f: (...args: Args) => void, priority?: number): void;
13
+ removeListener(f: (...args: Args) => void): void;
9
14
  }
package/lib/event.js CHANGED
@@ -1,5 +1,10 @@
1
1
  import { Emitter } from "./emitter";
2
+ import { Observable } from "./observable";
2
3
  export class Event extends Emitter {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.hasListeners = new Observable(false);
7
+ }
3
8
  /**
4
9
  * Emit an event.
5
10
  *
@@ -8,4 +13,18 @@ export class Event extends Emitter {
8
13
  emit(...args) {
9
14
  super._emit(...args);
10
15
  }
16
+ clearListeners() {
17
+ super.clearListeners();
18
+ if (!this.hasListeners.value)
19
+ this.hasListeners.value = true;
20
+ }
21
+ addListener(f, priority) {
22
+ super.addListener(f, priority);
23
+ this.hasListeners.value = true;
24
+ }
25
+ removeListener(f) {
26
+ super.removeListener(f);
27
+ if (this._funcs.length === 0 && this.hasListeners.value)
28
+ this.hasListeners.value = false;
29
+ }
11
30
  }
package/lib/observable.js CHANGED
@@ -117,7 +117,7 @@ export class Observable extends Emitter {
117
117
  this._emitValue();
118
118
  }
119
119
  addListener(fn, priority = 0) {
120
- this.addListener(fn);
120
+ super.addListener(fn);
121
121
  try {
122
122
  fn(this._value.proxy);
123
123
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zcomponent/core",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",