@es-plus/cli 1.0.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.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +421 -0
  3. package/build/commands/create.d.ts +3 -0
  4. package/build/commands/create.d.ts.map +1 -0
  5. package/build/commands/create.js +79 -0
  6. package/build/commands/create.js.map +1 -0
  7. package/build/commands/scaffold.d.ts +3 -0
  8. package/build/commands/scaffold.d.ts.map +1 -0
  9. package/build/commands/scaffold.js +29 -0
  10. package/build/commands/scaffold.js.map +1 -0
  11. package/build/commands/validate.d.ts +3 -0
  12. package/build/commands/validate.d.ts.map +1 -0
  13. package/build/commands/validate.js +57 -0
  14. package/build/commands/validate.js.map +1 -0
  15. package/build/core/code-generator.d.ts +9 -0
  16. package/build/core/code-generator.d.ts.map +1 -0
  17. package/build/core/code-generator.js +87 -0
  18. package/build/core/code-generator.js.map +1 -0
  19. package/build/core/constants.d.ts +61 -0
  20. package/build/core/constants.d.ts.map +1 -0
  21. package/build/core/constants.js +51 -0
  22. package/build/core/constants.js.map +1 -0
  23. package/build/core/crud-engine.d.ts +12 -0
  24. package/build/core/crud-engine.d.ts.map +1 -0
  25. package/build/core/crud-engine.js +405 -0
  26. package/build/core/crud-engine.js.map +1 -0
  27. package/build/core/schema-validator.d.ts +9 -0
  28. package/build/core/schema-validator.d.ts.map +1 -0
  29. package/build/core/schema-validator.js +83 -0
  30. package/build/core/schema-validator.js.map +1 -0
  31. package/build/index.d.ts +3 -0
  32. package/build/index.d.ts.map +1 -0
  33. package/build/index.js +16 -0
  34. package/build/index.js.map +1 -0
  35. package/package.json +57 -0
  36. package/schemas/api-params.schema.json +36 -0
  37. package/schemas/btn-config.schema.json +77 -0
  38. package/schemas/dialog-options.schema.json +149 -0
  39. package/schemas/form-item.schema.json +146 -0
  40. package/schemas/index.schema.json +71 -0
  41. package/schemas/table-column.schema.json +118 -0
  42. package/schemas/table-options.schema.json +141 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-engine.js","sourceRoot":"","sources":["../../src/core/crud-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface ValidationResult {
2
+ valid: boolean;
3
+ errors: string[];
4
+ suggestions: string[];
5
+ }
6
+ export declare function validateConfig(config: unknown, schemaType?: string): ValidationResult;
7
+ export declare function listAvailableSchemas(): string[];
8
+ export {};
9
+ //# sourceMappingURL=schema-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/core/schema-validator.ts"],"names":[],"mappings":"AAwBA,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AASD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,gBAAgB,CAiClB;AA6BD,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C"}
@@ -0,0 +1,83 @@
1
+ import Ajv from "ajv";
2
+ import { readFileSync, readdirSync, existsSync } from "node:fs";
3
+ import { join, dirname } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ const SCHEMAS_DIR = join(__dirname, "../../schemas");
7
+ const ajv = new Ajv({ allErrors: true, verbose: true });
8
+ let schemasLoaded = false;
9
+ function ensureSchemasLoaded() {
10
+ if (schemasLoaded)
11
+ return;
12
+ schemasLoaded = true;
13
+ if (!existsSync(SCHEMAS_DIR))
14
+ return;
15
+ const files = readdirSync(SCHEMAS_DIR).filter((f) => f.endsWith(".schema.json"));
16
+ for (const file of files) {
17
+ const schema = JSON.parse(readFileSync(join(SCHEMAS_DIR, file), "utf-8"));
18
+ if (schema.$id) {
19
+ try {
20
+ ajv.addSchema(schema);
21
+ }
22
+ catch { /* already added */ }
23
+ }
24
+ }
25
+ }
26
+ function loadSchema(schemaName) {
27
+ ensureSchemasLoaded();
28
+ const schemaPath = join(SCHEMAS_DIR, `${schemaName}.schema.json`);
29
+ if (!existsSync(schemaPath))
30
+ return null;
31
+ return JSON.parse(readFileSync(schemaPath, "utf-8"));
32
+ }
33
+ export function validateConfig(config, schemaType) {
34
+ const schemaName = schemaType || "form-item";
35
+ const schema = loadSchema(schemaName);
36
+ if (!schema) {
37
+ return {
38
+ valid: false,
39
+ errors: [`Schema "${schemaName}" not found. Available: form-item, table-column, table-options, dialog-options`],
40
+ suggestions: ["Check schema name spelling"],
41
+ };
42
+ }
43
+ const schemaObj = schema;
44
+ let validate;
45
+ if (schemaObj.$id && ajv.getSchema(schemaObj.$id)) {
46
+ validate = ajv.getSchema(schemaObj.$id);
47
+ }
48
+ else {
49
+ validate = ajv.compile(schema);
50
+ }
51
+ const valid = validate(config);
52
+ if (valid) {
53
+ return { valid: true, errors: [], suggestions: [] };
54
+ }
55
+ const errors = (validate.errors || []).map((err) => {
56
+ const path = err.instancePath || "(root)";
57
+ return `${path}: ${err.message}`;
58
+ });
59
+ const suggestions = generateSuggestions(validate.errors || [], schemaName);
60
+ return { valid: false, errors, suggestions };
61
+ }
62
+ function generateSuggestions(errors, schemaName) {
63
+ const suggestions = [];
64
+ for (const err of errors) {
65
+ if (err.keyword === "required") {
66
+ suggestions.push(`Add missing property "${err.params.missingProperty}"`);
67
+ }
68
+ if (err.keyword === "enum") {
69
+ suggestions.push(`Valid values for ${err.instancePath}: ${err.params.allowedValues?.join(", ")}`);
70
+ }
71
+ if (err.keyword === "type") {
72
+ suggestions.push(`${err.instancePath} should be type "${err.params.type}"`);
73
+ }
74
+ if (err.keyword === "additionalProperties") {
75
+ suggestions.push(`Remove unknown property "${err.params.additionalProperty}"`);
76
+ }
77
+ }
78
+ return suggestions;
79
+ }
80
+ export function listAvailableSchemas() {
81
+ return ["form-item", "table-column", "table-options", "dialog-options"];
82
+ }
83
+ //# sourceMappingURL=schema-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/core/schema-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/build/index.js ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync } from "node:fs";
3
+ import { program } from "commander";
4
+ import { createCommand } from "./commands/create.js";
5
+ import { validateCommand } from "./commands/validate.js";
6
+ import { scaffoldCommand } from "./commands/scaffold.js";
7
+ const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
8
+ program
9
+ .name("es-plus")
10
+ .description("es-plus-ui CLI — generate CRUD pages & validate configs")
11
+ .version(pkg.version);
12
+ program.addCommand(createCommand);
13
+ program.addCommand(validateCommand);
14
+ program.addCommand(scaffoldCommand);
15
+ program.parse();
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3F,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@es-plus/cli",
3
+ "version": "1.0.0",
4
+ "description": "CLI tool for es-plus-ui - generate CRUD pages, validate configs",
5
+ "type": "module",
6
+ "bin": {
7
+ "es-plus": "./build/index.js"
8
+ },
9
+ "main": "./build/index.js",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./build/index.d.ts",
13
+ "import": "./build/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "build",
18
+ "schemas"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "dev": "tsc --watch",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "keywords": [
26
+ "es-plus",
27
+ "cli",
28
+ "crud",
29
+ "vue3",
30
+ "code-generator",
31
+ "element-plus"
32
+ ],
33
+ "license": "MIT",
34
+ "engines": {
35
+ "node": ">=18.0.0"
36
+ },
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/es-plus-ui/es-plus.git",
40
+ "directory": "packages/cli"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public",
44
+ "registry": "https://registry.npmjs.org/"
45
+ },
46
+ "dependencies": {
47
+ "commander": "^12.0.0",
48
+ "prompts": "^2.4.2",
49
+ "picocolors": "^1.0.0",
50
+ "ajv": "^8.12.0"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^20.0.0",
54
+ "@types/prompts": "^2.4.0",
55
+ "typescript": "^5.3.0"
56
+ }
57
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://es-plus-ui.github.io/schemas/api-params.schema.json",
4
+ "title": "API Parameters Configuration",
5
+ "description": "Configuration for API requests in es-plus-ui components",
6
+ "type": "object",
7
+ "required": ["url"],
8
+ "properties": {
9
+ "url": {
10
+ "type": "string",
11
+ "description": "API endpoint URL"
12
+ },
13
+ "method": {
14
+ "type": "string",
15
+ "enum": ["GET", "POST", "PUT", "DELETE", "PATCH"],
16
+ "default": "GET",
17
+ "description": "HTTP request method"
18
+ },
19
+ "headers": {
20
+ "type": "object",
21
+ "description": "Request headers",
22
+ "additionalProperties": { "type": "string" }
23
+ },
24
+ "model": {
25
+ "type": "object",
26
+ "description": "Additional parameters merged into the request",
27
+ "additionalProperties": true
28
+ },
29
+ "options": {
30
+ "type": "object",
31
+ "description": "Extra request options",
32
+ "additionalProperties": true
33
+ }
34
+ },
35
+ "additionalProperties": true
36
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://es-plus-ui.github.io/schemas/btn-config.schema.json",
4
+ "title": "Button Configuration",
5
+ "description": "Configuration for action buttons in es-plus-ui EsForm and EsTable",
6
+ "type": "object",
7
+ "required": ["name"],
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "description": "Button display text"
12
+ },
13
+ "key": {
14
+ "type": "string",
15
+ "description": "Button identifier. Special values: 'query' triggers table data fetch, 'reset' resets the form",
16
+ "examples": ["query", "reset", "add", "export"]
17
+ },
18
+ "type": {
19
+ "type": "string",
20
+ "enum": ["primary", "success", "warning", "danger", "info", ""],
21
+ "description": "Button visual type (Element Plus button types)"
22
+ },
23
+ "size": {
24
+ "type": "string",
25
+ "enum": ["large", "default", "small"],
26
+ "description": "Button size"
27
+ },
28
+ "icon": {
29
+ "type": "string",
30
+ "description": "Element Plus icon name (e.g., 'Search', 'Plus', 'Delete')"
31
+ },
32
+ "direction": {
33
+ "type": "string",
34
+ "enum": ["left", "right"],
35
+ "default": "right",
36
+ "description": "Button alignment in the form button area"
37
+ },
38
+ "loading": {
39
+ "type": "boolean",
40
+ "default": false,
41
+ "description": "Show loading spinner on the button"
42
+ },
43
+ "disabled": {
44
+ "oneOf": [
45
+ { "type": "boolean" }
46
+ ],
47
+ "description": "Disable the button. Can be a boolean or a function () => boolean"
48
+ },
49
+ "triggerEvent": {
50
+ "type": "boolean",
51
+ "default": false,
52
+ "description": "When true, automatically triggers form-table linkage. With key='query', calls parent EsTable's httpRequestInstance. With key='reset', resets form fields"
53
+ },
54
+ "click": {
55
+ "description": "Click handler. In form context: (model, formRef, httpRequestInstance?) => void. In dialog context: (instance, { close, getRefs, dialogVm }) => void"
56
+ },
57
+ "code": {
58
+ "type": "integer",
59
+ "enum": [1, 2],
60
+ "description": "Button group position in table toolbar. 1 = left group, 2 = right group"
61
+ },
62
+ "isHide": {
63
+ "oneOf": [
64
+ { "type": "boolean" }
65
+ ],
66
+ "description": "Hide the button. Can be a boolean or a function () => boolean"
67
+ },
68
+ "permissionValue": {
69
+ "type": "string",
70
+ "description": "Permission code for button visibility control"
71
+ },
72
+ "render": {
73
+ "description": "Custom render function for the button slot"
74
+ }
75
+ },
76
+ "additionalProperties": true
77
+ }
@@ -0,0 +1,149 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://es-plus-ui.github.io/schemas/dialog-options.schema.json",
4
+ "title": "useDialog Options Configuration",
5
+ "description": "Configuration object passed to the useDialog() hook in es-plus-ui",
6
+ "type": "object",
7
+ "properties": {
8
+ "title": {
9
+ "type": "string",
10
+ "description": "Dialog title"
11
+ },
12
+ "width": {
13
+ "oneOf": [
14
+ { "type": "string" },
15
+ { "type": "number" }
16
+ ],
17
+ "default": "50%",
18
+ "description": "Dialog width (CSS value or number in px)"
19
+ },
20
+ "height": {
21
+ "oneOf": [
22
+ { "type": "string" },
23
+ { "type": "number" }
24
+ ],
25
+ "description": "Dialog height"
26
+ },
27
+ "maxHeight": {
28
+ "oneOf": [
29
+ { "type": "string" },
30
+ { "type": "number" }
31
+ ],
32
+ "description": "Maximum height for dialog body content area"
33
+ },
34
+ "key": {
35
+ "type": "string",
36
+ "description": "Unique identifier. Same key reuses dialog instance"
37
+ },
38
+ "render": {
39
+ "description": "Content render function. Signature: (h, { registerRef, getRefs }, components) => VNode"
40
+ },
41
+ "renderHeader": {
42
+ "description": "Header render function. Signature: (h, instance) => VNode"
43
+ },
44
+ "renderFooter": {
45
+ "description": "Footer render function. Signature: (h, instance) => VNode"
46
+ },
47
+ "configBtn": {
48
+ "type": "array",
49
+ "description": "Footer action buttons. Click signature: (currentRef, { close, getRefs, dialogInstance }) => void",
50
+ "items": { "$ref": "btn-config.schema.json" }
51
+ },
52
+ "isDraggable": {
53
+ "type": "boolean",
54
+ "default": false,
55
+ "description": "Enable drag to move the dialog"
56
+ },
57
+ "fullscreen": {
58
+ "type": "boolean",
59
+ "default": false,
60
+ "description": "Start dialog in fullscreen mode"
61
+ },
62
+ "hiddenFullBtn": {
63
+ "type": "boolean",
64
+ "default": false,
65
+ "description": "Hide the fullscreen toggle button in header"
66
+ },
67
+ "isHiddenFooter": {
68
+ "type": "boolean",
69
+ "default": false,
70
+ "description": "Hide the entire footer section"
71
+ },
72
+ "center": {
73
+ "type": "boolean",
74
+ "description": "Vertically center the dialog"
75
+ },
76
+ "closeOnClickModal": {
77
+ "type": "boolean",
78
+ "default": false,
79
+ "description": "Close dialog when clicking the overlay mask"
80
+ },
81
+ "closeOnPressEscape": {
82
+ "type": "boolean",
83
+ "default": false,
84
+ "description": "Close dialog when pressing ESC key"
85
+ },
86
+ "showClose": {
87
+ "type": "boolean",
88
+ "default": true,
89
+ "description": "Show the close button in header"
90
+ },
91
+ "destroyOnClose": {
92
+ "type": "boolean",
93
+ "default": true,
94
+ "description": "Destroy dialog content when closed"
95
+ },
96
+ "loading": {
97
+ "type": "boolean",
98
+ "default": false,
99
+ "description": "Show loading state on the dialog"
100
+ },
101
+ "customClass": {
102
+ "type": "string",
103
+ "description": "Custom CSS class for the dialog"
104
+ },
105
+ "appendToBody": {
106
+ "type": "boolean",
107
+ "description": "Mount dialog to document body"
108
+ },
109
+ "appendTo": {
110
+ "type": "string",
111
+ "description": "CSS selector or HTMLElement for dialog mount target"
112
+ },
113
+ "modal": {
114
+ "type": "boolean",
115
+ "description": "Show overlay mask behind dialog"
116
+ },
117
+ "lockScroll": {
118
+ "type": "boolean",
119
+ "description": "Lock page scroll when dialog is open"
120
+ },
121
+ "onlyInstance": {
122
+ "type": "boolean",
123
+ "default": false,
124
+ "description": "Singleton mode: reuses one dialog instance, updates content on subsequent calls"
125
+ },
126
+ "showDefaultButtons": {
127
+ "type": "boolean",
128
+ "description": "Show default Confirm/Cancel buttons"
129
+ },
130
+ "confirmText": {
131
+ "type": "string",
132
+ "description": "Custom text for the confirm button"
133
+ },
134
+ "cancelText": {
135
+ "type": "string",
136
+ "description": "Custom text for the cancel button"
137
+ },
138
+ "onSubmit": {
139
+ "description": "Submit callback. Signature: (close) => void"
140
+ },
141
+ "onClosed": {
142
+ "description": "Callback fired after dialog is fully closed"
143
+ },
144
+ "onOpen": {
145
+ "description": "Callback fired when dialog opens"
146
+ }
147
+ },
148
+ "additionalProperties": true
149
+ }
@@ -0,0 +1,146 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://es-plus-ui.github.io/schemas/form-item.schema.json",
4
+ "title": "EsForm Item Configuration",
5
+ "description": "Configuration for a single form field in es-plus-ui EsForm component",
6
+ "type": "object",
7
+ "required": ["prop", "label"],
8
+ "properties": {
9
+ "prop": {
10
+ "type": "string",
11
+ "description": "Field name bound to the form model. Supports nested paths like 'a.b' or 'a[0].b'"
12
+ },
13
+ "label": {
14
+ "type": "string",
15
+ "description": "Display label for the form field"
16
+ },
17
+ "labelKey": {
18
+ "type": "string",
19
+ "description": "i18n translation key for the label. When a global t() function is configured via app.use(ESPlus, { t }), the label will be translated using t(labelKey). Falls back to label when t() is not configured"
20
+ },
21
+ "formtype": {
22
+ "type": "string",
23
+ "enum": [
24
+ "Input",
25
+ "Select",
26
+ "datePicker",
27
+ "timePicker",
28
+ "Slider",
29
+ "ColorPicker",
30
+ "Transfer",
31
+ "Cascader",
32
+ "Radio",
33
+ "Checkbox",
34
+ "Switch",
35
+ "Rate",
36
+ "Upload"
37
+ ],
38
+ "description": "Input component type. Maps to the corresponding Element Plus component"
39
+ },
40
+ "span": {
41
+ "type": "integer",
42
+ "minimum": 1,
43
+ "maximum": 24,
44
+ "default": 6,
45
+ "description": "Grid column span (el-col span, 24-column layout)"
46
+ },
47
+ "attrs": {
48
+ "type": "object",
49
+ "description": "Attributes passed through to the underlying Element Plus component (e.g., placeholder, clearable, type, multiple)",
50
+ "additionalProperties": true
51
+ },
52
+ "on": {
53
+ "type": "object",
54
+ "description": "Event listeners passed to the component (e.g., change, input, blur)",
55
+ "additionalProperties": true
56
+ },
57
+ "dataOptions": {
58
+ "type": "array",
59
+ "description": "Options data for Select, Radio, Checkbox, Cascader components",
60
+ "items": {
61
+ "type": "object",
62
+ "required": ["label", "value"],
63
+ "properties": {
64
+ "label": {
65
+ "type": "string",
66
+ "description": "Display text"
67
+ },
68
+ "value": {
69
+ "description": "Option value (string, number, or boolean)"
70
+ },
71
+ "disabled": {
72
+ "type": "boolean",
73
+ "description": "Whether this option is disabled"
74
+ },
75
+ "children": {
76
+ "type": "array",
77
+ "description": "Child options for Cascader",
78
+ "items": { "$ref": "#/properties/dataOptions/items" }
79
+ }
80
+ }
81
+ }
82
+ },
83
+ "width": {
84
+ "oneOf": [
85
+ { "type": "number" },
86
+ { "type": "string" }
87
+ ],
88
+ "description": "Field width (number for px, string for CSS value)"
89
+ },
90
+ "isHidden": {
91
+ "description": "Function (model, item, formProps) => boolean. Returns true to hide the field conditionally"
92
+ },
93
+ "render": {
94
+ "description": "Custom render function (h, model, ctx) => VNode. Used when formtype is not set"
95
+ },
96
+ "apiParams": {
97
+ "$ref": "api-params.schema.json",
98
+ "description": "Configuration for loading options from an API endpoint"
99
+ },
100
+ "isInitRun": {
101
+ "type": "boolean",
102
+ "default": true,
103
+ "description": "Whether to auto-load API data on component initialization"
104
+ },
105
+ "callOptionListFormat": {
106
+ "description": "Function (data) => Array<{label, value}>. Transforms API response to dataOptions format"
107
+ },
108
+ "httpRequest": {
109
+ "description": "Custom HTTP request function override for this field. Signature: (params) => Promise"
110
+ },
111
+ "listenToCallBack": {
112
+ "type": "object",
113
+ "description": "Callback mapping. Use 'crtn' key for option format conversion",
114
+ "properties": {
115
+ "crtn": {
116
+ "description": "Function to convert API response to [{label, value}] format"
117
+ }
118
+ },
119
+ "additionalProperties": true
120
+ },
121
+ "formItemOptions": {
122
+ "type": "object",
123
+ "description": "Additional props passed to el-form-item (e.g., rules, labelWidth, required)",
124
+ "properties": {
125
+ "rules": {
126
+ "description": "Validation rules for this field (Element Plus format)"
127
+ },
128
+ "labelWidth": {
129
+ "type": "string",
130
+ "description": "Override label width for this field"
131
+ },
132
+ "required": {
133
+ "type": "boolean",
134
+ "description": "Show required asterisk"
135
+ }
136
+ },
137
+ "additionalProperties": true
138
+ },
139
+ "components": {
140
+ "type": "object",
141
+ "description": "Custom component mapping for this field",
142
+ "additionalProperties": true
143
+ }
144
+ },
145
+ "additionalProperties": true
146
+ }