@borurio-print/print-designer 1.0.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.
Files changed (45) hide show
  1. package/README.md +117 -0
  2. package/dist-lib/PrintDesigner.vue.d.ts +3 -0
  3. package/dist-lib/assets/iconfont/iconfont.d.ts +1 -0
  4. package/dist-lib/components/IconFont.vue.d.ts +14 -0
  5. package/dist-lib/core/componentRegistry.d.ts +25 -0
  6. package/dist-lib/core/dynamicText.d.ts +21 -0
  7. package/dist-lib/core/elementInteraction.d.ts +31 -0
  8. package/dist-lib/core/pdfGenerator.d.ts +5 -0
  9. package/dist-lib/core/types.d.ts +117 -0
  10. package/dist-lib/html2canvas.esm-BWVIUcAF.js +4802 -0
  11. package/dist-lib/iconfont-BnrPP-u4.js +35 -0
  12. package/dist-lib/index-CWXXAPGm.js +6957 -0
  13. package/dist-lib/index.d.ts +8 -0
  14. package/dist-lib/index.es-D9S6l8PM.js +6649 -0
  15. package/dist-lib/index.js +11 -0
  16. package/dist-lib/locales/en-US.d.ts +87 -0
  17. package/dist-lib/locales/zh-CN.d.ts +87 -0
  18. package/dist-lib/pdfGenerator-CjZCu1Cq.js +9594 -0
  19. package/dist-lib/purify.es-C841O74m.js +897 -0
  20. package/dist-lib/style.css +1 -0
  21. package/dist-lib/views/print-designer/components/BarcodeSvgElement.vue.d.ts +11 -0
  22. package/dist-lib/views/print-designer/components/ComponentPanel.vue.d.ts +8 -0
  23. package/dist-lib/views/print-designer/components/ElementListPanel.vue.d.ts +14 -0
  24. package/dist-lib/views/print-designer/components/ElementPropertiesPanel.vue.d.ts +12 -0
  25. package/dist-lib/views/print-designer/components/PdfPagesRenderer.vue.d.ts +14 -0
  26. package/dist-lib/views/print-designer/components/PreviewPanel.vue.d.ts +14 -0
  27. package/dist-lib/views/print-designer/components/PrintDialog.vue.d.ts +16 -0
  28. package/dist-lib/views/print-designer/components/QrcodeSvgElement.vue.d.ts +11 -0
  29. package/dist-lib/views/print-designer/components/SvgElementsRenderer.vue.d.ts +27 -0
  30. package/dist-lib/views/print-designer/components/SvgSelectionBox.vue.d.ts +11 -0
  31. package/dist-lib/views/print-designer/components/TemplateCanvas.vue.d.ts +19 -0
  32. package/dist-lib/views/print-designer/components/TemplateInfoDialog.vue.d.ts +17 -0
  33. package/dist-lib/views/print-designer/components/TemplateInfoPanel.vue.d.ts +13 -0
  34. package/dist-lib/views/print-designer/components/WorkspaceToolbar.vue.d.ts +19 -0
  35. package/dist-lib/views/print-designer/components/properties/ContentProperty.vue.d.ts +12 -0
  36. package/dist-lib/views/print-designer/components/properties/FixedTimeProperty.vue.d.ts +12 -0
  37. package/dist-lib/views/print-designer/components/properties/FontSizeProperty.vue.d.ts +12 -0
  38. package/dist-lib/views/print-designer/components/properties/FontWeightProperty.vue.d.ts +12 -0
  39. package/dist-lib/views/print-designer/components/properties/HeightProperty.vue.d.ts +12 -0
  40. package/dist-lib/views/print-designer/components/properties/IncludeTimeProperty.vue.d.ts +12 -0
  41. package/dist-lib/views/print-designer/components/properties/RotationProperty.vue.d.ts +12 -0
  42. package/dist-lib/views/print-designer/components/properties/StrokeWidthProperty.vue.d.ts +12 -0
  43. package/dist-lib/views/print-designer/components/properties/TimeModeProperty.vue.d.ts +12 -0
  44. package/dist-lib/views/print-designer/components/properties/WidthProperty.vue.d.ts +12 -0
  45. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ .print-designer-layout,.print-designer-layout *,.print-designer-reset-message-box,.print-designer-reset-message-box *,.print-designer-date-picker-popper,.print-designer-date-picker-popper *{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--print-designer-scrollbar-color) transparent}.print-designer-layout,.print-designer-reset-message-box,.print-designer-date-picker-popper{--print-designer-scrollbar-color: #e4e7ed;--print-designer-scrollbar-hover-color: #e4e7ed;--el-color-primary: #0fd59d;--el-color-primary-light-3: #57e2ba;--el-color-primary-light-5: #87eace;--el-color-primary-light-7: #b7f2e2;--el-color-primary-light-8: #cff7eb;--el-color-primary-light-9: #e7fbf5;--el-color-primary-dark-2: #0caa7e;--el-text-color-primary: #303133;--el-text-color-regular: #606266;--el-text-color-secondary: #909399;--el-text-color-placeholder: #a8abb2;--el-bg-color: #ffffff;--el-bg-color-page: #f5f6f8;--el-border-color: #dcdfe6;--el-border-color-lighter: #ebeef5}.print-designer-layout::-webkit-scrollbar,.print-designer-layout *::-webkit-scrollbar,.print-designer-reset-message-box::-webkit-scrollbar,.print-designer-reset-message-box *::-webkit-scrollbar,.print-designer-date-picker-popper::-webkit-scrollbar,.print-designer-date-picker-popper *::-webkit-scrollbar{width:6px;height:6px}.print-designer-layout::-webkit-scrollbar-track,.print-designer-layout *::-webkit-scrollbar-track,.print-designer-reset-message-box::-webkit-scrollbar-track,.print-designer-reset-message-box *::-webkit-scrollbar-track,.print-designer-date-picker-popper::-webkit-scrollbar-track,.print-designer-date-picker-popper *::-webkit-scrollbar-track{background:transparent}.print-designer-layout::-webkit-scrollbar-thumb,.print-designer-layout *::-webkit-scrollbar-thumb,.print-designer-reset-message-box::-webkit-scrollbar-thumb,.print-designer-reset-message-box *::-webkit-scrollbar-thumb,.print-designer-date-picker-popper::-webkit-scrollbar-thumb,.print-designer-date-picker-popper *::-webkit-scrollbar-thumb{background-color:var(--print-designer-scrollbar-color);border-radius:999px}.print-designer-layout::-webkit-scrollbar-thumb:hover,.print-designer-layout *::-webkit-scrollbar-thumb:hover,.print-designer-reset-message-box::-webkit-scrollbar-thumb:hover,.print-designer-reset-message-box *::-webkit-scrollbar-thumb:hover,.print-designer-date-picker-popper::-webkit-scrollbar-thumb:hover,.print-designer-date-picker-popper *::-webkit-scrollbar-thumb:hover{background-color:var(--print-designer-scrollbar-hover-color)}.print-designer-layout::-webkit-scrollbar-corner,.print-designer-layout *::-webkit-scrollbar-corner,.print-designer-reset-message-box::-webkit-scrollbar-corner,.print-designer-reset-message-box *::-webkit-scrollbar-corner,.print-designer-date-picker-popper::-webkit-scrollbar-corner,.print-designer-date-picker-popper *::-webkit-scrollbar-corner{background:transparent}.icon-font[data-v-9347cfbe]{display:inline-block;flex-shrink:0;overflow:hidden;vertical-align:-.15em}.component-panel[data-v-5c913949]{padding:16px 20px 18px;border-bottom:1px solid var(--el-border-color-lighter)}.component-panel__title[data-v-5c913949]{margin:0;color:var(--el-text-color-primary);font-size:14px;font-weight:600;line-height:22px}.component-panel__list[data-v-5c913949]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.component-panel__item[data-v-5c913949]{display:flex;align-items:center;justify-content:center;width:100%;height:32px;margin:0;padding:0;color:var(--el-text-color-regular);border:1px solid var(--el-border-color-lighter);border-radius:4px}.component-panel__item+.component-panel__item[data-v-5c913949]{margin-left:0}.element-list-panel[data-v-bdd2af6b]{width:180px;overflow:hidden;border:1px solid var(--el-border-color-lighter);border-radius:var(--el-border-radius-base);background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.element-list-panel__items[data-v-bdd2af6b]{max-height:244px;padding:6px;overflow-y:auto}.element-list-panel__item[data-v-bdd2af6b]{display:flex;align-items:center;box-sizing:border-box;width:100%;height:32px;border-radius:var(--el-border-radius-small);color:var(--el-text-color-regular);background:transparent}.element-list-panel__item[data-v-bdd2af6b]:hover{background:var(--el-fill-color-light)}.element-list-panel__item--selected[data-v-bdd2af6b],.element-list-panel__item--selected[data-v-bdd2af6b]:hover{color:var(--el-color-primary);background:var(--el-color-primary-light-9)}.element-list-panel__select-button[data-v-bdd2af6b]{display:flex;flex:1;align-items:center;align-self:stretch;min-width:0;padding:0 8px;border:0;color:inherit;font:inherit;font-size:12px;text-align:left;background:transparent;cursor:pointer}.element-list-panel__delete-button[data-v-bdd2af6b]{display:flex;flex:none;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;color:var(--el-color-danger);background:transparent;cursor:pointer}.element-list-panel__delete-button[data-v-bdd2af6b]:hover{opacity:.75}.element-list-panel__item-label[data-v-bdd2af6b]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-property-number[data-v-d55e9e10]{width:132px}.element-property-unit[data-v-d55e9e10]{margin-left:8px;color:var(--el-text-color-secondary)}.element-property-number[data-v-d4b8a7d9]{width:132px}.element-property-unit[data-v-d4b8a7d9]{margin-left:8px;color:var(--el-text-color-secondary)}.fixed-time-property__picker[data-v-424e1f20]{width:100%}.rotation-property[data-v-5be7f44c]{display:flex;align-items:center;gap:10px;width:100%}.rotation-property__slider[data-v-5be7f44c]{flex:1;min-width:0}.rotation-property__number[data-v-5be7f44c]{width:58px}.rotation-property__unit[data-v-5be7f44c]{color:var(--el-text-color-secondary)}.element-property-number[data-v-ded95458]{width:132px}.element-property-unit[data-v-ded95458]{margin-left:8px;color:var(--el-text-color-secondary)}.element-property-number[data-v-2b2f266a]{width:132px}.element-property-unit[data-v-2b2f266a]{margin-left:8px;color:var(--el-text-color-secondary)}.element-properties-panel[data-v-4f590571]{box-sizing:border-box;height:100%;padding:16px 20px;overflow:auto}.element-properties-panel__title[data-v-4f590571]{margin:0;color:var(--el-text-color-primary);font-size:14px;font-weight:600;line-height:22px}.element-properties-panel__form[data-v-4f590571]{margin-top:18px}.element-properties-panel__empty[data-v-4f590571]{margin-top:64px}.barcode-svg-element[data-v-59e75fef]{cursor:move}.barcode-svg-element__invalid[data-v-59e75fef]{fill:#fff;stroke:var(--el-color-danger);stroke-width:.3}.qrcode-svg-element[data-v-5395d4f9]{cursor:move}.svg-elements-renderer__element--interactive[data-v-0fcbf6a7]{cursor:move;-webkit-user-select:none;user-select:none}.pdf-pages-renderer[data-v-97c5fc68]{position:fixed;top:0;left:-100000px;z-index:-1;pointer-events:none}.pdf-pages-renderer svg[data-v-97c5fc68]{display:block}.print-dialog__page-count[data-v-b3827cd6]{width:180px}.preview-panel[data-v-478bdf88]{flex:none;box-sizing:border-box;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.preview-panel__header[data-v-478bdf88]{display:flex;align-items:center;justify-content:space-between;gap:16px}.preview-panel__title[data-v-478bdf88]{margin:0;color:var(--el-text-color-primary);font-size:14px;font-weight:600;line-height:22px}.preview-panel__viewport[data-v-478bdf88]{display:flex;align-items:center;justify-content:center;height:140px;margin-top:12px;overflow:hidden;background:var(--el-fill-color-light);border-radius:var(--el-border-radius-small)}.preview-panel__canvas[data-v-478bdf88]{display:block;overflow:hidden;pointer-events:none}.svg-selection-box__outline[data-v-d47e6575]{fill:none;pointer-events:none;stroke:var(--el-color-primary);stroke-width:.15;stroke-dasharray:.55 .4}.svg-selection-box__handle[data-v-d47e6575]{fill:#fff;pointer-events:all;stroke:var(--el-color-primary);stroke-width:.18}.template-canvas-stage[data-v-1cb1d648]{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:max-content;min-width:100%;height:max-content;min-height:100%;padding:48px;background:#f1f3f6}.template-canvas-stage--grid[data-v-1cb1d648]:after{position:absolute;z-index:2;inset:0;pointer-events:none;content:"";background-image:linear-gradient(to right,rgb(148 163 184 / 20%) 1px,transparent 1px),linear-gradient(to bottom,rgb(148 163 184 / 20%) 1px,transparent 1px);background-size:var(--grid-spacing) var(--grid-spacing),var(--grid-spacing) var(--grid-spacing)}.template-canvas[data-v-1cb1d648]{position:relative;z-index:1;display:block;flex:none;overflow:visible;background:#fff;border:1px solid transparent;touch-action:none}.template-canvas-outline[data-v-1cb1d648]{position:absolute;z-index:3;top:50%;left:50%;box-sizing:content-box;pointer-events:none;border:1px solid #9ca3af;box-shadow:0 6px 20px #00000024;transform:translate(-50%,-50%)}.template-info-dialog__size-field[data-v-3bcb76bc]{display:flex;align-items:center;gap:8px;width:100%;color:var(--el-text-color-regular)}.template-info-dialog__size-input[data-v-3bcb76bc]{width:120px}.template-info-dialog__size-unit[data-v-3bcb76bc],.template-info-dialog__size-separator[data-v-3bcb76bc]{flex:none;white-space:nowrap}.template-info[data-v-db031899]{padding:16px 20px 18px;border-bottom:1px solid var(--el-border-color-lighter)}.template-info__header[data-v-db031899]{display:flex;align-items:center;justify-content:space-between;gap:16px}.template-info__title[data-v-db031899]{margin:0;color:var(--el-text-color-primary);font-size:14px;font-weight:600;line-height:22px}.template-info__details[data-v-db031899]{display:grid;gap:14px;margin:16px 0 0}.template-info__row[data-v-db031899]{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;font-size:13px;line-height:20px}.template-info__row dt[data-v-db031899]{color:var(--el-text-color-secondary)}.template-info__row dd[data-v-db031899]{min-width:0;margin:0;overflow:hidden;color:var(--el-text-color-primary);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.workspace-toolbar[data-v-8bf3559b]{display:flex;flex:none;align-items:center;gap:24px;box-sizing:border-box;height:48px;padding:0 16px;background:var(--el-bg-color);border-bottom:1px solid var(--el-border-color-lighter)}.workspace-toolbar__zoom[data-v-8bf3559b]{display:flex;align-items:center}.workspace-toolbar__divider[data-v-8bf3559b]{height:24px;margin:0}.workspace-toolbar__zoom-label[data-v-8bf3559b]{margin-right:8px;color:var(--el-text-color-regular);font-size:14px}.workspace-toolbar__grid-spacing[data-v-8bf3559b]{display:flex;align-items:center;gap:8px;color:var(--el-text-color-regular);font-size:14px}.workspace-toolbar__grid-spacing-input[data-v-8bf3559b]{width:112px}.workspace-toolbar__zoom-button[data-v-8bf3559b]{width:32px;height:32px;margin:0;padding:0;border-radius:0;font-size:18px}.workspace-toolbar__zoom-button[data-v-8bf3559b]:first-child{border-radius:4px 0 0 4px}.workspace-toolbar__zoom-button[data-v-8bf3559b]:last-child{border-radius:0 4px 4px 0}.workspace-toolbar__zoom-button+.workspace-toolbar__zoom-button[data-v-8bf3559b]{margin-left:0}.workspace-toolbar__zoom-value[data-v-8bf3559b]{position:relative;display:flex;align-items:center;box-sizing:border-box;width:72px;height:32px;background:var(--el-bg-color);border-top:1px solid var(--el-border-color);border-bottom:1px solid var(--el-border-color)}.workspace-toolbar__zoom-input[data-v-8bf3559b]{width:100%;height:30px}.workspace-toolbar__zoom-input[data-v-8bf3559b] .el-input__wrapper{padding:0 22px 0 8px;background:transparent;border-radius:0;box-shadow:none}.workspace-toolbar__zoom-input[data-v-8bf3559b] .el-input__inner{text-align:center}.workspace-toolbar__zoom-unit[data-v-8bf3559b]{position:absolute;right:8px;color:var(--el-text-color-regular);font-size:14px;pointer-events:none}.workspace-toolbar__reset[data-v-8bf3559b]{margin-left:auto}.print-designer-layout[data-v-631b789d]{--left-panel-width: 320px;--right-panel-width: 250px;--panel-border-color: var(--el-border-color-lighter);display:grid;grid-template-columns:var(--left-panel-width) minmax(0,1fr) var(--right-panel-width);width:100%;height:100%;overflow:hidden;background:var(--el-bg-color-page)}.print-designer-layout__left[data-v-631b789d],.print-designer-layout__right[data-v-631b789d]{min-width:0;min-height:0;overflow:hidden;background:var(--el-bg-color)}.print-designer-layout__left[data-v-631b789d]{border-right:1px solid var(--panel-border-color)}.print-designer-layout__workspace[data-v-631b789d]{display:flex;flex-direction:column;min-width:0;min-height:0;margin:0;overflow:hidden;background:var(--el-bg-color-page)}.print-designer-layout__workspace-viewport[data-v-631b789d]{position:relative;flex:1;min-width:0;min-height:0;overflow:auto;background:var(--el-bg-color-page)}.print-designer-layout__element-list-anchor[data-v-631b789d]{position:sticky;z-index:10;top:12px;left:0;display:flex;align-items:flex-start;justify-content:flex-end;box-sizing:border-box;width:100%;height:0;padding-right:12px;pointer-events:none}.print-designer-layout__element-list[data-v-631b789d]{flex:none;pointer-events:auto}.print-designer-layout__right[data-v-631b789d]{display:flex;flex-direction:column;border-left:1px solid var(--panel-border-color)}.print-designer-layout__properties[data-v-631b789d]{flex:1;min-height:0;overflow:hidden}
@@ -0,0 +1,11 @@
1
+ import type { BarcodeDesignerElement } from '@/core/types';
2
+ type __VLS_Props = {
3
+ element: BarcodeDesignerElement;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ select: (id: string) => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onSelect?: (id: string) => any;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { DesignerElementType } from '@/core/types';
2
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ add: (field: DesignerElementType) => any;
4
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
5
+ onAdd?: (field: DesignerElementType) => any;
6
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { DesignerElement } from '@/core/types';
2
+ type __VLS_Props = {
3
+ elements: DesignerElement[];
4
+ selectedElementId: string | null;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ select: (id: string) => any;
8
+ delete: (id: string) => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ onSelect?: (id: string) => any;
11
+ onDelete?: (id: string) => any;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { DesignerElement, ElementPropertyConfig, ElementPropertyKey, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ element: DesignerElement | null;
4
+ properties: readonly ElementPropertyConfig[];
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update-property": (property: ElementPropertyKey, value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate-property"?: (property: ElementPropertyKey, value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { DesignerElement } from '@/core/types';
2
+ type __VLS_Props = {
3
+ widthMm: number;
4
+ heightMm: number;
5
+ elements: DesignerElement[];
6
+ pageCount: number;
7
+ printTime: Date;
8
+ };
9
+ declare function getPageSvgs(): SVGSVGElement[];
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
11
+ getPageSvgs: typeof getPageSvgs;
12
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { DesignerElement } from '@/core/types';
2
+ type __VLS_Props = {
3
+ widthMm: number;
4
+ heightMm: number;
5
+ elements: DesignerElement[];
6
+ printing: boolean;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ print: (pageCount: number) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onPrint?: (pageCount: number) => any;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,16 @@
1
+ type __VLS_Props = {
2
+ loading: boolean;
3
+ };
4
+ type __VLS_ModelProps = {
5
+ modelValue: boolean;
6
+ };
7
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ "update:modelValue": (value: boolean) => any;
10
+ confirm: (pageCount: number) => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
+ "onUpdate:modelValue"?: (value: boolean) => any;
13
+ onConfirm?: (pageCount: number) => any;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { QrcodeDesignerElement } from '@/core/types';
2
+ type __VLS_Props = {
3
+ element: QrcodeDesignerElement;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ select: (id: string) => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onSelect?: (id: string) => any;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import type { DesignerElement } from '@/core/types';
2
+ type __VLS_Props = {
3
+ elements: DesignerElement[];
4
+ /** 主画布允许选择和拖动,缩略图则只负责渲染。 */
5
+ interactive?: boolean;
6
+ /** 打印页传入真实批次下标;普通设计预览使用第一条数据。 */
7
+ dataIndex?: number;
8
+ dataTotal?: number;
9
+ printTime?: Date;
10
+ /** 标签边界用于约束运行时长度会变化的序号、页码和时间。 */
11
+ canvasWidthMm?: number;
12
+ };
13
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ select: (id: string) => any;
15
+ "move-start": (event: PointerEvent, element: DesignerElement) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onSelect?: (id: string) => any;
18
+ "onMove-start"?: (event: PointerEvent, element: DesignerElement) => any;
19
+ }>, {
20
+ interactive: boolean;
21
+ dataIndex: number;
22
+ dataTotal: number;
23
+ printTime: Date;
24
+ canvasWidthMm: number;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { DesignerElement, ResizeHandle } from '@/core/types';
2
+ type __VLS_Props = {
3
+ element: DesignerElement;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ "resize-start": (event: PointerEvent, handle: ResizeHandle) => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ "onResize-start"?: (event: PointerEvent, handle: ResizeHandle) => any;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import type { DesignerElement, ElementTransformPatch } from '@/core/types';
2
+ type __VLS_Props = {
3
+ widthMm: number;
4
+ heightMm: number;
5
+ showGrid: boolean;
6
+ gridSpacing: number;
7
+ zoomPercent: number;
8
+ elements: DesignerElement[];
9
+ selectedElementId: string | null;
10
+ };
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ select: (id: string | null) => any;
13
+ "update-transform": (id: string, patch: ElementTransformPatch) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onSelect?: (id: string | null) => any;
16
+ "onUpdate-transform"?: (id: string, patch: ElementTransformPatch) => any;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import type { TemplateInfo } from '@/core/types';
2
+ type __VLS_Props = {
3
+ templateInfo: TemplateInfo;
4
+ };
5
+ type __VLS_ModelProps = {
6
+ modelValue: boolean;
7
+ };
8
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ "update:modelValue": (value: boolean) => any;
11
+ confirm: (value: TemplateInfo) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
+ "onUpdate:modelValue"?: (value: boolean) => any;
14
+ onConfirm?: (value: TemplateInfo) => any;
15
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import type { TemplateInfo } from '@/core/types';
2
+ type __VLS_Props = {
3
+ templateName: string;
4
+ widthMm: number;
5
+ heightMm: number;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ save: (value: TemplateInfo) => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ onSave?: (value: TemplateInfo) => any;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import 'element-plus/es/components/message-box/style/css';
2
+ type __VLS_Props = {
3
+ showGrid: boolean;
4
+ gridSpacing: number;
5
+ zoomPercent: number;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ reset: () => any;
9
+ "update:showGrid": (value: boolean) => any;
10
+ "update:gridSpacing": (value: number) => any;
11
+ "update:zoomPercent": (value: number) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onReset?: () => any;
14
+ "onUpdate:showGrid"?: (value: boolean) => any;
15
+ "onUpdate:gridSpacing"?: (value: number) => any;
16
+ "onUpdate:zoomPercent"?: (value: number) => any;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { ElementPropertyConfig, ElementPropertyValue } from '@/core/types';
2
+ type __VLS_Props = {
3
+ modelValue: ElementPropertyValue;
4
+ config?: ElementPropertyConfig;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:modelValue": (value: ElementPropertyValue) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: ElementPropertyValue) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@borurio-print/print-designer",
3
+ "private": false,
4
+ "version": "1.0.0",
5
+ "description": "A Vue 3 label print designer with PDF preview support.",
6
+ "type": "module",
7
+ "files": [
8
+ "dist-lib"
9
+ ],
10
+ "sideEffects": [
11
+ "**/*.css"
12
+ ],
13
+ "main": "./dist-lib/index.js",
14
+ "module": "./dist-lib/index.js",
15
+ "types": "./dist-lib/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist-lib/index.d.ts",
19
+ "import": "./dist-lib/index.js"
20
+ },
21
+ "./style.css": "./dist-lib/style.css"
22
+ },
23
+ "publishConfig": {
24
+ "access": "public",
25
+ "registry": "https://registry.npmjs.org/"
26
+ },
27
+ "peerDependencies": {
28
+ "element-plus": "^2.14.5",
29
+ "vue": "^3.5.0",
30
+ "vue-i18n": "^11.0.0"
31
+ },
32
+ "devDependencies": {
33
+ "@tsconfig/node22": "^22.0.0",
34
+ "@types/jsbarcode": "^3.11.4",
35
+ "@types/node": "^22.0.0",
36
+ "@types/qrcode": "^1.5.6",
37
+ "@vitejs/plugin-vue": "^6.0.0",
38
+ "@vue/tsconfig": "^0.8.0",
39
+ "element-plus": "^2.14.5",
40
+ "typescript": "~5.9.0",
41
+ "unplugin-auto-import": "^21.1.0",
42
+ "unplugin-vue-components": "^32.1.0",
43
+ "vite": "^7.0.0",
44
+ "vue": "^3.5.0",
45
+ "vue-i18n": "^11.0.0",
46
+ "vue-tsc": "^3.0.0"
47
+ },
48
+ "dependencies": {
49
+ "jsbarcode": "^3.12.3",
50
+ "jspdf": "^4.2.1",
51
+ "qrcode": "^1.5.4"
52
+ },
53
+ "scripts": {
54
+ "dev": "vite",
55
+ "build": "pnpm build:lib && pnpm build:web",
56
+ "build:web": "vite build && vue-tsc -p tsconfig.app.json --noEmit",
57
+ "build:lib": "vite build --config vite.lib.config.ts && vue-tsc -p tsconfig.lib.json",
58
+ "preview": "vite preview",
59
+ "type-check": "vue-tsc -p tsconfig.app.json --noEmit"
60
+ }
61
+ }