openxiangda 1.0.147 → 1.0.149

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 (32) hide show
  1. package/README.md +10 -0
  2. package/lib/cli.js +191 -3
  3. package/openxiangda-skills/SKILL.md +2 -0
  4. package/openxiangda-skills/references/pages/page-sdk.md +19 -0
  5. package/openxiangda-skills/skills/openxiangda-core/SKILL.md +3 -0
  6. package/openxiangda-skills/skills/openxiangda-form/SKILL.md +24 -0
  7. package/package.json +2 -1
  8. package/packages/sdk/dist/{ProcessPreview-BoblxCUt.d.mts → ProcessPreview-BOCARAvP.d.mts} +9 -1
  9. package/packages/sdk/dist/{ProcessPreview-BoblxCUt.d.ts → ProcessPreview-BOCARAvP.d.ts} +9 -1
  10. package/packages/sdk/dist/components/index.cjs +33 -21
  11. package/packages/sdk/dist/components/index.cjs.map +1 -1
  12. package/packages/sdk/dist/components/index.d.mts +4 -4
  13. package/packages/sdk/dist/components/index.d.ts +4 -4
  14. package/packages/sdk/dist/components/index.mjs +33 -21
  15. package/packages/sdk/dist/components/index.mjs.map +1 -1
  16. package/packages/sdk/dist/{dataManagementApi-BCzfV88G.d.mts → dataManagementApi-CLMqf79O.d.mts} +1 -1
  17. package/packages/sdk/dist/{dataManagementApi-_FFNPv2e.d.ts → dataManagementApi-DhpRKmlp.d.ts} +1 -1
  18. package/packages/sdk/dist/runtime/index.cjs +375 -30
  19. package/packages/sdk/dist/runtime/index.cjs.map +1 -1
  20. package/packages/sdk/dist/runtime/index.d.mts +3 -3
  21. package/packages/sdk/dist/runtime/index.d.ts +3 -3
  22. package/packages/sdk/dist/runtime/index.mjs +377 -32
  23. package/packages/sdk/dist/runtime/index.mjs.map +1 -1
  24. package/packages/sdk/dist/runtime/react.cjs +12 -0
  25. package/packages/sdk/dist/runtime/react.cjs.map +1 -1
  26. package/packages/sdk/dist/runtime/react.d.mts +24 -2
  27. package/packages/sdk/dist/runtime/react.d.ts +24 -2
  28. package/packages/sdk/dist/runtime/react.mjs +12 -0
  29. package/packages/sdk/dist/runtime/react.mjs.map +1 -1
  30. package/templates/openxiangda-react-spa/AGENTS.md +8 -0
  31. package/templates/openxiangda-react-spa/src/pages/defaults/FilePreviewRoutePage.tsx +18 -33
  32. package/templates/sy-lowcode-app-workspace/AGENTS.md +1 -0
@@ -1,9 +1,9 @@
1
- import { d as FormEngineConfig, b as FormSchema, e as FieldBehavior, O as OptionItem, a as FormRuntimeApi, f as FormRuntimeConfig, g as FormAppearanceConfig, V as ValidationPreset, h as ValidationRule, i as FormEffect, c as FormRuntimeApiConfig, j as OptionSourceConfig, P as ProcessStatus, S as StatusMeta, T as TaskStatus, A as ApprovalPermission, k as FormDataDeleteParams, C as ChangeRecordQueryParams, l as ChangeRecordListResponse, m as FormDataQueryParams, n as FormInstanceData, I as InitiatorSelectCandidate, o as InitiatorSelectRequirement, p as ProcessBasicInfo, q as ProcessDefinition, r as ProcessTask, s as ReturnableNodeResult, t as ReturnableNode, u as ViewPermissionQueryParams, v as ViewPermissionSummary, w as ApproveParams, x as PreviewParams, y as ProcessRoute, z as ResubmitParams, B as ReturnParams, D as SaveTaskParams, E as TransferParams, W as WithdrawParams, G as TextFieldProps, N as NumberFieldProps, H as TextAreaFieldProps, J as SelectFieldProps, M as MultiSelectFieldProps, K as RadioFieldProps, L as CheckboxFieldProps, Q as DateFieldProps, U as CascadeDateFieldProps, X as AttachmentFieldProps, Y as ImageFieldProps, Z as SubFormFieldProps, _ as UserSelectFieldProps, $ as DepartmentSelectFieldProps, a0 as CascadeSelectFieldProps, a1 as AddressFieldProps, a2 as AssociationFormFieldProps, a3 as EditorFieldProps, a4 as EditorChoiceOption, a5 as SerialNumberFieldProps, a6 as LocationFieldProps, a7 as DigitalSignatureFieldProps, a8 as JSONFieldProps, a9 as ProcessAction, aa as InitiatorSelectedApprovers, ab as ReturnPolicy, ac as ChangeRecord, ad as StandardFormPageMode, ae as LowcodePageSchema } from '../ProcessPreview-BoblxCUt.mjs';
2
- export { af as AddressValue, ag as ApprovalActionType, ah as ApprovalTimeline, ai as ApprovalTimelineProps, aj as AssociationFormConfig, ak as AssociationValue, al as AttachmentImageVariants, am as AttachmentItem, an as BaseFieldProps, ao as BaseLayoutNode, ap as DataFilter, aq as DataLinkageCondition, ar as DataLinkageConfig, as as DateRangeRestriction, at as DateRestrictionConfig, au as DateShortcutConfig, av as DateShortcutType, aw as DefaultValueLinkageConfig, ax as DepartmentSearchParams, ay as DepartmentSearchResult, az as DepartmentSearchScope, aA as DepartmentTreeNode, aB as DigitalSignatureValue, aC as EditorToolbarAction, F as FieldDefinition, aD as FieldLayoutNode, aE as FieldValueSyncConfig, aF as FormEffectAction, aG as FormEffectCondition, aH as FormEffectConditionOperator, aI as FormEngineMode, aJ as FormLayoutNode, aK as FormSection, aL as FormSectionProps, aM as FormSubmitBehavior, aN as FormTemplateConfig, aO as GridLayoutCell, aP as GridLayoutNode, aQ as ImageCompressionConfig, aR as ImageCompressionVariantConfig, aS as ImageVariant, aT as InitiatorSelectScope, aU as LayoutVisibleWhen, aV as LinkedFormOptionConfig, aW as LocationValue, aX as LowcodePageMeta, aY as LowcodePageNode, aZ as LowcodePageNodeType, a_ as OptionSourceType, a$ as PeopleShortcutConfig, b0 as PeopleShortcutType, b1 as ProcessNodeType, b2 as ProcessPreview, b3 as ProcessPreviewProps, b4 as RuntimeAuthHeadersProvider, b5 as RuntimeDataQueryParams, b6 as RuntimeDataQueryResult, b7 as RuntimeRequestConfig, R as RuntimeResponse, b8 as RuntimeUploadOptions, b9 as RuntimeUploadProvider, ba as SectionLayoutNode, bb as SignaturePoint, bc as StepLayoutItem, bd as StepsLayoutNode, be as SubFormColumn, bf as TabLayoutItem, bg as TabsLayoutNode, bh as TextShortcutConfig, bi as TextShortcutType, bj as UserDisplayFormat, bk as UserItem } from '../ProcessPreview-BoblxCUt.mjs';
1
+ import { d as FormEngineConfig, b as FormSchema, e as FieldBehavior, O as OptionItem, a as FormRuntimeApi, f as FormRuntimeConfig, g as FormAppearanceConfig, V as ValidationPreset, h as ValidationRule, i as FormEffect, c as FormRuntimeApiConfig, j as OptionSourceConfig, P as ProcessStatus, S as StatusMeta, T as TaskStatus, A as ApprovalPermission, k as FormDataDeleteParams, C as ChangeRecordQueryParams, l as ChangeRecordListResponse, m as FormDataQueryParams, n as FormInstanceData, I as InitiatorSelectCandidate, o as InitiatorSelectRequirement, p as ProcessBasicInfo, q as ProcessDefinition, r as ProcessTask, s as ReturnableNodeResult, t as ReturnableNode, u as ViewPermissionQueryParams, v as ViewPermissionSummary, w as ApproveParams, x as PreviewParams, y as ProcessRoute, z as ResubmitParams, B as ReturnParams, D as SaveTaskParams, E as TransferParams, W as WithdrawParams, G as TextFieldProps, N as NumberFieldProps, H as TextAreaFieldProps, J as SelectFieldProps, M as MultiSelectFieldProps, K as RadioFieldProps, L as CheckboxFieldProps, Q as DateFieldProps, U as CascadeDateFieldProps, X as AttachmentFieldProps, Y as ImageFieldProps, Z as SubFormFieldProps, _ as UserSelectFieldProps, $ as DepartmentSelectFieldProps, a0 as CascadeSelectFieldProps, a1 as AddressFieldProps, a2 as AssociationFormFieldProps, a3 as EditorFieldProps, a4 as EditorChoiceOption, a5 as SerialNumberFieldProps, a6 as LocationFieldProps, a7 as DigitalSignatureFieldProps, a8 as JSONFieldProps, a9 as ProcessAction, aa as InitiatorSelectedApprovers, ab as ReturnPolicy, ac as ChangeRecord, ad as StandardFormPageMode, ae as LowcodePageSchema } from '../ProcessPreview-BOCARAvP.mjs';
2
+ export { af as AddressValue, ag as ApprovalActionType, ah as ApprovalTimeline, ai as ApprovalTimelineProps, aj as AssociationFormConfig, ak as AssociationValue, al as AttachmentImageVariants, am as AttachmentItem, an as BaseFieldProps, ao as BaseLayoutNode, ap as DataFilter, aq as DataLinkageCondition, ar as DataLinkageConfig, as as DateRangeRestriction, at as DateRestrictionConfig, au as DateShortcutConfig, av as DateShortcutType, aw as DefaultValueLinkageConfig, ax as DepartmentSearchParams, ay as DepartmentSearchResult, az as DepartmentSearchScope, aA as DepartmentTreeNode, aB as DigitalSignatureValue, aC as EditorToolbarAction, F as FieldDefinition, aD as FieldLayoutNode, aE as FieldValueSyncConfig, aF as FormEffectAction, aG as FormEffectCondition, aH as FormEffectConditionOperator, aI as FormEngineMode, aJ as FormLayoutNode, aK as FormSection, aL as FormSectionProps, aM as FormSubmitBehavior, aN as FormTemplateConfig, aO as GridLayoutCell, aP as GridLayoutNode, aQ as ImageCompressionConfig, aR as ImageCompressionVariantConfig, aS as ImageVariant, aT as InitiatorSelectScope, aU as LayoutVisibleWhen, aV as LinkedFormOptionConfig, aW as LocationValue, aX as LowcodePageMeta, aY as LowcodePageNode, aZ as LowcodePageNodeType, a_ as OptionSourceType, a$ as PeopleShortcutConfig, b0 as PeopleShortcutType, b1 as ProcessNodeType, b2 as ProcessPreview, b3 as ProcessPreviewProps, b4 as RuntimeAuthHeadersProvider, b5 as RuntimeDataQueryParams, b6 as RuntimeDataQueryResult, b7 as RuntimeRequestConfig, R as RuntimeResponse, b8 as RuntimeUploadOptions, b9 as RuntimeUploadProvider, ba as SectionLayoutNode, bb as SignaturePoint, bc as StepLayoutItem, bd as StepsLayoutNode, be as SubFormColumn, bf as TabLayoutItem, bg as TabsLayoutNode, bh as TextShortcutConfig, bi as TextShortcutType, bj as UserDisplayFormat, bk as UserItem } from '../ProcessPreview-BOCARAvP.mjs';
3
3
  import * as React from 'react';
4
4
  import React__default from 'react';
5
- import { D as DataManagementConfigScope, a as DataManagementConfig, F as FormActionPermission } from '../dataManagementApi-BCzfV88G.mjs';
6
- export { b as DataManagementDensity, c as DataManagementField, d as DataManagementFilterGroup, f as DataManagementFilterRule, g as DataManagementListResult, h as DataManagementQuery, i as DataManagementSort, j as advancedSearchDataManagement, k as batchApproveDataManagementRows, l as buildFilterPayload, m as deleteDataManagementRows, n as downloadDataManagementImportTemplate, o as exportDataManagementRows, p as getDataManagementConfig, q as getDataManagementSchema, r as getDataManagementTransferRecords, s as getSystemFieldsForFormType, t as importDataManagementRows, u as importPreviewDataManagementRows, v as normalizeColumnConfig, w as normalizeDataManagementFields, x as normalizeDataManagementList, y as saveDataManagementConfig } from '../dataManagementApi-BCzfV88G.mjs';
5
+ import { D as DataManagementConfigScope, a as DataManagementConfig, F as FormActionPermission } from '../dataManagementApi-CLMqf79O.mjs';
6
+ export { b as DataManagementDensity, c as DataManagementField, d as DataManagementFilterGroup, f as DataManagementFilterRule, g as DataManagementListResult, h as DataManagementQuery, i as DataManagementSort, j as advancedSearchDataManagement, k as batchApproveDataManagementRows, l as buildFilterPayload, m as deleteDataManagementRows, n as downloadDataManagementImportTemplate, o as exportDataManagementRows, p as getDataManagementConfig, q as getDataManagementSchema, r as getDataManagementTransferRecords, s as getSystemFieldsForFormType, t as importDataManagementRows, u as importPreviewDataManagementRows, v as normalizeColumnConfig, w as normalizeDataManagementFields, x as normalizeDataManagementList, y as saveDataManagementConfig } from '../dataManagementApi-CLMqf79O.mjs';
7
7
 
8
8
  interface FormContextValue {
9
9
  mode: FormEngineConfig['mode'];
@@ -1,9 +1,9 @@
1
- import { d as FormEngineConfig, b as FormSchema, e as FieldBehavior, O as OptionItem, a as FormRuntimeApi, f as FormRuntimeConfig, g as FormAppearanceConfig, V as ValidationPreset, h as ValidationRule, i as FormEffect, c as FormRuntimeApiConfig, j as OptionSourceConfig, P as ProcessStatus, S as StatusMeta, T as TaskStatus, A as ApprovalPermission, k as FormDataDeleteParams, C as ChangeRecordQueryParams, l as ChangeRecordListResponse, m as FormDataQueryParams, n as FormInstanceData, I as InitiatorSelectCandidate, o as InitiatorSelectRequirement, p as ProcessBasicInfo, q as ProcessDefinition, r as ProcessTask, s as ReturnableNodeResult, t as ReturnableNode, u as ViewPermissionQueryParams, v as ViewPermissionSummary, w as ApproveParams, x as PreviewParams, y as ProcessRoute, z as ResubmitParams, B as ReturnParams, D as SaveTaskParams, E as TransferParams, W as WithdrawParams, G as TextFieldProps, N as NumberFieldProps, H as TextAreaFieldProps, J as SelectFieldProps, M as MultiSelectFieldProps, K as RadioFieldProps, L as CheckboxFieldProps, Q as DateFieldProps, U as CascadeDateFieldProps, X as AttachmentFieldProps, Y as ImageFieldProps, Z as SubFormFieldProps, _ as UserSelectFieldProps, $ as DepartmentSelectFieldProps, a0 as CascadeSelectFieldProps, a1 as AddressFieldProps, a2 as AssociationFormFieldProps, a3 as EditorFieldProps, a4 as EditorChoiceOption, a5 as SerialNumberFieldProps, a6 as LocationFieldProps, a7 as DigitalSignatureFieldProps, a8 as JSONFieldProps, a9 as ProcessAction, aa as InitiatorSelectedApprovers, ab as ReturnPolicy, ac as ChangeRecord, ad as StandardFormPageMode, ae as LowcodePageSchema } from '../ProcessPreview-BoblxCUt.js';
2
- export { af as AddressValue, ag as ApprovalActionType, ah as ApprovalTimeline, ai as ApprovalTimelineProps, aj as AssociationFormConfig, ak as AssociationValue, al as AttachmentImageVariants, am as AttachmentItem, an as BaseFieldProps, ao as BaseLayoutNode, ap as DataFilter, aq as DataLinkageCondition, ar as DataLinkageConfig, as as DateRangeRestriction, at as DateRestrictionConfig, au as DateShortcutConfig, av as DateShortcutType, aw as DefaultValueLinkageConfig, ax as DepartmentSearchParams, ay as DepartmentSearchResult, az as DepartmentSearchScope, aA as DepartmentTreeNode, aB as DigitalSignatureValue, aC as EditorToolbarAction, F as FieldDefinition, aD as FieldLayoutNode, aE as FieldValueSyncConfig, aF as FormEffectAction, aG as FormEffectCondition, aH as FormEffectConditionOperator, aI as FormEngineMode, aJ as FormLayoutNode, aK as FormSection, aL as FormSectionProps, aM as FormSubmitBehavior, aN as FormTemplateConfig, aO as GridLayoutCell, aP as GridLayoutNode, aQ as ImageCompressionConfig, aR as ImageCompressionVariantConfig, aS as ImageVariant, aT as InitiatorSelectScope, aU as LayoutVisibleWhen, aV as LinkedFormOptionConfig, aW as LocationValue, aX as LowcodePageMeta, aY as LowcodePageNode, aZ as LowcodePageNodeType, a_ as OptionSourceType, a$ as PeopleShortcutConfig, b0 as PeopleShortcutType, b1 as ProcessNodeType, b2 as ProcessPreview, b3 as ProcessPreviewProps, b4 as RuntimeAuthHeadersProvider, b5 as RuntimeDataQueryParams, b6 as RuntimeDataQueryResult, b7 as RuntimeRequestConfig, R as RuntimeResponse, b8 as RuntimeUploadOptions, b9 as RuntimeUploadProvider, ba as SectionLayoutNode, bb as SignaturePoint, bc as StepLayoutItem, bd as StepsLayoutNode, be as SubFormColumn, bf as TabLayoutItem, bg as TabsLayoutNode, bh as TextShortcutConfig, bi as TextShortcutType, bj as UserDisplayFormat, bk as UserItem } from '../ProcessPreview-BoblxCUt.js';
1
+ import { d as FormEngineConfig, b as FormSchema, e as FieldBehavior, O as OptionItem, a as FormRuntimeApi, f as FormRuntimeConfig, g as FormAppearanceConfig, V as ValidationPreset, h as ValidationRule, i as FormEffect, c as FormRuntimeApiConfig, j as OptionSourceConfig, P as ProcessStatus, S as StatusMeta, T as TaskStatus, A as ApprovalPermission, k as FormDataDeleteParams, C as ChangeRecordQueryParams, l as ChangeRecordListResponse, m as FormDataQueryParams, n as FormInstanceData, I as InitiatorSelectCandidate, o as InitiatorSelectRequirement, p as ProcessBasicInfo, q as ProcessDefinition, r as ProcessTask, s as ReturnableNodeResult, t as ReturnableNode, u as ViewPermissionQueryParams, v as ViewPermissionSummary, w as ApproveParams, x as PreviewParams, y as ProcessRoute, z as ResubmitParams, B as ReturnParams, D as SaveTaskParams, E as TransferParams, W as WithdrawParams, G as TextFieldProps, N as NumberFieldProps, H as TextAreaFieldProps, J as SelectFieldProps, M as MultiSelectFieldProps, K as RadioFieldProps, L as CheckboxFieldProps, Q as DateFieldProps, U as CascadeDateFieldProps, X as AttachmentFieldProps, Y as ImageFieldProps, Z as SubFormFieldProps, _ as UserSelectFieldProps, $ as DepartmentSelectFieldProps, a0 as CascadeSelectFieldProps, a1 as AddressFieldProps, a2 as AssociationFormFieldProps, a3 as EditorFieldProps, a4 as EditorChoiceOption, a5 as SerialNumberFieldProps, a6 as LocationFieldProps, a7 as DigitalSignatureFieldProps, a8 as JSONFieldProps, a9 as ProcessAction, aa as InitiatorSelectedApprovers, ab as ReturnPolicy, ac as ChangeRecord, ad as StandardFormPageMode, ae as LowcodePageSchema } from '../ProcessPreview-BOCARAvP.js';
2
+ export { af as AddressValue, ag as ApprovalActionType, ah as ApprovalTimeline, ai as ApprovalTimelineProps, aj as AssociationFormConfig, ak as AssociationValue, al as AttachmentImageVariants, am as AttachmentItem, an as BaseFieldProps, ao as BaseLayoutNode, ap as DataFilter, aq as DataLinkageCondition, ar as DataLinkageConfig, as as DateRangeRestriction, at as DateRestrictionConfig, au as DateShortcutConfig, av as DateShortcutType, aw as DefaultValueLinkageConfig, ax as DepartmentSearchParams, ay as DepartmentSearchResult, az as DepartmentSearchScope, aA as DepartmentTreeNode, aB as DigitalSignatureValue, aC as EditorToolbarAction, F as FieldDefinition, aD as FieldLayoutNode, aE as FieldValueSyncConfig, aF as FormEffectAction, aG as FormEffectCondition, aH as FormEffectConditionOperator, aI as FormEngineMode, aJ as FormLayoutNode, aK as FormSection, aL as FormSectionProps, aM as FormSubmitBehavior, aN as FormTemplateConfig, aO as GridLayoutCell, aP as GridLayoutNode, aQ as ImageCompressionConfig, aR as ImageCompressionVariantConfig, aS as ImageVariant, aT as InitiatorSelectScope, aU as LayoutVisibleWhen, aV as LinkedFormOptionConfig, aW as LocationValue, aX as LowcodePageMeta, aY as LowcodePageNode, aZ as LowcodePageNodeType, a_ as OptionSourceType, a$ as PeopleShortcutConfig, b0 as PeopleShortcutType, b1 as ProcessNodeType, b2 as ProcessPreview, b3 as ProcessPreviewProps, b4 as RuntimeAuthHeadersProvider, b5 as RuntimeDataQueryParams, b6 as RuntimeDataQueryResult, b7 as RuntimeRequestConfig, R as RuntimeResponse, b8 as RuntimeUploadOptions, b9 as RuntimeUploadProvider, ba as SectionLayoutNode, bb as SignaturePoint, bc as StepLayoutItem, bd as StepsLayoutNode, be as SubFormColumn, bf as TabLayoutItem, bg as TabsLayoutNode, bh as TextShortcutConfig, bi as TextShortcutType, bj as UserDisplayFormat, bk as UserItem } from '../ProcessPreview-BOCARAvP.js';
3
3
  import * as React from 'react';
4
4
  import React__default from 'react';
5
- import { D as DataManagementConfigScope, a as DataManagementConfig, F as FormActionPermission } from '../dataManagementApi-_FFNPv2e.js';
6
- export { b as DataManagementDensity, c as DataManagementField, d as DataManagementFilterGroup, f as DataManagementFilterRule, g as DataManagementListResult, h as DataManagementQuery, i as DataManagementSort, j as advancedSearchDataManagement, k as batchApproveDataManagementRows, l as buildFilterPayload, m as deleteDataManagementRows, n as downloadDataManagementImportTemplate, o as exportDataManagementRows, p as getDataManagementConfig, q as getDataManagementSchema, r as getDataManagementTransferRecords, s as getSystemFieldsForFormType, t as importDataManagementRows, u as importPreviewDataManagementRows, v as normalizeColumnConfig, w as normalizeDataManagementFields, x as normalizeDataManagementList, y as saveDataManagementConfig } from '../dataManagementApi-_FFNPv2e.js';
5
+ import { D as DataManagementConfigScope, a as DataManagementConfig, F as FormActionPermission } from '../dataManagementApi-DhpRKmlp.js';
6
+ export { b as DataManagementDensity, c as DataManagementField, d as DataManagementFilterGroup, f as DataManagementFilterRule, g as DataManagementListResult, h as DataManagementQuery, i as DataManagementSort, j as advancedSearchDataManagement, k as batchApproveDataManagementRows, l as buildFilterPayload, m as deleteDataManagementRows, n as downloadDataManagementImportTemplate, o as exportDataManagementRows, p as getDataManagementConfig, q as getDataManagementSchema, r as getDataManagementTransferRecords, s as getSystemFieldsForFormType, t as importDataManagementRows, u as importPreviewDataManagementRows, v as normalizeColumnConfig, w as normalizeDataManagementFields, x as normalizeDataManagementList, y as saveDataManagementConfig } from '../dataManagementApi-DhpRKmlp.js';
7
7
 
8
8
  interface FormContextValue {
9
9
  mode: FormEngineConfig['mode'];
@@ -3172,6 +3172,11 @@ function canPreview(item) {
3172
3172
  const ext = getFileExtension(item.name);
3173
3173
  return isImageFile(item.name, item.contentType) || ["mp4", "webm", "ogg", "mov", "m4v"].includes(ext) || PREVIEW_PAGE_EXTENSIONS.includes(ext);
3174
3174
  }
3175
+ function appendTicketIfMissing(url, ticket) {
3176
+ if (!url || !ticket || /[?&]ticket=/.test(url)) return url;
3177
+ const separator = url.includes("?") ? "&" : "?";
3178
+ return `${url}${separator}ticket=${encodeURIComponent(ticket)}`;
3179
+ }
3175
3180
  function AttachmentFieldPC({
3176
3181
  fieldId,
3177
3182
  behavior,
@@ -3287,16 +3292,15 @@ function AttachmentFieldPC({
3287
3292
  item.bucketName || bucketName,
3288
3293
  item.objectName,
3289
3294
  item.name,
3290
- "preview"
3295
+ "preview",
3296
+ { appType: item.appType || config.appType }
3291
3297
  );
3292
3298
  const ticketValue = typeof ticket === "string" ? { previewUrl: ticket } : ticket;
3293
- if (ticketValue?.previewPageUrl && ticketValue?.ticket) {
3294
- const separator = ticketValue.previewPageUrl.includes("?") ? "&" : "?";
3295
- return `${ticketValue.previewPageUrl}${separator}ticket=${encodeURIComponent(ticketValue.ticket)}`;
3299
+ if (ticketValue?.previewPageUrl) {
3300
+ return appendTicketIfMissing(ticketValue.previewPageUrl, ticketValue.ticket);
3296
3301
  }
3297
3302
  if (ticketValue?.ticket && PREVIEW_PAGE_EXTENSIONS.includes(getFileExtension(item.name))) {
3298
- const separator = previewPagePath.includes("?") ? "&" : "?";
3299
- return `${previewPagePath}${separator}ticket=${encodeURIComponent(ticketValue.ticket)}`;
3303
+ return appendTicketIfMissing(previewPagePath, ticketValue.ticket);
3300
3304
  }
3301
3305
  return ticketValue?.previewUrl || ticketValue?.url || "";
3302
3306
  }
@@ -3538,6 +3542,11 @@ function canPreview2(item) {
3538
3542
  const ext = getFileExtension(item.name);
3539
3543
  return isImageFile(item.name, item.contentType) || ["mp4", "webm", "ogg", "mov", "m4v"].includes(ext) || PREVIEW_PAGE_EXTENSIONS2.includes(ext);
3540
3544
  }
3545
+ function appendTicketIfMissing2(url, ticket) {
3546
+ if (!url || !ticket || /[?&]ticket=/.test(url)) return url;
3547
+ const separator = url.includes("?") ? "&" : "?";
3548
+ return `${url}${separator}ticket=${encodeURIComponent(ticket)}`;
3549
+ }
3541
3550
  function AttachmentFieldMobile({
3542
3551
  fieldId,
3543
3552
  behavior,
@@ -3686,16 +3695,15 @@ function AttachmentFieldMobile({
3686
3695
  item.bucketName || bucketName,
3687
3696
  item.objectName,
3688
3697
  item.name,
3689
- "preview"
3698
+ "preview",
3699
+ { appType: item.appType || config.appType }
3690
3700
  );
3691
3701
  const ticketValue = typeof ticket === "string" ? { previewUrl: ticket } : ticket;
3692
- if (ticketValue?.previewPageUrl && ticketValue?.ticket) {
3693
- const separator = ticketValue.previewPageUrl.includes("?") ? "&" : "?";
3694
- return `${ticketValue.previewPageUrl}${separator}ticket=${encodeURIComponent(ticketValue.ticket)}`;
3702
+ if (ticketValue?.previewPageUrl) {
3703
+ return appendTicketIfMissing2(ticketValue.previewPageUrl, ticketValue.ticket);
3695
3704
  }
3696
3705
  if (ticketValue?.ticket && PREVIEW_PAGE_EXTENSIONS2.includes(getFileExtension(item.name))) {
3697
- const separator = previewPagePath.includes("?") ? "&" : "?";
3698
- return `${previewPagePath}${separator}ticket=${encodeURIComponent(ticketValue.ticket)}`;
3706
+ return appendTicketIfMissing2(previewPagePath, ticketValue.ticket);
3699
3707
  }
3700
3708
  return ticketValue?.previewUrl || ticketValue?.url || "";
3701
3709
  }
@@ -3826,6 +3834,11 @@ function canPreview3(item) {
3826
3834
  const ext = getFileExtension(item.name);
3827
3835
  return isImageFile(item.name, item.contentType) || ["mp4", "webm", "ogg", "mov", "m4v"].includes(ext) || PREVIEW_PAGE_EXTENSIONS3.includes(ext);
3828
3836
  }
3837
+ function appendTicketIfMissing3(url, ticket) {
3838
+ if (!url || !ticket || /[?&]ticket=/.test(url)) return url;
3839
+ const separator = url.includes("?") ? "&" : "?";
3840
+ return `${url}${separator}ticket=${encodeURIComponent(ticket)}`;
3841
+ }
3829
3842
  function AttachmentFieldReadonly({
3830
3843
  fieldId,
3831
3844
  readonlyClassName,
@@ -3836,7 +3849,7 @@ function AttachmentFieldReadonly({
3836
3849
  showFileTypeBadge = false,
3837
3850
  previewPagePath = "/file-preview"
3838
3851
  }) {
3839
- const { formData, api } = useFormContext();
3852
+ const { formData, api, config } = useFormContext();
3840
3853
  const { isMobile } = useDeviceDetect();
3841
3854
  const value = formData[fieldId] ?? [];
3842
3855
  if (value.length === 0) {
@@ -3861,15 +3874,14 @@ function AttachmentFieldReadonly({
3861
3874
  item.bucketName || bucketName,
3862
3875
  item.objectName,
3863
3876
  item.name,
3864
- "preview"
3877
+ "preview",
3878
+ { appType: item.appType || config.appType }
3865
3879
  );
3866
3880
  const ticketValue = typeof ticket === "string" ? { previewUrl: ticket } : ticket;
3867
- if (ticketValue?.previewPageUrl && ticketValue?.ticket) {
3868
- const separator = ticketValue.previewPageUrl.includes("?") ? "&" : "?";
3869
- url = `${ticketValue.previewPageUrl}${separator}ticket=${encodeURIComponent(ticketValue.ticket)}`;
3881
+ if (ticketValue?.previewPageUrl) {
3882
+ url = appendTicketIfMissing3(ticketValue.previewPageUrl, ticketValue.ticket);
3870
3883
  } else if (ticketValue?.ticket && PREVIEW_PAGE_EXTENSIONS3.includes(getFileExtension(item.name))) {
3871
- const separator = previewPagePath.includes("?") ? "&" : "?";
3872
- url = `${previewPagePath}${separator}ticket=${encodeURIComponent(ticketValue.ticket)}`;
3884
+ url = appendTicketIfMissing3(previewPagePath, ticketValue.ticket);
3873
3885
  } else {
3874
3886
  url = getTicketUrl(ticketValue, url);
3875
3887
  }
@@ -10703,11 +10715,11 @@ function createFormRuntimeApi(config) {
10703
10715
  });
10704
10716
  return normalizeFileTicketResult(baseUrl, response.data || response.result);
10705
10717
  },
10706
- createFileAccessTicket: async (bucketName, objectName, fileName, purpose = "preview") => {
10718
+ createFileAccessTicket: async (bucketName, objectName, fileName, purpose = "preview", options = {}) => {
10707
10719
  const response = await request({
10708
10720
  url: "/file/access-ticket",
10709
10721
  method: "post",
10710
- data: { bucketName, objectName, fileName, purpose }
10722
+ data: { bucketName, objectName, fileName, purpose, appType: options.appType }
10711
10723
  });
10712
10724
  return normalizeFileTicketResult(baseUrl, response.data || response.result);
10713
10725
  },