@pdfme/ui 1.0.17 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declaration.d.ts +0 -4
- package/dist/cjs/__tests__/assets/helper.js +79 -0
- package/dist/cjs/__tests__/assets/helper.js.map +1 -0
- package/dist/cjs/__tests__/components/Designer.test.js +39 -0
- package/dist/cjs/__tests__/components/Designer.test.js.map +1 -0
- package/dist/cjs/__tests__/components/Preview.test.js +51 -0
- package/dist/cjs/__tests__/components/Preview.test.js.map +1 -0
- package/dist/cjs/__tests__/helper.test.js +94 -0
- package/dist/cjs/__tests__/helper.test.js.map +1 -0
- package/dist/cjs/src/Designer.js +62 -0
- package/dist/cjs/src/Designer.js.map +1 -0
- package/dist/cjs/src/Form.js +36 -0
- package/dist/cjs/src/Form.js.map +1 -0
- package/dist/cjs/src/Viewer.js +26 -0
- package/dist/cjs/src/Viewer.js.map +1 -0
- package/dist/cjs/src/assets/barcodeExamples/code128.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/code39.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/ean13.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/ean8.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/itf14.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/japanpost.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/nw7.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/qrcode.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/upca.png +0 -0
- package/dist/cjs/src/assets/barcodeExamples/upce.png +0 -0
- package/dist/cjs/src/class.js +120 -0
- package/dist/cjs/src/class.js.map +1 -0
- package/dist/cjs/src/components/CtlBar/Pager.js +49 -0
- package/dist/cjs/src/components/CtlBar/Pager.js.map +1 -0
- package/dist/cjs/src/components/CtlBar/Zoom.js +31 -0
- package/dist/cjs/src/components/CtlBar/Zoom.js.map +1 -0
- package/dist/cjs/src/components/CtlBar/index.js +33 -0
- package/dist/cjs/src/components/CtlBar/index.js.map +1 -0
- package/dist/cjs/src/components/Designer/Main/Guides.js +33 -0
- package/dist/cjs/src/components/Designer/Main/Guides.js.map +1 -0
- package/dist/cjs/src/components/Designer/Main/Mask.js +18 -0
- package/dist/cjs/src/components/Designer/Main/Mask.js.map +1 -0
- package/dist/cjs/src/components/Designer/Main/Moveable.js +37 -0
- package/dist/cjs/src/components/Designer/Main/Moveable.js.map +1 -0
- package/dist/cjs/src/components/Designer/Main/Selecto.js +11 -0
- package/dist/cjs/src/components/Designer/Main/Selecto.js.map +1 -0
- package/dist/cjs/src/components/Designer/Main/index.js +224 -0
- package/dist/cjs/src/components/Designer/Main/index.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/ExampleInputEditor.js +69 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/ExampleInputEditor.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/PositionAndSizeEditor.js +184 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/PositionAndSizeEditor.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/TextPropEditor.js +116 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/TextPropEditor.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/TypeAndKeyEditor.js +72 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/TypeAndKeyEditor.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/index.js +54 -0
- package/dist/cjs/src/components/Designer/Sidebar/DetailView/index.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/Item.js +76 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/Item.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/SelectableSortableContainer.js +108 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/SelectableSortableContainer.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/SelectableSortableItem.js +62 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/SelectableSortableItem.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/index.js +84 -0
- package/dist/cjs/src/components/Designer/Sidebar/ListView/index.js.map +1 -0
- package/dist/cjs/src/components/Designer/Sidebar/index.js +105 -0
- package/dist/cjs/src/components/Designer/Sidebar/index.js.map +1 -0
- package/dist/cjs/src/components/Designer/index.js +235 -0
- package/dist/cjs/src/components/Designer/index.js.map +1 -0
- package/dist/cjs/src/components/Divider.js +9 -0
- package/dist/cjs/src/components/Divider.js.map +1 -0
- package/dist/cjs/src/components/Error.js +41 -0
- package/dist/cjs/src/components/Error.js.map +1 -0
- package/dist/cjs/src/components/Paper.js +63 -0
- package/dist/cjs/src/components/Paper.js.map +1 -0
- package/dist/cjs/src/components/Preview.js +102 -0
- package/dist/cjs/src/components/Preview.js.map +1 -0
- package/dist/cjs/src/components/Root.js +52 -0
- package/dist/cjs/src/components/Root.js.map +1 -0
- package/dist/cjs/src/components/Schemas/BarcodeSchema.js +107 -0
- package/dist/cjs/src/components/Schemas/BarcodeSchema.js.map +1 -0
- package/dist/cjs/src/components/Schemas/ImageSchema.js +72 -0
- package/dist/cjs/src/components/Schemas/ImageSchema.js.map +1 -0
- package/dist/cjs/src/components/Schemas/SchemaUI.js +55 -0
- package/dist/cjs/src/components/Schemas/SchemaUI.js.map +1 -0
- package/dist/cjs/src/components/Schemas/TextSchema.js +54 -0
- package/dist/cjs/src/components/Schemas/TextSchema.js.map +1 -0
- package/dist/cjs/src/components/Spinner.js +31 -0
- package/dist/cjs/src/components/Spinner.js.map +1 -0
- package/dist/cjs/src/components/UnitPager.js +63 -0
- package/dist/cjs/src/components/UnitPager.js.map +1 -0
- package/dist/cjs/src/constants.js +10 -0
- package/dist/cjs/src/constants.js.map +1 -0
- package/dist/cjs/src/contexts.js +10 -0
- package/dist/cjs/src/contexts.js.map +1 -0
- package/dist/cjs/src/helper.js +466 -0
- package/dist/cjs/src/helper.js.map +1 -0
- package/dist/cjs/src/hooks.js +100 -0
- package/dist/cjs/src/hooks.js.map +1 -0
- package/dist/cjs/src/i18n.js +50 -0
- package/dist/cjs/src/i18n.js.map +1 -0
- package/dist/cjs/src/index.js +24 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/esm/__tests__/assets/helper.js +51 -0
- package/dist/esm/__tests__/assets/helper.js.map +1 -0
- package/dist/esm/__tests__/components/Designer.test.js +34 -0
- package/dist/esm/__tests__/components/Designer.test.js.map +1 -0
- package/dist/esm/__tests__/components/Preview.test.js +46 -0
- package/dist/esm/__tests__/components/Preview.test.js.map +1 -0
- package/dist/esm/__tests__/helper.test.js +92 -0
- package/dist/esm/__tests__/helper.test.js.map +1 -0
- package/dist/esm/src/Designer.js +57 -0
- package/dist/esm/src/Designer.js.map +1 -0
- package/dist/esm/src/Form.js +31 -0
- package/dist/esm/src/Form.js.map +1 -0
- package/dist/esm/src/Viewer.js +21 -0
- package/dist/esm/src/Viewer.js.map +1 -0
- package/dist/esm/src/assets/barcodeExamples/code128.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/code39.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/ean13.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/ean8.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/itf14.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/japanpost.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/nw7.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/qrcode.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/upca.png +0 -0
- package/dist/esm/src/assets/barcodeExamples/upce.png +0 -0
- package/dist/esm/src/class.js +112 -0
- package/dist/esm/src/class.js.map +1 -0
- package/dist/esm/src/components/CtlBar/Pager.js +24 -0
- package/dist/esm/src/components/CtlBar/Pager.js.map +1 -0
- package/dist/esm/src/components/CtlBar/Zoom.js +26 -0
- package/dist/esm/src/components/CtlBar/Zoom.js.map +1 -0
- package/dist/esm/src/components/CtlBar/index.js +28 -0
- package/dist/esm/src/components/CtlBar/index.js.map +1 -0
- package/dist/esm/src/components/Designer/Main/Guides.js +28 -0
- package/dist/esm/src/components/Designer/Main/Guides.js.map +1 -0
- package/dist/esm/src/components/Designer/Main/Mask.js +13 -0
- package/dist/esm/src/components/Designer/Main/Mask.js.map +1 -0
- package/dist/esm/src/components/Designer/Main/Moveable.js +9 -0
- package/dist/esm/src/components/Designer/Main/Moveable.js.map +1 -0
- package/dist/esm/src/components/Designer/Main/Selecto.js +6 -0
- package/dist/esm/src/components/Designer/Main/Selecto.js.map +1 -0
- package/dist/esm/src/components/Designer/Main/index.js +196 -0
- package/dist/esm/src/components/Designer/Main/index.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/ExampleInputEditor.js +44 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/ExampleInputEditor.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/PositionAndSizeEditor.js +179 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/PositionAndSizeEditor.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/TextPropEditor.js +91 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/TextPropEditor.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/TypeAndKeyEditor.js +47 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/TypeAndKeyEditor.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/index.js +26 -0
- package/dist/esm/src/components/Designer/Sidebar/DetailView/index.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/Item.js +51 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/Item.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/SelectableSortableContainer.js +80 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/SelectableSortableContainer.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/SelectableSortableItem.js +34 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/SelectableSortableItem.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/index.js +56 -0
- package/dist/esm/src/components/Designer/Sidebar/ListView/index.js.map +1 -0
- package/dist/esm/src/components/Designer/Sidebar/index.js +77 -0
- package/dist/esm/src/components/Designer/Sidebar/index.js.map +1 -0
- package/dist/esm/src/components/Designer/index.js +207 -0
- package/dist/esm/src/components/Designer/index.js.map +1 -0
- package/dist/esm/src/components/Divider.js +4 -0
- package/dist/esm/src/components/Divider.js.map +1 -0
- package/dist/esm/src/components/Error.js +16 -0
- package/dist/esm/src/components/Error.js.map +1 -0
- package/dist/esm/src/components/Paper.js +38 -0
- package/dist/esm/src/components/Paper.js.map +1 -0
- package/dist/esm/src/components/Preview.js +74 -0
- package/dist/esm/src/components/Preview.js.map +1 -0
- package/dist/esm/src/components/Root.js +24 -0
- package/dist/esm/src/components/Root.js.map +1 -0
- package/dist/esm/src/components/Schemas/BarcodeSchema.js +79 -0
- package/dist/esm/src/components/Schemas/BarcodeSchema.js.map +1 -0
- package/dist/esm/src/components/Schemas/ImageSchema.js +47 -0
- package/dist/esm/src/components/Schemas/ImageSchema.js.map +1 -0
- package/dist/esm/src/components/Schemas/SchemaUI.js +27 -0
- package/dist/esm/src/components/Schemas/SchemaUI.js.map +1 -0
- package/dist/esm/src/components/Schemas/TextSchema.js +29 -0
- package/dist/esm/src/components/Schemas/TextSchema.js.map +1 -0
- package/dist/esm/src/components/Spinner.js +26 -0
- package/dist/esm/src/components/Spinner.js.map +1 -0
- package/dist/esm/src/components/UnitPager.js +58 -0
- package/dist/esm/src/components/UnitPager.js.map +1 -0
- package/dist/esm/src/constants.js +7 -0
- package/dist/esm/src/constants.js.map +1 -0
- package/dist/esm/src/contexts.js +7 -0
- package/dist/esm/src/contexts.js.map +1 -0
- package/dist/esm/src/helper.js +439 -0
- package/dist/esm/src/helper.js.map +1 -0
- package/dist/esm/src/hooks.js +93 -0
- package/dist/esm/src/hooks.js.map +1 -0
- package/dist/esm/src/i18n.js +46 -0
- package/dist/esm/src/i18n.js.map +1 -0
- package/dist/esm/src/index.js +6 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/types/__tests__/assets/helper.d.ts +3 -0
- package/dist/types/__tests__/components/Designer.test.d.ts +1 -0
- package/dist/types/__tests__/components/Preview.test.d.ts +1 -0
- package/dist/types/__tests__/helper.test.d.ts +1 -0
- package/dist/types/{Designer.d.ts → src/Designer.d.ts} +1 -1
- package/dist/types/{Form.d.ts → src/Form.d.ts} +1 -1
- package/dist/types/{Viewer.d.ts → src/Viewer.d.ts} +1 -1
- package/dist/types/{class.d.ts → src/class.d.ts} +12 -12
- package/dist/types/{components → src/components}/CtlBar/Pager.d.ts +1 -0
- package/dist/types/{components → src/components}/CtlBar/Zoom.d.ts +1 -0
- package/dist/types/{components → src/components}/CtlBar/index.d.ts +1 -0
- package/dist/types/{components → src/components}/Designer/Main/Guides.d.ts +0 -0
- package/dist/types/{components → src/components}/Designer/Main/Mask.d.ts +1 -0
- package/dist/types/{components → src/components}/Designer/Main/Moveable.d.ts +0 -0
- package/dist/types/{components → src/components}/Designer/Main/Selecto.d.ts +1 -0
- package/dist/types/{components → src/components}/Designer/Main/index.d.ts +0 -0
- package/dist/types/{components → src/components}/Designer/Sidebar/DetailView/ExampleInputEditor.d.ts +1 -0
- package/dist/types/{components → src/components}/Designer/Sidebar/DetailView/PositionAndSizeEditor.d.ts +2 -1
- package/dist/types/{components → src/components}/Designer/Sidebar/DetailView/TextPropEditor.d.ts +1 -0
- package/dist/types/{components → src/components}/Designer/Sidebar/DetailView/TypeAndKeyEditor.d.ts +2 -1
- package/dist/types/{components → src/components}/Designer/Sidebar/DetailView/index.d.ts +2 -1
- package/dist/types/{components → src/components}/Designer/Sidebar/ListView/Item.d.ts +0 -0
- package/dist/types/{components → src/components}/Designer/Sidebar/ListView/SelectableSortableContainer.d.ts +2 -1
- package/dist/types/{components → src/components}/Designer/Sidebar/ListView/SelectableSortableItem.d.ts +0 -0
- package/dist/types/{components → src/components}/Designer/Sidebar/ListView/index.d.ts +2 -1
- package/dist/types/{components → src/components}/Designer/Sidebar/index.d.ts +1 -0
- package/dist/types/{components → src/components}/Designer/index.d.ts +24 -23
- package/dist/types/{components → src/components}/Divider.d.ts +1 -0
- package/dist/types/{components → src/components}/Error.d.ts +1 -0
- package/dist/types/{components → src/components}/Paper.d.ts +0 -0
- package/dist/types/{components → src/components}/Preview.d.ts +1 -0
- package/dist/types/{components → src/components}/Root.d.ts +0 -0
- package/dist/types/{components → src/components}/Schemas/BarcodeSchema.d.ts +3 -3
- package/dist/types/{components → src/components}/Schemas/ImageSchema.d.ts +3 -3
- package/dist/types/{components → src/components}/Schemas/SchemaUI.d.ts +1 -1
- package/dist/types/{components → src/components}/Schemas/TextSchema.d.ts +7 -7
- package/dist/types/{components → src/components}/Spinner.d.ts +1 -0
- package/dist/types/{components → src/components}/UnitPager.d.ts +1 -0
- package/dist/types/{constants.d.ts → src/constants.d.ts} +0 -0
- package/dist/types/src/contexts.d.ts +7 -0
- package/dist/types/{helper.d.ts → src/helper.d.ts} +19 -19
- package/dist/types/{hooks.d.ts → src/hooks.d.ts} +1 -1
- package/dist/types/{i18n.d.ts → src/i18n.d.ts} +0 -9
- package/dist/types/{index.d.ts → src/index.d.ts} +3 -3
- package/package.json +22 -9
- package/src/Designer.tsx +5 -5
- package/src/Form.tsx +4 -4
- package/src/Viewer.tsx +4 -4
- package/src/class.ts +3 -3
- package/src/components/CtlBar/Pager.tsx +4 -5
- package/src/components/CtlBar/Zoom.tsx +4 -7
- package/src/components/CtlBar/index.tsx +2 -2
- package/src/components/Designer/Main/Guides.tsx +1 -1
- package/src/components/Designer/Main/Mask.tsx +1 -1
- package/src/components/Designer/Main/Selecto.tsx +1 -1
- package/src/components/Designer/Main/index.tsx +9 -9
- package/src/components/Designer/Sidebar/DetailView/ExampleInputEditor.tsx +4 -4
- package/src/components/Designer/Sidebar/DetailView/PositionAndSizeEditor.tsx +95 -19
- package/src/components/Designer/Sidebar/DetailView/TextPropEditor.tsx +3 -3
- package/src/components/Designer/Sidebar/DetailView/TypeAndKeyEditor.tsx +2 -2
- package/src/components/Designer/Sidebar/DetailView/index.tsx +7 -7
- package/src/components/Designer/Sidebar/ListView/Item.tsx +8 -10
- package/src/components/Designer/Sidebar/ListView/SelectableSortableContainer.tsx +3 -3
- package/src/components/Designer/Sidebar/ListView/SelectableSortableItem.tsx +3 -3
- package/src/components/Designer/Sidebar/ListView/index.tsx +5 -5
- package/src/components/Designer/Sidebar/index.tsx +11 -7
- package/src/components/Designer/index.tsx +12 -12
- package/src/components/Error.tsx +1 -1
- package/src/components/Paper.tsx +2 -2
- package/src/components/Preview.tsx +9 -9
- package/src/components/Root.tsx +2 -3
- package/src/components/Schemas/BarcodeSchema.tsx +2 -2
- package/src/components/Schemas/ImageSchema.tsx +6 -6
- package/src/components/Schemas/SchemaUI.tsx +4 -4
- package/src/components/Schemas/TextSchema.tsx +3 -3
- package/src/components/UnitPager.tsx +11 -12
- package/src/contexts.ts +2 -2
- package/src/helper.ts +2 -2
- package/src/hooks.ts +2 -2
- package/src/i18n.ts +1 -19
- package/src/index.ts +3 -3
- package/tsconfig.cjs.json +10 -0
- package/tsconfig.esm.json +10 -0
- package/dist/index.js +0 -3
- package/dist/index.js.LICENSE.txt +0 -97
- package/dist/index.js.map +0 -1
- package/dist/types/contexts.d.ts +0 -7
- package/src/assets/icons/add.svg +0 -3
- package/src/assets/icons/align-horizontal-center.svg +0 -1
- package/src/assets/icons/align-horizontal-left.svg +0 -1
- package/src/assets/icons/align-horizontal-right.svg +0 -1
- package/src/assets/icons/align-vertical-bottom.svg +0 -1
- package/src/assets/icons/align-vertical-middle.svg +0 -1
- package/src/assets/icons/align-vertical-top.svg +0 -1
- package/src/assets/icons/back.svg +0 -4
- package/src/assets/icons/close.svg +0 -4
- package/src/assets/icons/double-left.svg +0 -11
- package/src/assets/icons/double-right.svg +0 -11
- package/src/assets/icons/drag.svg +0 -3
- package/src/assets/icons/forward.svg +0 -4
- package/src/assets/icons/horizontal-distribute.svg +0 -1
- package/src/assets/icons/left.svg +0 -4
- package/src/assets/icons/remove.svg +0 -3
- package/src/assets/icons/right.svg +0 -4
- package/src/assets/icons/vertical-distribute.svg +0 -1
- package/src/assets/icons/warning.svg +0 -4
- package/src/assets/imageExample.png +0 -0
- package/tsconfig.json +0 -22
- package/webpack.config.js +0 -54
@@ -0,0 +1,179 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { round } from '../../../../helper.js';
|
3
|
+
const inputSetStyle = { marginRight: '1rem', display: 'flex', alignItems: 'center' };
|
4
|
+
const inputStyle = {
|
5
|
+
width: 70,
|
6
|
+
border: '1px solid #767676',
|
7
|
+
borderRadius: 2,
|
8
|
+
color: '#333',
|
9
|
+
background: 'none',
|
10
|
+
};
|
11
|
+
const buttonStyle = {
|
12
|
+
display: 'flex',
|
13
|
+
background: 'none',
|
14
|
+
alignItems: 'center',
|
15
|
+
borderRadius: 2,
|
16
|
+
border: '1px solid rgb(118, 118, 118)',
|
17
|
+
cursor: 'pointer',
|
18
|
+
};
|
19
|
+
const svgBaseProp = {
|
20
|
+
style: { width: '100%', height: '100%' },
|
21
|
+
xmlns: 'http://www.w3.org/2000/svg',
|
22
|
+
enableBackground: 'new 0 0 24 24',
|
23
|
+
height: '24px',
|
24
|
+
viewBox: '0 0 24 24',
|
25
|
+
width: '24px',
|
26
|
+
fill: '#000000',
|
27
|
+
};
|
28
|
+
const PositionAndSizeEditor = (props) => {
|
29
|
+
const { changeSchemas, schemas, activeSchema, activeElements, pageSize } = props;
|
30
|
+
const align = (type) => {
|
31
|
+
const ids = activeElements.map((ae) => ae.id);
|
32
|
+
const ass = schemas.filter((s) => ids.includes(s.id));
|
33
|
+
const isVertical = ['left', 'center', 'right'].includes(type);
|
34
|
+
const tgtPos = isVertical ? 'x' : 'y';
|
35
|
+
const tgtSize = isVertical ? 'width' : 'height';
|
36
|
+
const isSingle = ass.length === 1;
|
37
|
+
const root = pageSize[tgtSize];
|
38
|
+
const min = isSingle ? 0 : Math.min(...ass.map((as) => as.position[tgtPos]));
|
39
|
+
const max = isSingle ? root : Math.max(...ass.map((as) => as.position[tgtPos] + as[tgtSize]));
|
40
|
+
let basePos = min;
|
41
|
+
let adjust = (_) => 0;
|
42
|
+
if (['center', 'middle'].includes(type)) {
|
43
|
+
basePos = (min + max) / 2;
|
44
|
+
adjust = (num) => num / 2;
|
45
|
+
}
|
46
|
+
else if (['right', 'bottom'].includes(type)) {
|
47
|
+
basePos = max;
|
48
|
+
adjust = (num) => num;
|
49
|
+
}
|
50
|
+
changeSchemas(ass.map((as) => ({
|
51
|
+
key: `position.${tgtPos}`,
|
52
|
+
value: round(basePos - adjust(as[tgtSize]), 2),
|
53
|
+
schemaId: as.id,
|
54
|
+
})));
|
55
|
+
};
|
56
|
+
const distribute = (type) => {
|
57
|
+
const ids = activeElements.map((ae) => ae.id);
|
58
|
+
const ass = schemas.filter((s) => ids.includes(s.id));
|
59
|
+
const isVertical = type === 'vertical';
|
60
|
+
const tgtPos = isVertical ? 'y' : 'x';
|
61
|
+
const tgtSize = isVertical ? 'height' : 'width';
|
62
|
+
const min = Math.min(...ass.map((as) => as.position[tgtPos]));
|
63
|
+
const max = Math.max(...ass.map((as) => as.position[tgtPos] + as[tgtSize]));
|
64
|
+
if (ass.length < 3)
|
65
|
+
return;
|
66
|
+
const boxPos = min;
|
67
|
+
const boxSize = max - min;
|
68
|
+
const sum = ass.reduce((acc, cur) => acc + cur[tgtSize], 0);
|
69
|
+
const remain = boxSize - sum;
|
70
|
+
const unit = remain / (ass.length - 1);
|
71
|
+
let prev = 0;
|
72
|
+
changeSchemas(ass.map((as, index) => {
|
73
|
+
prev += index === 0 ? 0 : ass[index - 1][tgtSize] + unit;
|
74
|
+
const value = round(boxPos + prev, 2);
|
75
|
+
return { key: `position.${tgtPos}`, value, schemaId: as.id };
|
76
|
+
}));
|
77
|
+
};
|
78
|
+
const layoutBtns = [
|
79
|
+
{
|
80
|
+
id: 'left',
|
81
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
82
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
83
|
+
React.createElement("path", { d: "M4,22H2V2h2V22z M22,7H6v3h16V7z M16,14H6v3h10V14z" }))),
|
84
|
+
action: () => align('left'),
|
85
|
+
},
|
86
|
+
{
|
87
|
+
id: 'center',
|
88
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
89
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
90
|
+
React.createElement("polygon", { points: "11,2 13,2 13,7 21,7 21,10 13,10 13,14 18,14 18,17 13,17 13,22 11,22 11,17 6,17 6,14 11,14 11,10 3,10 3,7 11,7" }))),
|
91
|
+
action: () => align('center'),
|
92
|
+
},
|
93
|
+
{
|
94
|
+
id: 'right',
|
95
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
96
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
97
|
+
React.createElement("path", { d: "M20,2h2v20h-2V2z M2,10h16V7H2V10z M8,17h10v-3H8V17z" }))),
|
98
|
+
action: () => align('right'),
|
99
|
+
},
|
100
|
+
{
|
101
|
+
id: 'top',
|
102
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
103
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
104
|
+
React.createElement("path", { d: "M22,2v2H2V2H22z M7,22h3V6H7V22z M14,16h3V6h-3V16z" }))),
|
105
|
+
action: () => align('top'),
|
106
|
+
},
|
107
|
+
{
|
108
|
+
id: 'middle',
|
109
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
110
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
111
|
+
React.createElement("polygon", { points: "22,11 17,11 17,6 14,6 14,11 10,11 10,3 7,3 7,11 1.84,11 1.84,13 7,13 7,21 10,21 10,13 14,13 14,18 17,18 17,13 22,13" }))),
|
112
|
+
action: () => align('middle'),
|
113
|
+
},
|
114
|
+
{
|
115
|
+
id: 'bottom',
|
116
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
117
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
118
|
+
React.createElement("path", { d: "M22,22H2v-2h20V22z M10,2H7v16h3V2z M17,8h-3v10h3V8z" }))),
|
119
|
+
action: () => align('bottom'),
|
120
|
+
},
|
121
|
+
{
|
122
|
+
id: 'vertical',
|
123
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
124
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
125
|
+
React.createElement("path", { d: "M22,2v2H2V2H22z M7,10.5v3h10v-3H7z M2,20v2h20v-2H2z" }))),
|
126
|
+
action: () => distribute('vertical'),
|
127
|
+
},
|
128
|
+
{
|
129
|
+
id: 'horizontal',
|
130
|
+
icon: (React.createElement("svg", Object.assign({}, svgBaseProp),
|
131
|
+
React.createElement("rect", { fill: "none", height: "24", width: "24" }),
|
132
|
+
React.createElement("path", { d: "M4,22H2V2h2V22z M22,2h-2v20h2V2z M13.5,7h-3v10h3V7z" }))),
|
133
|
+
action: () => distribute('horizontal'),
|
134
|
+
},
|
135
|
+
];
|
136
|
+
return (React.createElement("div", null,
|
137
|
+
React.createElement("div", { style: { display: 'flex', alignItems: 'center', marginBottom: '0.5rem' } }, layoutBtns.map((b) => (React.createElement("button", { key: b.id, title: b.id, onClick: b.action, style: buttonStyle },
|
138
|
+
React.createElement("object", { width: 15, height: 15 }, b.icon))))),
|
139
|
+
React.createElement("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' } },
|
140
|
+
React.createElement("div", { style: inputSetStyle },
|
141
|
+
React.createElement("label", { style: { width: 17 } }, "X"),
|
142
|
+
React.createElement("input", { style: inputStyle, type: "number", onChange: (e) => {
|
143
|
+
const value = Number(e.target.value);
|
144
|
+
if (value >= 0 && activeSchema.width + value < pageSize.width) {
|
145
|
+
changeSchemas([{ key: 'position.x', value, schemaId: activeSchema.id }]);
|
146
|
+
}
|
147
|
+
}, value: activeSchema.position.x }),
|
148
|
+
React.createElement("span", { style: { fontSize: '0.6rem' } }, "mm")),
|
149
|
+
React.createElement("div", { style: inputSetStyle },
|
150
|
+
React.createElement("label", { style: { width: 17 } }, "Y"),
|
151
|
+
React.createElement("input", { style: inputStyle, type: "number", onChange: (e) => {
|
152
|
+
const value = Number(e.target.value);
|
153
|
+
if (value >= 0 && activeSchema.height + value < pageSize.height) {
|
154
|
+
changeSchemas([{ key: 'position.y', value, schemaId: activeSchema.id }]);
|
155
|
+
}
|
156
|
+
}, value: activeSchema.position.y }),
|
157
|
+
React.createElement("span", { style: { fontSize: '0.6rem' } }, "mm"))),
|
158
|
+
React.createElement("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' } },
|
159
|
+
React.createElement("div", { style: inputSetStyle },
|
160
|
+
React.createElement("label", { style: { width: 17 } }, "W"),
|
161
|
+
React.createElement("input", { style: inputStyle, type: "number", onChange: (e) => {
|
162
|
+
const value = Number(e.target.value);
|
163
|
+
if (value >= 0 && activeSchema.position.x + value < pageSize.width) {
|
164
|
+
changeSchemas([{ key: 'width', value, schemaId: activeSchema.id }]);
|
165
|
+
}
|
166
|
+
}, value: activeSchema.width }),
|
167
|
+
React.createElement("span", { style: { fontSize: '0.6rem' } }, "mm")),
|
168
|
+
React.createElement("div", { style: inputSetStyle },
|
169
|
+
React.createElement("label", { style: { width: 17 } }, "H"),
|
170
|
+
React.createElement("input", { style: inputStyle, type: "number", onChange: (e) => {
|
171
|
+
const value = Number(e.target.value);
|
172
|
+
if (value >= 0 && activeSchema.position.y + value < pageSize.height) {
|
173
|
+
changeSchemas([{ key: 'height', value, schemaId: activeSchema.id }]);
|
174
|
+
}
|
175
|
+
}, value: activeSchema.height }),
|
176
|
+
React.createElement("span", { style: { fontSize: '0.6rem' } }, "mm")))));
|
177
|
+
};
|
178
|
+
export default PositionAndSizeEditor;
|
179
|
+
//# sourceMappingURL=PositionAndSizeEditor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PositionAndSizeEditor.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/DetailView/PositionAndSizeEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,MAAM,aAAa,GAAkB,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAEpG,MAAM,UAAU,GAAkB;IAChC,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,mBAAmB;IAC3B,YAAY,EAAE,CAAC;IACf,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF,MAAM,WAAW,GAAkB;IACjC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IACxC,KAAK,EAAE,4BAA4B;IACnC,gBAAgB,EAAE,eAAe;IACjC,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,KAEC,EACD,EAAE;IACF,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEjF,MAAM,KAAK,GAAG,CAAC,IAA+D,EAAE,EAAE;QAChF,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9F,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;SACnC;aAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC7C,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC;SAC/B;QAED,aAAa,CACX,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACf,GAAG,EAAE,YAAY,MAAM,EAAE;YACzB,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,QAAQ,EAAE,EAAE,CAAC,EAAE;SAChB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,IAA+B,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE3B,MAAM,MAAM,GAAG,GAAG,CAAC;QACnB,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEvC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,aAAa,CACX,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;YACtC,OAAO,EAAE,GAAG,EAAE,YAAY,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAoD;QAClE;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,8BAAM,CAAC,EAAC,mDAAmD,GAAG,CAC1D,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;SAC5B;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,iCAAS,MAAM,EAAC,+GAA+G,GAAG,CAC9H,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC9B;QACD;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,8BAAM,CAAC,EAAC,qDAAqD,GAAG,CAC5D,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAC7B;QACD;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,8BAAM,CAAC,EAAC,mDAAmD,GAAG,CAC1D,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;SAC3B;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,iCAAS,MAAM,EAAC,qHAAqH,GAAG,CACpI,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC9B;QACD;YACE,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,8BAAM,CAAC,EAAC,qDAAqD,GAAG,CAC5D,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC9B;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,8BAAM,CAAC,EAAC,qDAAqD,GAAG,CAC5D,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;SACrC;QACD;YACE,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,CACJ,6CAAS,WAAW;gBAClB,8BAAM,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAG;gBAC3C,8BAAM,CAAC,EAAC,qDAAqD,GAAG,CAC5D,CACP;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;SACvC;KACF,CAAC;IAEF,OAAO,CACL;QACE,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,IAC1E,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACrB,gCAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW;YACnE,gCAAQ,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAC1B,CAAC,CAAC,IAAI,CACA,CACF,CACV,CAAC,CACE;QACN,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE;YACpF,6BAAK,KAAK,EAAE,aAAa;gBACvB,+BAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAW;gBACtC,+BACE,KAAK,EAAE,UAAU,EACjB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE;4BAC7D,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;yBAC1E;oBACH,CAAC,EACD,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,GAC9B;gBACF,8BAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAW,CAC1C;YACN,6BAAK,KAAK,EAAE,aAAa;gBACvB,+BAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAW;gBACtC,+BACE,KAAK,EAAE,UAAU,EACjB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE;4BAC/D,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;yBAC1E;oBACH,CAAC,EACD,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,GAC9B;gBACF,8BAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAW,CAC1C,CACF;QACN,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE;YACpF,6BAAK,KAAK,EAAE,aAAa;gBACvB,+BAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAW;gBACtC,+BACE,KAAK,EAAE,UAAU,EACjB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE;4BAClE,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;yBACrE;oBACH,CAAC,EACD,KAAK,EAAE,YAAY,CAAC,KAAK,GACzB;gBACF,8BAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAW,CAC1C;YACN,6BAAK,KAAK,EAAE,aAAa;gBACvB,+BAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAW;gBACtC,+BACE,KAAK,EAAE,UAAU,EACjB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE;4BACnE,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;yBACtE;oBACH,CAAC,EACD,KAAK,EAAE,YAAY,CAAC,MAAM,GAC1B;gBACF,8BAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAW,CAC1C,CACF,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { getFallbackFontName, DEFAULT_FONT_SIZE, DEFAULT_LINE_HEIGHT, DEFAULT_CHARACTER_SPACING, DEFAULT_FONT_COLOR, } from '@pdfme/common';
|
3
|
+
import { FontContext } from '../../../../contexts.js';
|
4
|
+
import { XMarkIcon } from '@heroicons/react/24/outline';
|
5
|
+
const inputStyle = {
|
6
|
+
width: '90%',
|
7
|
+
color: '#333',
|
8
|
+
background: 'none',
|
9
|
+
borderRadius: 2,
|
10
|
+
border: '1px solid #767676',
|
11
|
+
};
|
12
|
+
const selectStyle = inputStyle;
|
13
|
+
const NumberInputSet = (props) => {
|
14
|
+
const { label, value, width, onChange } = props;
|
15
|
+
return (React.createElement("div", { style: { width } },
|
16
|
+
React.createElement("label", null, label),
|
17
|
+
React.createElement("input", { style: inputStyle, onChange: onChange, value: value, type: "number" })));
|
18
|
+
};
|
19
|
+
const ColorInputSet = (props) => {
|
20
|
+
const { label, value, onChange, onClear } = props;
|
21
|
+
return (React.createElement("div", { style: { width: '45%' } },
|
22
|
+
React.createElement("label", null, label),
|
23
|
+
React.createElement("div", { style: { display: 'flex' } },
|
24
|
+
React.createElement("input", { onChange: onChange, value: value || '#ffffff', type: "color", style: inputStyle }),
|
25
|
+
React.createElement("button", { onClick: onClear, style: {
|
26
|
+
display: 'flex',
|
27
|
+
background: 'none',
|
28
|
+
alignItems: 'center',
|
29
|
+
borderRadius: 2,
|
30
|
+
border: '1px solid #767676',
|
31
|
+
cursor: 'pointer',
|
32
|
+
} },
|
33
|
+
React.createElement(XMarkIcon, { width: 10, height: 10 })))));
|
34
|
+
};
|
35
|
+
const SelectSet = (props) => {
|
36
|
+
const { label, value, options, onChange } = props;
|
37
|
+
return (React.createElement("div", { style: { width: '45%' } },
|
38
|
+
React.createElement("label", null,
|
39
|
+
label,
|
40
|
+
":"),
|
41
|
+
React.createElement("select", { style: selectStyle, onChange: onChange, value: value }, options.map((o) => (React.createElement("option", { key: o, value: o }, o))))));
|
42
|
+
};
|
43
|
+
const TextPropEditor = (props) => {
|
44
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
45
|
+
const { changeSchemas, activeSchema } = props;
|
46
|
+
const alignments = ['left', 'center', 'right'];
|
47
|
+
const font = useContext(FontContext);
|
48
|
+
const fallbackFontName = getFallbackFontName(font);
|
49
|
+
if (activeSchema.type !== 'text')
|
50
|
+
return React.createElement(React.Fragment, null);
|
51
|
+
return (React.createElement("div", { style: { fontSize: '0.7rem' } },
|
52
|
+
React.createElement("div", { style: {
|
53
|
+
display: 'flex',
|
54
|
+
alignItems: 'center',
|
55
|
+
justifyContent: 'space-between',
|
56
|
+
marginBottom: '0.25rem',
|
57
|
+
} },
|
58
|
+
React.createElement(SelectSet, { label: 'FontName', value: (_a = activeSchema.fontName) !== null && _a !== void 0 ? _a : fallbackFontName, options: Object.keys(font), onChange: (e) => {
|
59
|
+
changeSchemas([{ key: 'fontName', value: e.target.value, schemaId: activeSchema.id }]);
|
60
|
+
} }),
|
61
|
+
React.createElement(SelectSet, { label: 'Alignment', value: (_b = activeSchema.alignment) !== null && _b !== void 0 ? _b : 'left', options: alignments, onChange: (e) => changeSchemas([{ key: 'alignment', value: e.target.value, schemaId: activeSchema.id }]) })),
|
62
|
+
React.createElement("div", { style: {
|
63
|
+
display: 'flex',
|
64
|
+
alignItems: 'center',
|
65
|
+
justifyContent: 'space-between',
|
66
|
+
marginBottom: '0.25rem',
|
67
|
+
} },
|
68
|
+
React.createElement(NumberInputSet, { width: "30%", label: 'FontSize(pt)', value: (_c = activeSchema.fontSize) !== null && _c !== void 0 ? _c : DEFAULT_FONT_SIZE, onChange: (e) => changeSchemas([
|
69
|
+
{ key: 'fontSize', value: Number(e.target.value), schemaId: activeSchema.id },
|
70
|
+
]) }),
|
71
|
+
React.createElement(NumberInputSet, { width: "30%", label: 'LineHeight(em)', value: (_d = activeSchema.lineHeight) !== null && _d !== void 0 ? _d : DEFAULT_LINE_HEIGHT, onChange: (e) => changeSchemas([
|
72
|
+
{ key: 'lineHeight', value: Number(e.target.value), schemaId: activeSchema.id },
|
73
|
+
]) }),
|
74
|
+
React.createElement(NumberInputSet, { width: "40%", label: 'CharacterSpacing(pt)', value: (_e = activeSchema.characterSpacing) !== null && _e !== void 0 ? _e : DEFAULT_CHARACTER_SPACING, onChange: (e) => changeSchemas([
|
75
|
+
{ key: 'characterSpacing', value: Number(e.target.value), schemaId: activeSchema.id },
|
76
|
+
]) })),
|
77
|
+
React.createElement("div", { style: {
|
78
|
+
marginBottom: '0.25rem',
|
79
|
+
display: 'flex',
|
80
|
+
alignItems: 'center',
|
81
|
+
justifyContent: 'space-between',
|
82
|
+
} },
|
83
|
+
React.createElement(ColorInputSet, { label: 'FontColor', value: (_f = activeSchema.fontColor) !== null && _f !== void 0 ? _f : '#000000', onChange: (e) => changeSchemas([{ key: 'fontColor', value: e.target.value, schemaId: activeSchema.id }]), onClear: () => changeSchemas([
|
84
|
+
{ key: 'fontColor', value: DEFAULT_FONT_COLOR, schemaId: activeSchema.id },
|
85
|
+
]) }),
|
86
|
+
React.createElement(ColorInputSet, { label: 'Background', value: (_g = activeSchema.backgroundColor) !== null && _g !== void 0 ? _g : '#ffffff', onChange: (e) => changeSchemas([
|
87
|
+
{ key: 'backgroundColor', value: e.target.value, schemaId: activeSchema.id },
|
88
|
+
]), onClear: () => changeSchemas([{ key: 'backgroundColor', value: '', schemaId: activeSchema.id }]) }))));
|
89
|
+
};
|
90
|
+
export default TextPropEditor;
|
91
|
+
//# sourceMappingURL=TextPropEditor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TextPropEditor.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/DetailView/TextPropEditor.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import React, { useContext, useRef, useCallback } from 'react';
|
2
|
+
import { schemaTypes } from '@pdfme/common';
|
3
|
+
import { I18nContext } from '../../../../contexts.js';
|
4
|
+
const ErrorLabel = ({ isError, msg }) => (React.createElement("span", { style: { color: isError ? '#ffa19b' : 'inherit', fontWeight: isError ? 'bold' : 'inherit' } }, msg));
|
5
|
+
const TypeAndKeyEditor = (props) => {
|
6
|
+
const { changeSchemas, activeSchema, schemas } = props;
|
7
|
+
const i18n = useContext(I18nContext);
|
8
|
+
const inputRef = useRef(null);
|
9
|
+
const getHasSameKey = useCallback(() => {
|
10
|
+
const schemaKeys = schemas.map((s) => s.key);
|
11
|
+
const index = schemaKeys.indexOf(activeSchema.key);
|
12
|
+
if (index > -1) {
|
13
|
+
schemaKeys.splice(index, 1);
|
14
|
+
}
|
15
|
+
return schemaKeys.includes(activeSchema.key);
|
16
|
+
}, [schemas, activeSchema]);
|
17
|
+
const blankKey = !activeSchema.key;
|
18
|
+
const hasSameKey = getHasSameKey();
|
19
|
+
return (React.createElement("div", { style: { display: 'flex', alignItems: 'center' } },
|
20
|
+
React.createElement("div", null,
|
21
|
+
React.createElement("label", { style: { marginBottom: 0 } }, i18n('type')),
|
22
|
+
React.createElement("select", { style: {
|
23
|
+
width: '100%',
|
24
|
+
border: '1px solid #767676',
|
25
|
+
borderRadius: 2,
|
26
|
+
color: '#333',
|
27
|
+
background: 'none',
|
28
|
+
}, onChange: (e) => changeSchemas([{ key: 'type', value: e.target.value, schemaId: activeSchema.id }]), value: activeSchema.type }, schemaTypes.map((t) => (React.createElement("option", { key: t, value: t }, t))))),
|
29
|
+
React.createElement("div", null,
|
30
|
+
React.createElement("label", { style: { marginBottom: 0 } },
|
31
|
+
i18n('fieldName'),
|
32
|
+
React.createElement("u", { style: { fontSize: '0.7rem' } },
|
33
|
+
"(",
|
34
|
+
React.createElement(ErrorLabel, { msg: i18n('require'), isError: blankKey }),
|
35
|
+
"+",
|
36
|
+
React.createElement(ErrorLabel, { msg: i18n('uniq'), isError: hasSameKey }),
|
37
|
+
")")),
|
38
|
+
React.createElement("input", { ref: inputRef, onChange: (e) => changeSchemas([{ key: 'key', value: e.target.value, schemaId: activeSchema.id }]), style: {
|
39
|
+
width: '100%',
|
40
|
+
border: '1px solid #767676',
|
41
|
+
borderRadius: 2,
|
42
|
+
color: '#333',
|
43
|
+
background: hasSameKey || blankKey ? '#ffa19b' : 'none',
|
44
|
+
}, value: activeSchema.key }))));
|
45
|
+
};
|
46
|
+
export default TypeAndKeyEditor;
|
47
|
+
//# sourceMappingURL=TypeAndKeyEditor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TypeAndKeyEditor.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/DetailView/TypeAndKeyEditor.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { I18nContext } from '../../../../contexts.js';
|
3
|
+
import Divider from '../../../Divider.js';
|
4
|
+
import TextPropEditor from './TextPropEditor.js';
|
5
|
+
import ExampleInputEditor from './ExampleInputEditor.js';
|
6
|
+
import PositionAndSizeEditor from './PositionAndSizeEditor.js';
|
7
|
+
import TypeAndKeyEditor from './TypeAndKeyEditor.js';
|
8
|
+
const DetailView = (props) => {
|
9
|
+
const { activeSchema } = props;
|
10
|
+
const i18n = useContext(I18nContext);
|
11
|
+
return (React.createElement("div", null,
|
12
|
+
React.createElement("div", { style: { height: 40, display: 'flex', alignItems: 'center' } },
|
13
|
+
React.createElement("span", { style: { textAlign: 'center', width: '100%', fontWeight: 'bold' } }, i18n('editField'))),
|
14
|
+
React.createElement(Divider, null),
|
15
|
+
React.createElement("div", { style: { fontSize: '0.9rem' } },
|
16
|
+
React.createElement(TypeAndKeyEditor, Object.assign({}, props)),
|
17
|
+
React.createElement(Divider, null),
|
18
|
+
React.createElement(PositionAndSizeEditor, Object.assign({}, props)),
|
19
|
+
React.createElement(Divider, null),
|
20
|
+
activeSchema.type === 'text' && (React.createElement(React.Fragment, null,
|
21
|
+
React.createElement(TextPropEditor, Object.assign({}, props)),
|
22
|
+
React.createElement(Divider, null))),
|
23
|
+
React.createElement(ExampleInputEditor, Object.assign({}, props)))));
|
24
|
+
};
|
25
|
+
export default DetailView;
|
26
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/DetailView/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAE1C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,UAAU,GAAG,CACjB,KAEC,EACD,EAAE;IACF,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAErC,OAAO,CACL;QACE,6BAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;YAC/D,8BAAM,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IACpE,IAAI,CAAC,WAAW,CAAC,CACb,CACH;QACN,oBAAC,OAAO,OAAG;QACX,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAChC,oBAAC,gBAAgB,oBAAK,KAAK,EAAI;YAC/B,oBAAC,OAAO,OAAG;YACX,oBAAC,qBAAqB,oBAAK,KAAK,EAAI;YACpC,oBAAC,OAAO,OAAG;YACV,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,CAC/B;gBACE,oBAAC,cAAc,oBAAK,KAAK,EAAI;gBAC7B,oBAAC,OAAO,OAAG,CACV,CACJ;YACD,oBAAC,kBAAkB,oBAAK,KAAK,EAAI,CAC7B,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
2
|
+
var t = {};
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
4
|
+
t[p] = s[p];
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
8
|
+
t[p[i]] = s[p[i]];
|
9
|
+
}
|
10
|
+
return t;
|
11
|
+
};
|
12
|
+
import React, { useEffect, useContext } from 'react';
|
13
|
+
import { I18nContext } from '../../../../contexts.js';
|
14
|
+
import { ExclamationTriangleIcon } from '@heroicons/react/24/outline';
|
15
|
+
const Item = React.memo(React.forwardRef((_a, ref) => {
|
16
|
+
var { value, status, title, style, dragOverlay, onClick, onMouseEnter, onMouseLeave, dragging, fadeIn, listeners, sorting, transition, transform } = _a, props = __rest(_a, ["value", "status", "title", "style", "dragOverlay", "onClick", "onMouseEnter", "onMouseLeave", "dragging", "fadeIn", "listeners", "sorting", "transition", "transform"]);
|
17
|
+
const i18n = useContext(I18nContext);
|
18
|
+
useEffect(() => {
|
19
|
+
if (!dragOverlay) {
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
document.body.style.cursor = 'grabbing';
|
23
|
+
return () => {
|
24
|
+
document.body.style.cursor = '';
|
25
|
+
};
|
26
|
+
}, [dragOverlay]);
|
27
|
+
const { x, y, scaleX, scaleY } = transform || { x: 0, y: 0, scaleX: 1, scaleY: 1 };
|
28
|
+
return (React.createElement("li", { style: {
|
29
|
+
transition,
|
30
|
+
transform: `translate(${x}px, ${y}px) scale(${scaleX}, ${scaleY})`,
|
31
|
+
}, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, ref: ref },
|
32
|
+
React.createElement("div", Object.assign({ style: Object.assign({ display: 'flex', alignItems: 'center' }, style) }, props),
|
33
|
+
React.createElement("button", Object.assign({}, listeners, { style: { padding: '0.5rem', background: 'none', border: 'none', display: 'flex' } }),
|
34
|
+
React.createElement("object", { style: { cursor: 'grab' }, width: 15 },
|
35
|
+
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", width: "16", height: "16" },
|
36
|
+
React.createElement("path", { d: "M10 13a1 1 0 100-2 1 1 0 000 2zm-4 0a1 1 0 100-2 1 1 0 000 2zm1-5a1 1 0 11-2 0 1 1 0 012 0zm3 1a1 1 0 100-2 1 1 0 000 2zm1-5a1 1 0 11-2 0 1 1 0 012 0zM6 5a1 1 0 100-2 1 1 0 000 2z" })))),
|
37
|
+
React.createElement("div", { style: {
|
38
|
+
width: '100%',
|
39
|
+
padding: '0.5rem',
|
40
|
+
paddingLeft: 0,
|
41
|
+
cursor: 'pointer',
|
42
|
+
overflow: 'hidden',
|
43
|
+
whiteSpace: 'nowrap',
|
44
|
+
textOverflow: 'ellipsis',
|
45
|
+
}, title: title || '', onClick: () => onClick && onClick() }, status === undefined ? (value) : (React.createElement("span", { style: { display: 'flex', alignItems: 'center' } },
|
46
|
+
React.createElement(ExclamationTriangleIcon, { width: 15, style: { marginRight: '0.5rem' } }),
|
47
|
+
status === 'is-warning' ? i18n('noKeyName') : value,
|
48
|
+
status === 'is-danger' ? i18n('notUniq') : ''))))));
|
49
|
+
}));
|
50
|
+
export default Item;
|
51
|
+
//# sourceMappingURL=Item.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/ListView/Item.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import React, { useState } from 'react';
|
2
|
+
import { createPortal } from 'react-dom';
|
3
|
+
import { closestCorners, DndContext, DragOverlay, KeyboardSensor, PointerSensor, useSensors, useSensor, } from '@dnd-kit/core';
|
4
|
+
import { SortableContext, arrayMove, sortableKeyboardCoordinates, verticalListSortingStrategy, } from '@dnd-kit/sortable';
|
5
|
+
import Item from './Item.js';
|
6
|
+
import SelectableSortableItem from './SelectableSortableItem.js';
|
7
|
+
const SelectableSortableContainer = (props) => {
|
8
|
+
const { schemas, onEdit, onSortEnd, height, hoveringSchemaId, onChangeHoveringSchemaId } = props;
|
9
|
+
const [selectedSchemas, setSelectedSchemas] = useState([]);
|
10
|
+
const [dragOverlaydItems, setClonedItems] = useState(null);
|
11
|
+
const [activeId, setActiveId] = useState(null);
|
12
|
+
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 15 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
13
|
+
const isItemSelected = (itemId) => selectedSchemas.map((i) => i.id).includes(itemId);
|
14
|
+
const onSelectionChanged = (id, isShiftSelect) => {
|
15
|
+
if (isShiftSelect) {
|
16
|
+
if (isItemSelected(id)) {
|
17
|
+
const newSelectedSchemas = selectedSchemas.filter((item) => item.id !== id);
|
18
|
+
setSelectedSchemas(newSelectedSchemas);
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
const newSelectedItem = schemas.find((schema) => schema.id === id);
|
22
|
+
const newSelectedSchemas = selectedSchemas.concat(newSelectedItem);
|
23
|
+
setSelectedSchemas(newSelectedSchemas);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
else {
|
27
|
+
setSelectedSchemas([]);
|
28
|
+
}
|
29
|
+
};
|
30
|
+
return (React.createElement(DndContext, { sensors: sensors, collisionDetection: closestCorners, onDragStart: ({ active }) => {
|
31
|
+
setActiveId(active.id);
|
32
|
+
setClonedItems(schemas);
|
33
|
+
if (!isItemSelected(active.id)) {
|
34
|
+
const newSelectedSchemas = [];
|
35
|
+
setSelectedSchemas(newSelectedSchemas);
|
36
|
+
}
|
37
|
+
else if (selectedSchemas.length > 0) {
|
38
|
+
onSortEnd(selectedSchemas.reduce((ret, selectedItem) => {
|
39
|
+
if (selectedItem.id === active.id) {
|
40
|
+
return ret;
|
41
|
+
}
|
42
|
+
return ret.filter((schema) => schema !== selectedItem);
|
43
|
+
}, schemas));
|
44
|
+
}
|
45
|
+
}, onDragEnd: ({ active, over }) => {
|
46
|
+
const overId = (over === null || over === void 0 ? void 0 : over.id) || '';
|
47
|
+
const activeIndex = schemas.map((i) => i.id).indexOf(active.id);
|
48
|
+
const overIndex = schemas.map((i) => i.id).indexOf(overId);
|
49
|
+
if (selectedSchemas.length) {
|
50
|
+
let newSchemas = [...schemas];
|
51
|
+
newSchemas = arrayMove(newSchemas, activeIndex, overIndex);
|
52
|
+
newSchemas.splice(overIndex + 1, 0, ...selectedSchemas.filter((item) => item.id !== activeId));
|
53
|
+
onSortEnd(newSchemas);
|
54
|
+
setSelectedSchemas([]);
|
55
|
+
}
|
56
|
+
else if (activeIndex !== overIndex) {
|
57
|
+
onSortEnd(arrayMove(schemas, activeIndex, overIndex));
|
58
|
+
}
|
59
|
+
setActiveId(null);
|
60
|
+
}, onDragCancel: () => {
|
61
|
+
if (dragOverlaydItems) {
|
62
|
+
onSortEnd(dragOverlaydItems);
|
63
|
+
}
|
64
|
+
setActiveId(null);
|
65
|
+
setClonedItems(null);
|
66
|
+
} },
|
67
|
+
React.createElement("div", { style: { height, overflowY: 'auto' } },
|
68
|
+
React.createElement(SortableContext, { items: schemas, strategy: verticalListSortingStrategy },
|
69
|
+
React.createElement("ul", { style: { margin: 0, padding: 0, listStyle: 'none', borderRadius: 5 } }, schemas.map((schema) => (React.createElement(SelectableSortableItem, { key: schema.id, style: {
|
70
|
+
border: `1px solid ${schema.id === hoveringSchemaId ? '#18a0fb' : 'transparent'}`,
|
71
|
+
}, schema: schema, schemas: schemas, isSelected: isItemSelected(schema.id) || activeId === schema.id, onEdit: onEdit, onSelect: onSelectionChanged, onMouseEnter: () => onChangeHoveringSchemaId(schema.id), onMouseLeave: () => onChangeHoveringSchemaId(null) })))))),
|
72
|
+
createPortal(React.createElement(DragOverlay, { adjustScale: true }, activeId ? (React.createElement(React.Fragment, null,
|
73
|
+
React.createElement("ul", { style: { margin: 0, padding: 0, listStyle: 'none' } },
|
74
|
+
React.createElement(Item, { value: schemas.find((schema) => schema.id === activeId).key, style: { color: '#fff', background: '#18a0fb' }, dragOverlay: true })),
|
75
|
+
React.createElement("ul", { style: { margin: 0, padding: 0, listStyle: 'none' } }, selectedSchemas
|
76
|
+
.filter((item) => item.id !== activeId)
|
77
|
+
.map((item) => (React.createElement(Item, { key: item.id, value: item.key, style: { color: '#fff', background: '#18a0fb' }, dragOverlay: true })))))) : null), document.body)));
|
78
|
+
};
|
79
|
+
export default SelectableSortableContainer;
|
80
|
+
//# sourceMappingURL=SelectableSortableContainer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SelectableSortableContainer.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/ListView/SelectableSortableContainer.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { useSortable } from '@dnd-kit/sortable';
|
3
|
+
import { I18nContext } from '../../../../contexts.js';
|
4
|
+
import Item from './Item.js';
|
5
|
+
import { useMountStatus } from '../../../../hooks.js';
|
6
|
+
const SelectableSortableItem = ({ isSelected, style, onSelect, onEdit, schema, schemas, onMouseEnter, onMouseLeave, }) => {
|
7
|
+
const i18n = useContext(I18nContext);
|
8
|
+
const { setNodeRef, listeners, isDragging, isSorting, transform, transition } = useSortable({
|
9
|
+
id: schema.id,
|
10
|
+
});
|
11
|
+
const mounted = useMountStatus();
|
12
|
+
const mountedWhileDragging = isDragging && !mounted;
|
13
|
+
const newListeners = Object.assign(Object.assign({}, listeners), { onClick: (event) => onSelect(schema.id, event.shiftKey) });
|
14
|
+
let status;
|
15
|
+
if (!schema.key) {
|
16
|
+
status = 'is-warning';
|
17
|
+
}
|
18
|
+
else if (schemas.find((s) => schema.key && s.key === schema.key && s.id !== schema.id)) {
|
19
|
+
status = 'is-danger';
|
20
|
+
}
|
21
|
+
let title = i18n('edit');
|
22
|
+
if (status === 'is-warning') {
|
23
|
+
title = i18n('plsInputName');
|
24
|
+
}
|
25
|
+
else if (status === 'is-danger') {
|
26
|
+
title = i18n('fieldMustUniq');
|
27
|
+
}
|
28
|
+
const selectedStyle = isSelected
|
29
|
+
? { color: '#fff', background: '#18a0fb', opacity: isSorting || isDragging ? 0.5 : 1 }
|
30
|
+
: {};
|
31
|
+
return (React.createElement(Item, { ref: setNodeRef, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: () => onEdit(schema.id), value: schema.key, status: status, title: title, style: Object.assign(Object.assign({}, selectedStyle), style), dragging: isDragging, sorting: isSorting, transition: transition, transform: transform, fadeIn: mountedWhileDragging, listeners: newListeners }));
|
32
|
+
};
|
33
|
+
export default SelectableSortableItem;
|
34
|
+
//# sourceMappingURL=SelectableSortableItem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SelectableSortableItem.js","sourceRoot":"","sources":["../../../../../../../src/components/Designer/Sidebar/ListView/SelectableSortableItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYtD,MAAM,sBAAsB,GAAG,CAAC,EAC9B,UAAU,EACV,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,EACZ,YAAY,GACN,EAAE,EAAE;IACV,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QAC1F,EAAE,EAAE,MAAM,CAAC,EAAE;KACd,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,oBAAoB,GAAG,UAAU,IAAI,CAAC,OAAO,CAAC;IAEpD,MAAM,YAAY,mCACb,SAAS,KACZ,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,GAC7D,CAAC;IAEF,IAAI,MAA8C,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACf,MAAM,GAAG,YAAY,CAAC;KACvB;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE;QACxF,MAAM,GAAG,WAAW,CAAC;KACtB;IAED,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,MAAM,KAAK,YAAY,EAAE;QAC3B,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;KAC9B;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;KAC/B;IAED,MAAM,aAAa,GAAG,UAAU;QAC9B,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACtF,CAAC,CAAE,EAA0B,CAAC;IAEhC,OAAO,CACL,oBAAC,IAAI,IACH,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,GAAG,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,KAAK,kCAAO,aAAa,GAAK,KAAK,GACnC,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,YAAY,GACvB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|