@spearwolf/shadow-objects 0.1.0
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/LICENSE +13 -0
- package/README.md +69 -0
- package/bundle.js +70 -0
- package/package.json +58 -0
- package/src/bundle.d.ts +7 -0
- package/src/bundle.d.ts.map +1 -0
- package/src/bundle.js +5 -0
- package/src/bundle.js.map +1 -0
- package/src/constants.d.ts +39 -0
- package/src/constants.d.ts.map +1 -0
- package/src/constants.js +40 -0
- package/src/constants.js.map +1 -0
- package/src/create-worker.bundle.d.ts +3 -0
- package/src/create-worker.bundle.d.ts.map +1 -0
- package/src/create-worker.bundle.js +6 -0
- package/src/create-worker.bundle.js.map +1 -0
- package/src/create-worker.d.ts +3 -0
- package/src/create-worker.d.ts.map +1 -0
- package/src/create-worker.js +2 -0
- package/src/create-worker.js.map +1 -0
- package/src/elements/ShaeElement.d.ts +13 -0
- package/src/elements/ShaeElement.d.ts.map +1 -0
- package/src/elements/ShaeElement.js +58 -0
- package/src/elements/ShaeElement.js.map +1 -0
- package/src/elements/ShaeEntElement.d.ts +23 -0
- package/src/elements/ShaeEntElement.d.ts.map +1 -0
- package/src/elements/ShaeEntElement.js +258 -0
- package/src/elements/ShaeEntElement.js.map +1 -0
- package/src/elements/ShaePropElement.d.ts +26 -0
- package/src/elements/ShaePropElement.d.ts.map +1 -0
- package/src/elements/ShaePropElement.js +321 -0
- package/src/elements/ShaePropElement.js.map +1 -0
- package/src/elements/ShaeWorkerElement.d.ts +25 -0
- package/src/elements/ShaeWorkerElement.d.ts.map +1 -0
- package/src/elements/ShaeWorkerElement.js +208 -0
- package/src/elements/ShaeWorkerElement.js.map +1 -0
- package/src/elements/constants.d.ts +17 -0
- package/src/elements/constants.d.ts.map +1 -0
- package/src/elements/constants.js +21 -0
- package/src/elements/constants.js.map +1 -0
- package/src/elements/events.d.ts +24 -0
- package/src/elements/events.d.ts.map +1 -0
- package/src/elements/events.js +2 -0
- package/src/elements/events.js.map +1 -0
- package/src/entities/Entity.d.ts +46 -0
- package/src/entities/Entity.d.ts.map +1 -0
- package/src/entities/Entity.js +217 -0
- package/src/entities/Entity.js.map +1 -0
- package/src/entities/Kernel.d.ts +60 -0
- package/src/entities/Kernel.d.ts.map +1 -0
- package/src/entities/Kernel.js +361 -0
- package/src/entities/Kernel.js.map +1 -0
- package/src/entities/Registry.d.ts +16 -0
- package/src/entities/Registry.d.ts.map +1 -0
- package/src/entities/Registry.js +72 -0
- package/src/entities/Registry.js.map +1 -0
- package/src/entities/ShadowObject.d.ts +18 -0
- package/src/entities/ShadowObject.d.ts.map +1 -0
- package/src/entities/ShadowObject.js +24 -0
- package/src/entities/ShadowObject.js.map +1 -0
- package/src/entities/SignalsMap.d.ts +12 -0
- package/src/entities/SignalsMap.d.ts.map +1 -0
- package/src/entities/SignalsMap.js +34 -0
- package/src/entities/SignalsMap.js.map +1 -0
- package/src/entities/SignalsPath.d.ts +12 -0
- package/src/entities/SignalsPath.d.ts.map +1 -0
- package/src/entities/SignalsPath.js +73 -0
- package/src/entities/SignalsPath.js.map +1 -0
- package/src/entities/events.d.ts +27 -0
- package/src/entities/events.d.ts.map +1 -0
- package/src/entities/events.js +7 -0
- package/src/entities/events.js.map +1 -0
- package/src/entities/importModule.d.ts +4 -0
- package/src/entities/importModule.d.ts.map +1 -0
- package/src/entities/importModule.js +32 -0
- package/src/entities/importModule.js.map +1 -0
- package/src/index.d.ts +22 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +20 -0
- package/src/index.js.map +1 -0
- package/src/shadow-objects.d.ts +7 -0
- package/src/shadow-objects.d.ts.map +1 -0
- package/src/shadow-objects.js +6 -0
- package/src/shadow-objects.js.map +1 -0
- package/src/shadow-objects.worker.d.ts +2 -0
- package/src/shadow-objects.worker.d.ts.map +1 -0
- package/src/shadow-objects.worker.js +5 -0
- package/src/shadow-objects.worker.js.map +1 -0
- package/src/shae-ent.d.ts +2 -0
- package/src/shae-ent.d.ts.map +1 -0
- package/src/shae-ent.js +4 -0
- package/src/shae-ent.js.map +1 -0
- package/src/shae-prop.d.ts +2 -0
- package/src/shae-prop.d.ts.map +1 -0
- package/src/shae-prop.js +4 -0
- package/src/shae-prop.js.map +1 -0
- package/src/shae-worker.d.ts +2 -0
- package/src/shae-worker.d.ts.map +1 -0
- package/src/shae-worker.js +4 -0
- package/src/shae-worker.js.map +1 -0
- package/src/types.d.ts +89 -0
- package/src/types.d.ts.map +1 -0
- package/src/types.js +2 -0
- package/src/types.js.map +1 -0
- package/src/utils/FrameLoop.d.ts +8 -0
- package/src/utils/FrameLoop.d.ts.map +1 -0
- package/src/utils/FrameLoop.js +45 -0
- package/src/utils/FrameLoop.js.map +1 -0
- package/src/utils/array-utils.d.ts +11 -0
- package/src/utils/array-utils.d.ts.map +1 -0
- package/src/utils/array-utils.js +27 -0
- package/src/utils/array-utils.js.map +1 -0
- package/src/utils/attr-utils.d.ts +3 -0
- package/src/utils/attr-utils.d.ts.map +1 -0
- package/src/utils/attr-utils.js +12 -0
- package/src/utils/attr-utils.js.map +1 -0
- package/src/utils/constants.d.ts +2 -0
- package/src/utils/constants.d.ts.map +1 -0
- package/src/utils/constants.js +2 -0
- package/src/utils/constants.js.map +1 -0
- package/src/utils/generateUUID.d.ts +2 -0
- package/src/utils/generateUUID.d.ts.map +1 -0
- package/src/utils/generateUUID.js +34 -0
- package/src/utils/generateUUID.js.map +1 -0
- package/src/utils/props-utils.d.ts +8 -0
- package/src/utils/props-utils.d.ts.map +1 -0
- package/src/utils/props-utils.js +47 -0
- package/src/utils/props-utils.js.map +1 -0
- package/src/utils/toNamespace.d.ts +3 -0
- package/src/utils/toNamespace.d.ts.map +1 -0
- package/src/utils/toNamespace.js +3 -0
- package/src/utils/toNamespace.js.map +1 -0
- package/src/utils/toUrlString.d.ts +2 -0
- package/src/utils/toUrlString.d.ts.map +1 -0
- package/src/utils/toUrlString.js +7 -0
- package/src/utils/toUrlString.js.map +1 -0
- package/src/utils/waitForMessageOfType.d.ts +5 -0
- package/src/utils/waitForMessageOfType.d.ts.map +1 -0
- package/src/utils/waitForMessageOfType.js +34 -0
- package/src/utils/waitForMessageOfType.js.map +1 -0
- package/src/view/ComponentChanges.d.ts +30 -0
- package/src/view/ComponentChanges.d.ts.map +1 -0
- package/src/view/ComponentChanges.js +249 -0
- package/src/view/ComponentChanges.js.map +1 -0
- package/src/view/ComponentContext.d.ts +76 -0
- package/src/view/ComponentContext.d.ts.map +1 -0
- package/src/view/ComponentContext.js +344 -0
- package/src/view/ComponentContext.js.map +1 -0
- package/src/view/ComponentMemory.d.ts +8 -0
- package/src/view/ComponentMemory.d.ts.map +1 -0
- package/src/view/ComponentMemory.js +79 -0
- package/src/view/ComponentMemory.js.map +1 -0
- package/src/view/IShadowObjectEnvProxy.d.ts +10 -0
- package/src/view/IShadowObjectEnvProxy.d.ts.map +1 -0
- package/src/view/IShadowObjectEnvProxy.js +2 -0
- package/src/view/IShadowObjectEnvProxy.js.map +1 -0
- package/src/view/LocalShadowObjectEnv.d.ts +18 -0
- package/src/view/LocalShadowObjectEnv.d.ts.map +1 -0
- package/src/view/LocalShadowObjectEnv.js +55 -0
- package/src/view/LocalShadowObjectEnv.js.map +1 -0
- package/src/view/RemoteWorkerEnv.d.ts +15 -0
- package/src/view/RemoteWorkerEnv.d.ts.map +1 -0
- package/src/view/RemoteWorkerEnv.js +112 -0
- package/src/view/RemoteWorkerEnv.js.map +1 -0
- package/src/view/ShadowEnv.d.ts +30 -0
- package/src/view/ShadowEnv.d.ts.map +1 -0
- package/src/view/ShadowEnv.js +202 -0
- package/src/view/ShadowEnv.js.map +1 -0
- package/src/view/ViewComponent.d.ts +33 -0
- package/src/view/ViewComponent.d.ts.map +1 -0
- package/src/view/ViewComponent.js +130 -0
- package/src/view/ViewComponent.js.map +1 -0
- package/src/view/cloneChangeTrail.d.ts +3 -0
- package/src/view/cloneChangeTrail.d.ts.map +1 -0
- package/src/view/cloneChangeTrail.js +12 -0
- package/src/view/cloneChangeTrail.js.map +1 -0
- package/src/worker/MessageRouter.d.ts +14 -0
- package/src/worker/MessageRouter.d.ts.map +1 -0
- package/src/worker/MessageRouter.js +72 -0
- package/src/worker/MessageRouter.js.map +1 -0
- package/src/worker/WorkerRuntime.d.ts +7 -0
- package/src/worker/WorkerRuntime.d.ts.map +1 -0
- package/src/worker/WorkerRuntime.js +15 -0
- package/src/worker/WorkerRuntime.js.map +1 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { emit, off, retain, retainClear } from '@spearwolf/eventize';
|
|
3
|
+
import { createEffect, destroySignalsAndEffects, value } from '@spearwolf/signalize';
|
|
4
|
+
import { signal, signalReader } from '@spearwolf/signalize/decorators';
|
|
5
|
+
let SignalsPath = (() => {
|
|
6
|
+
let _value_decorators;
|
|
7
|
+
let _value_initializers = [];
|
|
8
|
+
let _value_extraInitializers = [];
|
|
9
|
+
let _value$_decorators;
|
|
10
|
+
let _value$_initializers = [];
|
|
11
|
+
let _value$_extraInitializers = [];
|
|
12
|
+
return class SignalsPath {
|
|
13
|
+
static {
|
|
14
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
15
|
+
_value_decorators = [signal()];
|
|
16
|
+
_value$_decorators = [signalReader()];
|
|
17
|
+
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
18
|
+
__esDecorate(this, null, _value$_decorators, { kind: "accessor", name: "value$", static: false, private: false, access: { has: obj => "value$" in obj, get: obj => obj.value$, set: (obj, value) => { obj.value$ = value; } }, metadata: _metadata }, _value$_initializers, _value$_extraInitializers);
|
|
19
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
20
|
+
}
|
|
21
|
+
static { this.Value = 'value'; }
|
|
22
|
+
#signals = [];
|
|
23
|
+
#unsubscribeEffect;
|
|
24
|
+
#value_accessor_storage = __runInitializers(this, _value_initializers, void 0);
|
|
25
|
+
get value() { return this.#value_accessor_storage; }
|
|
26
|
+
set value(value) { this.#value_accessor_storage = value; }
|
|
27
|
+
#value$_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _value$_initializers, void 0));
|
|
28
|
+
get value$() { return this.#value$_accessor_storage; }
|
|
29
|
+
set value$(value) { this.#value$_accessor_storage = value; }
|
|
30
|
+
constructor() {
|
|
31
|
+
__runInitializers(this, _value$_extraInitializers);
|
|
32
|
+
retain(this, SignalsPath.Value);
|
|
33
|
+
this.value$((val) => emit(this, SignalsPath.Value, val));
|
|
34
|
+
}
|
|
35
|
+
add(...signals) {
|
|
36
|
+
for (const sig of signals) {
|
|
37
|
+
this.#signals.push(sig);
|
|
38
|
+
}
|
|
39
|
+
this.#updateEffect();
|
|
40
|
+
}
|
|
41
|
+
clear() {
|
|
42
|
+
this.#signals.length = 0;
|
|
43
|
+
this.#clearEffect();
|
|
44
|
+
}
|
|
45
|
+
dispose() {
|
|
46
|
+
this.clear();
|
|
47
|
+
off(this);
|
|
48
|
+
destroySignalsAndEffects(this);
|
|
49
|
+
retainClear(this, SignalsPath.Value);
|
|
50
|
+
}
|
|
51
|
+
#clearEffect() {
|
|
52
|
+
this.#unsubscribeEffect?.();
|
|
53
|
+
this.#unsubscribeEffect = undefined;
|
|
54
|
+
}
|
|
55
|
+
#updateEffect() {
|
|
56
|
+
this.#clearEffect();
|
|
57
|
+
const [run, unsubscribe] = createEffect(() => {
|
|
58
|
+
for (const sig of this.#signals) {
|
|
59
|
+
const val = value(sig);
|
|
60
|
+
if (val != null) {
|
|
61
|
+
this.value = val;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
this.value = undefined;
|
|
66
|
+
}, this.#signals);
|
|
67
|
+
this.#unsubscribeEffect = unsubscribe;
|
|
68
|
+
run();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
})();
|
|
72
|
+
export { SignalsPath };
|
|
73
|
+
//# sourceMappingURL=SignalsPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignalsPath.js","sourceRoot":"","sources":["../../../src/entities/SignalsPath.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,KAAK,EAAoB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,iCAAiC,CAAC;IAExD,WAAW;;;;;;;iBAAX,WAAW;;;iCAMrB,MAAM,EAAE;kCACR,YAAY,EAAE;YADL,oKAAS,KAAK,6BAAL,KAAK,qFAAU;YAClB,uKAAS,MAAM,6BAAN,MAAM,uFAAwB;;;iBANhD,UAAK,GAAG,OAAO,CAAC;QAEvB,QAAQ,GAA4B,EAAE,CAAC;QACvC,kBAAkB,CAAc;QAEtB,+EAAwB;QAAxB,IAAS,KAAK,2CAAU;QAAxB,IAAS,KAAK,iDAAU;QAClB,sIAAuC;QAAvC,IAAS,MAAM,4CAAwB;QAAvC,IAAS,MAAM,kDAAwB;QAEvD;;YACE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAC1D;QAED,GAAG,CAAC,GAAG,OAAgC;YACrC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QAED,KAAK;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,OAAO;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,CAAC;YACV,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC/B,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,YAAY;YACV,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,aAAa;YACX,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE;gBAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBACjB,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;YACtC,GAAG,EAAE,CAAC;QACR,CAAC;;;SApDU,WAAW"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Entity } from './Entity.js';
|
|
2
|
+
export declare const onCreate = "onCreate";
|
|
3
|
+
export interface OnCreate {
|
|
4
|
+
/**
|
|
5
|
+
* Is called when the shadow-object instance has been created and attached to the entity.
|
|
6
|
+
*
|
|
7
|
+
* This can be the case when the entity is being initialized, or when the already initialized entity has received a token change.
|
|
8
|
+
*
|
|
9
|
+
* Only the shadow-object gets this event.
|
|
10
|
+
* The entity does not get this event.
|
|
11
|
+
*/
|
|
12
|
+
[onCreate](entity: Entity): void;
|
|
13
|
+
}
|
|
14
|
+
export declare const onDestroy = "onDestroy";
|
|
15
|
+
export interface OnDestroy {
|
|
16
|
+
/**
|
|
17
|
+
* Is called when the shadow-object is about to be destroyed.
|
|
18
|
+
* Only the shadow-object gets this event.
|
|
19
|
+
* The entity does not get this event.
|
|
20
|
+
*/
|
|
21
|
+
[onDestroy](entity: Entity): void;
|
|
22
|
+
}
|
|
23
|
+
export declare const onViewEvent = "onViewEvent";
|
|
24
|
+
export interface OnViewEvent {
|
|
25
|
+
[onViewEvent](type: string, data: unknown): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/entities/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAIxC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAInC,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAID,eAAO,MAAM,SAAS,cAAc,CAAC;AAKrC,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAID,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,MAAM,WAAW,WAAW;IAC1B,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAClD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// ----------------------------------------------------------------------------
|
|
2
|
+
export const onCreate = 'onCreate';
|
|
3
|
+
// ----------------------------------------------------------------------------
|
|
4
|
+
export const onDestroy = 'onDestroy';
|
|
5
|
+
// ----------------------------------------------------------------------------
|
|
6
|
+
export const onViewEvent = 'onViewEvent';
|
|
7
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/entities/events.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAE/E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAgBnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAcrC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ShadowObjectsModule } from '../types.js';
|
|
2
|
+
import type { Kernel } from './Kernel.js';
|
|
3
|
+
export declare function importModule(kernel: Kernel, module: ShadowObjectsModule, importedModules: Set<ShadowObjectsModule>, upgradeEntities?: boolean): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=importModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importModule.d.ts","sourceRoot":"","sources":["../../../src/entities/importModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAExC,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,eAAe,EAAE,GAAG,CAAC,mBAAmB,CAAC,EACzC,eAAe,UAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export async function importModule(kernel, module, importedModules, upgradeEntities = true) {
|
|
2
|
+
if (importedModules.has(module)) {
|
|
3
|
+
console.warn('importModule: skipping already imported module', module);
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
importedModules.add(module);
|
|
8
|
+
}
|
|
9
|
+
if (module.extends) {
|
|
10
|
+
await Promise.all(module.extends.map((subModule) => importModule(kernel, subModule, importedModules, false)));
|
|
11
|
+
}
|
|
12
|
+
const { registry } = kernel;
|
|
13
|
+
if (module.define) {
|
|
14
|
+
for (const [token, constructor] of Object.entries(module.define)) {
|
|
15
|
+
registry.define(token, constructor);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (module.routes) {
|
|
19
|
+
for (const [token, routes] of Object.entries(module.routes)) {
|
|
20
|
+
registry.appendRoute(token, routes);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
await (module.initialize?.({
|
|
24
|
+
define: (token, constructor) => registry.define(token, constructor),
|
|
25
|
+
kernel,
|
|
26
|
+
registry,
|
|
27
|
+
}) ?? Promise.resolve());
|
|
28
|
+
if (upgradeEntities) {
|
|
29
|
+
kernel.upgradeEntities();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=importModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importModule.js","sourceRoot":"","sources":["../../../src/entities/importModule.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA2B,EAC3B,eAAyC,EACzC,eAAe,GAAG,IAAI;IAEtB,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,CAAC;IAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC;QACnE,MAAM;QACN,QAAQ;KACT,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC"}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './elements/constants.js';
|
|
3
|
+
export * from './elements/ShaeElement.js';
|
|
4
|
+
export * from './elements/ShaeEntElement.js';
|
|
5
|
+
export * from './elements/ShaePropElement.js';
|
|
6
|
+
export * from './elements/ShaeWorkerElement.js';
|
|
7
|
+
export * from './entities/events.js';
|
|
8
|
+
export * from './entities/Kernel.js';
|
|
9
|
+
export * from './entities/Registry.js';
|
|
10
|
+
export * from './entities/ShadowObject.js';
|
|
11
|
+
export * from './utils/toNamespace.js';
|
|
12
|
+
export * from './view/ComponentContext.js';
|
|
13
|
+
export * from './view/ComponentMemory.js';
|
|
14
|
+
export * from './view/LocalShadowObjectEnv.js';
|
|
15
|
+
export * from './view/RemoteWorkerEnv.js';
|
|
16
|
+
export * from './view/ShadowEnv.js';
|
|
17
|
+
export * from './view/ViewComponent.js';
|
|
18
|
+
export * from './worker/MessageRouter.js';
|
|
19
|
+
export * from './worker/WorkerRuntime.js';
|
|
20
|
+
export type * from './types.js';
|
|
21
|
+
export type * from './view/IShadowObjectEnvProxy.js';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAE1C,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,iCAAiC,CAAC"}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './elements/constants.js';
|
|
3
|
+
export * from './elements/ShaeElement.js';
|
|
4
|
+
export * from './elements/ShaeEntElement.js';
|
|
5
|
+
export * from './elements/ShaePropElement.js';
|
|
6
|
+
export * from './elements/ShaeWorkerElement.js';
|
|
7
|
+
export * from './entities/events.js';
|
|
8
|
+
export * from './entities/Kernel.js';
|
|
9
|
+
export * from './entities/Registry.js';
|
|
10
|
+
export * from './entities/ShadowObject.js';
|
|
11
|
+
export * from './utils/toNamespace.js';
|
|
12
|
+
export * from './view/ComponentContext.js';
|
|
13
|
+
export * from './view/ComponentMemory.js';
|
|
14
|
+
export * from './view/LocalShadowObjectEnv.js';
|
|
15
|
+
export * from './view/RemoteWorkerEnv.js';
|
|
16
|
+
export * from './view/ShadowEnv.js';
|
|
17
|
+
export * from './view/ViewComponent.js';
|
|
18
|
+
export * from './worker/MessageRouter.js';
|
|
19
|
+
export * from './worker/WorkerRuntime.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './entities/Kernel.js';
|
|
3
|
+
export * from './entities/Registry.js';
|
|
4
|
+
export * from './entities/ShadowObject.js';
|
|
5
|
+
export * from './entities/events.js';
|
|
6
|
+
export type * from './types.js';
|
|
7
|
+
//# sourceMappingURL=shadow-objects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-objects.d.ts","sourceRoot":"","sources":["../../src/shadow-objects.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-objects.js","sourceRoot":"","sources":["../../src/shadow-objects.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-objects.worker.d.ts","sourceRoot":"","sources":["../../src/shadow-objects.worker.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-objects.worker.js","sourceRoot":"","sources":["../../src/shadow-objects.worker.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAExD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AAEjE,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,aAAa,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shae-ent.d.ts","sourceRoot":"","sources":["../../src/shae-ent.ts"],"names":[],"mappings":""}
|
package/src/shae-ent.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shae-ent.js","sourceRoot":"","sources":["../../src/shae-ent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAEjD,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shae-prop.d.ts","sourceRoot":"","sources":["../../src/shae-prop.ts"],"names":[],"mappings":""}
|
package/src/shae-prop.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shae-prop.js","sourceRoot":"","sources":["../../src/shae-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAE5D,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shae-worker.d.ts","sourceRoot":"","sources":["../../src/shae-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shae-worker.js","sourceRoot":"","sources":["../../src/shae-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEpD,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC"}
|
package/src/types.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { EventizedObject } from '@spearwolf/eventize';
|
|
2
|
+
import type { CompareFunc, SignalObject, SignalReader } from '@spearwolf/signalize';
|
|
3
|
+
import { AppliedChangeTrail, ImportedModule, type ComponentChangeType } from './constants.js';
|
|
4
|
+
import type { Entity } from './entities/Entity.js';
|
|
5
|
+
import type { Kernel } from './entities/Kernel.js';
|
|
6
|
+
import type { Registry } from './entities/Registry.js';
|
|
7
|
+
export type ChangeTrailType = IComponentChangeType[];
|
|
8
|
+
export type TransferablesType = Transferable[];
|
|
9
|
+
export interface IComponentChange {
|
|
10
|
+
type: ComponentChangeType;
|
|
11
|
+
uuid: string;
|
|
12
|
+
transferables?: TransferablesType;
|
|
13
|
+
}
|
|
14
|
+
export interface IComponentEvent {
|
|
15
|
+
type: string;
|
|
16
|
+
data: unknown;
|
|
17
|
+
}
|
|
18
|
+
export type ComponentPropertiesType = [string, unknown][];
|
|
19
|
+
export interface ICreateEntitiesChange extends IComponentChange {
|
|
20
|
+
type: ComponentChangeType.CreateEntities;
|
|
21
|
+
token: string;
|
|
22
|
+
parentUuid?: string;
|
|
23
|
+
order?: number;
|
|
24
|
+
properties?: ComponentPropertiesType;
|
|
25
|
+
}
|
|
26
|
+
export interface IChangeToken extends IComponentChange {
|
|
27
|
+
type: ComponentChangeType.ChangeToken;
|
|
28
|
+
token: string;
|
|
29
|
+
}
|
|
30
|
+
export interface IDestroyEntitiesChange extends IComponentChange {
|
|
31
|
+
type: ComponentChangeType.DestroyEntities;
|
|
32
|
+
}
|
|
33
|
+
export interface ISetParentChange extends IComponentChange {
|
|
34
|
+
type: ComponentChangeType.SetParent;
|
|
35
|
+
parentUuid: string | undefined;
|
|
36
|
+
order?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface IUpdateOrderChange extends IComponentChange {
|
|
39
|
+
type: ComponentChangeType.UpdateOrder;
|
|
40
|
+
order: number;
|
|
41
|
+
}
|
|
42
|
+
export interface IPropertiesChange extends IComponentChange {
|
|
43
|
+
type: ComponentChangeType.ChangeProperties;
|
|
44
|
+
properties: ComponentPropertiesType;
|
|
45
|
+
}
|
|
46
|
+
export interface ISendEvents extends IComponentChange {
|
|
47
|
+
type: ComponentChangeType.SendEvents;
|
|
48
|
+
events: IComponentEvent[];
|
|
49
|
+
}
|
|
50
|
+
export type IComponentChangeType = ICreateEntitiesChange | IDestroyEntitiesChange | ISetParentChange | IUpdateOrderChange | IPropertiesChange | IChangeToken | ISendEvents;
|
|
51
|
+
export interface SyncEvent {
|
|
52
|
+
changeTrail: IComponentChangeType[];
|
|
53
|
+
serial?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface ImportedModuleEvent {
|
|
56
|
+
type: typeof ImportedModule;
|
|
57
|
+
url?: string;
|
|
58
|
+
error?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface AppliedChangeTrailEvent {
|
|
61
|
+
type: typeof AppliedChangeTrail;
|
|
62
|
+
serial?: number;
|
|
63
|
+
error?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ShadowObjectParams {
|
|
66
|
+
entity: Entity;
|
|
67
|
+
provideContext<T = unknown>(name: string | symbol, initialValue?: T, isEqual?: CompareFunc<T>): SignalObject<T>;
|
|
68
|
+
useContext<T = any>(name: string | symbol, isEqual?: CompareFunc<T>): SignalReader<T>;
|
|
69
|
+
useProperty<T = any>(name: string, isEqual?: CompareFunc<T>): SignalReader<T>;
|
|
70
|
+
onDestroy(callback: () => any): void;
|
|
71
|
+
}
|
|
72
|
+
export interface ShadowObjectConstructor {
|
|
73
|
+
new (...args: any[]): {};
|
|
74
|
+
displayName?: string;
|
|
75
|
+
}
|
|
76
|
+
export type ShadowObjectType = EventizedObject;
|
|
77
|
+
export type NamespaceType = string | symbol;
|
|
78
|
+
export type ShadowObjectsModuleInitializer = (shadowObjects: {
|
|
79
|
+
define: (token: string, constructor: ShadowObjectConstructor) => void;
|
|
80
|
+
kernel: Kernel;
|
|
81
|
+
registry: Registry;
|
|
82
|
+
}) => Promise<void>;
|
|
83
|
+
export interface ShadowObjectsModule {
|
|
84
|
+
extends?: ShadowObjectsModule[];
|
|
85
|
+
define?: Record<string, ShadowObjectConstructor>;
|
|
86
|
+
routes?: Record<string, string[]>;
|
|
87
|
+
initialize?: ShadowObjectsModuleInitializer;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/src/types.js
ADDED
package/src/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameLoop.d.ts","sourceRoot":"","sources":["../../../src/utils/FrameLoop.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;;IACpB,MAAM,CAAC,OAAO,SAAqB;;IAWnC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAgB/B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;CAqB/B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { emit, eventize, getSubscriptionCount, off, on } from '@spearwolf/eventize';
|
|
3
|
+
let gUniqInstance = null;
|
|
4
|
+
export class FrameLoop {
|
|
5
|
+
static { this.OnFrame = Symbol('onFrame'); }
|
|
6
|
+
#rafID = 0;
|
|
7
|
+
#subscriptionCount = 0;
|
|
8
|
+
constructor() {
|
|
9
|
+
if (gUniqInstance)
|
|
10
|
+
return gUniqInstance;
|
|
11
|
+
eventize(this);
|
|
12
|
+
gUniqInstance = this;
|
|
13
|
+
}
|
|
14
|
+
start(target) {
|
|
15
|
+
if (target == null)
|
|
16
|
+
return;
|
|
17
|
+
if (getSubscriptionCount(this) === 0) {
|
|
18
|
+
this.#requestAnimationFrame();
|
|
19
|
+
}
|
|
20
|
+
on(this, _a.OnFrame, target);
|
|
21
|
+
this.#subscriptionCount++;
|
|
22
|
+
return () => {
|
|
23
|
+
this.stop(target);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
stop(target) {
|
|
27
|
+
off(this, _a.OnFrame, target);
|
|
28
|
+
if (getSubscriptionCount(this) === 0) {
|
|
29
|
+
this.#cancelAnimationFrame();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
#onFrame = (now) => {
|
|
33
|
+
emit(this, _a.OnFrame, now);
|
|
34
|
+
this.#requestAnimationFrame();
|
|
35
|
+
};
|
|
36
|
+
#requestAnimationFrame() {
|
|
37
|
+
this.#rafID = requestAnimationFrame(this.#onFrame);
|
|
38
|
+
}
|
|
39
|
+
#cancelAnimationFrame() {
|
|
40
|
+
cancelAnimationFrame(this.#rafID);
|
|
41
|
+
this.#rafID = 0;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
_a = FrameLoop;
|
|
45
|
+
//# sourceMappingURL=FrameLoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameLoop.js","sourceRoot":"","sources":["../../../src/utils/FrameLoop.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,EAAC,MAAM,qBAAqB,CAAC;AAElF,IAAI,aAAa,GAAc,IAAI,CAAC;AAEpC,MAAM,OAAO,SAAS;aACb,YAAO,GAAG,MAAM,CAAC,SAAS,CAAC,AAApB,CAAqB;IAEnC,MAAM,GAAG,CAAC,CAAC;IACX,kBAAkB,GAAG,CAAC,CAAC;IAEvB;QACE,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAyB;QAC7B,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO;QAE3B,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;QAED,EAAE,CAAC,IAAI,EAAE,EAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAyB;QAC5B,GAAG,CAAC,IAAI,EAAE,EAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAErC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;QACzB,IAAI,CAAC,IAAI,EAAE,EAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,sBAAsB;QACpB,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,qBAAqB;QACnB,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add a new item to the array, but only if it does not already exist
|
|
3
|
+
*/
|
|
4
|
+
export declare function appendTo<T = unknown>(array: T[], item: T): void;
|
|
5
|
+
/**
|
|
6
|
+
* Append a new item to the end of the array.
|
|
7
|
+
* If the item exists, remove the previous item first.
|
|
8
|
+
*/
|
|
9
|
+
export declare function appendToEnd<T = unknown>(array: T[], item: T): void;
|
|
10
|
+
export declare function removeFrom<T = unknown>(array: T[], item: T): void;
|
|
11
|
+
//# sourceMappingURL=array-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/array-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAKxD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAM3D;AAED,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAK1D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add a new item to the array, but only if it does not already exist
|
|
3
|
+
*/
|
|
4
|
+
export function appendTo(array, item) {
|
|
5
|
+
const index = array.indexOf(item);
|
|
6
|
+
if (index === -1) {
|
|
7
|
+
array.push(item);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Append a new item to the end of the array.
|
|
12
|
+
* If the item exists, remove the previous item first.
|
|
13
|
+
*/
|
|
14
|
+
export function appendToEnd(array, item) {
|
|
15
|
+
const index = array.indexOf(item);
|
|
16
|
+
if (index !== -1) {
|
|
17
|
+
array.splice(index, 1);
|
|
18
|
+
}
|
|
19
|
+
array.push(item);
|
|
20
|
+
}
|
|
21
|
+
export function removeFrom(array, item) {
|
|
22
|
+
const index = array.indexOf(item);
|
|
23
|
+
if (index !== -1) {
|
|
24
|
+
array.splice(index, 1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=array-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../../../src/utils/array-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAc,KAAU,EAAE,IAAO;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAc,KAAU,EAAE,IAAO;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAc,KAAU,EAAE,IAAO;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/attr-utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,OAAQ,WAAW,wCAA0C,CAAC;AAEjG,eAAO,MAAM,oBAAoB,OAAQ,WAAW,QAAQ,MAAM,YAMjE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ATTR_NS } from '../elements/constants.js';
|
|
2
|
+
import { TRUTHY_VALUES } from './constants.js';
|
|
3
|
+
import { toNamespace } from './toNamespace.js';
|
|
4
|
+
export const readNamespaceAttribute = (el) => toNamespace(el.getAttribute(ATTR_NS));
|
|
5
|
+
export const readBooleanAttribute = (el, name) => {
|
|
6
|
+
if (el.hasAttribute(name)) {
|
|
7
|
+
const val = el.getAttribute(name)?.trim()?.toLowerCase() || '1';
|
|
8
|
+
return TRUTHY_VALUES.has(val);
|
|
9
|
+
}
|
|
10
|
+
return false;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=attr-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr-utils.js","sourceRoot":"","sources":["../../../src/utils/attr-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAe,EAAE,IAAY,EAAE,EAAE;IACpE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC;QAChE,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,aAA+C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateUUID.d.ts","sourceRoot":"","sources":["../../../src/utils/generateUUID.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,YAAY,cAA8D,CAAC"}
|