@pixpilot/formily-shadcn 0.8.0 → 0.8.2
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/_virtual/rolldown_runtime.cjs +25 -1
- package/dist/_virtual/rolldown_runtime.js +24 -1
- package/dist/components/array-base/array-base.cjs +59 -1
- package/dist/components/array-base/array-base.js +55 -1
- package/dist/components/array-base/array-context.cjs +28 -1
- package/dist/components/array-base/array-context.js +22 -1
- package/dist/components/array-base/component-context.cjs +28 -1
- package/dist/components/array-base/component-context.js +22 -1
- package/dist/components/array-base/components/addition.cjs +51 -1
- package/dist/components/array-base/components/addition.js +45 -1
- package/dist/components/array-base/components/array-copy.cjs +49 -1
- package/dist/components/array-base/components/array-copy.js +42 -1
- package/dist/components/array-base/components/array-index.cjs +15 -1
- package/dist/components/array-base/components/array-index.js +13 -1
- package/dist/components/array-base/components/array-item-label.cjs +22 -1
- package/dist/components/array-base/components/array-item-label.js +19 -1
- package/dist/components/array-base/components/components.cjs +30 -1
- package/dist/components/array-base/components/components.js +29 -1
- package/dist/components/array-base/components/edit.cjs +42 -1
- package/dist/components/array-base/components/edit.js +36 -1
- package/dist/components/array-base/components/empty.cjs +19 -1
- package/dist/components/array-base/components/empty.js +16 -1
- package/dist/components/array-base/components/get-array-components.cjs +88 -1
- package/dist/components/array-base/components/get-array-components.js +84 -1
- package/dist/components/array-base/components/move-down.cjs +47 -1
- package/dist/components/array-base/components/move-down.js +41 -1
- package/dist/components/array-base/components/move-up.cjs +47 -1
- package/dist/components/array-base/components/move-up.js +41 -1
- package/dist/components/array-base/components/remove.cjs +46 -1
- package/dist/components/array-base/components/remove.js +40 -1
- package/dist/components/array-base/components/title.cjs +17 -1
- package/dist/components/array-base/components/title.js +14 -1
- package/dist/components/array-base/components/use-array-components-registry.cjs +56 -1
- package/dist/components/array-base/components/use-array-components-registry.js +52 -1
- package/dist/components/array-base/constants/index.cjs +17 -1
- package/dist/components/array-base/constants/index.js +15 -1
- package/dist/components/array-base/index.cjs +2 -1
- package/dist/components/array-base/index.js +2 -1
- package/dist/components/array-base/utils/filter-and-sort-components.cjs +34 -1
- package/dist/components/array-base/utils/filter-and-sort-components.js +34 -1
- package/dist/components/array-base/utils/is-array-component.cjs +65 -1
- package/dist/components/array-base/utils/is-array-component.js +56 -1
- package/dist/components/array-cards/array-cards.cjs +64 -1
- package/dist/components/array-cards/array-cards.js +60 -1
- package/dist/components/array-cards/index.cjs +1 -1
- package/dist/components/array-cards/index.js +1 -1
- package/dist/components/array-cards/item.cjs +64 -1
- package/dist/components/array-cards/item.js +60 -1
- package/dist/components/array-collapse/array-collapse.cjs +96 -1
- package/dist/components/array-collapse/array-collapse.js +92 -1
- package/dist/components/array-collapse/index.cjs +1 -1
- package/dist/components/array-collapse/index.js +1 -1
- package/dist/components/array-collapse/item.cjs +84 -1
- package/dist/components/array-collapse/item.js +78 -1
- package/dist/components/array-common/array-items-list.cjs +43 -1
- package/dist/components/array-common/array-items-list.js +39 -1
- package/dist/components/array-common/create-active-item-manager.cjs +29 -1
- package/dist/components/array-common/create-active-item-manager.js +27 -1
- package/dist/components/array-common/index.cjs +5 -1
- package/dist/components/array-common/index.js +5 -1
- package/dist/components/array-common/item-wrapper.cjs +26 -1
- package/dist/components/array-common/item-wrapper.js +21 -1
- package/dist/components/array-common/list-item.cjs +53 -1
- package/dist/components/array-common/list-item.js +48 -1
- package/dist/components/array-common/use-array-editor.cjs +47 -1
- package/dist/components/array-common/use-array-editor.js +44 -1
- package/dist/components/array-dialog/array-dialog.cjs +66 -1
- package/dist/components/array-dialog/array-dialog.js +62 -1
- package/dist/components/array-dialog/edit-dialog.cjs +61 -1
- package/dist/components/array-dialog/edit-dialog.js +57 -1
- package/dist/components/array-dialog/index.cjs +1 -1
- package/dist/components/array-dialog/index.js +1 -1
- package/dist/components/array-popover/array-popover.cjs +58 -1
- package/dist/components/array-popover/array-popover.js +53 -1
- package/dist/components/array-popover/index.cjs +1 -1
- package/dist/components/array-popover/index.js +1 -1
- package/dist/components/array-popover/popover.cjs +75 -1
- package/dist/components/array-popover/popover.js +71 -1
- package/dist/components/checkbox.cjs +26 -1
- package/dist/components/checkbox.js +23 -1
- package/dist/components/column.cjs +39 -1
- package/dist/components/column.js +35 -1
- package/dist/components/combobox.cjs +14 -1
- package/dist/components/combobox.js +11 -1
- package/dist/components/context/context.cjs +7 -1
- package/dist/components/context/context.js +7 -1
- package/dist/components/context/form-context.cjs +9 -1
- package/dist/components/context/form-context.js +7 -1
- package/dist/components/context/index.cjs +2 -1
- package/dist/components/context/index.js +2 -1
- package/dist/components/date-picker.cjs +23 -1
- package/dist/components/date-picker.js +19 -1
- package/dist/components/file-upload/file-upload-inline.cjs +35 -1
- package/dist/components/file-upload/file-upload-inline.d.cts +8 -8
- package/dist/components/file-upload/file-upload-inline.js +30 -1
- package/dist/components/file-upload/file-upload.cjs +35 -1
- package/dist/components/file-upload/file-upload.d.cts +8 -8
- package/dist/components/file-upload/file-upload.js +30 -1
- package/dist/components/file-upload/index.cjs +2 -1
- package/dist/components/file-upload/index.js +2 -1
- package/dist/components/file-upload/use-file-upload-feedback.cjs +59 -3
- package/dist/components/file-upload/use-file-upload-feedback.js +53 -3
- package/dist/components/form-grid.cjs +19 -1
- package/dist/components/form-grid.js +15 -1
- package/dist/components/form-item.cjs +118 -3
- package/dist/components/form-item.js +112 -3
- package/dist/components/form-items-container.cjs +28 -1
- package/dist/components/form-items-container.js +24 -1
- package/dist/components/form.cjs +56 -1
- package/dist/components/form.js +51 -1
- package/dist/components/hidden.cjs +26 -1
- package/dist/components/hidden.js +23 -1
- package/dist/components/icon-picker.cjs +37 -1
- package/dist/components/icon-picker.js +33 -1
- package/dist/components/input.cjs +20 -1
- package/dist/components/input.js +17 -1
- package/dist/components/json-schema-form-renderer.cjs +30 -1
- package/dist/components/json-schema-form-renderer.js +26 -1
- package/dist/components/number-input.cjs +19 -1
- package/dist/components/number-input.d.ts +2 -2
- package/dist/components/number-input.js +16 -1
- package/dist/components/object-container.cjs +35 -1
- package/dist/components/object-container.js +32 -1
- package/dist/components/radio.cjs +40 -1
- package/dist/components/radio.js +35 -1
- package/dist/components/rich-text-editor.cjs +27 -1
- package/dist/components/rich-text-editor.js +23 -1
- package/dist/components/row.cjs +39 -1
- package/dist/components/row.js +35 -1
- package/dist/components/schema-field-extended.cjs +25 -1
- package/dist/components/schema-field-extended.d.cts +9 -9
- package/dist/components/schema-field-extended.d.ts +262 -262
- package/dist/components/schema-field-extended.js +23 -1
- package/dist/components/schema-field.cjs +61 -1
- package/dist/components/schema-field.d.cts +9 -9
- package/dist/components/schema-field.d.ts +220 -220
- package/dist/components/schema-field.js +57 -1
- package/dist/components/select.cjs +11 -1
- package/dist/components/select.js +8 -1
- package/dist/components/separator.cjs +15 -1
- package/dist/components/separator.d.ts +2 -2
- package/dist/components/separator.js +12 -1
- package/dist/components/slider.cjs +33 -1
- package/dist/components/slider.d.ts +2 -2
- package/dist/components/slider.js +29 -1
- package/dist/components/switch.cjs +21 -1
- package/dist/components/switch.js +18 -1
- package/dist/components/tags-input-inline.cjs +26 -1
- package/dist/components/tags-input-inline.js +23 -1
- package/dist/components/textarea.cjs +19 -1
- package/dist/components/textarea.js +16 -1
- package/dist/hooks/index.cjs +3 -1
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/use-description.cjs +14 -1
- package/dist/hooks/use-description.js +12 -1
- package/dist/hooks/use-form-context.cjs +13 -1
- package/dist/hooks/use-form-context.js +11 -1
- package/dist/hooks/use-label.cjs +19 -1
- package/dist/hooks/use-label.js +16 -1
- package/dist/index.cjs +102 -1
- package/dist/index.js +35 -1
- package/dist/utils/create-panel-state-manager.cjs +40 -1
- package/dist/utils/create-panel-state-manager.js +38 -1
- package/dist/utils/for-each-schema.cjs +27 -1
- package/dist/utils/for-each-schema.js +26 -1
- package/dist/utils/get-array-item-info.cjs +20 -1
- package/dist/utils/get-array-item-info.js +19 -1
- package/dist/utils/get-default-value.cjs +22 -1
- package/dist/utils/get-default-value.js +20 -1
- package/dist/utils/has-array-item-errors.cjs +15 -1
- package/dist/utils/has-array-item-errors.js +14 -1
- package/dist/utils/has-error.cjs +12 -1
- package/dist/utils/has-error.js +10 -1
- package/dist/utils/index.cjs +10 -1
- package/dist/utils/index.js +10 -1
- package/dist/utils/resolve-responsive-space.cjs +131 -1
- package/dist/utils/resolve-responsive-space.js +123 -1
- package/dist/utils/transform-schema.cjs +45 -1
- package/dist/utils/transform-schema.js +43 -1
- package/dist/utils/use-array-item-editor.cjs +3 -1
- package/dist/utils/use-array-item-editor.js +1 -1
- package/dist/utils/validate-array-item-fields.cjs +22 -1
- package/dist/utils/validate-array-item-fields.js +22 -1
- package/package.json +3 -3
|
@@ -1 +1,40 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __formily_reactive = require("@formily/reactive");
|
|
3
|
+
__formily_reactive = require_rolldown_runtime.__toESM(__formily_reactive);
|
|
4
|
+
|
|
5
|
+
//#region src/utils/create-panel-state-manager.ts
|
|
6
|
+
function createPanelStateManager(defaultActiveKeys, solo = false) {
|
|
7
|
+
const enforceSolo = (keys) => solo ? keys.slice(0, 1) : keys;
|
|
8
|
+
const panelState = (0, __formily_reactive.model)({
|
|
9
|
+
activeKeys: enforceSolo(defaultActiveKeys ?? []),
|
|
10
|
+
setActiveKeys(keys) {
|
|
11
|
+
panelState.activeKeys = enforceSolo(keys);
|
|
12
|
+
},
|
|
13
|
+
hasActiveKey(key) {
|
|
14
|
+
return panelState.activeKeys.includes(key);
|
|
15
|
+
},
|
|
16
|
+
addActiveKey(key) {
|
|
17
|
+
if (panelState.hasActiveKey(key)) return;
|
|
18
|
+
panelState.activeKeys = enforceSolo(solo ? [key] : [...panelState.activeKeys, key]);
|
|
19
|
+
},
|
|
20
|
+
removeActiveKey(key) {
|
|
21
|
+
panelState.activeKeys = panelState.activeKeys.filter((item) => item !== key);
|
|
22
|
+
},
|
|
23
|
+
toggleActiveKey(key) {
|
|
24
|
+
if (panelState.hasActiveKey(key)) panelState.removeActiveKey(key);
|
|
25
|
+
else panelState.addActiveKey(key);
|
|
26
|
+
},
|
|
27
|
+
swapActiveKeys(index, displacedIndex) {
|
|
28
|
+
const wasOpen = panelState.hasActiveKey(index);
|
|
29
|
+
const displacedWasOpen = panelState.hasActiveKey(displacedIndex);
|
|
30
|
+
panelState.removeActiveKey(index);
|
|
31
|
+
panelState.removeActiveKey(displacedIndex);
|
|
32
|
+
if (wasOpen) panelState.addActiveKey(displacedIndex);
|
|
33
|
+
if (displacedWasOpen) panelState.addActiveKey(index);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return (0, __formily_reactive.markRaw)(panelState);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
exports.createPanelStateManager = createPanelStateManager;
|
|
@@ -1 +1,38 @@
|
|
|
1
|
-
import{markRaw
|
|
1
|
+
import { markRaw, model } from "@formily/reactive";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/create-panel-state-manager.ts
|
|
4
|
+
function createPanelStateManager(defaultActiveKeys, solo = false) {
|
|
5
|
+
const enforceSolo = (keys) => solo ? keys.slice(0, 1) : keys;
|
|
6
|
+
const panelState = model({
|
|
7
|
+
activeKeys: enforceSolo(defaultActiveKeys ?? []),
|
|
8
|
+
setActiveKeys(keys) {
|
|
9
|
+
panelState.activeKeys = enforceSolo(keys);
|
|
10
|
+
},
|
|
11
|
+
hasActiveKey(key) {
|
|
12
|
+
return panelState.activeKeys.includes(key);
|
|
13
|
+
},
|
|
14
|
+
addActiveKey(key) {
|
|
15
|
+
if (panelState.hasActiveKey(key)) return;
|
|
16
|
+
panelState.activeKeys = enforceSolo(solo ? [key] : [...panelState.activeKeys, key]);
|
|
17
|
+
},
|
|
18
|
+
removeActiveKey(key) {
|
|
19
|
+
panelState.activeKeys = panelState.activeKeys.filter((item) => item !== key);
|
|
20
|
+
},
|
|
21
|
+
toggleActiveKey(key) {
|
|
22
|
+
if (panelState.hasActiveKey(key)) panelState.removeActiveKey(key);
|
|
23
|
+
else panelState.addActiveKey(key);
|
|
24
|
+
},
|
|
25
|
+
swapActiveKeys(index, displacedIndex) {
|
|
26
|
+
const wasOpen = panelState.hasActiveKey(index);
|
|
27
|
+
const displacedWasOpen = panelState.hasActiveKey(displacedIndex);
|
|
28
|
+
panelState.removeActiveKey(index);
|
|
29
|
+
panelState.removeActiveKey(displacedIndex);
|
|
30
|
+
if (wasOpen) panelState.addActiveKey(displacedIndex);
|
|
31
|
+
if (displacedWasOpen) panelState.addActiveKey(index);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return markRaw(panelState);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { createPanelStateManager };
|
|
@@ -1 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/utils/for-each-schema.ts
|
|
3
|
+
function forEachSchema(schema, visit, path = []) {
|
|
4
|
+
if (visit(schema, path) === false) return;
|
|
5
|
+
if (schema.properties) Object.entries(schema.properties).forEach(([key, propSchema]) => {
|
|
6
|
+
forEachSchema(propSchema, visit, [...path, key]);
|
|
7
|
+
});
|
|
8
|
+
if (schema.type === "array" && schema.items) forEachSchema(schema.items, visit, [...path, "items"]);
|
|
9
|
+
const schemaWithCombinators = schema;
|
|
10
|
+
[
|
|
11
|
+
"anyOf",
|
|
12
|
+
"oneOf",
|
|
13
|
+
"allOf"
|
|
14
|
+
].forEach((key) => {
|
|
15
|
+
const schemas = schemaWithCombinators[key];
|
|
16
|
+
if (schemas) schemas.forEach((subSchema, index) => {
|
|
17
|
+
forEachSchema(subSchema, visit, [
|
|
18
|
+
...path,
|
|
19
|
+
key,
|
|
20
|
+
String(index)
|
|
21
|
+
]);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.forEachSchema = forEachSchema;
|
|
@@ -1 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/utils/for-each-schema.ts
|
|
2
|
+
function forEachSchema(schema, visit, path = []) {
|
|
3
|
+
if (visit(schema, path) === false) return;
|
|
4
|
+
if (schema.properties) Object.entries(schema.properties).forEach(([key, propSchema]) => {
|
|
5
|
+
forEachSchema(propSchema, visit, [...path, key]);
|
|
6
|
+
});
|
|
7
|
+
if (schema.type === "array" && schema.items) forEachSchema(schema.items, visit, [...path, "items"]);
|
|
8
|
+
const schemaWithCombinators = schema;
|
|
9
|
+
[
|
|
10
|
+
"anyOf",
|
|
11
|
+
"oneOf",
|
|
12
|
+
"allOf"
|
|
13
|
+
].forEach((key) => {
|
|
14
|
+
const schemas = schemaWithCombinators[key];
|
|
15
|
+
if (schemas) schemas.forEach((subSchema, index) => {
|
|
16
|
+
forEachSchema(subSchema, visit, [
|
|
17
|
+
...path,
|
|
18
|
+
key,
|
|
19
|
+
String(index)
|
|
20
|
+
]);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { forEachSchema };
|
|
@@ -1 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/utils/get-array-item-info.ts
|
|
3
|
+
/**
|
|
4
|
+
* Retrieves the key and record for an array field item at the specified index.
|
|
5
|
+
* The key is derived from the item's 'id' property if available, otherwise falls back to the index.
|
|
6
|
+
* The record is the item data cast as a generic record.
|
|
7
|
+
*
|
|
8
|
+
* @param field - The Formily array field containing the items.
|
|
9
|
+
* @param index - The index of the item in the array.
|
|
10
|
+
* @returns An object containing the itemKey and record.
|
|
11
|
+
*/
|
|
12
|
+
function getArrayItemInfo(field, index) {
|
|
13
|
+
return {
|
|
14
|
+
itemKey: field.value?.[index]?.id ?? index,
|
|
15
|
+
record: field.value?.[index]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.getArrayItemInfo = getArrayItemInfo;
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/utils/get-array-item-info.ts
|
|
2
|
+
/**
|
|
3
|
+
* Retrieves the key and record for an array field item at the specified index.
|
|
4
|
+
* The key is derived from the item's 'id' property if available, otherwise falls back to the index.
|
|
5
|
+
* The record is the item data cast as a generic record.
|
|
6
|
+
*
|
|
7
|
+
* @param field - The Formily array field containing the items.
|
|
8
|
+
* @param index - The index of the item in the array.
|
|
9
|
+
* @returns An object containing the itemKey and record.
|
|
10
|
+
*/
|
|
11
|
+
function getArrayItemInfo(field, index) {
|
|
12
|
+
return {
|
|
13
|
+
itemKey: field.value?.[index]?.id ?? index,
|
|
14
|
+
record: field.value?.[index]
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { getArrayItemInfo };
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/utils/get-default-value.ts
|
|
3
|
+
function getSchemaDefaultValue(schema) {
|
|
4
|
+
if (!schema) return void 0;
|
|
5
|
+
if (schema.type === "array") return [];
|
|
6
|
+
if (schema.type === "object") return {};
|
|
7
|
+
if (schema.type === "void" && schema.properties) {
|
|
8
|
+
for (const key in schema.properties) if (Object.hasOwn(schema.properties, key)) {
|
|
9
|
+
const value = getSchemaDefaultValue(schema.properties[key]);
|
|
10
|
+
if (value !== void 0) return value;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function getDefaultValue(defaultValue, schema) {
|
|
15
|
+
if (defaultValue !== void 0) return JSON.parse(JSON.stringify(defaultValue));
|
|
16
|
+
if (Array.isArray(schema?.items)) return getSchemaDefaultValue(schema.items[0]);
|
|
17
|
+
return getSchemaDefaultValue(schema?.items);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
exports.getDefaultValue = getDefaultValue;
|
|
22
|
+
exports.getSchemaDefaultValue = getSchemaDefaultValue;
|
|
@@ -1 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/utils/get-default-value.ts
|
|
2
|
+
function getSchemaDefaultValue(schema) {
|
|
3
|
+
if (!schema) return void 0;
|
|
4
|
+
if (schema.type === "array") return [];
|
|
5
|
+
if (schema.type === "object") return {};
|
|
6
|
+
if (schema.type === "void" && schema.properties) {
|
|
7
|
+
for (const key in schema.properties) if (Object.hasOwn(schema.properties, key)) {
|
|
8
|
+
const value = getSchemaDefaultValue(schema.properties[key]);
|
|
9
|
+
if (value !== void 0) return value;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function getDefaultValue(defaultValue, schema) {
|
|
14
|
+
if (defaultValue !== void 0) return JSON.parse(JSON.stringify(defaultValue));
|
|
15
|
+
if (Array.isArray(schema?.items)) return getSchemaDefaultValue(schema.items[0]);
|
|
16
|
+
return getSchemaDefaultValue(schema?.items);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { getDefaultValue, getSchemaDefaultValue };
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/utils/has-array-item-errors.ts
|
|
3
|
+
/**
|
|
4
|
+
* Check if an array item at the specified index has any validation errors
|
|
5
|
+
* @param arrayField - The array field containing the item
|
|
6
|
+
* @param index - The index of the array item to check
|
|
7
|
+
* @returns true if the item has validation errors, false otherwise
|
|
8
|
+
*/
|
|
9
|
+
function hasArrayItemErrors(arrayField, index) {
|
|
10
|
+
const itemPathPattern = `${arrayField.address.toString()}.${index}.*`;
|
|
11
|
+
return arrayField.form.query(itemPathPattern).map((field) => field).some((field) => "errors" in field && Array.isArray(field.errors) && field.errors.length > 0);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.hasArrayItemErrors = hasArrayItemErrors;
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/utils/has-array-item-errors.ts
|
|
2
|
+
/**
|
|
3
|
+
* Check if an array item at the specified index has any validation errors
|
|
4
|
+
* @param arrayField - The array field containing the item
|
|
5
|
+
* @param index - The index of the array item to check
|
|
6
|
+
* @returns true if the item has validation errors, false otherwise
|
|
7
|
+
*/
|
|
8
|
+
function hasArrayItemErrors(arrayField, index) {
|
|
9
|
+
const itemPathPattern = `${arrayField.address.toString()}.${index}.*`;
|
|
10
|
+
return arrayField.form.query(itemPathPattern).map((field) => field).some((field) => "errors" in field && Array.isArray(field.errors) && field.errors.length > 0);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { hasArrayItemErrors };
|
package/dist/utils/has-error.cjs
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/utils/has-error.ts
|
|
3
|
+
function filedHasError(field) {
|
|
4
|
+
return "errors" in field && Array.isArray(field.errors) && field.errors.length > 0;
|
|
5
|
+
}
|
|
6
|
+
function fieldsHasError(fields) {
|
|
7
|
+
return fields.some((field) => filedHasError(field));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.fieldsHasError = fieldsHasError;
|
|
12
|
+
exports.filedHasError = filedHasError;
|
package/dist/utils/has-error.js
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/utils/has-error.ts
|
|
2
|
+
function filedHasError(field) {
|
|
3
|
+
return "errors" in field && Array.isArray(field.errors) && field.errors.length > 0;
|
|
4
|
+
}
|
|
5
|
+
function fieldsHasError(fields) {
|
|
6
|
+
return fields.some((field) => filedHasError(field));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { fieldsHasError, filedHasError };
|
package/dist/utils/index.cjs
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_has_error = require('./has-error.cjs');
|
|
2
|
+
const require_validate_array_item_fields = require('./validate-array-item-fields.cjs');
|
|
3
|
+
const require_create_panel_state_manager = require('./create-panel-state-manager.cjs');
|
|
4
|
+
const require_for_each_schema = require('./for-each-schema.cjs');
|
|
5
|
+
const require_get_array_item_info = require('./get-array-item-info.cjs');
|
|
6
|
+
const require_get_default_value = require('./get-default-value.cjs');
|
|
7
|
+
const require_has_array_item_errors = require('./has-array-item-errors.cjs');
|
|
8
|
+
const require_resolve_responsive_space = require('./resolve-responsive-space.cjs');
|
|
9
|
+
const require_transform_schema = require('./transform-schema.cjs');
|
|
10
|
+
require('./use-array-item-editor.cjs');
|
package/dist/utils/index.js
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
-
import{fieldsHasError
|
|
1
|
+
import { fieldsHasError, filedHasError } from "./has-error.js";
|
|
2
|
+
import { validateArrayItemFields } from "./validate-array-item-fields.js";
|
|
3
|
+
import { createPanelStateManager } from "./create-panel-state-manager.js";
|
|
4
|
+
import { forEachSchema } from "./for-each-schema.js";
|
|
5
|
+
import { getArrayItemInfo } from "./get-array-item-info.js";
|
|
6
|
+
import { getDefaultValue, getSchemaDefaultValue } from "./get-default-value.js";
|
|
7
|
+
import { hasArrayItemErrors } from "./has-array-item-errors.js";
|
|
8
|
+
import { autoResponsiveGapClasses, autoResponsiveSpaceClasses, getGapClass, getSpaceClass, isResponsiveDensity, resolveResponsiveGapClass, resolveResponsiveSpace, resolveResponsiveSpaceClass } from "./resolve-responsive-space.js";
|
|
9
|
+
import { transformSchema } from "./transform-schema.js";
|
|
10
|
+
import "./use-array-item-editor.js";
|
|
@@ -1 +1,131 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/utils/resolve-responsive-space.ts
|
|
3
|
+
/**
|
|
4
|
+
* Density-based space mapping
|
|
5
|
+
* Maps density levels to Tailwind space utilities
|
|
6
|
+
*/
|
|
7
|
+
const densitySpaceMap = {
|
|
8
|
+
compact: "sm",
|
|
9
|
+
normal: "md",
|
|
10
|
+
comfortable: "lg"
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Space to Tailwind space-y class mapping
|
|
14
|
+
* Converts space values to actual Tailwind utilities
|
|
15
|
+
*/
|
|
16
|
+
const spaceClassMap = {
|
|
17
|
+
sm: "space-y-3",
|
|
18
|
+
md: "space-y-4",
|
|
19
|
+
lg: "space-y-6"
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Space to Tailwind gap class mapping
|
|
23
|
+
* Converts space values to gap utilities for grid/flex containers
|
|
24
|
+
*/
|
|
25
|
+
const gapClassMap = {
|
|
26
|
+
sm: "gap-y-3",
|
|
27
|
+
md: "gap-y-4",
|
|
28
|
+
lg: "gap-y-6"
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Responsive breakpoint classes for responsive density mode
|
|
32
|
+
* - Mobile (default): compact (space-y-3)
|
|
33
|
+
* - Tablet (md:): normal (space-y-4)
|
|
34
|
+
* - Desktop (lg:): comfortable (space-y-6)
|
|
35
|
+
*/
|
|
36
|
+
const autoResponsiveSpaceClasses = "space-y-3 md:space-y-4 lg:space-y-6";
|
|
37
|
+
/**
|
|
38
|
+
* Responsive breakpoint classes for responsive density mode using gap
|
|
39
|
+
* - Mobile (default): compact (gap-y-3)
|
|
40
|
+
* - Tablet (md:): normal (gap-y-4)
|
|
41
|
+
* - Desktop (lg:): comfortable (gap-y-6)
|
|
42
|
+
*/
|
|
43
|
+
const autoResponsiveGapClasses = "gap-y-3 md:gap-y-4 lg:gap-y-6";
|
|
44
|
+
/**
|
|
45
|
+
* Checks if density is responsive mode
|
|
46
|
+
*
|
|
47
|
+
* @param density - Density value
|
|
48
|
+
* @returns true if density is 'responsive'
|
|
49
|
+
*/
|
|
50
|
+
function isResponsiveDensity(density) {
|
|
51
|
+
return density === "responsive";
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolves responsive space value from FormSpace configuration
|
|
55
|
+
* Priority:
|
|
56
|
+
* 1. If responsive is set → use it (ignore density)
|
|
57
|
+
* 2. If density is 'responsive' → return undefined (handled separately with responsive classes)
|
|
58
|
+
* 3. If only other density is set → use density-based mapping
|
|
59
|
+
* 4. Default to undefined (responsive mode)
|
|
60
|
+
*
|
|
61
|
+
* @param formSpace - FormSpace configuration
|
|
62
|
+
* @returns Space value ('sm' | 'md' | 'lg') or undefined for responsive mode
|
|
63
|
+
*/
|
|
64
|
+
function resolveResponsiveSpace(formSpace) {
|
|
65
|
+
if (!formSpace) return;
|
|
66
|
+
if (formSpace.responsive) return formSpace.responsive.desktop || formSpace.responsive.tablet || formSpace.responsive.mobile || "lg";
|
|
67
|
+
if (isResponsiveDensity(formSpace.density)) return;
|
|
68
|
+
if (formSpace.density && !isResponsiveDensity(formSpace.density)) return densitySpaceMap[formSpace.density];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Gets the Tailwind class for a given space value
|
|
72
|
+
*
|
|
73
|
+
* @param space - Space value
|
|
74
|
+
* @returns Tailwind utility class
|
|
75
|
+
*/
|
|
76
|
+
function getSpaceClass(space) {
|
|
77
|
+
return spaceClassMap[space];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Resolves responsive space and returns the Tailwind class(es)
|
|
81
|
+
* For responsive density, returns responsive breakpoint classes
|
|
82
|
+
* For fixed density, returns single space class
|
|
83
|
+
*
|
|
84
|
+
* @param formSpace - FormSpace configuration
|
|
85
|
+
* @returns Tailwind utility class(es)
|
|
86
|
+
*/
|
|
87
|
+
function resolveResponsiveSpaceClass(formSpace) {
|
|
88
|
+
if (!formSpace || isResponsiveDensity(formSpace.density)) return autoResponsiveSpaceClasses;
|
|
89
|
+
if (formSpace.responsive && !isResponsiveDensity(formSpace.density)) {
|
|
90
|
+
const space$1 = resolveResponsiveSpace(formSpace);
|
|
91
|
+
return space$1 ? getSpaceClass(space$1) : autoResponsiveSpaceClasses;
|
|
92
|
+
}
|
|
93
|
+
const space = resolveResponsiveSpace(formSpace);
|
|
94
|
+
return space ? getSpaceClass(space) : autoResponsiveSpaceClasses;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Gets the Tailwind gap class for a given space value
|
|
98
|
+
*
|
|
99
|
+
* @param space - Space value
|
|
100
|
+
* @returns Tailwind utility gap class
|
|
101
|
+
*/
|
|
102
|
+
function getGapClass(space) {
|
|
103
|
+
return gapClassMap[space];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Resolves responsive space and returns the Tailwind gap class(es)
|
|
107
|
+
* For responsive density, returns responsive breakpoint classes
|
|
108
|
+
* For fixed density, returns single gap class
|
|
109
|
+
*
|
|
110
|
+
* @param formSpace - FormSpace configuration
|
|
111
|
+
* @returns Tailwind utility gap class(es)
|
|
112
|
+
*/
|
|
113
|
+
function resolveResponsiveGapClass(formSpace) {
|
|
114
|
+
if (!formSpace || isResponsiveDensity(formSpace.density)) return autoResponsiveGapClasses;
|
|
115
|
+
if (formSpace.responsive && !isResponsiveDensity(formSpace.density)) {
|
|
116
|
+
const space$1 = resolveResponsiveSpace(formSpace);
|
|
117
|
+
return space$1 ? getGapClass(space$1) : autoResponsiveGapClasses;
|
|
118
|
+
}
|
|
119
|
+
const space = resolveResponsiveSpace(formSpace);
|
|
120
|
+
return space ? getGapClass(space) : autoResponsiveGapClasses;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
exports.autoResponsiveGapClasses = autoResponsiveGapClasses;
|
|
125
|
+
exports.autoResponsiveSpaceClasses = autoResponsiveSpaceClasses;
|
|
126
|
+
exports.getGapClass = getGapClass;
|
|
127
|
+
exports.getSpaceClass = getSpaceClass;
|
|
128
|
+
exports.isResponsiveDensity = isResponsiveDensity;
|
|
129
|
+
exports.resolveResponsiveGapClass = resolveResponsiveGapClass;
|
|
130
|
+
exports.resolveResponsiveSpace = resolveResponsiveSpace;
|
|
131
|
+
exports.resolveResponsiveSpaceClass = resolveResponsiveSpaceClass;
|
|
@@ -1 +1,123 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/utils/resolve-responsive-space.ts
|
|
2
|
+
/**
|
|
3
|
+
* Density-based space mapping
|
|
4
|
+
* Maps density levels to Tailwind space utilities
|
|
5
|
+
*/
|
|
6
|
+
const densitySpaceMap = {
|
|
7
|
+
compact: "sm",
|
|
8
|
+
normal: "md",
|
|
9
|
+
comfortable: "lg"
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Space to Tailwind space-y class mapping
|
|
13
|
+
* Converts space values to actual Tailwind utilities
|
|
14
|
+
*/
|
|
15
|
+
const spaceClassMap = {
|
|
16
|
+
sm: "space-y-3",
|
|
17
|
+
md: "space-y-4",
|
|
18
|
+
lg: "space-y-6"
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Space to Tailwind gap class mapping
|
|
22
|
+
* Converts space values to gap utilities for grid/flex containers
|
|
23
|
+
*/
|
|
24
|
+
const gapClassMap = {
|
|
25
|
+
sm: "gap-y-3",
|
|
26
|
+
md: "gap-y-4",
|
|
27
|
+
lg: "gap-y-6"
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Responsive breakpoint classes for responsive density mode
|
|
31
|
+
* - Mobile (default): compact (space-y-3)
|
|
32
|
+
* - Tablet (md:): normal (space-y-4)
|
|
33
|
+
* - Desktop (lg:): comfortable (space-y-6)
|
|
34
|
+
*/
|
|
35
|
+
const autoResponsiveSpaceClasses = "space-y-3 md:space-y-4 lg:space-y-6";
|
|
36
|
+
/**
|
|
37
|
+
* Responsive breakpoint classes for responsive density mode using gap
|
|
38
|
+
* - Mobile (default): compact (gap-y-3)
|
|
39
|
+
* - Tablet (md:): normal (gap-y-4)
|
|
40
|
+
* - Desktop (lg:): comfortable (gap-y-6)
|
|
41
|
+
*/
|
|
42
|
+
const autoResponsiveGapClasses = "gap-y-3 md:gap-y-4 lg:gap-y-6";
|
|
43
|
+
/**
|
|
44
|
+
* Checks if density is responsive mode
|
|
45
|
+
*
|
|
46
|
+
* @param density - Density value
|
|
47
|
+
* @returns true if density is 'responsive'
|
|
48
|
+
*/
|
|
49
|
+
function isResponsiveDensity(density) {
|
|
50
|
+
return density === "responsive";
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolves responsive space value from FormSpace configuration
|
|
54
|
+
* Priority:
|
|
55
|
+
* 1. If responsive is set → use it (ignore density)
|
|
56
|
+
* 2. If density is 'responsive' → return undefined (handled separately with responsive classes)
|
|
57
|
+
* 3. If only other density is set → use density-based mapping
|
|
58
|
+
* 4. Default to undefined (responsive mode)
|
|
59
|
+
*
|
|
60
|
+
* @param formSpace - FormSpace configuration
|
|
61
|
+
* @returns Space value ('sm' | 'md' | 'lg') or undefined for responsive mode
|
|
62
|
+
*/
|
|
63
|
+
function resolveResponsiveSpace(formSpace) {
|
|
64
|
+
if (!formSpace) return;
|
|
65
|
+
if (formSpace.responsive) return formSpace.responsive.desktop || formSpace.responsive.tablet || formSpace.responsive.mobile || "lg";
|
|
66
|
+
if (isResponsiveDensity(formSpace.density)) return;
|
|
67
|
+
if (formSpace.density && !isResponsiveDensity(formSpace.density)) return densitySpaceMap[formSpace.density];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Gets the Tailwind class for a given space value
|
|
71
|
+
*
|
|
72
|
+
* @param space - Space value
|
|
73
|
+
* @returns Tailwind utility class
|
|
74
|
+
*/
|
|
75
|
+
function getSpaceClass(space) {
|
|
76
|
+
return spaceClassMap[space];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Resolves responsive space and returns the Tailwind class(es)
|
|
80
|
+
* For responsive density, returns responsive breakpoint classes
|
|
81
|
+
* For fixed density, returns single space class
|
|
82
|
+
*
|
|
83
|
+
* @param formSpace - FormSpace configuration
|
|
84
|
+
* @returns Tailwind utility class(es)
|
|
85
|
+
*/
|
|
86
|
+
function resolveResponsiveSpaceClass(formSpace) {
|
|
87
|
+
if (!formSpace || isResponsiveDensity(formSpace.density)) return autoResponsiveSpaceClasses;
|
|
88
|
+
if (formSpace.responsive && !isResponsiveDensity(formSpace.density)) {
|
|
89
|
+
const space$1 = resolveResponsiveSpace(formSpace);
|
|
90
|
+
return space$1 ? getSpaceClass(space$1) : autoResponsiveSpaceClasses;
|
|
91
|
+
}
|
|
92
|
+
const space = resolveResponsiveSpace(formSpace);
|
|
93
|
+
return space ? getSpaceClass(space) : autoResponsiveSpaceClasses;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Gets the Tailwind gap class for a given space value
|
|
97
|
+
*
|
|
98
|
+
* @param space - Space value
|
|
99
|
+
* @returns Tailwind utility gap class
|
|
100
|
+
*/
|
|
101
|
+
function getGapClass(space) {
|
|
102
|
+
return gapClassMap[space];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Resolves responsive space and returns the Tailwind gap class(es)
|
|
106
|
+
* For responsive density, returns responsive breakpoint classes
|
|
107
|
+
* For fixed density, returns single gap class
|
|
108
|
+
*
|
|
109
|
+
* @param formSpace - FormSpace configuration
|
|
110
|
+
* @returns Tailwind utility gap class(es)
|
|
111
|
+
*/
|
|
112
|
+
function resolveResponsiveGapClass(formSpace) {
|
|
113
|
+
if (!formSpace || isResponsiveDensity(formSpace.density)) return autoResponsiveGapClasses;
|
|
114
|
+
if (formSpace.responsive && !isResponsiveDensity(formSpace.density)) {
|
|
115
|
+
const space$1 = resolveResponsiveSpace(formSpace);
|
|
116
|
+
return space$1 ? getGapClass(space$1) : autoResponsiveGapClasses;
|
|
117
|
+
}
|
|
118
|
+
const space = resolveResponsiveSpace(formSpace);
|
|
119
|
+
return space ? getGapClass(space) : autoResponsiveGapClasses;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
//#endregion
|
|
123
|
+
export { autoResponsiveGapClasses, autoResponsiveSpaceClasses, getGapClass, getSpaceClass, isResponsiveDensity, resolveResponsiveGapClass, resolveResponsiveSpace, resolveResponsiveSpaceClass };
|
|
@@ -1 +1,45 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let json_schema_traverse = require("json-schema-traverse");
|
|
3
|
+
json_schema_traverse = require_rolldown_runtime.__toESM(json_schema_traverse);
|
|
4
|
+
|
|
5
|
+
//#region src/utils/transform-schema.ts
|
|
6
|
+
const inputSchemaMap = {
|
|
7
|
+
string: {
|
|
8
|
+
"x-component": "Input",
|
|
9
|
+
"x-decorator": "FormItem"
|
|
10
|
+
},
|
|
11
|
+
number: {
|
|
12
|
+
"x-component": "NumberInput",
|
|
13
|
+
"x-decorator": "FormItem"
|
|
14
|
+
},
|
|
15
|
+
integer: {
|
|
16
|
+
"x-component": "NumberInput",
|
|
17
|
+
"x-decorator": "FormItem"
|
|
18
|
+
},
|
|
19
|
+
boolean: {
|
|
20
|
+
"x-component": "Checkbox",
|
|
21
|
+
"x-decorator": "FormItem"
|
|
22
|
+
},
|
|
23
|
+
array: {
|
|
24
|
+
"x-component": "ArrayCards",
|
|
25
|
+
"x-decorator": "FormItem"
|
|
26
|
+
},
|
|
27
|
+
object: { "x-component": "ObjectContainer" }
|
|
28
|
+
};
|
|
29
|
+
function transformSchema(schema) {
|
|
30
|
+
(0, json_schema_traverse.default)(schema, {
|
|
31
|
+
allKeys: true,
|
|
32
|
+
cb: (currentSchema) => {
|
|
33
|
+
const { type } = currentSchema;
|
|
34
|
+
if (typeof type === "string" && type in inputSchemaMap) {
|
|
35
|
+
const mapping = inputSchemaMap[type];
|
|
36
|
+
if (currentSchema["x-component"] == null) currentSchema["x-component"] = mapping["x-component"];
|
|
37
|
+
if (!["Hidden"].includes(currentSchema["x-component"])) currentSchema["x-decorator"] = mapping["x-decorator"];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return schema;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
exports.transformSchema = transformSchema;
|