deepsea-components 5.16.12 → 5.16.14
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.
|
@@ -166,6 +166,12 @@ function DraggableGridItem(t0) {
|
|
|
166
166
|
} else t3 = $[18];
|
|
167
167
|
return t3;
|
|
168
168
|
}
|
|
169
|
+
function isLegalOrderMap({ orders, keys, orderMap }) {
|
|
170
|
+
if (!isTheSameIterable(orderMap.keys(), keys)) return false;
|
|
171
|
+
const values = Array.from(orderMap.values());
|
|
172
|
+
if (values.some((value)=>!orders.includes(value))) return false;
|
|
173
|
+
return values.length === new Set(values).size;
|
|
174
|
+
}
|
|
169
175
|
function DraggableGrid({ className, classNames, style, items = [], disabled, columns, rows, gap = 0, gapX = gap, gapY = gap, itemWidth, itemHeight, orderMap, onOrderMapChange, render, keyExtractor, isItemDisabled: _isItemDisabled, isOrderDisabled, orderPriority, handle, onDragMoveStart: _onDragMoveStart, onDragMove: _onDragMove, onDragMoveEnd: _onDragMoveEnd, ...rest }) {
|
|
170
176
|
const keyToItem_0 = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
171
177
|
const keyToItem = new Map();
|
|
@@ -191,9 +197,13 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
191
197
|
orderPriority
|
|
192
198
|
]);
|
|
193
199
|
const [keyToOrder, setKeyToOrder] = (0, external_react_namespaceObject.useState)(()=>{
|
|
194
|
-
if (orderMap
|
|
200
|
+
if (orderMap && isLegalOrderMap({
|
|
201
|
+
orders: orders_0,
|
|
202
|
+
keys: keyToItem_0.keys(),
|
|
203
|
+
orderMap
|
|
204
|
+
})) return orderMap;
|
|
195
205
|
const newOrderMap = getOrderMap({
|
|
196
|
-
prev:
|
|
206
|
+
prev: orderMap,
|
|
197
207
|
orders: orders_0,
|
|
198
208
|
keys: Array.from(keyToItem_0.keys()),
|
|
199
209
|
orderPriority
|
|
@@ -255,7 +265,11 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
255
265
|
]);
|
|
256
266
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
257
267
|
if (orderMap === keyToOrder) return;
|
|
258
|
-
if (orderMap
|
|
268
|
+
if (!!orderMap && isLegalOrderMap({
|
|
269
|
+
orders: orders_0,
|
|
270
|
+
keys: keyToItem_0.keys(),
|
|
271
|
+
orderMap
|
|
272
|
+
})) setKeyToOrder(orderMap);
|
|
259
273
|
else null == onOrderMapChange || onOrderMapChange(keyToOrder);
|
|
260
274
|
}, [
|
|
261
275
|
orderMap,
|
|
@@ -128,6 +128,12 @@ function DraggableGridItem(t0) {
|
|
|
128
128
|
} else t3 = $[18];
|
|
129
129
|
return t3;
|
|
130
130
|
}
|
|
131
|
+
function isLegalOrderMap({ orders, keys, orderMap }) {
|
|
132
|
+
if (!isTheSameIterable(orderMap.keys(), keys)) return false;
|
|
133
|
+
const values = Array.from(orderMap.values());
|
|
134
|
+
if (values.some((value)=>!orders.includes(value))) return false;
|
|
135
|
+
return values.length === new Set(values).size;
|
|
136
|
+
}
|
|
131
137
|
function DraggableGrid({ className, classNames, style, items = [], disabled, columns, rows, gap = 0, gapX = gap, gapY = gap, itemWidth, itemHeight, orderMap, onOrderMapChange, render, keyExtractor, isItemDisabled: _isItemDisabled, isOrderDisabled, orderPriority, handle, onDragMoveStart: _onDragMoveStart, onDragMove: _onDragMove, onDragMoveEnd: _onDragMoveEnd, ...rest }) {
|
|
132
138
|
const keyToItem_0 = useMemo(()=>{
|
|
133
139
|
const keyToItem = new Map();
|
|
@@ -153,9 +159,13 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
153
159
|
orderPriority
|
|
154
160
|
]);
|
|
155
161
|
const [keyToOrder, setKeyToOrder] = useState(()=>{
|
|
156
|
-
if (orderMap
|
|
162
|
+
if (orderMap && isLegalOrderMap({
|
|
163
|
+
orders: orders_0,
|
|
164
|
+
keys: keyToItem_0.keys(),
|
|
165
|
+
orderMap
|
|
166
|
+
})) return orderMap;
|
|
157
167
|
const newOrderMap = getOrderMap({
|
|
158
|
-
prev:
|
|
168
|
+
prev: orderMap,
|
|
159
169
|
orders: orders_0,
|
|
160
170
|
keys: Array.from(keyToItem_0.keys()),
|
|
161
171
|
orderPriority
|
|
@@ -217,7 +227,11 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
217
227
|
]);
|
|
218
228
|
useEffect(()=>{
|
|
219
229
|
if (orderMap === keyToOrder) return;
|
|
220
|
-
if (orderMap
|
|
230
|
+
if (!!orderMap && isLegalOrderMap({
|
|
231
|
+
orders: orders_0,
|
|
232
|
+
keys: keyToItem_0.keys(),
|
|
233
|
+
orderMap
|
|
234
|
+
})) setKeyToOrder(orderMap);
|
|
221
235
|
else null == onOrderMapChange || onOrderMapChange(keyToOrder);
|
|
222
236
|
}, [
|
|
223
237
|
orderMap,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deepsea-components",
|
|
3
|
-
"version": "5.16.
|
|
3
|
+
"version": "5.16.14",
|
|
4
4
|
"description": "格数科技自用组件库",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"echarts": "^5.6.0",
|
|
41
41
|
"hls.js": "^1.6.9",
|
|
42
42
|
"smooth-scrollbar": "^8.8.4",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
43
|
+
"deepsea-tools": "5.42.1",
|
|
44
|
+
"soda-hooks": "6.14.5"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "^5.9.2"
|
|
@@ -248,6 +248,20 @@ interface DraggingItem<K extends Key> {
|
|
|
248
248
|
keyToOrder: DraggableGridKeyToOrder<K>
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
+
interface IsLegalOrderMapParams<K extends Key> {
|
|
252
|
+
orders: number[]
|
|
253
|
+
keys: Iterable<K>
|
|
254
|
+
orderMap: DraggableGridKeyToOrder<K>
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/** 检查 orderMap 是否合法 */
|
|
258
|
+
function isLegalOrderMap<K extends Key>({ orders, keys, orderMap }: IsLegalOrderMapParams<K>) {
|
|
259
|
+
if (!isTheSameIterable(orderMap.keys(), keys)) return false
|
|
260
|
+
const values = Array.from(orderMap.values())
|
|
261
|
+
if (values.some(value => !orders.includes(value))) return false
|
|
262
|
+
return values.length === new Set(values).size
|
|
263
|
+
}
|
|
264
|
+
|
|
251
265
|
export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
252
266
|
className,
|
|
253
267
|
classNames,
|
|
@@ -299,8 +313,8 @@ export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
|
299
313
|
|
|
300
314
|
/** 元素的 key 到次序的映射 */
|
|
301
315
|
const [keyToOrder, setKeyToOrder] = useState(() => {
|
|
302
|
-
if (orderMap) return orderMap
|
|
303
|
-
const newOrderMap = getOrderMap({ prev:
|
|
316
|
+
if (orderMap && isLegalOrderMap({ orders, keys: keyToItem.keys(), orderMap })) return orderMap
|
|
317
|
+
const newOrderMap = getOrderMap({ prev: orderMap, orders, keys: Array.from(keyToItem.keys()), orderPriority })
|
|
304
318
|
onOrderMapChange?.(newOrderMap)
|
|
305
319
|
return newOrderMap
|
|
306
320
|
})
|
|
@@ -354,7 +368,7 @@ export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
|
354
368
|
/** 受控 */
|
|
355
369
|
useEffect(() => {
|
|
356
370
|
if (orderMap === keyToOrder) return
|
|
357
|
-
if (!!orderMap) setKeyToOrder(orderMap)
|
|
371
|
+
if (!!orderMap && isLegalOrderMap({ orders, keys: keyToItem.keys(), orderMap })) setKeyToOrder(orderMap)
|
|
358
372
|
else onOrderMapChange?.(keyToOrder)
|
|
359
373
|
}, [orderMap, keyToOrder, onOrderMapChange])
|
|
360
374
|
|