@builder.io/mitosis 0.4.0 → 0.4.2
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/src/constants/media-sizes.js +4 -5
- package/dist/src/generators/alpine/generate.js +114 -132
- package/dist/src/generators/alpine/render-mount-hook.js +8 -5
- package/dist/src/generators/alpine/render-update-hooks.js +13 -13
- package/dist/src/generators/angular/helpers.js +19 -9
- package/dist/src/generators/angular/index.js +599 -584
- package/dist/src/generators/builder.js +200 -165
- package/dist/src/generators/context/angular.js +32 -26
- package/dist/src/generators/context/helpers/context-with-symbol-key.js +25 -21
- package/dist/src/generators/context/qwik.js +21 -21
- package/dist/src/generators/context/react.js +22 -22
- package/dist/src/generators/context/rsc.js +20 -22
- package/dist/src/generators/context/solid.js +22 -22
- package/dist/src/generators/context/svelte.js +33 -28
- package/dist/src/generators/context/vue.js +1 -1
- package/dist/src/generators/helpers/context.js +6 -13
- package/dist/src/generators/helpers/functions.js +8 -8
- package/dist/src/generators/helpers/on-mount.js +9 -5
- package/dist/src/generators/helpers/rsc.js +7 -9
- package/dist/src/generators/html.js +995 -534
- package/dist/src/generators/liquid.js +81 -79
- package/dist/src/generators/lit/collect-class-string.js +10 -12
- package/dist/src/generators/lit/generate.js +204 -159
- package/dist/src/generators/marko/generate.js +193 -183
- package/dist/src/generators/minify.js +5 -9
- package/dist/src/generators/mitosis.js +135 -134
- package/dist/src/generators/qwik/component-generator.js +159 -154
- package/dist/src/generators/qwik/component.js +51 -81
- package/dist/src/generators/qwik/directives.js +68 -84
- package/dist/src/generators/qwik/helpers/add-prevent-default.js +6 -7
- package/dist/src/generators/qwik/helpers/convert-method-to-function.js +38 -38
- package/dist/src/generators/qwik/helpers/handlers.js +16 -25
- package/dist/src/generators/qwik/helpers/stable-inject.js +7 -8
- package/dist/src/generators/qwik/helpers/stable-serialize.js +7 -8
- package/dist/src/generators/qwik/helpers/state.js +36 -43
- package/dist/src/generators/qwik/helpers/styles.js +19 -40
- package/dist/src/generators/qwik/jsx.js +63 -75
- package/dist/src/generators/qwik/src-generator.js +134 -167
- package/dist/src/generators/react/blocks.js +122 -127
- package/dist/src/generators/react/generator.js +314 -259
- package/dist/src/generators/react/helpers.js +23 -28
- package/dist/src/generators/react/state.js +34 -51
- package/dist/src/generators/react-native/index.js +72 -84
- package/dist/src/generators/react-native/sanitize-react-native-block-styles.js +14 -26
- package/dist/src/generators/rsc.js +30 -36
- package/dist/src/generators/solid/blocks.js +46 -43
- package/dist/src/generators/solid/helpers/styles.js +11 -11
- package/dist/src/generators/solid/index.js +199 -190
- package/dist/src/generators/solid/state/helpers.js +76 -90
- package/dist/src/generators/solid/state/signals.js +30 -37
- package/dist/src/generators/solid/state/state.js +35 -48
- package/dist/src/generators/solid/state/store.js +40 -46
- package/dist/src/generators/stencil/collect-class-string.js +10 -12
- package/dist/src/generators/stencil/generate.js +158 -145
- package/dist/src/generators/svelte/blocks.js +146 -144
- package/dist/src/generators/svelte/helpers.js +10 -17
- package/dist/src/generators/svelte/svelte.js +321 -287
- package/dist/src/generators/swift-ui.js +162 -101
- package/dist/src/generators/taro.js +32 -36
- package/dist/src/generators/template.js +71 -74
- package/dist/src/generators/vue/blocks.js +116 -107
- package/dist/src/generators/vue/compositionApi.js +67 -50
- package/dist/src/generators/vue/helpers.js +71 -96
- package/dist/src/generators/vue/optionsApi.js +134 -105
- package/dist/src/generators/vue/vue.js +210 -207
- package/dist/src/helpers/babel-transform.js +40 -63
- package/dist/src/helpers/bindings.js +4 -12
- package/dist/src/helpers/camel-case.js +4 -5
- package/dist/src/helpers/capitalize.js +1 -1
- package/dist/src/helpers/component-file-extensions.js +23 -35
- package/dist/src/helpers/create-mitosis-component.js +22 -26
- package/dist/src/helpers/create-mitosis-context.js +5 -12
- package/dist/src/helpers/create-mitosis-node.js +10 -12
- package/dist/src/helpers/dash-case.js +2 -2
- package/dist/src/helpers/dedent.js +18 -22
- package/dist/src/helpers/event-handlers.js +1 -1
- package/dist/src/helpers/fast-clone.js +1 -1
- package/dist/src/helpers/filter-empty-text-nodes.js +2 -2
- package/dist/src/helpers/generic-format.js +7 -8
- package/dist/src/helpers/get-bindings.js +4 -4
- package/dist/src/helpers/get-components-used.js +3 -3
- package/dist/src/helpers/get-components.js +4 -4
- package/dist/src/helpers/get-custom-imports.js +10 -12
- package/dist/src/helpers/get-prop-functions.js +7 -8
- package/dist/src/helpers/get-props-ref.js +8 -8
- package/dist/src/helpers/get-props.js +12 -13
- package/dist/src/helpers/get-refs.js +4 -4
- package/dist/src/helpers/get-state-object-string.js +42 -61
- package/dist/src/helpers/get-state-used.js +7 -8
- package/dist/src/helpers/get-styles.js +6 -6
- package/dist/src/helpers/getters-to-functions.js +8 -12
- package/dist/src/helpers/handle-missing-state.js +3 -3
- package/dist/src/helpers/has-bindings-text.js +6 -6
- package/dist/src/helpers/has-component.js +4 -4
- package/dist/src/helpers/has-props.js +3 -3
- package/dist/src/helpers/has-stateful-dom.js +4 -4
- package/dist/src/helpers/has.js +3 -3
- package/dist/src/helpers/indent.js +2 -3
- package/dist/src/helpers/is-children.js +4 -5
- package/dist/src/helpers/is-component.js +1 -1
- package/dist/src/helpers/is-html-attribute.js +2 -11
- package/dist/src/helpers/is-mitosis-node.js +1 -1
- package/dist/src/helpers/is-root-text-node.js +1 -1
- package/dist/src/helpers/is-upper-case.js +1 -1
- package/dist/src/helpers/is-valid-attribute-name.js +1 -1
- package/dist/src/helpers/json.js +2 -2
- package/dist/src/helpers/map-refs.js +29 -40
- package/dist/src/helpers/merge-options.js +20 -31
- package/dist/src/helpers/mitosis-imports.js +5 -6
- package/dist/src/helpers/nodes/for.js +2 -3
- package/dist/src/helpers/nullable.js +1 -3
- package/dist/src/helpers/on-event.js +32 -36
- package/dist/src/helpers/output.js +4 -5
- package/dist/src/helpers/parse-node.js +13 -5
- package/dist/src/helpers/parsers.js +10 -14
- package/dist/src/helpers/patterns.js +6 -8
- package/dist/src/helpers/plugins/process-code/index.js +114 -120
- package/dist/src/helpers/plugins/process-signals.js +114 -125
- package/dist/src/helpers/plugins/process-target-blocks.js +18 -20
- package/dist/src/helpers/process-http-requests.js +8 -4
- package/dist/src/helpers/remove-surrounding-block.js +2 -2
- package/dist/src/helpers/render-imports.js +99 -111
- package/dist/src/helpers/replace-identifiers.js +40 -49
- package/dist/src/helpers/replace-new-lines-in-strings.js +3 -3
- package/dist/src/helpers/signals/signals.js +27 -35
- package/dist/src/helpers/slots.js +11 -20
- package/dist/src/helpers/state.js +1 -3
- package/dist/src/helpers/strip-meta-properties.js +6 -6
- package/dist/src/helpers/strip-state-and-props-refs.js +21 -32
- package/dist/src/helpers/styles/collect-css.js +39 -44
- package/dist/src/helpers/styles/collect-styled-components.js +30 -28
- package/dist/src/helpers/styles/helpers.js +23 -29
- package/dist/src/helpers/trace-reference-to-module-path.js +3 -4
- package/dist/src/helpers/transform-state-setters.js +16 -19
- package/dist/src/helpers/traverse-nodes.js +2 -2
- package/dist/src/helpers/try-prettier-format.js +3 -3
- package/dist/src/helpers/typescript-project.js +25 -25
- package/dist/src/helpers/typescript.js +1 -3
- package/dist/src/modules/plugins.js +20 -28
- package/dist/src/parsers/angular.js +49 -57
- package/dist/src/parsers/builder/builder.js +448 -343
- package/dist/src/parsers/builder/helpers.js +10 -10
- package/dist/src/parsers/context.js +15 -17
- package/dist/src/parsers/jsx/ast.js +11 -11
- package/dist/src/parsers/jsx/component-types.js +22 -32
- package/dist/src/parsers/jsx/context.js +12 -12
- package/dist/src/parsers/jsx/element-parser.js +43 -54
- package/dist/src/parsers/jsx/exports.js +12 -14
- package/dist/src/parsers/jsx/function-parser.js +108 -119
- package/dist/src/parsers/jsx/helpers.js +11 -13
- package/dist/src/parsers/jsx/hooks/helpers.js +14 -16
- package/dist/src/parsers/jsx/hooks/index.js +34 -44
- package/dist/src/parsers/jsx/hooks/use-target.js +27 -27
- package/dist/src/parsers/jsx/imports.js +7 -17
- package/dist/src/parsers/jsx/jsx.js +92 -91
- package/dist/src/parsers/jsx/props-types.js +8 -10
- package/dist/src/parsers/jsx/props.js +15 -23
- package/dist/src/parsers/jsx/signals.js +28 -29
- package/dist/src/parsers/jsx/state.d.ts +2 -4
- package/dist/src/parsers/jsx/state.js +59 -93
- package/dist/src/parsers/svelte/css/index.js +1 -1
- package/dist/src/parsers/svelte/helpers/bindings.js +18 -19
- package/dist/src/parsers/svelte/helpers/children.js +5 -6
- package/dist/src/parsers/svelte/helpers/expressions.js +7 -9
- package/dist/src/parsers/svelte/helpers/hooks.js +2 -2
- package/dist/src/parsers/svelte/helpers/post-process.js +49 -70
- package/dist/src/parsers/svelte/helpers/string.js +5 -5
- package/dist/src/parsers/svelte/html/actions.js +17 -10
- package/dist/src/parsers/svelte/html/each.js +11 -16
- package/dist/src/parsers/svelte/html/element.js +68 -78
- package/dist/src/parsers/svelte/html/fragment.js +3 -3
- package/dist/src/parsers/svelte/html/if-else.js +11 -18
- package/dist/src/parsers/svelte/html/index.js +14 -14
- package/dist/src/parsers/svelte/html/mustache-tag.js +5 -5
- package/dist/src/parsers/svelte/html/slot.js +5 -5
- package/dist/src/parsers/svelte/html/text.js +7 -14
- package/dist/src/parsers/svelte/index.js +23 -72
- package/dist/src/parsers/svelte/instance/context.js +17 -17
- package/dist/src/parsers/svelte/instance/expressions.js +2 -2
- package/dist/src/parsers/svelte/instance/functions.js +35 -30
- package/dist/src/parsers/svelte/instance/hooks.js +4 -5
- package/dist/src/parsers/svelte/instance/imports.js +11 -21
- package/dist/src/parsers/svelte/instance/index.js +22 -22
- package/dist/src/parsers/svelte/instance/properties.js +11 -23
- package/dist/src/parsers/svelte/instance/reactive.js +11 -11
- package/dist/src/parsers/svelte/instance/references.js +13 -13
- package/dist/src/parsers/svelte/instance/statements.js +3 -3
- package/dist/src/parsers/svelte/module/index.js +14 -26
- package/dist/src/parsers/svelte/typescript/index.js +27 -36
- package/dist/src/plugins/compile-away-builder-components.js +223 -156
- package/dist/src/plugins/compile-away-components.js +13 -21
- package/dist/src/plugins/map-styles.js +7 -7
- package/dist/src/symbols/symbol-processor.js +44 -62
- package/dist/src/targets.js +19 -19
- package/dist/src/types/mitosis-node.js +1 -1
- package/package.json +1 -1
|
@@ -1,41 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
-
if (ar || !(i in from)) {
|
|
16
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
-
ar[i] = from[i];
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
-
};
|
|
22
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
6
|
exports.compileAwayBuilderComponents = exports.compileAwayBuilderComponentsFromTree = exports.components = void 0;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
7
|
+
const sdk_1 = require("@builder.io/sdk");
|
|
8
|
+
const json5_1 = __importDefault(require("json5"));
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
10
|
+
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
11
|
+
const bindings_1 = require("../helpers/bindings");
|
|
12
|
+
const create_mitosis_node_1 = require("../helpers/create-mitosis-node");
|
|
13
|
+
const filter_empty_text_nodes_1 = require("../helpers/filter-empty-text-nodes");
|
|
14
|
+
const is_mitosis_node_1 = require("../helpers/is-mitosis-node");
|
|
15
|
+
const builder_1 = require("../parsers/builder");
|
|
16
|
+
const getCssFromNode = (node) => {
|
|
37
17
|
var _a;
|
|
38
|
-
|
|
18
|
+
const css = (_a = node.bindings.css) === null || _a === void 0 ? void 0 : _a.code;
|
|
39
19
|
if (css) {
|
|
40
20
|
return json5_1.default.parse(css);
|
|
41
21
|
}
|
|
@@ -43,25 +23,37 @@ var getCssFromNode = function (node) {
|
|
|
43
23
|
};
|
|
44
24
|
function getComponentInputNames(componentName) {
|
|
45
25
|
var _a;
|
|
46
|
-
|
|
47
|
-
return ((_a = componentInfo === null || componentInfo === void 0 ? void 0 : componentInfo.inputs) === null || _a === void 0 ? void 0 : _a.map(
|
|
26
|
+
const componentInfo = sdk_1.Builder.components.find((item) => item.name === componentName);
|
|
27
|
+
return ((_a = componentInfo === null || componentInfo === void 0 ? void 0 : componentInfo.inputs) === null || _a === void 0 ? void 0 : _a.map((item) => item.name)) || [];
|
|
48
28
|
}
|
|
49
|
-
|
|
50
|
-
|
|
29
|
+
const wrapOutput = (node, child, components) => {
|
|
30
|
+
const inputNames = getComponentInputNames(node.name);
|
|
51
31
|
(0, exports.compileAwayBuilderComponentsFromTree)(child, components);
|
|
52
|
-
return (0, create_mitosis_node_1.createMitosisNode)(
|
|
32
|
+
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
33
|
+
...node,
|
|
34
|
+
properties: {
|
|
35
|
+
...(0, lodash_1.omit)(node.properties, ...inputNames),
|
|
36
|
+
},
|
|
37
|
+
bindings: {
|
|
38
|
+
...(0, lodash_1.omit)(node.bindings, ...inputNames),
|
|
39
|
+
},
|
|
53
40
|
// TODO: forward tagName as a $tagName="..."
|
|
54
|
-
name: node.properties._tagName || node.properties.$tagName || 'div',
|
|
41
|
+
name: node.properties._tagName || node.properties.$tagName || 'div',
|
|
42
|
+
children: Array.isArray(child) ? child : [child],
|
|
43
|
+
});
|
|
55
44
|
};
|
|
56
45
|
exports.components = {
|
|
57
|
-
CoreButton
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
CoreButton(node, context, components) {
|
|
47
|
+
const properties = {};
|
|
48
|
+
const bindings = {};
|
|
60
49
|
if (!node.properties.href && node.bindings.css) {
|
|
61
|
-
|
|
50
|
+
const css = json5_1.default.parse(node.bindings.css.code);
|
|
62
51
|
// When using button tag ensure we have all: unset and
|
|
63
52
|
// be sure that is the first style in the list
|
|
64
|
-
node.bindings.css.code = json5_1.default.stringify(
|
|
53
|
+
node.bindings.css.code = json5_1.default.stringify({
|
|
54
|
+
all: 'unset',
|
|
55
|
+
...css,
|
|
56
|
+
});
|
|
65
57
|
}
|
|
66
58
|
if ('link' in node.properties) {
|
|
67
59
|
properties.href = node.properties.link;
|
|
@@ -88,15 +80,25 @@ exports.components = {
|
|
|
88
80
|
];
|
|
89
81
|
}
|
|
90
82
|
if ('openInNewTab' in node.bindings) {
|
|
91
|
-
bindings.target =
|
|
83
|
+
bindings.target = `${node.bindings.openInNewTab} ? '_blank' : '_self'`;
|
|
92
84
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return (0, create_mitosis_node_1.createMitosisNode)(
|
|
85
|
+
const omitFields = ['link', 'openInNewTab', 'text'];
|
|
86
|
+
const hasLink = node.properties.link || node.bindings.link;
|
|
87
|
+
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
88
|
+
...node,
|
|
96
89
|
// TODO: use 'button' tag for no link, and add `all: unset` to CSS string only then
|
|
97
|
-
name: hasLink ? 'a' : 'button',
|
|
90
|
+
name: hasLink ? 'a' : 'button',
|
|
91
|
+
properties: {
|
|
92
|
+
...(0, lodash_1.omit)(node.properties, omitFields),
|
|
93
|
+
...properties,
|
|
94
|
+
},
|
|
95
|
+
bindings: {
|
|
96
|
+
...(0, lodash_1.omit)(node.bindings, omitFields),
|
|
97
|
+
...bindings,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
98
100
|
},
|
|
99
|
-
Embed
|
|
101
|
+
Embed(node, context, components) {
|
|
100
102
|
return wrapOutput(node, (0, create_mitosis_node_1.createMitosisNode)({
|
|
101
103
|
name: node.properties.builderTag || 'div',
|
|
102
104
|
properties: {
|
|
@@ -104,23 +106,19 @@ exports.components = {
|
|
|
104
106
|
},
|
|
105
107
|
}), components);
|
|
106
108
|
},
|
|
107
|
-
BuilderAccordion
|
|
109
|
+
BuilderAccordion(node, context, components) {
|
|
108
110
|
var _a;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
includeBuilderExtras: true,
|
|
121
|
-
preserveTextBlocks: true,
|
|
122
|
-
});
|
|
123
|
-
});
|
|
111
|
+
const itemsJSON = ((_a = node.bindings.items) === null || _a === void 0 ? void 0 : _a.code) || '[]';
|
|
112
|
+
const accordionItems = json5_1.default.parse(itemsJSON);
|
|
113
|
+
const children = accordionItems.map((accordionItem) => {
|
|
114
|
+
const titleChildren = accordionItem.title.map((element) => (0, builder_1.builderElementToMitosisNode)(element, {
|
|
115
|
+
includeBuilderExtras: true,
|
|
116
|
+
preserveTextBlocks: true,
|
|
117
|
+
}));
|
|
118
|
+
const detailChildren = accordionItem.detail.map((element) => (0, builder_1.builderElementToMitosisNode)(element, {
|
|
119
|
+
includeBuilderExtras: true,
|
|
120
|
+
preserveTextBlocks: true,
|
|
121
|
+
}));
|
|
124
122
|
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
125
123
|
name: 'div',
|
|
126
124
|
properties: { builder: 'accordion' },
|
|
@@ -146,30 +144,30 @@ exports.components = {
|
|
|
146
144
|
children: children,
|
|
147
145
|
}), components);
|
|
148
146
|
},
|
|
149
|
-
BuilderMasonry
|
|
147
|
+
BuilderMasonry() {
|
|
150
148
|
// TODO
|
|
151
149
|
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
152
150
|
name: 'div',
|
|
153
151
|
properties: { 'data-missing-component': 'BuilderMasonry' },
|
|
154
152
|
});
|
|
155
153
|
},
|
|
156
|
-
BuilderTabs
|
|
154
|
+
BuilderTabs() {
|
|
157
155
|
// TODO
|
|
158
156
|
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
159
157
|
name: 'div',
|
|
160
158
|
properties: { 'data-missing-component': 'BuilderTabs' },
|
|
161
159
|
});
|
|
162
160
|
},
|
|
163
|
-
BuilderCarousel
|
|
161
|
+
BuilderCarousel() {
|
|
164
162
|
// TODO
|
|
165
163
|
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
166
164
|
name: 'div',
|
|
167
165
|
properties: { 'data-missing-component': 'BuilderCarousel' },
|
|
168
166
|
});
|
|
169
167
|
},
|
|
170
|
-
CustomCode
|
|
168
|
+
CustomCode(node, context, components) {
|
|
171
169
|
var _a;
|
|
172
|
-
|
|
170
|
+
const bindings = {};
|
|
173
171
|
if ((_a = node === null || node === void 0 ? void 0 : node.bindings) === null || _a === void 0 ? void 0 : _a.code) {
|
|
174
172
|
bindings.innerHTML = node.bindings.code;
|
|
175
173
|
}
|
|
@@ -181,58 +179,76 @@ exports.components = {
|
|
|
181
179
|
bindings: bindings,
|
|
182
180
|
}), components);
|
|
183
181
|
},
|
|
184
|
-
CoreSection
|
|
182
|
+
CoreSection(node, context, components) {
|
|
185
183
|
var _a, _b;
|
|
186
|
-
|
|
184
|
+
const css = getCssFromNode(node);
|
|
187
185
|
return wrapOutput(node, (0, create_mitosis_node_1.createMitosisNode)({
|
|
188
186
|
name: 'section',
|
|
189
|
-
properties:
|
|
190
|
-
|
|
191
|
-
|
|
187
|
+
properties: {
|
|
188
|
+
...node.properties,
|
|
189
|
+
$name: 'section',
|
|
190
|
+
...(((_a = node.bindings.lazyLoad) === null || _a === void 0 ? void 0 : _a.code) === 'true' && {
|
|
191
|
+
lazyLoad: 'true',
|
|
192
|
+
}),
|
|
193
|
+
},
|
|
192
194
|
bindings: {
|
|
193
195
|
css: (0, bindings_1.createSingleBinding)({
|
|
194
|
-
code: JSON.stringify(
|
|
196
|
+
code: JSON.stringify({
|
|
197
|
+
...css,
|
|
198
|
+
width: '100%',
|
|
199
|
+
alignSelf: 'stretch',
|
|
200
|
+
flexGrow: '1',
|
|
201
|
+
boxSizing: 'border-box',
|
|
202
|
+
maxWidth: `${(((_b = node.bindings.maxWidth) === null || _b === void 0 ? void 0 : _b.code) && Number(node.bindings.maxWidth.code)) || 1200}px`,
|
|
203
|
+
display: 'flex',
|
|
204
|
+
flexDirection: 'column',
|
|
205
|
+
alignItems: 'stretch',
|
|
206
|
+
marginLeft: 'auto',
|
|
207
|
+
marginRight: 'auto',
|
|
208
|
+
}),
|
|
195
209
|
}),
|
|
196
210
|
},
|
|
197
211
|
children: node.children,
|
|
198
212
|
}), components);
|
|
199
213
|
},
|
|
200
|
-
Columns
|
|
201
|
-
|
|
202
|
-
var columns = node.children.filter(filter_empty_text_nodes_1.filterEmptyTextNodes).map(function (item) {
|
|
214
|
+
Columns(node, context, components) {
|
|
215
|
+
const columns = node.children.filter(filter_empty_text_nodes_1.filterEmptyTextNodes).map((item) => {
|
|
203
216
|
var _a;
|
|
204
217
|
return ({
|
|
205
218
|
width: parseFloat(item.properties.width || ((_a = item.bindings.width) === null || _a === void 0 ? void 0 : _a.code) || '0') || 0,
|
|
206
219
|
children: item.children,
|
|
207
220
|
});
|
|
208
221
|
});
|
|
209
|
-
|
|
222
|
+
const gutterSize = (node.properties.getterSize && parseFloat(node.properties.getterSize)) || 20;
|
|
210
223
|
function getWidth(index) {
|
|
211
224
|
return (columns[index] && columns[index].width) || 100 / columns.length;
|
|
212
225
|
}
|
|
213
226
|
function getColumnWidth(index) {
|
|
214
|
-
return
|
|
227
|
+
return `${Math.round(getWidth(index))}%`;
|
|
215
228
|
}
|
|
216
|
-
|
|
229
|
+
const { properties } = node;
|
|
217
230
|
return wrapOutput(node, (0, create_mitosis_node_1.createMitosisNode)({
|
|
218
231
|
name: 'div',
|
|
219
232
|
bindings: {
|
|
220
233
|
css: (0, bindings_1.createSingleBinding)({
|
|
221
|
-
code: JSON.stringify(
|
|
222
|
-
|
|
223
|
-
:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
234
|
+
code: JSON.stringify({
|
|
235
|
+
gap: `${gutterSize}px`,
|
|
236
|
+
display: 'flex',
|
|
237
|
+
...(properties.stackColumnsAt === 'never'
|
|
238
|
+
? {}
|
|
239
|
+
: {
|
|
240
|
+
[`@media (max-width: ${properties.stackColumnsAt === 'mobile' ? 640 : 991}px)`]: {
|
|
241
|
+
flexDirection: properties.reverseColumnsWhenStacked === 'true'
|
|
242
|
+
? 'column-reverse'
|
|
243
|
+
: 'column',
|
|
244
|
+
alignItems: 'stretch',
|
|
245
|
+
gap: `0px`,
|
|
246
|
+
},
|
|
247
|
+
}),
|
|
248
|
+
}),
|
|
232
249
|
}),
|
|
233
250
|
},
|
|
234
|
-
children: columns.map(
|
|
235
|
-
var _a;
|
|
251
|
+
children: columns.map((col, index) => {
|
|
236
252
|
return (0, create_mitosis_node_1.createMitosisNode)({
|
|
237
253
|
name: 'div',
|
|
238
254
|
properties: {
|
|
@@ -240,14 +256,22 @@ exports.components = {
|
|
|
240
256
|
},
|
|
241
257
|
bindings: {
|
|
242
258
|
css: (0, bindings_1.createSingleBinding)({
|
|
243
|
-
code: JSON.stringify(
|
|
244
|
-
|
|
245
|
-
:
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
259
|
+
code: JSON.stringify({
|
|
260
|
+
display: 'flex',
|
|
261
|
+
flexDirection: 'column',
|
|
262
|
+
alignItems: 'stretch',
|
|
263
|
+
lineHeight: 'normal',
|
|
264
|
+
width: `${getColumnWidth(index)}`,
|
|
265
|
+
marginLeft: `${index === 0 ? 0 : gutterSize}px`,
|
|
266
|
+
...(properties.stackColumnsAt === 'never'
|
|
267
|
+
? {}
|
|
268
|
+
: {
|
|
269
|
+
[`@media (max-width: ${properties.stackColumnsAt === 'mobile' ? 640 : 991}px)`]: {
|
|
270
|
+
width: '100%',
|
|
271
|
+
marginLeft: 0,
|
|
272
|
+
},
|
|
273
|
+
}),
|
|
274
|
+
}),
|
|
251
275
|
}),
|
|
252
276
|
},
|
|
253
277
|
children: col.children,
|
|
@@ -255,35 +279,51 @@ exports.components = {
|
|
|
255
279
|
}),
|
|
256
280
|
}), components);
|
|
257
281
|
},
|
|
258
|
-
Image
|
|
282
|
+
Image(node, context, components) {
|
|
259
283
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
284
|
+
const { backgroundSize, backgroundPosition } = node.properties;
|
|
285
|
+
const { srcset } = node.properties;
|
|
286
|
+
let aspectRatio = ((_a = node.bindings.aspectRatio) === null || _a === void 0 ? void 0 : _a.code)
|
|
263
287
|
? parseFloat(node.bindings.aspectRatio.code)
|
|
264
288
|
: null;
|
|
265
289
|
if (typeof aspectRatio === 'number' && isNaN(aspectRatio)) {
|
|
266
290
|
aspectRatio = null;
|
|
267
291
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
292
|
+
const image = node.properties.image;
|
|
293
|
+
const srcSet = srcset || generateBuilderIoSrcSet(image);
|
|
294
|
+
const css = getCssFromNode(node);
|
|
295
|
+
const noWebp = ((_b = node.bindings.noWebp) === null || _b === void 0 ? void 0 : _b.code) === 'true';
|
|
296
|
+
const img = (0, create_mitosis_node_1.createMitosisNode)({
|
|
273
297
|
name: 'img',
|
|
274
|
-
properties: noUndefined(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
298
|
+
properties: noUndefined({
|
|
299
|
+
loading: 'lazy',
|
|
300
|
+
sizes: node.properties.sizes,
|
|
301
|
+
alt: node.properties.altText,
|
|
302
|
+
// We set noWebp to true for SVGs. in this case, we
|
|
303
|
+
// also don't need srcset, just a src is better
|
|
304
|
+
...(noWebp
|
|
305
|
+
? {
|
|
306
|
+
src: image,
|
|
307
|
+
}
|
|
308
|
+
: {
|
|
309
|
+
srcSet: srcSet || null,
|
|
310
|
+
}),
|
|
311
|
+
}),
|
|
281
312
|
bindings: noUndefined({
|
|
282
313
|
src: ((_c = node.bindings.image) === null || _c === void 0 ? void 0 : _c.code) && { code: (_d = node.bindings.image) === null || _d === void 0 ? void 0 : _d.code },
|
|
283
314
|
sizes: ((_e = node.bindings.sizes) === null || _e === void 0 ? void 0 : _e.code) && { code: (_f = node.bindings.sizes) === null || _f === void 0 ? void 0 : _f.code },
|
|
284
315
|
style: ((_g = node.bindings.style) === null || _g === void 0 ? void 0 : _g.code) && { code: (_h = node.bindings.style) === null || _h === void 0 ? void 0 : _h.code },
|
|
285
316
|
css: (0, bindings_1.createSingleBinding)({
|
|
286
|
-
code: JSON.stringify(
|
|
317
|
+
code: JSON.stringify({
|
|
318
|
+
aspectRatio: aspectRatio ? String((0, lodash_1.round)(1 / aspectRatio, 2)) : undefined,
|
|
319
|
+
objectFit: backgroundSize || 'cover',
|
|
320
|
+
objectPosition: backgroundPosition || 'center',
|
|
321
|
+
width: '100%',
|
|
322
|
+
...css,
|
|
323
|
+
display: undefined,
|
|
324
|
+
flexDirection: undefined,
|
|
325
|
+
position: css.position === 'relative' ? undefined : css.position,
|
|
326
|
+
}),
|
|
287
327
|
}),
|
|
288
328
|
}),
|
|
289
329
|
});
|
|
@@ -291,15 +331,24 @@ exports.components = {
|
|
|
291
331
|
return img;
|
|
292
332
|
}
|
|
293
333
|
// TODO: deal with links: anchor tag and href
|
|
294
|
-
|
|
334
|
+
const root = (0, create_mitosis_node_1.createMitosisNode)({
|
|
295
335
|
name: 'div',
|
|
296
336
|
bindings: noUndefined({
|
|
297
337
|
css: (0, bindings_1.createSingleBinding)({
|
|
298
|
-
code: JSON.stringify(
|
|
338
|
+
code: JSON.stringify({
|
|
339
|
+
display: 'flex',
|
|
340
|
+
flexDirection: 'column',
|
|
341
|
+
...css,
|
|
342
|
+
position: 'relative',
|
|
343
|
+
}),
|
|
299
344
|
}),
|
|
300
345
|
}),
|
|
301
|
-
children:
|
|
302
|
-
|
|
346
|
+
children: [
|
|
347
|
+
{
|
|
348
|
+
...img,
|
|
349
|
+
bindings: {
|
|
350
|
+
...img.bindings,
|
|
351
|
+
css: (0, bindings_1.createSingleBinding)({
|
|
303
352
|
code: JSON.stringify({
|
|
304
353
|
position: 'absolute',
|
|
305
354
|
inset: '0',
|
|
@@ -308,27 +357,39 @@ exports.components = {
|
|
|
308
357
|
objectFit: backgroundSize || 'cover',
|
|
309
358
|
objectPosition: backgroundPosition || 'center',
|
|
310
359
|
}),
|
|
311
|
-
})
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
360
|
+
}),
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
...node.children.map((child) => {
|
|
364
|
+
const newChild = {
|
|
365
|
+
...child,
|
|
366
|
+
bindings: {
|
|
367
|
+
...child.bindings,
|
|
368
|
+
css: (0, bindings_1.createSingleBinding)({
|
|
369
|
+
code: JSON.stringify({
|
|
370
|
+
position: 'relative',
|
|
371
|
+
...getCssFromNode(child),
|
|
372
|
+
}),
|
|
373
|
+
}),
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
(0, exports.compileAwayBuilderComponentsFromTree)(newChild, components);
|
|
377
|
+
return newChild;
|
|
378
|
+
}),
|
|
379
|
+
],
|
|
319
380
|
});
|
|
320
381
|
return root;
|
|
321
382
|
},
|
|
322
|
-
Video
|
|
383
|
+
Video(node, context, components) {
|
|
323
384
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
324
|
-
|
|
385
|
+
let aspectRatio = ((_a = node.bindings.aspectRatio) === null || _a === void 0 ? void 0 : _a.code)
|
|
325
386
|
? parseFloat(node.bindings.aspectRatio.code)
|
|
326
387
|
: null;
|
|
327
388
|
if (typeof aspectRatio === 'number' && isNaN(aspectRatio)) {
|
|
328
389
|
aspectRatio = null;
|
|
329
390
|
}
|
|
330
|
-
|
|
331
|
-
|
|
391
|
+
const videoContainerNodes = [];
|
|
392
|
+
const css = getCssFromNode(node);
|
|
332
393
|
videoContainerNodes.push((0, create_mitosis_node_1.createMitosisNode)({
|
|
333
394
|
name: 'video',
|
|
334
395
|
properties: noUndefined({
|
|
@@ -358,7 +419,15 @@ exports.components = {
|
|
|
358
419
|
},
|
|
359
420
|
loop: ((_m = node.bindings.loop) === null || _m === void 0 ? void 0 : _m.code) && { code: (_o = node.bindings.loop) === null || _o === void 0 ? void 0 : _o.code },
|
|
360
421
|
css: (0, bindings_1.createSingleBinding)({
|
|
361
|
-
code: JSON.stringify(
|
|
422
|
+
code: JSON.stringify({
|
|
423
|
+
width: '100%',
|
|
424
|
+
height: '100%',
|
|
425
|
+
objectFit: node.properties.fit,
|
|
426
|
+
objectPosition: node.properties.position,
|
|
427
|
+
borderRadius: '1',
|
|
428
|
+
position: aspectRatio ? 'absolute' : '',
|
|
429
|
+
...css,
|
|
430
|
+
}),
|
|
362
431
|
}),
|
|
363
432
|
}),
|
|
364
433
|
children: [
|
|
@@ -410,7 +479,7 @@ exports.components = {
|
|
|
410
479
|
},
|
|
411
480
|
children: node.children,
|
|
412
481
|
}));
|
|
413
|
-
|
|
482
|
+
const videoContainer = (0, create_mitosis_node_1.createMitosisNode)({
|
|
414
483
|
name: 'div',
|
|
415
484
|
bindings: {
|
|
416
485
|
css: (0, bindings_1.createSingleBinding)({ code: JSON.stringify({ position: 'relative' }) }),
|
|
@@ -420,12 +489,12 @@ exports.components = {
|
|
|
420
489
|
return wrapOutput(node, videoContainer, components);
|
|
421
490
|
},
|
|
422
491
|
};
|
|
423
|
-
|
|
492
|
+
const compileAwayBuilderComponentsFromTree = (tree, components) => {
|
|
424
493
|
(0, legacy_1.default)(tree).forEach(function (item) {
|
|
425
494
|
if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
|
|
426
|
-
|
|
495
|
+
const mapper = components[item.name];
|
|
427
496
|
if (mapper) {
|
|
428
|
-
|
|
497
|
+
const result = mapper(item, this, components);
|
|
429
498
|
if (result) {
|
|
430
499
|
this.update(result);
|
|
431
500
|
}
|
|
@@ -434,50 +503,48 @@ var compileAwayBuilderComponentsFromTree = function (tree, components) {
|
|
|
434
503
|
});
|
|
435
504
|
};
|
|
436
505
|
exports.compileAwayBuilderComponentsFromTree = compileAwayBuilderComponentsFromTree;
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
var obj = exports.components;
|
|
506
|
+
const compileAwayBuilderComponents = (pluginOptions = {}) => {
|
|
507
|
+
let obj = exports.components;
|
|
440
508
|
if (pluginOptions.omit) {
|
|
441
509
|
obj = (0, lodash_1.omit)(obj, pluginOptions.omit);
|
|
442
510
|
}
|
|
443
511
|
if (pluginOptions.only) {
|
|
444
512
|
obj = (0, lodash_1.pick)(obj, pluginOptions.only);
|
|
445
513
|
}
|
|
446
|
-
return
|
|
514
|
+
return (options) => ({
|
|
447
515
|
json: {
|
|
448
|
-
pre:
|
|
516
|
+
pre: (json) => {
|
|
449
517
|
(0, exports.compileAwayBuilderComponentsFromTree)(json, obj);
|
|
450
518
|
},
|
|
451
519
|
},
|
|
452
|
-
});
|
|
520
|
+
});
|
|
453
521
|
};
|
|
454
522
|
exports.compileAwayBuilderComponents = compileAwayBuilderComponents;
|
|
455
|
-
function updateQueryParam(uri, key, value) {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
var separator = uri.indexOf('?') !== -1 ? '&' : '?';
|
|
523
|
+
function updateQueryParam(uri = '', key, value) {
|
|
524
|
+
const re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
|
|
525
|
+
const separator = uri.indexOf('?') !== -1 ? '&' : '?';
|
|
459
526
|
if (uri.match(re)) {
|
|
460
527
|
return uri.replace(re, '$1' + key + '=' + encodeURIComponent(value) + '$2');
|
|
461
528
|
}
|
|
462
529
|
return uri + separator + key + '=' + encodeURIComponent(value);
|
|
463
530
|
}
|
|
464
531
|
function generateBuilderIoSrcSet(image) {
|
|
465
|
-
|
|
532
|
+
const isBuilderIo = !!(image || '').match(/builder\.io/);
|
|
466
533
|
return isBuilderIo
|
|
467
534
|
? [100, 200, 400, 800, 1200, 1600, 2000]
|
|
468
|
-
.map(
|
|
535
|
+
.map((size) => `${updateQueryParam(image, 'width', String(size))} ${size}w`)
|
|
469
536
|
.concat([image])
|
|
470
537
|
.join(', ')
|
|
471
538
|
: '';
|
|
472
539
|
}
|
|
473
540
|
function noUndefined(obj) {
|
|
474
|
-
|
|
475
|
-
for (
|
|
541
|
+
const cleanObj = {};
|
|
542
|
+
for (const key in obj) {
|
|
476
543
|
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
477
|
-
|
|
544
|
+
const value = obj[key];
|
|
478
545
|
if (value != null) {
|
|
479
546
|
if (typeof value == 'object') {
|
|
480
|
-
|
|
547
|
+
const ret = noUndefined(value);
|
|
481
548
|
if (Object.keys(ret).length) {
|
|
482
549
|
cleanObj[key] = ret;
|
|
483
550
|
}
|
|
@@ -1,25 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
6
|
exports.compileAwayComponents = exports.getRenderOptions = void 0;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const legacy_1 = __importDefault(require("neotraverse/legacy"));
|
|
9
|
+
const is_mitosis_node_1 = require("../helpers/is-mitosis-node");
|
|
10
|
+
const getRenderOptions = (node) => {
|
|
11
|
+
return {
|
|
12
|
+
...(0, lodash_1.mapValues)(node.properties, (value) => `"${value}"`),
|
|
13
|
+
...(0, lodash_1.mapValues)(node.bindings, (value) => `{${value}}`),
|
|
14
|
+
};
|
|
23
15
|
};
|
|
24
16
|
exports.getRenderOptions = getRenderOptions;
|
|
25
17
|
/**
|
|
@@ -38,14 +30,14 @@ exports.getRenderOptions = getRenderOptions;
|
|
|
38
30
|
* ]
|
|
39
31
|
* })
|
|
40
32
|
*/
|
|
41
|
-
|
|
33
|
+
const compileAwayComponents = (pluginOptions) => (options) => ({
|
|
42
34
|
json: {
|
|
43
|
-
pre:
|
|
35
|
+
pre: (json) => {
|
|
44
36
|
(0, legacy_1.default)(json).forEach(function (item) {
|
|
45
37
|
if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
|
|
46
|
-
|
|
38
|
+
const mapper = pluginOptions.components[item.name];
|
|
47
39
|
if (mapper) {
|
|
48
|
-
|
|
40
|
+
const result = mapper(item, this);
|
|
49
41
|
if (result) {
|
|
50
42
|
this.update(result);
|
|
51
43
|
}
|
|
@@ -54,5 +46,5 @@ var compileAwayComponents = function (pluginOptions) { return function (options)
|
|
|
54
46
|
});
|
|
55
47
|
},
|
|
56
48
|
},
|
|
57
|
-
});
|
|
49
|
+
});
|
|
58
50
|
exports.compileAwayComponents = compileAwayComponents;
|