@printstack/print-studio 0.0.0-stage → 0.1.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.
- package/README.md +246 -2
- package/assets/render.worker-Ch4qWx3S.js +109 -0
- package/cloneDeep-PCw2ErRl.js +1923 -0
- package/components/base-dialog/base-dialog.vue.d.ts +56 -0
- package/components/base-dialog/index.d.ts +2 -0
- package/components/base-dialog/types.d.ts +20 -0
- package/components/button-group/ButtonGroup.d.ts +64 -0
- package/components/button-group/index.d.ts +2 -0
- package/components/error-fallback/ErrorBoundary.d.ts +15 -0
- package/components/error-fallback/browser.d.ts +7 -0
- package/components/error-fallback/core.d.ts +36 -0
- package/components/error-fallback/exceptions/SilentException.d.ts +7 -0
- package/components/error-fallback/index.d.ts +8 -0
- package/components/error-fallback/rules/silent-exception.d.ts +2 -0
- package/components/error-fallback/vue.d.ts +3 -0
- package/components/popup-layer/container.d.ts +2 -0
- package/components/popup-layer/use-popup-layer.d.ts +6 -0
- package/components/popup-layer/with-popup-layer.d.ts +37 -0
- package/components/print-s-logo/print-s-logo.vue.d.ts +12 -0
- package/components/s-form/FieldRenderer.d.ts +21 -0
- package/components/s-form/SForm.d.ts +77 -0
- package/components/s-form/adapter.d.ts +61 -0
- package/components/s-form/builtin.d.ts +1 -0
- package/components/s-form/context.d.ts +44 -0
- package/components/s-form/diagnostics.d.ts +28 -0
- package/components/s-form/field-status.d.ts +18 -0
- package/components/s-form/index.d.ts +15 -0
- package/components/s-form/layouts/CollapseToggle.d.ts +28 -0
- package/components/s-form/layouts/FlexLayout.d.ts +89 -0
- package/components/s-form/layouts/GridLayout.d.ts +67 -0
- package/components/s-form/registry.d.ts +31 -0
- package/components/s-form/schema.d.ts +9 -0
- package/components/s-form/states.d.ts +59 -0
- package/components/s-form/types.d.ts +550 -0
- package/components/s-form/use-form-layout.d.ts +21 -0
- package/components/s-form/use-form-model.d.ts +15 -0
- package/components/s-form/utils.d.ts +76 -0
- package/composables/use-json-object-input.d.ts +10 -0
- package/composables/use-keyboard-shortcuts.d.ts +16 -0
- package/composables/use-z-index.d.ts +9 -0
- package/core/align.d.ts +43 -0
- package/core/binding-expression.d.ts +25 -0
- package/core/binding-formatters.d.ts +43 -0
- package/core/data-context.d.ts +73 -0
- package/core/data-source-path.d.ts +10 -0
- package/core/data-source.d.ts +26 -0
- package/core/document-expand.d.ts +7 -0
- package/core/document-model.d.ts +56 -0
- package/core/document-variable-resolver.d.ts +10 -0
- package/core/document-variables.d.ts +23 -0
- package/core/element-group.d.ts +73 -0
- package/core/element-registry.d.ts +229 -0
- package/core/element-transform.d.ts +12 -0
- package/core/errors.d.ts +20 -0
- package/core/events.d.ts +311 -0
- package/core/flow-expand.d.ts +13 -0
- package/core/follow-block.d.ts +9 -0
- package/core/follow-layout.d.ts +8 -0
- package/core/geometry.d.ts +110 -0
- package/core/index.d.ts +5 -0
- package/core/inspector.d.ts +27 -0
- package/core/layout-references.d.ts +8 -0
- package/core/overflow-expand.d.ts +7 -0
- package/core/page-extensions.d.ts +26 -0
- package/core/page-layout.d.ts +6 -0
- package/core/parser-version.d.ts +2 -0
- package/core/pointer-drag.d.ts +33 -0
- package/core/render/barcode.d.ts +26 -0
- package/core/render/canvas.d.ts +3 -0
- package/core/render/color.d.ts +19 -0
- package/core/render/dash.d.ts +4 -0
- package/core/render/element-warning.d.ts +3 -0
- package/core/render/fonts.d.ts +20 -0
- package/core/render/frame.d.ts +10 -0
- package/core/render/html.d.ts +11 -0
- package/core/render/image.d.ts +13 -0
- package/core/render/jspdf-loader.d.ts +6 -0
- package/core/render/pdf-draw.d.ts +64 -0
- package/core/render/qrcode.d.ts +15 -0
- package/core/render/render-task.d.ts +7 -0
- package/core/render/resource-data.d.ts +1 -0
- package/core/render/resource-task.d.ts +5 -0
- package/core/render/text-layout.d.ts +34 -0
- package/core/repeat-expand.d.ts +17 -0
- package/core/repeat-layout.d.ts +15 -0
- package/core/runtime-config.d.ts +12 -0
- package/core/types.d.ts +289 -0
- package/core/units.d.ts +15 -0
- package/core/z-index.d.ts +41 -0
- package/core.js +48 -0
- package/cost-sheet-Dwg0rt_l.js +1600 -0
- package/designer/commands/builtins.d.ts +2 -0
- package/designer/commands/command-registry.d.ts +39 -0
- package/designer/commands/domain-commands.d.ts +2 -0
- package/designer/commands/menu-adapter.d.ts +12 -0
- package/designer/commands/menu-interaction.d.ts +2 -0
- package/designer/commands/menu-types.d.ts +28 -0
- package/designer/commands/types.d.ts +57 -0
- package/designer/commands/use-command-shortcuts.d.ts +2 -0
- package/designer/components/bars/check-toggle.vue.d.ts +14 -0
- package/designer/components/bars/menu-bar.vue.d.ts +11 -0
- package/designer/components/bars/options-bar.vue.d.ts +3 -0
- package/designer/components/bars/tool-bar.vue.d.ts +3 -0
- package/designer/components/binding/binding-picker.vue.d.ts +23 -0
- package/designer/components/binding/binding-presets.d.ts +9 -0
- package/designer/components/binding/field-tree.vue.d.ts +21 -0
- package/designer/components/binding/schema-tree-editor.vue.d.ts +13 -0
- package/designer/components/binding/use-binding-expression.d.ts +41 -0
- package/designer/components/binding/use-binding-preview.d.ts +14 -0
- package/designer/components/binding/use-binding-sources.d.ts +37 -0
- package/designer/components/binding/use-binding-submission.d.ts +16 -0
- package/designer/components/designer-shell.vue.d.ts +16 -0
- package/designer/components/dialogs/apply-template-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/canvas-color-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/data-source-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/dialog-session-host.vue.d.ts +21 -0
- package/designer/components/dialogs/element-dialog.vue.d.ts +7 -0
- package/designer/components/dialogs/element-settings-workspace.vue.d.ts +28 -0
- package/designer/components/dialogs/export-progress-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/follow-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/follow-manager-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/guide-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/page-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/preview-dialog.vue.d.ts +12 -0
- package/designer/components/dialogs/print-preview-dialog.vue.d.ts +14 -0
- package/designer/components/dialogs/print-preview-source.d.ts +22 -0
- package/designer/components/dialogs/repeat-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/repeat-manager-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/template-library-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/tutorial-dialog.vue.d.ts +3 -0
- package/designer/components/dialogs/use-data-source-sample.d.ts +18 -0
- package/designer/components/dialogs/use-document-preview.d.ts +33 -0
- package/designer/components/dialogs/use-preview-renderer.d.ts +32 -0
- package/designer/components/dialogs/use-preview-viewport.d.ts +37 -0
- package/designer/components/dialogs/use-print-preview.d.ts +33 -0
- package/designer/components/dialogs/use-template-catalog.d.ts +51 -0
- package/designer/components/dialogs/use-template-preview.d.ts +35 -0
- package/designer/components/fields/field-boolean.vue.d.ts +20 -0
- package/designer/components/fields/field-color.vue.d.ts +20 -0
- package/designer/components/fields/field-data-preview.vue.d.ts +12 -0
- package/designer/components/fields/field-image.vue.d.ts +14 -0
- package/designer/components/fields/field-table-borders.vue.d.ts +22 -0
- package/designer/components/fields/field-table-cell-style.vue.d.ts +13 -0
- package/designer/components/fields/field-table-continuation-layout.vue.d.ts +14 -0
- package/designer/components/fields/field-table-merge-rules.vue.d.ts +13 -0
- package/designer/components/fields/field-table-rows.vue.d.ts +13 -0
- package/designer/components/fields/field-table-structure.vue.d.ts +19 -0
- package/designer/components/fields/field-table.vue.d.ts +21 -0
- package/designer/components/fields/use-table-cells.d.ts +38 -0
- package/designer/components/fields/use-table-column-resize.d.ts +11 -0
- package/designer/components/fields/use-table-columns.d.ts +19 -0
- package/designer/components/fields/use-table-draft.d.ts +569 -0
- package/designer/components/fields/use-table-header-selection.d.ts +25 -0
- package/designer/components/fields/use-table-headers.d.ts +22 -0
- package/designer/components/fields/use-table-selection.d.ts +32 -0
- package/designer/components/forms/collection-picker-field.vue.d.ts +12 -0
- package/designer/components/forms/designer-field.vue.d.ts +23 -0
- package/designer/components/forms/designer-form.vue.d.ts +28 -0
- package/designer/components/forms/form-presentation.d.ts +6 -0
- package/designer/components/forms/inspector-schema.d.ts +9 -0
- package/designer/components/forms/table-inspector-control.vue.d.ts +24 -0
- package/designer/components/panels/control-panel.vue.d.ts +3 -0
- package/designer/components/panels/info-bar.vue.d.ts +7 -0
- package/designer/components/panels/inspector-field.vue.d.ts +13 -0
- package/designer/components/panels/layers-panel.vue.d.ts +3 -0
- package/designer/components/panels/pages-panel.vue.d.ts +3 -0
- package/designer/components/panels/panel-column.vue.d.ts +11 -0
- package/designer/components/panels/panel-dock.vue.d.ts +3 -0
- package/designer/components/panels/panel-group.vue.d.ts +12 -0
- package/designer/components/panels/transform-fields.d.ts +4 -0
- package/designer/components/panels/use-panel-drop-target.d.ts +24 -0
- package/designer/components/panels/use-panel-interactions.d.ts +22 -0
- package/designer/components/previews/barcode-preview.vue.d.ts +8 -0
- package/designer/components/previews/ellipse-preview.vue.d.ts +8 -0
- package/designer/components/previews/image-preview.vue.d.ts +8 -0
- package/designer/components/previews/line-preview.vue.d.ts +10 -0
- package/designer/components/previews/qrcode-preview.vue.d.ts +8 -0
- package/designer/components/previews/rect-preview.vue.d.ts +8 -0
- package/designer/components/previews/table-preview.vue.d.ts +8 -0
- package/designer/components/previews/text-preview.vue.d.ts +8 -0
- package/designer/components/stage/canvas-stage.vue.d.ts +3 -0
- package/designer/components/stage/element-renderer.vue.d.ts +12 -0
- package/designer/components/stage/follow-overlay.vue.d.ts +8 -0
- package/designer/components/stage/guides-drag-layer.vue.d.ts +3 -0
- package/designer/components/stage/guides-layer.vue.d.ts +8 -0
- package/designer/components/stage/inline-text-editor.vue.d.ts +16 -0
- package/designer/components/stage/page-view.vue.d.ts +10 -0
- package/designer/components/stage/repeat-overlay.vue.d.ts +8 -0
- package/designer/components/stage/ruler.vue.d.ts +6 -0
- package/designer/components/stage/selection-overlay.vue.d.ts +10 -0
- package/designer/components/stage/template-editing-banner.vue.d.ts +3 -0
- package/designer/components/stage/use-stage-pan.d.ts +6 -0
- package/designer/components/stage/use-stage-viewport.d.ts +13 -0
- package/designer/components/startup/startup-loading-view.vue.d.ts +9 -0
- package/designer/components/startup/startup-loading.d.ts +7 -0
- package/designer/components/ui/align-grid.vue.d.ts +9 -0
- package/designer/components/ui/align-icons.d.ts +3 -0
- package/designer/components/ui/align-target.vue.d.ts +3 -0
- package/designer/components/ui/context-menu.vue.d.ts +3 -0
- package/designer/components/ui/dialog-tabs.vue.d.ts +15 -0
- package/designer/components/ui/extension-slot.vue.d.ts +6 -0
- package/designer/components/ui/fallback-block.vue.d.ts +42 -0
- package/designer/components/ui/form-block.vue.d.ts +27 -0
- package/designer/components/ui/hint-text.vue.d.ts +23 -0
- package/designer/components/ui/icon-button.vue.d.ts +24 -0
- package/designer/components/ui/icon.vue.d.ts +6 -0
- package/designer/components/ui/icons.d.ts +2 -0
- package/designer/components/ui/menu-items.vue.d.ts +11 -0
- package/designer/components/ui/panel-frame.vue.d.ts +21 -0
- package/designer/components/ui/toast-host.vue.d.ts +3 -0
- package/designer/components/ui/tool-icon.vue.d.ts +6 -0
- package/designer/components/variable-text/use-variable-text-bindings.d.ts +9 -0
- package/designer/components/variable-text/use-variable-text-editor.d.ts +38 -0
- package/designer/components/variable-text/variable-formatter-editor.vue.d.ts +16 -0
- package/designer/components/variable-text/variable-text-field.vue.d.ts +33 -0
- package/designer/components/variable-text/variable-text-preview.vue.d.ts +7 -0
- package/designer/composables/use-restored-ui-state.d.ts +2 -0
- package/designer/config/canvas-background.d.ts +18 -0
- package/designer/context/editor-context.d.ts +64 -0
- package/designer/context/editor-runtime.d.ts +11 -0
- package/designer/context/editor-view.d.ts +8 -0
- package/designer/context/inspector-layout.d.ts +7 -0
- package/designer/context/use-element-definition.d.ts +1 -0
- package/designer/events/store-event-bindings.d.ts +7 -0
- package/designer/facade/bindings.d.ts +6 -0
- package/designer/facade/editing.d.ts +43 -0
- package/designer/facade/elements.d.ts +37 -0
- package/designer/facade/entities.d.ts +15364 -0
- package/designer/facade/output.d.ts +21 -0
- package/designer/facade/pages.d.ts +204 -0
- package/designer/facade/print-studio.d.ts +3 -0
- package/designer/facade/state.d.ts +10 -0
- package/designer/facade/use-print-studio.d.ts +6 -0
- package/designer/frame/entry.d.ts +0 -0
- package/designer/frame/host.d.ts +7 -0
- package/designer/frame/print-designer-frame.vue.d.ts +25 -0
- package/designer/frame/shared.d.ts +32 -0
- package/designer/frame/view.d.ts +15 -0
- package/designer/interactions/create.d.ts +3 -0
- package/designer/interactions/geometry-update.d.ts +3 -0
- package/designer/interactions/guides.d.ts +7 -0
- package/designer/interactions/marquee.d.ts +3 -0
- package/designer/interactions/move.d.ts +3 -0
- package/designer/interactions/point.d.ts +3 -0
- package/designer/interactions/pointer-drag.d.ts +3 -0
- package/designer/interactions/resize-strategies.d.ts +23 -0
- package/designer/interactions/snap.d.ts +48 -0
- package/designer/interactions/transform.d.ts +5 -0
- package/designer/mount-print-designer.d.ts +2 -0
- package/designer/mount-print-preview.d.ts +5 -0
- package/designer/plugins/builtins.d.ts +6 -0
- package/designer/plugins/context-menu-guard.d.ts +2 -0
- package/designer/plugins/domain-builtins.d.ts +5 -0
- package/designer/plugins/element-previews.d.ts +2 -0
- package/designer/plugins/error-handling.d.ts +5 -0
- package/designer/plugins/extension-points.d.ts +34 -0
- package/designer/plugins/follow-layout.d.ts +2 -0
- package/designer/plugins/panels.d.ts +2 -0
- package/designer/plugins/plugin-bootstrap.d.ts +5 -0
- package/designer/plugins/plugin-canvas.d.ts +29 -0
- package/designer/plugins/plugin-context.d.ts +100 -0
- package/designer/plugins/plugin-manager.d.ts +44 -0
- package/designer/plugins/plugin-scope.d.ts +10 -0
- package/designer/plugins/sandbox-plugin.d.ts +9 -0
- package/designer/plugins/tdesign-forms.d.ts +32 -0
- package/designer/plugins/template-library.d.ts +7 -0
- package/designer/plugins/tutorials.d.ts +2 -0
- package/designer/plugins/types.d.ts +63 -0
- package/designer/presets.d.ts +8 -0
- package/designer/print-designer.vue.d.ts +25 -0
- package/designer/print-preview.vue.d.ts +4 -0
- package/designer/services/document-actions.d.ts +17 -0
- package/designer/services/editor-resources.d.ts +6 -0
- package/designer/services/element-drop.d.ts +4 -0
- package/designer/services/file-reader.d.ts +2 -0
- package/designer/services/file-service.d.ts +7 -0
- package/designer/services/preference-storage.d.ts +9 -0
- package/designer/services/sample-preview.d.ts +16 -0
- package/designer/services/stage-service.d.ts +24 -0
- package/designer/services/text-input.d.ts +10 -0
- package/designer/stores/canvas-store.d.ts +33 -0
- package/designer/stores/clipboard-store.d.ts +143 -0
- package/designer/stores/config-store.d.ts +80 -0
- package/designer/stores/data-source-store.d.ts +58 -0
- package/designer/stores/document-store.d.ts +1186 -0
- package/designer/stores/editor-store.d.ts +10224 -0
- package/designer/stores/element-group-store.d.ts +101 -0
- package/designer/stores/element-store.d.ts +237 -0
- package/designer/stores/follow-block-store.d.ts +290 -0
- package/designer/stores/guide-store.d.ts +44 -0
- package/designer/stores/history-store.d.ts +45 -0
- package/designer/stores/layout-store.d.ts +18 -0
- package/designer/stores/navigation-store.d.ts +56 -0
- package/designer/stores/page-store.d.ts +164 -0
- package/designer/stores/panel-store.d.ts +526 -0
- package/designer/stores/plugin-store.d.ts +19 -0
- package/designer/stores/rendering-store.d.ts +120 -0
- package/designer/stores/repeat-group-store.d.ts +99 -0
- package/designer/stores/scope-store.d.ts +31 -0
- package/designer/stores/selection-store.d.ts +101 -0
- package/designer/stores/template-store.d.ts +655 -0
- package/designer/stores/tutorial-store.d.ts +75 -0
- package/designer/stores/types.d.ts +135 -0
- package/designer/stores/ui-store.d.ts +723 -0
- package/designer/stores/view-store.d.ts +483 -0
- package/designer/stores/z-index-store.d.ts +62 -0
- package/designer/template-library/builtin/cost-sheet.json.d.ts +1450 -0
- package/designer/template-library/builtin/invoice.json.d.ts +3338 -0
- package/designer/template-library/builtin/purchase-order.json.d.ts +1541 -0
- package/designer/template-library/builtin/welcome.json.d.ts +658 -0
- package/designer/template-library/builtin-templates.d.ts +4183 -0
- package/designer/template-library/registry.d.ts +13 -0
- package/designer/template-library/remote-provider.d.ts +25 -0
- package/designer/template-library/types.d.ts +35 -0
- package/designer/tools.d.ts +18 -0
- package/designer/tutorials/builtins.d.ts +20 -0
- package/designer/tutorials/interaction-guard.d.ts +3 -0
- package/designer/tutorials/playback.d.ts +17 -0
- package/designer/tutorials/scene.d.ts +11 -0
- package/designer/tutorials/screenplay.d.ts +3 -0
- package/designer/tutorials/types.d.ts +64 -0
- package/designer/tutorials/use-tutorial-interaction-guard.d.ts +2 -0
- package/designer/tutorials/use-tutorial-playback.d.ts +30 -0
- package/designer/types.d.ts +39 -0
- package/designer.d.ts +7 -0
- package/designer.js +45 -0
- package/document-model-GhFP9OGp.js +1302 -0
- package/elements/definitions/barcode-element.d.ts +1 -0
- package/elements/definitions/ellipse-element.d.ts +1 -0
- package/elements/definitions/image-element.d.ts +1 -0
- package/elements/definitions/line-element.d.ts +5 -0
- package/elements/definitions/qrcode-element.d.ts +1 -0
- package/elements/definitions/rect-element.d.ts +1 -0
- package/elements/definitions/table-element.d.ts +1 -0
- package/elements/definitions/text-element.d.ts +3 -0
- package/elements/index.d.ts +8 -0
- package/elements/shared/image-drop.d.ts +2 -0
- package/elements/shared/line-style.d.ts +4 -0
- package/elements/shared/qrcode-inspector.d.ts +7 -0
- package/elements/shared/rect-style.d.ts +6 -0
- package/elements/shared/shape-props.d.ts +8 -0
- package/elements/shared/text-style.d.ts +29 -0
- package/elements/table/table-cell-style.d.ts +14 -0
- package/elements/table/table-continuation.d.ts +6 -0
- package/elements/table/table-html.d.ts +8 -0
- package/elements/table/table-layout.d.ts +81 -0
- package/elements/table/table-merges.d.ts +3 -0
- package/elements/table/table-overflow.d.ts +2 -0
- package/elements/table/table-pdf-render.d.ts +3 -0
- package/elements/table/table-preview.d.ts +3 -0
- package/elements/table/table-render.d.ts +3 -0
- package/elements/table/table-structure.d.ts +13 -0
- package/elements/table/table-style.d.ts +219 -0
- package/host-CuGR8rD6.js +123 -0
- package/html2canvas-DGcfD7Np.js +4004 -0
- package/index.d.ts +23 -0
- package/index.es-LpNWVW4Q.js +5742 -0
- package/index.js +84 -0
- package/invoice-DuBN6ZCM.js +3282 -0
- package/jspdf.es.min-CKTVf941.js +18216 -0
- package/locales/adapters/locale-loaders.d.ts +3 -0
- package/locales/index.d.ts +11 -0
- package/locales/plugin-locales.d.ts +11 -0
- package/locales/runtime.d.ts +2084 -0
- package/locales/setup.d.ts +3 -0
- package/locales/translations/zh-CN/app.json.d.ts +47 -0
- package/locales/translations/zh-CN/components.json.d.ts +38 -0
- package/locales/translations/zh-CN/core.json.d.ts +127 -0
- package/locales/translations/zh-CN/designer.json.d.ts +1562 -0
- package/locales/translations/zh-CN/elements.json.d.ts +287 -0
- package/locales/translations/zh-CN/parser.json.d.ts +34 -0
- package/locales/types.d.ts +8 -0
- package/locales/utils.d.ts +5 -0
- package/mount-print-designer-BLgVZOnm.js +50 -0
- package/mount-print-preview-D7M-1AqH.js +65 -0
- package/package.json +46 -4
- package/parser/html/html-parser.d.ts +22 -0
- package/parser/index.d.ts +28 -0
- package/parser/pdf/pdf-parser.d.ts +23 -0
- package/parser/prepare-document.d.ts +4 -0
- package/parser/prepare-resources.d.ts +7 -0
- package/parser/registry.d.ts +6 -0
- package/parser/render-runtime.d.ts +39 -0
- package/parser/types.d.ts +27 -0
- package/parser/worker/render.worker.d.ts +1 -0
- package/parser/worker/worker-capabilities.d.ts +6 -0
- package/parser/worker/worker-client.d.ts +17 -0
- package/parser/worker/worker-handler.d.ts +3 -0
- package/parser/worker/worker-protocol.d.ts +55 -0
- package/plugins/pen/editing-geometry.d.ts +10 -0
- package/plugins/pen/element.d.ts +4 -0
- package/plugins/pen/geometry.d.ts +19 -0
- package/plugins/pen/index.d.ts +3 -0
- package/plugins/pen/locale.d.ts +3 -0
- package/plugins/pen/locales/zh-CN.json.d.ts +18 -0
- package/plugins/pen/pen-edit-surface.vue.d.ts +10 -0
- package/plugins/pen/pen-overlay.vue.d.ts +7 -0
- package/plugins/pen/pen-plugin.d.ts +4 -0
- package/plugins/pen/pen-preview.vue.d.ts +8 -0
- package/plugins/pen/pen-surface.vue.d.ts +9 -0
- package/plugins/pen/resources.d.ts +2 -0
- package/plugins/saas/client.d.ts +3 -0
- package/plugins/saas/errors.d.ts +5 -0
- package/plugins/saas/index.d.ts +5 -0
- package/plugins/saas/integration.d.ts +2 -0
- package/plugins/saas/plugin.d.ts +17 -0
- package/plugins/saas/preferences.d.ts +5 -0
- package/plugins/saas/types.d.ts +96 -0
- package/presets-D3WhkbZK.js +13 -0
- package/purchase-order-DNBFPpEZ.js +1526 -0
- package/purify.es-BTRXviHm.js +876 -0
- package/registries-dZq8MewR.js +9737 -0
- package/rolldown-runtime-QGRDbDUS.js +19 -0
- package/runtime/browser-output.d.ts +18 -0
- package/runtime/document-output.d.ts +21 -0
- package/runtime/print-renderer.d.ts +26 -0
- package/runtime/registries.d.ts +10 -0
- package/runtime.js +45 -0
- package/saas-B1H161e1.js +524 -0
- package/saas.js +1 -0
- package/studio-BFQYHZsg.js +6244 -0
- package/studio-types.d.ts +200 -0
- package/studio.d.ts +2 -0
- package/style.css +2 -0
- package/styles/lib.d.ts +0 -0
- package/styles.js +0 -0
- package/types-Vh_6jhVV.js +5 -0
- package/vue.d.ts +13 -0
- package/vue.js +32849 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface PrintFont {
|
|
2
|
+
family: string;
|
|
3
|
+
style?: string;
|
|
4
|
+
url: string;
|
|
5
|
+
weight?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FontRequest {
|
|
8
|
+
family: string;
|
|
9
|
+
style?: string;
|
|
10
|
+
text: string;
|
|
11
|
+
weight?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RenderResources {
|
|
14
|
+
fonts?: FontRequest[];
|
|
15
|
+
}
|
|
16
|
+
export declare function prepareFonts(requests: FontRequest[], fonts?: PrintFont[], signal?: AbortSignal): Promise<{
|
|
17
|
+
css: string;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function copyLoadedFonts(target: Document): void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface FrameResourceProgress {
|
|
2
|
+
loaded: number;
|
|
3
|
+
total: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function loadFrameHtml(frame: HTMLIFrameElement, html: string, options?: {
|
|
6
|
+
onProgress?: (progress: FrameResourceProgress) => void;
|
|
7
|
+
onWarning?: (message: string) => void;
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML 生成工具。解析器输出的 HTML 会被浏览器解析,也可能被 PDF 解析器
|
|
3
|
+
* 以 XML 方式(foreignObject)再次解析,因此所有用户输入必须转义,
|
|
4
|
+
* 所有标签必须自闭合或显式闭合。
|
|
5
|
+
*/
|
|
6
|
+
export declare function escapeHtml(value: unknown): string;
|
|
7
|
+
/** 多行文本:先转义,再把换行变成 <br />(配合 white-space 处理空格) */
|
|
8
|
+
export declare function escapeMultiline(value: unknown): string;
|
|
9
|
+
export declare function styleToString(style: Record<string, number | string | undefined>): string;
|
|
10
|
+
/** 数字转毫米字符串(保留两位小数,去掉多余 0) */
|
|
11
|
+
export declare function mm(value: number): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 图片加载工具:设计器直接用 <img> 展示任意 URL;
|
|
3
|
+
* PDF 解析器需要把图片转为 dataURL(http 图片尝试 fetch,失败返回 null)。
|
|
4
|
+
*/
|
|
5
|
+
export declare function loadImageElement(src: string, signal?: AbortSignal): Promise<HTMLImageElement>;
|
|
6
|
+
/** 判断 dataURL 的图片格式(jsPDF 只直接支持 PNG / JPEG) */
|
|
7
|
+
export declare function dataUrlFormat(src: string): 'JPEG' | 'PNG' | null;
|
|
8
|
+
/**
|
|
9
|
+
* 任意来源的图片 → dataURL。已是 PNG / JPEG dataURL 时原样返回;
|
|
10
|
+
* 其余(webp / svg / http)统一经 canvas 转为 JPEG(有透明通道则转 PNG)。
|
|
11
|
+
* 失败返回 null,调用方绘制占位框。
|
|
12
|
+
*/
|
|
13
|
+
export declare function imageToDataUrl(src: string, signal?: AbortSignal): Promise<null | string>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { GState, jsPDF } from 'jspdf';
|
|
2
|
+
export declare const RASTER_PX_PER_MM: number;
|
|
3
|
+
/** CSS 参考密度:浏览器中 1 CSS px = 1/96 in。foreignObject 内的 mm 尺寸按此换算为 px。 */
|
|
4
|
+
export declare const CSS_PX_PER_MM: number;
|
|
5
|
+
export interface PdfTextOptions {
|
|
6
|
+
align: 'center' | 'justify' | 'left' | 'right';
|
|
7
|
+
color: string;
|
|
8
|
+
fontFamily: string;
|
|
9
|
+
fontSizePt: number;
|
|
10
|
+
fontStyle?: string;
|
|
11
|
+
fontWeight: number | string;
|
|
12
|
+
height: number;
|
|
13
|
+
letterSpacingPt: number;
|
|
14
|
+
lineHeight: number;
|
|
15
|
+
paddingMm?: number;
|
|
16
|
+
/** 单行模式:不换行,超宽以省略号截断(对应 CSS nowrap + ellipsis) */
|
|
17
|
+
singleLine?: boolean;
|
|
18
|
+
text: string;
|
|
19
|
+
textDecoration?: 'line-through' | 'none' | 'underline';
|
|
20
|
+
verticalAlign: 'bottom' | 'middle' | 'top';
|
|
21
|
+
width: number;
|
|
22
|
+
/** 文本盒(mm),含内边距 */
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
}
|
|
26
|
+
export interface PdfShapeOptions {
|
|
27
|
+
dashMm?: number[];
|
|
28
|
+
fill?: string;
|
|
29
|
+
radiusMm?: number;
|
|
30
|
+
stroke?: string;
|
|
31
|
+
strokeWidthMm?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare class PdfDraw {
|
|
34
|
+
pdf: jsPDF;
|
|
35
|
+
private readonly gStateCtor;
|
|
36
|
+
private elementOpacity;
|
|
37
|
+
private readonly webFonts;
|
|
38
|
+
constructor(pdf: jsPDF, gStateCtor: typeof GState);
|
|
39
|
+
ellipse(x: number, y: number, width: number, height: number, options: PdfShapeOptions): void;
|
|
40
|
+
image(imageData: HTMLCanvasElement | string, format: null | string, x: number, y: number, width: number, height: number): void;
|
|
41
|
+
line(x1: number, y1: number, x2: number, y2: number, options: {
|
|
42
|
+
color: string;
|
|
43
|
+
dashMm?: number[];
|
|
44
|
+
widthMm: number;
|
|
45
|
+
}): void;
|
|
46
|
+
rect(x: number, y: number, width: number, height: number, options: PdfShapeOptions): void;
|
|
47
|
+
resetElementOpacity(): void;
|
|
48
|
+
setDash(patternMm: number[]): void;
|
|
49
|
+
setElementOpacity(value: number): void;
|
|
50
|
+
setFillColor(color: string): void;
|
|
51
|
+
setStrokeColor(color: string): void;
|
|
52
|
+
setStrokeWidth(mm: number): void;
|
|
53
|
+
setTextColor(color: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* 绘制一个完整文本块:换行、对齐、行高、字间距、下划线/删除线。
|
|
56
|
+
* 自动决定矢量路径或光栅路径(详见文件头注释)。
|
|
57
|
+
*/
|
|
58
|
+
text(options: PdfTextOptions): void;
|
|
59
|
+
private applyColor;
|
|
60
|
+
private drawDecorationPdf;
|
|
61
|
+
private drawTextNative;
|
|
62
|
+
private drawTextRaster;
|
|
63
|
+
private nativeFontStyle;
|
|
64
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 二维码渲染原语:用 node-qrcode 的同步 create 拿到模块矩阵后自行绘制,
|
|
3
|
+
* 从而完全控制颜色 / 静默区 / 缩放,HTML 与 PDF 共用一套视觉。
|
|
4
|
+
*/
|
|
5
|
+
export interface QrCodeOptions {
|
|
6
|
+
background: string;
|
|
7
|
+
color: string;
|
|
8
|
+
level: 'H' | 'L' | 'M' | 'Q';
|
|
9
|
+
/** 静默区(模块数) */
|
|
10
|
+
margin: number;
|
|
11
|
+
value: string;
|
|
12
|
+
version?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function renderQrCanvas(options: QrCodeOptions, sizePx: number, scale?: number): HTMLCanvasElement | null;
|
|
15
|
+
export declare function qrCanvasToDataUrl(canvas: HTMLCanvasElement): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface RenderProgress {
|
|
2
|
+
completed: number;
|
|
3
|
+
stage: 'prepare' | 'render' | 'resources' | 'serialize';
|
|
4
|
+
total: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function waitIfRenderPaused(wait?: () => Promise<void>): Promise<void>;
|
|
7
|
+
export declare function yieldRenderTask(signal?: AbortSignal): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resourceToDataUrl(url: string, signal?: AbortSignal): Promise<string>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文本排版:字体样式构建、测量、换行。
|
|
3
|
+
*
|
|
4
|
+
* HTML 端由浏览器排版;PDF 端需要自行换行后逐行绘制(原生矢量文本)
|
|
5
|
+
* 或在 Canvas 上光栅化(中文 / 旋转文本),两端使用同一套测量逻辑,
|
|
6
|
+
* 保证所见即所得。
|
|
7
|
+
*/
|
|
8
|
+
export declare const FONT_FAMILIES: {
|
|
9
|
+
readonly label: string;
|
|
10
|
+
value: string;
|
|
11
|
+
}[];
|
|
12
|
+
/** jsPDF 内置字体映射 */
|
|
13
|
+
export declare const PDF_BUILTIN_FONT: Record<string, string>;
|
|
14
|
+
export interface TextStyleLike {
|
|
15
|
+
fontFamily: string;
|
|
16
|
+
fontSize: number;
|
|
17
|
+
fontStyle?: string;
|
|
18
|
+
fontWeight: number | string;
|
|
19
|
+
letterSpacing?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function isLatinOnly(text: string): boolean;
|
|
22
|
+
export declare function isCjkFamily(family: string): boolean;
|
|
23
|
+
/** 构建 Canvas 测量用的 font 简写(sizePx 为 CSS 像素) */
|
|
24
|
+
export declare function buildFontCss(style: TextStyleLike, sizePx: number): string;
|
|
25
|
+
export declare function measureTextWidth(text: string, fontCss: string, letterSpacingPx: number): number;
|
|
26
|
+
/**
|
|
27
|
+
* 单行省略:空白折叠为单个空格(对应 CSS nowrap),超宽时按字符截断并追加省略号。
|
|
28
|
+
*/
|
|
29
|
+
export declare function ellipsizeTextLine(text: string, fontCss: string, maxWidthPx: number, letterSpacingPx?: number): string;
|
|
30
|
+
/**
|
|
31
|
+
* 贪心换行:以"单词"为单位填充(兼容中英文混排),超宽的单词按字符硬拆。
|
|
32
|
+
* 显式换行符始终生效。返回的行数组用于 HTML 之外的 PDF / Canvas 渲染。
|
|
33
|
+
*/
|
|
34
|
+
export declare function wrapTextLines(text: string, fontCss: string, maxWidthPx: number, letterSpacingPx?: number): string[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DataContext, WarningCollector } from './data-context';
|
|
2
|
+
import { Rect } from './geometry';
|
|
3
|
+
import { PageLayout } from './page-layout';
|
|
4
|
+
import { RepeatLayoutCursor } from './repeat-layout';
|
|
5
|
+
import { ElementNode, RepeatGroup } from './types';
|
|
6
|
+
export interface MaterializedPlacement extends RepeatLayoutCursor {
|
|
7
|
+
elements: ElementNode[];
|
|
8
|
+
}
|
|
9
|
+
export declare function expandRepeatGroup(options: {
|
|
10
|
+
bounds: Rect;
|
|
11
|
+
context: DataContext;
|
|
12
|
+
cursor: RepeatLayoutCursor;
|
|
13
|
+
getPage: (draftIndex: number) => PageLayout;
|
|
14
|
+
group: RepeatGroup;
|
|
15
|
+
prototypes: ElementNode[];
|
|
16
|
+
warnings: WarningCollector;
|
|
17
|
+
}): Generator<MaterializedPlacement>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Rect } from './geometry';
|
|
2
|
+
import { PageLayout } from './page-layout';
|
|
3
|
+
import { RepeatGroup } from './types';
|
|
4
|
+
export interface RepeatLayoutCursor {
|
|
5
|
+
bottomY: number;
|
|
6
|
+
draftIndex: number;
|
|
7
|
+
}
|
|
8
|
+
export interface RepeatPlacement {
|
|
9
|
+
bottomY: number;
|
|
10
|
+
draftIndex: number;
|
|
11
|
+
offsetX: number;
|
|
12
|
+
offsetY: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function getRepeatColumnCount(bounds: Rect, group: RepeatGroup, page: PageLayout): number;
|
|
15
|
+
export declare function layoutRepeatItems(bounds: Rect, group: RepeatGroup, page: PageLayout, items: readonly Rect[], cursor: RepeatLayoutCursor, getPage?: (draftIndex: number) => PageLayout): Generator<RepeatPlacement>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PrintFont } from './render/fonts';
|
|
2
|
+
export interface RuntimeConfig {
|
|
3
|
+
rendering: {
|
|
4
|
+
fonts?: PrintFont[];
|
|
5
|
+
worker: boolean;
|
|
6
|
+
workerTimeoutMs: number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface RuntimeConfigOptions {
|
|
10
|
+
rendering?: Partial<RuntimeConfig['rendering']>;
|
|
11
|
+
}
|
|
12
|
+
export declare function createRuntimeConfig(options?: RuntimeConfigOptions): RuntimeConfig;
|
package/core/types.d.ts
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { Point } from './geometry';
|
|
2
|
+
export type ElementId = string;
|
|
3
|
+
/**
|
|
4
|
+
* 元素节点,坐标与尺寸单位一律为毫米(mm),角度为度(deg)。
|
|
5
|
+
*
|
|
6
|
+
* 几何以「定界框」或「点集」两种方式之一表达:
|
|
7
|
+
* - 普通元素:x/y/width/height + rotation(绕中心旋转);
|
|
8
|
+
* - 点驱动元素(线 / 钢笔路径等,见 ElementDefinition.pointBased):
|
|
9
|
+
* points 为页面坐标顶点序列(真身),x/y/width/height 恒等于点集的
|
|
10
|
+
* 轴对齐包围盒,rotation 恒为 0(方向由点集自身表达)。
|
|
11
|
+
*/
|
|
12
|
+
export interface ElementNode {
|
|
13
|
+
/**
|
|
14
|
+
* 结构化数据绑定(键为 props 键名,值为绑定路径)。
|
|
15
|
+
* 字符串类绑定通常直接写在 prop 值里(内嵌 {{ 路径 }} 表达式),
|
|
16
|
+
* 此映射用于无法用字符串表达的结构:如表格 rows 绑定数组 { rows: 'items' }。
|
|
17
|
+
*/
|
|
18
|
+
bindings?: Record<string, string>;
|
|
19
|
+
height: number;
|
|
20
|
+
id: ElementId;
|
|
21
|
+
locked: boolean;
|
|
22
|
+
/** 图层名称(图层面板显示) */
|
|
23
|
+
name: string;
|
|
24
|
+
/** 不透明度 0 - 1 */
|
|
25
|
+
opacity: number;
|
|
26
|
+
/** 点驱动元素的顶点序列(页面坐标 mm);普通元素不设置 */
|
|
27
|
+
points?: Point[];
|
|
28
|
+
/** 类型专属属性,由元素定义(ElementDefinition)解释 */
|
|
29
|
+
props: Record<string, unknown>;
|
|
30
|
+
/** 旋转角度,绕元素中心,顺时针为正;点驱动元素恒为 0 */
|
|
31
|
+
rotation: number;
|
|
32
|
+
/** 元素类型,对应元素注册中心中的 definition.type */
|
|
33
|
+
type: string;
|
|
34
|
+
visible: boolean;
|
|
35
|
+
width: number;
|
|
36
|
+
/** 元素左上角在页面内的 x 坐标(mm) */
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 元素组(图层组):容器内一组在叠放顺序上连续的元素,可嵌套。
|
|
42
|
+
*
|
|
43
|
+
* 只表达成员关系,不改变元素的扁平存储与渲染——解析器、分页、循环区块等
|
|
44
|
+
* 继续只看 elements 数组。成员连续性与嵌套一致性由 core/element-group.ts 维护。
|
|
45
|
+
*/
|
|
46
|
+
export interface ElementGroup {
|
|
47
|
+
/** 全部后代元素 id(含嵌套子组的元素),在所属容器 elements 中连续排列 */
|
|
48
|
+
elementIds: ElementId[];
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
/** 所属元素容器(页面 / 页面模板容器)id */
|
|
52
|
+
pageId: string;
|
|
53
|
+
/** 父组 id;缺省 = 位于容器顶层 */
|
|
54
|
+
parentId?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface ElementLayoutPatch {
|
|
57
|
+
id: ElementId;
|
|
58
|
+
patch: Partial<ElementNode>;
|
|
59
|
+
}
|
|
60
|
+
export interface Guide {
|
|
61
|
+
id: string;
|
|
62
|
+
orientation: 'horizontal' | 'vertical';
|
|
63
|
+
/** 距页面左(vertical)/ 上(horizontal)边缘的距离,mm */
|
|
64
|
+
position: number;
|
|
65
|
+
}
|
|
66
|
+
export interface PageMargins {
|
|
67
|
+
bottom: number;
|
|
68
|
+
left: number;
|
|
69
|
+
right: number;
|
|
70
|
+
top: number;
|
|
71
|
+
}
|
|
72
|
+
/** 单个打印页面 */
|
|
73
|
+
export interface PageNode {
|
|
74
|
+
background: string;
|
|
75
|
+
/** 元素数组,索引顺序即叠放顺序:索引 0 在最底层 */
|
|
76
|
+
elements: ElementNode[];
|
|
77
|
+
guides: Guide[];
|
|
78
|
+
height: number;
|
|
79
|
+
id: string;
|
|
80
|
+
margins?: PageMargins;
|
|
81
|
+
name: string;
|
|
82
|
+
/** 页面模板(PageTemplate,作用同 InDesign 主页)id;缺省 = 内置空白模板 */
|
|
83
|
+
templateId?: string;
|
|
84
|
+
width: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 页面模板:一组可被多个页面实时引用的页面内容(元素 / 参考线 / 背景),
|
|
88
|
+
* 用于统一页眉页脚、背景等跨页面内容——与"文档即打印模板"(renderPrintTemplate)
|
|
89
|
+
* 的 Template 概念不同,本类型只描述页面级母版。
|
|
90
|
+
*/
|
|
91
|
+
export interface PageTemplate {
|
|
92
|
+
/** 模板背景色(实时作用于所有应用页);缺省 = 页面沿用自身背景 */
|
|
93
|
+
background?: string;
|
|
94
|
+
baseTemplateId?: string;
|
|
95
|
+
/** 内置空白模板:不可删除,页面缺省应用 */
|
|
96
|
+
builtin?: boolean;
|
|
97
|
+
evenPage?: PageNode;
|
|
98
|
+
evenPages?: boolean;
|
|
99
|
+
facingPages?: boolean;
|
|
100
|
+
id: string;
|
|
101
|
+
name: string;
|
|
102
|
+
oddPages?: boolean;
|
|
103
|
+
/** 元素内部资源由所属元素管理,不进入普通模板目录。 */
|
|
104
|
+
owner?: {
|
|
105
|
+
elementId: string;
|
|
106
|
+
purpose: string;
|
|
107
|
+
};
|
|
108
|
+
/** 模板内容容器:复用 PageNode 以复用元素编辑与反序列化能力(约定 page.id === 模板 id) */
|
|
109
|
+
page: PageNode;
|
|
110
|
+
/** 模板运行所必需的元素;统一约束删除、隐藏和类型修改。 */
|
|
111
|
+
requiredElements?: {
|
|
112
|
+
elementId: string;
|
|
113
|
+
type: string;
|
|
114
|
+
}[];
|
|
115
|
+
}
|
|
116
|
+
/** 打印文档(设计器的输入与输出、解析器的输入) */
|
|
117
|
+
export interface PrintDocument {
|
|
118
|
+
/** 模板级数据源:定义数据从哪里来、结构是什么(渲染时由 input 注入真实数据) */
|
|
119
|
+
dataSources?: DataSource[];
|
|
120
|
+
/** 元素组(图层组):成员关系层,不参与渲染输出 */
|
|
121
|
+
elementGroups?: ElementGroup[];
|
|
122
|
+
followBlocks?: FollowBlock[];
|
|
123
|
+
name: string;
|
|
124
|
+
pages: PageNode[];
|
|
125
|
+
parserVersion?: string;
|
|
126
|
+
/** 模板级循环区块:渲染时按绑定的数组展开为多副本 / 多页 */
|
|
127
|
+
repeatGroups?: RepeatGroup[];
|
|
128
|
+
/** 页面模板集合(含内置空白模板);渲染时被页面实时引用 */
|
|
129
|
+
templates?: PageTemplate[];
|
|
130
|
+
version: string;
|
|
131
|
+
}
|
|
132
|
+
export type LayoutTarget = {
|
|
133
|
+
id: string;
|
|
134
|
+
kind: 'element';
|
|
135
|
+
} | {
|
|
136
|
+
id: string;
|
|
137
|
+
kind: 'followBlock';
|
|
138
|
+
} | {
|
|
139
|
+
id: string;
|
|
140
|
+
kind: 'repeatGroup';
|
|
141
|
+
};
|
|
142
|
+
export interface FollowBlock {
|
|
143
|
+
elementIds: string[];
|
|
144
|
+
gap: number;
|
|
145
|
+
id: string;
|
|
146
|
+
name: string;
|
|
147
|
+
pageId: string;
|
|
148
|
+
target: LayoutTarget;
|
|
149
|
+
}
|
|
150
|
+
export type SchemaFieldType = 'array' | 'boolean' | 'date' | 'number' | 'object' | 'string';
|
|
151
|
+
/** 数据源字段树节点:object / array 通过 children 描述下级结构 */
|
|
152
|
+
export interface DataSourceField {
|
|
153
|
+
/** object 子字段 / array 元素字段 */
|
|
154
|
+
children?: DataSourceField[];
|
|
155
|
+
/** 显示名(字段树与绑定选择器展示,可省略) */
|
|
156
|
+
label?: string;
|
|
157
|
+
/** 字段名(取值键,绑定路径的最后一段) */
|
|
158
|
+
name: string;
|
|
159
|
+
type: SchemaFieldType;
|
|
160
|
+
}
|
|
161
|
+
export interface DataSource {
|
|
162
|
+
description?: string;
|
|
163
|
+
/** 唯一根键,即绑定表达式的首段(input 的顶层键),如 data / customer / items */
|
|
164
|
+
key: string;
|
|
165
|
+
label: string;
|
|
166
|
+
/** 示例数据:设计时数据预览与默认打印输入;结构须与 schema 对应 */
|
|
167
|
+
sampleData?: unknown;
|
|
168
|
+
/** 结构声明(可独立于真实数据存在) */
|
|
169
|
+
schema: DataSourceField[];
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* 循环区块:一组扁平页面元素 + 绑定的数组路径。
|
|
173
|
+
* 渲染时每个数组元素生成一份副本(copy #0 保持原位),按方向平铺,
|
|
174
|
+
* 超出页高自动分页;非成员元素只保留在所属页面,跨页公共内容由页面模板提供。
|
|
175
|
+
*/
|
|
176
|
+
export interface RepeatGroup {
|
|
177
|
+
/** 绑定的数组路径,如 'items' */
|
|
178
|
+
collection: string;
|
|
179
|
+
/** 网格列数 */
|
|
180
|
+
columns: number;
|
|
181
|
+
/** 副本排布:纵向、网格,或每条数据独占一页并保持设计位置 */
|
|
182
|
+
direction: 'grid' | 'page' | 'vertical';
|
|
183
|
+
/** 区块成员元素 id(同一页面上的扁平元素子集) */
|
|
184
|
+
elementIds: string[];
|
|
185
|
+
/** 网格列间距(mm) */
|
|
186
|
+
gapX: number;
|
|
187
|
+
/** 副本垂直间距(mm) */
|
|
188
|
+
gapY: number;
|
|
189
|
+
id: string;
|
|
190
|
+
name: string;
|
|
191
|
+
/** 所属页面 id */
|
|
192
|
+
pageId: string;
|
|
193
|
+
positionMode?: 'fixed' | 'flow';
|
|
194
|
+
}
|
|
195
|
+
export interface PageSize {
|
|
196
|
+
height: number;
|
|
197
|
+
width: number;
|
|
198
|
+
}
|
|
199
|
+
export type HorizontalAlign = 'center' | 'left' | 'right';
|
|
200
|
+
export type VerticalAlign = 'bottom' | 'middle' | 'top';
|
|
201
|
+
export type DashStyle = 'dashed' | 'dotted' | 'solid';
|
|
202
|
+
/** 常用纸张预设,页面设置对话框使用;允许运行时扩展 */
|
|
203
|
+
export declare const PAGE_PRESETS: {
|
|
204
|
+
height: number;
|
|
205
|
+
label: string;
|
|
206
|
+
width: number;
|
|
207
|
+
}[];
|
|
208
|
+
export interface InspectorFieldTypeRegistry {
|
|
209
|
+
boolean: true;
|
|
210
|
+
color: true;
|
|
211
|
+
image: true;
|
|
212
|
+
number: true;
|
|
213
|
+
select: true;
|
|
214
|
+
string: true;
|
|
215
|
+
table: true;
|
|
216
|
+
/** 表格边框组合控件(模式 + 外框/内线/四边独立,支持单边模式) */
|
|
217
|
+
tableBorders: true;
|
|
218
|
+
tableContinuationLayout: true;
|
|
219
|
+
/** 表格数据预览(只读,按 bindings.rows 解析示例数据) */
|
|
220
|
+
tableDataPreview: true;
|
|
221
|
+
textarea: true;
|
|
222
|
+
}
|
|
223
|
+
export type InspectorFieldType = keyof InspectorFieldTypeRegistry;
|
|
224
|
+
export interface InspectorValueAccessor {
|
|
225
|
+
get: (node: ElementNode) => unknown;
|
|
226
|
+
set: (node: ElementNode, value: unknown) => Partial<ElementNode>;
|
|
227
|
+
}
|
|
228
|
+
export interface InspectorTextSelection {
|
|
229
|
+
end: number;
|
|
230
|
+
start: number;
|
|
231
|
+
}
|
|
232
|
+
export interface InspectorBinding {
|
|
233
|
+
appendable?: boolean;
|
|
234
|
+
formatHint?: (path: string) => string;
|
|
235
|
+
isBound?: (node: ElementNode, field: InspectorField) => boolean;
|
|
236
|
+
mode?: 'collection' | 'field';
|
|
237
|
+
read?: (node: ElementNode, field: InspectorField) => string;
|
|
238
|
+
readPaths?: (node: ElementNode, field: InspectorField) => string[];
|
|
239
|
+
write?: (node: ElementNode, field: InspectorField, path: string, mode: 'append' | 'replace', selection?: InspectorTextSelection) => Partial<ElementNode>;
|
|
240
|
+
}
|
|
241
|
+
export interface InspectorFieldOption {
|
|
242
|
+
label: string;
|
|
243
|
+
value: number | string;
|
|
244
|
+
}
|
|
245
|
+
export interface InspectorField {
|
|
246
|
+
advanced?: boolean;
|
|
247
|
+
/** 多选同类型元素时是否允许批量编辑该字段。 */
|
|
248
|
+
batchEditable?: boolean;
|
|
249
|
+
/** 该字段支持数据绑定:属性面板显示"绑定"按钮 */
|
|
250
|
+
bindable?: boolean;
|
|
251
|
+
binding?: InspectorBinding;
|
|
252
|
+
controlProps?: Record<string, unknown>;
|
|
253
|
+
disabledIf?: (props: Record<string, unknown>) => boolean;
|
|
254
|
+
feedback?: (node: ElementNode, previousNode?: ElementNode) => {
|
|
255
|
+
error?: string;
|
|
256
|
+
help?: string;
|
|
257
|
+
info?: string;
|
|
258
|
+
};
|
|
259
|
+
/** 字段下方的灰色说明文字 */
|
|
260
|
+
help?: string;
|
|
261
|
+
/** 对应 props 上的键名 */
|
|
262
|
+
key: string;
|
|
263
|
+
label: string;
|
|
264
|
+
max?: number;
|
|
265
|
+
/** number 字段的约束 */
|
|
266
|
+
min?: number;
|
|
267
|
+
multiline?: boolean;
|
|
268
|
+
/** select 字段的选项 */
|
|
269
|
+
options?: InspectorFieldOption[];
|
|
270
|
+
/** string / textarea 的占位提示 */
|
|
271
|
+
placeholder?: string;
|
|
272
|
+
/** 动态显隐:返回 false 时该字段不渲染 */
|
|
273
|
+
showIf?: (props: Record<string, unknown>) => boolean;
|
|
274
|
+
stacked?: boolean;
|
|
275
|
+
step?: number;
|
|
276
|
+
type: InspectorFieldType;
|
|
277
|
+
/** 显示单位后缀 */
|
|
278
|
+
unit?: string;
|
|
279
|
+
value?: InspectorValueAccessor;
|
|
280
|
+
}
|
|
281
|
+
export interface InspectorSection {
|
|
282
|
+
advanced?: boolean;
|
|
283
|
+
fields: InspectorField[];
|
|
284
|
+
/** 表单外的区块说明,换行分隔各条提示。 */
|
|
285
|
+
hint?: (node: ElementNode) => string;
|
|
286
|
+
/** 所属设置 tab 标题:声明后弹窗设置按 tab 分组渲染(属性面板保持平铺,不受影响) */
|
|
287
|
+
tab?: string;
|
|
288
|
+
title: string;
|
|
289
|
+
}
|
package/core/units.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 单位换算。文档内部一律使用毫米(mm),字号使用磅(pt),
|
|
3
|
+
* 屏幕渲染时按当前缩放换算为 CSS 像素。
|
|
4
|
+
*/
|
|
5
|
+
/** CSS 标准:96 CSS 像素 = 1 英寸 */
|
|
6
|
+
export declare const PX_PER_MM: number;
|
|
7
|
+
/** 1 磅 = 1/72 英寸 */
|
|
8
|
+
export declare const MM_PER_PT: number;
|
|
9
|
+
export declare function mmToPx(mm: number, zoom?: number): number;
|
|
10
|
+
export declare function pxToMm(px: number, zoom?: number): number;
|
|
11
|
+
export declare function ptToMm(pt: number): number;
|
|
12
|
+
export declare function ptToPx(pt: number, zoom?: number): number;
|
|
13
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
14
|
+
/** 四舍五入到指定小数位,用于消除浮点误差,保持 JSON 干净 */
|
|
15
|
+
export declare function round(value: number, digits?: number): number;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const DEFAULT_INITIAL_Z_INDEX = 2000;
|
|
2
|
+
export interface ZIndexEntry {
|
|
3
|
+
id: number;
|
|
4
|
+
interactive: boolean;
|
|
5
|
+
zIndex: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ZIndexOptions {
|
|
8
|
+
interactive?: boolean;
|
|
9
|
+
zIndex?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ZIndexState {
|
|
12
|
+
currentZIndex: number;
|
|
13
|
+
entries: ZIndexEntry[];
|
|
14
|
+
initialZIndex: number;
|
|
15
|
+
sequence: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ZIndexService {
|
|
18
|
+
bringToFront(id: number): number | undefined;
|
|
19
|
+
close(id: number): void;
|
|
20
|
+
configure(initialZIndex: number): void;
|
|
21
|
+
readonly currentZIndex: number;
|
|
22
|
+
get(id: number): undefined | ZIndexEntry;
|
|
23
|
+
readonly initialZIndex: number;
|
|
24
|
+
isTop(id: number): boolean;
|
|
25
|
+
nextZIndex(): number;
|
|
26
|
+
open(options?: ZIndexOptions): number;
|
|
27
|
+
}
|
|
28
|
+
export declare function createZIndexState(initialZIndex?: number): ZIndexState;
|
|
29
|
+
export declare class ZIndexManager implements ZIndexService {
|
|
30
|
+
private state;
|
|
31
|
+
get currentZIndex(): number;
|
|
32
|
+
get initialZIndex(): number;
|
|
33
|
+
constructor(state: ZIndexState);
|
|
34
|
+
bringToFront(id: number): number | undefined;
|
|
35
|
+
close(id: number): void;
|
|
36
|
+
configure(initialZIndex: number): void;
|
|
37
|
+
get(id: number): undefined | ZIndexEntry;
|
|
38
|
+
isTop(id: number): boolean;
|
|
39
|
+
nextZIndex(): number;
|
|
40
|
+
open(options?: ZIndexOptions): number;
|
|
41
|
+
}
|
package/core.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { G as e, U as t, W as n, c as r, f as i, n as a, p as o, u as s } from "./document-model-GhFP9OGp.js";
|
|
2
|
+
import { A as c, B as l } from "./cloneDeep-PCw2ErRl.js";
|
|
3
|
+
// src/core/types.ts
|
|
4
|
+
var u = [
|
|
5
|
+
{
|
|
6
|
+
height: 297,
|
|
7
|
+
get label() {
|
|
8
|
+
return l("core.types.a4Portrait");
|
|
9
|
+
},
|
|
10
|
+
width: 210
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
height: 210,
|
|
14
|
+
get label() {
|
|
15
|
+
return l("core.types.a4Landscape");
|
|
16
|
+
},
|
|
17
|
+
width: 297
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
height: 210,
|
|
21
|
+
get label() {
|
|
22
|
+
return l("core.types.a5Portrait");
|
|
23
|
+
},
|
|
24
|
+
width: 148
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
height: 279.4,
|
|
28
|
+
get label() {
|
|
29
|
+
return l("core.types.letter");
|
|
30
|
+
},
|
|
31
|
+
width: 215.9
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
height: 200,
|
|
35
|
+
get label() {
|
|
36
|
+
return l("core.types.receipt80mm");
|
|
37
|
+
},
|
|
38
|
+
width: 80
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
height: 160,
|
|
42
|
+
get label() {
|
|
43
|
+
return l("core.types.receipt58mm");
|
|
44
|
+
},
|
|
45
|
+
width: 58
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
export { a as DOCUMENT_VERSION, c as DesignerException, t as ElementRegistry, u as PAGE_PRESETS, r as createElement, s as createPage, i as createTemplate, n as defineElement, o as deserializeDocument, e as elementRegistry };
|