@servicetitan/dte-pdf-editor 1.77.0 → 1.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/pdf-canvas/canvas-controls.d.ts +24 -0
- package/dist/components/pdf-canvas/canvas-controls.d.ts.map +1 -0
- package/dist/components/pdf-canvas/canvas-controls.js +22 -0
- package/dist/components/pdf-canvas/canvas-controls.js.map +1 -0
- package/dist/components/pdf-canvas/pdf-canvas.d.ts +1 -0
- package/dist/components/pdf-canvas/pdf-canvas.d.ts.map +1 -1
- package/dist/components/pdf-canvas/pdf-canvas.js +6 -3
- package/dist/components/pdf-canvas/pdf-canvas.js.map +1 -1
- package/dist/components/pdf-editor/pdf-editor.d.ts +1 -0
- package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
- package/dist/components/pdf-editor/pdf-editor.js +2 -2
- package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts +1 -0
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js +2 -2
- package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts +1 -0
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts.map +1 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.js +4 -1
- package/dist/components/pdf-fields-overlay/pdf-overlay-field.js.map +1 -1
- package/dist/components/pdf-view/pdf-view-field-container.d.ts +1 -0
- package/dist/components/pdf-view/pdf-view-field-container.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view-field-container.js +5 -4
- package/dist/components/pdf-view/pdf-view-field-container.js.map +1 -1
- package/dist/components/pdf-view/pdf-view.d.ts +2 -0
- package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
- package/dist/components/pdf-view/pdf-view.js +29 -5
- package/dist/components/pdf-view/pdf-view.js.map +1 -1
- package/dist/constants/pdf-editor.constants.d.ts +4 -0
- package/dist/constants/pdf-editor.constants.d.ts.map +1 -1
- package/dist/constants/pdf-editor.constants.js +4 -0
- package/dist/constants/pdf-editor.constants.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useFieldDrag.d.ts +2 -1
- package/dist/hooks/useFieldDrag.d.ts.map +1 -1
- package/dist/hooks/useFieldDrag.js +7 -6
- package/dist/hooks/useFieldDrag.js.map +1 -1
- package/dist/hooks/useFieldResize.d.ts +2 -1
- package/dist/hooks/useFieldResize.d.ts.map +1 -1
- package/dist/hooks/useFieldResize.js +7 -3
- package/dist/hooks/useFieldResize.js.map +1 -1
- package/dist/hooks/useZoom.d.ts +11 -0
- package/dist/hooks/useZoom.d.ts.map +1 -0
- package/dist/hooks/useZoom.js +14 -0
- package/dist/hooks/useZoom.js.map +1 -0
- package/dist/styles/pdf-canvas.css +24 -5
- package/dist/styles/pdf-editor.css +1 -0
- package/dist/styles/pdf-field-overlay.css +14 -0
- package/dist/styles/variables.css +10 -1
- package/dist/utils/field/field-drag.utils.d.ts +4 -2
- package/dist/utils/field/field-drag.utils.d.ts.map +1 -1
- package/dist/utils/field/field-drag.utils.js +14 -10
- package/dist/utils/field/field-drag.utils.js.map +1 -1
- package/dist/utils/field/field-reading-order.utils.d.ts +15 -0
- package/dist/utils/field/field-reading-order.utils.d.ts.map +1 -0
- package/dist/utils/field/field-reading-order.utils.js +33 -0
- package/dist/utils/field/field-reading-order.utils.js.map +1 -0
- package/dist/utils/field/field-resize.utils.d.ts +4 -2
- package/dist/utils/field/field-resize.utils.d.ts.map +1 -1
- package/dist/utils/field/field-resize.utils.js +12 -10
- package/dist/utils/field/field-resize.utils.js.map +1 -1
- package/dist/utils/field/get-field-bounds-style.utils.d.ts +7 -0
- package/dist/utils/field/get-field-bounds-style.utils.d.ts.map +1 -1
- package/dist/utils/field/get-field-bounds-style.utils.js +5 -5
- package/dist/utils/field/get-field-bounds-style.utils.js.map +1 -1
- package/dist/utils/field/index.d.ts +1 -0
- package/dist/utils/field/index.d.ts.map +1 -1
- package/dist/utils/field/index.js +1 -0
- package/dist/utils/field/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/pdf-canvas/canvas-controls.tsx +183 -0
- package/src/components/pdf-canvas/pdf-canvas.tsx +64 -33
- package/src/components/pdf-editor/pdf-editor.tsx +12 -2
- package/src/components/pdf-fields-overlay/pdf-fields-overlay.tsx +3 -0
- package/src/components/pdf-fields-overlay/pdf-overlay-field.tsx +5 -0
- package/src/components/pdf-view/pdf-view-field-container.tsx +6 -2
- package/src/components/pdf-view/pdf-view.tsx +78 -5
- package/src/constants/pdf-editor.constants.ts +5 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useFieldDrag.ts +10 -5
- package/src/hooks/useFieldResize.ts +16 -2
- package/src/hooks/useZoom.ts +25 -0
- package/src/styles/pdf-canvas.css +24 -5
- package/src/styles/pdf-editor.css +1 -0
- package/src/styles/pdf-field-overlay.css +14 -0
- package/src/styles/variables.css +10 -1
- package/src/utils/field/__tests__/field-reading-order.utils.test.ts +62 -0
- package/src/utils/field/field-drag.utils.ts +14 -8
- package/src/utils/field/field-reading-order.utils.ts +43 -0
- package/src/utils/field/field-resize.utils.ts +12 -8
- package/src/utils/field/get-field-bounds-style.utils.ts +17 -5
- package/src/utils/field/index.ts +1 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
interface ZoomControlsProps {
|
|
3
|
+
zoom: number;
|
|
4
|
+
onZoomIn(): void;
|
|
5
|
+
onZoomOut(): void;
|
|
6
|
+
onResetZoom(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface CanvasControlsProps extends ZoomControlsProps {
|
|
9
|
+
/** Show the zoom in/out/reset controls. */
|
|
10
|
+
zoomable?: boolean;
|
|
11
|
+
/** Show the previous/next fillable-field navigation controls. */
|
|
12
|
+
enableInputNavigation?: boolean;
|
|
13
|
+
disabledNext?: boolean;
|
|
14
|
+
disabledPrev?: boolean;
|
|
15
|
+
disabledOnFirstField?: boolean;
|
|
16
|
+
disabledOnLastField?: boolean;
|
|
17
|
+
onNextField?(): void;
|
|
18
|
+
onPrevField?(): void;
|
|
19
|
+
onFirstField?(): void;
|
|
20
|
+
onLastField?(): void;
|
|
21
|
+
}
|
|
22
|
+
export declare const CanvasControls: FC<CanvasControlsProps>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=canvas-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-controls.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-canvas/canvas-controls.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,UAAU,iBAAiB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,IAAI,IAAI,CAAC;IACjB,SAAS,IAAI,IAAI,CAAC;IAClB,WAAW,IAAI,IAAI,CAAC;CACvB;AA4GD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC1D,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,YAAY,CAAC,IAAI,IAAI,CAAC;IACtB,WAAW,CAAC,IAAI,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA4ClD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Divider, Flex, Icon, Text } from '@servicetitan/anvil2';
|
|
3
|
+
import IconNavigateDown from '@servicetitan/anvil2/assets/icons/material/round/arrow_downward.svg';
|
|
4
|
+
import IconNavigateUp from '@servicetitan/anvil2/assets/icons/material/round/arrow_upward.svg';
|
|
5
|
+
import IconNavigateBefore from '@servicetitan/anvil2/assets/icons/material/round/navigate_before.svg';
|
|
6
|
+
import IconNavigateNext from '@servicetitan/anvil2/assets/icons/material/round/navigate_next.svg';
|
|
7
|
+
import IconZoomIn from '@servicetitan/anvil2/assets/icons/material/round/zoom_in.svg';
|
|
8
|
+
import IconZoomOut from '@servicetitan/anvil2/assets/icons/material/round/zoom_out.svg';
|
|
9
|
+
import { ZOOM_MAX, ZOOM_MIN } from '../../constants';
|
|
10
|
+
const ZoomControls = ({ onResetZoom, onZoomIn, onZoomOut, zoom }) => {
|
|
11
|
+
return (_jsxs(Flex, { alignItems: "center", gap: 1, className: "dte-pdf-zoom-controls", children: [_jsx(Button, { size: "xsmall", appearance: "ghost", onClick: onZoomOut, disabled: zoom <= ZOOM_MIN, "aria-label": "Zoom out", title: "Zoom out", children: _jsx(Icon, { svg: IconZoomOut, size: "medium" }) }), _jsxs(Text, { variant: "body", size: "small", className: "dte-pdf-zoom-controls-value", onClick: onResetZoom, title: "Reset zoom", children: [Math.round(zoom * 100), "%"] }), _jsx(Button, { size: "xsmall", appearance: "ghost", onClick: onZoomIn, disabled: zoom >= ZOOM_MAX, "aria-label": "Zoom in", title: "Zoom in", children: _jsx(Icon, { svg: IconZoomIn, size: "medium" }) })] }));
|
|
12
|
+
};
|
|
13
|
+
const FieldNavigationControls = ({ disabledNext, disabledOnFirstField, disabledOnLastField, disabledPrev, onFirstField, onLastField, onNextField, onPrevField, }) => {
|
|
14
|
+
return (_jsxs(Flex, { alignItems: "center", gap: "2", className: "dte-pdf-field-navigation-controls", children: [_jsx(Button, { size: "xsmall", appearance: "ghost", onClick: onPrevField, disabled: disabledPrev, "aria-label": "Go to previous field", title: "Go to previous field", children: _jsx(Icon, { svg: IconNavigateBefore, size: "medium" }) }), _jsx(Button, { size: "xsmall", appearance: "ghost", onClick: onNextField, disabled: disabledNext, "aria-label": "Go to next field", title: "Go to next field", children: _jsx(Icon, { svg: IconNavigateNext, size: "medium" }) }), _jsx(Divider, { vertical: true, style: { height: '100%' } }), _jsx(Button, { size: "xsmall", appearance: "ghost", onClick: onFirstField, disabled: disabledOnFirstField, "aria-label": "Go to first field", title: "Go to first field", children: _jsx(Icon, { svg: IconNavigateUp, size: "medium" }) }), _jsx(Button, { size: "xsmall", appearance: "ghost", onClick: onLastField, disabled: disabledOnLastField, "aria-label": "Go to last field", title: "Go to last field", children: _jsx(Icon, { svg: IconNavigateDown, size: "medium" }) })] }));
|
|
15
|
+
};
|
|
16
|
+
export const CanvasControls = ({ disabledNext = false, disabledOnFirstField = false, disabledOnLastField = false, disabledPrev = false, enableInputNavigation = false, onFirstField = () => { }, onLastField = () => { }, onNextField = () => { }, onPrevField = () => { }, onResetZoom, onZoomIn, onZoomOut, zoom, zoomable = false, }) => {
|
|
17
|
+
if (!zoomable && !enableInputNavigation) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return (_jsxs(Flex, { justifyContent: "center", gap: 2, className: "dte-pdf-canvas-controls", children: [zoomable && (_jsx(ZoomControls, { zoom: zoom, onZoomIn: onZoomIn, onZoomOut: onZoomOut, onResetZoom: onResetZoom })), enableInputNavigation && (_jsx(FieldNavigationControls, { disabledOnFirstField: disabledOnFirstField, disabledOnLastField: disabledOnLastField, onFirstField: onFirstField, onLastField: onLastField, disabledNext: disabledNext, disabledPrev: disabledPrev, onNextField: onNextField, onPrevField: onPrevField }))] }));
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=canvas-controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-controls.js","sourceRoot":"","sources":["../../../src/components/pdf-canvas/canvas-controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { DragEvent, FC, MouseEvent, ReactNode, RefObject } from 'react';
|
|
|
2
2
|
import { type PdfField } from '../../interface/types';
|
|
3
3
|
interface PdfCanvasProps {
|
|
4
4
|
pdfUrl: string;
|
|
5
|
+
zoomable: boolean;
|
|
5
6
|
errorPlaceholder?: ReactNode;
|
|
6
7
|
loadingPlaceholder?: ReactNode;
|
|
7
8
|
fields: PdfField[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-canvas.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-canvas/pdf-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"pdf-canvas.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-canvas/pdf-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,SAAS,EACT,EAAE,EAEF,UAAU,EACV,SAAS,EACT,SAAS,EAGZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9F,eAAe,IAAI,IAAI,CAAC;IACxB,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAwFxC,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex } from '@servicetitan/anvil2';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Fragment, useEffect, useState, } from 'react';
|
|
4
4
|
import { BASE_PAGE_WIDTH } from '../../constants';
|
|
5
|
+
import { useZoom } from '../../hooks';
|
|
5
6
|
import { PdfFieldsOverlay } from '../pdf-fields-overlay/pdf-fields-overlay';
|
|
7
|
+
import { CanvasControls } from './canvas-controls';
|
|
6
8
|
import { PdfDocumentRenderer } from './pdf-document-renderer';
|
|
7
|
-
export const PdfCanvas = ({ errorPlaceholder, errors = {}, fieldWrapperClassNames, fields, handleAddNewField, loading, loadingPlaceholder, onDeselectField, onDragOver, onDrop, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, onLoadSuccess, pdfContainerRef, pdfUrl, pdfWrapperRef, recipientsColors, selectedField, }) => {
|
|
9
|
+
export const PdfCanvas = ({ errorPlaceholder, errors = {}, fieldWrapperClassNames, fields, handleAddNewField, loading, loadingPlaceholder, onDeselectField, onDragOver, onDrop, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, onLoadSuccess, pdfContainerRef, pdfUrl, pdfWrapperRef, recipientsColors, selectedField, zoomable, }) => {
|
|
8
10
|
const [isPdfLoaded, setIsPdfLoaded] = useState(false);
|
|
11
|
+
const { resetZoom, zoom, zoomIn, zoomOut } = useZoom();
|
|
9
12
|
const onDocumentLoadSuccess = (pageNum) => {
|
|
10
13
|
setIsPdfLoaded(true);
|
|
11
14
|
onLoadSuccess === null || onLoadSuccess === void 0 ? void 0 : onLoadSuccess(pageNum);
|
|
@@ -13,6 +16,6 @@ export const PdfCanvas = ({ errorPlaceholder, errors = {}, fieldWrapperClassName
|
|
|
13
16
|
useEffect(() => {
|
|
14
17
|
setIsPdfLoaded(false);
|
|
15
18
|
}, [pdfUrl]);
|
|
16
|
-
return (_jsx(Flex, { flex: 1, ref: pdfContainerRef, className: "dte-pdf-canvas-container", onClick: onDeselectField, children: _jsxs("div", { ref: pdfWrapperRef, className: "dte-pdf-wrapper", style: { width: BASE_PAGE_WIDTH }, children: [_jsx(PdfDocumentRenderer, { pdfUrl: pdfUrl, onDrop: onDrop, loading: loading, onDragOver: onDragOver, pageWidth: BASE_PAGE_WIDTH, errorPlaceholder: errorPlaceholder, loadingPlaceholder: loadingPlaceholder, onDocumentLoadSuccess: onDocumentLoadSuccess }), isPdfLoaded && (_jsx(PdfFieldsOverlay, { fields: fields, errors: errors, onFieldConfigChange: onFieldConfigChange, handleAddNewField: handleAddNewField, pdfWrapperRef: pdfWrapperRef, recipientsColors: recipientsColors, selectedField: selectedField !== null && selectedField !== void 0 ? selectedField : null, onFieldClick: onFieldClick, onFieldMove: onFieldMove, onFieldResize: onFieldResize, fieldWrapperClassNames: fieldWrapperClassNames }))] }) }));
|
|
19
|
+
return (_jsxs(Fragment, { children: [isPdfLoaded && (_jsx(CanvasControls, { enableInputNavigation: false, zoomable: zoomable, zoom: zoom, onZoomIn: zoomIn, onZoomOut: zoomOut, onResetZoom: resetZoom })), _jsx(Flex, { flex: 1, ref: pdfContainerRef, className: "dte-pdf-canvas-container", onClick: onDeselectField, children: _jsxs("div", { ref: pdfWrapperRef, className: "dte-pdf-wrapper", style: { width: BASE_PAGE_WIDTH * zoom }, children: [_jsx(PdfDocumentRenderer, { pdfUrl: pdfUrl, onDrop: onDrop, loading: loading, onDragOver: onDragOver, pageWidth: BASE_PAGE_WIDTH * zoom, errorPlaceholder: errorPlaceholder, loadingPlaceholder: loadingPlaceholder, onDocumentLoadSuccess: onDocumentLoadSuccess }), isPdfLoaded && (_jsx(PdfFieldsOverlay, { fields: fields, errors: errors, onFieldConfigChange: onFieldConfigChange, handleAddNewField: handleAddNewField, pdfWrapperRef: pdfWrapperRef, recipientsColors: recipientsColors, selectedField: selectedField !== null && selectedField !== void 0 ? selectedField : null, onFieldClick: onFieldClick, onFieldMove: onFieldMove, onFieldResize: onFieldResize, fieldWrapperClassNames: fieldWrapperClassNames, zoom: zoom }))] }) })] }));
|
|
17
20
|
};
|
|
18
21
|
//# sourceMappingURL=pdf-canvas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-canvas.js","sourceRoot":"","sources":["../../../src/components/pdf-canvas/pdf-canvas.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"pdf-canvas.js","sourceRoot":"","sources":["../../../src/components/pdf-canvas/pdf-canvas.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAGH,QAAQ,EAIR,SAAS,EACT,QAAQ,GACX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA0B9D,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAC1C,gBAAgB,EAChB,MAAM,GAAG,EAAE,EACX,sBAAsB,EACtB,MAAM,EACN,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC/D,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAEvD,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,EAAE;QAC9C,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACH,MAAC,QAAQ,eACJ,WAAW,IAAI,CACZ,KAAC,cAAc,IACX,qBAAqB,EAAE,KAAK,EAC5B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,SAAS,GACxB,CACL,EACD,KAAC,IAAI,IACD,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,eAAe,EACpB,SAAS,EAAC,0BAA0B,EACpC,OAAO,EAAE,eAAe,YAExB,eACI,GAAG,EAAE,aAAa,EAClB,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,EAAE,aAExC,KAAC,mBAAmB,IAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,eAAe,GAAG,IAAI,EACjC,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,qBAAqB,GAC9C,EACD,WAAW,IAAI,CACZ,KAAC,gBAAgB,IACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,EACpC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,IAAI,EAAE,IAAI,GACZ,CACL,IACC,GACH,IACA,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-editor.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-editor/pdf-editor.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAgC,MAAM,OAAO,CAAC;AAEpE,OAAO,EACH,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,KAAK,IAAI,KAChE,IAAI,CAAC;IACV,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"pdf-editor.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-editor/pdf-editor.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAgC,MAAM,OAAO,CAAC;AAEpE,OAAO,EACH,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,CACX,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,KAAK,IAAI,KAChE,IAAI,CAAC;IACV,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA6GxC,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { FieldConfigPanelOverlay } from '../field-config-panel/field-config-pane
|
|
|
7
7
|
import { FieldSidebar } from '../field-sidebar/field-sidebar';
|
|
8
8
|
import { PdfCanvas } from '../pdf-canvas/pdf-canvas';
|
|
9
9
|
import '../../styles/index.css';
|
|
10
|
-
export const PdfEditor = ({ dataModel, errorPlaceholder, errors = {}, fields = [], forms, hideConditionalLogic, hideFields, loading = false, loadingPlaceholder, onFieldsChange, onFormSelect, onLoadSuccess, pdfUrl, recipients = [], }) => {
|
|
10
|
+
export const PdfEditor = ({ dataModel, errorPlaceholder, errors = {}, fields = [], forms, hideConditionalLogic, hideFields, loading = false, loadingPlaceholder, onFieldsChange, onFormSelect, onLoadSuccess, pdfUrl, recipients = [], zoomable = true, }) => {
|
|
11
11
|
const pdfContainerRef = useRef(null);
|
|
12
12
|
const pdfWrapperRef = useRef(null);
|
|
13
13
|
const pdfFieldSelection = usePdfFieldSelection(fields, onFieldsChange);
|
|
@@ -22,6 +22,6 @@ export const PdfEditor = ({ dataModel, errorPlaceholder, errors = {}, fields = [
|
|
|
22
22
|
const dataModelGroups = useMemo(() => (dataModel ? extractGroupedFieldsFromDataModel(dataModel) : []), [dataModel]);
|
|
23
23
|
const handleAddNewField = useCallback((field) => onFieldsChange([...fields, field]), [fields, onFieldsChange]);
|
|
24
24
|
const recipientsColors = mapColorsToRecipients(recipients);
|
|
25
|
-
return (_jsxs(Flex, { flex: 1, className: `dte-pdf-editor ${loading ? 'skeleton' : ''}`, children: [pdfFieldSelection.selectedField && (_jsx(FieldConfigPanelOverlay, { dataModel: dataModel, documentFields: fields, formFieldsByFormId: formFields.formFieldsByFormId, forms: forms !== null && forms !== void 0 ? forms : [], formulaLoadingFormId: formFields.formulaLoadingFormId, selectedField: pdfFieldSelection.selectedField, onFieldConfigChange: pdfFieldSelection.updateField, onMatchingFieldsConfigChange: pdfFieldSelection.updateMatchingFields, onDeleteField: pdfFieldSelection.deleteSelectedField, recipients: recipients, onDeselectField: pdfFieldSelection.deselectField, hideConditionalLogic: hideConditionalLogic, onRequestFormFields: formFields.requestFormFieldsById })), _jsx(Flex, { className: "dte-pdf-editor-sidebar-container", children: _jsx(FieldSidebar, { hideFields: hideFields, dataModelGroups: dataModelGroups, formFieldOptions: formFields.formFieldOptions, forms: forms, isLoadingFormFields: formFields.isLoading, onDragStart: pdfFieldDnd.handleDragStart, onDragEnd: pdfFieldDnd.handleDragEnd, onSelectForm: formFields.handleSelectForm, selectedForm: formFields.selectedForm }) }), _jsx(Flex, {
|
|
25
|
+
return (_jsxs(Flex, { flex: 1, className: `dte-pdf-editor-theme dte-pdf-editor ${loading ? 'skeleton' : ''}`, children: [pdfFieldSelection.selectedField && (_jsx(FieldConfigPanelOverlay, { dataModel: dataModel, documentFields: fields, formFieldsByFormId: formFields.formFieldsByFormId, forms: forms !== null && forms !== void 0 ? forms : [], formulaLoadingFormId: formFields.formulaLoadingFormId, selectedField: pdfFieldSelection.selectedField, onFieldConfigChange: pdfFieldSelection.updateField, onMatchingFieldsConfigChange: pdfFieldSelection.updateMatchingFields, onDeleteField: pdfFieldSelection.deleteSelectedField, recipients: recipients, onDeselectField: pdfFieldSelection.deselectField, hideConditionalLogic: hideConditionalLogic, onRequestFormFields: formFields.requestFormFieldsById })), _jsx(Flex, { className: "dte-pdf-editor-sidebar-container", children: _jsx(FieldSidebar, { hideFields: hideFields, dataModelGroups: dataModelGroups, formFieldOptions: formFields.formFieldOptions, forms: forms, isLoadingFormFields: formFields.isLoading, onDragStart: pdfFieldDnd.handleDragStart, onDragEnd: pdfFieldDnd.handleDragEnd, onSelectForm: formFields.handleSelectForm, selectedForm: formFields.selectedForm }) }), _jsx(Flex, { direction: "column", flex: 1, className: "dte-pdf-editor-content-container skeleton-item", children: _jsx(PdfCanvas, { zoomable: zoomable, pdfUrl: pdfUrl, fields: fields, loading: loading, errors: errors, onLoadSuccess: onLoadSuccess, recipientsColors: recipientsColors, fieldWrapperClassNames: "--edit-mode", selectedField: pdfFieldSelection.selectedField, pdfContainerRef: pdfContainerRef, pdfWrapperRef: pdfWrapperRef, errorPlaceholder: errorPlaceholder, loadingPlaceholder: loadingPlaceholder, handleAddNewField: handleAddNewField, onDrop: pdfFieldDnd.handleDrop, onDragOver: pdfFieldDnd.handleDragOver, onFieldClick: pdfFieldSelection.selectField, onFieldMove: pdfFieldSelection.moveField, onFieldResize: pdfFieldSelection.resizeField, onDeselectField: pdfFieldSelection.deselectField, onFieldConfigChange: pdfFieldSelection.updateField }) })] }));
|
|
26
26
|
};
|
|
27
27
|
//# sourceMappingURL=pdf-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-editor.js","sourceRoot":"","sources":["../../../src/components/pdf-editor/pdf-editor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAiB,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AASlF,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-editor.js","sourceRoot":"","sources":["../../../src/components/pdf-editor/pdf-editor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAiB,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AASlF,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,wBAAwB,CAAC;AAuBhC,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAC1C,SAAS,EACT,gBAAgB,EAChB,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,KAAK,EACL,oBAAoB,EACpB,UAAU,EACV,OAAO,GAAG,KAAK,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,MAAM,EACN,UAAU,GAAG,EAAE,EACf,QAAQ,GAAG,IAAI,GAClB,EAAE,EAAE;IACD,MAAM,eAAe,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,cAAc,CAAC;QAC/B,MAAM;QACN,UAAU;QACV,cAAc;QACd,aAAa;QACb,aAAa,EAAE,iBAAiB,CAAC,kBAAkB;KACtD,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,CAAC,SAAS,CAAC,CACd,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACjC,CAAC,KAAe,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,EACvD,CAAC,MAAM,EAAE,cAAc,CAAC,CAC3B,CAAC;IAEF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAE3D,OAAO,CACH,MAAC,IAAI,IACD,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,uCAAuC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,aAE5E,iBAAiB,CAAC,aAAa,IAAI,CAChC,KAAC,uBAAuB,IACpB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,EACjD,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAClB,oBAAoB,EAAE,UAAU,CAAC,oBAAoB,EACrD,aAAa,EAAE,iBAAiB,CAAC,aAAa,EAC9C,mBAAmB,EAAE,iBAAiB,CAAC,WAAW,EAClD,4BAA4B,EAAE,iBAAiB,CAAC,oBAAoB,EACpE,aAAa,EAAE,iBAAiB,CAAC,mBAAmB,EACpD,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,iBAAiB,CAAC,aAAa,EAChD,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,UAAU,CAAC,qBAAqB,GACvD,CACL,EAED,KAAC,IAAI,IAAC,SAAS,EAAC,kCAAkC,YAC9C,KAAC,YAAY,IACT,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAC7C,KAAK,EAAE,KAAK,EACZ,mBAAmB,EAAE,UAAU,CAAC,SAAS,EACzC,WAAW,EAAE,WAAW,CAAC,eAAe,EACxC,SAAS,EAAE,WAAW,CAAC,aAAa,EACpC,YAAY,EAAE,UAAU,CAAC,gBAAgB,EACzC,YAAY,EAAE,UAAU,CAAC,YAAY,GACvC,GACC,EAEP,KAAC,IAAI,IACD,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,gDAAgD,YAE1D,KAAC,SAAS,IACN,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAC,aAAa,EACpC,aAAa,EAAE,iBAAiB,CAAC,aAAa,EAC9C,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,CAAC,UAAU,EAC9B,UAAU,EAAE,WAAW,CAAC,cAAc,EACtC,YAAY,EAAE,iBAAiB,CAAC,WAAW,EAC3C,WAAW,EAAE,iBAAiB,CAAC,SAAS,EACxC,aAAa,EAAE,iBAAiB,CAAC,WAAW,EAC5C,eAAe,EAAE,iBAAiB,CAAC,aAAa,EAChD,mBAAmB,EAAE,iBAAiB,CAAC,WAAW,GACpD,GACC,IACJ,CACV,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -7,6 +7,7 @@ interface PdfFieldsOverlayProps {
|
|
|
7
7
|
pdfWrapperRef: RefObject<HTMLDivElement>;
|
|
8
8
|
recipientsColors: Record<string, string>;
|
|
9
9
|
fieldWrapperClassNames?: string;
|
|
10
|
+
zoom?: number;
|
|
10
11
|
onFieldConfigChange(updates: Partial<PdfField>): void;
|
|
11
12
|
handleAddNewField(field: PdfField): void;
|
|
12
13
|
onFieldClick(fieldId: string, e: MouseEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-fields-overlay.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,UAAU,qBAAqB;IAC3B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,
|
|
1
|
+
{"version":3,"file":"pdf-fields-overlay.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,UAAU,qBAAqB;IAC3B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA+CtD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { PdfOverlayField } from './pdf-overlay-field';
|
|
4
|
-
export const PdfFieldsOverlay = ({ errors, fieldWrapperClassNames, fields, handleAddNewField, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pdfWrapperRef, recipientsColors, selectedField, }) => {
|
|
4
|
+
export const PdfFieldsOverlay = ({ errors, fieldWrapperClassNames, fields, handleAddNewField, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pdfWrapperRef, recipientsColors, selectedField, zoom = 1, }) => {
|
|
5
5
|
const pathToLabel = useMemo(() => {
|
|
6
6
|
const map = new Map();
|
|
7
7
|
for (const f of fields) {
|
|
@@ -11,6 +11,6 @@ export const PdfFieldsOverlay = ({ errors, fieldWrapperClassNames, fields, handl
|
|
|
11
11
|
}
|
|
12
12
|
return map;
|
|
13
13
|
}, [fields]);
|
|
14
|
-
return (_jsx("div", { className: "dte-pdf-field-overlay skeleton-item", children: fields.map(field => (_jsx(PdfOverlayField, { field: field, fieldWrapperClassNames: fieldWrapperClassNames, onFieldConfigChange: onFieldConfigChange, error: errors[field.id], handleAddNewField: handleAddNewField, onFieldMove: onFieldMove, onFieldClick: onFieldClick, pdfWrapperRef: pdfWrapperRef, onFieldResize: onFieldResize, isSelected: (selectedField === null || selectedField === void 0 ? void 0 : selectedField.id) === field.id, recipientsColors: recipientsColors, isSameGroup: (selectedField === null || selectedField === void 0 ? void 0 : selectedField.path) === field.path, pathToLabel: pathToLabel }, field.id))) }));
|
|
14
|
+
return (_jsx("div", { className: "dte-pdf-field-overlay skeleton-item", children: fields.map(field => (_jsx(PdfOverlayField, { field: field, fieldWrapperClassNames: fieldWrapperClassNames, onFieldConfigChange: onFieldConfigChange, error: errors[field.id], handleAddNewField: handleAddNewField, onFieldMove: onFieldMove, onFieldClick: onFieldClick, pdfWrapperRef: pdfWrapperRef, onFieldResize: onFieldResize, isSelected: (selectedField === null || selectedField === void 0 ? void 0 : selectedField.id) === field.id, recipientsColors: recipientsColors, isSameGroup: (selectedField === null || selectedField === void 0 ? void 0 : selectedField.path) === field.path, pathToLabel: pathToLabel, zoom: zoom }, field.id))) }));
|
|
15
15
|
};
|
|
16
16
|
//# sourceMappingURL=pdf-fields-overlay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-fields-overlay.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA6B,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-fields-overlay.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-fields-overlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA6B,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiBtD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,MAAM,EACN,sBAAsB,EACtB,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,IAAI,GAAG,CAAC,GACX,EAAE,EAAE;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACH,cAAK,SAAS,EAAC,qCAAqC,YAC/C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACjB,KAAC,eAAe,IAEZ,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,sBAAsB,EAC9C,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACvB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,MAAK,KAAK,CAAC,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,KAAK,CAAC,IAAI,EAC/C,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,IAdL,KAAK,CAAC,EAAE,CAef,CACL,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -9,6 +9,7 @@ interface PdfOverlayFieldProps {
|
|
|
9
9
|
pdfWrapperRef: RefObject<HTMLDivElement>;
|
|
10
10
|
pathToLabel?: Map<string, string>;
|
|
11
11
|
fieldWrapperClassNames?: string;
|
|
12
|
+
zoom?: number;
|
|
12
13
|
onFieldConfigChange(updates: Partial<PdfField>): void;
|
|
13
14
|
handleAddNewField(field: PdfField): void;
|
|
14
15
|
onFieldClick(fieldId: string, e: MouseEvent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-overlay-field.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AASrE,UAAU,oBAAoB;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"pdf-overlay-field.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AASrE,UAAU,oBAAoB;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACtD,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjG;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwFpD,CAAC"}
|
|
@@ -9,16 +9,18 @@ import { PdfOverlayFieldESign } from './pdf-overlay-field-e-sign';
|
|
|
9
9
|
import { PdfOverlayFieldFillable } from './pdf-overlay-field-fillable';
|
|
10
10
|
import { PdfOverlayFieldGeneric } from './pdf-overlay-field-generic';
|
|
11
11
|
import { ResizeHandle } from './resize-handle';
|
|
12
|
-
export const PdfOverlayField = ({ error, field, fieldWrapperClassNames = '', handleAddNewField, isSameGroup, isSelected, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pathToLabel, pdfWrapperRef, recipientsColors, }) => {
|
|
12
|
+
export const PdfOverlayField = ({ error, field, fieldWrapperClassNames = '', handleAddNewField, isSameGroup, isSelected, onFieldClick, onFieldConfigChange, onFieldMove, onFieldResize, pathToLabel, pdfWrapperRef, recipientsColors, zoom = 1, }) => {
|
|
13
13
|
var _a, _b, _c, _d;
|
|
14
14
|
const { dragVisualPosition, handleDrag, handleDragEnd, handleDragStart } = useFieldDrag({
|
|
15
15
|
pdfWrapperRef,
|
|
16
16
|
onFieldMove,
|
|
17
|
+
zoom,
|
|
17
18
|
});
|
|
18
19
|
const isDragging = dragVisualPosition !== null;
|
|
19
20
|
const { handleResizeStart } = useFieldResize({
|
|
20
21
|
pdfWrapperRef,
|
|
21
22
|
onFieldResize,
|
|
23
|
+
zoom,
|
|
22
24
|
});
|
|
23
25
|
const page = (_a = dragVisualPosition === null || dragVisualPosition === void 0 ? void 0 : dragVisualPosition.page) !== null && _a !== void 0 ? _a : field.page;
|
|
24
26
|
const x = (_b = dragVisualPosition === null || dragVisualPosition === void 0 ? void 0 : dragVisualPosition.x) !== null && _b !== void 0 ? _b : field.x;
|
|
@@ -29,6 +31,7 @@ export const PdfOverlayField = ({ error, field, fieldWrapperClassNames = '', han
|
|
|
29
31
|
const style = getFieldBoundsStyle({ ...field, page, x, y }, {
|
|
30
32
|
pageOffset: pagePos,
|
|
31
33
|
backgroundColor: getFieldBackgroundColor(field.recipient, recipientsColors),
|
|
34
|
+
zoom,
|
|
32
35
|
});
|
|
33
36
|
const className = [
|
|
34
37
|
'dte-pdf-field-editor',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-overlay-field.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAiB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-overlay-field.js","sourceRoot":"","sources":["../../../src/components/pdf-fields-overlay/pdf-overlay-field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view-field-container.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-field-container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQ5E,UAAU,qBAAqB;IAC3B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-view-field-container.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-field-container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQ5E,UAAU,qBAAqB;IAC3B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CA+C9E,CAAC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Fragment } from 'react';
|
|
3
3
|
import { evaluateDisplayCondition, getFieldBackgroundColor, getFieldBoundsStyle, getPagePosition, } from '../../utils';
|
|
4
|
-
export const PdfViewFieldContainer = ({ children, data, error, field, pdfWrapperRef, recipientsColors, }) => {
|
|
4
|
+
export const PdfViewFieldContainer = ({ children, data, error, field, pdfWrapperRef, recipientsColors, zoom = 1, }) => {
|
|
5
5
|
const visible = !field.displayCondition || evaluateDisplayCondition(field.displayCondition, data);
|
|
6
6
|
if (!visible) {
|
|
7
7
|
return null;
|
|
8
8
|
}
|
|
9
9
|
const pagePos = getPagePosition(field.page, pdfWrapperRef);
|
|
10
10
|
const bgColor = getFieldBackgroundColor(field.recipient, recipientsColors);
|
|
11
|
-
return (_jsxs(Fragment, { children: [_jsx("div", { className: "dte-pdf-field-view", style: getFieldBoundsStyle(field, {
|
|
11
|
+
return (_jsxs(Fragment, { children: [_jsx("div", { id: `dte-pdf-field-${field.id}`, className: "dte-pdf-field-view", style: getFieldBoundsStyle(field, {
|
|
12
12
|
pageOffset: pagePos,
|
|
13
13
|
backgroundColor: bgColor,
|
|
14
14
|
borderColor: error ? 'red' : undefined,
|
|
15
|
+
zoom,
|
|
15
16
|
}), children: children }), error && (_jsx("span", { style: {
|
|
16
17
|
color: 'red',
|
|
17
|
-
top: pagePos.top + field.y + field.height + 8,
|
|
18
|
-
left: pagePos.left + field.x,
|
|
18
|
+
top: pagePos.top + (field.y + field.height) * zoom + 8,
|
|
19
|
+
left: pagePos.left + field.x * zoom,
|
|
19
20
|
minWidth: '100px',
|
|
20
21
|
position: 'absolute',
|
|
21
22
|
}, children: error }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view-field-container.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-field-container.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAgC,MAAM,OAAO,CAAC;AAEnE,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,GAClB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-view-field-container.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view-field-container.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,QAAQ,EAAgC,MAAM,OAAO,CAAC;AAEnE,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,GAClB,MAAM,aAAa,CAAC;AAWrB,MAAM,CAAC,MAAM,qBAAqB,GAAiD,CAAC,EAChF,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,IAAI,GAAG,CAAC,GACX,EAAE,EAAE;IACD,MAAM,OAAO,GACT,CAAC,KAAK,CAAC,gBAAgB,IAAI,wBAAwB,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEtF,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC3E,OAAO,CACH,MAAC,QAAQ,eACL,cACI,EAAE,EAAE,iBAAiB,KAAK,CAAC,EAAE,EAAE,EAC/B,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE;oBAC9B,UAAU,EAAE,OAAO;oBACnB,eAAe,EAAE,OAAO;oBACxB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;oBACtC,IAAI;iBACP,CAAC,YAED,QAAQ,GACP,EACL,KAAK,IAAI,CACN,eACI,KAAK,EAAE;oBACH,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC;oBACtD,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI;oBACnC,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,UAAU;iBACvB,YAEA,KAAK,GACH,CACV,IACM,CACd,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"pdf-view.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAwC,MAAM,OAAO,CAAC;AAG5E,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,EACrB,MAAM,uBAAuB,CAAC;AAe/B,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxE;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAkKpC,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Flex } from '@servicetitan/anvil2';
|
|
3
|
-
import { useRef, useState } from 'react';
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { BASE_PAGE_WIDTH } from '../../constants';
|
|
5
|
+
import { useZoom } from '../../hooks';
|
|
5
6
|
import { FieldTypeEnum, } from '../../interface/types';
|
|
6
|
-
import { mapColorsToRecipients } from '../../utils';
|
|
7
|
+
import { evaluateDisplayCondition, mapColorsToRecipients, sortFieldsByReadingOrder, } from '../../utils';
|
|
8
|
+
import { CanvasControls } from '../pdf-canvas/canvas-controls';
|
|
7
9
|
import { PdfDocumentRenderer } from '../pdf-canvas/pdf-document-renderer';
|
|
8
10
|
import { PdfViewCalculated } from './pdf-view-calculated';
|
|
9
11
|
import { PdfViewDataModel } from './pdf-view-data-model';
|
|
@@ -11,9 +13,10 @@ import { PdfViewESign } from './pdf-view-e-sign';
|
|
|
11
13
|
import { PdfViewFieldContainer } from './pdf-view-field-container';
|
|
12
14
|
import { PdfViewFillable } from './pdf-view-fillable';
|
|
13
15
|
import { PdfViewGeneric } from './pdf-view-generic';
|
|
14
|
-
export const PdfView = ({ data, errorPlaceholder, errors = {}, fields, fillingBy, holidays, loading = false, loadingPlaceholder, makeFillableFieldsReadonly = false, onDataChange, onLoadSuccess, pdfUrl, recipients, viewMode, }) => {
|
|
16
|
+
export const PdfView = ({ data, enableInputNavigation = true, errorPlaceholder, errors = {}, fields, fillingBy, holidays, loading = false, loadingPlaceholder, makeFillableFieldsReadonly = false, onDataChange, onLoadSuccess, pdfUrl, recipients, viewMode, zoomable = true, }) => {
|
|
15
17
|
const [isPdfLoaded, setIsPdfLoaded] = useState(false);
|
|
16
18
|
const [previewData, setPreviewData] = useState(data !== null && data !== void 0 ? data : {});
|
|
19
|
+
const { resetZoom, zoom, zoomIn, zoomOut } = useZoom();
|
|
17
20
|
const pdfWrapperRef = useRef(null);
|
|
18
21
|
const onDocumentLoadSuccess = (pageNum) => {
|
|
19
22
|
setIsPdfLoaded(true);
|
|
@@ -28,8 +31,29 @@ export const PdfView = ({ data, errorPlaceholder, errors = {}, fields, fillingBy
|
|
|
28
31
|
}
|
|
29
32
|
onDataChange === null || onDataChange === void 0 ? void 0 : onDataChange(data, field);
|
|
30
33
|
};
|
|
34
|
+
const activeData = viewMode === 'preview' ? previewData : data;
|
|
35
|
+
const navigableFields = useMemo(() => sortFieldsByReadingOrder(fields
|
|
36
|
+
.filter(field => field.type === FieldTypeEnum.fillable)
|
|
37
|
+
.filter(field => !field.displayCondition ||
|
|
38
|
+
evaluateDisplayCondition(field.displayCondition, activeData))), [fields, activeData]);
|
|
39
|
+
// -1 means no field has been navigated to yet, so the first "next" lands on index 0.
|
|
40
|
+
const [currentFieldIndex, setCurrentFieldIndex] = useState(-1);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
setCurrentFieldIndex(index => Math.min(index, navigableFields.length - 1));
|
|
43
|
+
}, [navigableFields.length]);
|
|
44
|
+
const goToField = (index) => {
|
|
45
|
+
var _a;
|
|
46
|
+
const field = navigableFields[index];
|
|
47
|
+
if (!field) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
setCurrentFieldIndex(index);
|
|
51
|
+
const fieldEl = document.getElementById(`dte-pdf-field-${field.id}`);
|
|
52
|
+
fieldEl === null || fieldEl === void 0 ? void 0 : fieldEl.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
53
|
+
(_a = fieldEl === null || fieldEl === void 0 ? void 0 : fieldEl.querySelector('input, textarea')) === null || _a === void 0 ? void 0 : _a.focus();
|
|
54
|
+
};
|
|
31
55
|
const recipientsColors = mapColorsToRecipients(recipients);
|
|
32
|
-
return (
|
|
33
|
-
|
|
56
|
+
return (_jsxs(Flex, { flex: 1, className: "dte-pdf-editor-theme dte-pdf-editor-content-container", direction: "column", children: [isPdfLoaded && (_jsx(CanvasControls, { zoom: zoom, onZoomIn: zoomIn, onZoomOut: zoomOut, zoomable: zoomable, onResetZoom: resetZoom, enableInputNavigation: enableInputNavigation, disabledPrev: currentFieldIndex <= 0, disabledOnFirstField: currentFieldIndex === 0, disabledNext: currentFieldIndex >= navigableFields.length - 1, disabledOnLastField: currentFieldIndex === navigableFields.length - 1, onPrevField: () => goToField(currentFieldIndex - 1), onNextField: () => goToField(currentFieldIndex + 1), onFirstField: () => goToField(0), onLastField: () => goToField(navigableFields.length - 1) })), _jsxs("div", { ref: pdfWrapperRef, className: "dte-pdf-wrapper", style: { width: BASE_PAGE_WIDTH * zoom }, children: [_jsx(PdfDocumentRenderer, { pdfUrl: pdfUrl, loading: loading, pageWidth: BASE_PAGE_WIDTH * zoom, errorPlaceholder: errorPlaceholder, loadingPlaceholder: loadingPlaceholder, onDocumentLoadSuccess: onDocumentLoadSuccess }), isPdfLoaded && (_jsx("div", { className: "dte-pdf-field-overlay --view-mode", children: fields.map(field => (_jsxs(PdfViewFieldContainer, { field: field, data: viewMode === 'preview' ? previewData : data, error: errors[field.path] || '', recipientsColors: recipientsColors, pdfWrapperRef: pdfWrapperRef, zoom: zoom, children: [(field.type === FieldTypeEnum.dataModel ||
|
|
57
|
+
field.type === FieldTypeEnum.forms) && (_jsx(PdfViewDataModel, { field: field, data: viewMode === 'preview' ? previewData : data })), field.type === FieldTypeEnum.eSign && (_jsx(PdfViewESign, { field: field })), field.type === FieldTypeEnum.calculated && (_jsx(PdfViewCalculated, { field: field, data: viewMode === 'preview' ? previewData : data, holidays: holidays, viewMode: viewMode })), field.type === FieldTypeEnum.fillable && (_jsx(PdfViewFillable, { data: viewMode === 'preview' ? previewData : data, field: field, readOnly: makeFillableFieldsReadonly, fillingBy: fillingBy, viewMode: viewMode, onDataChange: handleDataChange })), field.type === FieldTypeEnum.generic && (_jsx(PdfViewGeneric, { field: field }))] }, field.id))) }))] })] }));
|
|
34
58
|
};
|
|
35
59
|
//# sourceMappingURL=pdf-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-view.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAiB,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-view.js","sourceRoot":"","sources":["../../../src/components/pdf-view/pdf-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-editor.constants.d.ts","sourceRoot":"","sources":["../../src/constants/pdf-editor.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"pdf-editor.constants.d.ts","sourceRoot":"","sources":["../../src/constants/pdf-editor.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,YAAY,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-editor.constants.js","sourceRoot":"","sources":["../../src/constants/pdf-editor.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC"}
|
|
1
|
+
{"version":3,"file":"pdf-editor.constants.js","sourceRoot":"","sources":["../../src/constants/pdf-editor.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
package/dist/hooks/index.js
CHANGED
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
@@ -8,6 +8,7 @@ export interface DragVisualPosition {
|
|
|
8
8
|
interface UseFieldDragOptions {
|
|
9
9
|
pdfWrapperRef: RefObject<HTMLDivElement>;
|
|
10
10
|
onFieldMove: (fieldId: string, newX: number, newY: number, pageNumber: number) => void;
|
|
11
|
+
zoom?: number;
|
|
11
12
|
}
|
|
12
13
|
interface UseFieldDragReturn {
|
|
13
14
|
dragOffsetRef: MutableRefObject<{
|
|
@@ -26,6 +27,6 @@ interface UseFieldDragReturn {
|
|
|
26
27
|
* During drag, position is kept in local state (dragVisualPosition) so the rest of the tree
|
|
27
28
|
* (config panel, other fields) does not re-render. onFieldMove is called only once on drag end.
|
|
28
29
|
*/
|
|
29
|
-
export declare const useFieldDrag: ({ onFieldMove, pdfWrapperRef, }: UseFieldDragOptions) => UseFieldDragReturn;
|
|
30
|
+
export declare const useFieldDrag: ({ onFieldMove, pdfWrapperRef, zoom, }: UseFieldDragOptions) => UseFieldDragReturn;
|
|
30
31
|
export {};
|
|
31
32
|
//# sourceMappingURL=useFieldDrag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldDrag.d.ts","sourceRoot":"","sources":["../../src/hooks/useFieldDrag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAiC,MAAM,OAAO,CAAC;AAC9F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQnD,MAAM,WAAW,kBAAkB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IACzB,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useFieldDrag.d.ts","sourceRoot":"","sources":["../../src/hooks/useFieldDrag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAiC,MAAM,OAAO,CAAC;AAC9F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQnD,MAAM,WAAW,kBAAkB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IACzB,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,kBAAkB;IACxB,aAAa,EAAE,gBAAgB,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC/E,kBAAkB,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpD,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzE,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpE,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAQD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,uCAI1B,mBAAmB,KAAG,kBA2FxB,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { getPageDimensions, getPageNumberFromClientY, getPagePosition, handleFie
|
|
|
5
5
|
* During drag, position is kept in local state (dragVisualPosition) so the rest of the tree
|
|
6
6
|
* (config panel, other fields) does not re-render. onFieldMove is called only once on drag end.
|
|
7
7
|
*/
|
|
8
|
-
export const useFieldDrag = ({ onFieldMove, pdfWrapperRef, }) => {
|
|
8
|
+
export const useFieldDrag = ({ onFieldMove, pdfWrapperRef, zoom = 1, }) => {
|
|
9
9
|
const dragOffsetRef = useRef(null);
|
|
10
10
|
const draggingFieldIdRef = useRef(null);
|
|
11
11
|
const pendingMoveRef = useRef(null);
|
|
@@ -28,7 +28,7 @@ export const useFieldDrag = ({ onFieldMove, pdfWrapperRef, }) => {
|
|
|
28
28
|
rafIdRef.current = null;
|
|
29
29
|
}
|
|
30
30
|
setDragVisualPosition({ x: field.x, y: field.y, page: field.page });
|
|
31
|
-
const dragOffset = handleFieldDragStart(e, field, pdfWrapperRef);
|
|
31
|
+
const dragOffset = handleFieldDragStart(e, field, pdfWrapperRef, zoom);
|
|
32
32
|
if (dragOffset) {
|
|
33
33
|
dragOffsetRef.current = dragOffset;
|
|
34
34
|
}
|
|
@@ -45,12 +45,13 @@ export const useFieldDrag = ({ onFieldMove, pdfWrapperRef, }) => {
|
|
|
45
45
|
const currentPagePos = getPagePosition(currentPage, pdfWrapperRef);
|
|
46
46
|
const wrapperRect = pdfWrapperRef.current.getBoundingClientRect();
|
|
47
47
|
const pageDimensions = getPageDimensions(currentPage, pdfWrapperRef);
|
|
48
|
-
|
|
49
|
-
const
|
|
48
|
+
// Positions in unzoomed reference coordinates, matching stored field.x/y
|
|
49
|
+
const x = (e.clientX - wrapperRect.left - currentPagePos.left) / zoom - dragOffsetRef.current.x;
|
|
50
|
+
const y = (e.clientY - wrapperRect.top - currentPagePos.top) / zoom - dragOffsetRef.current.y;
|
|
50
51
|
const minX = 0;
|
|
51
52
|
const minY = 0;
|
|
52
|
-
const maxX = Math.max(0, pageDimensions.width - field.width);
|
|
53
|
-
const maxY = Math.max(0, pageDimensions.height - field.height);
|
|
53
|
+
const maxX = Math.max(0, pageDimensions.width / zoom - field.width);
|
|
54
|
+
const maxY = Math.max(0, pageDimensions.height / zoom - field.height);
|
|
54
55
|
const clampedX = Math.max(minX, Math.min(maxX, x));
|
|
55
56
|
const clampedY = Math.max(minY, Math.min(maxY, y));
|
|
56
57
|
pendingMoveRef.current = { x: clampedX, y: clampedY, page: currentPage };
|