@builder.io/sdk-solid 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sdk-solid.cjs +34 -0
- package/dist/sdk-solid.js +3937 -0
- package/package.json +5 -6
- package/src/blocks/BaseText.jsx +5 -1
- package/src/blocks/button/button.jsx +25 -7
- package/src/blocks/columns/columns.jsx +84 -38
- package/src/blocks/custom-code/custom-code.jsx +25 -3
- package/src/blocks/embed/embed.jsx +14 -2
- package/src/blocks/form/form.jsx +175 -121
- package/src/blocks/fragment/fragment.jsx +2 -1
- package/src/blocks/image/image.jsx +75 -38
- package/src/blocks/img/img.jsx +15 -5
- package/src/blocks/input/input.jsx +17 -2
- package/src/blocks/raw-text/raw-text.jsx +8 -2
- package/src/blocks/section/section.jsx +24 -14
- package/src/blocks/select/select.jsx +21 -6
- package/src/blocks/submit-button/submit-button.jsx +6 -3
- package/src/blocks/symbol/symbol.jsx +54 -15
- package/src/blocks/text/text.jsx +2 -1
- package/src/blocks/textarea/textarea.jsx +11 -2
- package/src/blocks/video/video.jsx +49 -27
- package/src/components/render-block/block-styles.jsx +45 -21
- package/src/components/render-block/render-block.helpers.js +90 -0
- package/src/components/render-block/render-block.jsx +110 -131
- package/src/components/render-block/render-component.jsx +26 -9
- package/src/components/render-block/render-repeated-block.jsx +20 -24
- package/src/components/render-blocks.jsx +70 -30
- package/src/components/render-content/builder-editing.jsx +2 -1
- package/src/components/render-content/components/render-styles.jsx +17 -8
- package/src/components/render-content/render-content.jsx +234 -148
- package/src/components/render-inlined-styles.jsx +14 -4
- package/src/functions/track/helpers.js +50 -0
- package/src/functions/{track.js → track/index.js} +10 -6
- package/src/functions/track/interaction.js +53 -0
- package/src/index.js +1 -1
- package/vite.config.ts +18 -0
- package/solid-index.jsx +0 -5
- package/src/components/render-block/render-component-with-context.jsx +0 -28
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
function round(num) {
|
|
2
|
+
return Math.round(num * 1e3) / 1e3;
|
|
3
|
+
}
|
|
4
|
+
const findParentElement = (target, callback, checkElement = true) => {
|
|
5
|
+
if (!(target instanceof HTMLElement)) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
let parent = checkElement ? target : target.parentElement;
|
|
9
|
+
do {
|
|
10
|
+
if (!parent) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const matches = callback(parent);
|
|
14
|
+
if (matches) {
|
|
15
|
+
return parent;
|
|
16
|
+
}
|
|
17
|
+
} while (parent = parent.parentElement);
|
|
18
|
+
return null;
|
|
19
|
+
};
|
|
20
|
+
const findBuilderParent = (target) => findParentElement(target, (el) => {
|
|
21
|
+
const id = el.getAttribute("builder-id") || el.id;
|
|
22
|
+
return Boolean((id == null ? void 0 : id.indexOf("builder-")) === 0);
|
|
23
|
+
});
|
|
24
|
+
const computeOffset = ({
|
|
25
|
+
event,
|
|
26
|
+
target
|
|
27
|
+
}) => {
|
|
28
|
+
const targetRect = target.getBoundingClientRect();
|
|
29
|
+
const xOffset = event.clientX - targetRect.left;
|
|
30
|
+
const yOffset = event.clientY - targetRect.top;
|
|
31
|
+
const xRatio = round(xOffset / targetRect.width);
|
|
32
|
+
const yRatio = round(yOffset / targetRect.height);
|
|
33
|
+
return {
|
|
34
|
+
x: xRatio,
|
|
35
|
+
y: yRatio
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const getInteractionPropertiesForEvent = (event) => {
|
|
39
|
+
const target = event.target;
|
|
40
|
+
const targetBuilderElement = target && findBuilderParent(target);
|
|
41
|
+
const builderId = (targetBuilderElement == null ? void 0 : targetBuilderElement.getAttribute("builder-id")) || (targetBuilderElement == null ? void 0 : targetBuilderElement.id);
|
|
42
|
+
return {
|
|
43
|
+
targetBuilderElement: builderId || void 0,
|
|
44
|
+
metadata: {
|
|
45
|
+
targetOffset: target ? computeOffset({ event, target }) : void 0,
|
|
46
|
+
builderTargetOffset: targetBuilderElement ? computeOffset({ event, target: targetBuilderElement }) : void 0,
|
|
47
|
+
builderElementIndex: targetBuilderElement && builderId ? [].slice.call(document.getElementsByClassName(builderId)).indexOf(targetBuilderElement) : void 0
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
getInteractionPropertiesForEvent
|
|
53
|
+
};
|
package/src/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export * from "./functions/register.js";
|
|
|
8
8
|
export * from "./functions/set-editor-settings.js";
|
|
9
9
|
export * from "./functions/get-content/index.js";
|
|
10
10
|
export * from "./functions/get-builder-search-params/index.js";
|
|
11
|
-
import { track } from "./functions/track";
|
|
11
|
+
import { track } from "./functions/track/index.js";
|
|
12
12
|
export {
|
|
13
13
|
track
|
|
14
14
|
};
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { defineConfig } from 'vite';
|
|
3
|
+
import solidPlugin from 'vite-plugin-solid';
|
|
4
|
+
// import dts from 'vite-plugin-dts';
|
|
5
|
+
|
|
6
|
+
// https://vitejs.dev/config/
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
plugins: [
|
|
9
|
+
solidPlugin(),
|
|
10
|
+
// dts({ insertTypesEntry: true })
|
|
11
|
+
],
|
|
12
|
+
build: {
|
|
13
|
+
lib: {
|
|
14
|
+
entry: resolve(__dirname, 'src/index.js'),
|
|
15
|
+
formats: ['cjs', 'es'],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
package/solid-index.jsx
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Dynamic } from "solid-js/web";
|
|
2
|
-
import BuilderContext from "../../context/builder.context.js";
|
|
3
|
-
import RenderComponent from "./render-component.jsx";
|
|
4
|
-
function RenderComponentWithContext(props) {
|
|
5
|
-
return <Dynamic value={{
|
|
6
|
-
get content() {
|
|
7
|
-
return props.context.content;
|
|
8
|
-
},
|
|
9
|
-
get state() {
|
|
10
|
-
return props.context.state;
|
|
11
|
-
},
|
|
12
|
-
get context() {
|
|
13
|
-
return props.context.context;
|
|
14
|
-
},
|
|
15
|
-
get apiKey() {
|
|
16
|
-
return props.context.apiKey;
|
|
17
|
-
},
|
|
18
|
-
get registeredComponents() {
|
|
19
|
-
return props.context.registeredComponents;
|
|
20
|
-
},
|
|
21
|
-
get inheritedStyles() {
|
|
22
|
-
return props.context.inheritedStyles;
|
|
23
|
-
}
|
|
24
|
-
}} component={BuilderContext.Provider}>
|
|
25
|
-
<RenderComponent componentRef={props.componentRef} componentOptions={props.componentOptions} blockChildren={props.blockChildren} context={props.context}></RenderComponent>
|
|
26
|
-
</Dynamic>;
|
|
27
|
-
}
|
|
28
|
-
export default RenderComponentWithContext;
|