@builder.io/sdk-svelte 0.0.1-3 → 0.0.1-32

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 (91) hide show
  1. package/README.md +19 -0
  2. package/package.json +8 -1
  3. package/src/blocks/button/button.svelte +35 -48
  4. package/src/blocks/columns/columns.svelte +137 -103
  5. package/src/blocks/columns/component-info.js +26 -1
  6. package/src/blocks/custom-code/custom-code.svelte +58 -53
  7. package/src/blocks/embed/component-info.js +21 -1
  8. package/src/blocks/embed/embed.svelte +45 -57
  9. package/src/blocks/embed/helpers.js +9 -0
  10. package/src/blocks/form/form.svelte +313 -296
  11. package/src/blocks/fragment/fragment.svelte +9 -25
  12. package/src/blocks/image/component-info.js +48 -1
  13. package/src/blocks/image/image.helpers.js +48 -0
  14. package/src/blocks/image/image.svelte +146 -117
  15. package/src/blocks/img/img.svelte +48 -36
  16. package/src/blocks/input/input.svelte +30 -31
  17. package/src/blocks/raw-text/raw-text.svelte +12 -26
  18. package/src/blocks/section/section.svelte +30 -36
  19. package/src/blocks/select/select.svelte +30 -37
  20. package/src/blocks/submit-button/submit-button.svelte +12 -30
  21. package/src/blocks/symbol/component-info.js +1 -0
  22. package/src/blocks/symbol/symbol.svelte +88 -53
  23. package/src/blocks/text/text.svelte +8 -25
  24. package/src/blocks/textarea/textarea.svelte +16 -29
  25. package/src/blocks/util.js +7 -0
  26. package/src/blocks/video/video.svelte +88 -41
  27. package/src/components/render-block/block-styles.svelte +58 -51
  28. package/src/components/render-block/render-block.helpers.js +23 -0
  29. package/src/components/render-block/render-block.svelte +204 -160
  30. package/src/components/render-block/render-component.svelte +30 -0
  31. package/src/components/render-block/render-repeated-block.svelte +45 -0
  32. package/src/components/render-block/types.js +0 -0
  33. package/src/components/render-blocks.svelte +88 -80
  34. package/src/components/render-content/components/render-styles.svelte +59 -63
  35. package/src/components/render-content/index.js +4 -0
  36. package/src/components/render-content/render-content.svelte +316 -207
  37. package/src/components/render-inlined-styles.svelte +26 -48
  38. package/src/constants/builder-registered-components.js +51 -0
  39. package/src/constants/device-sizes.js +3 -21
  40. package/src/context/builder.context.js +7 -1
  41. package/src/functions/camel-to-kebab-case.js +4 -0
  42. package/src/functions/convert-style-object.js +6 -0
  43. package/src/functions/get-block-component-options.js +6 -1
  44. package/src/functions/get-block-styles.js +7 -4
  45. package/src/functions/get-builder-search-params/index.js +12 -1
  46. package/src/functions/get-content/ab-testing.js +38 -0
  47. package/src/functions/get-content/fn.test.js +1 -1
  48. package/src/functions/get-content/index.js +16 -58
  49. package/src/functions/get-content/types.js +0 -0
  50. package/src/functions/get-fetch.js +2 -2
  51. package/src/functions/get-processed-block.js +19 -8
  52. package/src/functions/get-processed-block.test.js +2 -1
  53. package/src/functions/register-component.js +45 -26
  54. package/src/functions/sanitize-styles.js +5 -0
  55. package/src/functions/track.js +71 -2
  56. package/src/helpers/cookie.js +59 -0
  57. package/src/helpers/css.js +12 -0
  58. package/src/helpers/flatten.js +34 -0
  59. package/src/helpers/localStorage.js +34 -0
  60. package/src/helpers/nullable.js +4 -0
  61. package/src/helpers/sessionId.js +26 -0
  62. package/src/helpers/time.js +5 -0
  63. package/src/helpers/url.js +10 -0
  64. package/src/helpers/url.test.js +15 -0
  65. package/src/helpers/uuid.js +13 -0
  66. package/src/helpers/visitorId.js +33 -0
  67. package/src/index-helpers/blocks-exports.js +10 -8
  68. package/src/scripts/init-editing.js +4 -5
  69. package/src/types/can-track.js +0 -0
  70. package/src/types/components.js +0 -0
  71. package/src/types/element.js +0 -0
  72. package/src/blocks/button/index.js +0 -7
  73. package/src/blocks/columns/index.js +0 -7
  74. package/src/blocks/custom-code/index.js +0 -7
  75. package/src/blocks/embed/index.js +0 -7
  76. package/src/blocks/form/index.js +0 -7
  77. package/src/blocks/fragment/index.js +0 -7
  78. package/src/blocks/image/index.js +0 -7
  79. package/src/blocks/img/index.js +0 -7
  80. package/src/blocks/input/index.js +0 -7
  81. package/src/blocks/raw-text/index.js +0 -7
  82. package/src/blocks/section/index.js +0 -7
  83. package/src/blocks/select/index.js +0 -7
  84. package/src/blocks/submit-button/index.js +0 -7
  85. package/src/blocks/symbol/index.js +0 -7
  86. package/src/blocks/text/index.js +0 -7
  87. package/src/blocks/textarea/index.js +0 -7
  88. package/src/blocks/video/index.js +0 -7
  89. package/src/components/error-boundary.svelte +0 -26
  90. package/src/functions/macro-eval.js +0 -5
  91. package/src/functions/previewing-model-name.js +0 -11
@@ -1,63 +1,51 @@
1
- <script>
2
- import { onMount } from 'svelte'
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- export let elem;
13
- export let content;
14
-
15
- function findAndRunScripts() {
16
- // TODO: Move this function to standalone one in '@builder.io/utils'
17
- if (elem && typeof window !== 'undefined') {
18
- /** @type {HTMLScriptElement[]} */
19
- const scripts = elem.getElementsByTagName('script');
20
-
21
- for (let i = 0; i < scripts.length; i++) {
22
- const script = scripts[i];
23
-
24
- if (script.src) {
25
- if (scriptsInserted.includes(script.src)) {
26
- continue;
1
+ <script context="module" lang="ts">
2
+ export interface EmbedProps {
3
+ content: string;
4
+ }
5
+ </script>
6
+
7
+ <script lang="ts">
8
+ import { afterUpdate } from "svelte";
9
+
10
+ import { isJsScript } from "./helpers";
11
+
12
+ export let elem: EmbedProps["elem"];
13
+ export let content: EmbedProps["content"];
14
+
15
+ const findAndRunScripts = function findAndRunScripts() {
16
+ const scripts = elem.getElementsByTagName("script");
17
+
18
+ for (let i = 0; i < scripts.length; i++) {
19
+ const script = scripts[i];
20
+
21
+ if (script.src && !scriptsInserted.includes(script.src)) {
22
+ scriptsInserted.push(script.src);
23
+ const newScript = document.createElement("script");
24
+ newScript.async = true;
25
+ newScript.src = script.src;
26
+ document.head.appendChild(newScript);
27
+ } else if (isJsScript(script) && !scriptsRun.includes(script.innerText)) {
28
+ try {
29
+ scriptsRun.push(script.innerText);
30
+ new Function(script.innerText)();
31
+ } catch (error) {
32
+ console.warn("`Embed`: Error running script:", error);
33
+ }
27
34
  }
35
+ }
36
+ };
28
37
 
29
- scriptsInserted.push(script.src);
30
- const newScript = document.createElement('script');
31
- newScript.async = true;
32
- newScript.src = script.src;
33
- document.head.appendChild(newScript);
34
- } else if (!script.type || ['text/javascript', 'application/javascript', 'application/ecmascript'].includes(script.type)) {
35
- if (scriptsRun.includes(script.innerText)) {
36
- continue;
37
- }
38
+ let scriptsInserted = [];
39
+ let scriptsRun = [];
40
+ let ranInitFn = false;
38
41
 
39
- try {
40
- scriptsRun.push(script.innerText);
41
- new Function(script.innerText)();
42
- } catch (error) {
43
- console.warn('`Embed`: Error running script:', error);
44
- }
42
+ function onUpdateFn_0() {
43
+ if (elem && !ranInitFn) {
44
+ ranInitFn = true;
45
+ findAndRunScripts();
45
46
  }
46
47
  }
47
- }
48
- }
49
-
50
-
51
-
52
-
53
- let scriptsInserted = [];
54
- let scriptsRun = [];
55
-
56
- onMount(() => { findAndRunScripts(); });
57
-
58
-
59
-
60
-
61
- </script>
48
+ $: onUpdateFn_0(...[elem, ranInitFn]);
49
+ </script>
62
50
 
63
- <div class="builder-embed" bind:this={elem} >{@html content}</div>
51
+ <div class="builder-embed" bind:this={elem}>{@html content}</div>
@@ -0,0 +1,9 @@
1
+ const SCRIPT_MIME_TYPES = [
2
+ "text/javascript",
3
+ "application/javascript",
4
+ "application/ecmascript"
5
+ ];
6
+ const isJsScript = (script) => SCRIPT_MIME_TYPES.includes(script.type);
7
+ export {
8
+ isJsScript
9
+ };