angular-three 2.0.0-beta.31 → 2.0.0-beta.310

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.
Files changed (152) hide show
  1. package/README.md +221 -4
  2. package/esm2022/index.mjs +13 -13
  3. package/esm2022/lib/canvas.mjs +128 -200
  4. package/esm2022/lib/directives/args.mjs +46 -20
  5. package/esm2022/lib/directives/selection.mjs +65 -0
  6. package/esm2022/lib/dom/events.mjs +2 -2
  7. package/esm2022/lib/events.mjs +33 -31
  8. package/esm2022/lib/html.mjs +40 -0
  9. package/esm2022/lib/instance.mjs +43 -36
  10. package/esm2022/lib/loader.mjs +62 -31
  11. package/esm2022/lib/loop.mjs +28 -25
  12. package/esm2022/lib/pipes/hexify.mjs +67 -0
  13. package/esm2022/lib/portal.mjs +173 -193
  14. package/esm2022/lib/renderer/catalogue.mjs +2 -2
  15. package/esm2022/lib/renderer/constants.mjs +5 -6
  16. package/esm2022/lib/renderer/index.mjs +387 -234
  17. package/esm2022/lib/renderer/state.mjs +49 -0
  18. package/esm2022/lib/renderer/utils.mjs +107 -95
  19. package/esm2022/lib/roots.mjs +85 -61
  20. package/esm2022/lib/routed-scene.mjs +6 -7
  21. package/esm2022/lib/store.mjs +170 -194
  22. package/esm2022/lib/three-types.mjs +2 -2
  23. package/esm2022/lib/types.mjs +1 -1
  24. package/esm2022/lib/utils/apply-props.mjs +24 -28
  25. package/esm2022/lib/utils/attach.mjs +12 -9
  26. package/esm2022/lib/utils/before-render.mjs +12 -0
  27. package/esm2022/lib/utils/is.mjs +6 -5
  28. package/esm2022/lib/utils/make.mjs +19 -17
  29. package/esm2022/lib/utils/non-nullish.mjs +7 -0
  30. package/esm2022/lib/utils/object-events.mjs +92 -0
  31. package/esm2022/lib/utils/parameters.mjs +70 -0
  32. package/esm2022/lib/utils/resolve-ref.mjs +8 -0
  33. package/esm2022/lib/utils/signal-store.mjs +52 -58
  34. package/esm2022/lib/utils/update.mjs +8 -4
  35. package/esm2022/testing/angular-three-testing.mjs +5 -0
  36. package/esm2022/testing/index.mjs +3 -0
  37. package/esm2022/testing/lib/test-bed.mjs +130 -0
  38. package/esm2022/testing/lib/test-canvas.mjs +45 -0
  39. package/esm2022/testing/lib/utils/mock-canvas.mjs +37 -0
  40. package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +752 -0
  41. package/fesm2022/angular-three-testing.mjs +966 -0
  42. package/fesm2022/angular-three-testing.mjs.map +1 -0
  43. package/fesm2022/angular-three.mjs +2506 -2539
  44. package/fesm2022/angular-three.mjs.map +1 -1
  45. package/index.d.ts +14 -12
  46. package/lib/canvas.d.ts +366 -96
  47. package/lib/directives/args.d.ts +14 -7
  48. package/lib/directives/selection.d.ts +17 -0
  49. package/lib/dom/events.d.ts +2 -3
  50. package/lib/events.d.ts +4 -80
  51. package/lib/html.d.ts +17 -0
  52. package/lib/instance.d.ts +3 -35
  53. package/lib/loader.d.ts +18 -6
  54. package/lib/loop.d.ts +11 -59
  55. package/lib/pipes/hexify.d.ts +20 -0
  56. package/lib/portal.d.ts +54 -48
  57. package/lib/renderer/catalogue.d.ts +7 -3
  58. package/lib/renderer/constants.d.ts +4 -5
  59. package/lib/renderer/index.d.ts +64 -4
  60. package/lib/renderer/state.d.ts +24 -0
  61. package/lib/renderer/utils.d.ts +9 -27
  62. package/lib/roots.d.ts +9 -7
  63. package/lib/store.d.ts +13 -141
  64. package/lib/three-types.d.ts +500 -147
  65. package/lib/types.d.ts +291 -0
  66. package/lib/utils/apply-props.d.ts +1 -3
  67. package/lib/utils/attach.d.ts +3 -5
  68. package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
  69. package/lib/utils/is.d.ts +13 -14
  70. package/lib/utils/make.d.ts +7 -13
  71. package/lib/utils/non-nullish.d.ts +4 -0
  72. package/lib/utils/object-events.d.ts +34 -0
  73. package/lib/utils/parameters.d.ts +20 -0
  74. package/lib/utils/resolve-ref.d.ts +2 -0
  75. package/lib/utils/signal-store.d.ts +13 -4
  76. package/lib/utils/update.d.ts +1 -1
  77. package/metadata.json +1 -1
  78. package/package.json +40 -24
  79. package/plugin/generators.json +8 -30
  80. package/plugin/package.json +3 -22
  81. package/plugin/src/generators/add-soba/compat.js.map +1 -0
  82. package/plugin/src/generators/add-soba/generator.d.ts +3 -0
  83. package/plugin/src/generators/add-soba/generator.js +78 -0
  84. package/plugin/src/generators/add-soba/generator.js.map +1 -0
  85. package/plugin/src/generators/add-soba/schema.json +4 -0
  86. package/plugin/src/generators/init/compat.d.ts +1 -3
  87. package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +18 -7
  88. package/plugin/src/generators/init/generator.d.ts +5 -5
  89. package/plugin/src/generators/init/generator.js +100 -106
  90. package/plugin/src/generators/init/generator.js.map +1 -1
  91. package/plugin/src/generators/init/schema.json +8 -12
  92. package/plugin/src/generators/utils.js +4 -3
  93. package/plugin/src/generators/utils.js.map +1 -1
  94. package/plugin/src/generators/version.d.ts +17 -0
  95. package/plugin/src/generators/version.js +21 -0
  96. package/plugin/src/generators/version.js.map +1 -0
  97. package/plugin/src/index.d.ts +0 -3
  98. package/plugin/src/index.js +0 -9
  99. package/plugin/src/index.js.map +1 -1
  100. package/testing/README.md +3 -0
  101. package/testing/index.d.ts +2 -0
  102. package/testing/lib/test-bed.d.ts +38 -0
  103. package/testing/lib/test-canvas.d.ts +11 -0
  104. package/testing/lib/utils/mock-canvas.d.ts +5 -0
  105. package/testing/lib/utils/web-gl-rendering-context.d.ts +16 -0
  106. package/testing/package.json +3 -0
  107. package/web-types.json +1 -1
  108. package/esm2022/lib/before-render.mjs +0 -13
  109. package/esm2022/lib/directives/common.mjs +0 -41
  110. package/esm2022/lib/directives/key.mjs +0 -29
  111. package/esm2022/lib/directives/parent.mjs +0 -35
  112. package/esm2022/lib/ref.mjs +0 -48
  113. package/esm2022/lib/renderer/store.mjs +0 -408
  114. package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
  115. package/lib/directives/common.d.ts +0 -15
  116. package/lib/directives/key.d.ts +0 -10
  117. package/lib/directives/parent.d.ts +0 -11
  118. package/lib/ref.d.ts +0 -8
  119. package/lib/renderer/store.d.ts +0 -67
  120. package/lib/utils/safe-detect-changes.d.ts +0 -2
  121. package/plugin/migrations.json +0 -16
  122. package/plugin/src/generators/init/files/experience/experience.component.html__tmpl__ +0 -4
  123. package/plugin/src/generators/init-cannon/compat.js.map +0 -1
  124. package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
  125. package/plugin/src/generators/init-cannon/generator.js +0 -23
  126. package/plugin/src/generators/init-cannon/generator.js.map +0 -1
  127. package/plugin/src/generators/init-cannon/schema.json +0 -6
  128. package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
  129. package/plugin/src/generators/init-postprocessing/compat.js +0 -6
  130. package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
  131. package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
  132. package/plugin/src/generators/init-postprocessing/generator.js +0 -21
  133. package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
  134. package/plugin/src/generators/init-postprocessing/schema.json +0 -6
  135. package/plugin/src/generators/init-soba/compat.d.ts +0 -2
  136. package/plugin/src/generators/init-soba/compat.js +0 -6
  137. package/plugin/src/generators/init-soba/compat.js.map +0 -1
  138. package/plugin/src/generators/init-soba/generator.d.ts +0 -2
  139. package/plugin/src/generators/init-soba/generator.js +0 -27
  140. package/plugin/src/generators/init-soba/generator.js.map +0 -1
  141. package/plugin/src/generators/init-soba/schema.json +0 -6
  142. package/plugin/src/generators/versions.d.ts +0 -13
  143. package/plugin/src/generators/versions.js +0 -17
  144. package/plugin/src/generators/versions.js.map +0 -1
  145. package/plugin/src/migrations/migrate-to-ngxtension/compat.d.ts +0 -2
  146. package/plugin/src/migrations/migrate-to-ngxtension/compat.js +0 -6
  147. package/plugin/src/migrations/migrate-to-ngxtension/compat.js.map +0 -1
  148. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.d.ts +0 -2
  149. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js +0 -41
  150. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js.map +0 -1
  151. /package/plugin/src/generators/{init-cannon → add-soba}/compat.d.ts +0 -0
  152. /package/plugin/src/generators/{init-cannon → add-soba}/compat.js +0 -0
@@ -1,10 +1,11 @@
1
- import * as THREE from 'three';
1
+ import { MathUtils, OrthographicCamera, PerspectiveCamera, WebGLRenderer } from 'three';
2
+ import { is } from './is';
2
3
  const idCache = {};
3
4
  export function makeId(event) {
4
5
  if (event) {
5
6
  return (event.eventObject || event.object).uuid + '/' + event.index + event.instanceId;
6
7
  }
7
- const newId = THREE.MathUtils.generateUUID();
8
+ const newId = MathUtils.generateUUID();
8
9
  // ensure not already used
9
10
  if (!idCache[newId]) {
10
11
  idCache[newId] = true;
@@ -13,26 +14,28 @@ export function makeId(event) {
13
14
  return makeId();
14
15
  }
15
16
  export function makeDpr(dpr, window) {
16
- const target = window?.devicePixelRatio || 1;
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;
17
20
  return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;
18
21
  }
19
- export function makeDefaultCamera(isOrthographic, size) {
20
- if (isOrthographic)
21
- return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
22
- return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
23
- }
24
- export function makeDefaultRenderer(glOptions, canvasElement) {
25
- const customRenderer = (typeof glOptions === 'function' ? glOptions(canvasElement) : glOptions);
26
- if (customRenderer?.render != null)
22
+ export function makeRendererInstance(glOptions, canvas) {
23
+ const customRenderer = (typeof glOptions === 'function' ? glOptions(canvas) : glOptions);
24
+ if (is.renderer(customRenderer))
27
25
  return customRenderer;
28
- return new THREE.WebGLRenderer({
26
+ return new WebGLRenderer({
29
27
  powerPreference: 'high-performance',
30
- canvas: canvasElement,
28
+ canvas: canvas,
31
29
  antialias: true,
32
30
  alpha: true,
33
- ...(glOptions || {}),
31
+ ...glOptions,
34
32
  });
35
33
  }
34
+ export function makeCameraInstance(isOrthographic, size) {
35
+ if (isOrthographic)
36
+ return new OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
37
+ return new PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
38
+ }
36
39
  export function makeObjectGraph(object) {
37
40
  const data = { nodes: {}, materials: {} };
38
41
  if (object) {
@@ -40,11 +43,10 @@ export function makeObjectGraph(object) {
40
43
  if (child.name)
41
44
  data.nodes[child.name] = child;
42
45
  if ('material' in child && !data.materials[child.material.name]) {
43
- data.materials[child.material.name] = child
44
- .material;
46
+ data.materials[child.material.name] = child.material;
45
47
  }
46
48
  });
47
49
  }
48
50
  return data;
49
51
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFLL0IsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztBQUMxRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQXVCO0lBQzdDLElBQUksS0FBSyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO0tBQ3ZGO0lBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0tBQ2I7SUFDRCxPQUFPLE1BQU0sRUFBRSxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQVcsRUFBRSxNQUFlO0lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7SUFDN0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxjQUF1QixFQUFFLElBQWE7SUFDdkUsSUFBSSxjQUFjO1FBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUF1QixFQUFFLGFBQWdDO0lBQzVGLE1BQU0sY0FBYyxHQUFHLENBQ3RCLE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9DLENBQUM7SUFFekIsSUFBSSxjQUFjLEVBQUUsTUFBTSxJQUFJLElBQUk7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUUxRCxPQUFPLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUM5QixlQUFlLEVBQUUsa0JBQWtCO1FBQ25DLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7UUFDWCxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztLQUNwQixDQUFDLENBQUM7QUFDSixDQUFDO0FBUUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFzQjtJQUNyRCxNQUFNLElBQUksR0FBaUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUV4RCxJQUFJLE1BQU0sRUFBRTtRQUNYLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0MsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFvQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BHLElBQUksQ0FBQyxTQUFTLENBQUcsS0FBb0IsQ0FBQyxRQUEyQixDQUFDLElBQUksQ0FBQyxHQUFJLEtBQW9CO3FCQUM3RixRQUEwQixDQUFDO2FBQzdCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7S0FDSDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0R0xPcHRpb25zIH0gZnJvbSAnLi4vY2FudmFzJztcbmltcG9ydCB0eXBlIHsgTmd0SW50ZXJzZWN0aW9uIH0gZnJvbSAnLi4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgTmd0RHByLCBOZ3RTaXplIH0gZnJvbSAnLi4vc3RvcmUnO1xuXG5jb25zdCBpZENhY2hlOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB8IHVuZGVmaW5lZCB9ID0ge307XG5leHBvcnQgZnVuY3Rpb24gbWFrZUlkKGV2ZW50PzogTmd0SW50ZXJzZWN0aW9uKTogc3RyaW5nIHtcblx0aWYgKGV2ZW50KSB7XG5cdFx0cmV0dXJuIChldmVudC5ldmVudE9iamVjdCB8fCBldmVudC5vYmplY3QpLnV1aWQgKyAnLycgKyBldmVudC5pbmRleCArIGV2ZW50Lmluc3RhbmNlSWQ7XG5cdH1cblxuXHRjb25zdCBuZXdJZCA9IFRIUkVFLk1hdGhVdGlscy5nZW5lcmF0ZVVVSUQoKTtcblx0Ly8gZW5zdXJlIG5vdCBhbHJlYWR5IHVzZWRcblx0aWYgKCFpZENhY2hlW25ld0lkXSkge1xuXHRcdGlkQ2FjaGVbbmV3SWRdID0gdHJ1ZTtcblx0XHRyZXR1cm4gbmV3SWQ7XG5cdH1cblx0cmV0dXJuIG1ha2VJZCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZURwcihkcHI6IE5ndERwciwgd2luZG93PzogV2luZG93KSB7XG5cdGNvbnN0IHRhcmdldCA9IHdpbmRvdz8uZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheShkcHIpID8gTWF0aC5taW4oTWF0aC5tYXgoZHByWzBdLCB0YXJnZXQpLCBkcHJbMV0pIDogZHByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZURlZmF1bHRDYW1lcmEoaXNPcnRob2dyYXBoaWM6IGJvb2xlYW4sIHNpemU6IE5ndFNpemUpIHtcblx0aWYgKGlzT3J0aG9ncmFwaGljKSByZXR1cm4gbmV3IFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYSgwLCAwLCAwLCAwLCAwLjEsIDEwMDApO1xuXHRyZXR1cm4gbmV3IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhKDc1LCBzaXplLndpZHRoIC8gc2l6ZS5oZWlnaHQsIDAuMSwgMTAwMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRGVmYXVsdFJlbmRlcmVyKGdsT3B0aW9uczogTmd0R0xPcHRpb25zLCBjYW52YXNFbGVtZW50OiBIVE1MQ2FudmFzRWxlbWVudCk6IFRIUkVFLldlYkdMUmVuZGVyZXIge1xuXHRjb25zdCBjdXN0b21SZW5kZXJlciA9IChcblx0XHR0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nID8gZ2xPcHRpb25zKGNhbnZhc0VsZW1lbnQpIDogZ2xPcHRpb25zXG5cdCkgYXMgVEhSRUUuV2ViR0xSZW5kZXJlcjtcblxuXHRpZiAoY3VzdG9tUmVuZGVyZXI/LnJlbmRlciAhPSBudWxsKSByZXR1cm4gY3VzdG9tUmVuZGVyZXI7XG5cblx0cmV0dXJuIG5ldyBUSFJFRS5XZWJHTFJlbmRlcmVyKHtcblx0XHRwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcblx0XHRjYW52YXM6IGNhbnZhc0VsZW1lbnQsXG5cdFx0YW50aWFsaWFzOiB0cnVlLFxuXHRcdGFscGhhOiB0cnVlLFxuXHRcdC4uLihnbE9wdGlvbnMgfHwge30pLFxuXHR9KTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0TWFwID0ge1xuXHRub2RlczogeyBbbmFtZTogc3RyaW5nXTogVEhSRUUuT2JqZWN0M0QgfTtcblx0bWF0ZXJpYWxzOiB7IFtuYW1lOiBzdHJpbmddOiBUSFJFRS5NYXRlcmlhbCB9O1xuXHRba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZU9iamVjdEdyYXBoKG9iamVjdDogVEhSRUUuT2JqZWN0M0QpOiBOZ3RPYmplY3RNYXAge1xuXHRjb25zdCBkYXRhOiBOZ3RPYmplY3RNYXAgPSB7IG5vZGVzOiB7fSwgbWF0ZXJpYWxzOiB7fSB9O1xuXG5cdGlmIChvYmplY3QpIHtcblx0XHRvYmplY3QudHJhdmVyc2UoKGNoaWxkOiBUSFJFRS5PYmplY3QzRCkgPT4ge1xuXHRcdFx0aWYgKGNoaWxkLm5hbWUpIGRhdGEubm9kZXNbY2hpbGQubmFtZV0gPSBjaGlsZDtcblx0XHRcdGlmICgnbWF0ZXJpYWwnIGluIGNoaWxkICYmICFkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSkge1xuXHRcdFx0XHRkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSA9IChjaGlsZCBhcyBUSFJFRS5NZXNoKVxuXHRcdFx0XHRcdC5tYXRlcmlhbCBhcyBUSFJFRS5NYXRlcmlhbDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZGF0YTtcbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLFNBQVMsRUFBa0Isa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWxILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztBQUMxRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQXVCO0lBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDeEYsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBZTtJQUNuRCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNuQyxTQUF1QixFQUN2QixNQUFlO0lBRWYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFPLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFrQixDQUFDO0lBQzFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUN2RCxPQUFPLElBQUksYUFBYSxDQUFDO1FBQ3hCLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTSxFQUFFLE1BQU07UUFDZCxTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxJQUFJO1FBQ1gsR0FBRyxTQUFTO0tBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxjQUF1QixFQUFFLElBQWE7SUFDeEUsSUFBSSxjQUFjO1FBQUUsT0FBTyxJQUFJLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekUsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFRRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWdCO0lBQy9DLE1BQU0sSUFBSSxHQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRXhELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0MsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFjLENBQUMsUUFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6RixJQUFJLENBQUMsU0FBUyxDQUFHLEtBQWMsQ0FBQyxRQUFxQixDQUFDLElBQUksQ0FBQyxHQUFJLEtBQWMsQ0FBQyxRQUFvQixDQUFDO1lBQ3BHLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRlcmlhbCwgTWF0aFV0aWxzLCBNZXNoLCBPYmplY3QzRCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBQZXJzcGVjdGl2ZUNhbWVyYSwgV2ViR0xSZW5kZXJlciB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndENhbnZhc0VsZW1lbnQsIE5ndERwciwgTmd0R0xPcHRpb25zLCBOZ3RJbnRlcnNlY3Rpb24sIE5ndFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5jb25zdCBpZENhY2hlOiB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiB8IHVuZGVmaW5lZCB9ID0ge307XG5leHBvcnQgZnVuY3Rpb24gbWFrZUlkKGV2ZW50PzogTmd0SW50ZXJzZWN0aW9uKTogc3RyaW5nIHtcblx0aWYgKGV2ZW50KSB7XG5cdFx0cmV0dXJuIChldmVudC5ldmVudE9iamVjdCB8fCBldmVudC5vYmplY3QpLnV1aWQgKyAnLycgKyBldmVudC5pbmRleCArIGV2ZW50Lmluc3RhbmNlSWQ7XG5cdH1cblxuXHRjb25zdCBuZXdJZCA9IE1hdGhVdGlscy5nZW5lcmF0ZVVVSUQoKTtcblx0Ly8gZW5zdXJlIG5vdCBhbHJlYWR5IHVzZWRcblx0aWYgKCFpZENhY2hlW25ld0lkXSkge1xuXHRcdGlkQ2FjaGVbbmV3SWRdID0gdHJ1ZTtcblx0XHRyZXR1cm4gbmV3SWQ7XG5cdH1cblx0cmV0dXJuIG1ha2VJZCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZURwcihkcHI6IE5ndERwciwgd2luZG93PzogV2luZG93KSB7XG5cdC8vIEVyciBvbiB0aGUgc2lkZSBvZiBwcm9ncmVzcyBieSBhc3N1bWluZyAyeCBkcHIgaWYgd2UgY2FuJ3QgZGV0ZWN0IGl0XG5cdC8vIFRoaXMgd2lsbCBoYXBwZW4gaW4gd29ya2VycyB3aGVyZSB3aW5kb3cgaXMgZGVmaW5lZCBidXQgZHByIGlzbid0LlxuXHRjb25zdCB0YXJnZXQgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/ICh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA/PyAyKSA6IDE7XG5cdHJldHVybiBBcnJheS5pc0FycmF5KGRwcikgPyBNYXRoLm1pbihNYXRoLm1heChkcHJbMF0sIHRhcmdldCksIGRwclsxXSkgOiBkcHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlUmVuZGVyZXJJbnN0YW5jZTxUQ2FudmFzIGV4dGVuZHMgTmd0Q2FudmFzRWxlbWVudD4oXG5cdGdsT3B0aW9uczogTmd0R0xPcHRpb25zLFxuXHRjYW52YXM6IFRDYW52YXMsXG4pOiBXZWJHTFJlbmRlcmVyIHtcblx0Y29uc3QgY3VzdG9tUmVuZGVyZXIgPSAodHlwZW9mIGdsT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyA/IGdsT3B0aW9ucyhjYW52YXMpIDogZ2xPcHRpb25zKSBhcyBXZWJHTFJlbmRlcmVyO1xuXHRpZiAoaXMucmVuZGVyZXIoY3VzdG9tUmVuZGVyZXIpKSByZXR1cm4gY3VzdG9tUmVuZGVyZXI7XG5cdHJldHVybiBuZXcgV2ViR0xSZW5kZXJlcih7XG5cdFx0cG93ZXJQcmVmZXJlbmNlOiAnaGlnaC1wZXJmb3JtYW5jZScsXG5cdFx0Y2FudmFzOiBjYW52YXMsXG5cdFx0YW50aWFsaWFzOiB0cnVlLFxuXHRcdGFscGhhOiB0cnVlLFxuXHRcdC4uLmdsT3B0aW9ucyxcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ2FtZXJhSW5zdGFuY2UoaXNPcnRob2dyYXBoaWM6IGJvb2xlYW4sIHNpemU6IE5ndFNpemUpIHtcblx0aWYgKGlzT3J0aG9ncmFwaGljKSByZXR1cm4gbmV3IE9ydGhvZ3JhcGhpY0NhbWVyYSgwLCAwLCAwLCAwLCAwLjEsIDEwMDApO1xuXHRyZXR1cm4gbmV3IFBlcnNwZWN0aXZlQ2FtZXJhKDc1LCBzaXplLndpZHRoIC8gc2l6ZS5oZWlnaHQsIDAuMSwgMTAwMCk7XG59XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdE1hcCA9IHtcblx0bm9kZXM6IFJlY29yZDxzdHJpbmcsIE9iamVjdDNEPGFueT4+O1xuXHRtYXRlcmlhbHM6IFJlY29yZDxzdHJpbmcsIE1hdGVyaWFsPjtcblx0W2tleTogc3RyaW5nXTogYW55O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VPYmplY3RHcmFwaChvYmplY3Q6IE9iamVjdDNEKTogTmd0T2JqZWN0TWFwIHtcblx0Y29uc3QgZGF0YTogTmd0T2JqZWN0TWFwID0geyBub2Rlczoge30sIG1hdGVyaWFsczoge30gfTtcblxuXHRpZiAob2JqZWN0KSB7XG5cdFx0b2JqZWN0LnRyYXZlcnNlKChjaGlsZDogT2JqZWN0M0QpID0+IHtcblx0XHRcdGlmIChjaGlsZC5uYW1lKSBkYXRhLm5vZGVzW2NoaWxkLm5hbWVdID0gY2hpbGQ7XG5cdFx0XHRpZiAoJ21hdGVyaWFsJyBpbiBjaGlsZCAmJiAhZGF0YS5tYXRlcmlhbHNbKChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCBhcyBNYXRlcmlhbCkubmFtZV0pIHtcblx0XHRcdFx0ZGF0YS5tYXRlcmlhbHNbKChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCBhcyBNYXRlcmlhbCkubmFtZV0gPSAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgYXMgTWF0ZXJpYWw7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGRhdGE7XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { toObservable } from '@angular/core/rxjs-interop';
2
+ import { assertInjector } from 'ngxtension/assert-injector';
3
+ import { map } from 'rxjs';
4
+ export function injectNonNullish$(sig, { injector } = {}) {
5
+ return assertInjector(injectNonNullish$, injector, () => toObservable(sig).pipe(map((val) => val != null)));
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uLW51bGxpc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9ub24tbnVsbGlzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0IsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQW9CLEVBQUUsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFDakcsT0FBTyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tm9uTnVsbGlzaCQoc2lnOiBTaWduYWw8dW5rbm93bj4sIHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSkge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0Tm9uTnVsbGlzaCQsIGluamVjdG9yLCAoKSA9PiB0b09ic2VydmFibGUoc2lnKS5waXBlKG1hcCgodmFsKSA9PiB2YWwgIT0gbnVsbCkpKTtcbn1cbiJdfQ==
@@ -0,0 +1,92 @@
1
+ import { afterNextRender, DestroyRef, Directive, inject, Injector, model, output, Renderer2, } from '@angular/core';
2
+ import { assertInjector } from 'ngxtension/assert-injector';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { resolveRef } from './resolve-ref';
5
+ import * as i0 from "@angular/core";
6
+ export class NgtObjectEvents {
7
+ constructor() {
8
+ this.click = output();
9
+ this.dblclick = output();
10
+ this.contextmenu = output();
11
+ this.pointerup = output();
12
+ this.pointerdown = output();
13
+ this.pointerover = output();
14
+ this.pointerout = output();
15
+ this.pointerenter = output();
16
+ this.pointerleave = output();
17
+ this.pointermove = output();
18
+ this.pointermissed = output();
19
+ this.pointercancel = output();
20
+ this.wheel = output();
21
+ // NOTE: we use model here to allow for the hostDirective host to set this value
22
+ this.ngtObjectEvents = model();
23
+ const injector = inject(Injector);
24
+ afterNextRender(() => {
25
+ injectObjectEvents(this.ngtObjectEvents, {
26
+ click: (event) => this.click.emit(event),
27
+ dblclick: (event) => this.dblclick.emit(event),
28
+ contextmenu: (event) => this.contextmenu.emit(event),
29
+ pointerup: (event) => this.pointerup.emit(event),
30
+ pointerdown: (event) => this.pointerdown.emit(event),
31
+ pointerover: (event) => this.pointerover.emit(event),
32
+ pointerout: (event) => this.pointerout.emit(event),
33
+ pointerenter: (event) => this.pointerenter.emit(event),
34
+ pointerleave: (event) => this.pointerleave.emit(event),
35
+ pointermove: (event) => this.pointermove.emit(event),
36
+ pointermissed: (event) => this.pointermissed.emit(event),
37
+ pointercancel: (event) => this.pointercancel.emit(event),
38
+ wheel: (event) => this.wheel.emit(event),
39
+ }, { injector });
40
+ });
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtObjectEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.3", type: NgtObjectEvents, isStandalone: true, selector: "[ngtObjectEvents]", inputs: { ngtObjectEvents: { classPropertyName: "ngtObjectEvents", publicName: "ngtObjectEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", dblclick: "dblclick", contextmenu: "contextmenu", pointerup: "pointerup", pointerdown: "pointerdown", pointerover: "pointerover", pointerout: "pointerout", pointerenter: "pointerenter", pointerleave: "pointerleave", pointermove: "pointermove", pointermissed: "pointermissed", pointercancel: "pointercancel", wheel: "wheel", ngtObjectEvents: "ngtObjectEventsChange" }, ngImport: i0 }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtObjectEvents, decorators: [{
46
+ type: Directive,
47
+ args: [{ standalone: true, selector: '[ngtObjectEvents]' }]
48
+ }], ctorParameters: () => [] });
49
+ export const NgtObjectEventsHostDirective = {
50
+ directive: NgtObjectEvents,
51
+ inputs: ['ngtObjectEvents'],
52
+ outputs: [
53
+ 'click',
54
+ 'dblclick',
55
+ 'contextmenu',
56
+ 'pointerup',
57
+ 'pointerdown',
58
+ 'pointerover',
59
+ 'pointerout',
60
+ 'pointerenter',
61
+ 'pointerleave',
62
+ 'pointermove',
63
+ 'pointermissed',
64
+ 'pointercancel',
65
+ 'wheel',
66
+ ],
67
+ };
68
+ export function injectObjectEvents(target, events, { injector } = {}) {
69
+ return assertInjector(injectObjectEvents, injector, () => {
70
+ const autoEffect = injectAutoEffect();
71
+ const renderer = inject(Renderer2);
72
+ const cleanUps = [];
73
+ afterNextRender(() => {
74
+ autoEffect(() => {
75
+ const targetRef = resolveRef(target());
76
+ if (!targetRef)
77
+ return;
78
+ Object.entries(events).forEach(([eventName, eventHandler]) => {
79
+ cleanUps.push(renderer.listen(targetRef, eventName, eventHandler));
80
+ });
81
+ return () => {
82
+ cleanUps.forEach((cleanUp) => cleanUp());
83
+ };
84
+ });
85
+ });
86
+ inject(DestroyRef).onDestroy(() => {
87
+ cleanUps.forEach((cleanUp) => cleanUp());
88
+ });
89
+ return cleanUps;
90
+ });
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWV2ZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUVULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxlQUFlO0lBa0IzQjtRQWpCQSxVQUFLLEdBQUcsTUFBTSxFQUE2QixDQUFDO1FBQzVDLGFBQVEsR0FBRyxNQUFNLEVBQTZCLENBQUM7UUFDL0MsZ0JBQVcsR0FBRyxNQUFNLEVBQTZCLENBQUM7UUFDbEQsY0FBUyxHQUFHLE1BQU0sRUFBK0IsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLE1BQU0sRUFBK0IsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLE1BQU0sRUFBK0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsTUFBTSxFQUErQixDQUFDO1FBQ25ELGlCQUFZLEdBQUcsTUFBTSxFQUErQixDQUFDO1FBQ3JELGlCQUFZLEdBQUcsTUFBTSxFQUErQixDQUFDO1FBQ3JELGdCQUFXLEdBQUcsTUFBTSxFQUErQixDQUFDO1FBQ3BELGtCQUFhLEdBQUcsTUFBTSxFQUE2QixDQUFDO1FBQ3BELGtCQUFhLEdBQUcsTUFBTSxFQUErQixDQUFDO1FBQ3RELFVBQUssR0FBRyxNQUFNLEVBQTZCLENBQUM7UUFFNUMsZ0ZBQWdGO1FBQ2hGLG9CQUFlLEdBQUcsS0FBSyxFQUFzRCxDQUFDO1FBRzdFLE1BQU0s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QUVuQyxNQUFNLFFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBRXZDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFNBQVM7b0JBQUUsT0FBTztnQkFFdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO29CQUM1RCxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxDQUFDLENBQUMsQ0FBQztnQkFFSCxPQUFPLEdBQUcsRUFBRTtvQkFDWCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRtb2RlbCxcblx0b3V0cHV0LFxuXHRSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBPYmplY3QzRCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IHN1cHBvcnRlZEV2ZW50cyB9IGZyb20gJy4uL2RvbS9ldmVudHMnO1xuaW1wb3J0IHsgTmd0RG9tRXZlbnQsIE5ndFRocmVlRXZlbnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyByZXNvbHZlUmVmIH0gZnJvbSAnLi9yZXNvbHZlLXJlZic7XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ1tuZ3RPYmplY3RFdmVudHNdJyB9KVxuZXhwb3J0IGNsYXNzIE5ndE9iamVjdEV2ZW50cyB7XG5cdGNsaWNrID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG5cdGRibGNsaWNrID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG5cdGNvbnRleHRtZW51ID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG5cdHBvaW50ZXJ1cCA9IG91dHB1dDxOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4+KCk7XG5cdHBvaW50ZXJkb3duID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcblx0cG9pbnRlcm92ZXIgPSBvdXRwdXQ8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuXHRwb2ludGVyb3V0ID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcblx0cG9pbnRlcmVudGVyID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcblx0cG9pbnRlcmxlYXZlID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50Pj4oKTtcblx0cG9pbnRlcm1vdmUgPSBvdXRwdXQ8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuXHRwb2ludGVybWlzc2VkID0gb3V0cHV0PE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG5cdHBvaW50ZXJjYW5jZWwgPSBvdXRwdXQ8Tmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+PigpO1xuXHR3aGVlbCA9IG91dHB1dDxOZ3RUaHJlZUV2ZW50PFdoZWVsRXZlbnQ+PigpO1xuXG5cdC8vIE5PVEU6IHdlIHVzZSBtb2RlbCBoZXJlIHRvIGFsbG93IGZvciB0aGUgaG9zdERpcmVjdGl2ZSBob3N0IHRvIHNldCB0aGlzIHZhbHVlXG5cdG5ndE9iamVjdEV2ZW50cyA9IG1vZGVsPEVsZW1lbnRSZWY8T2JqZWN0M0Q+IHwgT2JqZWN0M0QgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRpbmplY3RPYmplY3RFdmVudHMoXG5cdFx0XHRcdHRoaXMubmd0T2JqZWN0RXZlbnRzLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Y2xpY2s6IChldmVudCkgPT4gdGhpcy5jbGljay5lbWl0KGV2ZW50KSxcblx0XHRcdFx0XHRkYmxjbGljazogKGV2ZW50KSA9PiB0aGlzLmRibGNsaWNrLmVtaXQoZXZlbnQpLFxuXHRcdFx0XHRcdGNvbnRleHRtZW51OiAoZXZlbnQpID0+IHRoaXMuY29udGV4dG1lbnUuZW1pdChldmVudCksXG5cdFx0XHRcdFx0cG9pbnRlcnVwOiAoZXZlbnQpID0+IHRoaXMucG9pbnRlcnVwLmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSxcblx0XHRcdFx0XHRwb2ludGVyZG93bjogKGV2ZW50KSA9PiB0aGlzLnBvaW50ZXJkb3duLmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSxcblx0XHRcdFx0XHRwb2ludGVyb3ZlcjogKGV2ZW50KSA9PiB0aGlzLnBvaW50ZXJvdmVyLmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSxcblx0XHRcdFx0XHRwb2ludGVyb3V0OiAoZXZlbnQpID0+IHRoaXMucG9pbnRlcm91dC5lbWl0KGV2ZW50IGFzIE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PiksXG5cdFx0XHRcdFx0cG9pbnRlcmVudGVyOiAoZXZlbnQpID0+IHRoaXMucG9pbnRlcmVudGVyLmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSxcblx0XHRcdFx0XHRwb2ludGVybGVhdmU6IChldmVudCkgPT4gdGhpcy5wb2ludGVybGVhdmUuZW1pdChldmVudCBhcyBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pLFxuXHRcdFx0XHRcdHBvaW50ZXJtb3ZlOiAoZXZlbnQpID0+IHRoaXMucG9pbnRlcm1vdmUuZW1pdChldmVudCBhcyBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pLFxuXHRcdFx0XHRcdHBvaW50ZXJtaXNzZWQ6IChldmVudCkgPT4gdGhpcy5wb2ludGVybWlzc2VkLmVtaXQoZXZlbnQpLFxuXHRcdFx0XHRcdHBvaW50ZXJjYW5jZWw6IChldmVudCkgPT4gdGhpcy5wb2ludGVyY2FuY2VsLmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSxcblx0XHRcdFx0XHR3aGVlbDogKGV2ZW50KSA9PiB0aGlzLndoZWVsLmVtaXQoZXZlbnQgYXMgTmd0VGhyZWVFdmVudDxXaGVlbEV2ZW50PiksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgaW5qZWN0b3IgfSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IE5ndE9iamVjdEV2ZW50c0hvc3REaXJlY3RpdmUgPSB7XG5cdGRpcmVjdGl2ZTogTmd0T2JqZWN0RXZlbnRzLFxuXHRpbnB1dHM6IFsnbmd0T2JqZWN0RXZlbnRzJ10sXG5cdG91dHB1dHM6IFtcblx0XHQnY2xpY2snLFxuXHRcdCdkYmxjbGljaycsXG5cdFx0J2NvbnRleHRtZW51Jyxcblx0XHQncG9pbnRlcnVwJyxcblx0XHQncG9pbnRlcmRvd24nLFxuXHRcdCdwb2ludGVyb3ZlcicsXG5cdFx0J3BvaW50ZXJvdXQnLFxuXHRcdCdwb2ludGVyZW50ZXInLFxuXHRcdCdwb2ludGVybGVhdmUnLFxuXHRcdCdwb2ludGVybW92ZScsXG5cdFx0J3BvaW50ZXJtaXNzZWQnLFxuXHRcdCdwb2ludGVyY2FuY2VsJyxcblx0XHQnd2hlZWwnLFxuXHRdLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9iamVjdEV2ZW50cyhcblx0dGFyZ2V0OiAoKSA9PiBFbGVtZW50UmVmPE9iamVjdDNEPiB8IE9iamVjdDNEIHwgbnVsbCB8IHVuZGVmaW5lZCxcblx0ZXZlbnRzOiB7XG5cdFx0W0sgaW4gKHR5cGVvZiBzdXBwb3J0ZWRFdmVudHMpW251bWJlcl1dPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PE5ndERvbUV2ZW50PikgPT4gdm9pZDtcblx0fSxcblx0eyBpbmplY3RvciB9OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RPYmplY3RFdmVudHMsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRjb25zdCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG5cdFx0Y29uc3QgY2xlYW5VcHM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldFJlZiA9IHJlc29sdmVSZWYodGFyZ2V0KCkpO1xuXHRcdFx0XHRpZiAoIXRhcmdldFJlZikgcmV0dXJuO1xuXG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKGV2ZW50cykuZm9yRWFjaCgoW2V2ZW50TmFtZSwgZXZlbnRIYW5kbGVyXSkgPT4ge1xuXHRcdFx0XHRcdGNsZWFuVXBzLnB1c2gocmVuZGVyZXIubGlzdGVuKHRhcmdldFJlZiwgZXZlbnROYW1lLCBldmVudEhhbmRsZXIpKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRjbGVhblVwcy5mb3JFYWNoKChjbGVhblVwKSA9PiBjbGVhblVwKCkpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGNsZWFuVXBzLmZvckVhY2goKGNsZWFuVXApID0+IGNsZWFuVXAoKSk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gY2xlYW5VcHM7XG5cdH0pO1xufVxuIl19
@@ -0,0 +1,70 @@
1
+ import { computed } from '@angular/core';
2
+ import { Vector2, Vector3, Vector4 } from 'three';
3
+ export function omit(objFn, keysToOmit) {
4
+ return computed(() => {
5
+ const obj = objFn();
6
+ const result = {};
7
+ for (const key of Object.keys(obj)) {
8
+ if (keysToOmit.includes(key))
9
+ continue;
10
+ Object.assign(result, { [key]: obj[key] });
11
+ }
12
+ return result;
13
+ });
14
+ }
15
+ export function pick(objFn, keyOrKeys) {
16
+ if (Array.isArray(keyOrKeys)) {
17
+ return computed(() => {
18
+ const obj = objFn();
19
+ const result = {};
20
+ for (const key of keyOrKeys) {
21
+ if (!(key in obj))
22
+ continue;
23
+ Object.assign(result, { [key]: obj[key] });
24
+ }
25
+ return result;
26
+ });
27
+ }
28
+ return computed(() => objFn()[keyOrKeys]);
29
+ }
30
+ export function merge(objFn, toMerge, mode = 'override') {
31
+ if (mode === 'override')
32
+ return computed(() => ({ ...objFn(), ...toMerge }));
33
+ return computed(() => ({ ...toMerge, ...objFn() }));
34
+ }
35
+ function createVectorComputed(vectorCtor) {
36
+ return ((inputOrOptions, keyOrKeepUndefined, keepUndefined) => {
37
+ if (typeof keyOrKeepUndefined === 'undefined' || typeof keyOrKeepUndefined === 'boolean') {
38
+ keepUndefined = !!keyOrKeepUndefined;
39
+ const input = inputOrOptions;
40
+ return computed(() => {
41
+ const value = input();
42
+ if (keepUndefined && value == undefined)
43
+ return undefined;
44
+ if (typeof value === 'number')
45
+ return new vectorCtor().setScalar(value);
46
+ else if (value)
47
+ return new vectorCtor(...value);
48
+ else
49
+ return new vectorCtor();
50
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
51
+ }
52
+ const options = inputOrOptions;
53
+ const key = keyOrKeepUndefined;
54
+ return computed(() => {
55
+ const value = options()[key];
56
+ if (keepUndefined && value == undefined)
57
+ return undefined;
58
+ if (typeof value === 'number')
59
+ return new vectorCtor().setScalar(value);
60
+ else if (value)
61
+ return new vectorCtor(...value);
62
+ else
63
+ return new vectorCtor();
64
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
65
+ });
66
+ }
67
+ export const vector2 = createVectorComputed(Vector2);
68
+ export const vector3 = createVectorComputed(Vector3);
69
+ export const vector4 = createVectorComputed(Vector4);
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3BhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBZWxELE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBeUIsRUFBRSxVQUFvQjtJQUNuRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsRUFBa0IsQ0FBQztRQUVsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBVUQsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUF5QixFQUFFLFNBQTRCO0lBQzNFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFrQixDQUFDO1lBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FDcEIsS0FBb0IsRUFDcEIsT0FBeUIsRUFDekIsT0FBZ0MsVUFBVTtJQUUxQyxJQUFJLElBQUksS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQWdCRCxTQUFTLG9CQUFvQixDQUE4QyxVQUF5QjtJQUVuRyxPQUFPLENBQUMsQ0FDUCxjQUF5RCxFQUN6RCxrQkFBa0MsRUFDbEMsYUFBdUIsRUFDdEIsRUFBRTtRQUNILElBQUksT0FBTyxrQkFBa0IsS0FBSyxXQUFXLElBQUksT0FBTyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxRixhQUFhLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLGNBQW9DLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQ2QsR0FBRyxFQUFFO2dCQUNKLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUN0QixJQUFJLGFBQWEsSUFBSSxLQUFLLElBQUksU0FBUztvQkFBRSxPQUFPLFNBQVMsQ0FBQztnQkFDMUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO29CQUFFLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ25FLElBQUksS0FBSztvQkFBRSxPQUFPLElBQUksVUFBVSxDQUFDLEdBQUksS0FBYSxDQUFDLENBQUM7O29CQUNwRCxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBUSxDQUFDLEVBQUUsQ0FDckQsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFzQyxDQUFDO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLGtCQUE0QixDQUFDO1FBRXpDLE9BQU8sUUFBUSxDQUNkLEdBQUcsRUFBRTtZQUNKLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksYUFBYSxJQUFJLEtBQUssSUFBSSxTQUFTO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBQzFELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFBRSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNuRSxJQUFJLEtBQUs7Z0JBQUUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFJLEtBQWEsQ0FBQyxDQUFDOztnQkFDcEQsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzlCLENBQUMsRUFDRCxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQVEsQ0FBQyxFQUFFLENBQ3JELENBQUM7SUFDSCxDQUFDLENBQTJDLENBQUM7QUFDOUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIFNpZ25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmVjdG9yMiwgVmVjdG9yMywgVmVjdG9yNCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndFZlY3RvcjIsIE5ndFZlY3RvcjMsIE5ndFZlY3RvcjQgfSBmcm9tICcuLi90aHJlZS10eXBlcyc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgS2V5c09mVHlwZTxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUVHlwZT4gPSBFeGNsdWRlPFxuXHR7XG5cdFx0W0sgaW4ga2V5b2YgVE9iamVjdF06IFRPYmplY3RbS10gZXh0ZW5kcyBUVHlwZSB8IHVuZGVmaW5lZCB8IG51bGwgPyBLIDogbmV2ZXI7XG5cdH1ba2V5b2YgVE9iamVjdF0sXG5cdHVuZGVmaW5lZFxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG9taXQ8VE9iamVjdCBleHRlbmRzIG9iamVjdCwgVEtleXMgZXh0ZW5kcyAoa2V5b2YgVE9iamVjdClbXT4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHRrZXlzVG9PbWl0OiBUS2V5cyxcbik6IFNpZ25hbDxPbWl0PFRPYmplY3QsIFRLZXlzW251bWJlcl0+PjtcbmV4cG9ydCBmdW5jdGlvbiBvbWl0KG9iakZuOiAoKSA9PiBOZ3RBbnlSZWNvcmQsIGtleXNUb09taXQ6IHN0cmluZ1tdKSB7XG5cdHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgb2JqID0gb2JqRm4oKTtcblx0XHRjb25zdCByZXN1bHQgPSB7fSBhcyBOZ3RBbnlSZWNvcmQ7XG5cblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG5cdFx0XHRpZiAoa2V5c1RvT21pdC5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcblx0XHRcdE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7IFtrZXldOiBvYmpba2V5XSB9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2s8VE9iamVjdCBleHRlbmRzIG9iamVjdCwgVEtleSBleHRlbmRzIGtleW9mIFRPYmplY3Q+KFxuXHRvYmpGbjogKCkgPT4gVE9iamVjdCxcblx0a2V5OiBUS2V5LFxuKTogU2lnbmFsPFRPYmplY3RbVEtleV0+O1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2s8VE9iamVjdCBleHRlbmRzIG9iamVjdCwgVEtleXMgZXh0ZW5kcyAoa2V5b2YgVE9iamVjdClbXT4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHRrZXlzOiBUS2V5cyxcbik6IFNpZ25hbDxQaWNrPFRPYmplY3QsIFRLZXlzW251bWJlcl0+PjtcbmV4cG9ydCBmdW5jdGlvbiBwaWNrKG9iakZuOiAoKSA9PiBOZ3RBbnlSZWNvcmQsIGtleU9yS2V5czogc3RyaW5nIHwgc3RyaW5nW10pIHtcblx0aWYgKEFycmF5LmlzQXJyYXkoa2V5T3JLZXlzKSkge1xuXHRcdHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCBvYmogPSBvYmpGbigpO1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0ge30gYXMgTmd0QW55UmVjb3JkO1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2Yga2V5T3JLZXlzKSB7XG5cdFx0XHRcdGlmICghKGtleSBpbiBvYmopKSBjb250aW51ZTtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgW2tleV06IG9ialtrZXldIH0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9KTtcblx0fVxuXG5cdHJldHVybiBjb21wdXRlZCgoKSA9PiBvYmpGbigpW2tleU9yS2V5c10pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2U8VE9iamVjdCBleHRlbmRzIG9iamVjdD4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHR0b01lcmdlOiBQYXJ0aWFsPFRPYmplY3Q+LFxuXHRtb2RlOiAnb3ZlcnJpZGUnIHwgJ2JhY2tmaWxsJyA9ICdvdmVycmlkZScsXG4pIHtcblx0aWYgKG1vZGUgPT09ICdvdmVycmlkZScpIHJldHVybiBjb21wdXRlZCgoKSA9PiAoeyAuLi5vYmpGbigpLCAuLi50b01lcmdlIH0pKTtcblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+ICh7IC4uLnRvTWVyZ2UsIC4uLm9iakZuKCkgfSkpO1xufVxuXG50eXBlIE5ndFZlY3RvckNvbXB1dGVkPFxuXHRUVmVjdG9yIGV4dGVuZHMgVmVjdG9yMiB8IFZlY3RvcjMgfCBWZWN0b3I0LFxuXHRUTmd0VmVjdG9yID0gVFZlY3RvciBleHRlbmRzIFZlY3RvcjIgPyBOZ3RWZWN0b3IyIDogVFZlY3RvciBleHRlbmRzIFZlY3RvcjMgPyBOZ3RWZWN0b3IzIDogTmd0VmVjdG9yNCxcbj4gPSB7XG5cdChpbnB1dDogU2lnbmFsPFROZ3RWZWN0b3I+KTogU2lnbmFsPFRWZWN0b3I+O1xuXHQoaW5wdXQ6IFNpZ25hbDxUTmd0VmVjdG9yPiwga2VlcFVuZGVmaW5lZDogdHJ1ZSk6IFNpZ25hbDxUVmVjdG9yIHwgdW5kZWZpbmVkPjtcblx0PFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IFNpZ25hbDxUT2JqZWN0Piwga2V5OiBLZXlzT2ZUeXBlPFRPYmplY3QsIFROZ3RWZWN0b3I+KTogU2lnbmFsPFRWZWN0b3I+O1xuXHQ8VE9iamVjdCBleHRlbmRzIG9iamVjdD4oXG5cdFx0b3B0aW9uczogU2lnbmFsPFRPYmplY3Q+LFxuXHRcdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBUTmd0VmVjdG9yPixcblx0XHRrZWVwVW5kZWZpbmVkOiB0cnVlLFxuXHQpOiBTaWduYWw8VFZlY3RvciB8IHVuZGVmaW5lZD47XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVWZWN0b3JDb21wdXRlZDxUVmVjdG9yIGV4dGVuZHMgVmVjdG9yMiB8IFZlY3RvcjMgfCBWZWN0b3I0Pih2ZWN0b3JDdG9yOiBUeXBlPFRWZWN0b3I+KSB7XG5cdHR5cGUgVE5ndFZlY3RvciA9IFRWZWN0b3IgZXh0ZW5kcyBWZWN0b3IyID8gTmd0VmVjdG9yMiA6IFRWZWN0b3IgZXh0ZW5kcyBWZWN0b3IzID8gTmd0VmVjdG9yMyA6IE5ndFZlY3RvcjQ7XG5cdHJldHVybiAoKFxuXHRcdGlucHV0T3JPcHRpb25zOiBTaWduYWw8Tmd0QW55UmVjb3JkPiB8IFNpZ25hbDxUTmd0VmVjdG9yPixcblx0XHRrZXlPcktlZXBVbmRlZmluZWQ/OiBzdHJpbmcgfCB0cnVlLFxuXHRcdGtlZXBVbmRlZmluZWQ/OiBib29sZWFuLFxuXHQpID0+IHtcblx0XHRpZiAodHlwZW9mIGtleU9yS2VlcFVuZGVmaW5lZCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIGtleU9yS2VlcFVuZGVmaW5lZCA9PT0gJ2Jvb2xlYW4nKSB7XG5cdFx0XHRrZWVwVW5kZWZpbmVkID0gISFrZXlPcktlZXBVbmRlZmluZWQ7XG5cdFx0XHRjb25zdCBpbnB1dCA9IGlucHV0T3JPcHRpb25zIGFzIFNpZ25hbDxUTmd0VmVjdG9yPjtcblx0XHRcdHJldHVybiBjb21wdXRlZChcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHZhbHVlID0gaW5wdXQoKTtcblx0XHRcdFx0XHRpZiAoa2VlcFVuZGVmaW5lZCAmJiB2YWx1ZSA9PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgdmVjdG9yQ3RvcigpLnNldFNjYWxhcih2YWx1ZSk7XG5cdFx0XHRcdFx0ZWxzZSBpZiAodmFsdWUpIHJldHVybiBuZXcgdmVjdG9yQ3RvciguLi4odmFsdWUgYXMgYW55KSk7XG5cdFx0XHRcdFx0ZWxzZSByZXR1cm4gbmV3IHZlY3RvckN0b3IoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0eyBlcXVhbDogKGEsIGIpID0+ICEhYSAmJiAhIWIgJiYgYS5lcXVhbHMoYiBhcyBhbnkpIH0sXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9wdGlvbnMgPSBpbnB1dE9yT3B0aW9ucyBhcyBTaWduYWw8Tmd0QW55UmVjb3JkPjtcblx0XHRjb25zdCBrZXkgPSBrZXlPcktlZXBVbmRlZmluZWQgYXMgc3RyaW5nO1xuXG5cdFx0cmV0dXJuIGNvbXB1dGVkKFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0XHRpZiAoa2VlcFVuZGVmaW5lZCAmJiB2YWx1ZSA9PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSByZXR1cm4gbmV3IHZlY3RvckN0b3IoKS5zZXRTY2FsYXIodmFsdWUpO1xuXHRcdFx0XHRlbHNlIGlmICh2YWx1ZSkgcmV0dXJuIG5ldyB2ZWN0b3JDdG9yKC4uLih2YWx1ZSBhcyBhbnkpKTtcblx0XHRcdFx0ZWxzZSByZXR1cm4gbmV3IHZlY3RvckN0b3IoKTtcblx0XHRcdH0sXG5cdFx0XHR7IGVxdWFsOiAoYSwgYikgPT4gISFhICYmICEhYiAmJiBhLmVxdWFscyhiIGFzIGFueSkgfSxcblx0XHQpO1xuXHR9KSBhcyBOZ3RWZWN0b3JDb21wdXRlZDxUVmVjdG9yLCBUTmd0VmVjdG9yPjtcbn1cblxuZXhwb3J0IGNvbnN0IHZlY3RvcjIgPSBjcmVhdGVWZWN0b3JDb21wdXRlZChWZWN0b3IyKTtcbmV4cG9ydCBjb25zdCB2ZWN0b3IzID0gY3JlYXRlVmVjdG9yQ29tcHV0ZWQoVmVjdG9yMyk7XG5leHBvcnQgY29uc3QgdmVjdG9yNCA9IGNyZWF0ZVZlY3RvckNvbXB1dGVkKFZlY3RvcjQpO1xuIl19
@@ -0,0 +1,8 @@
1
+ import { is } from './is';
2
+ export function resolveRef(ref) {
3
+ if (is.ref(ref)) {
4
+ return ref.nativeElement;
5
+ }
6
+ return ref;
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9yZXNvbHZlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxVQUFVLENBQVUsR0FBMEQ7SUFDN0YsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJlZjxUT2JqZWN0PihyZWY6IEVsZW1lbnRSZWY8VE9iamVjdCB8IHVuZGVmaW5lZD4gfCBUT2JqZWN0IHwgdW5kZWZpbmVkKTogVE9iamVjdCB8IHVuZGVmaW5lZCB7XG5cdGlmIChpcy5yZWYocmVmKSkge1xuXHRcdHJldHVybiByZWYubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdHJldHVybiByZWY7XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { computed, signal, untracked, } from '@angular/core';
2
2
  const STORE_COMPUTED_KEY = '__ngt_signal_store_computed__';
3
- const setter = (_source) => (state) => {
4
- const updater = (previous) => {
3
+ function reducer(state) {
4
+ return (previous) => {
5
5
  const partial = typeof state === 'function' ? state(previous) : state;
6
6
  Object.keys(partial).forEach((key) => {
7
7
  const typedKey = key;
@@ -11,86 +11,80 @@ const setter = (_source) => (state) => {
11
11
  });
12
12
  return partial;
13
13
  };
14
- untracked(() => {
15
- _source.update((previous) => ({ ...previous, ...updater(previous) }));
16
- });
17
- };
18
- const patcher = (_source) => (state) => {
19
- const updater = (previous) => {
20
- Object.keys(state).forEach((key) => {
21
- const typedKey = key;
22
- if (state[typedKey] === undefined && previous[typedKey] != null) {
23
- state[typedKey] = previous[typedKey];
24
- }
14
+ }
15
+ function updater(_source) {
16
+ return (state) => {
17
+ const updater = reducer(state);
18
+ untracked(() => {
19
+ _source.update((previous) => ({ ...previous, ...updater(previous) }));
25
20
  });
26
- return state;
27
21
  };
28
- untracked(() => {
29
- _source.update((previous) => ({ ...updater(previous), ...previous }));
30
- });
31
- };
32
- const getter = (_source) => (...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
- const selector = (_state, computedCache) => (...keysAndOptions) => {
39
- if (keysAndOptions.length === 0)
40
- return _state;
41
- if (keysAndOptions.length === 1 && typeof keysAndOptions[0] === 'object') {
42
- const cachedKey = STORE_COMPUTED_KEY.concat(JSON.stringify(keysAndOptions[0]));
43
- if (!computedCache.has(cachedKey)) {
44
- computedCache.set(cachedKey, computed(_state, keysAndOptions));
22
+ }
23
+ function getter(_source) {
24
+ return (...keys) => {
25
+ const root = untracked(_source);
26
+ if (keys.length === 0)
27
+ return root;
28
+ return keys.reduce((value, key) => value[key], root);
29
+ };
30
+ }
31
+ function selector(_state, computedCache) {
32
+ return (...keysAndOptions) => {
33
+ if (keysAndOptions.length === 0)
34
+ return _state;
35
+ if (keysAndOptions.length === 1 && typeof keysAndOptions[0] === 'object') {
36
+ const cachedKey = STORE_COMPUTED_KEY.concat(JSON.stringify(keysAndOptions[0]));
37
+ if (!computedCache.has(cachedKey)) {
38
+ computedCache.set(cachedKey, computed(_state, keysAndOptions));
39
+ }
40
+ return computedCache.get(cachedKey);
45
41
  }
46
- return computedCache.get(cachedKey);
47
- }
48
- const [keys, options] = parseStoreOptions(keysAndOptions);
49
- const joinedKeys = keys.join('-');
50
- const cachedKeys = joinedKeys.concat(options ? JSON.stringify(options) : '');
51
- if (!computedCache.has(cachedKeys)) {
52
- computedCache.set(cachedKeys, computed(() => keys.reduce((value, key) => value[key], _state()), options));
42
+ const [keys, options] = parseStoreOptions(keysAndOptions);
43
+ const joinedKeys = keys.join('-');
44
+ const cachedKeys = joinedKeys.concat(JSON.stringify(options));
45
+ if (!computedCache.has(cachedKeys)) {
46
+ computedCache.set(cachedKeys, computed(() => keys.reduce((value, key) => value[key], _state()), options));
47
+ }
48
+ return computedCache.get(cachedKeys);
49
+ };
50
+ }
51
+ function parseStoreOptions(keysAndOptions) {
52
+ if (typeof keysAndOptions.at(-1) === 'object') {
53
+ return [keysAndOptions.slice(0, -1), keysAndOptions.at(-1)];
53
54
  }
54
- return computedCache.get(cachedKeys);
55
- };
55
+ return [keysAndOptions, { equal: Object.is }];
56
+ }
56
57
  export function signalStore(initialState = {}, options) {
57
58
  let source;
58
- let set;
59
+ let update;
59
60
  let get;
60
- let patch;
61
61
  let select;
62
62
  let state;
63
63
  const computedCache = new Map();
64
+ if (!options) {
65
+ options = { equal: Object.is };
66
+ }
64
67
  if (typeof initialState === 'function') {
65
68
  source = signal({}, options);
66
69
  state = source.asReadonly();
67
70
  get = getter(source);
68
- set = setter(source);
69
- patch = patcher(source);
71
+ update = updater(source);
70
72
  select = selector(state, computedCache);
71
- source.set(initialState({ set, get, patch, select }));
73
+ source.set(initialState({ update, get, select }));
72
74
  }
73
75
  else {
74
76
  source = signal(initialState, options);
75
77
  state = source.asReadonly();
76
78
  get = getter(source);
77
- set = setter(source);
78
- patch = patcher(source);
79
+ update = updater(source);
79
80
  select = selector(state, computedCache);
80
81
  }
81
- const store = { select, get, set, patch, state };
82
- // NOTE: internal _snapshot to debug current state
83
- Object.defineProperty(store, '_snapshot', {
84
- get: state,
82
+ const store = { select, get, update, state };
83
+ Object.defineProperty(store, 'snapshot', {
84
+ get: untracked.bind({}, state),
85
85
  configurable: false,
86
86
  enumerable: false,
87
87
  });
88
88
  return store;
89
89
  }
90
- function parseStoreOptions(keysAndOptions) {
91
- if (typeof keysAndOptions.at(-1) === 'object') {
92
- return [keysAndOptions.slice(0, -1), keysAndOptions.at(-1)];
93
- }
94
- return [keysAndOptions];
95
- }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc2lnbmFsLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FLVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDO0FBdUQzRCxNQUFNLE1BQU0sR0FDWCxDQUF1QixPQUE4QixFQUFFLEVBQUUsQ0FDekQsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFlLEVBQUUsRUFBRTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxRQUFRLEdBQUcsR0FBa0IsQ0FBQztZQUNwQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDbEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN2QztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMs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QUFDO1FBQzVCLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQixLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFakQsa0RBQWtEO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtRQUN6QyxHQUFHLEVBQUUsS0FBSztRQUNWLFlBQVksRUFBRSxLQUFLO1FBQ25CLFVBQVUsRUFBRSxLQUFLO0tBQ2pCLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsY0FBcUI7SUFDL0MsSUFBSSxPQUFPLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDOUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUQ7SUFFRCxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGNvbXB1dGVkLFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dHlwZSBDcmVhdGVDb21wdXRlZE9wdGlvbnMsXG5cdHR5cGUgQ3JlYXRlU2lnbmFsT3B0aW9ucyxcblx0dHlwZSBTaWduYWwsXG5cdHR5cGUgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IFNUT1JFX0NPTVBVVEVEX0tFWSA9ICdfX25ndF9zaWduYWxfc3RvcmVfY29tcHV0ZWRfXyc7XG5cbmV4cG9ydCB0eXBlIE5ndFNpZ25hbFN0b3JlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0c2VsZWN0PFxuXHRcdEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSxcblx0XHRLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sXG5cdFx0S2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdLFxuXHRcdEtleTQgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXSxcblx0Pihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0XHRrZXk0OiBLZXk0LFxuXHRcdG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5MV1bS2V5Ml1bS2V5M11bS2V5NF0+LFxuXHQpOiBTaWduYWw8U3RhdGVbS2V5MV1bS2V5Ml1bS2V5M11bS2V5NF0+O1xuXHRzZWxlY3Q8S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLCBLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sIEtleTMgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXT4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdGtleTM6IEtleTMsXG5cdFx0b3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXT4sXG5cdCk6IFNpZ25hbDxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXT47XG5cdHNlbGVjdDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXT4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5MV1bS2V5Ml0+LFxuXHQpOiBTaWduYWw8U3RhdGVbS2V5MV1bS2V5Ml0+O1xuXHRzZWxlY3Q8S2V5IGV4dGVuZHMga2V5b2YgU3RhdGU+KGtleTogS2V5LCBvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlW0tleV0+KTogU2lnbmFsPFN0YXRlW0tleV0+O1xuXHRzZWxlY3Qob3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZT4pOiBTaWduYWw8U3RhdGU+O1xuXG5cdGdldDxcblx0XHRLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsXG5cdFx0S2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdLFxuXHRcdEtleTMgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXSxcblx0XHRLZXk0IGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M10sXG5cdD4oXG5cdFx0a2V5MTogS2V5MSxcblx0XHRrZXkyOiBLZXkyLFxuXHRcdGtleTM6IEtleTMsXG5cdFx0a2V5NDogS2V5NCxcblx0KTogU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M11bS2V5NF07XG5cdGdldDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSwgS2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdPihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0KTogU3RhdGVbS2V5MV1bS2V5Ml1bS2V5M107XG5cdGdldDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXT4oa2V5MTogS2V5MSwga2V5MjogS2V5Mik6IFN0YXRlW0tleTFdW0tleTJdO1xuXHRnZXQ8S2V5IGV4dGVuZHMga2V5b2YgU3RhdGU+KGtleTogS2V5KTogU3RhdGVbS2V5XTtcblx0Z2V0KCk6IFN0YXRlO1xuXG5cdHNldChzdGF0ZTogUGFydGlhbDxTdGF0ZT4gfCAoKHByZXZpb3VzOiBTdGF0ZSkgPT4gUGFydGlhbDxTdGF0ZT4pKTogdm9pZDtcblx0cGF0Y2goc3RhdGU6IFBhcnRpYWw8U3RhdGU+KTogdm9pZDtcblxuXHRzdGF0ZTogU2lnbmFsPFN0YXRlPjtcbn07XG5cbmNvbnN0IHNldHRlciA9XG5cdDxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3NvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+KSA9PlxuXHQoc3RhdGU6IFN0YXRlIHwgKChwcmV2aW91czogU3RhdGUpID0+IFN0YXRlKSkgPT4ge1xuXHRcdGNvbnN0IHVwZGF0ZXIgPSAocHJldmlvdXM6IFN0YXRlKSA9PiB7XG5cdFx0XHRjb25zdCBwYXJ0aWFsID0gdHlwZW9mIHN0YXRlID09PSAnZnVuY3Rpb24nID8gc3RhdGUocHJldmlvdXMpIDogc3RhdGU7XG5cdFx0XHRPYmplY3Qua2V5cyhwYXJ0aWFsKS5mb3JFYWNoKChrZXkpID0+IHtcblx0XHRcdFx0Y29uc3QgdHlwZWRLZXkgPSBrZXkgYXMga2V5b2YgU3RhdGU7XG5cdFx0XHRcdGlmIChwYXJ0aWFsW3R5cGVkS2V5XSA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzW3R5cGVkS2V5XSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0cGFydGlhbFt0eXBlZEtleV0gPSBwcmV2aW91c1t0eXBlZEtleV07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHBhcnRpYWw7XG5cdFx0fTtcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0X3NvdXJjZS51cGRhdGUoKHByZXZpb3VzKSA9PiAoeyAuLi5wcmV2aW91cywgLi4udXBkYXRlcihwcmV2aW91cykgfSkpO1xuXHRcdH0pO1xuXHR9O1xuXG5jb25zdCBwYXRjaGVyID1cblx0PFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihfc291cmNlOiBXcml0YWJsZVNpZ25hbDxTdGF0ZT4pID0+XG5cdChzdGF0ZTogU3RhdGUpID0+IHtcblx0XHRjb25zdCB1cGRhdGVyID0gKHByZXZpb3VzOiBTdGF0ZSkgPT4ge1xuXHRcdFx0T2JqZWN0LmtleXMoc3RhdGUpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdFx0XHRjb25zdCB0eXBlZEtleSA9IGtleSBhcyBrZXlvZiBTdGF0ZTtcblx0XHRcdFx0aWYgKHN0YXRlW3R5cGVkS2V5XSA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzW3R5cGVkS2V5XSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0c3RhdGVbdHlwZWRLZXldID0gcHJldmlvdXNbdHlwZWRLZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBzdGF0ZTtcblx0XHR9O1xuXHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRfc291cmNlLnVwZGF0ZSgocHJldmlvdXMpID0+ICh7IC4uLnVwZGF0ZXIocHJldmlvdXMpLCAuLi5wcmV2aW91cyB9KSk7XG5cdFx0fSk7XG5cdH07XG5cbmNvbnN0IGdldHRlciA9XG5cdDxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3NvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+KSA9PlxuXHQoLi4ua2V5czogc3RyaW5nW10pID0+IHtcblx0XHRjb25zdCByb290ID0gdW50cmFja2VkKF9zb3VyY2UpO1xuXHRcdGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHJvb3Q7XG5cdFx0cmV0dXJuIGtleXMucmVkdWNlKCh2YWx1ZSwga2V5KSA9PiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVtrZXldLCByb290KTtcblx0fTtcblxuY29uc3Qgc2VsZWN0b3IgPVxuXHQ8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KF9zdGF0ZTogU2lnbmFsPFN0YXRlPiwgY29tcHV0ZWRDYWNoZTogTWFwPHN0cmluZywgU2lnbmFsPGFueT4+KSA9PlxuXHQoLi4ua2V5c0FuZE9wdGlvbnM6IGFueVtdKSA9PiB7XG5cdFx0aWYgKGtleXNBbmRPcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIF9zdGF0ZTtcblx0XHRpZiAoa2V5c0FuZE9wdGlvbnMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBrZXlzQW5kT3B0aW9uc1swXSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdGNvbnN0IGNhY2hlZEtleSA9IFNUT1JFX0NPTVBVVEVEX0tFWS5jb25jYXQoSlNPTi5zdHJpbmdpZnkoa2V5c0FuZE9wdGlvbnNbMF0pKTtcblx0XHRcdGlmICghY29tcHV0ZWRDYWNoZS5oYXMoY2FjaGVkS2V5KSkge1xuXHRcdFx0XHRjb21wdXRlZENhY2hlLnNldChjYWNoZWRLZXksIGNvbXB1dGVkKF9zdGF0ZSwga2V5c0FuZE9wdGlvbnMgYXMgQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPG9iamVjdD4pKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjb21wdXRlZENhY2hlLmdldChjYWNoZWRLZXkpITtcblx0XHR9XG5cdFx0Y29uc3QgW2tleXMsIG9wdGlvbnNdID0gcGFyc2VTdG9yZU9wdGlvbnMoa2V5c0FuZE9wdGlvbnMpO1xuXHRcdGNvbnN0IGpvaW5lZEtleXMgPSBrZXlzLmpvaW4oJy0nKTtcblx0XHRjb25zdCBjYWNoZWRLZXlzID0gam9pbmVkS2V5cy5jb25jYXQob3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpIDogJycpO1xuXG5cdFx0aWYgKCFjb21wdXRlZENhY2hlLmhhcyhjYWNoZWRLZXlzKSkge1xuXHRcdFx0Y29tcHV0ZWRDYWNoZS5zZXQoXG5cdFx0XHRcdGNhY2hlZEtleXMsXG5cdFx0XHRcdGNvbXB1dGVkKCgpID0+IGtleXMucmVkdWNlKCh2YWx1ZSwga2V5KSA9PiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVtrZXldLCBfc3RhdGUoKSksIG9wdGlvbnMpLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIGNvbXB1dGVkQ2FjaGUuZ2V0KGNhY2hlZEtleXMpITtcblx0fTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihcblx0aW5pdGlhbFN0YXRlOlxuXHRcdHwgUGFydGlhbDxTdGF0ZT5cblx0XHR8ICgoc3RvcmVBcGk6IFBpY2s8Tmd0U2lnbmFsU3RvcmU8U3RhdGU+LCAnZ2V0JyB8ICdzZXQnIHwgJ3BhdGNoJyB8ICdzZWxlY3QnPikgPT4gUGFydGlhbDxTdGF0ZT4pID0ge30sXG5cdG9wdGlvbnM/OiBDcmVhdGVTaWduYWxPcHRpb25zPFN0YXRlPixcbik6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPiB7XG5cdGxldCBzb3VyY2U6IFdyaXRhYmxlU2lnbmFsPFN0YXRlPjtcblx0bGV0IHNldDogTmd0U2lnbmFsU3RvcmU8U3RhdGU+WydzZXQnXTtcblx0bGV0IGdldDogTmd0U2lnbmFsU3RvcmU8U3RhdGU+WydnZXQnXTtcblx0bGV0IHBhdGNoOiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT5bJ3BhdGNoJ107XG5cdGxldCBzZWxlY3Q6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsnc2VsZWN0J107XG5cdGxldCBzdGF0ZTogU2lnbmFsPFN0YXRlPjtcblxuXHRjb25zdCBjb21wdXRlZENhY2hlID0gbmV3IE1hcCgpO1xuXG5cdGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0c291cmNlID0gc2lnbmFsKHt9IGFzIFN0YXRlLCBvcHRpb25zKTtcblx0XHRzdGF0ZSA9IHNvdXJjZS5hc1JlYWRvbmx5KCk7XG5cdFx0Z2V0ID0gZ2V0dGVyKHNvdXJjZSk7XG5cdFx0c2V0ID0gc2V0dGVyKHNvdXJjZSk7XG5cdFx0cGF0Y2ggPSBwYXRjaGVyKHNvdXJjZSk7XG5cdFx0c2VsZWN0ID0gc2VsZWN0b3Ioc3RhdGUsIGNvbXB1dGVkQ2FjaGUpO1xuXHRcdHNvdXJjZS5zZXQoaW5pdGlhbFN0YXRlKHsgc2V0LCBnZXQsIHBhdGNoLCBzZWxlY3QgfSkgYXMgU3RhdGUpO1xuXHR9IGVsc2Uge1xuXHRcdHNvdXJjZSA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUsIG9wdGlvbnMpO1xuXHRcdHN0YXRlID0gc291cmNlLmFzUmVhZG9ubHkoKTtcblx0XHRnZXQgPSBnZXR0ZXIoc291cmNlKTtcblx0XHRzZXQgPSBzZXR0ZXIoc291cmNlKTtcblx0XHRwYXRjaCA9IHBhdGNoZXIoc291cmNlKTtcblx0XHRzZWxlY3QgPSBzZWxlY3RvcihzdGF0ZSwgY29tcHV0ZWRDYWNoZSk7XG5cdH1cblxuXHRjb25zdCBzdG9yZSA9IHsgc2VsZWN0LCBnZXQsIHNldCwgcGF0Y2gsIHN0YXRlIH07XG5cblx0Ly8gTk9URTogaW50ZXJuYWwgX3NuYXBzaG90IHRvIGRlYnVnIGN1cnJlbnQgc3RhdGVcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0b3JlLCAnX3NuYXBzaG90Jywge1xuXHRcdGdldDogc3RhdGUsXG5cdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRlbnVtZXJhYmxlOiBmYWxzZSxcblx0fSk7XG5cblx0cmV0dXJuIHN0b3JlO1xufVxuXG5mdW5jdGlvbiBwYXJzZVN0b3JlT3B0aW9ucyhrZXlzQW5kT3B0aW9uczogYW55W10pOiBbc3RyaW5nW10sIENyZWF0ZUNvbXB1dGVkT3B0aW9uczxhbnk+P10ge1xuXHRpZiAodHlwZW9mIGtleXNBbmRPcHRpb25zLmF0KC0xKSA9PT0gJ29iamVjdCcpIHtcblx0XHRyZXR1cm4gW2tleXNBbmRPcHRpb25zLnNsaWNlKDAsIC0xKSwga2V5c0FuZE9wdGlvbnMuYXQoLTEpXTtcblx0fVxuXG5cdHJldHVybiBba2V5c0FuZE9wdGlvbnNdO1xufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc2lnbmFsLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDO0FBZ0UzRCxTQUFTLE9BQU8sQ0FBdUIsS0FBMkM7SUFDakYsT0FBTyxDQUFDLFFBQWUsRUFBRSxFQUFFO1FBQzFCLE1BQU0sT0FBTyxHQUFHLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFFBQVEsR0FBRyxHQUFrQixDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUF1QixPQUE4QjtJQUNwRSxPQUFPLENBQUMsS0FBMkMsRUFBRSxFQUFFO1FBQ3RELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxF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LEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUU3QyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7UUFDeEMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQztRQUM5QixZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsS0FBSztLQUNqQixDQUFDLENBQUM7SUFFSCxPQUFPLEtBQThCLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENyZWF0ZUNvbXB1dGVkT3B0aW9ucyxcblx0Q3JlYXRlU2lnbmFsT3B0aW9ucyxcblx0U2lnbmFsLFxuXHRXcml0YWJsZVNpZ25hbCxcblx0Y29tcHV0ZWQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgU1RPUkVfQ09NUFVURURfS0VZID0gJ19fbmd0X3NpZ25hbF9zdG9yZV9jb21wdXRlZF9fJztcblxuZXhwb3J0IHR5cGUgTmd0U2lnbmFsU3RvcmU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuXHRzZWxlY3Q8XG5cdFx0S2V5MSBleHRlbmRzIGtleW9mIFN0YXRlLFxuXHRcdEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSxcblx0XHRLZXkzIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml0sXG5cdFx0S2V5NCBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdW0tleTNdLFxuXHQ+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRrZXkzOiBLZXkzLFxuXHRcdGtleTQ6IEtleTQsXG5cdFx0b3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXVtLZXk0XT4sXG5cdCk6IFNpZ25hbDxTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXVtLZXk0XT47XG5cdHNlbGVjdDxLZXkxIGV4dGVuZHMga2V5b2YgU3RhdGUsIEtleTIgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXSwgS2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdPihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0XHRvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlW0tleTFdW0tleTJdW0tleTNdPixcblx0KTogU2lnbmFsPFN0YXRlW0tleTFdW0tleTJdW0tleTNdPjtcblx0c2VsZWN0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdPihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0b3B0aW9ucz86IENyZWF0ZUNvbXB1dGVkT3B0aW9uczxTdGF0ZVtLZXkxXVtLZXkyXT4sXG5cdCk6IFNpZ25hbDxTdGF0ZVtLZXkxXVtLZXkyXT47XG5cdHNlbGVjdDxLZXkgZXh0ZW5kcyBrZXlvZiBTdGF0ZT4oa2V5OiBLZXksIG9wdGlvbnM/OiBDcmVhdGVDb21wdXRlZE9wdGlvbnM8U3RhdGVbS2V5XT4pOiBTaWduYWw8U3RhdGVbS2V5XT47XG5cdHNlbGVjdChvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFN0YXRlPik6IFNpZ25hbDxTdGF0ZT47XG5cblx0Z2V0PFxuXHRcdEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSxcblx0XHRLZXkyIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV0sXG5cdFx0S2V5MyBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdW0tleTJdLFxuXHRcdEtleTQgZXh0ZW5kcyBrZXlvZiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXSxcblx0Pihcblx0XHRrZXkxOiBLZXkxLFxuXHRcdGtleTI6IEtleTIsXG5cdFx0a2V5MzogS2V5Myxcblx0XHRrZXk0OiBLZXk0LFxuXHQpOiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXVtLZXk0XTtcblx0Z2V0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdLCBLZXkzIGV4dGVuZHMga2V5b2YgU3RhdGVbS2V5MV1bS2V5Ml0+KFxuXHRcdGtleTE6IEtleTEsXG5cdFx0a2V5MjogS2V5Mixcblx0XHRrZXkzOiBLZXkzLFxuXHQpOiBTdGF0ZVtLZXkxXVtLZXkyXVtLZXkzXTtcblx0Z2V0PEtleTEgZXh0ZW5kcyBrZXlvZiBTdGF0ZSwgS2V5MiBleHRlbmRzIGtleW9mIFN0YXRlW0tleTFdPihrZXkxOiBLZXkxLCBrZXkyOiBLZXkyKTogU3RhdGVbS2V5MV1bS2V5Ml07XG5cdGdldDxLZXkgZXh0ZW5kcyBrZXlvZiBTdGF0ZT4oa2V5OiBLZXkpOiBTdGF0ZVtLZXldO1xuXHRnZXQoKTogU3RhdGU7XG5cblx0LyoqXG5cdCAqIE5ldyBzdGF0ZSB0YWtlcyBwcmVjZWRlbmNlXG5cdCAqL1xuXHR1cGRhdGUoc3RhdGU6IFBhcnRpYWw8U3RhdGU+IHwgKChwcmV2aW91czogU3RhdGUpID0+IFBhcnRpYWw8U3RhdGU+KSk6IHZvaWQ7XG5cblx0LyoqXG5cdCAqIEVxdWl2YWxlbmNlIHRvIHNlbGVjdCgpXG5cdCAqL1xuXHRzdGF0ZTogU2lnbmFsPFN0YXRlPjtcblx0LyoqXG5cdCAqIEVxdWl2YWxlbmNlIHRvIGdldCgpXG5cdCAqL1xuXHRnZXQgc25hcHNob3QoKTogU3RhdGU7XG59O1xuXG5mdW5jdGlvbiByZWR1Y2VyPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihzdGF0ZTogU3RhdGUgfCAoKHByZXZpb3VzOiBTdGF0ZSkgPT4gU3RhdGUpKSB7XG5cdHJldHVybiAocHJldmlvdXM6IFN0YXRlKSA9PiB7XG5cdFx0Y29uc3QgcGFydGlhbCA9IHR5cGVvZiBzdGF0ZSA9PT0gJ2Z1bmN0aW9uJyA/IHN0YXRlKHByZXZpb3VzKSA6IHN0YXRlO1xuXHRcdE9iamVjdC5rZXlzKHBhcnRpYWwpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdFx0Y29uc3QgdHlwZWRLZXkgPSBrZXkgYXMga2V5b2YgU3RhdGU7XG5cdFx0XHRpZiAocGFydGlhbFt0eXBlZEtleV0gPT09IHVuZGVmaW5lZCAmJiBwcmV2aW91c1t0eXBlZEtleV0gIT0gbnVsbCkge1xuXHRcdFx0XHRwYXJ0aWFsW3R5cGVkS2V5XSA9IHByZXZpb3VzW3R5cGVkS2V5XTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gcGFydGlhbDtcblx0fTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oX3NvdXJjZTogV3JpdGFibGVTaWduYWw8U3RhdGU+KSB7XG5cdHJldHVybiAoc3RhdGU6IFN0YXRlIHwgKChwcmV2aW91czogU3RhdGUpID0+IFN0YXRlKSkgPT4ge1xuXHRcdGNvbnN0IHVwZGF0ZXIgPSByZWR1Y2VyKHN0YXRlKTtcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0X3NvdXJjZS51cGRhdGUoKHByZXZpb3VzKSA9PiAoeyAuLi5wcmV2aW91cywgLi4udXBkYXRlcihwcmV2aW91cykgfSkpO1xuXHRcdH0pO1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXR0ZXI8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KF9zb3VyY2U6IFdyaXRhYmxlU2lnbmFsPFN0YXRlPikge1xuXHRyZXR1cm4gKC4uLmtleXM6IHN0cmluZ1tdKSA9PiB7XG5cdFx0Y29uc3Qgcm9vdCA9IHVudHJhY2tlZChfc291cmNlKTtcblx0XHRpZiAoa2V5cy5sZW5ndGggPT09IDApIHJldHVybiByb290O1xuXHRcdHJldHVybiBrZXlzLnJlZHVjZSgodmFsdWUsIGtleSkgPT4gKHZhbHVlIGFzIE5ndEFueVJlY29yZClba2V5XSwgcm9vdCk7XG5cdH07XG59XG5cbmZ1bmN0aW9uIHNlbGVjdG9yPFN0YXRlIGV4dGVuZHMgb2JqZWN0Pihfc3RhdGU6IFNpZ25hbDxTdGF0ZT4sIGNvbXB1dGVkQ2FjaGU6IE1hcDxzdHJpbmcsIFNpZ25hbDxhbnk+Pikge1xuXHRyZXR1cm4gKC4uLmtleXNBbmRPcHRpb25zOiBhbnlbXSkgPT4ge1xuXHRcdGlmIChrZXlzQW5kT3B0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiBfc3RhdGU7XG5cdFx0aWYgKGtleXNBbmRPcHRpb25zLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2Yga2V5c0FuZE9wdGlvbnNbMF0gPT09ICdvYmplY3QnKSB7XG5cdFx0XHRjb25zdCBjYWNoZWRLZXkgPSBTVE9SRV9DT01QVVRFRF9LRVkuY29uY2F0KEpTT04uc3RyaW5naWZ5KGtleXNBbmRPcHRpb25zWzBdKSk7XG5cdFx0XHRpZiAoIWNvbXB1dGVkQ2FjaGUuaGFzKGNhY2hlZEtleSkpIHtcblx0XHRcdFx0Y29tcHV0ZWRDYWNoZS5zZXQoY2FjaGVkS2V5LCBjb21wdXRlZChfc3RhdGUsIGtleXNBbmRPcHRpb25zIGFzIENyZWF0ZUNvbXB1dGVkT3B0aW9uczxvYmplY3Q+KSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29tcHV0ZWRDYWNoZS5nZXQoY2FjaGVkS2V5KSE7XG5cdFx0fVxuXHRcdGNvbnN0IFtrZXlzLCBvcHRpb25zXSA9IHBhcnNlU3RvcmVPcHRpb25zKGtleXNBbmRPcHRpb25zKTtcblx0XHRjb25zdCBqb2luZWRLZXlzID0ga2V5cy5qb2luKCctJyk7XG5cdFx0Y29uc3QgY2FjaGVkS2V5cyA9IGpvaW5lZEtleXMuY29uY2F0KEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcblxuXHRcdGlmICghY29tcHV0ZWRDYWNoZS5oYXMoY2FjaGVkS2V5cykpIHtcblx0XHRcdGNvbXB1dGVkQ2FjaGUuc2V0KFxuXHRcdFx0XHRjYWNoZWRLZXlzLFxuXHRcdFx0XHRjb21wdXRlZCgoKSA9PiBrZXlzLnJlZHVjZSgodmFsdWUsIGtleSkgPT4gKHZhbHVlIGFzIE5ndEFueVJlY29yZClba2V5XSwgX3N0YXRlKCkpLCBvcHRpb25zKSxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBjb21wdXRlZENhY2hlLmdldChjYWNoZWRLZXlzKSE7XG5cdH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlU3RvcmVPcHRpb25zKGtleXNBbmRPcHRpb25zOiBhbnlbXSk6IFtzdHJpbmdbXSwgQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPGFueT4/XSB7XG5cdGlmICh0eXBlb2Yga2V5c0FuZE9wdGlvbnMuYXQoLTEpID09PSAnb2JqZWN0Jykge1xuXHRcdHJldHVybiBba2V5c0FuZE9wdGlvbnMuc2xpY2UoMCwgLTEpLCBrZXlzQW5kT3B0aW9ucy5hdCgtMSldO1xuXHR9XG5cblx0cmV0dXJuIFtrZXlzQW5kT3B0aW9ucywgeyBlcXVhbDogT2JqZWN0LmlzIH1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuXHRpbml0aWFsU3RhdGU6XG5cdFx0fCBQYXJ0aWFsPFN0YXRlPlxuXHRcdHwgKChzdG9yZUFwaTogUGljazxOZ3RTaWduYWxTdG9yZTxTdGF0ZT4sICdnZXQnIHwgJ3VwZGF0ZScgfCAnc2VsZWN0Jz4pID0+IFBhcnRpYWw8U3RhdGU+KSA9IHt9LFxuXHRvcHRpb25zPzogQ3JlYXRlU2lnbmFsT3B0aW9uczxTdGF0ZT4sXG4pOiBOZ3RTaWduYWxTdG9yZTxTdGF0ZT4ge1xuXHRsZXQgc291cmNlOiBXcml0YWJsZVNpZ25hbDxTdGF0ZT47XG5cdGxldCB1cGRhdGU6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsndXBkYXRlJ107XG5cdGxldCBnZXQ6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsnZ2V0J107XG5cdGxldCBzZWxlY3Q6IE5ndFNpZ25hbFN0b3JlPFN0YXRlPlsnc2VsZWN0J107XG5cdGxldCBzdGF0ZTogU2lnbmFsPFN0YXRlPjtcblxuXHRjb25zdCBjb21wdXRlZENhY2hlID0gbmV3IE1hcCgpO1xuXG5cdGlmICghb3B0aW9ucykge1xuXHRcdG9wdGlvbnMgPSB7IGVxdWFsOiBPYmplY3QuaXMgfTtcblx0fVxuXG5cdGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0c291cmNlID0gc2lnbmFsKHt9IGFzIFN0YXRlLCBvcHRpb25zKTtcblx0XHRzdGF0ZSA9IHNvdXJjZS5hc1JlYWRvbmx5KCk7XG5cdFx0Z2V0ID0gZ2V0dGVyKHNvdXJjZSk7XG5cdFx0dXBkYXRlID0gdXBkYXRlcihzb3VyY2UpO1xuXHRcdHNlbGVjdCA9IHNlbGVjdG9yKHN0YXRlLCBjb21wdXRlZENhY2hlKTtcblx0XHRzb3VyY2Uuc2V0KGluaXRpYWxTdGF0ZSh7IHVwZGF0ZSwgZ2V0LCBzZWxlY3QgfSkgYXMgU3RhdGUpO1xuXHR9IGVsc2Uge1xuXHRcdHNvdXJjZSA9IHNpZ25hbChpbml0aWFsU3RhdGUgYXMgU3RhdGUsIG9wdGlvbnMpO1xuXHRcdHN0YXRlID0gc291cmNlLmFzUmVhZG9ubHkoKTtcblx0XHRnZXQgPSBnZXR0ZXIoc291cmNlKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVyKHNvdXJjZSk7XG5cdFx0c2VsZWN0ID0gc2VsZWN0b3Ioc3RhdGUsIGNvbXB1dGVkQ2FjaGUpO1xuXHR9XG5cblx0Y29uc3Qgc3RvcmUgPSB7IHNlbGVjdCwgZ2V0LCB1cGRhdGUsIHN0YXRlIH07XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0b3JlLCAnc25hcHNob3QnLCB7XG5cdFx0Z2V0OiB1bnRyYWNrZWQuYmluZCh7fSwgc3RhdGUpLFxuXHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG5cdFx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdH0pO1xuXG5cdHJldHVybiBzdG9yZSBhcyBOZ3RTaWduYWxTdG9yZTxTdGF0ZT47XG59XG4iXX0=
@@ -7,13 +7,16 @@ export function checkNeedsUpdate(value) {
7
7
  }
8
8
  }
9
9
  export function checkUpdate(value) {
10
- if (is.object3D(value))
11
- value.updateMatrix();
10
+ // TODO (chau): this is messing with PivotControls. Re-evaluate later
11
+ // if (is.object3D(value)) value.updateMatrix();
12
12
  if (is.camera(value)) {
13
13
  if (is.perspectiveCamera(value) || is.orthographicCamera(value))
14
14
  value.updateProjectionMatrix();
15
15
  value.updateMatrixWorld();
16
16
  }
17
+ // NOTE: skip checkNeedsUpdate for CubeTexture
18
+ if (value && value.isCubeTexture)
19
+ return;
17
20
  checkNeedsUpdate(value);
18
21
  }
19
22
  export function updateCamera(camera, size) {
@@ -24,10 +27,11 @@ export function updateCamera(camera, size) {
24
27
  camera.top = size.height / 2;
25
28
  camera.bottom = size.height / -2;
26
29
  }
27
- else
30
+ else {
28
31
  camera.aspect = size.width / size.height;
32
+ }
29
33
  camera.updateProjectionMatrix();
30
34
  camera.updateMatrixWorld();
31
35
  }
32
36
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxJQUFLLEtBQXNCLEVBQUU7UUFDL0UsS0FBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUMsSUFBSSxvQkFBb0IsSUFBSyxLQUFzQjtZQUFHLEtBQXNCLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDMUc7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3pDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFN0MsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFBRSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoRyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUMxQjtJQUVELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQXVCLEVBQUUsSUFBYTtJQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuQixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqQzs7WUFBTSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVoRCxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUMzQjtBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5ndENhbWVyYU1hbnVhbCwgTmd0U2l6ZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrTmVlZHNVcGRhdGUodmFsdWU6IHVua25vd24pIHtcblx0aWYgKHZhbHVlICE9PSBudWxsICYmIGlzLm9iaih2YWx1ZSkgJiYgJ25lZWRzVXBkYXRlJyBpbiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKSkge1xuXHRcdCh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpWyduZWVkc1VwZGF0ZSddID0gdHJ1ZTtcblx0XHRpZiAoJ3VuaWZvcm1zTmVlZFVwZGF0ZScgaW4gKHZhbHVlIGFzIE5ndEFueVJlY29yZCkpICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpWyd1bmlmb3Jtc05lZWRVcGRhdGUnXSA9IHRydWU7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVXBkYXRlKHZhbHVlOiB1bmtub3duKSB7XG5cdGlmIChpcy5vYmplY3QzRCh2YWx1ZSkpIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuXG5cdGlmIChpcy5jYW1lcmEodmFsdWUpKSB7XG5cdFx0aWYgKGlzLnBlcnNwZWN0aXZlQ2FtZXJhKHZhbHVlKSB8fCBpcy5vcnRob2dyYXBoaWNDYW1lcmEodmFsdWUpKSB2YWx1ZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0dmFsdWUudXBkYXRlTWF0cml4V29ybGQoKTtcblx0fVxuXG5cdGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhTWFudWFsLCBzaXplOiBOZ3RTaXplKSB7XG5cdGlmICghY2FtZXJhLm1hbnVhbCkge1xuXHRcdGlmIChpcy5vcnRob2dyYXBoaWNDYW1lcmEoY2FtZXJhKSkge1xuXHRcdFx0Y2FtZXJhLmxlZnQgPSBzaXplLndpZHRoIC8gLTI7XG5cdFx0XHRjYW1lcmEucmlnaHQgPSBzaXplLndpZHRoIC8gMjtcblx0XHRcdGNhbWVyYS50b3AgPSBzaXplLmhlaWdodCAvIDI7XG5cdFx0XHRjYW1lcmEuYm90dG9tID0gc2l6ZS5oZWlnaHQgLyAtMjtcblx0XHR9IGVsc2UgY2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcblxuXHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0Y2FtZXJhLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XG5cdH1cbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQy9ELEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxvQkFBb0IsSUFBSSxLQUFLO1lBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3pDLHFFQUFxRTtJQUNyRSxnREFBZ0Q7SUFFaEQsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztZQUFFLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsSUFBSSxLQUFLLElBQUssS0FBcUIsQ0FBQyxhQUFhO1FBQUUsT0FBTztJQUUxRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUF1QixFQUFFLElBQWE7SUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUMsQ0FBQztRQUVELE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzVCLENBQUM7QUFDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3ViZVRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RDYW1lcmFNYW51YWwsIE5ndFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tOZWVkc1VwZGF0ZSh2YWx1ZTogdW5rbm93bikge1xuXHRpZiAodmFsdWUgIT09IG51bGwgJiYgaXMub2JqKHZhbHVlKSAmJiAnbmVlZHNVcGRhdGUnIGluIHZhbHVlKSB7XG5cdFx0dmFsdWVbJ25lZWRzVXBkYXRlJ10gPSB0cnVlO1xuXHRcdGlmICgndW5pZm9ybXNOZWVkVXBkYXRlJyBpbiB2YWx1ZSkgdmFsdWVbJ3VuaWZvcm1zTmVlZFVwZGF0ZSddID0gdHJ1ZTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tVcGRhdGUodmFsdWU6IHVua25vd24pIHtcblx0Ly8gVE9ETyAoY2hhdSk6IHRoaXMgaXMgbWVzc2luZyB3aXRoIFBpdm90Q29udHJvbHMuIFJlLWV2YWx1YXRlIGxhdGVyXG5cdC8vIGlmIChpcy5vYmplY3QzRCh2YWx1ZSkpIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuXG5cdGlmIChpcy5jYW1lcmEodmFsdWUpKSB7XG5cdFx0aWYgKGlzLnBlcnNwZWN0aXZlQ2FtZXJhKHZhbHVlKSB8fCBpcy5vcnRob2dyYXBoaWNDYW1lcmEodmFsdWUpKSB2YWx1ZS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0dmFsdWUudXBkYXRlTWF0cml4V29ybGQoKTtcblx0fVxuXG5cdC8vIE5PVEU6IHNraXAgY2hlY2tOZWVkc1VwZGF0ZSBmb3IgQ3ViZVRleHR1cmVcblx0aWYgKHZhbHVlICYmICh2YWx1ZSBhcyBDdWJlVGV4dHVyZSkuaXNDdWJlVGV4dHVyZSkgcmV0dXJuO1xuXG5cdGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhTWFudWFsLCBzaXplOiBOZ3RTaXplKSB7XG5cdGlmICghY2FtZXJhLm1hbnVhbCkge1xuXHRcdGlmIChpcy5vcnRob2dyYXBoaWNDYW1lcmEoY2FtZXJhKSkge1xuXHRcdFx0Y2FtZXJhLmxlZnQgPSBzaXplLndpZHRoIC8gLTI7XG5cdFx0XHRjYW1lcmEucmlnaHQgPSBzaXplLndpZHRoIC8gMjtcblx0XHRcdGNhbWVyYS50b3AgPSBzaXplLmhlaWdodCAvIDI7XG5cdFx0XHRjYW1lcmEuYm90dG9tID0gc2l6ZS5oZWlnaHQgLyAtMjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcblx0XHR9XG5cblx0XHRjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuXHRcdGNhbWVyYS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3Rlc3Rpbmcvc3JjL2FuZ3VsYXItdGhyZWUtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './lib/test-bed';
2
+ export * from './lib/test-canvas';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdGVzdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdGVzdC1iZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVzdC1jYW52YXMnO1xuIl19