@saltcorn/builder 0.9.0-beta.9 → 0.9.1-beta.0
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/package.json
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
reactifyStyles,
|
|
16
16
|
SettingsSectionHeaderRow,
|
|
17
17
|
buildBootstrapOptions,
|
|
18
|
+
parseStyles,
|
|
18
19
|
} from "./utils";
|
|
19
20
|
import { BoxModelEditor } from "./BoxModelEditor";
|
|
20
21
|
import {
|
|
@@ -83,6 +84,8 @@ const Columns = ({
|
|
|
83
84
|
gy,
|
|
84
85
|
aligns,
|
|
85
86
|
vAligns,
|
|
87
|
+
colClasses,
|
|
88
|
+
colStyles,
|
|
86
89
|
}) => {
|
|
87
90
|
const {
|
|
88
91
|
selected,
|
|
@@ -101,7 +104,8 @@ const Columns = ({
|
|
|
101
104
|
key={ix}
|
|
102
105
|
className={`split-col col-sm-${getWidth(widths, ix)} text-${
|
|
103
106
|
aligns?.[ix]
|
|
104
|
-
} align-items-${vAligns?.[ix]}`}
|
|
107
|
+
} align-items-${vAligns?.[ix]} ${colClasses?.[ix] || ""}`}
|
|
108
|
+
style={parseStyles(colStyles?.[ix] || "")}
|
|
105
109
|
>
|
|
106
110
|
<Element canvas id={`Col${ix}`} is={Column}>
|
|
107
111
|
{contents[ix]}
|
|
@@ -129,6 +133,8 @@ const ColumnsSettings = () => {
|
|
|
129
133
|
gy: node.data.props.gy,
|
|
130
134
|
vAligns: node.data.props.vAligns,
|
|
131
135
|
aligns: node.data.props.aligns,
|
|
136
|
+
colClasses: node.data.props.colClasses,
|
|
137
|
+
colStyles: node.data.props.colStyles,
|
|
132
138
|
}));
|
|
133
139
|
const {
|
|
134
140
|
actions: { setProp },
|
|
@@ -139,10 +145,14 @@ const ColumnsSettings = () => {
|
|
|
139
145
|
setting_col_n,
|
|
140
146
|
vAligns,
|
|
141
147
|
aligns,
|
|
148
|
+
colClasses,
|
|
149
|
+
colStyles,
|
|
142
150
|
} = node;
|
|
143
151
|
const colSetsNode = {
|
|
144
152
|
vAlign: vAligns?.[setting_col_n - 1],
|
|
145
153
|
hAlign: aligns?.[setting_col_n - 1],
|
|
154
|
+
colClass: colClasses?.[setting_col_n - 1] || "",
|
|
155
|
+
colStyle: colStyles?.[setting_col_n - 1] || "",
|
|
146
156
|
};
|
|
147
157
|
return (
|
|
148
158
|
<Accordion>
|
|
@@ -283,6 +293,36 @@ const ColumnsSettings = () => {
|
|
|
283
293
|
})
|
|
284
294
|
}
|
|
285
295
|
/>
|
|
296
|
+
<SettingsRow
|
|
297
|
+
field={{
|
|
298
|
+
name: "colClass",
|
|
299
|
+
label: "Class",
|
|
300
|
+
type: "String",
|
|
301
|
+
}}
|
|
302
|
+
node={colSetsNode}
|
|
303
|
+
setProp={setProp}
|
|
304
|
+
onChange={(k, v) =>
|
|
305
|
+
setProp((prop) => {
|
|
306
|
+
if (!prop.colClasses) prop.colClasses = [];
|
|
307
|
+
prop.colClasses[setting_col_n - 1] = v;
|
|
308
|
+
})
|
|
309
|
+
}
|
|
310
|
+
/>
|
|
311
|
+
<SettingsRow
|
|
312
|
+
field={{
|
|
313
|
+
name: "colStyle",
|
|
314
|
+
label: "CSS",
|
|
315
|
+
type: "textarea",
|
|
316
|
+
}}
|
|
317
|
+
node={colSetsNode}
|
|
318
|
+
setProp={setProp}
|
|
319
|
+
onChange={(k, v) =>
|
|
320
|
+
setProp((prop) => {
|
|
321
|
+
if (!prop.colStyles) prop.colStyles = [];
|
|
322
|
+
prop.colStyles[setting_col_n - 1] = v;
|
|
323
|
+
})
|
|
324
|
+
}
|
|
325
|
+
/>
|
|
286
326
|
</tbody>
|
|
287
327
|
</table>
|
|
288
328
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @subcategory components / elements
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import React from "react";
|
|
7
|
+
import React, { Fragment, useContext } from "react";
|
|
8
8
|
import { useNode } from "@craftjs/core";
|
|
9
9
|
import {
|
|
10
10
|
blockProps,
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
SettingsFromFields,
|
|
13
13
|
TextStyleSetting,
|
|
14
14
|
} from "./utils";
|
|
15
|
+
import optionsCtx from "../context";
|
|
15
16
|
|
|
16
17
|
export /**
|
|
17
18
|
* @param {object} props
|
|
@@ -37,14 +38,20 @@ const HTMLCode = ({ text }) => {
|
|
|
37
38
|
);
|
|
38
39
|
};
|
|
39
40
|
|
|
40
|
-
const fields =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
const fields = (mode) => {
|
|
42
|
+
return [
|
|
43
|
+
{
|
|
44
|
+
label: "HTML Code",
|
|
45
|
+
name: "text",
|
|
46
|
+
type: "textarea",
|
|
47
|
+
segment_name: "contents",
|
|
48
|
+
sublabel:
|
|
49
|
+
mode === "show"
|
|
50
|
+
? "Access fields with <code>{{ var_name }}</code>"
|
|
51
|
+
: undefined,
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
};
|
|
48
55
|
|
|
49
56
|
/**
|
|
50
57
|
* @type {object}
|
|
@@ -52,10 +59,14 @@ const fields = [
|
|
|
52
59
|
HTMLCode.craft = {
|
|
53
60
|
displayName: "HTMLCode",
|
|
54
61
|
related: {
|
|
55
|
-
settings:
|
|
62
|
+
settings: () => {
|
|
63
|
+
const options = useContext(optionsCtx);
|
|
64
|
+
|
|
65
|
+
return SettingsFromFields(fields(options.mode))();
|
|
66
|
+
},
|
|
56
67
|
segment_type: "blank",
|
|
57
68
|
segment_vars: { isHTML: true },
|
|
58
69
|
segment_match: (segment) => segment.isHTML,
|
|
59
|
-
fields,
|
|
70
|
+
fields: fields(),
|
|
60
71
|
},
|
|
61
72
|
};
|
|
@@ -1078,13 +1078,27 @@ const SettingsRow = ({ field, node, setProp, onChange, isStyle }) => {
|
|
|
1078
1078
|
<td colSpan="2">
|
|
1079
1079
|
{needLabel && <label>{field.label}</label>}
|
|
1080
1080
|
{inner}
|
|
1081
|
+
{field.sublabel ? (
|
|
1082
|
+
<i
|
|
1083
|
+
className="small"
|
|
1084
|
+
dangerouslySetInnerHTML={{ __html: field.sublabel }}
|
|
1085
|
+
></i>
|
|
1086
|
+
) : null}
|
|
1081
1087
|
</td>
|
|
1082
1088
|
) : (
|
|
1083
1089
|
<Fragment>
|
|
1084
1090
|
<td>
|
|
1085
1091
|
<label>{field.label}</label>
|
|
1086
1092
|
</td>
|
|
1087
|
-
<td>
|
|
1093
|
+
<td>
|
|
1094
|
+
{inner}
|
|
1095
|
+
{field.sublabel ? (
|
|
1096
|
+
<i
|
|
1097
|
+
className="small"
|
|
1098
|
+
dangerouslySetInnerHTML={{ __html: field.sublabel }}
|
|
1099
|
+
></i>
|
|
1100
|
+
) : null}
|
|
1101
|
+
</td>
|
|
1088
1102
|
</Fragment>
|
|
1089
1103
|
)}
|
|
1090
1104
|
</tr>
|
|
@@ -283,6 +283,8 @@ const layoutToNodes = (layout, query, actions, parent = "ROOT") => {
|
|
|
283
283
|
gx={segment.gx}
|
|
284
284
|
gy={segment.gy}
|
|
285
285
|
vAligns={segment.vAligns}
|
|
286
|
+
colClasses={segment.colClasses}
|
|
287
|
+
colStyles={segment.colStyles}
|
|
286
288
|
aligns={segment.aligns}
|
|
287
289
|
setting_col_n={1}
|
|
288
290
|
contents={segment.besides.map(toTag)}
|
|
@@ -315,6 +317,8 @@ const layoutToNodes = (layout, query, actions, parent = "ROOT") => {
|
|
|
315
317
|
gx={segment.gx}
|
|
316
318
|
gy={segment.gy}
|
|
317
319
|
vAligns={segment.vAligns}
|
|
320
|
+
colClasses={segment.colClasses}
|
|
321
|
+
colStyles={segment.colStyles}
|
|
318
322
|
aligns={segment.aligns}
|
|
319
323
|
setting_col_n={1}
|
|
320
324
|
contents={segment.besides.map(toTag)}
|
|
@@ -485,6 +489,8 @@ const craftToSaltcorn = (nodes, startFrom = "ROOT") => {
|
|
|
485
489
|
gy: +node.props.gy,
|
|
486
490
|
aligns: node.props.aligns,
|
|
487
491
|
vAligns: node.props.vAligns,
|
|
492
|
+
colClasses: node.props.colClasses,
|
|
493
|
+
colStyles: node.props.colStyles,
|
|
488
494
|
style: node.props.style,
|
|
489
495
|
widths,
|
|
490
496
|
};
|