@sparqjs/schema-ui-element-plus 0.1.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 (58) hide show
  1. package/dist/adapter/action-types.d.ts +5 -0
  2. package/dist/adapter/action-types.d.ts.map +1 -0
  3. package/dist/adapter/action-types.js +2 -0
  4. package/dist/adapter/action-types.js.map +1 -0
  5. package/dist/adapter/action.d.ts +17 -0
  6. package/dist/adapter/action.d.ts.map +1 -0
  7. package/dist/adapter/action.js +67 -0
  8. package/dist/adapter/action.js.map +1 -0
  9. package/dist/adapter/audit.d.ts +6 -0
  10. package/dist/adapter/audit.d.ts.map +1 -0
  11. package/dist/adapter/audit.js +67 -0
  12. package/dist/adapter/audit.js.map +1 -0
  13. package/dist/adapter/container.d.ts +19 -0
  14. package/dist/adapter/container.d.ts.map +1 -0
  15. package/dist/adapter/container.js +114 -0
  16. package/dist/adapter/container.js.map +1 -0
  17. package/dist/adapter/context.d.ts +17 -0
  18. package/dist/adapter/context.d.ts.map +1 -0
  19. package/dist/adapter/context.js +30 -0
  20. package/dist/adapter/context.js.map +1 -0
  21. package/dist/adapter/field.d.ts +44 -0
  22. package/dist/adapter/field.d.ts.map +1 -0
  23. package/dist/adapter/field.js +704 -0
  24. package/dist/adapter/field.js.map +1 -0
  25. package/dist/adapter/index.d.ts +7 -0
  26. package/dist/adapter/index.d.ts.map +1 -0
  27. package/dist/adapter/index.js +539 -0
  28. package/dist/adapter/index.js.map +1 -0
  29. package/dist/adapter/layout.d.ts +31 -0
  30. package/dist/adapter/layout.d.ts.map +1 -0
  31. package/dist/adapter/layout.js +226 -0
  32. package/dist/adapter/layout.js.map +1 -0
  33. package/dist/adapter/types.d.ts +67 -0
  34. package/dist/adapter/types.d.ts.map +1 -0
  35. package/dist/adapter/types.js +2 -0
  36. package/dist/adapter/types.js.map +1 -0
  37. package/dist/icon-registry.d.ts +3 -0
  38. package/dist/icon-registry.d.ts.map +1 -0
  39. package/dist/icon-registry.js +82 -0
  40. package/dist/icon-registry.js.map +1 -0
  41. package/dist/index.d.ts +4 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +4 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/preset/data-adapter.d.ts +38 -0
  46. package/dist/preset/data-adapter.d.ts.map +1 -0
  47. package/dist/preset/data-adapter.js +51 -0
  48. package/dist/preset/data-adapter.js.map +1 -0
  49. package/dist/preset/index.d.ts +59 -0
  50. package/dist/preset/index.d.ts.map +1 -0
  51. package/dist/preset/index.js +80 -0
  52. package/dist/preset/index.js.map +1 -0
  53. package/dist/ui-kit.d.ts +56 -0
  54. package/dist/ui-kit.d.ts.map +1 -0
  55. package/dist/ui-kit.js +398 -0
  56. package/dist/ui-kit.js.map +1 -0
  57. package/package.json +38 -0
  58. package/src/style.css +483 -0
@@ -0,0 +1,31 @@
1
+ import { type VNodeChild } from 'vue';
2
+ import type { ElementPlusLayoutNodeContext, ElementPlusUiContext } from './types';
3
+ type ElementPlusAutoGridItem = {
4
+ node?: {
5
+ id?: string;
6
+ type?: string;
7
+ };
8
+ span?: number;
9
+ content: VNodeChild;
10
+ };
11
+ /**
12
+ * 使用 Element Plus 视图外壳渲染单个布局节点。
13
+ *
14
+ * `context.node` 携带布局类型、原始 props 和子节点。
15
+ * `context.items` 用于节点可以降级到自动栅格渲染的场景。
16
+ */
17
+ export declare function renderLayoutNode(context: ElementPlusLayoutNodeContext & ElementPlusUiContext): string | number | boolean | void | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
18
+ [key: string]: any;
19
+ }> | import("vue").VNodeArrayChildren | null;
20
+ /**
21
+ * 当布局配置是扁平 span 驱动结构时,渲染轻量响应式栅格。
22
+ *
23
+ * `layout` 控制默认 span 和间距。
24
+ * `items` 提供可映射到 row/col 包装的内容节点。
25
+ */
26
+ export declare function renderAutoGrid(layout: {
27
+ span?: number;
28
+ gap?: number;
29
+ } | undefined, items: ElementPlusAutoGridItem[] | undefined, fallback: VNodeChild, ui: ElementPlusUiContext['ui']): VNodeChild;
30
+ export {};
31
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/adapter/layout.ts"],"names":[],"mappings":"AAUA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,KAAK,CAAA;AAEjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEjF,KAAK,uBAAuB,GAAG;IAC3B,IAAI,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,UAAU,CAAA;CACtB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,4BAA4B,GAAG,oBAAoB;;6CAgG5F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACnD,KAAK,EAAE,uBAAuB,EAAE,GAAG,SAAS,EAC5C,QAAQ,EAAE,UAAU,EACpB,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAC/B,UAAU,CAqCZ"}
@@ -0,0 +1,226 @@
1
+ import { SCHEMA_UI_CARD, SCHEMA_UI_COL, SCHEMA_UI_COLLAPSE, SCHEMA_UI_COLLAPSE_ITEM, SCHEMA_UI_DIVIDER, SCHEMA_UI_ROW, SCHEMA_UI_TAB_PANE, SCHEMA_UI_TABS, } from '@sparqjs/schema-core';
2
+ import { h, isVNode } from 'vue';
3
+ import { normalizeLayoutChildren } from './context';
4
+ /**
5
+ * 使用 Element Plus 视图外壳渲染单个布局节点。
6
+ *
7
+ * `context.node` 携带布局类型、原始 props 和子节点。
8
+ * `context.items` 用于节点可以降级到自动栅格渲染的场景。
9
+ */
10
+ export function renderLayoutNode(context) {
11
+ const body = renderLayoutNodeBody(context, {
12
+ preserveHeader: context.node.type !== 'card' && context.node.type !== 'tab' && context.node.type !== 'collapse-item',
13
+ });
14
+ const props = {
15
+ ...context.node.raw.props,
16
+ class: ['sparq-view-node', `sparq-view-node-${context.node.type}`, context.node.raw.className],
17
+ style: context.node.raw.style,
18
+ 'data-sparq-view-node': '',
19
+ 'data-node-id': context.node.id,
20
+ 'data-node-type': context.node.type,
21
+ 'data-node-span': String(context.node.raw.props?.span ?? ''),
22
+ };
23
+ switch (context.node.type) {
24
+ case 'group':
25
+ return normalizeLayoutChildren(body);
26
+ case 'section':
27
+ return h('section', props, normalizeLayoutChildren(body));
28
+ case 'card':
29
+ return context.ui.render(SCHEMA_UI_CARD, resolveCardProps(context, props), resolveCardSlots(context, body));
30
+ case 'collapse':
31
+ return context.ui.render(SCHEMA_UI_COLLAPSE, resolveCollapseProps(context, withContainerItemsKey(context, props)), {
32
+ default: () => body,
33
+ });
34
+ case 'collapse-item':
35
+ return context.ui.render(SCHEMA_UI_COLLAPSE_ITEM, {
36
+ ...props,
37
+ key: context.node.id,
38
+ name: resolveCollapseItemName(context.node),
39
+ title: context.node.raw.title ?? context.node.raw.id ?? context.node.id,
40
+ }, {
41
+ default: () => renderTabPaneBody(context, body),
42
+ });
43
+ case 'row':
44
+ return context.ui.render(SCHEMA_UI_ROW, {
45
+ ...props,
46
+ gutter: context.node.gap ?? context.node.raw.gap ?? context.node.raw.props?.gutter ?? 16,
47
+ }, {
48
+ default: () => body,
49
+ });
50
+ case 'col':
51
+ return context.ui.render(SCHEMA_UI_COL, {
52
+ ...props,
53
+ span: context.node.span ?? context.node.raw.span ?? context.node.raw.props?.span ?? 24,
54
+ }, {
55
+ default: () => body,
56
+ });
57
+ case 'tabs':
58
+ return context.ui.render(SCHEMA_UI_TABS, resolveTabsProps(context, withContainerItemsKey(context, props)), {
59
+ default: () => body,
60
+ });
61
+ case 'tab':
62
+ return context.ui.render(SCHEMA_UI_TAB_PANE, {
63
+ ...props,
64
+ key: context.node.id,
65
+ name: resolveTabName(context.node),
66
+ label: context.node.raw.title ?? context.node.raw.id ?? context.node.id,
67
+ }, {
68
+ default: () => renderTabPaneBody(context, body),
69
+ });
70
+ case 'divider':
71
+ return context.ui.render(SCHEMA_UI_DIVIDER, props, {
72
+ default: () => context.node.raw.title,
73
+ });
74
+ case 'grid':
75
+ case 'custom':
76
+ case 'view':
77
+ return h('div', props, normalizeLayoutChildren(body));
78
+ default:
79
+ return h('div', props, normalizeLayoutChildren(body));
80
+ }
81
+ }
82
+ /**
83
+ * 当布局配置是扁平 span 驱动结构时,渲染轻量响应式栅格。
84
+ *
85
+ * `layout` 控制默认 span 和间距。
86
+ * `items` 提供可映射到 row/col 包装的内容节点。
87
+ */
88
+ export function renderAutoGrid(layout, items, fallback, ui) {
89
+ if (!layout || !items?.length) {
90
+ return fallback;
91
+ }
92
+ if (items.some((item) => item.node?.type === 'row' || item.node?.type === 'col')) {
93
+ return fallback;
94
+ }
95
+ const gap = layout.gap ?? 10;
96
+ const defaultSpan = layout.span;
97
+ if (defaultSpan === undefined && items.every((item) => item.span === undefined)) {
98
+ return fallback;
99
+ }
100
+ return ui.render(SCHEMA_UI_ROW, {
101
+ gutter: gap,
102
+ 'data-sparq-layout-row': '',
103
+ }, {
104
+ default: () => items.map((item, index) => ui.render(SCHEMA_UI_COL, {
105
+ key: item.node?.id ?? index,
106
+ ...createAutoGridColProps(item.span ?? defaultSpan ?? 24),
107
+ }, {
108
+ default: () => item.content,
109
+ })),
110
+ });
111
+ }
112
+ function renderLayoutNodeBody(context, options = {}) {
113
+ if (options.preserveHeader === false) {
114
+ return renderAutoGrid(context.layout, context.items, withoutLayoutNodeHeader(context.children), context.ui);
115
+ }
116
+ const header = resolveLayoutNodeHeader(context.children);
117
+ if (!header) {
118
+ return renderAutoGrid(context.layout, context.items, context.children, context.ui);
119
+ }
120
+ return [
121
+ header,
122
+ renderAutoGrid(context.layout, context.items, withoutLayoutNodeHeader(context.children), context.ui),
123
+ ];
124
+ }
125
+ function resolveTabsProps(context, props) {
126
+ if (props.modelValue !== undefined) {
127
+ return props;
128
+ }
129
+ const firstTab = context.node.children.find((child) => child.type === 'tab');
130
+ const defaultName = firstTab ? resolveTabName(firstTab) : undefined;
131
+ return defaultName === undefined
132
+ ? props
133
+ : {
134
+ ...props,
135
+ modelValue: defaultName,
136
+ };
137
+ }
138
+ function resolveCollapseProps(context, props) {
139
+ if (props.modelValue !== undefined) {
140
+ return props;
141
+ }
142
+ const firstItem = context.node.children.find((child) => child.type === 'collapse-item');
143
+ const defaultName = firstItem ? resolveCollapseItemName(firstItem) : undefined;
144
+ if (defaultName === undefined) {
145
+ return props;
146
+ }
147
+ return {
148
+ ...props,
149
+ modelValue: props.accordion === true ? defaultName : [defaultName],
150
+ };
151
+ }
152
+ function resolveTabName(node) {
153
+ return node.raw.name ?? node.raw.id ?? node.id;
154
+ }
155
+ function resolveCollapseItemName(node) {
156
+ return node.raw.name ?? node.raw.id ?? node.id;
157
+ }
158
+ /** 项目结构变化时重建容器,让第三方组件重新按 schema 顺序注册嵌套项目。 */
159
+ function withContainerItemsKey(context, props) {
160
+ return {
161
+ ...props,
162
+ key: `${context.node.id}:${JSON.stringify(context.node.children.map((child) => child.raw.id ?? child.raw.name ?? child.id))}`,
163
+ };
164
+ }
165
+ function createAutoGridColProps(span) {
166
+ return {
167
+ span,
168
+ xs: 24,
169
+ sm: span > 12 ? 24 : 12,
170
+ md: span,
171
+ };
172
+ }
173
+ function resolveLayoutNodeHeader(children) {
174
+ if (!Array.isArray(children)) {
175
+ return undefined;
176
+ }
177
+ return children.find(isLayoutNodeHeader);
178
+ }
179
+ function withoutLayoutNodeHeader(children) {
180
+ if (!Array.isArray(children)) {
181
+ return children;
182
+ }
183
+ return children.filter((child) => !isLayoutNodeHeader(child));
184
+ }
185
+ function isLayoutNodeHeader(child) {
186
+ return isVNode(child) && child.props?.['data-slot'] === 'node-header';
187
+ }
188
+ function resolveCardProps(context, props) {
189
+ if (!context.node.raw.title || context.node.raw.help || props.header !== undefined) {
190
+ return props;
191
+ }
192
+ return {
193
+ ...props,
194
+ header: context.node.raw.title,
195
+ };
196
+ }
197
+ function resolveCardSlots(context, body) {
198
+ if (!context.node.raw.help || context.node.raw.props?.header !== undefined) {
199
+ return {
200
+ default: () => body,
201
+ };
202
+ }
203
+ return {
204
+ header: () => renderCardHeader(context),
205
+ default: () => body,
206
+ };
207
+ }
208
+ function renderCardHeader(context) {
209
+ return h('div', {
210
+ 'data-slot': 'card-header',
211
+ }, [
212
+ context.node.raw.title
213
+ ? h('div', {
214
+ 'data-slot': 'card-title',
215
+ }, context.node.raw.title)
216
+ : undefined,
217
+ context.helpNode,
218
+ ]);
219
+ }
220
+ function renderTabPaneBody(context, body) {
221
+ if (!context.node.raw.help) {
222
+ return body;
223
+ }
224
+ return [context.helpNode, body];
225
+ }
226
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/adapter/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { SchemaUiAdapter, UiKit } from '@sparqjs/schema-vue';
2
+ export type ElementPlusActionContext = Parameters<NonNullable<SchemaUiAdapter['renderAction']>>[0];
3
+ export type ElementPlusContainer = Parameters<NonNullable<SchemaUiAdapter['renderContainer']>>[0];
4
+ export type ElementPlusFieldContext = Parameters<NonNullable<SchemaUiAdapter['renderField']>>[0];
5
+ export type ElementPlusLayoutNodeContext = Parameters<NonNullable<SchemaUiAdapter['renderLayoutNode']>>[0];
6
+ export type ElementPlusFieldSchema = NonNullable<ElementPlusFieldContext['node']['fieldSchema']>;
7
+ export type ElementPlusFieldNode = ElementPlusFieldContext['node'];
8
+ export type ElementPlusNodeSlots = ElementPlusFieldNode['raw']['slots'];
9
+ export type ElementPlusFieldBinding = ElementPlusFieldContext['binding'];
10
+ export type ElementPlusUiContext = {
11
+ ui: UiKit;
12
+ };
13
+ export interface ElementPlusOption {
14
+ label: string;
15
+ value: unknown;
16
+ disabled?: boolean;
17
+ description?: string;
18
+ group?: {
19
+ value: unknown;
20
+ label: string;
21
+ };
22
+ children?: ElementPlusOption[];
23
+ parent_value?: unknown;
24
+ has_children?: boolean;
25
+ path_labels?: string[];
26
+ meta?: Record<string, unknown>;
27
+ props?: Record<string, unknown>;
28
+ }
29
+ export interface ElementPlusControlOption {
30
+ label: string;
31
+ value: unknown;
32
+ disabled?: boolean;
33
+ description?: string;
34
+ group?: {
35
+ value: unknown;
36
+ label: string;
37
+ };
38
+ children?: ElementPlusControlOption[];
39
+ parent_value?: unknown;
40
+ has_children?: boolean;
41
+ path_labels?: string[];
42
+ meta?: Record<string, unknown>;
43
+ props?: Record<string, unknown>;
44
+ }
45
+ export interface ElementPlusTreeOption {
46
+ value: unknown;
47
+ label: string;
48
+ disabled?: boolean;
49
+ children?: ElementPlusTreeOption[];
50
+ [key: string]: unknown;
51
+ }
52
+ export interface ElementPlusControlInput {
53
+ componentKey?: string;
54
+ field?: string;
55
+ label?: string;
56
+ fieldSchema?: ElementPlusFieldSchema;
57
+ props?: Record<string, unknown>;
58
+ disabled?: boolean;
59
+ readonly?: boolean;
60
+ placeholder?: string;
61
+ nodeSlots?: ElementPlusNodeSlots;
62
+ options?: ElementPlusControlOption[];
63
+ binding?: ElementPlusFieldBinding;
64
+ }
65
+ export type ElementPlusFieldRendererContext = ElementPlusFieldContext & ElementPlusUiContext;
66
+ export type ElementPlusActionRendererContext = ElementPlusActionContext & ElementPlusUiContext;
67
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEjE,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClG,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjG,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChG,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1G,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;AAChG,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;AAClE,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAA;AACvE,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAA;AACxE,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAA;AAEhD,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE;QACJ,KAAK,EAAE,OAAO,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE;QACJ,KAAK,EAAE,OAAO,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAA;IACrC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,uBAAuB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,oBAAoB,CAAA;IAChC,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAA;IACpC,OAAO,CAAC,EAAE,uBAAuB,CAAA;CACpC;AAED,MAAM,MAAM,+BAA+B,GAAG,uBAAuB,GAAG,oBAAoB,CAAA;AAC5F,MAAM,MAAM,gCAAgC,GAAG,wBAAwB,GAAG,oBAAoB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { type SparqIconRegistry } from '@sparqjs/schema-vue';
2
+ export declare function createElementPlusIconRegistry(): SparqIconRegistry;
3
+ //# sourceMappingURL=icon-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-registry.d.ts","sourceRoot":"","sources":["../src/icon-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AA6B/G,wBAAgB,6BAA6B,IAAI,iBAAiB,CA2CjE"}
@@ -0,0 +1,82 @@
1
+ import * as ElementPlusIcons from '@element-plus/icons-vue';
2
+ import { resolveSparqIconName } from '@sparqjs/schema-core';
3
+ import { createSparqIconRegistry } from '@sparqjs/schema-vue';
4
+ const ICON_ALIASES = {
5
+ add: 'plus',
6
+ copy: 'copy-document',
7
+ 'log-out': 'switch-button',
8
+ pause: 'video-pause',
9
+ play: 'video-play',
10
+ print: 'printer',
11
+ reset: 'refresh-left',
12
+ restore: 'refresh-left',
13
+ save: 'document-checked',
14
+ shield: 'lock',
15
+ users: 'user-filled',
16
+ hide: 'hide',
17
+ info: 'info-filled',
18
+ error: 'circle-close-filled',
19
+ success: 'select',
20
+ warning: 'warning',
21
+ back: 'back',
22
+ left: 'arrow-left',
23
+ right: 'arrow-right',
24
+ up: 'arrow-up',
25
+ down: 'arrow-down',
26
+ time: 'clock',
27
+ home: 'house',
28
+ };
29
+ export function createElementPlusIconRegistry() {
30
+ const entries = [];
31
+ const normalized = new Map();
32
+ for (const [exportName, component] of Object.entries(ElementPlusIcons)) {
33
+ if (!isComponent(component)) {
34
+ continue;
35
+ }
36
+ const name = toKebabCase(exportName);
37
+ normalized.set(name, name);
38
+ entries.push([
39
+ name,
40
+ {
41
+ component,
42
+ label: toLabel(exportName),
43
+ namespace: 'element-plus',
44
+ keywords: [name, resolveSparqIconName(name), exportName, toLabel(exportName)],
45
+ },
46
+ ]);
47
+ }
48
+ for (const [alias, target] of Object.entries(ICON_ALIASES)) {
49
+ if (!normalized.has(target) || normalized.has(alias)) {
50
+ continue;
51
+ }
52
+ const targetIcon = entries.find(([name]) => name === target)?.[1];
53
+ if (!targetIcon) {
54
+ continue;
55
+ }
56
+ entries.push([
57
+ alias,
58
+ {
59
+ ...targetIcon,
60
+ label: toLabel(alias),
61
+ keywords: [alias, target, targetIcon.label ?? target],
62
+ },
63
+ ]);
64
+ }
65
+ return createSparqIconRegistry(entries);
66
+ }
67
+ function isComponent(value) {
68
+ return (typeof value === 'object' && value !== null) || typeof value === 'function';
69
+ }
70
+ function toKebabCase(value) {
71
+ return value
72
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
73
+ .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
74
+ .toLowerCase();
75
+ }
76
+ function toLabel(value) {
77
+ return toKebabCase(value)
78
+ .split('-')
79
+ .map((part) => part.slice(0, 1).toUpperCase() + part.slice(1))
80
+ .join(' ');
81
+ }
82
+ //# sourceMappingURL=icon-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-registry.js","sourceRoot":"","sources":["../src/icon-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './icon-registry';
2
+ export * from './adapter';
3
+ export * from './ui-kit';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './icon-registry';
2
+ export * from './adapter';
3
+ export * from './ui-kit';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,38 @@
1
+ import type { DataAdapter } from '@sparqjs/schema-core';
2
+ /**
3
+ * Runtime HTTP 请求输入。
4
+ *
5
+ * 该类型不绑定 axios 或 fetch,业务项目只需要提供能处理该输入的 request 函数。
6
+ */
7
+ export interface RuntimeRequestInput {
8
+ /** 请求地址。 */
9
+ url: string;
10
+ /** 请求方法。当前约定式 adapter 只使用 POST。 */
11
+ method: 'POST';
12
+ /** 请求数据。 */
13
+ data: unknown;
14
+ }
15
+ /**
16
+ * Runtime HTTP 请求函数。
17
+ */
18
+ export interface RuntimeRequest {
19
+ /** 执行请求并返回响应数据。 */
20
+ <T = unknown>(input: RuntimeRequestInput): Promise<T>;
21
+ }
22
+ /**
23
+ * 约定式 runtime data adapter 配置。
24
+ */
25
+ export interface CreateRuntimeDataAdapterOptions {
26
+ /** 请求函数。 */
27
+ request: RuntimeRequest;
28
+ /** 统一 runtime 接口地址。 */
29
+ endpoint: string;
30
+ }
31
+ /**
32
+ * 创建约定式 runtime data adapter。
33
+ *
34
+ * 所有操作都会请求同一个 endpoint,并在请求体中携带 operation 和 context。
35
+ * 后端可以根据 operation、resource、view 等上下文决定实际处理逻辑。
36
+ */
37
+ export declare function createRuntimeDataAdapter(options: CreateRuntimeDataAdapterOptions): DataAdapter;
38
+ //# sourceMappingURL=data-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-adapter.d.ts","sourceRoot":"","sources":["../../src/preset/data-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,WAAW,EAQd,MAAM,sBAAsB,CAAA;AAE7B;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,YAAY;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY;IACZ,IAAI,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,mBAAmB;IACnB,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,YAAY;IACZ,OAAO,EAAE,cAAc,CAAA;IACvB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,WAAW,CA8B9F"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * 创建约定式 runtime data adapter。
3
+ *
4
+ * 所有操作都会请求同一个 endpoint,并在请求体中携带 operation 和 context。
5
+ * 后端可以根据 operation、resource、view 等上下文决定实际处理逻辑。
6
+ */
7
+ export function createRuntimeDataAdapter(options) {
8
+ return {
9
+ loadSchema(context) {
10
+ return requestRuntime(options, 'loadSchema', context);
11
+ },
12
+ list(context) {
13
+ return requestRuntime(options, 'list', context);
14
+ },
15
+ detail(context) {
16
+ return requestRuntime(options, 'detail', context);
17
+ },
18
+ create(context) {
19
+ return requestRuntime(options, 'create', context);
20
+ },
21
+ update(context) {
22
+ return requestRuntime(options, 'update', context);
23
+ },
24
+ remove(context) {
25
+ return requestRuntime(options, 'remove', context);
26
+ },
27
+ executeAction(context) {
28
+ return requestRuntime(options, 'executeAction', context);
29
+ },
30
+ loadOptions(context) {
31
+ return requestRuntime(options, 'loadOptions', context);
32
+ },
33
+ searchRelation(context) {
34
+ return requestRuntime(options, 'searchRelation', context);
35
+ },
36
+ };
37
+ }
38
+ /**
39
+ * 请求 runtime 统一入口。
40
+ */
41
+ function requestRuntime(options, operation, context) {
42
+ return options.request({
43
+ url: options.endpoint,
44
+ method: 'POST',
45
+ data: {
46
+ operation,
47
+ context,
48
+ },
49
+ });
50
+ }
51
+ //# sourceMappingURL=data-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-adapter.js","sourceRoot":"","sources":["../../src/preset/data-adapter.ts"],"names":[],"mappings":"AA4CA;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAwC;IAC7E,OAAO;QACH,UAAU,CAAC,OAAO;YACd,OAAO,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,CAAC,OAAO;YACR,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;QACD,MAAM,CAAC,OAAO;YACV,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,CAAC,OAAO;YACV,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,CAAC,OAAO;YACV,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,CAAC,OAAO;YACV,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;QACD,aAAa,CAAC,OAAO;YACjB,OAAO,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAC5D,CAAC;QACD,WAAW,CAAC,OAAO;YACf,OAAO,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QAC1D,CAAC;QACD,cAAc,CAAC,OAAO;YAClB,OAAO,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;QAC7D,CAAC;KACJ,CAAA;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACnB,OAAwC,EACxC,SAA2B,EAC3B,OAAgC;IAEhC,OAAO,OAAO,CAAC,OAAO,CAAI;QACtB,GAAG,EAAE,OAAO,CAAC,QAAQ;QACrB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACF,SAAS;YACT,OAAO;SACV;KACJ,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { createSchemaRuntime, type CreateSchemaRuntimeOptions, type DataAdapter } from '@sparqjs/schema-core';
2
+ import { installSchemaRenderer, type CreateSchemaRendererOptions, type SchemaComponentRegistry, type SchemaRendererContribution, type SparqRichTextRegistry, type SparqIconRegistry, type SparqAssetService, type SchemaHostPresentation } from '@sparqjs/schema-vue';
3
+ import { createRuntimeDataAdapter, type RuntimeRequest } from './data-adapter';
4
+ /**
5
+ * Vue + Element Plus preset 的创建配置。
6
+ *
7
+ * 继承 core runtime 配置,并预置 Vue renderer 与 Element Plus 组件注册表。
8
+ */
9
+ export interface CreateSchemaPluginOptions extends CreateSchemaRuntimeOptions {
10
+ /** 请求函数。传入后会创建默认 runtime data adapter。 */
11
+ request?: RuntimeRequest;
12
+ /** 统一 runtime 接口地址。默认 /api/schema-runtime。 */
13
+ endpoint?: string;
14
+ /** 自定义 data adapter。优先级高于 request。 */
15
+ dataAdapter?: DataAdapter;
16
+ /** 全局自定义图标注册表。用于追加或覆盖 preset 默认 Element Plus 图标。 */
17
+ icons?: SparqIconRegistry;
18
+ /** 全局自定义运行时组件注册表,按 host 层覆盖插件和预设组件。 */
19
+ components?: SchemaComponentRegistry;
20
+ /** 全局富文本编辑器注册表。用于提供本地或远程加载的富文本编辑器。 */
21
+ richTextEditors?: SparqRichTextRegistry;
22
+ /** 资源服务。用于上传文件或打开资源管理器。 */
23
+ assetService?: SparqAssetService;
24
+ /** 将 root/parent Schema 表单交给外层宿主承载。 */
25
+ presentationHost?: SchemaHostPresentation;
26
+ /** 复用宿主已有的前端贡献运行环境。 */
27
+ kernel?: CreateSchemaRendererOptions['kernel'];
28
+ /** renderer 初始化时安装的插件贡献。 */
29
+ contributions?: readonly SchemaRendererContribution[];
30
+ }
31
+ /**
32
+ * 创建 Vue 插件。
33
+ *
34
+ * 业务项目安装该插件后,可以通过 provide/inject 获取 schema runtime 和 renderer。
35
+ * 这是开箱使用入口,避免使用方手动组合 core、renderer 和 UI adapter。
36
+ */
37
+ export declare function createSchemaPlugin(options?: CreateSchemaPluginOptions): {
38
+ kernel: import("@sparqjs/schema-vue").SchemaRendererKernel;
39
+ renderer: import("@sparqjs/schema-vue").SchemaRenderer;
40
+ install(app: Parameters<typeof installSchemaRenderer>[0]): void;
41
+ };
42
+ export { createSchemaRuntime };
43
+ export { createRuntimeDataAdapter };
44
+ export { installSchemaRendererContribution } from '@sparqjs/schema-vue';
45
+ export type { SchemaRendererContribution } from '@sparqjs/schema-vue';
46
+ export type { CreateRuntimeDataAdapterOptions, RuntimeRequest, RuntimeRequestInput } from './data-adapter';
47
+ /**
48
+ * 使用 Element Plus 默认确认框处理动作确认。
49
+ */
50
+ export declare function confirmElementPlus(input: Parameters<NonNullable<CreateSchemaRuntimeOptions['confirmAction']>>[0]): Promise<boolean>;
51
+ /**
52
+ * 使用 Element Plus 默认消息组件处理 runtime 通知。
53
+ */
54
+ export interface ElementPlusNoticeOptions {
55
+ grouping?: boolean;
56
+ showClose?: boolean;
57
+ }
58
+ export declare function notifyElementPlusNotice(input: Parameters<NonNullable<CreateSchemaRuntimeOptions['notify']>>[0], options?: ElementPlusNoticeOptions): void;
59
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAO7G,OAAO,EAEH,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC9B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE9E;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IACzE,0CAA0C;IAC1C,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,oDAAoD;IACpD,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,uCAAuC;IACvC,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,sCAAsC;IACtC,eAAe,CAAC,EAAE,qBAAqB,CAAA;IACvC,2BAA2B;IAC3B,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,uBAAuB;IACvB,MAAM,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IAC9C,4BAA4B;IAC5B,aAAa,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAA;CACxD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B;;;iBAiDrD,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;EAI/D;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,CAAA;AACnC,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAA;AACvE,YAAY,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AACrE,YAAY,EAAE,+BAA+B,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAE1G;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAYtH;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvE,OAAO,GAAE,wBAA6B,QAOzC"}