openxiangda 2.48.2 → 2.59.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 (245) hide show
  1. package/README.md +1 -0
  2. package/dist/browser/AuthoritativeSelector.d.ts +4 -2
  3. package/dist/browser/AuthoritativeSelector.d.ts.map +1 -1
  4. package/dist/browser/AuthoritativeSelector.js +42 -12
  5. package/dist/browser/AuthoritativeSelector.js.map +1 -1
  6. package/dist/browser/FilePreviewPage.d.ts.map +1 -1
  7. package/dist/browser/FilePreviewPage.js +4 -0
  8. package/dist/browser/FilePreviewPage.js.map +1 -1
  9. package/dist/browser/components/administration/RoleMembershipManager.d.ts.map +1 -1
  10. package/dist/browser/components/administration/RoleMembershipManager.js +5 -5
  11. package/dist/browser/components/administration/RoleMembershipManager.js.map +1 -1
  12. package/dist/browser/components/administration/scope-applicability.d.ts +3 -0
  13. package/dist/browser/components/administration/scope-applicability.d.ts.map +1 -0
  14. package/dist/browser/components/administration/scope-applicability.js +7 -0
  15. package/dist/browser/components/administration/scope-applicability.js.map +1 -0
  16. package/dist/browser/components/platform-fields/ConstrainedUserField.d.ts +16 -0
  17. package/dist/browser/components/platform-fields/ConstrainedUserField.d.ts.map +1 -0
  18. package/dist/browser/components/platform-fields/ConstrainedUserField.js +140 -0
  19. package/dist/browser/components/platform-fields/ConstrainedUserField.js.map +1 -0
  20. package/dist/browser/components/platform-fields/DateTimeField.d.ts +1 -1
  21. package/dist/browser/components/platform-fields/DateTimeField.d.ts.map +1 -1
  22. package/dist/browser/components/platform-fields/DateTimeField.js +15 -8
  23. package/dist/browser/components/platform-fields/DateTimeField.js.map +1 -1
  24. package/dist/browser/components/platform-fields/ManagedMediaPlayer.d.ts +19 -0
  25. package/dist/browser/components/platform-fields/ManagedMediaPlayer.d.ts.map +1 -0
  26. package/dist/browser/components/platform-fields/ManagedMediaPlayer.js +42 -0
  27. package/dist/browser/components/platform-fields/ManagedMediaPlayer.js.map +1 -0
  28. package/dist/browser/components/platform-fields/MobileDateTimeField.d.ts +1 -1
  29. package/dist/browser/components/platform-fields/MobileDateTimeField.d.ts.map +1 -1
  30. package/dist/browser/components/platform-fields/MobileDateTimeField.js +5 -3
  31. package/dist/browser/components/platform-fields/MobileDateTimeField.js.map +1 -1
  32. package/dist/browser/components/platform-fields/MobileSelection.d.ts +3 -1
  33. package/dist/browser/components/platform-fields/MobileSelection.d.ts.map +1 -1
  34. package/dist/browser/components/platform-fields/MobileSelection.js +2 -2
  35. package/dist/browser/components/platform-fields/MobileSelection.js.map +1 -1
  36. package/dist/browser/components/platform-fields/MobileZonedDateTimeField.js +2 -2
  37. package/dist/browser/components/platform-fields/MobileZonedDateTimeField.js.map +1 -1
  38. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts +4 -2
  39. package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts.map +1 -1
  40. package/dist/browser/components/platform-fields/ResourceReferenceField.js +3 -3
  41. package/dist/browser/components/platform-fields/ResourceReferenceField.js.map +1 -1
  42. package/dist/browser/components/platform-fields/SubtableField.d.ts +11 -2
  43. package/dist/browser/components/platform-fields/SubtableField.d.ts.map +1 -1
  44. package/dist/browser/components/platform-fields/SubtableField.js +55 -24
  45. package/dist/browser/components/platform-fields/SubtableField.js.map +1 -1
  46. package/dist/browser/components/platform-fields/ZonedDateTimeField.js +2 -2
  47. package/dist/browser/components/platform-fields/ZonedDateTimeField.js.map +1 -1
  48. package/dist/browser/components/platform-fields/managed-media-read.d.ts +19 -0
  49. package/dist/browser/components/platform-fields/managed-media-read.d.ts.map +1 -0
  50. package/dist/browser/components/platform-fields/managed-media-read.js +32 -0
  51. package/dist/browser/components/platform-fields/managed-media-read.js.map +1 -0
  52. package/dist/browser/components/platform-fields/reference-binding-change.d.ts +6 -0
  53. package/dist/browser/components/platform-fields/reference-binding-change.d.ts.map +1 -0
  54. package/dist/browser/components/platform-fields/reference-binding-change.js +32 -0
  55. package/dist/browser/components/platform-fields/reference-binding-change.js.map +1 -0
  56. package/dist/browser/components/platform-fields/user-candidate-context.d.ts +54 -0
  57. package/dist/browser/components/platform-fields/user-candidate-context.d.ts.map +1 -0
  58. package/dist/browser/components/platform-fields/user-candidate-context.js +70 -0
  59. package/dist/browser/components/platform-fields/user-candidate-context.js.map +1 -0
  60. package/dist/browser/components/platform-fields/zoned-date-time.d.ts +4 -0
  61. package/dist/browser/components/platform-fields/zoned-date-time.d.ts.map +1 -1
  62. package/dist/browser/components/platform-fields/zoned-date-time.js +9 -1
  63. package/dist/browser/components/platform-fields/zoned-date-time.js.map +1 -1
  64. package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
  65. package/dist/browser/components/resource/GeneratedResourceCrud.js +28 -4
  66. package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
  67. package/dist/browser/components/resource/GeneratedResourceForm.js +3 -3
  68. package/dist/browser/components/resource/GeneratedResourceForm.js.map +1 -1
  69. package/dist/browser/components/resource/RecordDetailFrame.d.ts +3 -1
  70. package/dist/browser/components/resource/RecordDetailFrame.d.ts.map +1 -1
  71. package/dist/browser/components/resource/RecordDetailFrame.js +2 -2
  72. package/dist/browser/components/resource/RecordDetailFrame.js.map +1 -1
  73. package/dist/browser/components/resource/ResourceFormFrame.d.ts +3 -2
  74. package/dist/browser/components/resource/ResourceFormFrame.d.ts.map +1 -1
  75. package/dist/browser/components/resource/ResourceFormFrame.js +13 -2
  76. package/dist/browser/components/resource/ResourceFormFrame.js.map +1 -1
  77. package/dist/browser/components/resource/ResourceRecordComments.d.ts +13 -0
  78. package/dist/browser/components/resource/ResourceRecordComments.d.ts.map +1 -0
  79. package/dist/browser/components/resource/ResourceRecordComments.js +75 -0
  80. package/dist/browser/components/resource/ResourceRecordComments.js.map +1 -0
  81. package/dist/browser/components/resource/ResourceRecordDeletion.d.ts +7 -0
  82. package/dist/browser/components/resource/ResourceRecordDeletion.d.ts.map +1 -0
  83. package/dist/browser/components/resource/ResourceRecordDeletion.js +53 -0
  84. package/dist/browser/components/resource/ResourceRecordDeletion.js.map +1 -0
  85. package/dist/browser/components/resource/ResourceRecordPrintPreview.d.ts +16 -0
  86. package/dist/browser/components/resource/ResourceRecordPrintPreview.d.ts.map +1 -0
  87. package/dist/browser/components/resource/ResourceRecordPrintPreview.js +92 -0
  88. package/dist/browser/components/resource/ResourceRecordPrintPreview.js.map +1 -0
  89. package/dist/browser/components/resource/SurfaceFields.d.ts +12 -3
  90. package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
  91. package/dist/browser/components/resource/SurfaceFields.js +24 -8
  92. package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
  93. package/dist/browser/components/resource/generated-resource-definition.d.ts +13 -0
  94. package/dist/browser/components/resource/generated-resource-definition.d.ts.map +1 -1
  95. package/dist/browser/components/resource/record-comment-session.d.ts +17 -0
  96. package/dist/browser/components/resource/record-comment-session.d.ts.map +1 -0
  97. package/dist/browser/components/resource/record-comment-session.js +64 -0
  98. package/dist/browser/components/resource/record-comment-session.js.map +1 -0
  99. package/dist/browser/components/resource/record-deletion-session.d.ts +19 -0
  100. package/dist/browser/components/resource/record-deletion-session.d.ts.map +1 -0
  101. package/dist/browser/components/resource/record-deletion-session.js +64 -0
  102. package/dist/browser/components/resource/record-deletion-session.js.map +1 -0
  103. package/dist/browser/components/resource/record-print-session.d.ts +12 -0
  104. package/dist/browser/components/resource/record-print-session.d.ts.map +1 -0
  105. package/dist/browser/components/resource/record-print-session.js +32 -0
  106. package/dist/browser/components/resource/record-print-session.js.map +1 -0
  107. package/dist/browser/components/resource/resource-field-selection.d.ts +2 -0
  108. package/dist/browser/components/resource/resource-field-selection.d.ts.map +1 -1
  109. package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
  110. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +28 -5
  111. package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
  112. package/dist/browser/components/workflow/StandardWorkflowPages.js +143 -51
  113. package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
  114. package/dist/browser/components/workflow/WorkflowDelegationManager.js +13 -8
  115. package/dist/browser/components/workflow/WorkflowDelegationManager.js.map +1 -1
  116. package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
  117. package/dist/browser/components/workflow/WorkflowDiagram.js +5 -2
  118. package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
  119. package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
  120. package/dist/browser/components/workflow/WorkflowFlowCanvas.js +2 -1
  121. package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
  122. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +1 -1
  123. package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
  124. package/dist/browser/components/workflow/WorkflowNodeCard.js +7 -5
  125. package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
  126. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
  127. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +14 -11
  128. package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
  129. package/dist/browser/components/workflow/WorkflowRecordEditor.js +1 -1
  130. package/dist/browser/components/workflow/WorkflowRecordEditor.js.map +1 -1
  131. package/dist/browser/components/workflow/WorkflowRecordHistoryPanel.d.ts +9 -0
  132. package/dist/browser/components/workflow/WorkflowRecordHistoryPanel.d.ts.map +1 -0
  133. package/dist/browser/components/workflow/WorkflowRecordHistoryPanel.js +50 -0
  134. package/dist/browser/components/workflow/WorkflowRecordHistoryPanel.js.map +1 -0
  135. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +4 -1
  136. package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -1
  137. package/dist/browser/components/workflow/WorkflowTaskForm.js +34 -10
  138. package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -1
  139. package/dist/browser/components/workflow/standard-process-values.d.ts +10 -2
  140. package/dist/browser/components/workflow/standard-process-values.d.ts.map +1 -1
  141. package/dist/browser/components/workflow/standard-process-values.js +22 -1
  142. package/dist/browser/components/workflow/standard-process-values.js.map +1 -1
  143. package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -1
  144. package/dist/browser/components/workflow/workflow-flow-layout.js +33 -3
  145. package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -1
  146. package/dist/browser/components/workflow/workflow-submission-form.d.ts +22 -0
  147. package/dist/browser/components/workflow/workflow-submission-form.d.ts.map +1 -0
  148. package/dist/browser/components/workflow/workflow-submission-form.js +64 -0
  149. package/dist/browser/components/workflow/workflow-submission-form.js.map +1 -0
  150. package/dist/browser/components/workflow/workflow-task-required-errors.d.ts +10 -0
  151. package/dist/browser/components/workflow/workflow-task-required-errors.d.ts.map +1 -0
  152. package/dist/browser/components/workflow/workflow-task-required-errors.js +28 -0
  153. package/dist/browser/components/workflow/workflow-task-required-errors.js.map +1 -0
  154. package/dist/browser/durable-command.d.ts.map +1 -1
  155. package/dist/browser/durable-command.js +7 -2
  156. package/dist/browser/durable-command.js.map +1 -1
  157. package/dist/browser/managed-read-recovery.d.ts +2 -0
  158. package/dist/browser/managed-read-recovery.d.ts.map +1 -1
  159. package/dist/browser/managed-read-recovery.js +6 -1
  160. package/dist/browser/managed-read-recovery.js.map +1 -1
  161. package/dist/browser/platform-client.d.ts +37 -1
  162. package/dist/browser/platform-client.d.ts.map +1 -1
  163. package/dist/browser/platform-client.js +199 -6
  164. package/dist/browser/platform-client.js.map +1 -1
  165. package/dist/browser/record-comments.css +14 -0
  166. package/dist/browser/record-deletion.css +11 -0
  167. package/dist/browser/record-print.css +31 -0
  168. package/dist/browser/runtime-authorization-recovery.d.ts.map +1 -1
  169. package/dist/browser/runtime-authorization-recovery.js +34 -9
  170. package/dist/browser/runtime-authorization-recovery.js.map +1 -1
  171. package/dist/browser/runtime.d.ts +3 -1
  172. package/dist/browser/runtime.d.ts.map +1 -1
  173. package/dist/browser/runtime.js.map +1 -1
  174. package/dist/browser/styles.css +30 -0
  175. package/dist/browser/workflow-operation-input.d.ts +15 -0
  176. package/dist/browser/workflow-operation-input.d.ts.map +1 -0
  177. package/dist/browser/workflow-operation-input.js +64 -0
  178. package/dist/browser/workflow-operation-input.js.map +1 -0
  179. package/dist/config.d.ts +2 -1
  180. package/dist/config.d.ts.map +1 -1
  181. package/dist/config.js +2 -1
  182. package/dist/config.js.map +1 -1
  183. package/dist/core.d.ts +6 -2
  184. package/dist/core.d.ts.map +1 -1
  185. package/dist/core.js +3 -1
  186. package/dist/core.js.map +1 -1
  187. package/dist/expressions.d.ts +4 -0
  188. package/dist/expressions.d.ts.map +1 -0
  189. package/dist/expressions.js +3 -0
  190. package/dist/expressions.js.map +1 -0
  191. package/dist/field-kit.d.ts +3 -0
  192. package/dist/field-kit.d.ts.map +1 -1
  193. package/dist/field-kit.js +3 -0
  194. package/dist/field-kit.js.map +1 -1
  195. package/dist/nest.d.ts +1 -1
  196. package/dist/nest.d.ts.map +1 -1
  197. package/dist/nest.js.map +1 -1
  198. package/dist/react.d.ts +6 -2
  199. package/dist/react.d.ts.map +1 -1
  200. package/dist/react.js +5 -1
  201. package/dist/react.js.map +1 -1
  202. package/dist/testing.d.ts +1 -1
  203. package/dist/testing.d.ts.map +1 -1
  204. package/dist/testing.js +1 -1
  205. package/dist/testing.js.map +1 -1
  206. package/documentation/administration.md +40 -1
  207. package/documentation/backend.md +189 -3
  208. package/documentation/data-authz.md +72 -2
  209. package/documentation/declarations-cheatsheet.md +11 -1
  210. package/documentation/development.md +7 -0
  211. package/documentation/field-components.md +80 -0
  212. package/documentation/frontend.md +8 -0
  213. package/documentation/getting-started.md +60 -7
  214. package/documentation/managed-concurrency-frontend.md +10 -4
  215. package/documentation/manifest.json +12 -12
  216. package/documentation/testing.md +17 -0
  217. package/documentation/workflow-events.md +403 -9
  218. package/package.json +32 -20
  219. package/releases/2.51.0.json +32 -0
  220. package/releases/2.54.4.json +30 -0
  221. package/releases/2.54.6.json +30 -0
  222. package/releases/2.55.0.json +34 -0
  223. package/releases/2.55.1.json +32 -0
  224. package/releases/2.55.5.json +30 -0
  225. package/releases/2.55.6.json +32 -0
  226. package/releases/2.57.1.json +31 -0
  227. package/releases/2.58.0.json +37 -0
  228. package/releases/2.58.1.json +31 -0
  229. package/releases/2.59.0.json +36 -0
  230. package/releases/2.59.1.json +37 -0
  231. package/skills/manifest.json +1 -1
  232. package/skills/openxiangda-v2/SKILL.md +4 -4
  233. package/skills/openxiangda-v2/references/administration.md +40 -1
  234. package/skills/openxiangda-v2/references/backend.md +189 -3
  235. package/skills/openxiangda-v2/references/data-authz.md +72 -2
  236. package/skills/openxiangda-v2/references/declarations-cheatsheet.md +11 -1
  237. package/skills/openxiangda-v2/references/development.md +7 -0
  238. package/skills/openxiangda-v2/references/field-components.md +80 -0
  239. package/skills/openxiangda-v2/references/frontend.md +8 -0
  240. package/skills/openxiangda-v2/references/getting-started.md +60 -7
  241. package/skills/openxiangda-v2/references/managed-concurrency-frontend.md +10 -4
  242. package/skills/openxiangda-v2/references/testing.md +17 -0
  243. package/skills/openxiangda-v2/references/workflow-events.md +403 -9
  244. package/releases/2.48.1.json +0 -30
  245. package/releases/2.48.2.json +0 -29
@@ -0,0 +1,32 @@
1
+ /** One mounted player owns one transient read. Cancellation prevents late
2
+ * content from creating a URL; every created URL has exactly one disposer. */
3
+ export function startManagedMediaRead(deps) {
4
+ let active = true, url = '';
5
+ const completion = (async () => {
6
+ try {
7
+ const preview = await deps.preview();
8
+ if (!active)
9
+ return;
10
+ if (!preview.canPreview || preview.renderMode !== 'inline' || !['video', 'audio'].includes(preview.previewType))
11
+ throw new Error(preview.unsupportedReason || '当前文件无法播放,请使用附件下载');
12
+ if (!Number.isSafeInteger(preview.file.size) || preview.file.size < 1 || preview.file.size > deps.maxBytes)
13
+ throw new Error('媒体超出当前播放器容量,请下载后播放');
14
+ const blob = await deps.content();
15
+ if (!active)
16
+ return;
17
+ if (blob.size !== preview.file.size)
18
+ throw new Error('媒体内容与平台文件大小不一致,请重新读取');
19
+ url = deps.createUrl(blob);
20
+ deps.ready({ src: url, preview });
21
+ }
22
+ catch (error) {
23
+ if (active)
24
+ deps.failed(error);
25
+ }
26
+ })();
27
+ return { completion, dispose() { active = false; if (url) {
28
+ deps.revokeUrl(url);
29
+ url = '';
30
+ } } };
31
+ }
32
+ //# sourceMappingURL=managed-media-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-media-read.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/managed-media-read.ts"],"names":[],"mappings":"AAEA;8EAC8E;AAC9E,MAAM,UAAU,qBAAqB,CAAC,IAIrC;IACC,IAAI,MAAM,GAAC,IAAI,EAAC,GAAG,GAAC,EAAE,CAAC;IACvB,MAAM,UAAU,GAAC,CAAC,KAAK,IAAE,EAAE;QACzB,IAAG,CAAC;YACF,MAAM,OAAO,GAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,IAAG,CAAC,MAAM;gBAAC,OAAO;YACrD,IAAG,CAAC,OAAO,CAAC,UAAU,IAAE,OAAO,CAAC,UAAU,KAAG,QAAQ,IAAE,CAAC,CAAC,OAAO,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,IAAE,kBAAkB,CAAC,CAAC;YACvK,IAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,IAAE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,QAAQ;gBAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxI,MAAM,IAAI,GAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,IAAG,CAAC,MAAM;gBAAC,OAAO;YAClD,IAAG,IAAI,CAAC,IAAI,KAAG,OAAO,CAAC,IAAI,CAAC,IAAI;gBAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACzE,GAAG,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAAA,IAAI,CAAC,KAAK,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,OAAO,EAAC,CAAC,CAAC;QACzD,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,IAAG,MAAM;gBAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,EAAC,UAAU,EAAC,OAAO,KAAG,MAAM,GAAC,KAAK,CAAC,CAAA,IAAG,GAAG,EAAC,CAAC;YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAAA,GAAG,GAAC,EAAE,CAAC;QAAA,CAAC,CAAA,CAAC,EAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SurfaceField } from '../resource/SurfaceFields';
2
+ type Values = Readonly<Record<string, unknown>>;
3
+ /** User-event-only patch. Callers supply the already visible and writable fields. */
4
+ export declare function resourceReferenceBindingPatch(fields: readonly SurfaceField[], changed: Values, values: Values, previous: Values): Record<string, unknown>;
5
+ export {};
6
+ //# sourceMappingURL=reference-binding-change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-binding-change.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/reference-binding-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,KAAK,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAQhD,qFAAqF;AACrF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,2BAmB/H"}
@@ -0,0 +1,32 @@
1
+ // Source queries use reference identities, not convenience display labels.
2
+ function bindingIdentity(value) {
3
+ if (Array.isArray(value))
4
+ return value.map(bindingIdentity).sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
5
+ if (value && typeof value === 'object' && Object.hasOwn(value, 'value'))
6
+ return value.value;
7
+ return value ?? null;
8
+ }
9
+ /** User-event-only patch. Callers supply the already visible and writable fields. */
10
+ export function resourceReferenceBindingPatch(fields, changed, values, previous) {
11
+ const changedCodes = new Set(Object.keys(changed).filter(code => JSON.stringify(bindingIdentity(values[code])) !== JSON.stringify(bindingIdentity(previous[code]))));
12
+ const patch = {};
13
+ // Each field is cleared at most once, including any downstream dependency.
14
+ for (let pass = 0; pass < fields.length; pass++) {
15
+ let added = false;
16
+ for (const field of fields) {
17
+ if (Object.hasOwn(patch, field.key) || field.source?.clearOnBindingChange !== true ||
18
+ !field.source.filters?.some(filter => 'binding' in filter && changedCodes.has(filter.binding.field)))
19
+ continue;
20
+ const cleared = field.type.endsWith('.multiple') ? [] : undefined;
21
+ patch[field.key] = cleared;
22
+ if (JSON.stringify(bindingIdentity(values[field.key])) !== JSON.stringify(bindingIdentity(cleared))) {
23
+ changedCodes.add(field.key);
24
+ added = true;
25
+ }
26
+ }
27
+ if (!added)
28
+ break;
29
+ }
30
+ return patch;
31
+ }
32
+ //# sourceMappingURL=reference-binding-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-binding-change.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/reference-binding-change.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/H,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QAAE,OAAQ,KAA4B,CAAC,KAAK,CAAC;IACpH,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,6BAA6B,CAAC,MAA+B,EAAE,OAAe,EAAE,MAAc,EAAE,QAAgB;IAC9H,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC9D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI;gBAChF,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,IAAI,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,SAAS;YACjH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACpG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,MAAM;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { DataFieldSourceLaunchBinding, DataRecordEditInput, UserCandidatePage, UserCandidateSearch } from 'openxiangda-contracts/browser';
2
+ export interface WorkflowCandidateBinding {
3
+ taskId: string;
4
+ expectedTaskVersion: number | undefined;
5
+ }
6
+ export type UserCandidateFieldContext = {
7
+ kind: 'native';
8
+ resourceCode: string;
9
+ fieldCode: string;
10
+ operation: 'create';
11
+ launch?: DataFieldSourceLaunchBinding;
12
+ scopeValue?: string;
13
+ } | {
14
+ kind: 'native';
15
+ resourceCode: string;
16
+ fieldCode: string;
17
+ operation: 'update';
18
+ recordId: string;
19
+ expectedRevision: number;
20
+ action?: DataRecordEditInput;
21
+ launch?: DataFieldSourceLaunchBinding;
22
+ } | {
23
+ kind: 'workflow-task';
24
+ taskId: string;
25
+ fieldCode: string;
26
+ expectedRevision: number;
27
+ expectedTaskVersion: number;
28
+ };
29
+ export declare function userCandidateFieldContext(input: {
30
+ resourceCode?: string;
31
+ fieldCode: string;
32
+ operation: 'create' | 'update';
33
+ recordId?: string;
34
+ expectedRevision?: number;
35
+ workflowCandidateBinding?: WorkflowCandidateBinding;
36
+ action?: DataRecordEditInput;
37
+ launch?: DataFieldSourceLaunchBinding;
38
+ requiresSavedScope?: boolean;
39
+ prospectiveScope?: boolean;
40
+ scopeValue?: unknown;
41
+ }): {
42
+ context?: UserCandidateFieldContext;
43
+ error?: string;
44
+ };
45
+ export declare function queryUserCandidateField(context: UserCandidateFieldContext, search: Omit<UserCandidateSearch, 'schemaVersion'>): Promise<UserCandidatePage>;
46
+ export type CandidateSelection = {
47
+ value: string;
48
+ label: string;
49
+ status?: 'valid' | 'invalid';
50
+ };
51
+ /** Invalid names come only from the existing value, never another directory. */
52
+ export declare function reconcileUserCandidateSelection(selected: CandidateSelection[], inspected: UserCandidatePage['selected']): CandidateSelection[];
53
+ export declare function userCandidateError(error: unknown): string;
54
+ //# sourceMappingURL=user-candidate-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-candidate-context.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/user-candidate-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAI/I,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,4BAA4B,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5I;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAAC,MAAM,CAAC,EAAE,4BAA4B,CAAA;CAAE,GACjM;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AAIxH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IAClG,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAAC,MAAM,CAAC,EAAE,4BAA4B,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAClG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAClD,GAAG;IAAE,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA8B1D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAY1J;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC;AAEhG,gFAAgF;AAChF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,kBAAkB,EAAE,CAM9I;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOzD"}
@@ -0,0 +1,70 @@
1
+ import { SCHEMA_VERSIONS } from 'openxiangda-contracts/browser';
2
+ import { queryFieldUserCandidates, queryWorkflowTaskUserCandidates } from '../../platform-client';
3
+ const revision = (value) => Number.isSafeInteger(value) && Number(value) > 0;
4
+ export function userCandidateFieldContext(input) {
5
+ if (input.action && (input.operation !== 'update' || input.launch || input.workflowCandidateBinding ||
6
+ input.action.recordId !== input.recordId || input.action.expectedRevision !== input.expectedRevision))
7
+ return { error: '当前修改资料上下文已变化,请重新打开页面。' };
8
+ const task = input.workflowCandidateBinding;
9
+ if (task) {
10
+ if (!task.taskId || !revision(task.expectedTaskVersion) || !revision(input.expectedRevision))
11
+ return { error: '请刷新任务资料后再选择人员,当前输入已保留。' };
12
+ return { context: { kind: 'workflow-task', taskId: task.taskId, fieldCode: input.fieldCode,
13
+ expectedTaskVersion: task.expectedTaskVersion, expectedRevision: input.expectedRevision } };
14
+ }
15
+ if (!input.resourceCode)
16
+ return { error: '当前字段缺少选人上下文,请重新打开页面。' };
17
+ if (input.operation === 'create') {
18
+ let scopeValue;
19
+ if (input.requiresSavedScope) {
20
+ if (!input.prospectiveScope || !input.launch)
21
+ return { error: '请先保存资料,再选择人员。' };
22
+ const raw = input.scopeValue && typeof input.scopeValue === 'object' && !Array.isArray(input.scopeValue)
23
+ ? input.scopeValue.value : input.scopeValue;
24
+ if (typeof raw !== 'string' || !raw || raw.trim() !== raw || raw.length > 255)
25
+ return { error: '请先完成所属范围资料,再选择人员。' };
26
+ scopeValue = raw;
27
+ }
28
+ return { context: { kind: 'native', operation: 'create', resourceCode: input.resourceCode,
29
+ fieldCode: input.fieldCode, ...(input.launch ? { launch: input.launch } : {}), ...(scopeValue ? { scopeValue } : {}) } };
30
+ }
31
+ if (!input.recordId || !revision(input.expectedRevision))
32
+ return { error: '请刷新已保存的资料后再选择人员,当前输入已保留。' };
33
+ return { context: { kind: 'native', operation: 'update', resourceCode: input.resourceCode,
34
+ fieldCode: input.fieldCode, recordId: input.recordId, expectedRevision: input.expectedRevision,
35
+ ...(input.action ? { action: input.action } : {}),
36
+ ...(input.launch ? { launch: input.launch } : {}) } };
37
+ }
38
+ export function queryUserCandidateField(context, search) {
39
+ const query = { schemaVersion: SCHEMA_VERSIONS.userCandidatesQuery,
40
+ ...(search.keyword ? { keyword: search.keyword } : {}), ...(search.cursor ? { cursor: search.cursor } : {}),
41
+ ...(search.selectedIds ? { selectedIds: search.selectedIds } : {}) };
42
+ if (context.kind === 'workflow-task')
43
+ return queryWorkflowTaskUserCandidates(context.taskId, context.fieldCode, {
44
+ ...query, expectedRevision: context.expectedRevision, expectedTaskVersion: context.expectedTaskVersion,
45
+ });
46
+ return queryFieldUserCandidates(context.resourceCode, context.fieldCode, context.operation === 'create'
47
+ ? { ...query, operation: 'create', ...(context.launch ? { launch: context.launch } : {}), ...(context.scopeValue ? { scopeValue: context.scopeValue } : {}) }
48
+ : { ...query, operation: 'update', recordId: context.recordId, expectedRevision: context.expectedRevision,
49
+ ...(context.action ? { action: context.action } : {}),
50
+ ...(context.launch ? { launch: context.launch } : {}) });
51
+ }
52
+ /** Invalid names come only from the existing value, never another directory. */
53
+ export function reconcileUserCandidateSelection(selected, inspected) {
54
+ const byId = new Map(inspected.map(item => [item.value, item]));
55
+ return selected.map(item => {
56
+ const current = byId.get(item.value);
57
+ return current ? { value: item.value, label: current.status === 'valid' ? current.label : item.label, status: current.status } : item;
58
+ });
59
+ }
60
+ export function userCandidateError(error) {
61
+ const code = error && typeof error === 'object' ? String(error.code || '') : '';
62
+ if (/REVISION|TASK_VERSION|TASK_CONTEXT_CHANGED|HEAD_CHANGED|CURSOR|OWNER|TASK_NOT|NOT_ASSIGNED|CONFLICT/.test(code))
63
+ return '资料或任务已更新,请关闭选择页并刷新资料。当前输入已保留。';
64
+ if (/SAVED_SCOPE|SCOPE_VALUE_REQUIRED/.test(code))
65
+ return '请先保存完整的所属范围,再选择人员。';
66
+ if (/FORBIDDEN|DENIED|UNAUTHORIZED/.test(code))
67
+ return '当前没有读取这些候选人的权限,请刷新页面或联系管理员。';
68
+ return '候选人员读取失败,请重试。当前选择已保留。';
69
+ }
70
+ //# sourceMappingURL=user-candidate-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-candidate-context.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/user-candidate-context.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import { Temporal } from '@js-temporal/polyfill';
2
2
  import { type Dayjs } from 'dayjs';
3
+ import type { DataFieldSurface } from 'openxiangda-contracts/browser';
3
4
  export interface DateTimeConstraints {
4
5
  timeZone?: string;
5
6
  min?: string;
6
7
  max?: string;
7
8
  minuteStep?: number;
9
+ /** Derived from the field declaration, independent of the wall-time step. */
10
+ instantPrecision?: 'minute';
8
11
  }
12
+ export declare function fieldDateTimeConstraints(field: Pick<DataFieldSurface, 'type' | 'timePrecision'>, input: DateTimeConstraints): DateTimeConstraints;
9
13
  export declare function instantText(value: unknown): string;
10
14
  export declare function validateDateTimeConstraints(input: DateTimeConstraints): DateTimeConstraints;
11
15
  export declare function instantToWall(value: unknown, timeZone: string): Temporal.PlainDateTime;
@@ -1 +1 @@
1
- {"version":3,"file":"zoned-date-time.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/zoned-date-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAQ1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,uBAYrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAE7D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAE5E;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,GAAG,KAAK,CAEhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,0BAEvC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAC9E,WAAW,EAAE,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBtE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,mBAAwB,0BAS9E;AAED;2EAC2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;;yBAqBhF,MAAM;yBACN,MAAM,KAAK,MAAM;EAEzC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;;;IAkBnG"}
1
+ {"version":3,"file":"zoned-date-time.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/zoned-date-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,eAAe,CAAC,EAC9F,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,uBAYrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAE7D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAE5E;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,GAAG,KAAK,CAEhE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,0BAEvC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAC9E,WAAW,EAAE,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAmBtE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,mBAAwB,0BAS9E;AAED;2EAC2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;;yBAsBhF,MAAM;yBACN,MAAM,KAAK,MAAM;EAEzC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;;;IAkBnG"}
@@ -5,6 +5,11 @@ import customParseFormat from 'dayjs/plugin/customParseFormat';
5
5
  import { validatePresentationTimeZone } from '../../presentation-time';
6
6
  dayjs.extend(utc);
7
7
  dayjs.extend(customParseFormat);
8
+ export function fieldDateTimeConstraints(field, input) {
9
+ const minute = ['datetime', 'datetime-range'].includes(field.type) && field.timePrecision === 'minute';
10
+ return { ...input, minuteStep: input.minuteStep ?? (minute ? 1 : undefined),
11
+ ...(minute ? { instantPrecision: 'minute' } : {}) };
12
+ }
8
13
  export function instantText(value) {
9
14
  return dayjs.isDayjs(value) ? value.toISOString() : String(value);
10
15
  }
@@ -50,6 +55,8 @@ export function zonedInputResult(value, timeZone, constraints) {
50
55
  value.microsecond !== 0 || value.nanosecond !== 0)) {
51
56
  return { error: `请选择整 ${constraints.minuteStep} 分钟的时间` };
52
57
  }
58
+ if (constraints.instantPrecision === 'minute' && instant.epochNanoseconds % 60000000000n !== 0n)
59
+ return { error: '此时区的时间不能表示精确整分钟,请选择其他日期或时区' };
53
60
  if (constraints.min && Temporal.Instant.compare(instant, Temporal.Instant.from(constraints.min)) < 0)
54
61
  return { error: '时间早于允许的最早时间' };
55
62
  if (constraints.max && Temporal.Instant.compare(instant, Temporal.Instant.from(constraints.max)) > 0)
@@ -81,7 +88,8 @@ export function disabledZonedTime(day, zone, constraints) {
81
88
  if (constraints.minuteStep === undefined || minute % constraints.minuteStep === 0) {
82
89
  try {
83
90
  const at = wallToInstant(day.toPlainDateTime({ hour, minute }), zone).epochNanoseconds;
84
- result = [Math.max(0, min === undefined ? -Infinity : Math.ceil(Number(min - at) / 1e9)), Math.min(constraints.minuteStep === undefined ? 59 : 0, max === undefined ? Infinity : Math.floor(Number(max - at) / 1e9))];
91
+ if (constraints.instantPrecision !== 'minute' || at % 60000000000n === 0n)
92
+ result = [Math.max(0, min === undefined ? -Infinity : Math.ceil(Number(min - at) / 1e9)), Math.min(constraints.minuteStep === undefined ? 59 : 0, max === undefined ? Infinity : Math.floor(Number(max - at) / 1e9))];
85
93
  }
86
94
  catch { /* A DST gap or repeated minute is not selectable. */ }
87
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zoned-date-time.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/zoned-date-time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zoned-date-time.js","sourceRoot":"","sources":["../../../../src/browser/components/platform-fields/zoned-date-time.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratedResourceCrud.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/resource/GeneratedResourceCrud.tsx"],"names":[],"mappings":"AAiFA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAQnF,OAAO,EAAyI,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAClN,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AA0C3E,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":"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,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { ResourceRecordDeletion } from './ResourceRecordDeletion';
2
3
  import { PresentationTime, usePresentationTimeZone } from '../../presentation-time';
3
4
  import { DATA_AUDIT_METADATA_FIELDS, DATA_SYSTEM_SORT_FIELD_CODES, isDataSystemSortField, projectDataResourceView } from 'openxiangda-contracts/browser';
4
5
  import { ExportOutlined, FilterOutlined, PlusOutlined, ReloadOutlined, SearchOutlined, SettingOutlined, SortAscendingOutlined, } from '@ant-design/icons';
@@ -8,12 +9,14 @@ import { Fragment, useEffect, useMemo, useState } from 'react';
8
9
  import { useHref, useNavigate, useParams } from 'react-router-dom';
9
10
  import { MobileResourceListPage, ResourceListPage, } from './StandardResourcePages';
10
11
  import { SurfaceFieldValue, } from './SurfaceFields';
11
- import { createNativeResourceClient, loadResourceListPreference, resetResourceListPreference, saveResourceListPreference, } from '../../platform-client';
12
+ import { createNativeResourceClient, loadResourceListPreference, platformReadErrorMessage, resetResourceListPreference, saveResourceListPreference, } from '../../platform-client';
12
13
  import { useRuntime } from '../../runtime';
13
14
  import { ResourceBatchActions, ResourceImportButton, WorkflowResourceImportButton, } from './ResourceBatchActions';
14
15
  import { isAdminContributionAllowed, useAdminResourceContributions, } from '../../admin-contributions';
15
16
  import { SubtableValueDisplay, } from '../platform-fields/SubtableField';
16
17
  import { selectedSurfaceFields } from './resource-field-selection';
18
+ import { ResourceRecordComments } from './ResourceRecordComments';
19
+ import { ResourceRecordPrintPreview } from './ResourceRecordPrintPreview';
17
20
  import { isGeneratedDetailFieldVisible } from './detail-field-visibility';
18
21
  import { GeneratedResourceFormPage } from './GeneratedResourceForm';
19
22
  import { ResourceListSettings } from './ResourceListSettings';
@@ -26,6 +29,7 @@ import { WorkflowRecordDetailPage, WorkflowSubmissionPage } from '../workflow/St
26
29
  import { RecordDetailFrame, RecordDetailSections, detailTime } from './RecordDetailFrame';
27
30
  import { RecordChangeHistory } from './RecordChangeHistory';
28
31
  import { WorkflowRecordEditor } from '../workflow/WorkflowRecordEditor';
32
+ import { WorkflowRecordHistoryPanel } from '../workflow/WorkflowRecordHistoryPanel';
29
33
  async function exportResourceRows(code, name, surface, fields, query, sorts) {
30
34
  const client = createNativeResourceClient(code, surface);
31
35
  const exported = await client.exportCsv({
@@ -592,6 +596,25 @@ function NativeResourceDetailPage({ definition, paths, variant, recordId, onDism
592
596
  const record = hasReadCapability(definition.capabilities.read) ? query.result : undefined;
593
597
  const detailContributions = (contributions?.detail || []).filter((item) => isAdminContributionAllowed(item, hasCapability));
594
598
  const [auditExpanded, setAuditExpanded] = useState(false);
599
+ const [workflowHistoryExpanded, setWorkflowHistoryExpanded] = useState(false);
600
+ const [commentsExpanded, setCommentsExpanded] = useState(false);
601
+ const commentsRead = definition.recordComments?.read;
602
+ const commentsCreate = definition.recordComments?.create;
603
+ const canReadComments = Boolean(commentsRead?.length &&
604
+ (identity.isAppSuperAdmin || commentsRead.every(code => hasReadCapability(code))));
605
+ const canCreateComments = Boolean(commentsCreate?.length &&
606
+ (identity.isAppSuperAdmin || commentsCreate.every(code => hasCapability(code))));
607
+ const [deleting, setDeleting] = useState(false);
608
+ const deletePolicy = definition.recordDeletion?.delete;
609
+ const deletionVisible = Boolean(record && deletePolicy?.length &&
610
+ (identity.isAppSuperAdmin || hasCapability(definition.capabilities.read) && hasCapability(definition.capabilities.delete) && deletePolicy.every(code => hasCapability(code))));
611
+ const [printing, setPrinting] = useState(false);
612
+ const printRead = definition.recordPrint?.read;
613
+ const printVisible = Boolean(record && printRead?.length &&
614
+ (identity.isAppSuperAdmin || printRead.every(code => hasReadCapability(code))));
615
+ const historyRead = definition.workflowHistory?.read;
616
+ const workflowHistoryVisible = Boolean(record && historyRead?.length &&
617
+ (identity.isAppSuperAdmin || historyRead.every(code => hasReadCapability(code))));
595
618
  const auditVisible = Boolean(record && DATA_AUDIT_METADATA_FIELDS.every(code => Object.prototype.hasOwnProperty.call(record, code)));
596
619
  const readable = (field) => fieldReadable(field, hasReadCapability, identity.isAppSuperAdmin);
597
620
  const fields = selectedSurfaceFields(definition.surface, 'detail').filter(readable);
@@ -606,10 +629,11 @@ function NativeResourceDetailPage({ definition, paths, variant, recordId, onDism
606
629
  const creatorLabel = creator && typeof creator === 'object' ? String(creator.label || creator.displayName || '') : '';
607
630
  const timeZone = usePresentationTimeZone();
608
631
  const createdTime = detailTime(record?.created_at, timeZone);
609
- return _jsx(RecordDetailFrame, { title: `${definition.name}详情`, heading: record && recordTitle, status: statusField && record && record[statusField.key] != null && record[statusField.key] !== '' ? _jsx(Tag, { color: "processing", children: _jsx(SurfaceFieldValue, { field: statusField, value: record[statusField.key] }) }) : undefined, metadata: [creatorLabel, createdTime ? `${createdTime} 创建` : ''].filter(Boolean).join(' · '), updatedAt: record?.updated_at, variant: variant, drawer: Boolean(onDismiss), drawerState: drawerState, newPageHref: newPageHref, onClose: close, onEdit: record ? edit : undefined, busy: editBusy, editing: editing && record ? _jsx(GeneratedResourceFormPage, { definition: definition, paths: paths, variant: variant, recordId: id, mode: "edit", embedded: true, onBusyChange: setEditBusy, onDismiss: () => setEditing(false), onSaved: () => { setEditing(false); void query.query.refetch(); } }) : undefined, children: !hasReadCapability(definition.capabilities.read) ? _jsx(Result, { status: "403", title: "\u5F53\u524D\u5E73\u53F0\u7528\u6237\u65E0\u6B64\u9875\u9762\u6743\u9650" })
632
+ return _jsx(RecordDetailFrame, { title: `${definition.name}详情`, heading: record && recordTitle, status: statusField && record && record[statusField.key] != null && record[statusField.key] !== '' ? _jsx(Tag, { color: "processing", children: _jsx(SurfaceFieldValue, { field: statusField, value: record[statusField.key] }) }) : undefined, metadata: [creatorLabel, createdTime ? `${createdTime} 创建` : ''].filter(Boolean).join(' · '), updatedAt: record?.updated_at, variant: variant, drawer: Boolean(onDismiss), drawerState: drawerState, newPageHref: newPageHref, onClose: close, onEdit: record ? edit : undefined, busy: editBusy, onPrint: printVisible ? () => setPrinting(true) : undefined, onDelete: deletionVisible ? () => setDeleting(true) : undefined, editing: editing && record ? _jsx(GeneratedResourceFormPage, { definition: definition, paths: paths, variant: variant, recordId: id, mode: "edit", embedded: true, onBusyChange: setEditBusy, onDismiss: () => setEditing(false), onSaved: () => { setEditing(false); void query.query.refetch(); } }) : undefined, children: !hasReadCapability(definition.capabilities.read) ? _jsx(Result, { status: "403", title: "\u5F53\u524D\u5E73\u53F0\u7528\u6237\u65E0\u6B64\u9875\u9762\u6743\u9650" })
610
633
  : query.query.isFetching && !record ? _jsx(Spin, {})
611
- : query.query.isError || !record ? _jsx(Alert, { type: "error", title: "\u6570\u636E\u8BFB\u53D6\u5931\u8D25", description: query.query.error?.message || '记录不存在', action: _jsx(Button, { onClick: () => void query.query.refetch(), children: "\u91CD\u8BD5" }) })
634
+ : query.query.isError || !record ? _jsx(Alert, { type: "error", title: "\u6570\u636E\u8BFB\u53D6\u5931\u8D25", description: platformReadErrorMessage(query.query.error, '记录不存在,可能已被删除或当前账号无权查看。'), action: _jsx(Button, { onClick: () => void query.query.refetch(), children: "\u91CD\u8BD5" }) })
612
635
  : _jsxs(_Fragment, { children: [_jsx(RecordDetailSections, { groups: fieldsBySection(definition.surface, 'detail').map(group => ({ ...group, fields: group.fields.filter(readable) })), renderValue: field => field.type === 'subtable' ? _jsx(SubtableValueDisplay, { field: field, mobile: variant === 'mobile', parentRecordId: record.id })
613
- : _jsx(SurfaceFieldValue, { field: field, mobile: variant === 'mobile', resourceCode: definition.code, value: record[field.key] }) }), auditVisible && _jsx(Collapse, { className: "oxa-audit-collapse", activeKey: auditExpanded ? ['audit'] : [], expandIconPlacement: "end", onChange: keys => setAuditExpanded((Array.isArray(keys) ? keys : [keys]).includes('audit')), items: [{ key: 'audit', label: '变更记录', children: auditExpanded ? _jsx(RecordChangeHistory, { resourceCode: definition.code, recordId: record.id, surface: definition.surface, readable: readable }) : null }] }), detailContributions.map(contribution => _jsx(Fragment, { children: contribution.render({ record, resource: definition.code, refresh: () => query.query.refetch() }) }, contribution.code))] }) });
636
+ : _jsx(SurfaceFieldValue, { field: field, mobile: variant === 'mobile', resourceCode: definition.code, value: record[field.key] }) }), deleting && deletionVisible && _jsx(ResourceRecordDeletion, { resourceCode: definition.code, recordId: id, onClose: () => setDeleting(false), onDeleted: () => { onDismiss?.(); navigate(paths.list || paths.fallback); } }), printing && printVisible && _jsx(ResourceRecordPrintPreview, { resourceCode: definition.code, recordId: id, viewCode: definition.viewCode, onClose: () => setPrinting(false) }, id), auditVisible && _jsx(Collapse, { className: "oxa-audit-collapse", activeKey: auditExpanded ? ['audit'] : [], expandIconPlacement: "end", onChange: keys => setAuditExpanded((Array.isArray(keys) ? keys : [keys]).includes('audit')), items: [{ key: 'audit', label: '变更记录', children: auditExpanded ? _jsx(RecordChangeHistory, { resourceCode: definition.code, recordId: record.id, surface: definition.surface, readable: readable }) : null }] }), workflowHistoryVisible && _jsx(Collapse, { className: "oxa-workflow-history-collapse", activeKey: workflowHistoryExpanded ? ['history'] : [], expandIconPlacement: "end", onChange: keys => setWorkflowHistoryExpanded((Array.isArray(keys) ? keys : [keys]).includes('history')), items: [{ key: 'history', label: '流程办理记录', children: workflowHistoryExpanded
637
+ ? _jsx(WorkflowRecordHistoryPanel, { resourceCode: definition.code, recordId: record.id, variant: variant }) : null }] }), (canReadComments || canCreateComments) && _jsx(Collapse, { className: "oxa-record-comments-collapse", activeKey: commentsExpanded ? ['comments'] : [], expandIconPlacement: "end", onChange: keys => setCommentsExpanded((Array.isArray(keys) ? keys : [keys]).includes('comments')), items: [{ key: 'comments', label: '评论', children: _jsx(ResourceRecordComments, { resourceCode: definition.code, recordId: record.id, canRead: canReadComments, canCreate: canCreateComments }) }] }), detailContributions.map(contribution => _jsx(Fragment, { children: contribution.render({ record, resource: definition.code, refresh: () => query.query.refetch() }) }, contribution.code))] }) });
614
638
  }
615
639
  //# sourceMappingURL=GeneratedResourceCrud.js.map