@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 +2 -2
- package/lib/component.js +2 -2
- package/lib/emitter.d.ts +1 -3
- package/lib/emitter.js +0 -7
- package/lib/entity.js +3 -1
- package/lib/event.d.ts +5 -0
- package/lib/event.js +19 -0
- package/lib/observable.js +1 -1
- package/package.json +1 -1
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
|
-
|
|
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