From 2dfc8aeb23cb5f4ebd9f70b4fb267c99e81ffdb7 Mon Sep 17 00:00:00 2001 From: Kyohei Fukuda Date: Sat, 24 Jun 2023 11:40:50 +0900 Subject: [PATCH] Fix missing setting for gs1datamatrix --- package-lock.json | 8 ++++---- packages/generator/package.json | 4 ++-- packages/generator/tsconfig.json | 5 +++++ packages/ui/package.json | 2 +- packages/ui/src/components/Designer/index.tsx | 6 +++--- .../src/components/Schemas/BarcodeSchema.tsx | 4 ++-- packages/ui/src/helper.ts | 19 ++++++++++--------- packages/ui/tsconfig.json | 6 +++++- 8 files changed, 32 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8bd31ca2..ce8ef556 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9593,7 +9593,7 @@ "version": "1.2.3", "license": "MIT", "dependencies": { - "@pdfme/common": "^1.2.1", + "@pdfme/common": "file:../common", "@pdfme/pdf-lib": "^1.17.3", "atob": "^2.1.2", "bwip-js": "^3.2.2", @@ -9618,7 +9618,7 @@ "@dnd-kit/core": "^5.0.1", "@dnd-kit/sortable": "^6.0.0", "@heroicons/react": "^2.0.13", - "@pdfme/common": "^1.2.1", + "@pdfme/common": "file:../common", "@scena/react-guides": "^0.16.0", "hotkeys-js": "^3.8.7", "pdfjs-dist": "2.12.313", @@ -10580,7 +10580,7 @@ "@pdfme/generator": { "version": "file:packages/generator", "requires": { - "@pdfme/common": "^1.2.1", + "@pdfme/common": "file:../common", "@pdfme/pdf-lib": "^1.17.3", "@types/bwip-js": "^3.0.0", "@types/pngjs": "^6.0.1", @@ -10612,7 +10612,7 @@ "@dnd-kit/core": "^5.0.1", "@dnd-kit/sortable": "^6.0.0", "@heroicons/react": "^2.0.13", - "@pdfme/common": "^1.2.1", + "@pdfme/common": "file:../common", "@scena/react-guides": "^0.16.0", "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", diff --git a/packages/generator/package.json b/packages/generator/package.json index 276799e5..3e98d215 100644 --- a/packages/generator/package.json +++ b/packages/generator/package.json @@ -46,7 +46,7 @@ "prune": "ts-prune src" }, "dependencies": { - "@pdfme/common": "^1.2.1", + "@pdfme/common": "file:../common", "@pdfme/pdf-lib": "^1.17.3", "atob": "^2.1.2", "bwip-js": "^3.2.2", @@ -80,4 +80,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/generator/tsconfig.json b/packages/generator/tsconfig.json index ecc970ad..78f32d1c 100644 --- a/packages/generator/tsconfig.json +++ b/packages/generator/tsconfig.json @@ -2,5 +2,10 @@ "extends": "./tsconfig.esm", "compilerOptions": { "outDir": "./dist", + }, + "paths": { + "@pdfme/common": [ + "packages/common/src" + ] } } \ No newline at end of file diff --git a/packages/ui/package.json b/packages/ui/package.json index c44bc43f..7ac59213 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -41,7 +41,7 @@ "@dnd-kit/core": "^5.0.1", "@dnd-kit/sortable": "^6.0.0", "@heroicons/react": "^2.0.13", - "@pdfme/common": "^1.2.1", + "@pdfme/common": "file:../common", "@scena/react-guides": "^0.16.0", "hotkeys-js": "^3.8.7", "pdfjs-dist": "2.12.313", diff --git a/packages/ui/src/components/Designer/index.tsx b/packages/ui/src/components/Designer/index.tsx index 43ba2f7e..c2b8d8c4 100644 --- a/packages/ui/src/components/Designer/index.tsx +++ b/packages/ui/src/components/Designer/index.tsx @@ -1,5 +1,5 @@ import React, { useRef, useState, useEffect, useContext, useCallback } from 'react'; -import { DesignerReactProps, Template, SchemaForUI } from '@pdfme/common'; +import { DesignerReactProps, Template, SchemaForUI, SchemaType } from '@pdfme/common'; import Sidebar from './Sidebar/index'; import Main from './Main/index'; import { ZOOM, RULER_HEIGHT } from '../../constants'; @@ -96,11 +96,11 @@ const TemplateEditor = ({ // Assign to reference set(tgt, key, value); if (key === 'type') { - const type = String(value); + const type = String(value) as SchemaType; // set default value, text or barcode set(tgt, 'data', getSampleByType(type)); // For barcodes, adjust the height to get the correct ratio. - if (value !== 'text') { + if (type !== 'text' && type !== 'image') { set(tgt, 'height', getKeepRatioHeightByWidth(type, tgt.width)); } } diff --git a/packages/ui/src/components/Schemas/BarcodeSchema.tsx b/packages/ui/src/components/Schemas/BarcodeSchema.tsx index f7c69e9c..c01b5892 100644 --- a/packages/ui/src/components/Schemas/BarcodeSchema.tsx +++ b/packages/ui/src/components/Schemas/BarcodeSchema.tsx @@ -1,9 +1,9 @@ import React, { forwardRef, Ref } from 'react'; -import { validateBarcodeInput, BarCodeType, BarcodeSchema } from '@pdfme/common'; +import { validateBarcodeInput, BarCodeType, BarcodeSchema, } from '@pdfme/common'; import { ZOOM } from '../../constants'; import { SchemaUIProps } from './SchemaUI'; -const barcodeExampleImageObj: { [key: string]: string } = { +const barcodeExampleImageObj: { [K in BarCodeType]: string } = { qrcode: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AQMAAACyIsh+AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAUBJREFUaN7t2UEOxCAIBVASD9Aj9eoeqQdowqiAYhsbTGb5u2gm9s2GIFBLrNdNnI+biI72y5YzAURBJpJlOstCuXVaLoAdUMOaLcCiWrwl/AD7QKJclwH+AUYNANgFtv0lyudFq/oA8A3mljQKwaJnAazAdKW6kpiWF8Aa2H7XRmSpmrQvZYAwGJteM7fV1drmr8QAO6A8c7Mms85KvSUBxIDkaw2r2/Ityu2fBBAHdavrwK75KkmrhQAgDFojv/qs1Da9gMQAcdCe+VlTIt8neYAoGNv/8Yr+rg8An0A6j9ykOWlfstETIAjcjO4z198AQsC/TlpsNXMB9sA4Cpbz4Es7Vc9qgCjox27a5pM73ZjP5QDCQFPVzt74FWqACJDYajVNGvQMEAfTJzOhbDVgrg8An+DxGXd8o9A2DxADPwiEPe8Jo46KAAAAAElFTkSuQmCC', japanpost: diff --git a/packages/ui/src/helper.ts b/packages/ui/src/helper.ts index 9256f0fe..75244c09 100644 --- a/packages/ui/src/helper.ts +++ b/packages/ui/src/helper.ts @@ -10,6 +10,8 @@ import { Template, SchemaForUI, Schema, + SchemaType, + BarCodeType, Size, DEFAULT_ALIGNMENT, DEFAULT_FONT_SIZE, @@ -409,8 +411,8 @@ export const getInitialSchema = (): SchemaForUI => ({ lineHeight: DEFAULT_LINE_HEIGHT, }); -export const getSampleByType = (type: string) => { - const defaultValue: { [key: string]: string } = { +export const getSampleByType = (type: SchemaType) => { + const defaultValue: { [K in SchemaType]: string } = { text: 'text', image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAALuAQMAAADL0wGJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURbzAw+rv8fKruy0AAAPoSURBVHja7dwxbtwwEEBRCkKwRQodYftcYk+ROkcJz5NTsEuZK/AIKlIQAUEnke0VqQ0pA5zxWvFnZcD2s0CNuENxPOZBc0QDDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PD/+P8bkxvnTzzjTG0M2b5rh08rHNT518aPOnTt63+aGTd23edPJ2h//ax+/oO6Gzx6c78+cuPu7x01vmwx5/6uLnO/PjO+b/rGifvtWH3VnT9vmh/e3eqx/bc9d79af2YwEPDw8P/6r8r1GVt5VcUoZPtXxGhp9rGYEM72vbEBne1hJ5Gb6ayIvwqZppi/CxmgqL8KGaTIrwc3WDfATeV/ffIryr7r+PwNvq/vsIfH17D5/qbw/gb/mLKp/OqnycFPj14yqcJPm4vfp5VJ0cP6jyzqjy9rr2q/Dr4qzBp3V5E1wxp/V3rl8LXn32qF6fAY31Psv2NXi/5lQaH+Vuzak0eLsmPRppVPa3FPiU3QiFFDZmD4FCAh6yxV+Bn7O9isLmx2d/TGHr5rI7obDxtFkcKWyb89M2+U1/sX7Kv7Io8gaxFy5l2D/faRk++3x6PgsalV52+fwUW4j/+eGhDPuneyH/otHmp9jyfHHMLM6n4phZnI/FObA4H4qDWnF+Lo46xXlflG+I864o3xDnbVG+Ic6X9RXSfCrrK6T5WBZASPOhrFCQ5ufyjF+a92XdkjTvyrolad6WdUvS/KawSI7/sQn7JfDl+O+bsF8CX44fN2FvHnNnIT4Nm7BfAl+ON5uwXwJfjA/LCuk2BXvCvN0U7InxflmAtxV1gvx0U2N3luPtdZOlwj/FoR5vbuq85Pi48F6LD0scOk3+sq1cleP9ohlNfkpq/N9pGaMuH7T4ZVqGWYt/nBavyxstftblfaVIWJU/y72yODCfzJH5oMvPh+adLm+PzCdzZD5U/61ClT9Lnvyo8e7QvFHlE3ydj0zOu5ucickhcpgcJofJedUVk8j5b/nGgIeHh4d/I3x/RwLlhgfNH3DavSwGXf7YjT76uqCEQ/P37p9z7uKVmwspd17S7hul3PXK6fbsmnvWhO6GZlMnn3ri8gXN5GzHnX0B35ydj91814CHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHl+d/A9cKjmiL040TAAAAAElFTkSuQmCC', @@ -424,14 +426,13 @@ export const getSampleByType = (type: string) => { itf14: '04601234567893', upca: '416000336108', upce: '00123457', + gs1datamatrix: '(01)03453120000011(17)191125(10)ABCD1234', }; - - return defaultValue[type] ? defaultValue[type] : ''; + return defaultValue[type]; }; -export const getKeepRatioHeightByWidth = (type: string, width: number) => { - const raito: { [key: string]: number } = { - image: 1, +export const getKeepRatioHeightByWidth = (type: BarCodeType, width: number) => { + const ratio: { [K in BarCodeType]: number } = { qrcode: 1, japanpost: 0.09, ean13: 0.4, @@ -442,9 +443,9 @@ export const getKeepRatioHeightByWidth = (type: string, width: number) => { itf14: 0.3, upca: 0.4, upce: 0.5, + gs1datamatrix: 1, }; - - return width * (raito[type] ? raito[type] : 1); + return width * ratio[type]; }; export const getUniqSchemaKey = (arg: { diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index c3491e5c..78a9b04a 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -14,7 +14,11 @@ "strict": true, "types": ["node", "jest", "@types/jest"], "typeRoots": ["../node_modules/@types"], - "sourceMap": true + "sourceMap": true, + "baseUrl": "..", + "paths": { + "@pdfme/common": ["packages/common/src"] + } }, "baseUrl": ".", "include": ["src/**/*.ts", "src/**/*.tsx"],