angular-three 0.0.0-replace
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/README.md +7 -0
- package/esm2022/angular-three.mjs +5 -0
- package/esm2022/index.mjs +20 -0
- package/esm2022/lib/canvas.mjs +187 -0
- package/esm2022/lib/directives/args.mjs +35 -0
- package/esm2022/lib/directives/common.mjs +42 -0
- package/esm2022/lib/directives/parent.mjs +35 -0
- package/esm2022/lib/dom/events.mjs +73 -0
- package/esm2022/lib/events.mjs +362 -0
- package/esm2022/lib/instance.mjs +70 -0
- package/esm2022/lib/loader.mjs +64 -0
- package/esm2022/lib/loop.mjs +153 -0
- package/esm2022/lib/portal.mjs +208 -0
- package/esm2022/lib/ref.mjs +46 -0
- package/esm2022/lib/renderer/catalogue.mjs +7 -0
- package/esm2022/lib/renderer/constants.mjs +21 -0
- package/esm2022/lib/renderer/index.mjs +432 -0
- package/esm2022/lib/renderer/store.mjs +423 -0
- package/esm2022/lib/renderer/utils.mjs +201 -0
- package/esm2022/lib/roots.mjs +261 -0
- package/esm2022/lib/routed-scene.mjs +33 -0
- package/esm2022/lib/store.mjs +181 -0
- package/esm2022/lib/three-types.mjs +2 -0
- package/esm2022/lib/types.mjs +2 -0
- package/esm2022/lib/utils/apply-props.mjs +123 -0
- package/esm2022/lib/utils/attach.mjs +32 -0
- package/esm2022/lib/utils/before-render.mjs +12 -0
- package/esm2022/lib/utils/create-api-token.mjs +13 -0
- package/esm2022/lib/utils/inputs.mjs +18 -0
- package/esm2022/lib/utils/is.mjs +52 -0
- package/esm2022/lib/utils/make.mjs +53 -0
- package/esm2022/lib/utils/signal-store.mjs +101 -0
- package/esm2022/lib/utils/update.mjs +34 -0
- package/fesm2022/angular-three.mjs +3167 -0
- package/fesm2022/angular-three.mjs.map +1 -0
- package/index.d.ts +22 -0
- package/lib/canvas.d.ts +1170 -0
- package/lib/directives/args.d.ts +11 -0
- package/lib/directives/common.d.ts +26 -0
- package/lib/directives/parent.d.ts +13 -0
- package/lib/dom/events.d.ts +5 -0
- package/lib/events.d.ts +83 -0
- package/lib/instance.d.ts +46 -0
- package/lib/loader.d.ts +32 -0
- package/lib/loop.d.ts +68 -0
- package/lib/portal.d.ts +58 -0
- package/lib/ref.d.ts +7 -0
- package/lib/renderer/catalogue.d.ts +13 -0
- package/lib/renderer/constants.d.ts +20 -0
- package/lib/renderer/index.d.ts +56 -0
- package/lib/renderer/store.d.ts +64 -0
- package/lib/renderer/utils.d.ts +31 -0
- package/lib/roots.d.ts +12 -0
- package/lib/routed-scene.d.ts +10 -0
- package/lib/store.d.ts +141 -0
- package/lib/three-types.d.ts +302 -0
- package/lib/types.d.ts +12 -0
- package/lib/utils/apply-props.d.ts +3 -0
- package/lib/utils/attach.d.ts +11 -0
- package/lib/utils/before-render.d.ts +6 -0
- package/lib/utils/create-api-token.d.ts +23 -0
- package/lib/utils/inputs.d.ts +5 -0
- package/lib/utils/is.d.ts +23 -0
- package/lib/utils/make.d.ts +19 -0
- package/lib/utils/signal-store.d.ts +30 -0
- package/lib/utils/update.d.ts +4 -0
- package/metadata.json +1 -0
- package/package.json +73 -0
- package/plugin/README.md +11 -0
- package/plugin/generators.json +17 -0
- package/plugin/src/generators/init/compat.d.ts +2 -0
- package/plugin/src/generators/init/compat.js +6 -0
- package/plugin/src/generators/init/compat.js.map +1 -0
- package/plugin/src/generators/init/files/experience/experience.component.html__tmpl__ +4 -0
- package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +18 -0
- package/plugin/src/generators/init/generator.d.ts +3 -0
- package/plugin/src/generators/init/generator.js +143 -0
- package/plugin/src/generators/init/generator.js.map +1 -0
- package/plugin/src/generators/init/schema.json +6 -0
- package/plugin/src/generators/utils.d.ts +2 -0
- package/plugin/src/generators/utils.js +34 -0
- package/plugin/src/generators/utils.js.map +1 -0
- package/plugin/src/generators/version.d.ts +14 -0
- package/plugin/src/generators/version.js +18 -0
- package/plugin/src/generators/version.js.map +1 -0
- package/plugin/src/index.d.ts +0 -0
- package/plugin/src/index.js +1 -0
- package/plugin/src/index.js.map +1 -0
- package/web-types.json +1 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { is } from './is';
|
|
3
|
+
const idCache = {};
|
|
4
|
+
export function makeId(event) {
|
|
5
|
+
if (event) {
|
|
6
|
+
return (event.eventObject || event.object).uuid + '/' + event.index + event.instanceId;
|
|
7
|
+
}
|
|
8
|
+
const newId = THREE.MathUtils.generateUUID();
|
|
9
|
+
// ensure not already used
|
|
10
|
+
if (!idCache[newId]) {
|
|
11
|
+
idCache[newId] = true;
|
|
12
|
+
return newId;
|
|
13
|
+
}
|
|
14
|
+
return makeId();
|
|
15
|
+
}
|
|
16
|
+
export function makeDpr(dpr, window) {
|
|
17
|
+
// Err on the side of progress by assuming 2x dpr if we can't detect it
|
|
18
|
+
// This will happen in workers where window is defined but dpr isn't.
|
|
19
|
+
const target = typeof window !== 'undefined' ? window.devicePixelRatio ?? 2 : 1;
|
|
20
|
+
return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;
|
|
21
|
+
}
|
|
22
|
+
export function makeRendererInstance(glOptions, canvas) {
|
|
23
|
+
const customRenderer = (typeof glOptions === 'function' ? glOptions(canvas) : glOptions);
|
|
24
|
+
if (is.renderer(customRenderer))
|
|
25
|
+
return customRenderer;
|
|
26
|
+
return new THREE.WebGLRenderer({
|
|
27
|
+
powerPreference: 'high-performance',
|
|
28
|
+
canvas: canvas,
|
|
29
|
+
antialias: true,
|
|
30
|
+
alpha: true,
|
|
31
|
+
...glOptions,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function makeCameraInstance(isOrthographic, size) {
|
|
35
|
+
if (isOrthographic)
|
|
36
|
+
return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
|
|
37
|
+
return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
|
|
38
|
+
}
|
|
39
|
+
export function makeObjectGraph(object) {
|
|
40
|
+
const data = { nodes: {}, materials: {} };
|
|
41
|
+
if (object) {
|
|
42
|
+
object.traverse((child) => {
|
|
43
|
+
if (child.name)
|
|
44
|
+
data.nodes[child.name] = child;
|
|
45
|
+
if ('material' in child && !data.materials[child.material.name]) {
|
|
46
|
+
data.materials[child.material.name] = child
|
|
47
|
+
.material;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFLL0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixNQUFNLE9BQU8sR0FBMEMsRUFBRSxDQUFDO0FBQzFELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBdUI7SUFDN0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUN4RixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBZTtJQUNuRCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzlFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLFNBQXVCLEVBQ3ZCLE1BQWU7SUFFZixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQXdCLENBQUM7SUFDaEgsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUFFLE9BQU8sY0FBYyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzlCLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTSxFQUFFLE1BQU07UUFDZCxTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxJQUFJO1FBQ1gsR0FBRyxTQUFTO0tBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxjQUF1QixFQUFFLElBQWE7SUFDeEUsSUFBSSxjQUFjO1FBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQVFELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBc0I7SUFDckQsTUFBTSxJQUFJLEdBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0MsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFvQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFvQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUksS0FBb0I7cUJBQzdGLFFBQTBCLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0R0xPcHRpb25zIH0gZnJvbSAnLi4vY2FudmFzJztcbmltcG9ydCB0eXBlIHsgTmd0SW50ZXJzZWN0aW9uIH0gZnJvbSAnLi4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgTmd0Q2FudmFzRWxlbWVudCB9IGZyb20gJy4uL3Jvb3RzJztcbmltcG9ydCB0eXBlIHsgTmd0RHByLCBOZ3RTaXplIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcblxuY29uc3QgaWRDYWNoZTogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfCB1bmRlZmluZWQgfSA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VJZChldmVudD86IE5ndEludGVyc2VjdGlvbik6IHN0cmluZyB7XG5cdGlmIChldmVudCkge1xuXHRcdHJldHVybiAoZXZlbnQuZXZlbnRPYmplY3QgfHwgZXZlbnQub2JqZWN0KS51dWlkICsgJy8nICsgZXZlbnQuaW5kZXggKyBldmVudC5pbnN0YW5jZUlkO1xuXHR9XG5cblx0Y29uc3QgbmV3SWQgPSBUSFJFRS5NYXRoVXRpbHMuZ2VuZXJhdGVVVUlEKCk7XG5cdC8vIGVuc3VyZSBub3QgYWxyZWFkeSB1c2VkXG5cdGlmICghaWRDYWNoZVtuZXdJZF0pIHtcblx0XHRpZENhY2hlW25ld0lkXSA9IHRydWU7XG5cdFx0cmV0dXJuIG5ld0lkO1xuXHR9XG5cdHJldHVybiBtYWtlSWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VEcHIoZHByOiBOZ3REcHIsIHdpbmRvdz86IFdpbmRvdykge1xuXHQvLyBFcnIgb24gdGhlIHNpZGUgb2YgcHJvZ3Jlc3MgYnkgYXNzdW1pbmcgMnggZHByIGlmIHdlIGNhbid0IGRldGVjdCBpdFxuXHQvLyBUaGlzIHdpbGwgaGFwcGVuIGluIHdvcmtlcnMgd2hlcmUgd2luZG93IGlzIGRlZmluZWQgYnV0IGRwciBpc24ndC5cblx0Y29uc3QgdGFyZ2V0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA/PyAyIDogMTtcblx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZHByKSA/IE1hdGgubWluKE1hdGgubWF4KGRwclswXSwgdGFyZ2V0KSwgZHByWzFdKSA6IGRwcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VSZW5kZXJlckluc3RhbmNlPFRDYW52YXMgZXh0ZW5kcyBOZ3RDYW52YXNFbGVtZW50Pihcblx0Z2xPcHRpb25zOiBOZ3RHTE9wdGlvbnMsXG5cdGNhbnZhczogVENhbnZhcyxcbik6IFRIUkVFLldlYkdMUmVuZGVyZXIge1xuXHRjb25zdCBjdXN0b21SZW5kZXJlciA9ICh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nID8gZ2xPcHRpb25zKGNhbnZhcykgOiBnbE9wdGlvbnMpIGFzIFRIUkVFLldlYkdMUmVuZGVyZXI7XG5cdGlmIChpcy5yZW5kZXJlcihjdXN0b21SZW5kZXJlcikpIHJldHVybiBjdXN0b21SZW5kZXJlcjtcblx0cmV0dXJuIG5ldyBUSFJFRS5XZWJHTFJlbmRlcmVyKHtcblx0XHRwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcblx0XHRjYW52YXM6IGNhbnZhcyxcblx0XHRhbnRpYWxpYXM6IHRydWUsXG5cdFx0YWxwaGE6IHRydWUsXG5cdFx0Li4uZ2xPcHRpb25zLFxuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYW1lcmFJbnN0YW5jZShpc09ydGhvZ3JhcGhpYzogYm9vbGVhbiwgc2l6ZTogTmd0U2l6ZSkge1xuXHRpZiAoaXNPcnRob2dyYXBoaWMpIHJldHVybiBuZXcgVEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhKDAsIDAsIDAsIDAsIDAuMSwgMTAwMCk7XG5cdHJldHVybiBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoNzUsIHNpemUud2lkdGggLyBzaXplLmhlaWdodCwgMC4xLCAxMDAwKTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0TWFwID0ge1xuXHRub2RlczogeyBbbmFtZTogc3RyaW5nXTogVEhSRUUuT2JqZWN0M0QgfTtcblx0bWF0ZXJpYWxzOiB7IFtuYW1lOiBzdHJpbmddOiBUSFJFRS5NYXRlcmlhbCB9O1xuXHRba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZU9iamVjdEdyYXBoKG9iamVjdDogVEhSRUUuT2JqZWN0M0QpOiBOZ3RPYmplY3RNYXAge1xuXHRjb25zdCBkYXRhOiBOZ3RPYmplY3RNYXAgPSB7IG5vZGVzOiB7fSwgbWF0ZXJpYWxzOiB7fSB9O1xuXG5cdGlmIChvYmplY3QpIHtcblx0XHRvYmplY3QudHJhdmVyc2UoKGNoaWxkOiBUSFJFRS5PYmplY3QzRCkgPT4ge1xuXHRcdFx0aWYgKGNoaWxkLm5hbWUpIGRhdGEubm9kZXNbY2hpbGQubmFtZV0gPSBjaGlsZDtcblx0XHRcdGlmICgnbWF0ZXJpYWwnIGluIGNoaWxkICYmICFkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSkge1xuXHRcdFx0XHRkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSA9IChjaGlsZCBhcyBUSFJFRS5NZXNoKVxuXHRcdFx0XHRcdC5tYXRlcmlhbCBhcyBUSFJFRS5NYXRlcmlhbDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZGF0YTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { computed, signal, untracked, } from '@angular/core';
|
|
2
|
+
const STORE_COMPUTED_KEY = '__ngt_signal_store_computed__';
|
|
3
|
+
function reducer(state) {
|
|
4
|
+
return (previous) => {
|
|
5
|
+
const partial = typeof state === 'function' ? state(previous) : state;
|
|
6
|
+
Object.keys(partial).forEach((key) => {
|
|
7
|
+
const typedKey = key;
|
|
8
|
+
if (partial[typedKey] === undefined && previous[typedKey] != null) {
|
|
9
|
+
partial[typedKey] = previous[typedKey];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
return partial;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function updater(_source) {
|
|
16
|
+
return (state) => {
|
|
17
|
+
const updater = reducer(state);
|
|
18
|
+
untracked(() => {
|
|
19
|
+
_source.update((previous) => ({ ...previous, ...updater(previous) }));
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function patcher(_source) {
|
|
24
|
+
return (state) => {
|
|
25
|
+
const updater = reducer(state);
|
|
26
|
+
untracked(() => {
|
|
27
|
+
_source.update((previous) => ({ ...updater(previous), ...previous }));
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function getter(_source) {
|
|
32
|
+
return (...keys) => {
|
|
33
|
+
const root = untracked(_source);
|
|
34
|
+
if (keys.length === 0)
|
|
35
|
+
return root;
|
|
36
|
+
return keys.reduce((value, key) => value[key], root);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function selector(_state, computedCache) {
|
|
40
|
+
return (...keysAndOptions) => {
|
|
41
|
+
if (keysAndOptions.length === 0)
|
|
42
|
+
return _state;
|
|
43
|
+
if (keysAndOptions.length === 1 && typeof keysAndOptions[0] === 'object') {
|
|
44
|
+
const cachedKey = STORE_COMPUTED_KEY.concat(JSON.stringify(keysAndOptions[0]));
|
|
45
|
+
if (!computedCache.has(cachedKey)) {
|
|
46
|
+
computedCache.set(cachedKey, computed(_state, keysAndOptions));
|
|
47
|
+
}
|
|
48
|
+
return computedCache.get(cachedKey);
|
|
49
|
+
}
|
|
50
|
+
const [keys, options] = parseStoreOptions(keysAndOptions);
|
|
51
|
+
const joinedKeys = keys.join('-');
|
|
52
|
+
const cachedKeys = joinedKeys.concat(JSON.stringify(options));
|
|
53
|
+
if (!computedCache.has(cachedKeys)) {
|
|
54
|
+
computedCache.set(cachedKeys, computed(() => keys.reduce((value, key) => value[key], _state()), options));
|
|
55
|
+
}
|
|
56
|
+
return computedCache.get(cachedKeys);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function parseStoreOptions(keysAndOptions) {
|
|
60
|
+
if (typeof keysAndOptions.at(-1) === 'object') {
|
|
61
|
+
return [keysAndOptions.slice(0, -1), keysAndOptions.at(-1)];
|
|
62
|
+
}
|
|
63
|
+
return [keysAndOptions, { equal: Object.is }];
|
|
64
|
+
}
|
|
65
|
+
export function signalStore(initialState = {}, options) {
|
|
66
|
+
let source;
|
|
67
|
+
let update;
|
|
68
|
+
let get;
|
|
69
|
+
let patch;
|
|
70
|
+
let select;
|
|
71
|
+
let state;
|
|
72
|
+
const computedCache = new Map();
|
|
73
|
+
if (!options) {
|
|
74
|
+
options = { equal: Object.is };
|
|
75
|
+
}
|
|
76
|
+
if (typeof initialState === 'function') {
|
|
77
|
+
source = signal({}, options);
|
|
78
|
+
state = source.asReadonly();
|
|
79
|
+
get = getter(source);
|
|
80
|
+
update = updater(source);
|
|
81
|
+
patch = patcher(source);
|
|
82
|
+
select = selector(state, computedCache);
|
|
83
|
+
source.set(initialState({ update, get, patch, select }));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
source = signal(initialState, options);
|
|
87
|
+
state = source.asReadonly();
|
|
88
|
+
get = getter(source);
|
|
89
|
+
update = updater(source);
|
|
90
|
+
patch = patcher(source);
|
|
91
|
+
select = selector(state, computedCache);
|
|
92
|
+
}
|
|
93
|
+
const store = { select, get, update, patch, state };
|
|
94
|
+
Object.defineProperty(store, 'snapshot', {
|
|
95
|
+
get: untracked.bind({}, state),
|
|
96
|
+
configurable: false,
|
|
97
|
+
enumerable: false,
|
|
98
|
+
});
|
|
99
|
+
return store;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc2lnbmFsLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FLVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDO0FBb0UzRCxTQUFTLE9BQU8sQ0FBdUIsS0FBMkM7SUFDakYsT0FBTyxDQUFDLFFBQWUsRUFBRSxFQUFFO1FBQzFCLE1BQU0sT0FBTyxHQUFHLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFFBQVEsR0FBRyxHQUFrQixDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUF1QixPQUE4QjtJQUNwRSxPQUFPLENBQUMsS0FBMkMsRUFBRSxFQUFFO1FBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxF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QUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQztTQUFNLENBQUM7UUFDUCxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QixHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFcEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO1FBQ3hDLEdBQUcsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDOUIsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLEtBQUs7S0FDakIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUE4QixDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRjb21wdXRlZCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG5cdHR5cGUgQ3JlYXRlQ29tcHV0ZWRPcHRpb25zLFxuXHR0eXBlIENyZWF0ZVNpZ25hbE9wdGlvbnMsXG5cdHR5cGUgU2lnbmFsLFxuXHR0eXBlIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBTVE9SRV9DT01QVVRFRF9LRVkgPSAnX19uZ3Rfc2lnbmFsX3N0b3JlX2NvbXB1dGVkX18nO1xuXG5leHBvcnQgdHlwZSBOZ3RTaWduYWxTdG9yZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4gPSB7XG5cdHNlbGVjdDxcblx0XHRLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsXG5cdFx0S2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdLFxuXHRcdEtleTMgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXSxcblx0XHRLZXk0IGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M10sXG5cdD4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdGtleTM6IEtleTMsXG5cdFx0a2V5NDogS2V5NCxcblx0XHRvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlW0tleTFdW0tleTJdW0tleTNdW0tleTRdPixcblx0KTogU2lnbmFsPFN0YXRlW0tleTFdW0tleTJdW0tleTNdW0tleTRdPjtcblx0c2VsZWN0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdLCBLZXkzIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml0+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRrZXkzOiBLZXkzLFxuXHRcdG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5MV1bS2V5Ml1bS2V5M10+LFxuXHQpOiBTaWduYWw8U3RhdGVbS2V5MV1bS2V5Ml1bS2V5M10+O1xuXHRzZWxlY3Q8S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLCBLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlW0tleTFdW0tleTJdPixcblx0KTogU2lnbmFsPFN0YXRlW0tleTFdW0tleTJdPjtcblx0c2VsZWN0PEtleSBleHRlbmRzIGtleW9mIFN0YXRlPihrZXk6IEtleSwgb3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXldPik6IFNpZ25hbDxTdGF0ZVtLZXldPjtcblx0c2VsZWN0KG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGU+KTogU2lnbmFsPFN0YXRlPjtcblxuXHRnZXQ8XG5cdFx0S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLFxuXHRcdEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSxcblx0XHRLZXkzIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml0sXG5cdFx0S2V5NCBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdW0tleTNdLFxuXHQ+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRrZXkzOiBLZXkzLFxuXHRcdGtleTQ6IEtleTQsXG5cdCk6IFN0YXRlW0tleTFdW0tleTJdW0tleTNdW0tleTRdO1xuXHRnZXQ8S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLCBLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sIEtleTMgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXT4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdGtleTM6IEtleTMsXG5cdCk6IFN0YXRlW0tleTFdW0tleTJdW0tleTNdO1xuXHRnZXQ8S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLCBLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0+KGtleTE6IEtleTEsIGtleTI6IEtleTIpOiBTdGF0ZVtLZXkxXVtLZXkyXTtcblx0Z2V0PEtleSBleHRlbmRzIGtleW9mIFN0YXRlPihrZXk6IEtleSk6IFN0YXRlW0tleV07XG5cdGdldCgpOiBTdGF0ZTtcblxuXHQvKipcblx0ICogTmV3IHN0YXRlIHRha2VzIHByZWNlZGVuY2Vcblx0ICovXG5cdHVwZGF0ZShzdGF0ZTogUGFydGlhbDxTdGF0ZT4gfCAoKHByZXZpb3VzOiBTdGF0ZSkgPT4gUGFydGlhbDxTdGF0ZT4pKTogdm9pZDtcblx0LyoqXG5cdCAqIE5vbi11bmRlZmluZWQgb2xkIHN0YXRlIHRha2VzIHByZWNlZGVuY2Vcblx0ICovXG5cdHBhdGNoKHN0YXRlOiBQYXJ0aWFsPFN0YXRlPiB8ICgocHJldmlvdXM6IFN0YXRlKSA9PiBQYXJ0aWFsPFN0YXRlPikpOiB2b2lkO1xuXG5cdC8qKlxuXHQgKiBFcXVpdmFsZW5jZSB0byBzZWxlY3QoKVxuXHQgKi9cblx0c3RhdGU6IFNpZ25hbDxTdGF0ZT47XG5cdC8qKlxuXHQgKiBFcXVpdmFsZW5jZSB0byBnZXQoKVxuXHQgKi9cblx0Z2V0IHNuYXBzaG90KCk6IFN0YXRlO1xufTtcblxuZnVuY3Rpb24gcmVkdWNlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oc3RhdGU6IFN0YXRlIHwgKChwcmV2aW91czogU3RhdGUpID0+IFN0YXRlKSkge1xuXHRyZXR1cm4gKHByZXZpb3VzOiBTdGF0ZSkgPT4ge1xuXHRcdGNvbnN0IHBhcnRpYWwgPSB0eXBlb2Ygc3RhdGUgPT09ICdmdW5jdGlvbicgPyBzdGF0ZShwcmV2aW91cykgOiBzdGF0ZTtcblx0XHRPYmplY3Qua2V5cyhwYXJ0aWFsKS5mb3JFYWNoKChrZXkpID0+IHtcblx0XHRcdGNvbnN0IHR5cGVkS2V5ID0ga2V5IGFzIGtleW9mIFN0YXRlO1xuXHRcdFx0aWYgKHBhcnRpYWxbdHlwZWRLZXldID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNbdHlwZWRLZXldICE9IG51bGwpIHtcblx0XHRcdFx0cGFydGlhbFt0eXBlZEtleV0gPSBwcmV2aW91c1t0eXBlZEtleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHBhcnRpYWw7XG5cdH07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZXI8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KF9zb3VyY2U6IFdyaXRhYmxlU2lnbmFsPFN0YXRlPikge1xuXHRyZXR1cm4gKHN0YXRlOiBTdGF0ZSB8ICgocHJldmlvdXM6IFN0YXRlKSA9PiBTdGF0ZSkpID0+IHtcblx0XHRjb25zdCB1cGRhdGVyID0gcmVkdWNlcihzdGF0ZSk7XG5cdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdF9zb3VyY2UudXBkYXRlKChwcmV2aW91cykgPT4gKHsgLi4ucHJldmlvdXMsIC4uLnVwZGF0ZXIocHJldmlvdXMpIH0pKTtcblx0XHR9KTtcblx0fTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3NvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+KSB7XG5cdHJldHVybiAoc3RhdGU6IFN0YXRlIHwgKChwcmV2aW91czogU3RhdGUpID0+IFN0YXRlKSkgPT4ge1xuXHRcdGNvbnN0IHVwZGF0ZXIgPSByZWR1Y2VyKHN0YXRlKTtcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0X3NvdXJjZS51cGRhdGUoKHByZXZpb3VzKSA9PiAoeyAuLi51cGRhdGVyKHByZXZpb3VzKSwgLi4ucHJldmlvdXMgfSkpO1xuXHRcdH0pO1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXR0ZXI8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KF9zb3VyY2U6IFdyaXRhYmxlU2lnbmFsPFN0YXRlPikge1xuXHRyZXR1cm4gKC4uLmtleXM6IHN0cmluZ1tdKSA9PiB7XG5cdFx0Y29uc3Qgcm9vdCA9IHVudHJhY2tlZChfc291cmNlKTtcblx0XHRpZiAoa2V5cy5sZW5ndGggPT09IDApIHJldHVybiByb290O1xuXHRcdHJldHVybiBrZXlzLnJlZHVjZSgodmFsdWUsIGtleSkgPT4gKHZhbHVlIGFzIE5ndEFueVJlY29yZClba2V5XSwgcm9vdCk7XG5cdH07XG59XG5cbmZ1bmN0aW9uIHNlbGVjdG9yPFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihfc3RhdGU6IFNpZ25hbDxTdGF0ZT4sIGNvbXB1dGVkQ2FjaGU6IE1hcDxzdHJpbmcsIFNpZ25hbDxhbnk+Pikge1xuXHRyZXR1cm4gKC4uLmtleXNBbmRPcHRpb25zOiBhbnlbXSkgPT4ge1xuXHRcdGlmIChrZXlzQW5kT3B0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiBfc3RhdGU7XG5cdFx0aWYgKGtleXNBbmRPcHRpb25zLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2Yga2V5c0FuZE9wdGlvbnNbMF0gPT09ICdvYmplY3QnKSB7XG5cdFx0XHRjb25zdCBjYWNoZWRLZXkgPSBTVE9SRV9DT01QVVRFRF9LRVkuY29uY2F0KEpTT04uc3RyaW5naWZ5KGtleXNBbmRPcHRpb25zWzBdKSk7XG5cdFx0XHRpZiAoIWNvbXB1dGVkQ2FjaGUuaGFzKGNhY2hlZEtleSkpIHtcblx0XHRcdFx0Y29tcHV0ZWRDYWNoZS5zZXQoY2FjaGVkS2V5LCBjb21wdXRlZChfc3RhdGUsIGtleXNBbmRPcHRpb25zIGFzIENyZWF0ZUNvbXB1dGVkT3B0aW9uczxvYmplY3Q+KSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29tcHV0ZWRDYWNoZS5nZXQoY2FjaGVkS2V5KSE7XG5cdFx0fVxuXHRcdGNvbnN0IFtrZXlzLCBvcHRpb25zXSA9IHBhcnNlU3RvcmVPcHRpb25zKGtleXNBbmRPcHRpb25zKTtcblx0XHRjb25zdCBqb2luZWRLZXlzID0ga2V5cy5qb2luKCctJyk7XG5cdFx0Y29uc3QgY2FjaGVkS2V5cyA9IGpvaW5lZEtleXMuY29uY2F0KEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcblxuXHRcdGlmICghY29tcHV0ZWRDYWNoZS5oYXMoY2FjaGVkS2V5cykpIHtcblx0XHRcdGNvbXB1dGVkQ2FjaGUuc2V0KFxuXHRcdFx0XHRjYWNoZWRLZXlzLFxuXHRcdFx0XHRjb21wdXRlZCgoKSA9PiBrZXlzLnJlZHVjZSgodmFsdWUsIGtleSkgPT4gKHZhbHVlIGFzIE5ndEFueVJlY29yZClba2V5XSwgX3N0YXRlKCkpLCBvcHRpb25zKSxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBjb21wdXRlZENhY2hlLmdldChjYWNoZWRLZXlzKSE7XG5cdH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlU3RvcmVPcHRpb25zKGtleXNBbmRPcHRpb25zOiBhbnlbXSk6IFtzdHJpbmdbXSwgQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPGFueT4/XSB7XG5cdGlmICh0eXBlb2Yga2V5c0FuZE9wdGlvbnMuYXQoLTEpID09PSAnb2JqZWN0Jykge1xuXHRcdHJldHVybiBba2V5c0FuZE9wdGlvbnMuc2xpY2UoMCwgLTEpLCBrZXlzQW5kT3B0aW9ucy5hdCgtMSldO1xuXHR9XG5cblx0cmV0dXJuIFtrZXlzQW5kT3B0aW9ucywgeyBlcXVhbDogT2JqZWN0LmlzIH1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuXHRpbml0aWFsU3RhdGU6XG5cdFx0fCBQYXJ0aWFsPFN0YXRlPlxuXHRcdHwgKChzdG9yZUFwaTogUGljazxOZ3RTaWduYWxTdG9yZTxTdGF0ZT4sICdnZXQnIHwgJ3VwZGF0ZScgfCAncGF0Y2gnIHwgJ3NlbGVjdCc+KSA9PiBQYXJ0aWFsPFN0YXRlPikgPSB7fSxcblx0b3B0aW9ucz86IENyZWF0ZVNpZ25hbE9wdGlvbnM8U3RhdGU+LFxuKTogTmd0U2lnbmFsU3RvcmU8U3RhdGU+IHtcblx0bGV0IHNvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+O1xuXHRsZXQgdXBkYXRlOiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT5bJ3VwZGF0ZSddO1xuXHRsZXQgZ2V0OiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT5bJ2dldCddO1xuXHRsZXQgcGF0Y2g6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsncGF0Y2gnXTtcblx0bGV0IHNlbGVjdDogTmd0U2lnbmFsU3RvcmU8U3RhdGU+WydzZWxlY3QnXTtcblx0bGV0IHN0YXRlOiBTaWduYWw8U3RhdGU+O1xuXG5cdGNvbnN0IGNvbXB1dGVkQ2FjaGUgPSBuZXcgTWFwKCk7XG5cblx0aWYgKCFvcHRpb25zKSB7XG5cdFx0b3B0aW9ucyA9IHsgZXF1YWw6IE9iamVjdC5pcyB9O1xuXHR9XG5cblx0aWYgKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdmdW5jdGlvbicpIHtcblx0XHRzb3VyY2UgPSBzaWduYWwoe30gYXMgU3RhdGUsIG9wdGlvbnMpO1xuXHRcdHN0YXRlID0gc291cmNlLmFzUmVhZG9ubHkoKTtcblx0XHRnZXQgPSBnZXR0ZXIoc291cmNlKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVyKHNvdXJjZSk7XG5cdFx0cGF0Y2ggPSBwYXRjaGVyKHNvdXJjZSk7XG5cdFx0c2VsZWN0ID0gc2VsZWN0b3Ioc3RhdGUsIGNvbXB1dGVkQ2FjaGUpO1xuXHRcdHNvdXJjZS5zZXQoaW5pdGlhbFN0YXRlKHsgdXBkYXRlLCBnZXQsIHBhdGNoLCBzZWxlY3QgfSkgYXMgU3RhdGUpO1xuXHR9IGVsc2Uge1xuXHRcdHNvdXJjZSA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUsIG9wdGlvbnMpO1xuXHRcdHN0YXRlID0gc291cmNlLmFzUmVhZG9ubHkoKTtcblx0XHRnZXQgPSBnZXR0ZXIoc291cmNlKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVyKHNvdXJjZSk7XG5cdFx0cGF0Y2ggPSBwYXRjaGVyKHNvdXJjZSk7XG5cdFx0c2VsZWN0ID0gc2VsZWN0b3Ioc3RhdGUsIGNvbXB1dGVkQ2FjaGUpO1xuXHR9XG5cblx0Y29uc3Qgc3RvcmUgPSB7IHNlbGVjdCwgZ2V0LCB1cGRhdGUsIHBhdGNoLCBzdGF0ZSB9O1xuXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdG9yZSwgJ3NuYXBzaG90Jywge1xuXHRcdGdldDogdW50cmFja2VkLmJpbmQoe30sIHN0YXRlKSxcblx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuXHRcdGVudW1lcmFibGU6IGZhbHNlLFxuXHR9KTtcblxuXHRyZXR1cm4gc3RvcmUgYXMgTmd0U2lnbmFsU3RvcmU8U3RhdGU+O1xufVxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { is } from './is';
|
|
2
|
+
export function checkNeedsUpdate(value) {
|
|
3
|
+
if (value !== null && is.obj(value) && 'needsUpdate' in value) {
|
|
4
|
+
value['needsUpdate'] = true;
|
|
5
|
+
if ('uniformsNeedUpdate' in value)
|
|
6
|
+
value['uniformsNeedUpdate'] = true;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function checkUpdate(value) {
|
|
10
|
+
if (is.object3D(value))
|
|
11
|
+
value.updateMatrix();
|
|
12
|
+
if (is.camera(value)) {
|
|
13
|
+
if (is.perspectiveCamera(value) || is.orthographicCamera(value))
|
|
14
|
+
value.updateProjectionMatrix();
|
|
15
|
+
value.updateMatrixWorld();
|
|
16
|
+
}
|
|
17
|
+
checkNeedsUpdate(value);
|
|
18
|
+
}
|
|
19
|
+
export function updateCamera(camera, size) {
|
|
20
|
+
if (!camera.manual) {
|
|
21
|
+
if (is.orthographicCamera(camera)) {
|
|
22
|
+
camera.left = size.width / -2;
|
|
23
|
+
camera.right = size.width / 2;
|
|
24
|
+
camera.top = size.height / 2;
|
|
25
|
+
camera.bottom = size.height / -2;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
camera.aspect = size.width / size.height;
|
|
29
|
+
}
|
|
30
|
+
camera.updateProjectionMatrix();
|
|
31
|
+
camera.updateMatrixWorld();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQy9ELEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxvQkFBb0IsSUFBSSxLQUFLO1lBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3pDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFN0MsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztZQUFFLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUF1QixFQUFFLElBQWE7SUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUMsQ0FBQztRQUVELE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzVCLENBQUM7QUFDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOZ3RDYW1lcmFNYW51YWwsIE5ndFNpemUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tOZWVkc1VwZGF0ZSh2YWx1ZTogdW5rbm93bikge1xuXHRpZiAodmFsdWUgIT09IG51bGwgJiYgaXMub2JqKHZhbHVlKSAmJiAnbmVlZHNVcGRhdGUnIGluIHZhbHVlKSB7XG5cdFx0dmFsdWVbJ25lZWRzVXBkYXRlJ10gPSB0cnVlO1xuXHRcdGlmICgndW5pZm9ybXNOZWVkVXBkYXRlJyBpbiB2YWx1ZSkgdmFsdWVbJ3VuaWZvcm1zTmVlZFVwZGF0ZSddID0gdHJ1ZTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tVcGRhdGUodmFsdWU6IHVua25vd24pIHtcblx0aWYgKGlzLm9iamVjdDNEKHZhbHVlKSkgdmFsdWUudXBkYXRlTWF0cml4KCk7XG5cblx0aWYgKGlzLmNhbWVyYSh2YWx1ZSkpIHtcblx0XHRpZiAoaXMucGVyc3BlY3RpdmVDYW1lcmEodmFsdWUpIHx8IGlzLm9ydGhvZ3JhcGhpY0NhbWVyYSh2YWx1ZSkpIHZhbHVlLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcblx0XHR2YWx1ZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuXHR9XG5cblx0Y2hlY2tOZWVkc1VwZGF0ZSh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDYW1lcmEoY2FtZXJhOiBOZ3RDYW1lcmFNYW51YWwsIHNpemU6IE5ndFNpemUpIHtcblx0aWYgKCFjYW1lcmEubWFudWFsKSB7XG5cdFx0aWYgKGlzLm9ydGhvZ3JhcGhpY0NhbWVyYShjYW1lcmEpKSB7XG5cdFx0XHRjYW1lcmEubGVmdCA9IHNpemUud2lkdGggLyAtMjtcblx0XHRcdGNhbWVyYS5yaWdodCA9IHNpemUud2lkdGggLyAyO1xuXHRcdFx0Y2FtZXJhLnRvcCA9IHNpemUuaGVpZ2h0IC8gMjtcblx0XHRcdGNhbWVyYS5ib3R0b20gPSBzaXplLmhlaWdodCAvIC0yO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjYW1lcmEuYXNwZWN0ID0gc2l6ZS53aWR0aCAvIHNpemUuaGVpZ2h0O1xuXHRcdH1cblxuXHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0Y2FtZXJhLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XG5cdH1cbn1cbiJdfQ==
|