@akinon/akifilter 1.2.0-next.6 → 1.2.0-next.8
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/cjs/akifilter.d.ts.map +1 -1
- package/dist/cjs/akifilter.js +14 -21
- package/dist/esm/akifilter.d.ts.map +1 -1
- package/dist/esm/akifilter.js +14 -21
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akifilter.d.ts","sourceRoot":"","sources":["../../src/akifilter.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAGtB,OAAO,EAIL,WAAW,EAEX,IAAI,EAGL,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC;AAY/D,KAAK,oBAAoB,GAAG,WAAW,CAAC;AA2DxC,MAAM,MAAM,cAAc,CACxB,YAAY,SAAS,oBAAoB,GAAG,oBAAoB,IAC9D;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"akifilter.d.ts","sourceRoot":"","sources":["../../src/akifilter.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAGtB,OAAO,EAIL,WAAW,EAEX,IAAI,EAGL,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC;AAY/D,KAAK,oBAAoB,GAAG,WAAW,CAAC;AA2DxC,MAAM,MAAM,cAAc,CACxB,YAAY,SAAS,oBAAoB,GAAG,oBAAoB,IAC9D;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AA2vBF,eAAO,MAAM,SAAS;KACpB,YAAY,SAAS,oBAAoB,uBAElC,cAAc,CAAC,YAAY,CAAC;;CAmBpC,CAAC"}
|
package/dist/cjs/akifilter.js
CHANGED
|
@@ -187,7 +187,20 @@ const AkifilterContent = ({ filterSchema, storageNamespace, defaultValues, onVal
|
|
|
187
187
|
(0, storage_1.writeVisibleKeys)(storageKey, visibleKeys);
|
|
188
188
|
onVisibleFieldsChange === null || onVisibleFieldsChange === void 0 ? void 0 : onVisibleFieldsChange(visibleKeys);
|
|
189
189
|
}, [visibleKeys, onVisibleFieldsChange, storageKey]);
|
|
190
|
+
// Track previous mergedDefaultValues to avoid unnecessary resets
|
|
191
|
+
const previousMergedDefaultValuesRef = react_1.default.useRef(null);
|
|
190
192
|
react_1.default.useEffect(() => {
|
|
193
|
+
const serialised = JSON.stringify(mergedDefaultValues);
|
|
194
|
+
// Skip if the values haven't actually changed (deep comparison)
|
|
195
|
+
if (previousMergedDefaultValuesRef.current === serialised) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
// Skip reset on initial mount - useForm already uses defaultValues
|
|
199
|
+
if (previousMergedDefaultValuesRef.current === null) {
|
|
200
|
+
previousMergedDefaultValuesRef.current = serialised;
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
previousMergedDefaultValuesRef.current = serialised;
|
|
191
204
|
formMethods.reset(mergedDefaultValues);
|
|
192
205
|
}, [formMethods, mergedDefaultValues]);
|
|
193
206
|
const normalisedValues = react_1.default.useMemo(() => (0, values_1.normaliseOutputValues)(flattenedSchema, formValues), [flattenedSchema, formValues]);
|
|
@@ -268,33 +281,13 @@ const AkifilterContent = ({ filterSchema, storageNamespace, defaultValues, onVal
|
|
|
268
281
|
const removedKeys = prevKeys.filter(key => !currKeys.includes(key));
|
|
269
282
|
// If a field was removed, immediately persist and emit (bypass debounce)
|
|
270
283
|
if (removedKeys.length > 0) {
|
|
271
|
-
// Sync form state for removed fields
|
|
272
|
-
removedKeys.forEach(key => {
|
|
273
|
-
const field = flattenedSchema.find(f => String(f.key) === key);
|
|
274
|
-
if (field) {
|
|
275
|
-
const defaultValue = schemaDefaults[key];
|
|
276
|
-
const nextValue = resolveClearedFieldValue(field, defaultValue);
|
|
277
|
-
formMethods.setValue(field.key, nextValue, {
|
|
278
|
-
shouldDirty: false,
|
|
279
|
-
shouldTouch: false,
|
|
280
|
-
shouldValidate: false
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
284
|
const nextSerialised = current;
|
|
285
285
|
persistValues(currParsed, nextSerialised);
|
|
286
286
|
lastPersistedValuesRef.current = nextSerialised;
|
|
287
287
|
currentSerialisedValuesRef.current = nextSerialised;
|
|
288
288
|
onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(currParsed);
|
|
289
289
|
}
|
|
290
|
-
}, [
|
|
291
|
-
serialisedValues,
|
|
292
|
-
onValuesChange,
|
|
293
|
-
persistValues,
|
|
294
|
-
flattenedSchema,
|
|
295
|
-
schemaDefaults,
|
|
296
|
-
formMethods
|
|
297
|
-
]);
|
|
290
|
+
}, [serialisedValues, onValuesChange, persistValues]);
|
|
298
291
|
const handleClearAll = react_1.default.useCallback(() => {
|
|
299
292
|
const clearedDefaults = Object.assign({}, schemaDefaults);
|
|
300
293
|
flattenedSchema.forEach(field => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akifilter.d.ts","sourceRoot":"","sources":["../../src/akifilter.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAGtB,OAAO,EAIL,WAAW,EAEX,IAAI,EAGL,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC;AAY/D,KAAK,oBAAoB,GAAG,WAAW,CAAC;AA2DxC,MAAM,MAAM,cAAc,CACxB,YAAY,SAAS,oBAAoB,GAAG,oBAAoB,IAC9D;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"akifilter.d.ts","sourceRoot":"","sources":["../../src/akifilter.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAGtB,OAAO,EAIL,WAAW,EAEX,IAAI,EAGL,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,MAAM,OAAO,CAAC;AA0B1B,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC;AAY/D,KAAK,oBAAoB,GAAG,WAAW,CAAC;AA2DxC,MAAM,MAAM,cAAc,CACxB,YAAY,SAAS,oBAAoB,GAAG,oBAAoB,IAC9D;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AA2vBF,eAAO,MAAM,SAAS;KACpB,YAAY,SAAS,oBAAoB,uBAElC,cAAc,CAAC,YAAY,CAAC;;CAmBpC,CAAC"}
|
package/dist/esm/akifilter.js
CHANGED
|
@@ -184,7 +184,20 @@ const AkifilterContent = ({ filterSchema, storageNamespace, defaultValues, onVal
|
|
|
184
184
|
writeVisibleKeys(storageKey, visibleKeys);
|
|
185
185
|
onVisibleFieldsChange === null || onVisibleFieldsChange === void 0 ? void 0 : onVisibleFieldsChange(visibleKeys);
|
|
186
186
|
}, [visibleKeys, onVisibleFieldsChange, storageKey]);
|
|
187
|
+
// Track previous mergedDefaultValues to avoid unnecessary resets
|
|
188
|
+
const previousMergedDefaultValuesRef = React.useRef(null);
|
|
187
189
|
React.useEffect(() => {
|
|
190
|
+
const serialised = JSON.stringify(mergedDefaultValues);
|
|
191
|
+
// Skip if the values haven't actually changed (deep comparison)
|
|
192
|
+
if (previousMergedDefaultValuesRef.current === serialised) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Skip reset on initial mount - useForm already uses defaultValues
|
|
196
|
+
if (previousMergedDefaultValuesRef.current === null) {
|
|
197
|
+
previousMergedDefaultValuesRef.current = serialised;
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
previousMergedDefaultValuesRef.current = serialised;
|
|
188
201
|
formMethods.reset(mergedDefaultValues);
|
|
189
202
|
}, [formMethods, mergedDefaultValues]);
|
|
190
203
|
const normalisedValues = React.useMemo(() => normaliseOutputValues(flattenedSchema, formValues), [flattenedSchema, formValues]);
|
|
@@ -265,33 +278,13 @@ const AkifilterContent = ({ filterSchema, storageNamespace, defaultValues, onVal
|
|
|
265
278
|
const removedKeys = prevKeys.filter(key => !currKeys.includes(key));
|
|
266
279
|
// If a field was removed, immediately persist and emit (bypass debounce)
|
|
267
280
|
if (removedKeys.length > 0) {
|
|
268
|
-
// Sync form state for removed fields
|
|
269
|
-
removedKeys.forEach(key => {
|
|
270
|
-
const field = flattenedSchema.find(f => String(f.key) === key);
|
|
271
|
-
if (field) {
|
|
272
|
-
const defaultValue = schemaDefaults[key];
|
|
273
|
-
const nextValue = resolveClearedFieldValue(field, defaultValue);
|
|
274
|
-
formMethods.setValue(field.key, nextValue, {
|
|
275
|
-
shouldDirty: false,
|
|
276
|
-
shouldTouch: false,
|
|
277
|
-
shouldValidate: false
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
281
|
const nextSerialised = current;
|
|
282
282
|
persistValues(currParsed, nextSerialised);
|
|
283
283
|
lastPersistedValuesRef.current = nextSerialised;
|
|
284
284
|
currentSerialisedValuesRef.current = nextSerialised;
|
|
285
285
|
onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(currParsed);
|
|
286
286
|
}
|
|
287
|
-
}, [
|
|
288
|
-
serialisedValues,
|
|
289
|
-
onValuesChange,
|
|
290
|
-
persistValues,
|
|
291
|
-
flattenedSchema,
|
|
292
|
-
schemaDefaults,
|
|
293
|
-
formMethods
|
|
294
|
-
]);
|
|
287
|
+
}, [serialisedValues, onValuesChange, persistValues]);
|
|
295
288
|
const handleClearAll = React.useCallback(() => {
|
|
296
289
|
const clearedDefaults = Object.assign({}, schemaDefaults);
|
|
297
290
|
flattenedSchema.forEach(field => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akinon/akifilter",
|
|
3
|
-
"version": "1.2.0-next.
|
|
3
|
+
"version": "1.2.0-next.8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Akifilter is a filtering library for Akinon frontend applications.",
|
|
6
6
|
"type": "module",
|
|
@@ -12,22 +12,22 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"antd": "^5.27.0",
|
|
14
14
|
"react-error-boundary": "^6.0.0",
|
|
15
|
-
"@akinon/akidate": "1.1.3-next.0",
|
|
16
15
|
"@akinon/akiform": "1.1.2",
|
|
17
|
-
"@akinon/akilocale": "1.2.1",
|
|
18
16
|
"@akinon/icons": "1.1.2-next.1",
|
|
17
|
+
"@akinon/akilocale": "1.2.1",
|
|
19
18
|
"@akinon/ui-button": "1.4.0-next.1",
|
|
20
19
|
"@akinon/ui-card": "1.1.3-next.1",
|
|
20
|
+
"@akinon/ui-collapse": "1.3.2-next.1",
|
|
21
21
|
"@akinon/ui-checkbox": "1.3.3-next.1",
|
|
22
22
|
"@akinon/ui-date-picker": "1.3.3-next.1",
|
|
23
23
|
"@akinon/ui-input": "1.1.3-next.1",
|
|
24
24
|
"@akinon/ui-input-number": "1.3.3-next.1",
|
|
25
|
-
"@akinon/ui-modal": "1.1.3-next.1",
|
|
26
|
-
"@akinon/ui-collapse": "1.3.2-next.1",
|
|
27
25
|
"@akinon/ui-pagination": "1.3.4-next.1",
|
|
28
|
-
"@akinon/ui-
|
|
26
|
+
"@akinon/ui-modal": "1.1.3-next.1",
|
|
29
27
|
"@akinon/ui-select": "1.3.4-next.1",
|
|
30
|
-
"@akinon/ui-
|
|
28
|
+
"@akinon/ui-space": "1.3.3-next.1",
|
|
29
|
+
"@akinon/ui-typography": "1.1.2-next.0",
|
|
30
|
+
"@akinon/akidate": "1.1.3-next.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"clean-package": "2.2.0",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"@akinon/akiform-builder": "1.3.5-next.1",
|
|
38
38
|
"@akinon/typescript-config": "1.1.1",
|
|
39
39
|
"@akinon/ui-theme": "1.1.3-next.1",
|
|
40
|
-
"@akinon/
|
|
41
|
-
"@akinon/
|
|
40
|
+
"@akinon/utils": "1.1.4-next.1",
|
|
41
|
+
"@akinon/vitest-config": "1.1.1"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": "^18 || ^19",
|