weaver-e10-builder 1.5.15 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +4 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +37 -17
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-ebuilder-scope.d.ts +21 -0
- package/dist/commands/form-ebuilder-scope.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-scope.js +41 -8
- package/dist/commands/form-ebuilder-scope.js.map +1 -1
- package/dist/commands/form-layout-code-reviewed.d.ts +3 -0
- package/dist/commands/form-layout-code-reviewed.d.ts.map +1 -0
- package/dist/commands/form-layout-code-reviewed.js +61 -0
- package/dist/commands/form-layout-code-reviewed.js.map +1 -0
- package/dist/commands/form-layout-describe.d.ts +3 -0
- package/dist/commands/form-layout-describe.d.ts.map +1 -0
- package/dist/commands/form-layout-describe.js +58 -0
- package/dist/commands/form-layout-describe.js.map +1 -0
- package/dist/commands/form-layout-diff.d.ts +3 -0
- package/dist/commands/form-layout-diff.d.ts.map +1 -0
- package/dist/commands/form-layout-diff.js +48 -0
- package/dist/commands/form-layout-diff.js.map +1 -0
- package/dist/commands/form-layout-document.d.ts +3 -0
- package/dist/commands/form-layout-document.d.ts.map +1 -0
- package/dist/commands/form-layout-document.js +81 -0
- package/dist/commands/form-layout-document.js.map +1 -0
- package/dist/commands/form-layout-edit.d.ts +3 -0
- package/dist/commands/form-layout-edit.d.ts.map +1 -0
- package/dist/commands/form-layout-edit.js +51 -0
- package/dist/commands/form-layout-edit.js.map +1 -0
- package/dist/commands/form-layout-init-reviewed.d.ts +3 -0
- package/dist/commands/form-layout-init-reviewed.d.ts.map +1 -0
- package/dist/commands/form-layout-init-reviewed.js +78 -0
- package/dist/commands/form-layout-init-reviewed.js.map +1 -0
- package/dist/commands/form-layout-restore.d.ts.map +1 -1
- package/dist/commands/form-layout-restore.js +23 -0
- package/dist/commands/form-layout-restore.js.map +1 -1
- package/dist/commands/form-layout-template-catalog.d.ts +3 -0
- package/dist/commands/form-layout-template-catalog.d.ts.map +1 -0
- package/dist/commands/form-layout-template-catalog.js +45 -0
- package/dist/commands/form-layout-template-catalog.js.map +1 -0
- package/dist/commands/form-list-custom.d.ts +5 -0
- package/dist/commands/form-list-custom.d.ts.map +1 -0
- package/dist/commands/form-list-custom.js +24 -0
- package/dist/commands/form-list-custom.js.map +1 -0
- package/dist/commands/form-list-search-group.d.ts.map +1 -1
- package/dist/commands/form-list-search-group.js +101 -7
- package/dist/commands/form-list-search-group.js.map +1 -1
- package/dist/commands/form-list.d.ts.map +1 -1
- package/dist/commands/form-list.js +45 -1
- package/dist/commands/form-list.js.map +1 -1
- package/dist/commands/form-permission.d.ts.map +1 -1
- package/dist/commands/form-permission.js +10 -8
- package/dist/commands/form-permission.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +87 -8
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +98 -1
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/report-cell.d.ts +3 -0
- package/dist/commands/report-cell.d.ts.map +1 -0
- package/dist/commands/report-cell.js +365 -0
- package/dist/commands/report-cell.js.map +1 -0
- package/dist/commands/wf-form.d.ts +2 -0
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +10 -9
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-base-command.js +1 -1
- package/dist/commands/workflow-base-command.js.map +1 -1
- package/dist/commands/workflow-basic-info.d.ts +5 -0
- package/dist/commands/workflow-basic-info.d.ts.map +1 -0
- package/dist/commands/workflow-basic-info.js +47 -0
- package/dist/commands/workflow-basic-info.js.map +1 -0
- package/dist/commands/workflow-create-workflow.d.ts.map +1 -1
- package/dist/commands/workflow-create-workflow.js +49 -83
- package/dist/commands/workflow-create-workflow.js.map +1 -1
- package/dist/commands/workflow-function-settings.d.ts.map +1 -1
- package/dist/commands/workflow-function-settings.js +3 -2
- package/dist/commands/workflow-function-settings.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +19 -37
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +12 -5
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.js +5 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.d.ts +6 -1
- package/dist/services/actionflow/components/action_eb_delete.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.js +23 -5
- package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete_compiler.js +22 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +13 -4
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +9 -2
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/date_trigger.js +2 -2
- package/dist/services/actionflow/components/date_trigger.js.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +11 -10
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/event_button.js +1 -1
- package/dist/services/actionflow/components/event_button.js.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts +29 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.js +67 -3
- package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
- package/dist/services/actionflow/components/time_batch_trigger.js +2 -2
- package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +44 -1
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +231 -5
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +8 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +120 -14
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/system_params.d.ts.map +1 -1
- package/dist/services/actionflow/system_params.js +4 -1
- package/dist/services/actionflow/system_params.js.map +1 -1
- package/dist/services/actionflow/trigger_common.d.ts.map +1 -1
- package/dist/services/actionflow/trigger_common.js +12 -3
- package/dist/services/actionflow/trigger_common.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +117 -40
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-field-build.d.ts +13 -0
- package/dist/services/form-field-build.d.ts.map +1 -1
- package/dist/services/form-field-build.js +18 -0
- package/dist/services/form-field-build.js.map +1 -1
- package/dist/services/form-field-dataset.d.ts +101 -0
- package/dist/services/form-field-dataset.d.ts.map +1 -0
- package/dist/services/form-field-dataset.js +180 -0
- package/dist/services/form-field-dataset.js.map +1 -0
- package/dist/services/form-field-template.d.ts +15 -10
- package/dist/services/form-field-template.d.ts.map +1 -1
- package/dist/services/form-field-template.js +30 -15
- package/dist/services/form-field-template.js.map +1 -1
- package/dist/services/form-layout-code-reviewed.d.ts +32 -0
- package/dist/services/form-layout-code-reviewed.d.ts.map +1 -0
- package/dist/services/form-layout-code-reviewed.js +101 -0
- package/dist/services/form-layout-code-reviewed.js.map +1 -0
- package/dist/services/form-layout-describe.d.ts +4 -0
- package/dist/services/form-layout-describe.d.ts.map +1 -0
- package/dist/services/form-layout-describe.js +107 -0
- package/dist/services/form-layout-describe.js.map +1 -0
- package/dist/services/form-layout-diff.d.ts +37 -0
- package/dist/services/form-layout-diff.d.ts.map +1 -0
- package/dist/services/form-layout-diff.js +232 -0
- package/dist/services/form-layout-diff.js.map +1 -0
- package/dist/services/form-layout-document-apply.d.ts +23 -0
- package/dist/services/form-layout-document-apply.d.ts.map +1 -0
- package/dist/services/form-layout-document-apply.js +82 -0
- package/dist/services/form-layout-document-apply.js.map +1 -0
- package/dist/services/form-layout-document.d.ts +13 -0
- package/dist/services/form-layout-document.d.ts.map +1 -0
- package/dist/services/form-layout-document.js +228 -0
- package/dist/services/form-layout-document.js.map +1 -0
- package/dist/services/form-layout-edit.d.ts +21 -0
- package/dist/services/form-layout-edit.d.ts.map +1 -0
- package/dist/services/form-layout-edit.js +103 -0
- package/dist/services/form-layout-edit.js.map +1 -0
- package/dist/services/form-layout-init-plan.d.ts +54 -0
- package/dist/services/form-layout-init-plan.d.ts.map +1 -0
- package/dist/services/form-layout-init-plan.js +211 -0
- package/dist/services/form-layout-init-plan.js.map +1 -0
- package/dist/services/form-layout-insert.d.ts +22 -0
- package/dist/services/form-layout-insert.d.ts.map +1 -1
- package/dist/services/form-layout-insert.js +88 -8
- package/dist/services/form-layout-insert.js.map +1 -1
- package/dist/services/form-layout-source/review.d.ts +4 -0
- package/dist/services/form-layout-source/review.d.ts.map +1 -0
- package/dist/services/form-layout-source/review.js +54 -0
- package/dist/services/form-layout-source/review.js.map +1 -0
- package/dist/services/form-layout-template-advanced.d.ts +5 -0
- package/dist/services/form-layout-template-advanced.d.ts.map +1 -1
- package/dist/services/form-layout-template-advanced.js +17 -1
- package/dist/services/form-layout-template-advanced.js.map +1 -1
- package/dist/services/form-layout-template-catalog.d.ts +13 -0
- package/dist/services/form-layout-template-catalog.d.ts.map +1 -0
- package/dist/services/form-layout-template-catalog.js +27 -0
- package/dist/services/form-layout-template-catalog.js.map +1 -0
- package/dist/services/form-layout-template-flow.d.ts +1 -1
- package/dist/services/form-layout-template-flow.d.ts.map +1 -1
- package/dist/services/form-layout-template-flow.js.map +1 -1
- package/dist/services/form-layout-template-verification.d.ts +34 -0
- package/dist/services/form-layout-template-verification.d.ts.map +1 -0
- package/dist/services/form-layout-template-verification.js +124 -0
- package/dist/services/form-layout-template-verification.js.map +1 -0
- package/dist/services/form-list-search-custom.d.ts +25 -0
- package/dist/services/form-list-search-custom.d.ts.map +1 -0
- package/dist/services/form-list-search-custom.js +98 -0
- package/dist/services/form-list-search-custom.js.map +1 -0
- package/dist/services/form-list-search-group.d.ts +36 -2
- package/dist/services/form-list-search-group.d.ts.map +1 -1
- package/dist/services/form-list-search-group.js +89 -10
- package/dist/services/form-list-search-group.js.map +1 -1
- package/dist/services/form-list-search.d.ts +1 -0
- package/dist/services/form-list-search.d.ts.map +1 -1
- package/dist/services/form-list-search.js +5 -2
- package/dist/services/form-list-search.js.map +1 -1
- package/dist/services/form-permission-archive.d.ts +15 -2
- package/dist/services/form-permission-archive.d.ts.map +1 -1
- package/dist/services/form-permission-archive.js +22 -3
- package/dist/services/form-permission-archive.js.map +1 -1
- package/dist/services/form-physical-table.d.ts +17 -0
- package/dist/services/form-physical-table.d.ts.map +1 -1
- package/dist/services/form-physical-table.js +19 -0
- package/dist/services/form-physical-table.js.map +1 -1
- package/dist/services/form-style-template.d.ts +3 -3
- package/dist/services/form-style-template.d.ts.map +1 -1
- package/dist/services/form-style-template.js +18 -13
- package/dist/services/form-style-template.js.map +1 -1
- package/dist/services/form-sub-detail.d.ts +11 -0
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +23 -0
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/menu-catalog.d.ts +11 -0
- package/dist/services/menu-catalog.d.ts.map +1 -1
- package/dist/services/menu-catalog.js +32 -0
- package/dist/services/menu-catalog.js.map +1 -1
- package/dist/services/report/cell-edit.d.ts +53 -0
- package/dist/services/report/cell-edit.d.ts.map +1 -0
- package/dist/services/report/cell-edit.js +137 -0
- package/dist/services/report/cell-edit.js.map +1 -0
- package/dist/services/report/cell-event.d.ts +28 -0
- package/dist/services/report/cell-event.d.ts.map +1 -0
- package/dist/services/report/cell-event.js +71 -0
- package/dist/services/report/cell-event.js.map +1 -0
- package/dist/services/report/cell-filter.d.ts +46 -0
- package/dist/services/report/cell-filter.d.ts.map +1 -0
- package/dist/services/report/cell-filter.js +153 -0
- package/dist/services/report/cell-filter.js.map +1 -0
- package/dist/services/workflow-basic-info.d.ts +27 -0
- package/dist/services/workflow-basic-info.d.ts.map +1 -0
- package/dist/services/workflow-basic-info.js +170 -0
- package/dist/services/workflow-basic-info.js.map +1 -0
- package/dist/services/workflow-function-management.d.ts +1 -1
- package/dist/services/workflow-function-settings.d.ts +1 -0
- package/dist/services/workflow-function-settings.d.ts.map +1 -1
- package/dist/services/workflow-function-settings.js +10 -2
- package/dist/services/workflow-function-settings.js.map +1 -1
- package/dist/services/workflow-watermark-template.d.ts +8 -0
- package/dist/services/workflow-watermark-template.d.ts.map +1 -0
- package/dist/services/workflow-watermark-template.js +78 -0
- package/dist/services/workflow-watermark-template.js.map +1 -0
- package/package.json +1 -1
- package/skill-docs/SKILL.md +24 -19
- package/skill-docs/_catalog.md +108 -106
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +60 -3
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +35 -33
- package/skill-docs/references/common/capability-boundaries.md +20 -1
- package/skill-docs/references/common/guide-plan-template.md +29 -3
- package/skill-docs/references/common/map.md +11 -7
- package/skill-docs/references/common/ref-cli-commands.md +710 -695
- package/skill-docs/references/form/guide-browser-definition.md +57 -13
- package/skill-docs/references/form/guide-create-form.md +258 -258
- package/skill-docs/references/form/guide-form-archive-permission.md +5 -2
- package/skill-docs/references/form/guide-form-layout-incremental.md +6 -4
- package/skill-docs/references/form/guide-form-view.md +423 -374
- package/skill-docs/references/form/layout/code-block/code-block-guide.md +153 -0
- package/skill-docs/references/form/layout/code-block/controls.md +60 -0
- package/skill-docs/references/form/layout/code-block/coverage.md +32 -0
- package/skill-docs/references/form/layout/code-block/details.md +57 -0
- package/skill-docs/references/form/layout/code-block/events-validation.md +42 -0
- package/skill-docs/references/form/layout/code-block/foundations-fields.md +56 -0
- package/skill-docs/references/form/layout/code-block/layout-css.md +116 -0
- package/skill-docs/references/form/layout/code-block/recipes.md +164 -0
- package/skill-docs/references/form/layout/code-block/troubleshooting.md +49 -0
- package/skill-docs/references/form/layout/code-block/ui-global.md +47 -0
- package/skill-docs/references/form/layout/document.md +39 -0
- package/skill-docs/references/form/layout/incremental.md +133 -0
- package/skill-docs/references/form/layout/initialization.md +39 -0
- package/skill-docs/references/form/layout/inspect-edit.md +76 -0
- package/skill-docs/references/form/layout/layout-overview.md +67 -0
- package/skill-docs/references/form/layout/management.md +64 -0
- package/skill-docs/references/form/layout/planning.md +76 -0
- package/skill-docs/references/form/layout/source-restoration.md +388 -0
- package/skill-docs/references/form/layout/template/advanced-css.md +167 -0
- package/skill-docs/references/form/layout/template/advanced.md +318 -0
- package/skill-docs/references/form/layout/template/easy.md +64 -0
- package/skill-docs/references/form/layout/template/flow.md +30 -0
- package/skill-docs/references/form/layout/template/template-guide.md +56 -0
- package/skill-docs/references/form/layout/workflow-layout.md +44 -0
- package/skill-docs/references/form/ref-form-fields.md +303 -301
- package/skill-docs/references/report/cross-dataset-filter-guide.md +33 -19
- package/skill-docs/references/report/event-hreflink-guide.md +30 -0
- package/skill-docs/references/report/ref-report-commands.md +14 -0
- package/skill-docs/references/report/report-designer-feature-map.md +2 -2
- package/skill-docs/references/workflow/guide-function-settings.md +112 -55
- package/skill-docs/references/workflow/guide-workflow-node-layout.md +189 -187
- package/skill-docs/references/workflow/guide-workflow.md +632 -630
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-layout-template-flow.js","sourceRoot":"","sources":["../../src/services/form-layout-template-flow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,qBAAqB,CAAC;AAG5E,MAAM,IAAI,GAAG,gCAAgC,CAAC;AAE9C,SAAS,OAAO,CAAC,QAAa,EAAE,MAAc;IAC5C,IAAI,QAAQ,EAAE,IAAI,KAAK,GAAG,IAAI,QAAQ,EAAE,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,MAAM,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;IACrH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;QAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAChG,OAAO,IAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAa;IACzD,MAAM,UAAU,GAAG,QAAQ,EAAE,kBAAkB,EAAE,UAAU,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAClH,MAAM,YAAY,GAAG,QAAQ,EAAE,kBAAkB,EAAE,YAAY,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;IACxH,IAAI,UAAU,KAAK,MAAM,IAAI,YAAY,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3F,MAAM,KAAK,GAAG,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/C,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,sBAAsB,CAAC;QAClE,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,uBAAuB,CAAC;QACrE,WAAW,EAAE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;KAC5E,CAAC;AACJ,CAAC;AASD,MAAM,OAAO,mBAAmB;IACV;IAAwD;IAA5E,YAAoB,MAA8C,EAAU,OAAe;QAAvE,WAAM,GAAN,MAAM,CAAwC;QAAU,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"form-layout-template-flow.js","sourceRoot":"","sources":["../../src/services/form-layout-template-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ApiClient } from '../core/client.js';
|
|
2
|
+
export interface TemplateEvidence {
|
|
3
|
+
kind: 'advanced' | 'flow';
|
|
4
|
+
id: string;
|
|
5
|
+
fingerprint: string;
|
|
6
|
+
style: Record<string, unknown>;
|
|
7
|
+
columns?: Array<{
|
|
8
|
+
type: string;
|
|
9
|
+
size: number;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export interface EasyTemplateEvidence {
|
|
13
|
+
kind: 'easy';
|
|
14
|
+
id: string;
|
|
15
|
+
fingerprint: string;
|
|
16
|
+
columns: Array<{
|
|
17
|
+
type: string;
|
|
18
|
+
size: number;
|
|
19
|
+
}>;
|
|
20
|
+
rowHeight: number;
|
|
21
|
+
titleStyle: {
|
|
22
|
+
backColor?: string;
|
|
23
|
+
borderColor?: string;
|
|
24
|
+
};
|
|
25
|
+
fieldStyle: {
|
|
26
|
+
backColor?: string;
|
|
27
|
+
borderColor?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare function readEasyTemplateEvidence(client: Pick<ApiClient, 'get' | 'post'>, baseUrl: string, id: string): Promise<EasyTemplateEvidence>;
|
|
31
|
+
export declare function verifyAppliedEasyTemplate(evidence: EasyTemplateEvidence, formLayout: any): string[];
|
|
32
|
+
export declare function readTemplateEvidence(client: Pick<ApiClient, 'post'>, baseUrl: string, layoutType: string, id: string): Promise<TemplateEvidence>;
|
|
33
|
+
export declare function verifyAppliedTemplate(evidence: TemplateEvidence, formLayout: any): string[];
|
|
34
|
+
//# sourceMappingURL=form-layout-template-verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-layout-template-verification.d.ts","sourceRoot":"","sources":["../../src/services/form-layout-template-verification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AACD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,UAAU,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAMD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EACrG,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqB3C;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,EAAE,CAgBnG;AAqBD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EACzF,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmB3D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,EAAE,CAoB3F"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { digest } from './form-layout-source/schema.js';
|
|
2
|
+
import { AdvancedTemplateService } from './form-layout-template-advanced.js';
|
|
3
|
+
import { FlowTemplateService } from './form-layout-template-flow.js';
|
|
4
|
+
import { EasyTemplateService, buildEasyPayload } from './form-layout-template-easy.js';
|
|
5
|
+
function cellStyle(cell) {
|
|
6
|
+
return { backColor: cell?.style?.backColor, borderColor: cell?.style?.borderTop?.color };
|
|
7
|
+
}
|
|
8
|
+
export async function readEasyTemplateEvidence(client, baseUrl, id) {
|
|
9
|
+
const api = new EasyTemplateService(client, baseUrl);
|
|
10
|
+
const template = await api.get(id);
|
|
11
|
+
const payload = buildEasyPayload(template.data, {}, id);
|
|
12
|
+
const { module: _module, id: _id, ...styleTemplateParam } = payload;
|
|
13
|
+
const response = await client.post(`${baseUrl}/api/form/local/initLayout`, {
|
|
14
|
+
module: 'form', initMode: 0, colNum: 2, styleTemplateParam,
|
|
15
|
+
});
|
|
16
|
+
if (response?.code !== 200 || response?.status !== true)
|
|
17
|
+
throw new Error('简易模板预览失败');
|
|
18
|
+
const sheet = response.data?.pageLayouts?.[0]?.config?.workbook?.Sheet1;
|
|
19
|
+
const columns = sheet?.columns;
|
|
20
|
+
const cells = sheet?.cells;
|
|
21
|
+
if (!Array.isArray(columns) || columns.length < 2 || !Array.isArray(cells))
|
|
22
|
+
throw new Error('简易模板预览缺少主网格');
|
|
23
|
+
const title = cells.find((cell) => Number(cell.row) === 0 && Number(cell.col) === 0);
|
|
24
|
+
const field = cells.find((cell) => Number(cell.row) === 0 && Number(cell.col) === 1);
|
|
25
|
+
if (!title || !field)
|
|
26
|
+
throw new Error('简易模板预览缺少标题和字段单元格');
|
|
27
|
+
const evidence = { kind: 'easy', id,
|
|
28
|
+
columns: columns.map((col) => ({ type: String(col.type), size: Number(col.size) })),
|
|
29
|
+
rowHeight: Number(template.data.rowHeight), titleStyle: cellStyle(title), fieldStyle: cellStyle(field) };
|
|
30
|
+
return { ...evidence, fingerprint: digest({ config: template.data, ...evidence }) };
|
|
31
|
+
}
|
|
32
|
+
export function verifyAppliedEasyTemplate(evidence, formLayout) {
|
|
33
|
+
const sheet = formLayout?.pageLayouts?.[0]?.config?.workbook?.Sheet1;
|
|
34
|
+
if (!sheet)
|
|
35
|
+
return ['简易模板主网格未回读'];
|
|
36
|
+
const issues = [];
|
|
37
|
+
const columns = Array.isArray(sheet.columns) ? sheet.columns.map((col) => ({
|
|
38
|
+
type: String(col.type), size: Number(col.size),
|
|
39
|
+
})) : [];
|
|
40
|
+
if (digest(columns) !== digest(evidence.columns))
|
|
41
|
+
issues.push('简易模板列宽未与应用后布局一致');
|
|
42
|
+
if (!Array.isArray(sheet.rows) || !sheet.rows.some((row) => Number(row.size) === evidence.rowHeight))
|
|
43
|
+
issues.push('简易模板行高未与应用后布局一致');
|
|
44
|
+
const actual = Array.isArray(sheet.cells) ? sheet.cells : [];
|
|
45
|
+
const hasStyle = (style) => actual.some((cell) => matchesSpecified(style, cellStyle(cell)));
|
|
46
|
+
if (!hasStyle(evidence.titleStyle))
|
|
47
|
+
issues.push('简易模板标题颜色或边框未与应用后布局一致');
|
|
48
|
+
if (!hasStyle(evidence.fieldStyle))
|
|
49
|
+
issues.push('简易模板字段颜色或边框未与应用后布局一致');
|
|
50
|
+
return issues;
|
|
51
|
+
}
|
|
52
|
+
function object(value, label) {
|
|
53
|
+
let parsed = value;
|
|
54
|
+
if (typeof parsed === 'string') {
|
|
55
|
+
try {
|
|
56
|
+
parsed = JSON.parse(parsed);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
throw new Error(`${label} 不是有效 JSON`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
63
|
+
throw new Error(`${label} 格式无效`);
|
|
64
|
+
return parsed;
|
|
65
|
+
}
|
|
66
|
+
function matchesSpecified(expected, actual) {
|
|
67
|
+
if (expected === undefined || actual === undefined)
|
|
68
|
+
return expected === actual;
|
|
69
|
+
if (expected && typeof expected === 'object' && !Array.isArray(expected)) {
|
|
70
|
+
if (!actual || typeof actual !== 'object' || Array.isArray(actual))
|
|
71
|
+
return false;
|
|
72
|
+
return Object.entries(expected).every(([key, value]) => matchesSpecified(value, actual[key]));
|
|
73
|
+
}
|
|
74
|
+
return digest(expected) === digest(actual);
|
|
75
|
+
}
|
|
76
|
+
export async function readTemplateEvidence(client, baseUrl, layoutType, id) {
|
|
77
|
+
if (layoutType === 'FLOW') {
|
|
78
|
+
const row = (await new FlowTemplateService(client, baseUrl).list()).find(item => String(item.id) === id);
|
|
79
|
+
if (!row || Number(row.templateStatus) !== 1)
|
|
80
|
+
throw new Error(`流式模板 ${id} 不存在或未启用`);
|
|
81
|
+
const raw = object(row.styleJson, '流式模板样式');
|
|
82
|
+
const style = { formHeader: object(raw.formHeader, 'formHeader'),
|
|
83
|
+
styleConfig: object(raw.styleConfig, 'styleConfig') };
|
|
84
|
+
return { kind: 'flow', id, fingerprint: digest(style), style };
|
|
85
|
+
}
|
|
86
|
+
if (layoutType === 'EXCEL') {
|
|
87
|
+
const template = await new AdvancedTemplateService(client, baseUrl).get(id);
|
|
88
|
+
const style = object(template.layoutInfo?.formStyle?.styleConfig || '{}', '高级模板布局样式');
|
|
89
|
+
const columns = template.layoutInfo?.pageLayouts?.[0]?.config?.workbook?.Sheet1?.columns;
|
|
90
|
+
if (!Array.isArray(columns) || !columns.length)
|
|
91
|
+
throw new Error('高级模板主网格列宽缺失');
|
|
92
|
+
const normalized = columns.map((col) => ({ type: String(col.type), size: Number(col.size) }));
|
|
93
|
+
if (normalized.some(col => !Number.isFinite(col.size)))
|
|
94
|
+
throw new Error('高级模板列宽无效');
|
|
95
|
+
return { kind: 'advanced', id, fingerprint: digest({ style, columns: normalized }), style, columns: normalized };
|
|
96
|
+
}
|
|
97
|
+
throw new Error(`不支持的布局类型 ${layoutType}`);
|
|
98
|
+
}
|
|
99
|
+
export function verifyAppliedTemplate(evidence, formLayout) {
|
|
100
|
+
const issues = [];
|
|
101
|
+
const actualStyle = formLayout?.formStyle || {};
|
|
102
|
+
for (const [section, expected] of Object.entries(evidence.style)) {
|
|
103
|
+
try {
|
|
104
|
+
const actual = evidence.kind === 'flow'
|
|
105
|
+
? object(actualStyle[section], `已应用布局 ${section}`)
|
|
106
|
+
: object(actualStyle.styleConfig, '已应用布局 styleConfig')[section];
|
|
107
|
+
if (actual === undefined || !matchesSpecified(expected, actual))
|
|
108
|
+
issues.push(`模板样式 ${section} 未与应用后布局一致`);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
issues.push(`模板样式 ${section} 无法从应用后布局回读`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (evidence.columns) {
|
|
115
|
+
const actualColumns = formLayout?.pageLayouts?.[0]?.config?.workbook?.Sheet1?.columns;
|
|
116
|
+
const normalized = Array.isArray(actualColumns) ? actualColumns.map((col) => ({
|
|
117
|
+
type: String(col.type), size: Number(col.size),
|
|
118
|
+
})) : [];
|
|
119
|
+
if (digest(normalized) !== digest(evidence.columns))
|
|
120
|
+
issues.push('模板主网格列宽未与应用后布局一致');
|
|
121
|
+
}
|
|
122
|
+
return issues;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=form-layout-template-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-layout-template-verification.js","sourceRoot":"","sources":["../../src/services/form-layout-template-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface CustomSearchOption {
|
|
2
|
+
name: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
default?: boolean;
|
|
5
|
+
/** 完整条件树,或已保存条目的原始 conditionData。 */
|
|
6
|
+
conditionData?: Record<string, unknown> | string;
|
|
7
|
+
/** 与 form list-filter 相同的条件数组。 */
|
|
8
|
+
conditions?: Array<Record<string, unknown>>;
|
|
9
|
+
relation?: 'and' | 'or';
|
|
10
|
+
/** 系统选项的真实 sysOptionKey,例如 myFollow。 */
|
|
11
|
+
systemOption?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CustomSearchConfig {
|
|
14
|
+
name: string;
|
|
15
|
+
id?: string;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
selection?: 'single' | 'multiple';
|
|
18
|
+
position?: '0' | '1';
|
|
19
|
+
showArchiveOption?: boolean;
|
|
20
|
+
options: CustomSearchOption[];
|
|
21
|
+
}
|
|
22
|
+
export declare function readCustomSearchConfig(input: string): CustomSearchConfig;
|
|
23
|
+
export declare function customSearchIdsNeeded(config: CustomSearchConfig, existing?: any): number;
|
|
24
|
+
export declare function buildCustomSearchEntry(config: CustomSearchConfig, kind: 'common' | 'group', ids: string[], existing?: any): any;
|
|
25
|
+
//# sourceMappingURL=form-list-search-custom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-list-search-custom.d.ts","sourceRoot":"","sources":["../../src/services/form-list-search-custom.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IACjD,kCAAkC;IAClC,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAoBxE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,CAIxF;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,QAAQ,GAAG,OAAO,EACxB,GAAG,EAAE,MAAM,EAAE,EACb,QAAQ,CAAC,EAAE,GAAG,GACb,GAAG,CAyDL"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
export function readCustomSearchConfig(input) {
|
|
3
|
+
const raw = input.startsWith('@') ? readFileSync(input.slice(1), 'utf8') : input;
|
|
4
|
+
const config = JSON.parse(raw);
|
|
5
|
+
if (!config || typeof config !== 'object' || !String(config.name || '').trim())
|
|
6
|
+
throw new Error('自定义分类需要 name');
|
|
7
|
+
if (!Array.isArray(config.options) || !config.options.length)
|
|
8
|
+
throw new Error('自定义分类至少需要一项 options');
|
|
9
|
+
if (config.selection && !['single', 'multiple'].includes(config.selection))
|
|
10
|
+
throw new Error('selection 只能是 single 或 multiple');
|
|
11
|
+
if (config.position && !['0', '1'].includes(config.position))
|
|
12
|
+
throw new Error('position 只能是 0 或 1');
|
|
13
|
+
const names = new Set();
|
|
14
|
+
for (const option of config.options) {
|
|
15
|
+
if (!String(option.name || '').trim())
|
|
16
|
+
throw new Error('自定义选项缺少 name');
|
|
17
|
+
if (names.has(option.name))
|
|
18
|
+
throw new Error(`自定义选项名称重复:${option.name}`);
|
|
19
|
+
names.add(option.name);
|
|
20
|
+
if (option.systemOption && (option.conditionData || option.conditions))
|
|
21
|
+
throw new Error(`选项「${option.name}」不能同时设置 systemOption 和条件`);
|
|
22
|
+
if (option.conditionData && option.conditions)
|
|
23
|
+
throw new Error(`选项「${option.name}」不能同时设置 conditionData 和 conditions`);
|
|
24
|
+
if (option.systemOption && option.systemOption !== 'myFollow')
|
|
25
|
+
throw new Error(`未验证的系统选项:${option.systemOption};当前只支持 myFollow`);
|
|
26
|
+
}
|
|
27
|
+
if (config.selection === 'single' && config.options.filter((option) => option.default).length > 1) {
|
|
28
|
+
throw new Error('单选分类最多只能有一个默认选项');
|
|
29
|
+
}
|
|
30
|
+
return config;
|
|
31
|
+
}
|
|
32
|
+
export function customSearchIdsNeeded(config, existing) {
|
|
33
|
+
const oldSets = existing?.listFilterDefaultSets?.listGroupSets || [];
|
|
34
|
+
return (config.id || existing?.id ? 0 : 1)
|
|
35
|
+
+ config.options.filter((option) => !option.id && !oldSets.some((item) => item.setName === option.name && item.id)).length;
|
|
36
|
+
}
|
|
37
|
+
export function buildCustomSearchEntry(config, kind, ids, existing) {
|
|
38
|
+
const supply = [...ids];
|
|
39
|
+
const id = String(config.id || existing?.id || supply.shift() || '');
|
|
40
|
+
if (!/^\d+$/.test(id))
|
|
41
|
+
throw new Error('自定义分类需要平台生成的数字 ID');
|
|
42
|
+
const fieldId = `GroupCustom_${id}`;
|
|
43
|
+
const oldSets = existing?.listFilterDefaultSets?.listGroupSets || [];
|
|
44
|
+
const sets = config.options.map((option, index) => {
|
|
45
|
+
const prior = oldSets.find((item) => String(item.setName) === option.name);
|
|
46
|
+
const optionId = String(option.id || prior?.id || supply.shift() || '');
|
|
47
|
+
if (!/^\d+$/.test(optionId))
|
|
48
|
+
throw new Error(`选项「${option.name}」需要平台生成的数字 ID`);
|
|
49
|
+
const conditionData = option.systemOption
|
|
50
|
+
? JSON.stringify({ type: 'pluginAdvice', customParams: { sysOptionKey: option.systemOption } })
|
|
51
|
+
: option.conditionData === undefined ? prior?.conditionData
|
|
52
|
+
: typeof option.conditionData === 'string' ? option.conditionData : JSON.stringify(option.conditionData);
|
|
53
|
+
if (kind === 'common' && !conditionData)
|
|
54
|
+
throw new Error(`常用搜索选项「${option.name}」缺少 conditionData 或 systemOption`);
|
|
55
|
+
return {
|
|
56
|
+
id: optionId,
|
|
57
|
+
showOrder: index,
|
|
58
|
+
setName: option.name,
|
|
59
|
+
...(kind === 'common' ? { isChecked: option.default === undefined ? prior?.isChecked === true : option.default === true } : {}),
|
|
60
|
+
...(conditionData ? { conditionData } : {}),
|
|
61
|
+
...(option.systemOption ? { opType: 'SYSTEM' } : {}),
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
const archive = config.showArchiveOption === undefined
|
|
65
|
+
? existing?.listFilterDefaultSets?.showArchiveOption ?? '1'
|
|
66
|
+
: config.showArchiveOption ? '1' : '0';
|
|
67
|
+
const multiSelect = config.selection === undefined
|
|
68
|
+
? existing?.listFilterDefaultSets?.multiSelect ?? false
|
|
69
|
+
: config.selection === 'multiple';
|
|
70
|
+
if (kind === 'common') {
|
|
71
|
+
return {
|
|
72
|
+
...(existing || {}), id, fieldId, fieldName: fieldId, componentKey: 'GroupCustom',
|
|
73
|
+
conditionType: [], config: {}, fieldShowName: config.name,
|
|
74
|
+
isQuick: config.position ?? existing?.isQuick ?? '0', showName: config.name, options: [],
|
|
75
|
+
listFilterDefaultSets: {
|
|
76
|
+
...(existing?.listFilterDefaultSets || {}), listGroupSets: sets, listFilterSets: [],
|
|
77
|
+
multiSelect, startValue: '', startValueSpan: '', startDefaultLabel: '', endValue: '',
|
|
78
|
+
showArchiveOption: archive, searchContentFullMatches: false,
|
|
79
|
+
},
|
|
80
|
+
filterId: existing?.filterId || id, required: config.required === undefined ? existing?.required ?? 0 : config.required ? 1 : 0,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
...(existing || {}), id, fieldId, name: fieldId, fieldName: fieldId,
|
|
85
|
+
componentKey: 'GroupCustom', showName: config.name, config: {},
|
|
86
|
+
showPosition: config.position ?? existing?.showPosition ?? '0', tabStyle: 'select',
|
|
87
|
+
listFilterDefaultSets: {
|
|
88
|
+
...(existing?.listFilterDefaultSets || {}), listGroupSets: sets,
|
|
89
|
+
multiSelect: config.selection === undefined ? existing?.listFilterDefaultSets?.multiSelect ?? true : multiSelect,
|
|
90
|
+
enableFilter: existing?.listFilterDefaultSets?.enableFilter ?? 0,
|
|
91
|
+
enableShowCountNum: existing?.listFilterDefaultSets?.enableShowCountNum ?? 0,
|
|
92
|
+
showCountNumType: existing?.listFilterDefaultSets?.showCountNumType ?? 'notUpdate',
|
|
93
|
+
enableShowCountNumLimit: existing?.listFilterDefaultSets?.enableShowCountNumLimit ?? 0,
|
|
94
|
+
showArchiveOption: archive,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=form-list-search-custom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-list-search-custom.js","sourceRoot":"","sources":["../../src/services/form-list-search-custom.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export declare const OPTION_COMPS: readonly ["Select", "RadioBox", "CheckBox"];
|
|
|
22
22
|
export declare const BROWSER_COMPS: readonly ["Ebuilder", "EBuilder", "Browser", "Employee", "Department"];
|
|
23
23
|
/** 日期类:分类项 = 时间粒度。 */
|
|
24
24
|
export declare const DATE_COMPS: readonly ["DateComponent", "Date", "DateTime"];
|
|
25
|
-
export type GroupFilterKind = 'option' | 'browser' | 'date' | 'system';
|
|
25
|
+
export type GroupFilterKind = 'option' | 'browser' | 'date' | 'system' | 'custom';
|
|
26
26
|
export declare const KIND_LABEL: Record<GroupFilterKind, string>;
|
|
27
27
|
/** 日期可选的四种粒度,顺序即页面上的顺序。 */
|
|
28
28
|
export declare const DATE_GRANULARITIES: readonly [{
|
|
@@ -42,7 +42,16 @@ export declare const DATE_GRANULARITIES: readonly [{
|
|
|
42
42
|
export declare function isSystemColumn(col: any): boolean;
|
|
43
43
|
/** 按 `compType` 判四档之一;认不出就报错(宁可早报,也不发一个错的 `dataType` 出去)。 */
|
|
44
44
|
export declare function resolveGroupFilterKind(col: any): GroupFilterKind;
|
|
45
|
+
/**
|
|
46
|
+
* `--position` → 条目 `showPosition`。
|
|
47
|
+
*
|
|
48
|
+
* 平台枚举(FieldSearch 前端):`Top="0"`、`Left="1"` / `DropDown="1"`。
|
|
49
|
+
* 分类搜索新建条目默认就是 **0(顶部)**;1 表示左侧/下拉样式。
|
|
50
|
+
* 名称与数字都收,免得用户还要记码值。
|
|
51
|
+
*/
|
|
45
52
|
export declare function parseShowPosition(input: string | undefined): string;
|
|
53
|
+
/** `--display` → 条目 `tabStyle`:平台枚举 `Tab="tab"`(平铺)/ `Select="select"`(下拉,缺省)。 */
|
|
54
|
+
export declare function parseTabStyle(input: string | undefined): string | undefined;
|
|
46
55
|
/** `--option-order default|field` → `optionOrderConfig` 的 `"0"` / `"1"`。 */
|
|
47
56
|
export declare function parseOptionOrder(input: string | undefined): string;
|
|
48
57
|
/** `--date-granularity year,month` → 校验并归一成粒度值数组(保序、去重)。 */
|
|
@@ -68,9 +77,15 @@ export interface FilterDefaultOptions {
|
|
|
68
77
|
* **两份同一规则:勾上才发(=1),不勾整个键都不出现。**
|
|
69
78
|
*/
|
|
70
79
|
onlyWithData?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* 「显示封存的选项」(`showArchiveOption`):前端开关写 `"1"` / `"0"`。
|
|
82
|
+
* 缺省(undefined)= 与平台新建一致,发 `"1"`。
|
|
83
|
+
*/
|
|
84
|
+
showArchive?: boolean;
|
|
71
85
|
granularity?: string[];
|
|
72
86
|
optionShow?: string[];
|
|
73
87
|
optionDefault?: string[];
|
|
88
|
+
showArchiveOption?: boolean;
|
|
74
89
|
}
|
|
75
90
|
/**
|
|
76
91
|
* 四档各自的 `listFilterDefaultSets`。
|
|
@@ -85,8 +100,10 @@ export interface FilterDefaultOptions {
|
|
|
85
100
|
*/
|
|
86
101
|
export declare function buildFilterDefaultSets(col: any, kind: GroupFilterKind, opts?: FilterDefaultOptions): any;
|
|
87
102
|
export interface BuildGroupFilterOptions extends FilterDefaultOptions {
|
|
88
|
-
/** `showPosition`:
|
|
103
|
+
/** `showPosition`:0 顶部(缺省)/ 1 左侧 / 下拉样式(平台枚举 Top="0"、Left/DropDown="1")。 */
|
|
89
104
|
position?: string;
|
|
105
|
+
/** 分类搜索「显示方式」`tabStyle`:`tab`=平铺 / `select`=下拉(缺省)。 */
|
|
106
|
+
tabStyle?: string;
|
|
90
107
|
}
|
|
91
108
|
/**
|
|
92
109
|
* 一条分类搜索条目。
|
|
@@ -95,6 +112,23 @@ export interface BuildGroupFilterOptions extends FilterDefaultOptions {
|
|
|
95
112
|
* 加上按类型算出来的 `listFilterDefaultSets`。
|
|
96
113
|
*/
|
|
97
114
|
export declare function buildGroupFilterEntry(col: any, opts?: BuildGroupFilterOptions): any;
|
|
115
|
+
/** 自定义分类(GroupCustom)的组件键。它不是表单字段,条目只存一个引用。 */
|
|
116
|
+
export declare const CUSTOM_GROUP_COMP = "GroupCustom";
|
|
117
|
+
/**
|
|
118
|
+
* 自定义分类 id:平台前端用 `UUID(18,10)` 生成 18 位数字 id,**没有接口返回**
|
|
119
|
+
* (2026-10-23 读 FieldSearch 前端包确认)。这里按同样形状生成,并避开已有条目。
|
|
120
|
+
*/
|
|
121
|
+
export declare function genCustomGroupId(existing?: any[]): string;
|
|
122
|
+
/**
|
|
123
|
+
* 一条「自定义分类」(GroupCustom)。
|
|
124
|
+
*
|
|
125
|
+
* 平台「添加分类」先建 `{fieldId:"-1", componentKey:"GroupCustom"}`,保存时由前端补 18 位 id,
|
|
126
|
+
* `fieldId = "GroupCustom_<id>"`;分类值 `listGroupSets` 初始为空,之后在设计器里配置。
|
|
127
|
+
* 这里按实测条目形状构造(含「显示方式」`tabStyle` 与「显示封存的选项」`showArchiveOption`)。
|
|
128
|
+
*/
|
|
129
|
+
export declare function buildCustomGroupFilterEntry(showName: string, opts?: BuildGroupFilterOptions & {
|
|
130
|
+
id?: string;
|
|
131
|
+
}): any;
|
|
98
132
|
/** 候选字段:`getNListConfig` 回包里的 `fieldUsage[0].fields[]`(含系统字段)。 */
|
|
99
133
|
export declare function extractCandidateColumns(listConfig: any): any[];
|
|
100
134
|
/** 按 fieldId 或字段名(`text`)找候选字段;重名报错,不猜。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-list-search-group.d.ts","sourceRoot":"","sources":["../../src/services/form-list-search-group.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form-list-search-group.d.ts","sourceRoot":"","sources":["../../src/services/form-list-search-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomInt } from 'node:crypto';
|
|
1
2
|
/**
|
|
2
3
|
* 台账「分类搜索」(`config.searchConditions.groupFilters`) 的取值与构造。
|
|
3
4
|
*
|
|
@@ -27,6 +28,7 @@ export const KIND_LABEL = {
|
|
|
27
28
|
browser: '浏览框',
|
|
28
29
|
date: '日期',
|
|
29
30
|
system: '系统字段',
|
|
31
|
+
custom: '自定义分类',
|
|
30
32
|
};
|
|
31
33
|
/** 日期可选的四种粒度,顺序即页面上的顺序。 */
|
|
32
34
|
export const DATE_GRANULARITIES = [
|
|
@@ -48,6 +50,8 @@ export function resolveGroupFilterKind(col) {
|
|
|
48
50
|
if (isSystemColumn(col))
|
|
49
51
|
return 'system';
|
|
50
52
|
const comp = String(col?.compType || col?.type || '');
|
|
53
|
+
if (comp === 'GroupCustom')
|
|
54
|
+
return 'custom';
|
|
51
55
|
if (OPTION_COMPS.includes(comp))
|
|
52
56
|
return 'option';
|
|
53
57
|
if (DATE_COMPS.includes(comp))
|
|
@@ -57,11 +61,33 @@ export function resolveGroupFilterKind(col) {
|
|
|
57
61
|
throw new Error(`字段「${col?.text ?? col?.id}」的类型 ${comp || '(未知)'} 不支持分类搜索。`
|
|
58
62
|
+ `目前支持:选项类 ${OPTION_COMPS.join('/')}、浏览框类 ${BROWSER_COMPS.join('/')}、日期类 ${DATE_COMPS.join('/')},以及系统字段`);
|
|
59
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* `--position` → 条目 `showPosition`。
|
|
66
|
+
*
|
|
67
|
+
* 平台枚举(FieldSearch 前端):`Top="0"`、`Left="1"` / `DropDown="1"`。
|
|
68
|
+
* 分类搜索新建条目默认就是 **0(顶部)**;1 表示左侧/下拉样式。
|
|
69
|
+
* 名称与数字都收,免得用户还要记码值。
|
|
70
|
+
*/
|
|
60
71
|
export function parseShowPosition(input) {
|
|
61
|
-
const v = String(input ?? '
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
72
|
+
const v = String(input ?? '0').trim();
|
|
73
|
+
const key = v.toLowerCase();
|
|
74
|
+
if (v === '0' || key === 'top' || v === '顶部')
|
|
75
|
+
return '0';
|
|
76
|
+
if (v === '1' || key === 'left' || key === 'dropdown' || v === '左侧' || v === '下拉' || v === '下拉样式')
|
|
77
|
+
return '1';
|
|
78
|
+
throw new Error(`--position 只认 0(顶部)或 1(左侧 / 下拉样式),收到「${input}」`);
|
|
79
|
+
}
|
|
80
|
+
/** `--display` → 条目 `tabStyle`:平台枚举 `Tab="tab"`(平铺)/ `Select="select"`(下拉,缺省)。 */
|
|
81
|
+
export function parseTabStyle(input) {
|
|
82
|
+
const v = String(input ?? '').trim();
|
|
83
|
+
if (!v)
|
|
84
|
+
return undefined;
|
|
85
|
+
const key = v.toLowerCase();
|
|
86
|
+
if (key === 'tab' || v === '平铺')
|
|
87
|
+
return 'tab';
|
|
88
|
+
if (key === 'select' || v === '下拉' || v === '下拉样式')
|
|
89
|
+
return 'select';
|
|
90
|
+
throw new Error(`--display 只认「平铺」或「下拉」,收到「${input}」`);
|
|
65
91
|
}
|
|
66
92
|
/** `--option-order default|field` → `optionOrderConfig` 的 `"0"` / `"1"`。 */
|
|
67
93
|
export function parseOptionOrder(input) {
|
|
@@ -166,6 +192,9 @@ export function buildDateGroupSets(granularity, checked) {
|
|
|
166
192
|
* 不勾时无论选项还是浏览框都整个键都没有。
|
|
167
193
|
*/
|
|
168
194
|
export function buildFilterDefaultSets(col, kind, opts = {}) {
|
|
195
|
+
if (kind === 'custom')
|
|
196
|
+
throw new Error('自定义分类请使用 --custom 配置');
|
|
197
|
+
const archive = (opts.showArchiveOption ?? opts.showArchive) === false ? '0' : '1';
|
|
169
198
|
const showCount = opts.showCount !== false ? 1 : 0;
|
|
170
199
|
const onlyWithData = opts.onlyWithData === true ? 1 : 0;
|
|
171
200
|
const count = {
|
|
@@ -175,7 +204,7 @@ export function buildFilterDefaultSets(col, kind, opts = {}) {
|
|
|
175
204
|
};
|
|
176
205
|
if (kind === 'system') {
|
|
177
206
|
// 系统字段那份最薄:只有四个键
|
|
178
|
-
return { listGroupSets: [], multiSelect: true, enableBrowserFilter: 0, showArchiveOption:
|
|
207
|
+
return { listGroupSets: [], multiSelect: true, enableBrowserFilter: 0, showArchiveOption: archive };
|
|
179
208
|
}
|
|
180
209
|
if (kind === 'option') {
|
|
181
210
|
const sets = buildOptionGroupSets(col?.config?.options, opts.optionShow, opts.optionDefault);
|
|
@@ -187,7 +216,7 @@ export function buildFilterDefaultSets(col, kind, opts = {}) {
|
|
|
187
216
|
...(onlyWithData ? { enableFilter: 1 } : {}),
|
|
188
217
|
...count,
|
|
189
218
|
enableBrowserFilter: 0,
|
|
190
|
-
showArchiveOption:
|
|
219
|
+
showArchiveOption: archive,
|
|
191
220
|
};
|
|
192
221
|
}
|
|
193
222
|
if (kind === 'date') {
|
|
@@ -205,7 +234,7 @@ export function buildFilterDefaultSets(col, kind, opts = {}) {
|
|
|
205
234
|
enableBrowserFilter: 0,
|
|
206
235
|
defaultValueType: '1',
|
|
207
236
|
...(defaultValue ? { defaultValue } : {}),
|
|
208
|
-
showArchiveOption:
|
|
237
|
+
showArchiveOption: archive,
|
|
209
238
|
};
|
|
210
239
|
}
|
|
211
240
|
// browser
|
|
@@ -218,7 +247,7 @@ export function buildFilterDefaultSets(col, kind, opts = {}) {
|
|
|
218
247
|
...count,
|
|
219
248
|
optionOrderConfig: opts.optionOrder ?? '0',
|
|
220
249
|
enableBrowserFilter: 0,
|
|
221
|
-
showArchiveOption:
|
|
250
|
+
showArchiveOption: archive,
|
|
222
251
|
};
|
|
223
252
|
}
|
|
224
253
|
/**
|
|
@@ -242,14 +271,64 @@ export function buildGroupFilterEntry(col, opts = {}) {
|
|
|
242
271
|
text: col?.text,
|
|
243
272
|
config: col?.config ?? {},
|
|
244
273
|
expandMethod: '0',
|
|
245
|
-
showPosition: opts.position ?? '
|
|
246
|
-
tabStyle: 'select',
|
|
274
|
+
showPosition: opts.position ?? '0',
|
|
275
|
+
tabStyle: opts.tabStyle ?? 'select',
|
|
247
276
|
objId: col?.objId,
|
|
248
277
|
fieldType: col?.type,
|
|
249
278
|
type: col?.type,
|
|
250
279
|
listFilterDefaultSets: buildFilterDefaultSets(col, kind, opts),
|
|
251
280
|
};
|
|
252
281
|
}
|
|
282
|
+
/** 自定义分类(GroupCustom)的组件键。它不是表单字段,条目只存一个引用。 */
|
|
283
|
+
export const CUSTOM_GROUP_COMP = 'GroupCustom';
|
|
284
|
+
/**
|
|
285
|
+
* 自定义分类 id:平台前端用 `UUID(18,10)` 生成 18 位数字 id,**没有接口返回**
|
|
286
|
+
* (2026-10-23 读 FieldSearch 前端包确认)。这里按同样形状生成,并避开已有条目。
|
|
287
|
+
*/
|
|
288
|
+
export function genCustomGroupId(existing = []) {
|
|
289
|
+
const taken = new Set(existing.flatMap((g) => [String(g?.id ?? ''), String(g?.fieldId ?? '')]));
|
|
290
|
+
for (let attempt = 0; attempt < 100; attempt++) {
|
|
291
|
+
let id = String(randomInt(1, 10));
|
|
292
|
+
for (let i = 0; i < 17; i++)
|
|
293
|
+
id += String(randomInt(0, 10));
|
|
294
|
+
if (!taken.has(id) && !taken.has(`${CUSTOM_GROUP_COMP}_${id}`))
|
|
295
|
+
return id;
|
|
296
|
+
}
|
|
297
|
+
throw new Error('生成自定义分类 id 失败:连续 100 次都与已有条目冲突');
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* 一条「自定义分类」(GroupCustom)。
|
|
301
|
+
*
|
|
302
|
+
* 平台「添加分类」先建 `{fieldId:"-1", componentKey:"GroupCustom"}`,保存时由前端补 18 位 id,
|
|
303
|
+
* `fieldId = "GroupCustom_<id>"`;分类值 `listGroupSets` 初始为空,之后在设计器里配置。
|
|
304
|
+
* 这里按实测条目形状构造(含「显示方式」`tabStyle` 与「显示封存的选项」`showArchiveOption`)。
|
|
305
|
+
*/
|
|
306
|
+
export function buildCustomGroupFilterEntry(showName, opts = {}) {
|
|
307
|
+
const name = String(showName ?? '').trim();
|
|
308
|
+
if (!name)
|
|
309
|
+
throw new Error('自定义分类名称不能为空');
|
|
310
|
+
const id = String(opts.id || genCustomGroupId());
|
|
311
|
+
const fieldId = `${CUSTOM_GROUP_COMP}_${id}`;
|
|
312
|
+
return {
|
|
313
|
+
id,
|
|
314
|
+
fieldId,
|
|
315
|
+
name: fieldId,
|
|
316
|
+
fieldName: fieldId,
|
|
317
|
+
componentKey: CUSTOM_GROUP_COMP,
|
|
318
|
+
showName: name,
|
|
319
|
+
showPosition: opts.position ?? '0',
|
|
320
|
+
tabStyle: opts.tabStyle ?? 'select',
|
|
321
|
+
listFilterDefaultSets: {
|
|
322
|
+
listGroupSets: [],
|
|
323
|
+
multiSelect: false,
|
|
324
|
+
tileOptionNoGroupConfig: { isShow: true },
|
|
325
|
+
enableShowCountNum: opts.showCount === false ? 0 : 1,
|
|
326
|
+
showCountNumType: opts.countUpdate === true ? 'withConditionUpdate' : 'notUpdate',
|
|
327
|
+
enableShowCountNumLimit: 0,
|
|
328
|
+
showArchiveOption: opts.showArchive === false ? '0' : '1',
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
}
|
|
253
332
|
/** 候选字段:`getNListConfig` 回包里的 `fieldUsage[0].fields[]`(含系统字段)。 */
|
|
254
333
|
export function extractCandidateColumns(listConfig) {
|
|
255
334
|
const arr = listConfig?.fieldUsage?.[0]?.fields;
|