openxiangda 2.62.0 → 2.63.1

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 (223) hide show
  1. package/dist/browser/AuthoritativeSelector.d.ts +4 -3
  2. package/dist/browser/AuthoritativeSelector.d.ts.map +1 -1
  3. package/dist/browser/AuthoritativeSelector.js +25 -16
  4. package/dist/browser/AuthoritativeSelector.js.map +1 -1
  5. package/dist/browser/admin-contributions.d.ts +26 -0
  6. package/dist/browser/admin-contributions.d.ts.map +1 -1
  7. package/dist/browser/admin-contributions.js +30 -0
  8. package/dist/browser/admin-contributions.js.map +1 -1
  9. package/dist/browser/components/administration/membership-batch-model.d.ts.map +1 -1
  10. package/dist/browser/components/administration/membership-batch-model.js +2 -1
  11. package/dist/browser/components/administration/membership-batch-model.js.map +1 -1
  12. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts +2 -1
  13. package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
  14. package/dist/browser/components/platform-fields/AttachmentFileList.js +3 -3
  15. package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
  16. package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts.map +1 -1
  17. package/dist/browser/components/platform-fields/MobileManagedFileField.js +2 -1
  18. package/dist/browser/components/platform-fields/MobileManagedFileField.js.map +1 -1
  19. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts +4 -2
  20. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts.map +1 -1
  21. package/dist/browser/components/platform-fields/ResourceReferenceField.js +4 -4
  22. package/dist/browser/components/platform-fields/ResourceReferenceField.js.map +1 -1
  23. package/dist/browser/components/platform-fields/SubtableField.d.ts.map +1 -1
  24. package/dist/browser/components/platform-fields/SubtableField.js +3 -2
  25. package/dist/browser/components/platform-fields/SubtableField.js.map +1 -1
  26. package/dist/browser/components/platform-fields/address-value.d.ts +2 -12
  27. package/dist/browser/components/platform-fields/address-value.d.ts.map +1 -1
  28. package/dist/browser/components/platform-fields/address-value.js +1 -69
  29. package/dist/browser/components/platform-fields/address-value.js.map +1 -1
  30. package/dist/browser/components/platform-fields/cascade-value.d.ts +2 -5
  31. package/dist/browser/components/platform-fields/cascade-value.d.ts.map +1 -1
  32. package/dist/browser/components/platform-fields/cascade-value.js +1 -46
  33. package/dist/browser/components/platform-fields/cascade-value.js.map +1 -1
  34. package/dist/browser/components/platform-fields/resource-query.d.ts +3 -19
  35. package/dist/browser/components/platform-fields/resource-query.d.ts.map +1 -1
  36. package/dist/browser/components/platform-fields/resource-query.js +2 -153
  37. package/dist/browser/components/platform-fields/resource-query.js.map +1 -1
  38. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts +393 -2
  39. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
  40. package/dist/browser/components/resource/GeneratedResourceCrud.js +148 -71
  41. package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
  42. package/dist/browser/components/resource/GeneratedResourceForm.d.ts.map +1 -1
  43. package/dist/browser/components/resource/GeneratedResourceForm.js +7 -1
  44. package/dist/browser/components/resource/GeneratedResourceForm.js.map +1 -1
  45. package/dist/browser/components/resource/RecordDetailFrame.d.ts +4 -1
  46. package/dist/browser/components/resource/RecordDetailFrame.d.ts.map +1 -1
  47. package/dist/browser/components/resource/RecordDetailFrame.js +4 -2
  48. package/dist/browser/components/resource/RecordDetailFrame.js.map +1 -1
  49. package/dist/browser/components/resource/ResourceBatchActions.d.ts.map +1 -1
  50. package/dist/browser/components/resource/ResourceBatchActions.js +7 -6
  51. package/dist/browser/components/resource/ResourceBatchActions.js.map +1 -1
  52. package/dist/browser/components/resource/SurfaceFields.d.ts +4 -1
  53. package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
  54. package/dist/browser/components/resource/SurfaceFields.js +8 -8
  55. package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
  56. package/dist/browser/components/resource/record-comment-session.d.ts.map +1 -1
  57. package/dist/browser/components/resource/record-comment-session.js +2 -1
  58. package/dist/browser/components/resource/record-comment-session.js.map +1 -1
  59. package/dist/browser/components/resource/record-deletion-session.d.ts.map +1 -1
  60. package/dist/browser/components/resource/record-deletion-session.js +2 -1
  61. package/dist/browser/components/resource/record-deletion-session.js.map +1 -1
  62. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  63. package/dist/browser/components/resource/useResourceFormDrafts.js +2 -9
  64. package/dist/browser/components/resource/useResourceFormDrafts.js.map +1 -1
  65. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +5 -2
  66. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  67. package/dist/browser/components/workflow/StandardWorkflowPages.js +107 -64
  68. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  69. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts.map +1 -1
  70. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js +2 -1
  71. package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js.map +1 -1
  72. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -1
  73. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +15 -9
  74. package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -1
  75. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts +18 -0
  76. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts.map +1 -0
  77. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js +29 -0
  78. package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js.map +1 -0
  79. package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts +9 -0
  80. package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts.map +1 -0
  81. package/dist/browser/components/workflow/WorkflowConditionEditor.js +33 -0
  82. package/dist/browser/components/workflow/WorkflowConditionEditor.js.map +1 -0
  83. package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts.map +1 -1
  84. package/dist/browser/components/workflow/WorkflowDelegationManager.js +2 -1
  85. package/dist/browser/components/workflow/WorkflowDelegationManager.js.map +1 -1
  86. package/dist/browser/components/workflow/WorkflowDesigner.d.ts +14 -0
  87. package/dist/browser/components/workflow/WorkflowDesigner.d.ts.map +1 -0
  88. package/dist/browser/components/workflow/WorkflowDesigner.js +510 -0
  89. package/dist/browser/components/workflow/WorkflowDesigner.js.map +1 -0
  90. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts +15 -0
  91. package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts.map +1 -0
  92. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js +75 -0
  93. package/dist/browser/components/workflow/WorkflowDesignerAssistant.js.map +1 -0
  94. package/dist/browser/components/workflow/WorkflowDiagram.d.ts +8 -2
  95. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
  96. package/dist/browser/components/workflow/WorkflowDiagram.js +6 -6
  97. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
  98. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts +13 -0
  99. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts.map +1 -0
  100. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js +20 -0
  101. package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js.map +1 -0
  102. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +7 -0
  103. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
  104. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +84 -23
  105. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
  106. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +2 -1
  107. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
  108. package/dist/browser/components/workflow/WorkflowNodeCard.js +12 -10
  109. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
  110. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -2
  111. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
  112. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +72 -24
  113. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
  114. package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts +20 -0
  115. package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts.map +1 -0
  116. package/dist/browser/components/workflow/WorkflowNotificationEditor.js +18 -0
  117. package/dist/browser/components/workflow/WorkflowNotificationEditor.js.map +1 -0
  118. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts +10 -0
  119. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts.map +1 -0
  120. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js +24 -0
  121. package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js.map +1 -0
  122. package/dist/browser/components/workflow/WorkflowRecordEditor.d.ts.map +1 -1
  123. package/dist/browser/components/workflow/WorkflowRecordEditor.js +2 -1
  124. package/dist/browser/components/workflow/WorkflowRecordEditor.js.map +1 -1
  125. package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts +7 -0
  126. package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts.map +1 -0
  127. package/dist/browser/components/workflow/WorkflowReminderEditor.js +7 -0
  128. package/dist/browser/components/workflow/WorkflowReminderEditor.js.map +1 -0
  129. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts +8 -0
  130. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts.map +1 -0
  131. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js +33 -0
  132. package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js.map +1 -0
  133. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts.map +1 -1
  134. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js +2 -1
  135. package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js.map +1 -1
  136. package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts.map +1 -1
  137. package/dist/browser/components/workflow/WorkflowTaskFiles.js +2 -1
  138. package/dist/browser/components/workflow/WorkflowTaskFiles.js.map +1 -1
  139. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +1 -4
  140. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -1
  141. package/dist/browser/components/workflow/WorkflowTaskForm.js +5 -6
  142. package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -1
  143. package/dist/browser/components/workflow/workflow-approval-presentation.d.ts +13 -0
  144. package/dist/browser/components/workflow/workflow-approval-presentation.d.ts.map +1 -0
  145. package/dist/browser/components/workflow/workflow-approval-presentation.js +21 -0
  146. package/dist/browser/components/workflow/workflow-approval-presentation.js.map +1 -0
  147. package/dist/browser/components/workflow/workflow-designer-presentation.d.ts +13 -0
  148. package/dist/browser/components/workflow/workflow-designer-presentation.d.ts.map +1 -0
  149. package/dist/browser/components/workflow/workflow-designer-presentation.js +69 -0
  150. package/dist/browser/components/workflow/workflow-designer-presentation.js.map +1 -0
  151. package/dist/browser/components/workflow/workflow-flow-layout.d.ts +11 -2
  152. package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -1
  153. package/dist/browser/components/workflow/workflow-flow-layout.js +44 -9
  154. package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -1
  155. package/dist/browser/components/workflow/workflow-operation-layout.d.ts +6 -0
  156. package/dist/browser/components/workflow/workflow-operation-layout.d.ts.map +1 -0
  157. package/dist/browser/components/workflow/workflow-operation-layout.js +17 -0
  158. package/dist/browser/components/workflow/workflow-operation-layout.js.map +1 -0
  159. package/dist/browser/durable-command.d.ts.map +1 -1
  160. package/dist/browser/durable-command.js +2 -1
  161. package/dist/browser/durable-command.js.map +1 -1
  162. package/dist/browser/managed-command.d.ts.map +1 -1
  163. package/dist/browser/managed-command.js +2 -1
  164. package/dist/browser/managed-command.js.map +1 -1
  165. package/dist/browser/platform-client.d.ts +71 -3
  166. package/dist/browser/platform-client.d.ts.map +1 -1
  167. package/dist/browser/platform-client.js +58 -9
  168. package/dist/browser/platform-client.js.map +1 -1
  169. package/dist/browser/record-detail.css +4 -3
  170. package/dist/browser/styles.css +355 -1
  171. package/dist/browser/uuid.d.ts +7 -0
  172. package/dist/browser/uuid.d.ts.map +1 -0
  173. package/dist/browser/uuid.js +19 -0
  174. package/dist/browser/uuid.js.map +1 -0
  175. package/dist/browser/workflow-approval.css +205 -0
  176. package/dist/browser/workflow-operation-input.d.ts.map +1 -1
  177. package/dist/browser/workflow-operation-input.js +1 -0
  178. package/dist/browser/workflow-operation-input.js.map +1 -1
  179. package/dist/core.d.ts +1 -0
  180. package/dist/core.d.ts.map +1 -1
  181. package/dist/core.js +1 -0
  182. package/dist/core.js.map +1 -1
  183. package/dist/react.d.ts +1 -0
  184. package/dist/react.d.ts.map +1 -1
  185. package/dist/react.js +1 -0
  186. package/dist/react.js.map +1 -1
  187. package/dist/resource.d.ts +22 -0
  188. package/dist/resource.d.ts.map +1 -0
  189. package/dist/resource.js +18 -0
  190. package/dist/resource.js.map +1 -0
  191. package/documentation/AGENTS.md +1 -1
  192. package/documentation/application-templates.md +37 -0
  193. package/documentation/field-components.md +10 -1
  194. package/documentation/frontend.md +14 -4
  195. package/documentation/getting-started.md +9 -7
  196. package/documentation/manifest.json +13 -7
  197. package/documentation/reference/cli.md +2 -0
  198. package/documentation/reference/mcp.md +238 -0
  199. package/documentation/workflow-events.md +33 -0
  200. package/package.json +39 -29
  201. package/releases/2.63.0.json +45 -0
  202. package/releases/2.63.1.json +46 -0
  203. package/skills/manifest.json +1 -1
  204. package/skills/openxiangda-v2/SKILL.md +7 -7
  205. package/skills/openxiangda-v2/references/application-templates.md +37 -0
  206. package/skills/openxiangda-v2/references/cli.md +2 -0
  207. package/skills/openxiangda-v2/references/field-components.md +10 -1
  208. package/skills/openxiangda-v2/references/frontend.md +14 -4
  209. package/skills/openxiangda-v2/references/getting-started.md +9 -7
  210. package/skills/openxiangda-v2/references/mcp.md +238 -0
  211. package/skills/openxiangda-v2/references/workflow-events.md +33 -0
  212. package/releases/2.20.1.json +0 -30
  213. package/releases/2.20.2.json +0 -30
  214. package/releases/2.20.3.json +0 -29
  215. package/releases/2.20.4.json +0 -30
  216. package/releases/2.31.5.json +0 -33
  217. package/releases/2.59.3.json +0 -36
  218. package/releases/2.60.0.json +0 -38
  219. package/releases/2.61.0.json +0 -39
  220. package/releases/2.61.1.json +0 -37
  221. package/releases/2.61.2.json +0 -32
  222. package/releases/2.61.3.json +0 -33
  223. package/releases/2.62.0.json +0 -40
@@ -1,154 +1,3 @@
1
- import { cascadeTerminalValues, } from './cascade-value';
2
- import { deepestAddressPredicate } from './address-value';
3
- function isSelectionSnapshot(value) {
4
- return Boolean(value && typeof value === 'object' && !Array.isArray(value) && 'value' in value);
5
- }
6
- function stableValue(value) {
7
- return isSelectionSnapshot(value) ? String(value.value) : value;
8
- }
9
- function stableValues(value) {
10
- return (Array.isArray(value) ? value : [value]).map(stableValue);
11
- }
12
- export function buildResourceWhere(resourceCode, surface, query) {
13
- const declaredFields = new Set(Object.keys(surface.fields));
14
- const assertField = (field) => {
15
- if (!declaredFields.has(field)) {
16
- throw new Error(`OPENXIANGDA_RESOURCE_QUERY_FIELD_NOT_DECLARED:${resourceCode}:${field}`);
17
- }
18
- return field;
19
- };
20
- const predicates = query.where ? [compileAdvancedWhere(resourceCode, surface, query.where)] : [];
21
- if (query.createdBy !== undefined && query.createdBy !== '') {
22
- predicates.push({ field: 'created_by', operator: 'eq', value: query.createdBy });
23
- }
24
- if (query.keyword?.trim()) {
25
- const searchable = (surface.list?.searchableFields || []).filter(field => declaredFields.has(field));
26
- if (searchable.length) {
27
- predicates.push({
28
- or: searchable.map(field => ({
29
- field: assertField(field),
30
- operator: 'contains',
31
- value: query.keyword.trim(),
32
- })),
33
- });
34
- }
35
- }
36
- for (const [fieldCode, value] of Object.entries(query.filters || {})) {
37
- if (value === undefined ||
38
- value === null ||
39
- value === '' ||
40
- (Array.isArray(value) && value.length === 0))
41
- continue;
42
- // A list state can outlive a resource route during client-side navigation.
43
- if (!declaredFields.has(fieldCode))
44
- continue;
45
- const field = surface.fields[fieldCode];
46
- if (!field)
47
- continue;
48
- if (field.type === 'json') {
49
- predicates.push({
50
- field: fieldCode,
51
- operator: 'jsonContains',
52
- value,
53
- });
54
- }
55
- else if (field.type === 'address') {
56
- const address = deepestAddressPredicate(value);
57
- if (address) {
58
- predicates.push({
59
- field: fieldCode,
60
- operator: 'jsonContains',
61
- path: address.path,
62
- value: address.value,
63
- });
64
- }
65
- }
66
- else if (field.type === 'cascade.single' || field.type === 'cascade.multiple') {
67
- const terminals = cascadeTerminalValues(value, field.type === 'cascade.multiple');
68
- if (terminals.length) {
69
- predicates.push({
70
- field: fieldCode,
71
- operator: field.type === 'cascade.multiple' ? 'hasAny' : 'has',
72
- value: field.type === 'cascade.multiple' ? terminals : terminals[0],
73
- });
74
- }
75
- }
76
- else if ((field.type === 'date-range' || field.type === 'datetime-range') &&
77
- value !== null &&
78
- typeof value === 'object' &&
79
- !Array.isArray(value)) {
80
- const range = value;
81
- if (range.start !== undefined && range.end !== undefined) {
82
- predicates.push({
83
- field: fieldCode,
84
- operator: 'overlaps',
85
- value: { start: range.start, end: range.end },
86
- });
87
- }
88
- }
89
- else if (Array.isArray(value) &&
90
- value.length === 2 &&
91
- ['date', 'datetime', 'number', 'money', 'percent'].includes(field.widget)) {
92
- if (value[0] !== undefined && value[0] !== null && value[0] !== '') {
93
- predicates.push({ field: fieldCode, operator: 'gte', value: value[0] });
94
- }
95
- if (value[1] !== undefined && value[1] !== null && value[1] !== '') {
96
- predicates.push({ field: fieldCode, operator: 'lte', value: value[1] });
97
- }
98
- }
99
- else if (field.type === 'option.multiple' ||
100
- field.type === 'user.multiple' ||
101
- field.type === 'department.multiple' ||
102
- field.type === 'resource-ref.multiple') {
103
- predicates.push({
104
- field: fieldCode,
105
- operator: 'hasAny',
106
- value: stableValues(value),
107
- });
108
- }
109
- else {
110
- const [stable] = stableValues(value);
111
- predicates.push({ field: fieldCode, operator: 'eq', value: stable });
112
- }
113
- }
114
- return predicates.length ? { and: predicates } : undefined;
115
- }
116
- /** Preserve the canonical logical tree while reducing field-kit selections to stable query values. */
117
- export function compileAdvancedWhere(code, surface, node) {
118
- if ('and' in node)
119
- return { and: node.and.map(item => compileAdvancedWhere(code, surface, item)) };
120
- if ('or' in node)
121
- return { or: node.or.map(item => compileAdvancedWhere(code, surface, item)) };
122
- if ('not' in node)
123
- return { not: compileAdvancedWhere(code, surface, node.not) };
124
- // A path already selects the canonical subvalue; top-level field control
125
- // normalization must not replace its value or silently drop the path.
126
- if (node.path !== undefined)
127
- return node;
128
- if (node.operator === 'isEmpty' || node.operator === 'isNotEmpty')
129
- return { field: node.field, operator: node.operator };
130
- const field = surface.fields[node.field];
131
- if (node.operator === 'has') {
132
- const cascadePath = field?.type === 'cascade.single' && Array.isArray(node.value) &&
133
- node.value.length > 0 && node.value.every(isSelectionSnapshot);
134
- return { ...node, value: cascadePath
135
- ? cascadeTerminalValues(node.value, false)[0]
136
- : stableValue(node.value) };
137
- }
138
- if (['in', 'between', 'hasAny', 'hasAll'].includes(node.operator)) {
139
- // Explicit operators own operand cardinality. Do not apply shortcut
140
- // filters, which infer hasAny or reduce a range to its first comparison.
141
- if (!Array.isArray(node.value))
142
- return node;
143
- const cascadePaths = field?.type === 'cascade.multiple' &&
144
- ['hasAny', 'hasAll'].includes(node.operator) && node.value.length > 0 &&
145
- node.value.every(path => Array.isArray(path) && path.length > 0 && path.every(isSelectionSnapshot));
146
- return { ...node, value: cascadePaths
147
- ? cascadeTerminalValues(node.value, true)
148
- : node.value.map(stableValue) };
149
- }
150
- const normalized = buildResourceWhere(code, surface, { page: 1, pageSize: 20, filters: { [node.field]: node.value } });
151
- const predicate = normalized && 'and' in normalized ? normalized.and[0] : undefined;
152
- return predicate && 'field' in predicate ? { ...predicate, operator: node.operator } : node;
153
- }
1
+ /** Shared pure query semantics for standard pages and server consumers. */
2
+ export { buildResourceWhere, compileAdvancedWhere } from 'openxiangda-contracts/browser';
154
3
  //# sourceMappingURL=resource-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-query.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/resource-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-query.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/resource-query.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,17 +1,408 @@
1
+ import { type TableColumnsType } from 'antd';
2
+ import type { DataResourceSurface } from 'openxiangda-contracts/browser';
3
+ import { type ReactNode, type Dispatch, type SetStateAction } from 'react';
4
+ import { type SurfaceField } from './SurfaceFields';
5
+ import { type GenericResourceQuery, type ResourceListPreference } from '../../platform-client';
1
6
  import type { GeneratedResourceDefinition } from './generated-resource-definition';
2
- import { type GeneratedResourceRoutePaths } from './resource-page-helpers';
7
+ import { type ListDisplaySettings } from './ResourceListSettings';
8
+ import type { ResourceSort } from '../platform-fields/resource-query';
9
+ import { type ResourceRecord, type GeneratedResourceRoutePaths } from './resource-page-helpers';
3
10
  export type { GeneratedResourceRoutePaths } from './resource-page-helpers';
11
+ import type { ResourceFormDrawerState } from './ResourceFormFrame';
12
+ export interface ResourceListControllerOptions {
13
+ definition: GeneratedResourceDefinition;
14
+ paths: GeneratedResourceRoutePaths;
15
+ mobileFields?: readonly string[];
16
+ columnRenderers?: Readonly<Record<string, (input: {
17
+ value: unknown;
18
+ record: ResourceRecord;
19
+ field: SurfaceField;
20
+ }) => ReactNode>>;
21
+ }
4
22
  /** 内置审计列始终可排序;其余平台系统列仅在作为 defaultSort 声明时进入排序选项。 */
5
23
  export declare function systemSortFieldOptions(defaultSortField?: string): Array<{
6
24
  key: string;
7
25
  label: string;
8
26
  }>;
9
- export declare function GeneratedResourcePage({ resourceCode, viewCode, mode, variant, definition: providedDefinition, paths, }: {
27
+ export interface ResourceListQueryState {
28
+ defaultSorts: ResourceSort[];
29
+ draft: Partial<GenericResourceQuery>;
30
+ query: Partial<GenericResourceQuery>;
31
+ page: number;
32
+ pageSize: number;
33
+ sorts: ResourceSort[];
34
+ setDraft: Dispatch<SetStateAction<Partial<GenericResourceQuery>>>;
35
+ setQuery: Dispatch<SetStateAction<Partial<GenericResourceQuery>>>;
36
+ setPage: Dispatch<SetStateAction<number>>;
37
+ setPageSize: Dispatch<SetStateAction<number>>;
38
+ setSorts: Dispatch<SetStateAction<ResourceSort[]>>;
39
+ list: {
40
+ result: {
41
+ data: ResourceRecord[];
42
+ total: number | undefined;
43
+ };
44
+ query: {
45
+ isError: boolean;
46
+ isFetching: boolean;
47
+ error: unknown;
48
+ refetch(): Promise<unknown>;
49
+ };
50
+ };
51
+ }
52
+ export declare function GeneratedResourcePage({ resourceCode, viewCode, mode, variant, definition: providedDefinition, paths, ...lifecycle }: {
10
53
  resourceCode: string;
11
54
  viewCode?: string;
12
55
  mode?: 'list' | 'create' | 'edit' | 'detail';
13
56
  variant?: 'desktop' | 'mobile';
14
57
  definition?: GeneratedResourceDefinition;
15
58
  paths: GeneratedResourceRoutePaths;
59
+ recordId?: string;
60
+ onDismiss?(): void;
61
+ onSaved?(id: string): void;
62
+ onEdit?(): void;
63
+ drawerState?: ResourceFormDrawerState;
64
+ embedded?: boolean;
65
+ }): import("react/jsx-runtime").JSX.Element;
66
+ export declare function useResourceListController({ definition, paths, columnRenderers }: ResourceListControllerOptions): {
67
+ definition: GeneratedResourceDefinition;
68
+ paths: GeneratedResourceRoutePaths;
69
+ navigate: import("react-router-dom").NavigateFunction;
70
+ message: import("antd/es/message/interface").MessageInstance;
71
+ hasCapability: (code: string) => boolean;
72
+ hasReadCapability: (code: string) => boolean;
73
+ identity: import("../../platform-client").RuntimeIdentity;
74
+ code: string;
75
+ name: string;
76
+ surface: DataResourceSurface;
77
+ capabilities: {
78
+ read: string;
79
+ create: string;
80
+ update: string;
81
+ delete: string;
82
+ };
83
+ generated: {
84
+ list?: boolean;
85
+ detail?: boolean;
86
+ create?: boolean;
87
+ update?: boolean;
88
+ delete?: boolean;
89
+ };
90
+ workflowDefinitions: ReadonlyMap<string, import("../../workflow-definitions").GeneratedWorkflowDefinition>;
91
+ contributions: Readonly<import("../../admin-contributions").AdminResourceContributions<Record<string, unknown>>> | undefined;
92
+ fields: {
93
+ label: string;
94
+ type: import("openxiangda-contracts").DataFieldType;
95
+ widget: import("openxiangda-contracts").DataFieldSurfaceWidget;
96
+ section?: string;
97
+ requiredHint?: boolean;
98
+ system?: boolean;
99
+ hidden?: boolean;
100
+ readCapabilities: string[];
101
+ createCapabilities: string[];
102
+ updateCapabilities: string[];
103
+ maxLength?: number;
104
+ precision?: number;
105
+ scale?: number;
106
+ exactDecimal?: boolean;
107
+ min?: number;
108
+ max?: number;
109
+ rangeBoundary?: import("openxiangda-contracts").DataRangeBoundary;
110
+ maxCount?: number;
111
+ maxSizeMb?: number;
112
+ accept?: string | string[];
113
+ options?: import("openxiangda-contracts").DataFieldOption[];
114
+ list?: boolean;
115
+ searchable?: boolean;
116
+ sortable?: boolean;
117
+ source?: import("openxiangda-contracts").DataFieldResourceSource;
118
+ userCandidates?: import("openxiangda-contracts").DataFieldUserCandidates;
119
+ timePrecision?: "minute" | "second";
120
+ serial?: {
121
+ prefix?: string;
122
+ digits?: number;
123
+ start?: number;
124
+ };
125
+ subtable?: {
126
+ resourceCode: string;
127
+ foreignKey: string;
128
+ orderField: string;
129
+ minRows?: number;
130
+ maxRows?: number;
131
+ };
132
+ key: string;
133
+ }[];
134
+ readableFieldCodes: Set<string>;
135
+ state: ResourceListQueryState;
136
+ exporting: boolean;
137
+ setExporting: Dispatch<SetStateAction<boolean>>;
138
+ moreFiltersOpen: boolean;
139
+ setMoreFiltersOpen: Dispatch<SetStateAction<boolean>>;
140
+ settingsOpen: boolean;
141
+ setSettingsOpen: Dispatch<SetStateAction<boolean>>;
142
+ formTarget: {
143
+ mode: "create" | "edit";
144
+ id?: string;
145
+ } | undefined;
146
+ setFormTarget: Dispatch<SetStateAction<{
147
+ mode: "create" | "edit";
148
+ id?: string;
149
+ } | undefined>>;
150
+ detailId: string | undefined;
151
+ setDetailId: Dispatch<SetStateAction<string | undefined>>;
152
+ workflowOpen: boolean;
153
+ setWorkflowOpen: Dispatch<SetStateAction<boolean>>;
154
+ correctionId: string | undefined;
155
+ setCorrectionId: Dispatch<SetStateAction<string | undefined>>;
156
+ entryFullScreen: boolean;
157
+ setEntryFullScreen: Dispatch<SetStateAction<boolean>>;
158
+ drawerState: {
159
+ fullScreen: boolean;
160
+ setFullScreen: Dispatch<SetStateAction<boolean>>;
161
+ };
162
+ sortsOpen: boolean;
163
+ setSortsOpen: Dispatch<SetStateAction<boolean>>;
164
+ frozenKeys: string[];
165
+ setFrozenKeys: Dispatch<SetStateAction<string[]>>;
166
+ columnOrder: string[];
167
+ setColumnOrder: Dispatch<SetStateAction<string[]>>;
168
+ savedDisplay: string;
169
+ setSavedDisplay: Dispatch<SetStateAction<string>>;
170
+ density: "small" | "middle" | "large";
171
+ setDensity: Dispatch<SetStateAction<"small" | "middle" | "large">>;
172
+ visibleColumnKeys: string[];
173
+ setVisibleColumnKeys: Dispatch<SetStateAction<string[]>>;
174
+ selectedRowKeys: string[];
175
+ setSelectedRowKeys: Dispatch<SetStateAction<string[]>>;
176
+ preferenceReady: boolean;
177
+ setPreferenceReady: Dispatch<SetStateAction<boolean>>;
178
+ preferenceSaving: boolean;
179
+ setPreferenceSaving: Dispatch<SetStateAction<boolean>>;
180
+ hasSavedPreference: boolean;
181
+ setHasSavedPreference: Dispatch<SetStateAction<boolean>>;
182
+ remove: import("@refinedev/core").UseDeleteReturnType<import("@refinedev/core").BaseRecord, import("@refinedev/core").HttpError, {}>;
183
+ rows: ResourceRecord[];
184
+ formFields: SurfaceField[];
185
+ importWritableFieldCodes: string[];
186
+ standardWorkflows: import("../../workflow-definitions").GeneratedWorkflowDefinition[];
187
+ standardWorkflow: import("../../workflow-definitions").GeneratedWorkflowDefinition | undefined;
188
+ workflowImportFieldCodes: string[];
189
+ batchWritableFields: SurfaceField[];
190
+ selectedRows: ResourceRecord[];
191
+ toolbarContributions: import("../../admin-contributions").AdminToolbarActionContribution[];
192
+ rowContributions: import("../../admin-contributions").AdminRowActionContribution<Record<string, unknown>>[];
193
+ canBatch: boolean | undefined;
194
+ configurableColumns: {
195
+ key: string;
196
+ label: string;
197
+ }[];
198
+ listKey: string;
199
+ filterFields: string[];
200
+ filterDefinitions: SurfaceField[];
201
+ sortFields: {
202
+ key: string;
203
+ label: string;
204
+ }[];
205
+ orderedKeys: string[];
206
+ display: ListDisplaySettings;
207
+ displaySignature: string;
208
+ displayDirty: boolean;
209
+ preferencePayload: () => ResourceListPreference;
210
+ firstVisibleBusinessField: {
211
+ label: string;
212
+ type: import("openxiangda-contracts").DataFieldType;
213
+ widget: import("openxiangda-contracts").DataFieldSurfaceWidget;
214
+ section?: string;
215
+ requiredHint?: boolean;
216
+ system?: boolean;
217
+ hidden?: boolean;
218
+ readCapabilities: string[];
219
+ createCapabilities: string[];
220
+ updateCapabilities: string[];
221
+ maxLength?: number;
222
+ precision?: number;
223
+ scale?: number;
224
+ exactDecimal?: boolean;
225
+ min?: number;
226
+ max?: number;
227
+ rangeBoundary?: import("openxiangda-contracts").DataRangeBoundary;
228
+ maxCount?: number;
229
+ maxSizeMb?: number;
230
+ accept?: string | string[];
231
+ options?: import("openxiangda-contracts").DataFieldOption[];
232
+ list?: boolean;
233
+ searchable?: boolean;
234
+ sortable?: boolean;
235
+ source?: import("openxiangda-contracts").DataFieldResourceSource;
236
+ userCandidates?: import("openxiangda-contracts").DataFieldUserCandidates;
237
+ timePrecision?: "minute" | "second";
238
+ serial?: {
239
+ prefix?: string;
240
+ digits?: number;
241
+ start?: number;
242
+ };
243
+ subtable?: {
244
+ resourceCode: string;
245
+ foreignKey: string;
246
+ orderField: string;
247
+ minRows?: number;
248
+ maxRows?: number;
249
+ };
250
+ key: string;
251
+ } | undefined;
252
+ columns: TableColumnsType<ResourceRecord>;
253
+ handleExport: () => Promise<void>;
254
+ changeDisplay: (settings: ListDisplaySettings) => void;
255
+ savePreference: () => Promise<void>;
256
+ restorePreference: () => Promise<boolean>;
257
+ searchableFields: string[];
258
+ searchLabels: string[];
259
+ keywordPlaceholder: string;
260
+ activeAdditionalCount: number;
261
+ applyQuery: (next: Partial<GenericResourceQuery>) => void;
262
+ removeAppliedFilter: (key: string) => void;
263
+ appliedConditions: {
264
+ key: string;
265
+ label: string;
266
+ }[];
267
+ total: number;
268
+ loading: boolean;
269
+ error: unknown;
270
+ refresh: () => Promise<unknown>;
271
+ };
272
+ export type ResourceListController = ReturnType<typeof useResourceListController>;
273
+ export declare function ResourceListContainer({ controller, children }: {
274
+ controller: ResourceListController;
275
+ children: ReactNode;
276
+ }): import("react/jsx-runtime").JSX.Element;
277
+ export declare function ResourceListError({ controller }: {
278
+ controller: ResourceListController;
279
+ }): import("react/jsx-runtime").JSX.Element;
280
+ export declare function ResourceListAdvancedFilter({ controller }: {
281
+ controller: ResourceListController;
282
+ }): import("react/jsx-runtime").JSX.Element;
283
+ export declare function ResourceListActions({ controller }: {
284
+ controller: ResourceListController;
285
+ }): import("react/jsx-runtime").JSX.Element;
286
+ export declare function ResourceListQueryBar({ controller }: {
287
+ controller: ResourceListController;
288
+ }): import("react/jsx-runtime").JSX.Element;
289
+ export declare function ResourceListToolbar({ controller }: {
290
+ controller: ResourceListController;
291
+ }): import("react/jsx-runtime").JSX.Element;
292
+ export declare function ResourceListAppliedFilters({ controller }: {
293
+ controller: ResourceListController;
294
+ }): import("react/jsx-runtime").JSX.Element;
295
+ export declare function ResourceListOverlays({ controller }: {
296
+ controller: ResourceListController;
297
+ }): import("react/jsx-runtime").JSX.Element;
298
+ export declare function ResourceListBatchBar({ controller }: {
299
+ controller: ResourceListController;
300
+ }): import("react/jsx-runtime").JSX.Element;
301
+ export declare function ResourceListTable({ controller }: {
302
+ controller: ResourceListController;
303
+ }): import("react/jsx-runtime").JSX.Element;
304
+ export declare function useMobileResourceListController({ definition, paths, mobileFields }: ResourceListControllerOptions): {
305
+ definition: GeneratedResourceDefinition;
306
+ paths: GeneratedResourceRoutePaths;
307
+ navigate: import("react-router-dom").NavigateFunction;
308
+ hasCapability: (code: string) => boolean;
309
+ hasReadCapability: (code: string) => boolean;
310
+ identity: import("../../platform-client").RuntimeIdentity;
311
+ message: import("antd/es/message/interface").MessageInstance;
312
+ code: string;
313
+ name: string;
314
+ surface: DataResourceSurface;
315
+ capabilities: {
316
+ read: string;
317
+ create: string;
318
+ update: string;
319
+ delete: string;
320
+ };
321
+ generated: {
322
+ list?: boolean;
323
+ detail?: boolean;
324
+ create?: boolean;
325
+ update?: boolean;
326
+ delete?: boolean;
327
+ };
328
+ readableFieldCodes: Set<string>;
329
+ state: ResourceListQueryState;
330
+ exporting: boolean;
331
+ setExporting: Dispatch<SetStateAction<boolean>>;
332
+ rows: ResourceRecord[];
333
+ fields: {
334
+ label: string;
335
+ type: import("openxiangda-contracts").DataFieldType;
336
+ widget: import("openxiangda-contracts").DataFieldSurfaceWidget;
337
+ section?: string;
338
+ requiredHint?: boolean;
339
+ system?: boolean;
340
+ hidden?: boolean;
341
+ readCapabilities: string[];
342
+ createCapabilities: string[];
343
+ updateCapabilities: string[];
344
+ maxLength?: number;
345
+ precision?: number;
346
+ scale?: number;
347
+ exactDecimal?: boolean;
348
+ min?: number;
349
+ max?: number;
350
+ rangeBoundary?: import("openxiangda-contracts").DataRangeBoundary;
351
+ maxCount?: number;
352
+ maxSizeMb?: number;
353
+ accept?: string | string[];
354
+ options?: import("openxiangda-contracts").DataFieldOption[];
355
+ list?: boolean;
356
+ searchable?: boolean;
357
+ sortable?: boolean;
358
+ source?: import("openxiangda-contracts").DataFieldResourceSource;
359
+ userCandidates?: import("openxiangda-contracts").DataFieldUserCandidates;
360
+ timePrecision?: "minute" | "second";
361
+ serial?: {
362
+ prefix?: string;
363
+ digits?: number;
364
+ start?: number;
365
+ };
366
+ subtable?: {
367
+ resourceCode: string;
368
+ foreignKey: string;
369
+ orderField: string;
370
+ minRows?: number;
371
+ maxRows?: number;
372
+ };
373
+ key: string;
374
+ }[];
375
+ handleExport: () => Promise<void>;
376
+ total: number;
377
+ loading: boolean;
378
+ error: unknown;
379
+ refresh: () => Promise<unknown>;
380
+ };
381
+ export type MobileResourceListController = ReturnType<typeof useMobileResourceListController>;
382
+ export declare function MobileResourceListContainer({ controller, children, description }: {
383
+ controller: MobileResourceListController;
384
+ children: ReactNode;
385
+ description?: string | false;
386
+ }): import("react/jsx-runtime").JSX.Element;
387
+ export declare function MobileResourceListError({ controller }: {
388
+ controller: MobileResourceListController;
389
+ }): import("react/jsx-runtime").JSX.Element;
390
+ export declare function MobileResourceListQueryBar({ controller }: {
391
+ controller: MobileResourceListController;
392
+ }): import("react/jsx-runtime").JSX.Element;
393
+ export declare function MobileResourceListCards({ controller }: {
394
+ controller: MobileResourceListController;
395
+ }): import("react/jsx-runtime").JSX.Element;
396
+ export declare function MobileResourceListPagination({ controller }: {
397
+ controller: MobileResourceListController;
398
+ }): import("react/jsx-runtime").JSX.Element;
399
+ export declare function GeneratedResourceDetailPage({ definition, paths, variant, recordId, onDismiss, onEdit, drawerState }: {
400
+ definition: GeneratedResourceDefinition;
401
+ paths: GeneratedResourceRoutePaths;
402
+ variant: 'desktop' | 'mobile';
403
+ recordId?: string;
404
+ onDismiss?: () => void;
405
+ onEdit?: () => void;
406
+ drawerState?: ResourceFormDrawerState;
16
407
  }): import("react/jsx-runtime").JSX.Element;
17
408
  //# sourceMappingURL=GeneratedResourceCrud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratedResourceCrud.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/resource/GeneratedResourceCrud.tsx"],"names":[],"mappings":"AAmFA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAUnF,OAAO,EAAyI,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAClN,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AA2C3E,oDAAoD;AACpD,wBAAgB,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAMvG;AAiDD,wBAAgB,qBAAqB,CAAC,EACpC,YAAY,EACZ,QAAQ,EACR,IAAa,EACb,OAAmB,EACnB,UAAU,EAAE,kBAAkB,EAC9B,KAAK,GACN,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7C,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,KAAK,EAAE,2BAA2B,CAAC;CACpC,2CA2BA"}
1
+ {"version":3,"file":"GeneratedResourceCrud.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/resource/GeneratedResourceCrud.tsx"],"names":[],"mappings":"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"}