@needle-tools/engine 4.11.2 → 4.11.3-next.2e95398

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 (96) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/{needle-engine.bundle-DxIfYnRl.js → needle-engine.bundle-Bk9fxkI9.js} +4668 -4642
  3. package/dist/{needle-engine.bundle-BaUshOzH.min.js → needle-engine.bundle-DFuROAWi.min.js} +130 -130
  4. package/dist/{needle-engine.bundle-Ci2JE5sk.umd.cjs → needle-engine.bundle-DHN7tA4V.umd.cjs} +127 -127
  5. package/dist/needle-engine.js +2 -2
  6. package/dist/needle-engine.min.js +1 -1
  7. package/dist/needle-engine.umd.cjs +1 -1
  8. package/lib/engine/api.d.ts +1 -0
  9. package/lib/engine/api.js +1 -0
  10. package/lib/engine/api.js.map +1 -1
  11. package/lib/engine/engine_utils.d.ts +0 -23
  12. package/lib/engine/engine_utils.js +0 -202
  13. package/lib/engine/engine_utils.js.map +1 -1
  14. package/lib/engine/engine_utils_attributes.d.ts +48 -0
  15. package/lib/engine/engine_utils_attributes.js +70 -0
  16. package/lib/engine/engine_utils_attributes.js.map +1 -0
  17. package/lib/engine/engine_utils_qrcode.d.ts +23 -0
  18. package/lib/engine/engine_utils_qrcode.js +234 -0
  19. package/lib/engine/engine_utils_qrcode.js.map +1 -0
  20. package/lib/engine/webcomponents/buttons.js +1 -1
  21. package/lib/engine/webcomponents/buttons.js.map +1 -1
  22. package/lib/engine-components/Animation.d.ts +1 -1
  23. package/lib/engine-components/Animation.js +1 -1
  24. package/lib/engine-components/AnimationCurve.d.ts +3 -0
  25. package/lib/engine-components/AnimationCurve.js +3 -0
  26. package/lib/engine-components/AnimationCurve.js.map +1 -1
  27. package/lib/engine-components/Animator.d.ts +2 -1
  28. package/lib/engine-components/Animator.js +2 -1
  29. package/lib/engine-components/Animator.js.map +1 -1
  30. package/lib/engine-components/AnimatorController.d.ts +3 -0
  31. package/lib/engine-components/AnimatorController.js +3 -0
  32. package/lib/engine-components/AnimatorController.js.map +1 -1
  33. package/lib/engine-components/LookAtConstraint.d.ts +4 -0
  34. package/lib/engine-components/LookAtConstraint.js +4 -0
  35. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  36. package/lib/engine-components/NeedleMenu.d.ts +1 -0
  37. package/lib/engine-components/NeedleMenu.js +1 -0
  38. package/lib/engine-components/NeedleMenu.js.map +1 -1
  39. package/lib/engine-components/NestedGltf.d.ts +3 -0
  40. package/lib/engine-components/NestedGltf.js +3 -0
  41. package/lib/engine-components/NestedGltf.js.map +1 -1
  42. package/lib/engine-components/ReflectionProbe.d.ts +4 -0
  43. package/lib/engine-components/ReflectionProbe.js +4 -0
  44. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  45. package/lib/engine-components/RendererLightmap.d.ts +6 -0
  46. package/lib/engine-components/RendererLightmap.js +6 -3
  47. package/lib/engine-components/RendererLightmap.js.map +1 -1
  48. package/lib/engine-components/SeeThrough.d.ts +3 -0
  49. package/lib/engine-components/SeeThrough.js +8 -1
  50. package/lib/engine-components/SeeThrough.js.map +1 -1
  51. package/lib/engine-components/Skybox.d.ts +3 -0
  52. package/lib/engine-components/Skybox.js +3 -0
  53. package/lib/engine-components/Skybox.js.map +1 -1
  54. package/lib/engine-components/SpriteRenderer.d.ts +14 -1
  55. package/lib/engine-components/SpriteRenderer.js +17 -1
  56. package/lib/engine-components/SpriteRenderer.js.map +1 -1
  57. package/lib/engine-components/export/usdz/ThreeUSDZExporter.js.map +1 -1
  58. package/lib/engine-components/splines/Spline.d.ts +3 -0
  59. package/lib/engine-components/splines/Spline.js +3 -0
  60. package/lib/engine-components/splines/Spline.js.map +1 -1
  61. package/lib/engine-components/splines/SplineUtils.d.ts +3 -0
  62. package/lib/engine-components/splines/SplineUtils.js +3 -0
  63. package/lib/engine-components/splines/SplineUtils.js.map +1 -1
  64. package/lib/engine-components/splines/SplineWalker.d.ts +3 -0
  65. package/lib/engine-components/splines/SplineWalker.js +3 -0
  66. package/lib/engine-components/splines/SplineWalker.js.map +1 -1
  67. package/lib/engine-components/timeline/SignalAsset.d.ts +11 -1
  68. package/lib/engine-components/timeline/SignalAsset.js +11 -1
  69. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  70. package/lib/engine-components/ui/Raycaster.d.ts +18 -0
  71. package/lib/engine-components/ui/Raycaster.js +18 -0
  72. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  73. package/package.json +2 -2
  74. package/src/engine/api.ts +1 -0
  75. package/src/engine/engine_utils.ts +0 -229
  76. package/src/engine/engine_utils_attributes.ts +72 -0
  77. package/src/engine/engine_utils_qrcode.ts +266 -0
  78. package/src/engine/webcomponents/buttons.ts +1 -1
  79. package/src/engine-components/Animation.ts +1 -1
  80. package/src/engine-components/AnimationCurve.ts +4 -1
  81. package/src/engine-components/Animator.ts +3 -2
  82. package/src/engine-components/AnimatorController.ts +3 -0
  83. package/src/engine-components/LookAtConstraint.ts +6 -1
  84. package/src/engine-components/NeedleMenu.ts +1 -0
  85. package/src/engine-components/NestedGltf.ts +3 -0
  86. package/src/engine-components/ReflectionProbe.ts +4 -0
  87. package/src/engine-components/RendererLightmap.ts +7 -3
  88. package/src/engine-components/SeeThrough.ts +8 -1
  89. package/src/engine-components/Skybox.ts +3 -0
  90. package/src/engine-components/SpriteRenderer.ts +18 -2
  91. package/src/engine-components/export/usdz/ThreeUSDZExporter.ts +1 -1
  92. package/src/engine-components/splines/Spline.ts +3 -0
  93. package/src/engine-components/splines/SplineUtils.ts +3 -1
  94. package/src/engine-components/splines/SplineWalker.ts +3 -0
  95. package/src/engine-components/timeline/SignalAsset.ts +13 -2
  96. package/src/engine-components/ui/Raycaster.ts +19 -0
@@ -6,6 +6,9 @@ import { SplineContainer } from "./Spline.js";
6
6
  * Use this with a SplineContainer component.
7
7
  *
8
8
  * - Example http://samples.needle.tools/splines
9
+ *
10
+ * @category Splines
11
+ * @group Components
9
12
  */
10
13
  export declare class SplineWalker extends Behaviour {
11
14
  /**
@@ -14,6 +14,9 @@ import { SplineContainer } from "./Spline.js";
14
14
  * Use this with a SplineContainer component.
15
15
  *
16
16
  * - Example http://samples.needle.tools/splines
17
+ *
18
+ * @category Splines
19
+ * @group Components
17
20
  */
18
21
  export class SplineWalker extends Behaviour {
19
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SplineWalker.js","sourceRoot":"","sources":["../../../src/engine-components/splines/SplineWalker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplineWalker.js","sourceRoot":"","sources":["../../../src/engine-components/splines/SplineWalker.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,24 @@
1
1
  import { Behaviour } from "../Component.js";
2
2
  import { EventList } from "../EventList.js";
3
+ /**
4
+ * Used to reference a signal asset in a SignalReceiver. This is internally used by the {@link SignalReceiverEvent}.
5
+ */
3
6
  export declare class SignalAsset {
4
7
  guid: string;
5
8
  }
9
+ /**
10
+ * An event that links a signal to a reaction.
11
+ * Used internally by {@link SignalReceiver}.
12
+ */
6
13
  export declare class SignalReceiverEvent {
7
14
  signal: SignalAsset;
8
15
  reaction: EventList<void>;
9
16
  }
10
17
  /** SignalReceiver is a component that listens for signals and invokes a reaction when a signal is received.
11
- * Signals can be added to a signal track on a timeline
18
+ * Signals can be added to a signal track on a {@link PlayableDirector}
19
+ *
20
+ * @category Sequencing and Timelines
21
+ * @group Components
12
22
  */
13
23
  export declare class SignalReceiver extends Behaviour {
14
24
  private static receivers;
@@ -9,12 +9,19 @@ import { getParam } from "../../engine/engine_utils.js";
9
9
  import { Behaviour } from "../Component.js";
10
10
  import { EventList } from "../EventList.js";
11
11
  const debug = getParam("debugsignals");
12
+ /**
13
+ * Used to reference a signal asset in a SignalReceiver. This is internally used by the {@link SignalReceiverEvent}.
14
+ */
12
15
  export class SignalAsset {
13
16
  guid;
14
17
  }
15
18
  __decorate([
16
19
  serializable()
17
20
  ], SignalAsset.prototype, "guid", void 0);
21
+ /**
22
+ * An event that links a signal to a reaction.
23
+ * Used internally by {@link SignalReceiver}.
24
+ */
18
25
  export class SignalReceiverEvent {
19
26
  signal;
20
27
  reaction;
@@ -26,7 +33,10 @@ __decorate([
26
33
  serializable(EventList)
27
34
  ], SignalReceiverEvent.prototype, "reaction", void 0);
28
35
  /** SignalReceiver is a component that listens for signals and invokes a reaction when a signal is received.
29
- * Signals can be added to a signal track on a timeline
36
+ * Signals can be added to a signal track on a {@link PlayableDirector}
37
+ *
38
+ * @category Sequencing and Timelines
39
+ * @group Components
30
40
  */
31
41
  export class SignalReceiver extends Behaviour {
32
42
  static receivers = {};
@@ -1 +1 @@
1
- {"version":3,"file":"SignalAsset.js","sourceRoot":"","sources":["../../../src/engine-components/timeline/SignalAsset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignalAsset.js","sourceRoot":"","sources":["../../../src/engine-components/timeline/SignalAsset.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,12 @@ export declare abstract class Raycaster extends Behaviour {
11
11
  onDisable(): void;
12
12
  abstract performRaycast(_opts?: IRaycastOptions | RaycastOptions | null): Intersection[] | null;
13
13
  }
14
+ /**
15
+ * A Raycaster that performs raycasting against its own GameObject.
16
+ *
17
+ * @category Interaction
18
+ * @group Components
19
+ */
14
20
  export declare class ObjectRaycaster extends Raycaster {
15
21
  private targets;
16
22
  private raycastHits;
@@ -18,9 +24,21 @@ export declare class ObjectRaycaster extends Raycaster {
18
24
  start(): void;
19
25
  performRaycast(opts?: IRaycastOptions | RaycastOptions | null): Intersection[] | null;
20
26
  }
27
+ /**
28
+ * A Raycaster that performs raycasting against UI elements (objects with a CanvasRenderer component).
29
+ *
30
+ * @category UI
31
+ * @group Components
32
+ */
21
33
  export declare class GraphicRaycaster extends ObjectRaycaster {
22
34
  constructor();
23
35
  }
36
+ /**
37
+ * A Raycaster that performs sphere overlap raycasting for spatial grab interactions in XR.
38
+ *
39
+ * @category XR
40
+ * @group Components
41
+ */
24
42
  export declare class SpatialGrabRaycaster extends Raycaster {
25
43
  /**
26
44
  * Use to disable SpatialGrabRaycaster globally
@@ -25,6 +25,12 @@ export class Raycaster extends Behaviour {
25
25
  EventSystem.get(this.context)?.unregister(this);
26
26
  }
27
27
  }
28
+ /**
29
+ * A Raycaster that performs raycasting against its own GameObject.
30
+ *
31
+ * @category Interaction
32
+ * @group Components
33
+ */
28
34
  export class ObjectRaycaster extends Raycaster {
29
35
  targets = null;
30
36
  raycastHits = [];
@@ -61,6 +67,12 @@ export class ObjectRaycaster extends Raycaster {
61
67
  __decorate([
62
68
  serializable()
63
69
  ], ObjectRaycaster.prototype, "ignoreSkinnedMeshes", void 0);
70
+ /**
71
+ * A Raycaster that performs raycasting against UI elements (objects with a CanvasRenderer component).
72
+ *
73
+ * @category UI
74
+ * @group Components
75
+ */
64
76
  export class GraphicRaycaster extends ObjectRaycaster {
65
77
  // eventCamera: Camera | null = null;
66
78
  // ignoreReversedGraphics: boolean = false;
@@ -70,6 +82,12 @@ export class GraphicRaycaster extends ObjectRaycaster {
70
82
  this.ignoreSkinnedMeshes = true;
71
83
  }
72
84
  }
85
+ /**
86
+ * A Raycaster that performs sphere overlap raycasting for spatial grab interactions in XR.
87
+ *
88
+ * @category XR
89
+ * @group Components
90
+ */
73
91
  export class SpatialGrabRaycaster extends Raycaster {
74
92
  /**
75
93
  * Use to disable SpatialGrabRaycaster globally
@@ -1 +1 @@
1
- {"version":3,"file":"Raycaster.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Raycaster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Raycaster.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Raycaster.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "4.11.2",
3
+ "version": "4.11.3-next.2e95398",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
@@ -169,4 +169,4 @@
169
169
  "module": "lib/needle-engine.js",
170
170
  "typings": "lib/needle-engine.d.ts",
171
171
  "types": "lib/needle-engine.d.ts"
172
- }
172
+ }
package/src/engine/api.ts CHANGED
@@ -76,6 +76,7 @@ export { prefix, validate } from "./engine_util_decorator.js";
76
76
  export * from "./engine_utils.js";
77
77
  export * from "./engine_utils_format.js";
78
78
  export * from "./engine_utils_screenshot.js";
79
+ export { generateQRCode } from "./engine_utils_qrcode.js";
79
80
  export * from "./export/index.js";
80
81
  export * from "./extensions/index.js";
81
82
  export * from "./js-extensions/index.js";
@@ -3,11 +3,9 @@ import { Quaternion, Vector2, Vector3, Vector4 } from "three";
3
3
 
4
4
  declare type Vector = Vector2 | Vector3 | Vector4 | Quaternion;
5
5
 
6
- import { needleLogoOnlySVG } from "./assets/index.js";
7
6
  import type { Context } from "./engine_context.js";
8
7
  import { ContextRegistry } from "./engine_context_registry.js";
9
8
  import { type SourceIdentifier } from "./engine_types.js";
10
- import type { NeedleEngineWebComponent } from "./webcomponents/needle-engine.js";
11
9
 
12
10
  // https://schneidenbach.gitbooks.io/typescript-cookbook/content/nameof-operator.html
13
11
  /** @internal */
@@ -899,230 +897,3 @@ export async function PromiseAllWithErrors<T>(promise: Promise<T>[]): Promise<{
899
897
 
900
898
 
901
899
 
902
-
903
-
904
- /** Generates a QR code HTML image using https://github.com/davidshimjs/qrcodejs
905
- * @param args.text The text to encode
906
- * @param args.width The width of the QR code
907
- * @param args.height The height of the QR code
908
- * @param args.colorDark The color of the dark squares
909
- * @param args.colorLight The color of the light squares
910
- * @param args.correctLevel The error correction level to use
911
- * @param args.showLogo If true, the same logo as for the Needle loading screen will be drawn in the center of the QR code
912
- * @param args.showUrl If true, the URL will be shown below the QR code
913
- * @param args.domElement The dom element to append the QR code to. If not provided a new div will be created and returned
914
- * @returns The dom element containing the QR code
915
- */
916
- export async function generateQRCode(args: { domElement?: HTMLElement, text: string, width?: number, height?: number, colorDark?: string, colorLight?: string, correctLevel?: any, showLogo?: boolean, showUrl?: boolean }): Promise<HTMLElement> {
917
-
918
- // Ensure that the QRCode library is loaded
919
- if (!globalThis["QRCode"]) {
920
- const url = "https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js";
921
- let script = document.head.querySelector(`script[src="${url}"]`) as HTMLScriptElement;
922
- if (!script) {
923
- script = document.createElement("script");
924
- script.src = url;
925
- document.head.appendChild(script);
926
- }
927
-
928
- await new Promise((resolve, _reject) => {
929
- script.addEventListener("load", () => {
930
- resolve(true);
931
- });
932
- });
933
- }
934
-
935
- const QRCODE = globalThis["QRCode"];
936
- const target = args.domElement ?? document.createElement("div");
937
- const qrCode = new QRCODE(target, {
938
- width: args.width ?? 256,
939
- height: args.height ?? 256,
940
- colorDark: "#000000",
941
- colorLight: "#ffffff",
942
- correctLevel: args.showLogo ? QRCODE.CorrectionLevel.H : QRCODE.CorrectLevel.M,
943
- ...args,
944
- });
945
-
946
- // Number of rows/columns of the generated QR code
947
- const moduleCount = qrCode?._oQRCode.moduleCount || 0;
948
- const canvas = qrCode?._oDrawing?._elCanvas as HTMLCanvasElement;
949
-
950
- let sizePercentage = 0.25;
951
- if (moduleCount < 40)
952
- sizePercentage = Math.floor(moduleCount / 4) / moduleCount;
953
- else
954
- sizePercentage = Math.floor(moduleCount / 6) / moduleCount;
955
-
956
- const paddingPercentage = Math.floor(moduleCount / 20) / moduleCount;
957
- try {
958
- const img = await addOverlays(canvas, { showLogo: args.showLogo, logoSize: sizePercentage, logoPadding: paddingPercentage }).catch(_e => { /** ignore */ });
959
- if (img) {
960
- target.innerHTML = "";
961
- target.append(img);
962
- }
963
- }
964
- catch { } // Ignore
965
-
966
- if (args.showUrl !== false && args.text) {
967
- // Add link label below the QR code
968
- // Clean up the text. If it's a URL: remove the protocol, www. part, trailing slashes or trailing question marks
969
- const existingLabel = target.querySelector(".qr-code-link-label");
970
- let displayText = args.text.replace(/^(https?:\/\/)?(www\.)?/, "").replace(/\/+$/, "").replace(/\?+$/, "");
971
- displayText = "Scan to visit " + displayText;
972
- if (existingLabel) {
973
- existingLabel.textContent = displayText;
974
- } else {
975
- // Create a new label
976
- const linkLabel = document.createElement("div");
977
- linkLabel.classList.add("qr-code-link-label");
978
- args.text = displayText;
979
- linkLabel.textContent = args.text;
980
- linkLabel.addEventListener("click", (ev) => {
981
- // Prevent the QR panel from closing
982
- ev.stopImmediatePropagation();
983
- });
984
-
985
- linkLabel.style.textAlign = "center";
986
- linkLabel.style.fontSize = "0.8em";
987
- linkLabel.style.marginTop = "0.1em";
988
- linkLabel.style.color = "#000000";
989
- linkLabel.style.fontFamily = "'Roboto Flex', sans-serif";
990
- linkLabel.style.opacity = "0.5";
991
- linkLabel.style.wordBreak = "break-all";
992
- linkLabel.style.wordWrap = "break-word";
993
- linkLabel.style.marginBottom = "0.3em";
994
-
995
- // Ensure max. width
996
- target.style.width = "calc(210px + 20px)";
997
-
998
- target.appendChild(linkLabel);
999
- }
1000
- }
1001
-
1002
- return target;
1003
- }
1004
-
1005
- async function addOverlays(canvas: HTMLCanvasElement, args: { showLogo?: boolean, logoSize?: number, logoPadding?: number }): Promise<HTMLImageElement | void> {
1006
- if (!canvas) return;
1007
-
1008
- // Internal settings
1009
- const canvasPadding = 8;
1010
- const shadowBlur = 20;
1011
- const rectanglePadding = args.logoPadding || 1. / 32;
1012
- // With dropshadow under the logo
1013
- /*
1014
- const shadowColor = "#00000099";
1015
- const rectangleRadius = 0.4 * 16;
1016
- */
1017
- // Without dropshadow under the logo
1018
- const shadowColor = "transparent";
1019
- const rectangleRadius = 0;
1020
-
1021
- // Draw the website's icon in the center of the QR code
1022
- const faviconImage = new Image();
1023
- const element = document.querySelector("needle-engine") as NeedleEngineWebComponent;
1024
- const logoSrc = element?.getAttribute("loading-logo-src") || needleLogoOnlySVG;
1025
- if (!logoSrc) return;
1026
-
1027
- let haveLogo = false;
1028
- if (args.showLogo !== false) {
1029
- faviconImage.src = logoSrc;
1030
- haveLogo = await new Promise((resolve, _reject) => {
1031
- faviconImage.onload = () => resolve(true);
1032
- faviconImage.onerror = (err) => {
1033
- console.error("Error loading favicon image for QR code", err);
1034
- resolve(false);
1035
- };
1036
- });
1037
- }
1038
-
1039
- // Add some padding around the canvas – we need to copy the QR code image to a larger canvas
1040
- const paddedCanvas = document.createElement("canvas");
1041
- paddedCanvas.width = canvas.width + canvasPadding;
1042
- paddedCanvas.height = canvas.height + canvasPadding;
1043
- const paddedContext = paddedCanvas.getContext("2d");
1044
- if (!paddedContext) {
1045
- return;
1046
- }
1047
-
1048
- // Clear with white
1049
- paddedContext.fillStyle = "#ffffff";
1050
- paddedContext.fillRect(0, 0, paddedCanvas.width, paddedCanvas.height);
1051
- paddedContext.drawImage(canvas, canvasPadding / 2, canvasPadding / 2);
1052
-
1053
- // Enable anti-aliasing
1054
- paddedContext.imageSmoothingEnabled = true;
1055
- paddedContext.imageSmoothingQuality = "high";
1056
- // @ts-ignore
1057
- paddedContext.mozImageSmoothingEnabled = true;
1058
- // @ts-ignore
1059
- paddedContext.webkitImageSmoothingEnabled = true;
1060
-
1061
- // Draw a slight gradient background with 10% opacity and "lighten" composite operation
1062
- paddedContext.globalCompositeOperation = "lighten";
1063
- const gradient = paddedContext.createLinearGradient(0, 0, 0, paddedCanvas.height);
1064
- gradient.addColorStop(0, "rgb(45, 45, 45)");
1065
- gradient.addColorStop(1, "rgb(45, 45, 45)");
1066
- paddedContext.fillStyle = gradient;
1067
- paddedContext.fillRect(0, 0, paddedCanvas.width, paddedCanvas.height);
1068
- paddedContext.globalCompositeOperation = "source-over";
1069
-
1070
-
1071
- let sizeX = Math.min(canvas.width, canvas.height) * (args.logoSize || 0.25);
1072
- let sizeY = sizeX;
1073
-
1074
- if (haveLogo) {
1075
- // Get aspect of image
1076
- const aspect = faviconImage.width / faviconImage.height;
1077
- if (aspect > 1) sizeY = sizeX / aspect;
1078
- else sizeX = sizeY * aspect;
1079
-
1080
- const rectanglePaddingPx = rectanglePadding * canvas.width;
1081
-
1082
- // Apply padding
1083
- const sizeForBackground = Math.max(sizeX, sizeY);
1084
- const sizeXPadded = Math.round(sizeForBackground + rectanglePaddingPx);
1085
- const sizeYPadded = Math.round(sizeForBackground + rectanglePaddingPx);
1086
- const x = (paddedCanvas.width - sizeForBackground) / 2;
1087
- const y = (paddedCanvas.height - sizeForBackground) / 2;
1088
-
1089
- // Draw shape with blurred shadow
1090
- paddedContext.shadowColor = shadowColor;
1091
- paddedContext.shadowBlur = shadowBlur;
1092
-
1093
- // Draw rounded rectangle with radius
1094
- // Convert 0.4rem to pixels, taking DPI into account
1095
- const radius = rectangleRadius;
1096
- const xPadded = Math.round(x - rectanglePaddingPx / 2);
1097
- const yPadded = Math.round(y - rectanglePaddingPx / 2);
1098
- paddedContext.beginPath();
1099
- paddedContext.moveTo(xPadded + radius, yPadded);
1100
- paddedContext.lineTo(xPadded + sizeXPadded - radius, yPadded);
1101
- paddedContext.quadraticCurveTo(xPadded + sizeXPadded, yPadded, xPadded + sizeXPadded, yPadded + radius);
1102
- paddedContext.lineTo(xPadded + sizeXPadded, yPadded + sizeYPadded - radius);
1103
- paddedContext.quadraticCurveTo(xPadded + sizeXPadded, yPadded + sizeYPadded, xPadded + sizeXPadded - radius, yPadded + sizeYPadded);
1104
- paddedContext.lineTo(xPadded + radius, yPadded + sizeYPadded);
1105
- paddedContext.quadraticCurveTo(xPadded, yPadded + sizeYPadded, xPadded, yPadded + sizeYPadded - radius);
1106
- paddedContext.lineTo(xPadded, yPadded + radius);
1107
- paddedContext.quadraticCurveTo(xPadded, yPadded, xPadded + radius, yPadded);
1108
- paddedContext.fillStyle = "#ffffff";
1109
- paddedContext.closePath();
1110
- paddedContext.fill();
1111
- paddedContext.clip();
1112
-
1113
- // Reset shadow and draw favicon
1114
- paddedContext.shadowColor = "transparent";
1115
- const logoX = (paddedCanvas.width - sizeX) / 2;
1116
- const logoY = (paddedCanvas.height - sizeY) / 2;
1117
- paddedContext.drawImage(faviconImage, logoX, logoY, sizeX, sizeY);
1118
- }
1119
-
1120
- // Replace the canvas with the padded one
1121
- const paddedImage = paddedCanvas.toDataURL("image/png");
1122
- const img = document.createElement("img");
1123
- img.src = paddedImage;
1124
- img.style.width = "100%";
1125
- img.style.height = "auto";
1126
-
1127
- return img;
1128
- }
@@ -0,0 +1,72 @@
1
+
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export namespace InternalAttributeUtils {
7
+
8
+ /**
9
+ * Checks if the given value is considered "falsey" in the context of HTML attributes.
10
+ * A value is considered falsey if it is "0" or "false" (case-insensitive).
11
+ *
12
+ * @param value - The attribute value to check.
13
+ * @returns True if the value is falsey, otherwise false.
14
+ */
15
+ export function isFalsey(value: string | null): boolean {
16
+ return value === "0" || value?.toLowerCase() === "false";
17
+ }
18
+
19
+ /**
20
+ * Retrieves the value of the specified attribute from the given element.
21
+ * If the attribute value is considered falsey, it returns null.
22
+ * @returns The attribute value or null if falsey.
23
+ */
24
+ export function getAttributeValueIfNotFalsey(element: Element, attributeName: string, opts?: { onAttribute: (value: string) => void }): string | null {
25
+ const attrValue = element.getAttribute(attributeName);
26
+ if (isFalsey(attrValue)) {
27
+ return null;
28
+ }
29
+ opts?.onAttribute?.call(null, attrValue!);
30
+ return attrValue;
31
+ }
32
+
33
+ /**
34
+ * Retrieves the value of the specified attribute from the given element.
35
+ * If the attribute value is considered falsey, it returns false.
36
+ * If the attribute is not set at all, it returns null.
37
+ * @returns The attribute value, false if falsey, or null if not set.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const result = HTMLAttributeUtils.getAttributeAndCheckFalsey(element, 'data-example', {
42
+ * onAttribute: (value, falsey) => {
43
+ * console.log(`Attribute value: ${value}
44
+ * , Is falsey: ${falsey}`);
45
+ * }
46
+ * });
47
+ *
48
+ * if (result === false) {
49
+ * console.log('The attribute is set to a falsey value.');
50
+ * } else if (result === null) {
51
+ * console.log('The attribute is not set.');
52
+ * } else {
53
+ * console.log(`The attribute value is: ${result}`);
54
+ * }
55
+ * ```
56
+ */
57
+ export function getAttributeAndCheckFalsey(element: Element, attributeName: string, opts?: { onAttribute: (value: string, falsey:boolean) => void }): false | string | null {
58
+ const attrValue = element.getAttribute(attributeName);
59
+ // If the attribute is not set at all we just return
60
+ if(attrValue === null) {
61
+ return null;
62
+ }
63
+ if (isFalsey(attrValue)) {
64
+ opts?.onAttribute?.call(null, attrValue!, true);
65
+ return false;
66
+ }
67
+ opts?.onAttribute?.call(null, attrValue!, false);
68
+ return attrValue;
69
+ }
70
+
71
+ }
72
+