@needle-tools/engine 4.12.1 → 4.12.3-next.a27c12e

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 (58) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/dist/{needle-engine.bundle-BPNuWGjI.min.js → needle-engine.bundle-BHCgy9h1.min.js} +138 -139
  3. package/dist/{needle-engine.bundle-BV9DUnnS.umd.cjs → needle-engine.bundle-CLfNhYon.umd.cjs} +127 -128
  4. package/dist/{needle-engine.bundle-C4PyE3dQ.js → needle-engine.bundle-URbCchz5.js} +3531 -3470
  5. package/dist/needle-engine.d.ts +15 -5
  6. package/dist/needle-engine.js +2 -2
  7. package/dist/needle-engine.min.js +1 -1
  8. package/dist/needle-engine.umd.cjs +1 -1
  9. package/lib/asap/needle-asap.js +1 -1
  10. package/lib/asap/needle-asap.js.map +1 -1
  11. package/lib/engine/debug/debug_overlay.js +6 -2
  12. package/lib/engine/debug/debug_overlay.js.map +1 -1
  13. package/lib/engine/engine_components.d.ts +2 -1
  14. package/lib/engine/engine_components.js +4 -3
  15. package/lib/engine/engine_components.js.map +1 -1
  16. package/lib/engine/engine_input.d.ts +4 -1
  17. package/lib/engine/engine_input.js +24 -20
  18. package/lib/engine/engine_input.js.map +1 -1
  19. package/lib/engine/js-extensions/Object3D.d.ts +6 -2
  20. package/lib/engine/js-extensions/Object3D.js +6 -4
  21. package/lib/engine/js-extensions/Object3D.js.map +1 -1
  22. package/lib/engine/webcomponents/buttons.d.ts +3 -1
  23. package/lib/engine/webcomponents/buttons.js +2 -2
  24. package/lib/engine/webcomponents/buttons.js.map +1 -1
  25. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +13 -11
  26. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  27. package/lib/engine/webcomponents/needle-button.js +21 -16
  28. package/lib/engine/webcomponents/needle-button.js.map +1 -1
  29. package/lib/engine/webcomponents/needle-engine.ar-overlay.js +7 -5
  30. package/lib/engine/webcomponents/needle-engine.ar-overlay.js.map +1 -1
  31. package/lib/engine/webcomponents/needle-engine.js +1 -1
  32. package/lib/engine/webcomponents/needle-engine.loading.js +1 -1
  33. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  34. package/lib/engine/xr/NeedleXRSession.js +20 -0
  35. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  36. package/lib/engine/xr/TempXRContext.d.ts +7 -2
  37. package/lib/engine/xr/TempXRContext.js +143 -44
  38. package/lib/engine/xr/TempXRContext.js.map +1 -1
  39. package/lib/engine-components/SpectatorCamera.js +3 -2
  40. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  41. package/lib/engine-components/ui/InputField.js +5 -2
  42. package/lib/engine-components/ui/InputField.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/asap/needle-asap.ts +1 -1
  45. package/src/engine/debug/debug_overlay.ts +6 -2
  46. package/src/engine/engine_components.ts +5 -4
  47. package/src/engine/engine_input.ts +26 -19
  48. package/src/engine/js-extensions/Object3D.ts +14 -7
  49. package/src/engine/webcomponents/buttons.ts +2 -2
  50. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +15 -13
  51. package/src/engine/webcomponents/needle-button.ts +23 -19
  52. package/src/engine/webcomponents/needle-engine.ar-overlay.ts +10 -9
  53. package/src/engine/webcomponents/needle-engine.loading.ts +1 -1
  54. package/src/engine/webcomponents/needle-engine.ts +1 -1
  55. package/src/engine/xr/NeedleXRSession.ts +22 -0
  56. package/src/engine/xr/TempXRContext.ts +155 -47
  57. package/src/engine-components/SpectatorCamera.ts +2 -1
  58. package/src/engine-components/ui/InputField.ts +11 -6
@@ -3,7 +3,7 @@ import { FrameEvent } from "../../engine/engine_setup.js";
3
3
  import { DeviceUtilities, getParam } from "../../engine/engine_utils.js";
4
4
  import { Behaviour, GameObject } from "../Component.js";
5
5
  import { EventList } from "../EventList.js";
6
- import { type IPointerEventHandler,PointerEventData } from "./PointerEvents.js";
6
+ import { type IPointerEventHandler, PointerEventData } from "./PointerEvents.js";
7
7
  import { Text } from "./Text.js";
8
8
  import { tryGetUIComponent } from "./Utils.js";
9
9
 
@@ -111,8 +111,8 @@ export class InputField extends Behaviour implements IPointerEventHandler {
111
111
  this.setTextFromInputField();
112
112
  }
113
113
  else {
114
- if(this.textComponent) this.textComponent.text = "";
115
- if(this.placeholder) GameObject.setActive(this.placeholder.gameObject, true);
114
+ if (this.textComponent) this.textComponent.text = "";
115
+ if (this.placeholder) GameObject.setActive(this.placeholder.gameObject, true);
116
116
  }
117
117
  }
118
118
 
@@ -128,7 +128,7 @@ export class InputField extends Behaviour implements IPointerEventHandler {
128
128
 
129
129
  onPointerEnter(_args: PointerEventData) {
130
130
  const canSetCursor = _args.event.pointerType === "mouse" && _args.button === 0;
131
- if(canSetCursor) this.context.input.setCursor("text");
131
+ if (canSetCursor) this.context.input.setCursor("text");
132
132
  }
133
133
  onPointerExit(_args: PointerEventData) {
134
134
  this.context.input.unsetCursor("text")
@@ -256,10 +256,15 @@ export class InputField extends Behaviour implements IPointerEventHandler {
256
256
 
257
257
  private selectInputField() {
258
258
  if (InputField.htmlField) {
259
- if (debug) console.log("Focus Inputfield", InputField.htmlFieldFocused)
259
+ if (debug) console.log("Focus Inputfield", InputField.htmlFieldFocused, InputField.htmlField);
260
+
260
261
  InputField.htmlField.setSelectionRange(InputField.htmlField.value.length, InputField.htmlField.value.length);
261
- if (DeviceUtilities.isiOS())
262
+
263
+ if (DeviceUtilities.isiOS()) {
264
+ // in WebXR (iOS AR Safari) display can not be none to focus input it seems
265
+ InputField.htmlField.style.display = "block";
262
266
  InputField.htmlField.focus({ preventScroll: true });
267
+ }
263
268
  else {
264
269
  // on Andoid if we don't focus in a timeout the keyboard will close the second time we click the InputField
265
270
  setTimeout(() => InputField.htmlField?.focus(), 1);