@measured/puck 0.12.0-canary.349f44d → 0.12.0-canary.3f8ebc0
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/{Config-e71a51c7.d.ts → Config-35e6eaae.d.ts} +0 -1
- package/dist/index.d.ts +39 -39
- package/dist/index.js +186 -95
- package/dist/rsc.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -1,10 +1,45 @@
|
|
1
|
-
import {
|
2
|
-
export { d as Adaptor, c as ArrayField, p as ArrayState, l as BaseData, B as BaseField, k as ComponentConfig, m as ComponentData, i as Content, f as CustomField, g as DefaultComponentProps, q as DropZone, e as ExternalField, E as ExternalFieldWithAdaptor, F as Field, h as Fields, o as ItemWithId, P as PuckComponent, j as PuckContext, n as RootDataWithoutProps, S as SelectField, T as TextField } from './Config-
|
1
|
+
import { D as Data, C as Config, I as ItemSelector, U as UiState, A as AppState, M as MappedItem, R as RootDataWithProps, a as DefaultRootProps, b as RootData } from './Config-35e6eaae.js';
|
2
|
+
export { d as Adaptor, c as ArrayField, p as ArrayState, l as BaseData, B as BaseField, k as ComponentConfig, m as ComponentData, i as Content, f as CustomField, g as DefaultComponentProps, q as DropZone, e as ExternalField, E as ExternalFieldWithAdaptor, F as Field, h as Fields, o as ItemWithId, P as PuckComponent, j as PuckContext, n as RootDataWithoutProps, S as SelectField, T as TextField } from './Config-35e6eaae.js';
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
4
4
|
import * as react from 'react';
|
5
5
|
import { ReactNode, CSSProperties, SyntheticEvent, ReactElement } from 'react';
|
6
6
|
import { DragStart, DragUpdate } from '@hello-pangea/dnd';
|
7
7
|
|
8
|
+
type PathData = Record<string, {
|
9
|
+
path: string[];
|
10
|
+
label: string;
|
11
|
+
}>;
|
12
|
+
type DropZoneContext = {
|
13
|
+
data: Data;
|
14
|
+
config: Config;
|
15
|
+
componentState?: Record<string, any>;
|
16
|
+
itemSelector?: ItemSelector | null;
|
17
|
+
setItemSelector?: (newIndex: ItemSelector | null) => void;
|
18
|
+
dispatch?: (action: PuckAction) => void;
|
19
|
+
areaId?: string;
|
20
|
+
draggedItem?: DragStart & Partial<DragUpdate>;
|
21
|
+
placeholderStyle?: CSSProperties;
|
22
|
+
hoveringArea?: string | null;
|
23
|
+
setHoveringArea?: (area: string | null) => void;
|
24
|
+
hoveringZone?: string | null;
|
25
|
+
setHoveringZone?: (zone: string | null) => void;
|
26
|
+
hoveringComponent?: string | null;
|
27
|
+
setHoveringComponent?: (id: string | null) => void;
|
28
|
+
registerZoneArea?: (areaId: string) => void;
|
29
|
+
areasWithZones?: Record<string, boolean>;
|
30
|
+
registerZone?: (zoneCompound: string) => void;
|
31
|
+
unregisterZone?: (zoneCompound: string) => void;
|
32
|
+
activeZones?: Record<string, boolean>;
|
33
|
+
pathData?: PathData;
|
34
|
+
registerPath?: (selector: ItemSelector) => void;
|
35
|
+
mode?: "edit" | "render";
|
36
|
+
} | null;
|
37
|
+
declare const dropZoneContext: react.Context<DropZoneContext>;
|
38
|
+
declare const DropZoneProvider: ({ children, value, }: {
|
39
|
+
children: ReactNode;
|
40
|
+
value: DropZoneContext;
|
41
|
+
}) => react_jsx_runtime.JSX.Element;
|
42
|
+
|
8
43
|
type InsertAction = {
|
9
44
|
type: "insert";
|
10
45
|
componentType: string;
|
@@ -50,7 +85,7 @@ type SetDataAction = {
|
|
50
85
|
};
|
51
86
|
type SetAction = {
|
52
87
|
type: "set";
|
53
|
-
state: Partial<AppState
|
88
|
+
state: Partial<AppState> | ((previous: AppState) => Partial<AppState>);
|
54
89
|
};
|
55
90
|
type RegisterZoneAction = {
|
56
91
|
type: "registerZone";
|
@@ -64,41 +99,6 @@ type PuckAction = {
|
|
64
99
|
recordHistory?: boolean;
|
65
100
|
} & (ReorderAction | InsertAction | MoveAction | ReplaceAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
|
66
101
|
|
67
|
-
type PathData = Record<string, {
|
68
|
-
path: string[];
|
69
|
-
label: string;
|
70
|
-
}>;
|
71
|
-
type DropZoneContext = {
|
72
|
-
data: Data;
|
73
|
-
config: Config;
|
74
|
-
componentState?: Record<string, any>;
|
75
|
-
itemSelector?: ItemSelector | null;
|
76
|
-
setItemSelector?: (newIndex: ItemSelector | null) => void;
|
77
|
-
dispatch?: (action: PuckAction) => void;
|
78
|
-
areaId?: string;
|
79
|
-
draggedItem?: DragStart & Partial<DragUpdate>;
|
80
|
-
placeholderStyle?: CSSProperties;
|
81
|
-
hoveringArea?: string | null;
|
82
|
-
setHoveringArea?: (area: string | null) => void;
|
83
|
-
hoveringZone?: string | null;
|
84
|
-
setHoveringZone?: (zone: string | null) => void;
|
85
|
-
hoveringComponent?: string | null;
|
86
|
-
setHoveringComponent?: (id: string | null) => void;
|
87
|
-
registerZoneArea?: (areaId: string) => void;
|
88
|
-
areasWithZones?: Record<string, boolean>;
|
89
|
-
registerZone?: (zoneCompound: string) => void;
|
90
|
-
unregisterZone?: (zoneCompound: string) => void;
|
91
|
-
activeZones?: Record<string, boolean>;
|
92
|
-
pathData?: PathData;
|
93
|
-
registerPath?: (selector: ItemSelector) => void;
|
94
|
-
mode?: "edit" | "render";
|
95
|
-
} | null;
|
96
|
-
declare const dropZoneContext: react.Context<DropZoneContext>;
|
97
|
-
declare const DropZoneProvider: ({ children, value, }: {
|
98
|
-
children: ReactNode;
|
99
|
-
value: DropZoneContext;
|
100
|
-
}) => react_jsx_runtime.JSX.Element;
|
101
|
-
|
102
102
|
declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, }: {
|
103
103
|
children: ReactNode;
|
104
104
|
href?: string | undefined;
|
@@ -188,4 +188,4 @@ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }:
|
|
188
188
|
className?: string | undefined;
|
189
189
|
}) => react_jsx_runtime.JSX.Element;
|
190
190
|
|
191
|
-
export { AppState, Button, Config, Data, DefaultRootProps, DropZoneProvider, FieldLabel, IconButton, MappedItem, Puck, Render, RootData, RootDataWithProps, UiState, dropZoneContext, resolveAllData };
|
191
|
+
export { AppState, Button, Config, Data, DefaultRootProps, DropZoneProvider, FieldLabel, IconButton, MappedItem, Puck, PuckAction, Render, RootData, RootDataWithProps, UiState, dropZoneContext, resolveAllData };
|
package/dist/index.js
CHANGED
@@ -32436,11 +32436,6 @@ var Draggable2 = ({
|
|
32436
32436
|
);
|
32437
32437
|
};
|
32438
32438
|
|
32439
|
-
// lib/generate-id.ts
|
32440
|
-
init_react_import();
|
32441
|
-
var import_crypto = require("crypto");
|
32442
|
-
var generateId = (type) => `${type}-${(0, import_crypto.randomBytes)(20).toString("hex")}`;
|
32443
|
-
|
32444
32439
|
// components/InputOrGroup/fields/ArrayField/index.tsx
|
32445
32440
|
var import_react27 = require("react");
|
32446
32441
|
|
@@ -32467,47 +32462,59 @@ var ArrayField = ({
|
|
32467
32462
|
name,
|
32468
32463
|
label,
|
32469
32464
|
readOnly,
|
32470
|
-
readOnlyFields = {}
|
32465
|
+
readOnlyFields = {},
|
32466
|
+
id
|
32471
32467
|
}) => {
|
32472
|
-
const [arrayFieldId] = (0, import_react27.useState)(generateId("ArrayField"));
|
32473
32468
|
const { state, setUi } = useAppContext();
|
32474
|
-
const
|
32475
|
-
|
32476
|
-
|
32477
|
-
|
32478
|
-
|
32479
|
-
|
32480
|
-
|
32481
|
-
|
32482
|
-
|
32483
|
-
|
32484
|
-
|
32485
|
-
|
32486
|
-
|
32487
|
-
|
32488
|
-
|
32489
|
-
|
32490
|
-
|
32491
|
-
|
32469
|
+
const arrayState = state.ui.arrayState[id] || {
|
32470
|
+
items: Array.from(value || []).map((item, idx) => {
|
32471
|
+
return {
|
32472
|
+
_originalIndex: idx,
|
32473
|
+
_arrayId: `${id}-${idx}`,
|
32474
|
+
data: item
|
32475
|
+
};
|
32476
|
+
}),
|
32477
|
+
openId: ""
|
32478
|
+
};
|
32479
|
+
const [localState, setLocalState] = (0, import_react27.useState)({ arrayState, value });
|
32480
|
+
(0, import_react27.useEffect)(() => {
|
32481
|
+
setLocalState({ arrayState, value });
|
32482
|
+
}, [value, state.ui.arrayState[id]]);
|
32483
|
+
const mapArrayStateToUi = (0, import_react27.useCallback)(
|
32484
|
+
(partialArrayState) => {
|
32485
|
+
return {
|
32486
|
+
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
32487
|
+
[id]: __spreadValues(__spreadValues({}, arrayState), partialArrayState)
|
32488
|
+
})
|
32489
|
+
};
|
32492
32490
|
},
|
32493
32491
|
[arrayState]
|
32494
32492
|
);
|
32495
|
-
(0, import_react27.
|
32496
|
-
|
32493
|
+
const getHighestIndex = (0, import_react27.useCallback)(() => {
|
32494
|
+
return arrayState.items.reduce(
|
32497
32495
|
(acc, item) => item._originalIndex > acc ? item._originalIndex : acc,
|
32498
32496
|
-1
|
32499
32497
|
);
|
32500
|
-
|
32501
|
-
|
32502
|
-
|
32503
|
-
|
32504
|
-
|
32505
|
-
|
32506
|
-
|
32507
|
-
|
32508
|
-
|
32509
|
-
|
32510
|
-
|
32498
|
+
}, [arrayState]);
|
32499
|
+
const regenerateArrayState = (0, import_react27.useCallback)(
|
32500
|
+
(value2) => {
|
32501
|
+
let highestIndex = getHighestIndex();
|
32502
|
+
const newItems = Array.from(value2 || []).map((item, idx) => {
|
32503
|
+
var _a;
|
32504
|
+
const arrayStateItem = arrayState.items[idx];
|
32505
|
+
return {
|
32506
|
+
_originalIndex: typeof (arrayStateItem == null ? void 0 : arrayStateItem._originalIndex) !== "undefined" ? arrayStateItem._originalIndex : ++highestIndex,
|
32507
|
+
_arrayId: ((_a = arrayState.items[idx]) == null ? void 0 : _a._arrayId) || `${id}-${highestIndex}`,
|
32508
|
+
data: item
|
32509
|
+
};
|
32510
|
+
});
|
32511
|
+
return __spreadProps(__spreadValues({}, arrayState), { items: newItems });
|
32512
|
+
},
|
32513
|
+
[arrayState]
|
32514
|
+
);
|
32515
|
+
(0, import_react27.useEffect)(() => {
|
32516
|
+
setUi(mapArrayStateToUi(arrayState));
|
32517
|
+
}, []);
|
32511
32518
|
if (field.type !== "array" || !field.arrayFields) {
|
32512
32519
|
return null;
|
32513
32520
|
}
|
@@ -32522,15 +32529,27 @@ var ArrayField = ({
|
|
32522
32529
|
import_dnd5.DragDropContext,
|
32523
32530
|
{
|
32524
32531
|
onDragEnd: (event) => {
|
32525
|
-
var _a;
|
32532
|
+
var _a, _b;
|
32526
32533
|
if (event.destination) {
|
32527
32534
|
const newValue = reorder(
|
32528
|
-
|
32535
|
+
value,
|
32529
32536
|
event.source.index,
|
32530
32537
|
(_a = event.destination) == null ? void 0 : _a.index
|
32531
32538
|
);
|
32532
|
-
|
32533
|
-
|
32539
|
+
const newArrayStateItems = reorder(
|
32540
|
+
arrayState.items,
|
32541
|
+
event.source.index,
|
32542
|
+
(_b = event.destination) == null ? void 0 : _b.index
|
32543
|
+
);
|
32544
|
+
onChange(newValue, {
|
32545
|
+
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
32546
|
+
[id]: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
32547
|
+
})
|
32548
|
+
});
|
32549
|
+
setLocalState({
|
32550
|
+
value: newValue,
|
32551
|
+
arrayState: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
32552
|
+
});
|
32534
32553
|
}
|
32535
32554
|
},
|
32536
32555
|
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_dnd4.Droppable, { droppableId: "array", isDropDisabled: readOnly, children: (provided, snapshot) => {
|
@@ -32543,8 +32562,9 @@ var ArrayField = ({
|
|
32543
32562
|
hasItems: Array.isArray(value) && value.length > 0
|
32544
32563
|
}),
|
32545
32564
|
children: [
|
32546
|
-
arrayState.items.map((
|
32547
|
-
const { _arrayId
|
32565
|
+
localState.arrayState.items.map((item, i) => {
|
32566
|
+
const { _arrayId = `${id}-${i}`, _originalIndex = i } = item;
|
32567
|
+
const data = Array.from(localState.value || [])[i];
|
32548
32568
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
32549
32569
|
Draggable2,
|
32550
32570
|
{
|
@@ -32552,7 +32572,7 @@ var ArrayField = ({
|
|
32552
32572
|
index: i,
|
32553
32573
|
className: (_, snapshot2) => getClassNameItem({
|
32554
32574
|
isExpanded: arrayState.openId === _arrayId,
|
32555
|
-
isDragging: snapshot2.isDragging,
|
32575
|
+
isDragging: snapshot2 == null ? void 0 : snapshot2.isDragging,
|
32556
32576
|
readOnly
|
32557
32577
|
}),
|
32558
32578
|
isDragDisabled: readOnly,
|
@@ -32562,13 +32582,17 @@ var ArrayField = ({
|
|
32562
32582
|
{
|
32563
32583
|
onClick: () => {
|
32564
32584
|
if (arrayState.openId === _arrayId) {
|
32565
|
-
|
32566
|
-
|
32567
|
-
|
32585
|
+
setUi(
|
32586
|
+
mapArrayStateToUi({
|
32587
|
+
openId: ""
|
32588
|
+
})
|
32589
|
+
);
|
32568
32590
|
} else {
|
32569
|
-
|
32570
|
-
|
32571
|
-
|
32591
|
+
setUi(
|
32592
|
+
mapArrayStateToUi({
|
32593
|
+
openId: _arrayId
|
32594
|
+
})
|
32595
|
+
);
|
32572
32596
|
}
|
32573
32597
|
},
|
32574
32598
|
className: getClassNameItem("summary"),
|
@@ -32588,11 +32612,12 @@ var ArrayField = ({
|
|
32588
32612
|
];
|
32589
32613
|
existingValue.splice(i, 1);
|
32590
32614
|
existingItems.splice(i, 1);
|
32591
|
-
|
32592
|
-
|
32593
|
-
|
32615
|
+
onChange(
|
32616
|
+
existingValue,
|
32617
|
+
mapArrayStateToUi({
|
32618
|
+
items: existingItems
|
32619
|
+
})
|
32594
32620
|
);
|
32595
|
-
onChange(existingValue);
|
32596
32621
|
},
|
32597
32622
|
title: "Delete",
|
32598
32623
|
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(trash_default, { size: 16 })
|
@@ -32613,15 +32638,18 @@ var ArrayField = ({
|
|
32613
32638
|
{
|
32614
32639
|
name: subFieldName,
|
32615
32640
|
label: subField.label || fieldName,
|
32641
|
+
id: `${id}_${fieldName}`,
|
32616
32642
|
readOnly: typeof readOnlyFields[subFieldName] !== "undefined" ? readOnlyFields[subFieldName] : readOnlyFields[wildcardFieldName],
|
32617
32643
|
readOnlyFields,
|
32618
32644
|
field: subField,
|
32619
32645
|
value: data[fieldName],
|
32620
|
-
onChange: (val) =>
|
32621
|
-
|
32622
|
-
|
32623
|
-
|
32624
|
-
|
32646
|
+
onChange: (val) => {
|
32647
|
+
onChange(
|
32648
|
+
replace(value, i, __spreadProps(__spreadValues({}, data), {
|
32649
|
+
[fieldName]: val
|
32650
|
+
}))
|
32651
|
+
);
|
32652
|
+
}
|
32625
32653
|
},
|
32626
32654
|
subFieldName
|
32627
32655
|
);
|
@@ -32639,7 +32667,12 @@ var ArrayField = ({
|
|
32639
32667
|
className: getClassName6("addButton"),
|
32640
32668
|
onClick: () => {
|
32641
32669
|
const existingValue = value || [];
|
32642
|
-
|
32670
|
+
const newValue = [
|
32671
|
+
...existingValue,
|
32672
|
+
field.defaultItemProps || {}
|
32673
|
+
];
|
32674
|
+
const newArrayState = regenerateArrayState(newValue);
|
32675
|
+
onChange(newValue, mapArrayStateToUi(newArrayState));
|
32643
32676
|
},
|
32644
32677
|
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(plus_default, { size: "21" })
|
32645
32678
|
}
|
@@ -32664,7 +32697,8 @@ var DefaultField = ({
|
|
32664
32697
|
readOnly,
|
32665
32698
|
value,
|
32666
32699
|
name,
|
32667
|
-
label
|
32700
|
+
label,
|
32701
|
+
id
|
32668
32702
|
}) => {
|
32669
32703
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
32670
32704
|
FieldLabelInternal,
|
@@ -32690,7 +32724,8 @@ var DefaultField = ({
|
|
32690
32724
|
onChange(e.currentTarget.value);
|
32691
32725
|
}
|
32692
32726
|
},
|
32693
|
-
readOnly
|
32727
|
+
readOnly,
|
32728
|
+
id
|
32694
32729
|
}
|
32695
32730
|
)
|
32696
32731
|
}
|
@@ -32779,7 +32814,8 @@ var ExternalInput = ({
|
|
32779
32814
|
field,
|
32780
32815
|
onChange,
|
32781
32816
|
value = null,
|
32782
|
-
name
|
32817
|
+
name,
|
32818
|
+
id
|
32783
32819
|
}) => {
|
32784
32820
|
const { mapProp = (val) => val } = field || {};
|
32785
32821
|
const [data, setData] = (0, import_react29.useState)([]);
|
@@ -32813,6 +32849,7 @@ var ExternalInput = ({
|
|
32813
32849
|
dataSelected: !!value,
|
32814
32850
|
modalVisible: isOpen
|
32815
32851
|
}),
|
32852
|
+
id,
|
32816
32853
|
children: [
|
32817
32854
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: getClassName10("actions"), children: [
|
32818
32855
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
@@ -32890,7 +32927,8 @@ var ExternalField = ({
|
|
32890
32927
|
onChange,
|
32891
32928
|
value,
|
32892
32929
|
name,
|
32893
|
-
label
|
32930
|
+
label,
|
32931
|
+
id
|
32894
32932
|
}) => {
|
32895
32933
|
var _a, _b, _c;
|
32896
32934
|
const validField = field;
|
@@ -32926,7 +32964,8 @@ var ExternalField = ({
|
|
32926
32964
|
}) : validField.fetchList
|
32927
32965
|
}),
|
32928
32966
|
onChange,
|
32929
|
-
value
|
32967
|
+
value,
|
32968
|
+
id
|
32930
32969
|
}
|
32931
32970
|
)
|
32932
32971
|
}
|
@@ -32942,7 +32981,8 @@ var RadioField = ({
|
|
32942
32981
|
onChange,
|
32943
32982
|
readOnly,
|
32944
32983
|
value,
|
32945
|
-
name
|
32984
|
+
name,
|
32985
|
+
id
|
32946
32986
|
}) => {
|
32947
32987
|
if (field.type !== "radio" || !field.options) {
|
32948
32988
|
return null;
|
@@ -32954,7 +32994,7 @@ var RadioField = ({
|
|
32954
32994
|
label: field.label || name,
|
32955
32995
|
readOnly,
|
32956
32996
|
el: "div",
|
32957
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName11("radioGroupItems"), children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
32997
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassName11("radioGroupItems"), id, children: field.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
32958
32998
|
"label",
|
32959
32999
|
{
|
32960
33000
|
className: getClassName11("radio"),
|
@@ -32996,7 +33036,8 @@ var SelectField = ({
|
|
32996
33036
|
label,
|
32997
33037
|
value,
|
32998
33038
|
name,
|
32999
|
-
readOnly
|
33039
|
+
readOnly,
|
33040
|
+
id
|
33000
33041
|
}) => {
|
33001
33042
|
if (field.type !== "select" || !field.options) {
|
33002
33043
|
return null;
|
@@ -33010,6 +33051,7 @@ var SelectField = ({
|
|
33010
33051
|
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
33011
33052
|
"select",
|
33012
33053
|
{
|
33054
|
+
id,
|
33013
33055
|
className: getClassName12("input"),
|
33014
33056
|
disabled: readOnly,
|
33015
33057
|
onChange: (e) => {
|
@@ -33043,7 +33085,8 @@ var TextareaField = ({
|
|
33043
33085
|
readOnly,
|
33044
33086
|
value,
|
33045
33087
|
name,
|
33046
|
-
label
|
33088
|
+
label,
|
33089
|
+
id
|
33047
33090
|
}) => {
|
33048
33091
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
33049
33092
|
FieldLabelInternal,
|
@@ -33054,6 +33097,7 @@ var TextareaField = ({
|
|
33054
33097
|
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
33055
33098
|
"textarea",
|
33056
33099
|
{
|
33100
|
+
id,
|
33057
33101
|
className: getClassName13("input"),
|
33058
33102
|
autoComplete: "off",
|
33059
33103
|
name,
|
@@ -33096,7 +33140,6 @@ var FieldLabelInternal = ({
|
|
33096
33140
|
el = "label",
|
33097
33141
|
readOnly
|
33098
33142
|
}) => {
|
33099
|
-
const El = el;
|
33100
33143
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
33101
33144
|
FieldLabel,
|
33102
33145
|
{
|
@@ -33114,15 +33157,15 @@ var InputOrGroup = (_a) => {
|
|
33114
33157
|
const { name, field, value, readOnly } = props;
|
33115
33158
|
const [localValue, setLocalValue] = (0, import_react31.useState)(value);
|
33116
33159
|
const onChangeDb = (0, import_use_debounce2.useDebouncedCallback)(
|
33117
|
-
(val) => {
|
33118
|
-
onChange(val);
|
33160
|
+
(val, ui) => {
|
33161
|
+
onChange(val, ui);
|
33119
33162
|
},
|
33120
33163
|
50,
|
33121
33164
|
{ leading: true }
|
33122
33165
|
);
|
33123
|
-
const onChangeLocal = (0, import_react31.useCallback)((val) => {
|
33166
|
+
const onChangeLocal = (0, import_react31.useCallback)((val, ui) => {
|
33124
33167
|
setLocalValue(val);
|
33125
|
-
onChangeDb(val);
|
33168
|
+
onChangeDb(val, ui);
|
33126
33169
|
}, []);
|
33127
33170
|
(0, import_react31.useEffect)(() => {
|
33128
33171
|
setLocalValue(value);
|
@@ -33417,6 +33460,13 @@ var import_react35 = require("react");
|
|
33417
33460
|
// lib/use-action-history.ts
|
33418
33461
|
init_react_import();
|
33419
33462
|
var import_react34 = require("react");
|
33463
|
+
|
33464
|
+
// lib/generate-id.ts
|
33465
|
+
init_react_import();
|
33466
|
+
var import_crypto = require("crypto");
|
33467
|
+
var generateId = (type) => `${type}-${(0, import_crypto.randomBytes)(20).toString("hex")}`;
|
33468
|
+
|
33469
|
+
// lib/use-action-history.ts
|
33420
33470
|
var EMPTY_HISTORY_INDEX = -1;
|
33421
33471
|
function useActionHistory() {
|
33422
33472
|
const [histories, setHistories] = (0, import_react34.useState)([]);
|
@@ -33825,13 +33875,19 @@ var storeInterceptor = (reducer) => {
|
|
33825
33875
|
return newAppState;
|
33826
33876
|
};
|
33827
33877
|
};
|
33878
|
+
var setAction = (state, action) => {
|
33879
|
+
if (typeof action.state === "object") {
|
33880
|
+
return __spreadValues(__spreadValues({}, state), action.state);
|
33881
|
+
}
|
33882
|
+
return __spreadValues(__spreadValues({}, state), action.state(state));
|
33883
|
+
};
|
33828
33884
|
var createReducer = ({
|
33829
33885
|
config
|
33830
33886
|
}) => storeInterceptor((state, action) => {
|
33831
33887
|
const data = reduceData(state.data, action, config);
|
33832
33888
|
const ui = reduceUi(state.ui, action);
|
33833
33889
|
if (action.type === "set") {
|
33834
|
-
return
|
33890
|
+
return setAction(state, action);
|
33835
33891
|
}
|
33836
33892
|
return { data, ui };
|
33837
33893
|
});
|
@@ -34202,10 +34258,10 @@ var resolveRootData = (data, config) => __async(void 0, null, function* () {
|
|
34202
34258
|
});
|
34203
34259
|
|
34204
34260
|
// lib/use-resolved-data.ts
|
34205
|
-
var useResolvedData = (
|
34206
|
-
const [{ resolverKey,
|
34261
|
+
var useResolvedData = (appState, config, dispatch) => {
|
34262
|
+
const [{ resolverKey, newAppState }, setResolverState] = (0, import_react38.useState)({
|
34207
34263
|
resolverKey: 0,
|
34208
|
-
|
34264
|
+
newAppState: appState
|
34209
34265
|
});
|
34210
34266
|
const [componentState, setComponentState] = (0, import_react38.useState)({});
|
34211
34267
|
const deferredSetStates = {};
|
@@ -34225,14 +34281,23 @@ var useResolvedData = (data, config, dispatch) => {
|
|
34225
34281
|
[]
|
34226
34282
|
);
|
34227
34283
|
const runResolvers = () => __async(void 0, null, function* () {
|
34284
|
+
const newData = newAppState.data;
|
34228
34285
|
const flatContent = Object.keys(newData.zones || {}).reduce((acc, zone) => [...acc, ...newData.zones[zone]], newData.content).filter((item) => !!config.components[item.type].resolveData);
|
34229
34286
|
const applyIfChange = (dynamicDataMap, dynamicRoot) => {
|
34230
|
-
const processed = applyDynamicProps(
|
34231
|
-
|
34287
|
+
const processed = applyDynamicProps(
|
34288
|
+
appState.data,
|
34289
|
+
dynamicDataMap,
|
34290
|
+
dynamicRoot
|
34291
|
+
);
|
34292
|
+
const processedAppState = __spreadProps(__spreadValues({}, appState), { data: processed });
|
34293
|
+
const containsChanges = JSON.stringify(appState) !== JSON.stringify(processedAppState);
|
34232
34294
|
if (containsChanges) {
|
34233
34295
|
dispatch({
|
34234
|
-
type: "
|
34235
|
-
|
34296
|
+
type: "set",
|
34297
|
+
state: (prev) => __spreadProps(__spreadValues({}, prev), {
|
34298
|
+
data: applyDynamicProps(prev.data, dynamicDataMap, dynamicRoot),
|
34299
|
+
ui: __spreadValues(__spreadValues({}, prev.ui), newAppState.ui)
|
34300
|
+
}),
|
34236
34301
|
recordHistory: resolverKey > 0
|
34237
34302
|
});
|
34238
34303
|
}
|
@@ -34270,10 +34335,10 @@ var useResolvedData = (data, config, dispatch) => {
|
|
34270
34335
|
(0, import_react38.useEffect)(() => {
|
34271
34336
|
runResolvers();
|
34272
34337
|
}, [resolverKey]);
|
34273
|
-
const resolveData = (0, import_react38.useCallback)((
|
34338
|
+
const resolveData = (0, import_react38.useCallback)((newAppState2 = appState) => {
|
34274
34339
|
setResolverState((curr) => ({
|
34275
34340
|
resolverKey: curr.resolverKey + 1,
|
34276
|
-
|
34341
|
+
newAppState: newAppState2
|
34277
34342
|
}));
|
34278
34343
|
}, []);
|
34279
34344
|
return {
|
@@ -34416,7 +34481,7 @@ function Puck({
|
|
34416
34481
|
);
|
34417
34482
|
const { data, ui } = appState;
|
34418
34483
|
const { resolveData, componentState } = useResolvedData(
|
34419
|
-
|
34484
|
+
appState,
|
34420
34485
|
config,
|
34421
34486
|
dispatch
|
34422
34487
|
);
|
@@ -34766,7 +34831,7 @@ function Puck({
|
|
34766
34831
|
isLoading: selectedItem ? (_a2 = componentState[selectedItem == null ? void 0 : selectedItem.props.id]) == null ? void 0 : _a2.loading : (_b2 = componentState["puck-root"]) == null ? void 0 : _b2.loading,
|
34767
34832
|
children: Object.keys(fields).map((fieldName) => {
|
34768
34833
|
const field = fields[fieldName];
|
34769
|
-
const onChange2 = (value) => {
|
34834
|
+
const onChange2 = (value, updatedUi) => {
|
34770
34835
|
var _a3, _b3;
|
34771
34836
|
let currentProps;
|
34772
34837
|
if (selectedItem) {
|
@@ -34778,27 +34843,51 @@ function Puck({
|
|
34778
34843
|
[fieldName]: value
|
34779
34844
|
});
|
34780
34845
|
if (itemSelector) {
|
34781
|
-
const
|
34846
|
+
const replaceActionData = {
|
34782
34847
|
type: "replace",
|
34783
34848
|
destinationIndex: itemSelector.index,
|
34784
34849
|
destinationZone: itemSelector.zone || rootDroppableId,
|
34785
34850
|
data: __spreadProps(__spreadValues({}, selectedItem), { props: newProps })
|
34786
34851
|
};
|
34852
|
+
const replacedData = replaceAction(
|
34853
|
+
data,
|
34854
|
+
replaceActionData
|
34855
|
+
);
|
34856
|
+
const setActionData = {
|
34857
|
+
type: "set",
|
34858
|
+
state: {
|
34859
|
+
data: __spreadValues(__spreadValues({}, data), replacedData),
|
34860
|
+
ui: __spreadValues(__spreadValues({}, ui), updatedUi)
|
34861
|
+
}
|
34862
|
+
};
|
34787
34863
|
if ((_a3 = config.components[selectedItem.type]) == null ? void 0 : _a3.resolveData) {
|
34788
|
-
resolveData(
|
34864
|
+
resolveData(
|
34865
|
+
setAction(appState, setActionData)
|
34866
|
+
);
|
34789
34867
|
} else {
|
34790
|
-
dispatch(
|
34868
|
+
dispatch(__spreadProps(__spreadValues({}, setActionData), {
|
34869
|
+
recordHistory: true
|
34870
|
+
}));
|
34791
34871
|
}
|
34792
34872
|
} else {
|
34793
34873
|
if (data.root.props) {
|
34794
34874
|
if ((_b3 = config.root) == null ? void 0 : _b3.resolveData) {
|
34795
|
-
resolveData(
|
34796
|
-
|
34797
|
-
|
34875
|
+
resolveData({
|
34876
|
+
ui: __spreadValues(__spreadValues({}, ui), updatedUi),
|
34877
|
+
data: __spreadProps(__spreadValues({}, data), {
|
34878
|
+
root: { props: newProps }
|
34879
|
+
})
|
34880
|
+
});
|
34798
34881
|
} else {
|
34799
34882
|
dispatch({
|
34800
|
-
type: "
|
34801
|
-
|
34883
|
+
type: "set",
|
34884
|
+
state: {
|
34885
|
+
ui: __spreadValues(__spreadValues({}, ui), updatedUi),
|
34886
|
+
data: __spreadProps(__spreadValues({}, data), {
|
34887
|
+
root: { props: newProps }
|
34888
|
+
})
|
34889
|
+
},
|
34890
|
+
recordHistory: true
|
34802
34891
|
});
|
34803
34892
|
}
|
34804
34893
|
} else {
|
@@ -34816,6 +34905,7 @@ function Puck({
|
|
34816
34905
|
{
|
34817
34906
|
field,
|
34818
34907
|
name: fieldName,
|
34908
|
+
id: `${selectedItem.props.id}_${fieldName}`,
|
34819
34909
|
label: field.label,
|
34820
34910
|
readOnly: readOnly[fieldName],
|
34821
34911
|
readOnlyFields: readOnly,
|
@@ -34831,6 +34921,7 @@ function Puck({
|
|
34831
34921
|
{
|
34832
34922
|
field,
|
34833
34923
|
name: fieldName,
|
34924
|
+
id: `root_${fieldName}`,
|
34834
34925
|
label: field.label,
|
34835
34926
|
readOnly: readOnly[fieldName],
|
34836
34927
|
readOnlyFields: readOnly,
|
package/dist/rsc.d.ts
CHANGED