@plaudit/gutenberg-api-extensions 2.33.0 → 2.35.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/build/blocks/base-data-store.d.ts +19 -0
- package/build/blocks/base-data-store.js +151 -0
- package/build/blocks/base-data-store.js.map +1 -0
- package/build/blocks/common-native-property-constructors.d.ts +8 -2
- package/build/blocks/common-native-property-constructors.js +45 -7
- package/build/blocks/common-native-property-constructors.js.map +1 -1
- package/build/blocks/object-data-store.d.ts +20 -0
- package/build/blocks/object-data-store.js +41 -0
- package/build/blocks/object-data-store.js.map +1 -0
- package/build/blocks/simple-native-property-api.d.ts +6 -3
- package/build/blocks/simple-native-property-api.js.map +1 -1
- package/build/blocks/simple-native-property-impl.d.ts +6 -0
- package/build/blocks/simple-native-property-impl.js +138 -207
- package/build/blocks/simple-native-property-impl.js.map +1 -1
- package/build/blocks/snp-data-store.d.ts +8 -9
- package/build/blocks/snp-data-store.js +19 -51
- package/build/blocks/snp-data-store.js.map +1 -1
- package/build/controls/ExtendedRadioControl.js +1 -1
- package/build/controls/ExtendedRadioControl.js.map +1 -1
- package/build/controls/SortableItemsControl.d.ts +5 -2
- package/build/controls/SortableItemsControl.js +21 -12
- package/build/controls/SortableItemsControl.js.map +1 -1
- package/package.json +1 -1
- package/styles/editor.pcss +14 -0
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { BaseControl, Button, Icon, useBaseControlProps } from "@wordpress/components";
|
|
2
2
|
import { useEffect, useRef, useState } from "@wordpress/element";
|
|
3
3
|
import React from "react";
|
|
4
|
-
export function SortableItemsControl({ value
|
|
4
|
+
export function SortableItemsControl({ value = [], onChange, onRemove, onReorder, onAdd, children: makeChild, emptyValue, min, max, ...wrapperProps }) {
|
|
5
5
|
const containerRef = useRef(null);
|
|
6
|
-
const [value, setValue] = useState(propValue ?? []);
|
|
7
6
|
const [dragging, setDragging] = useState(null);
|
|
8
7
|
const [dropZone, setDropZone] = useState(null);
|
|
9
8
|
const [mouse, setMouse] = useState([0, 0]);
|
|
@@ -49,12 +48,11 @@ export function SortableItemsControl({ value: propValue, onChange, children: mak
|
|
|
49
48
|
const newValue = [...value];
|
|
50
49
|
newValue[index] = datum;
|
|
51
50
|
onChange(newValue);
|
|
52
|
-
setValue(newValue);
|
|
53
51
|
};
|
|
54
52
|
const removeByIndex = (index) => {
|
|
55
53
|
const newValue = value.filter((_, i) => i !== index);
|
|
54
|
+
onRemove?.(index);
|
|
56
55
|
onChange(newValue);
|
|
57
|
-
setValue(newValue);
|
|
58
56
|
};
|
|
59
57
|
const onDragEnd = (oldIndex) => {
|
|
60
58
|
if (dropZone !== null) {
|
|
@@ -65,16 +63,18 @@ export function SortableItemsControl({ value: propValue, onChange, children: mak
|
|
|
65
63
|
};
|
|
66
64
|
const transferByIndex = (oldIndex, newIndex) => {
|
|
67
65
|
if (newIndex !== oldIndex) {
|
|
68
|
-
const
|
|
66
|
+
const splicedValue = [...value];
|
|
69
67
|
if (newIndex > oldIndex) {
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
splicedValue.splice(newIndex, 0, splicedValue[oldIndex]);
|
|
69
|
+
splicedValue.splice(oldIndex, 1);
|
|
72
70
|
}
|
|
73
71
|
else {
|
|
74
|
-
|
|
72
|
+
splicedValue.splice(newIndex, 0, ...splicedValue.splice(oldIndex, 1));
|
|
75
73
|
}
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
onReorder?.(oldIndex, newIndex);
|
|
75
|
+
const changesStart = Math.min(newIndex, oldIndex);
|
|
76
|
+
splicedValue.splice(changesStart, splicedValue.length, ...splicedValue.slice(changesStart).map(v => clone(v)));
|
|
77
|
+
onChange(splicedValue);
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
80
|
const removeDisabled = min !== undefined && value.length <= min;
|
|
@@ -90,18 +90,27 @@ export function SortableItemsControl({ value: propValue, onChange, children: mak
|
|
|
90
90
|
setMouse([e.nativeEvent.x, e.nativeEvent.y]);
|
|
91
91
|
} },
|
|
92
92
|
React.createElement(Icon, { icon: "move" })),
|
|
93
|
-
React.createElement("div", null, makeChild(datum, datum => onChangeByIndex(datum, index))),
|
|
93
|
+
React.createElement("div", null, makeChild(datum, datum => onChangeByIndex(datum, index), index)),
|
|
94
94
|
React.createElement("div", { className: "plaudit-sortable-items-controls" },
|
|
95
95
|
React.createElement(Button, { icon: "remove", disabled: removeDisabled, onClick: () => removeByIndex(index), "aria-label": "Remove" }))))),
|
|
96
96
|
React.createElement(SortableItemsDropZone, { position: value.length, dragging: dragging, dropZone: dropZone })),
|
|
97
97
|
React.createElement("div", { className: "plaudit-sortable-items-buttons" },
|
|
98
98
|
React.createElement(Button, { icon: "insert", disabled: max !== undefined && value.length >= max, onClick: () => {
|
|
99
99
|
const newValue = [...value, emptyValue];
|
|
100
|
+
onAdd?.(value?.length ?? 0);
|
|
100
101
|
onChange(newValue);
|
|
101
|
-
setValue(newValue);
|
|
102
102
|
} }, "Add Row")));
|
|
103
103
|
}
|
|
104
104
|
function SortableItemsDropZone(props) {
|
|
105
105
|
return React.createElement("div", { "data-position": props.position, className: `drop-zone${props.dragging === null || props.position !== props.dropZone ? " plaudit-sortable-items-hidden" : ""}${props.position - 1 === props.dragging ? " dragging" : ""}` });
|
|
106
106
|
}
|
|
107
|
+
function clone(value) {
|
|
108
|
+
if (value === null || value === undefined) {
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
else if (Array.isArray(value)) {
|
|
112
|
+
return value.map(v => clone(v));
|
|
113
|
+
}
|
|
114
|
+
return typeof value === 'object' ? Object.fromEntries(Object.entries(value).map(([k, v]) => [k, clone(v)])) : value;
|
|
115
|
+
}
|
|
107
116
|
//# sourceMappingURL=SortableItemsControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableItemsControl.js","sourceRoot":"","sources":["../../src/controls/SortableItemsControl.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAuB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SortableItemsControl.js","sourceRoot":"","sources":["../../src/controls/SortableItemsControl.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/styles/editor.pcss
CHANGED
|
@@ -13,3 +13,17 @@
|
|
|
13
13
|
opacity: 0;
|
|
14
14
|
padding: 8px;
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
.plaudit-snp-laid-out-properties-wrapper {
|
|
18
|
+
min-width: 240px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.plaudit-snp-group-component {
|
|
22
|
+
padding-left: 0;
|
|
23
|
+
padding-right: 0;
|
|
24
|
+
|
|
25
|
+
> .plaudit-snp-laid-out-properties-wrapper {
|
|
26
|
+
border: 1px solid #ccc;
|
|
27
|
+
padding: 8px 8px 0 8px; /* We set padding-bottom to 0 because WordPress' field styling includes an 8px margin-bottom */
|
|
28
|
+
}
|
|
29
|
+
}
|