@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.
Files changed (95) hide show
  1. package/dist/components/pdf-canvas/canvas-controls.d.ts +24 -0
  2. package/dist/components/pdf-canvas/canvas-controls.d.ts.map +1 -0
  3. package/dist/components/pdf-canvas/canvas-controls.js +22 -0
  4. package/dist/components/pdf-canvas/canvas-controls.js.map +1 -0
  5. package/dist/components/pdf-canvas/pdf-canvas.d.ts +1 -0
  6. package/dist/components/pdf-canvas/pdf-canvas.d.ts.map +1 -1
  7. package/dist/components/pdf-canvas/pdf-canvas.js +6 -3
  8. package/dist/components/pdf-canvas/pdf-canvas.js.map +1 -1
  9. package/dist/components/pdf-editor/pdf-editor.d.ts +1 -0
  10. package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
  11. package/dist/components/pdf-editor/pdf-editor.js +2 -2
  12. package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
  13. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts +1 -0
  14. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts.map +1 -1
  15. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js +2 -2
  16. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js.map +1 -1
  17. package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts +1 -0
  18. package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts.map +1 -1
  19. package/dist/components/pdf-fields-overlay/pdf-overlay-field.js +4 -1
  20. package/dist/components/pdf-fields-overlay/pdf-overlay-field.js.map +1 -1
  21. package/dist/components/pdf-view/pdf-view-field-container.d.ts +1 -0
  22. package/dist/components/pdf-view/pdf-view-field-container.d.ts.map +1 -1
  23. package/dist/components/pdf-view/pdf-view-field-container.js +5 -4
  24. package/dist/components/pdf-view/pdf-view-field-container.js.map +1 -1
  25. package/dist/components/pdf-view/pdf-view.d.ts +2 -0
  26. package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
  27. package/dist/components/pdf-view/pdf-view.js +29 -5
  28. package/dist/components/pdf-view/pdf-view.js.map +1 -1
  29. package/dist/constants/pdf-editor.constants.d.ts +4 -0
  30. package/dist/constants/pdf-editor.constants.d.ts.map +1 -1
  31. package/dist/constants/pdf-editor.constants.js +4 -0
  32. package/dist/constants/pdf-editor.constants.js.map +1 -1
  33. package/dist/hooks/index.d.ts +1 -0
  34. package/dist/hooks/index.d.ts.map +1 -1
  35. package/dist/hooks/index.js +1 -0
  36. package/dist/hooks/index.js.map +1 -1
  37. package/dist/hooks/useFieldDrag.d.ts +2 -1
  38. package/dist/hooks/useFieldDrag.d.ts.map +1 -1
  39. package/dist/hooks/useFieldDrag.js +7 -6
  40. package/dist/hooks/useFieldDrag.js.map +1 -1
  41. package/dist/hooks/useFieldResize.d.ts +2 -1
  42. package/dist/hooks/useFieldResize.d.ts.map +1 -1
  43. package/dist/hooks/useFieldResize.js +7 -3
  44. package/dist/hooks/useFieldResize.js.map +1 -1
  45. package/dist/hooks/useZoom.d.ts +11 -0
  46. package/dist/hooks/useZoom.d.ts.map +1 -0
  47. package/dist/hooks/useZoom.js +14 -0
  48. package/dist/hooks/useZoom.js.map +1 -0
  49. package/dist/styles/pdf-canvas.css +24 -5
  50. package/dist/styles/pdf-editor.css +1 -0
  51. package/dist/styles/pdf-field-overlay.css +14 -0
  52. package/dist/styles/variables.css +10 -1
  53. package/dist/utils/field/field-drag.utils.d.ts +4 -2
  54. package/dist/utils/field/field-drag.utils.d.ts.map +1 -1
  55. package/dist/utils/field/field-drag.utils.js +14 -10
  56. package/dist/utils/field/field-drag.utils.js.map +1 -1
  57. package/dist/utils/field/field-reading-order.utils.d.ts +15 -0
  58. package/dist/utils/field/field-reading-order.utils.d.ts.map +1 -0
  59. package/dist/utils/field/field-reading-order.utils.js +33 -0
  60. package/dist/utils/field/field-reading-order.utils.js.map +1 -0
  61. package/dist/utils/field/field-resize.utils.d.ts +4 -2
  62. package/dist/utils/field/field-resize.utils.d.ts.map +1 -1
  63. package/dist/utils/field/field-resize.utils.js +12 -10
  64. package/dist/utils/field/field-resize.utils.js.map +1 -1
  65. package/dist/utils/field/get-field-bounds-style.utils.d.ts +7 -0
  66. package/dist/utils/field/get-field-bounds-style.utils.d.ts.map +1 -1
  67. package/dist/utils/field/get-field-bounds-style.utils.js +5 -5
  68. package/dist/utils/field/get-field-bounds-style.utils.js.map +1 -1
  69. package/dist/utils/field/index.d.ts +1 -0
  70. package/dist/utils/field/index.d.ts.map +1 -1
  71. package/dist/utils/field/index.js +1 -0
  72. package/dist/utils/field/index.js.map +1 -1
  73. package/package.json +1 -1
  74. package/src/components/pdf-canvas/canvas-controls.tsx +183 -0
  75. package/src/components/pdf-canvas/pdf-canvas.tsx +64 -33
  76. package/src/components/pdf-editor/pdf-editor.tsx +12 -2
  77. package/src/components/pdf-fields-overlay/pdf-fields-overlay.tsx +3 -0
  78. package/src/components/pdf-fields-overlay/pdf-overlay-field.tsx +5 -0
  79. package/src/components/pdf-view/pdf-view-field-container.tsx +6 -2
  80. package/src/components/pdf-view/pdf-view.tsx +78 -5
  81. package/src/constants/pdf-editor.constants.ts +5 -0
  82. package/src/hooks/index.ts +1 -0
  83. package/src/hooks/useFieldDrag.ts +10 -5
  84. package/src/hooks/useFieldResize.ts +16 -2
  85. package/src/hooks/useZoom.ts +25 -0
  86. package/src/styles/pdf-canvas.css +24 -5
  87. package/src/styles/pdf-editor.css +1 -0
  88. package/src/styles/pdf-field-overlay.css +14 -0
  89. package/src/styles/variables.css +10 -1
  90. package/src/utils/field/__tests__/field-reading-order.utils.test.ts +62 -0
  91. package/src/utils/field/field-drag.utils.ts +14 -8
  92. package/src/utils/field/field-reading-order.utils.ts +43 -0
  93. package/src/utils/field/field-resize.utils.ts +12 -8
  94. package/src/utils/field/get-field-bounds-style.utils.ts +17 -5
  95. package/src/utils/field/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldDrag.js","sourceRoot":"","sources":["../../src/hooks/useFieldDrag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFieldDrag.js","sourceRoot":"","sources":["../../src/hooks/useFieldDrag.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { type PdfField } from '../interface/types';
3
3
  interface UseFieldResizeOptions {
4
4
  pdfWrapperRef: RefObject<HTMLDivElement>;
5
5
  onFieldResize: (fieldId: string, newWidth: number, newHeight: number, pageNumber: number) => void;
6
+ zoom?: number;
6
7
  }
7
8
  export interface UseFieldResizeReturn {
8
9
  isResizing: boolean;
@@ -12,6 +13,6 @@ export interface UseFieldResizeReturn {
12
13
  * Custom hook for handling field resize operations
13
14
  * Manages resize state and coordinates field resizing with proper cleanup
14
15
  */
15
- export declare const useFieldResize: ({ onFieldResize, pdfWrapperRef, }: UseFieldResizeOptions) => UseFieldResizeReturn;
16
+ export declare const useFieldResize: ({ onFieldResize, pdfWrapperRef, zoom, }: UseFieldResizeOptions) => UseFieldResizeReturn;
16
17
  export {};
17
18
  //# sourceMappingURL=useFieldResize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldResize.d.ts","sourceRoot":"","sources":["../../src/hooks/useFieldResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,UAAU,qBAAqB;IAC3B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,aAAa,EAAE,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACjB,IAAI,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC/E;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,mCAG5B,qBAAqB,KAAG,oBAoE1B,CAAC"}
1
+ {"version":3,"file":"useFieldResize.d.ts","sourceRoot":"","sources":["../../src/hooks/useFieldResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,UAAU,qBAAqB;IAC3B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,aAAa,EAAE,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACjB,IAAI,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC/E;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,yCAI5B,qBAAqB,KAAG,oBAgF1B,CAAC"}
@@ -4,13 +4,17 @@ import { handleFieldResize, handleFieldResizeStart } from '../utils';
4
4
  * Custom hook for handling field resize operations
5
5
  * Manages resize state and coordinates field resizing with proper cleanup
6
6
  */
7
- export const useFieldResize = ({ onFieldResize, pdfWrapperRef, }) => {
7
+ export const useFieldResize = ({ onFieldResize, pdfWrapperRef, zoom = 1, }) => {
8
8
  const resizeStartDataRef = useRef(null);
9
9
  const onFieldResizeRef = useRef(onFieldResize);
10
+ const zoomRef = useRef(zoom);
10
11
  const [isResizing, setIsResizing] = useState(false);
11
12
  useEffect(() => {
12
13
  onFieldResizeRef.current = onFieldResize;
13
14
  }, [onFieldResize]);
15
+ useEffect(() => {
16
+ zoomRef.current = zoom;
17
+ }, [zoom]);
14
18
  useEffect(() => {
15
19
  if (!isResizing) {
16
20
  return;
@@ -22,7 +26,7 @@ export const useFieldResize = ({ onFieldResize, pdfWrapperRef, }) => {
22
26
  return;
23
27
  }
24
28
  const { field, ...resizeStartData } = resizeStartDataRef.current;
25
- handleFieldResize(e, field, resizeStartData, pdfWrapperRef, onFieldResizeRef.current);
29
+ handleFieldResize(e, field, resizeStartData, pdfWrapperRef, onFieldResizeRef.current, zoomRef.current);
26
30
  };
27
31
  const handleMouseUp = () => {
28
32
  if (signal.aborted) {
@@ -41,7 +45,7 @@ export const useFieldResize = ({ onFieldResize, pdfWrapperRef, }) => {
41
45
  const handleResizeStart = (e, field) => {
42
46
  e.stopPropagation();
43
47
  e.preventDefault();
44
- const resizeStartData = handleFieldResizeStart(e, field, pdfWrapperRef);
48
+ const resizeStartData = handleFieldResizeStart(e, field, pdfWrapperRef, zoom);
45
49
  if (resizeStartData) {
46
50
  resizeStartDataRef.current = {
47
51
  field,
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldResize.js","sourceRoot":"","sources":["../../src/hooks/useFieldResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAiBrE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC3B,aAAa,EACb,aAAa,GACO,EAAwB,EAAE;IAC9C,MAAM,kBAAkB,GAAG,MAAM,CAOvB,IAAI,CAAC,CAAC;IAChB,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACX,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC;IAC7C,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;QAEnC,MAAM,eAAe,GAAG,CAAC,CAAwB,EAAE,EAAE;YACjD,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChD,OAAO;YACX,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC;YACjE,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1F,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YACvB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO;YACX,CAAC;YACD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,eAAe,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEhE,OAAO,GAAG,EAAE;YACR,eAAe,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,CAAC,CAA6B,EAAE,KAAe,EAAE,EAAE;QACzE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,MAAM,eAAe,GAAG,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,eAAe,EAAE,CAAC;YAClB,kBAAkB,CAAC,OAAO,GAAG;gBACzB,KAAK;gBACL,GAAG,eAAe;aACrB,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACH,UAAU;QACV,iBAAiB;KACpB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"useFieldResize.js","sourceRoot":"","sources":["../../src/hooks/useFieldResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAkBrE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC3B,aAAa,EACb,aAAa,EACb,IAAI,GAAG,CAAC,GACY,EAAwB,EAAE;IAC9C,MAAM,kBAAkB,GAAG,MAAM,CAOvB,IAAI,CAAC,CAAC;IAChB,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACX,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC;IAC7C,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;QAEnC,MAAM,eAAe,GAAG,CAAC,CAAwB,EAAE,EAAE;YACjD,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChD,OAAO;YACX,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC;YACjE,iBAAiB,CACb,CAAC,EACD,KAAK,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,CAAC,OAAO,EACxB,OAAO,CAAC,OAAO,CAClB,CAAC;QACN,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YACvB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO;YACX,CAAC;YACD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,eAAe,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEhE,OAAO,GAAG,EAAE;YACR,eAAe,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,CAAC,CAA6B,EAAE,KAAe,EAAE,EAAE;QACzE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,MAAM,eAAe,GAAG,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC9E,IAAI,eAAe,EAAE,CAAC;YAClB,kBAAkB,CAAC,OAAO,GAAG;gBACzB,KAAK;gBACL,GAAG,eAAe;aACrB,CAAC;YACF,aAAa,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACH,UAAU;QACV,iBAAiB;KACpB,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface UseZoomReturn {
2
+ zoom: number;
3
+ zoomIn(): void;
4
+ zoomOut(): void;
5
+ resetZoom(): void;
6
+ }
7
+ /**
8
+ * Manages a page zoom factor (1 = 100%), clamped to [ZOOM_MIN, ZOOM_MAX] in ZOOM_STEP increments.
9
+ */
10
+ export declare const useZoom: (initialZoom?: number) => UseZoomReturn;
11
+ //# sourceMappingURL=useZoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useZoom.d.ts","sourceRoot":"","sources":["../../src/hooks/useZoom.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,IAAI,IAAI,CAAC;CACrB;AAKD;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,cAAa,MAAqB,KAAG,aAQ5D,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useCallback, useState } from 'react';
2
+ import { ZOOM_DEFAULT, ZOOM_MAX, ZOOM_MIN, ZOOM_STEP } from '../constants';
3
+ const clampZoom = (value) => Math.min(ZOOM_MAX, Math.max(ZOOM_MIN, Math.round(value * 100) / 100));
4
+ /**
5
+ * Manages a page zoom factor (1 = 100%), clamped to [ZOOM_MIN, ZOOM_MAX] in ZOOM_STEP increments.
6
+ */
7
+ export const useZoom = (initialZoom = ZOOM_DEFAULT) => {
8
+ const [zoom, setZoom] = useState(initialZoom);
9
+ const zoomIn = useCallback(() => setZoom(prev => clampZoom(prev + ZOOM_STEP)), []);
10
+ const zoomOut = useCallback(() => setZoom(prev => clampZoom(prev - ZOOM_STEP)), []);
11
+ const resetZoom = useCallback(() => setZoom(ZOOM_DEFAULT), []);
12
+ return { zoom, zoomIn, zoomOut, resetZoom };
13
+ };
14
+ //# sourceMappingURL=useZoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useZoom.js","sourceRoot":"","sources":["../../src/hooks/useZoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAS3E,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,cAAsB,YAAY,EAAiB,EAAE;IACzE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,WAAW,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC,CAAC"}
@@ -1,11 +1,30 @@
1
- .dte-pdf-canvas-container {
2
- overflow: auto;
3
- position: relative;
4
- }
5
-
6
1
  .dte-pdf-wrapper {
7
2
  position: relative;
8
3
  width: 100%;
9
4
  margin-inline-start: auto;
10
5
  margin-inline-end: auto;
11
6
  }
7
+
8
+ .dte-pdf-canvas-controls {
9
+ z-index: 1;
10
+ position: sticky;
11
+ top: 0;
12
+ left: 0;
13
+ background: var(--bg-color-main, #fafafa);
14
+ box-shadow: 0 2px 4px rgb(0 0 0 / 15%);
15
+ padding: var(--spacing-half) var(--spacing-1);
16
+ }
17
+
18
+ .dte-pdf-zoom-controls-value {
19
+ min-width: 44px;
20
+ text-align: center;
21
+ cursor: pointer;
22
+ user-select: none;
23
+ }
24
+
25
+ .dte-pdf-zoom-controls,
26
+ .dte-pdf-field-navigation-controls {
27
+ border-radius: var(--radius-1, 4px);
28
+ padding: var(--spacing-half);
29
+ background-color: var(--bg-color-secondary, #eeeeee);
30
+ }
@@ -11,5 +11,6 @@
11
11
 
12
12
  .dte-pdf-editor-content-container {
13
13
  max-width: 100%;
14
+ min-width: 0;
14
15
  overflow: auto;
15
16
  }
@@ -101,6 +101,15 @@
101
101
  line-height: 1;
102
102
  }
103
103
 
104
+ .dte-pdf-field-content input[type='checkbox']:focus,
105
+ .dte-pdf-field-content input[type='checkbox']:active,
106
+ .dte-pdf-field-content input[type='radio']:active,
107
+ .dte-pdf-field-content input[type='radio']:focus {
108
+ box-shadow:
109
+ 0 0 0 2px var(--border-color-active, #2270ee) inset,
110
+ 0 0 0 3px var(--color-neutral-0, #ffffff) inset;
111
+ }
112
+
104
113
  /*
105
114
  * Printed PDF text modes (no ellipsis — hard clip like PdfSharp).
106
115
  */
@@ -169,6 +178,11 @@
169
178
  resize: none;
170
179
  }
171
180
 
181
+ .dte-pdf-field-fillable:focus {
182
+ outline: 2px solid var(--border-color-active, #2270ee);
183
+ outline-offset: 2px;
184
+ }
185
+
172
186
  .dte-pdf-field-generic-table {
173
187
  padding: var(--spacing-0, 0);
174
188
  margin: var(--spacing-0, 0);
@@ -1,6 +1,6 @@
1
1
  @import '@servicetitan/tokens/dist/tokens.css';
2
2
 
3
- .dte-pdf-editor {
3
+ .dte-pdf-editor-theme {
4
4
  --menu-active-color: var(--color-blue-400, #2270ee);
5
5
  --menu-active-bg-light-color: var(--color-blue-100, #e0f2ff);
6
6
  --menu-hover-color: var(--color-neutral-100, #606162);
@@ -16,14 +16,23 @@
16
16
  --spacing-2: 16px;
17
17
  --spacing-3: 24px;
18
18
 
19
+ /* Radius */
20
+ --radius-0: 0;
21
+ --radius-1: 4px;
22
+ --radius-2: 8px;
23
+
19
24
  /* Colors - Neutral */
20
25
  --color-neutral-0: var(--color-neutral-0, #ffffff);
26
+ --color-neutral-30: var(--color-neutral-30, #f7f7f7);
27
+ --color-neutral-50: var(--color-neutral-50, #eeeeee);
21
28
  --color-neutral-70: var(--color-neutral-70, #737475);
22
29
  --color-neutral-200: var(--color-neutral-200, #6c6d70);
23
30
  --color-neutral-300: var(--color-neutral-300, #2d2e31);
24
31
 
25
32
  /* Background colors */
26
33
  --bg-color-light: var(--color-neutral-0, #ffffff);
34
+ --bg-color-main: var(--color-neutral-20, #fafafa);
35
+ --bg-color-secondary: var(--color-neutral-50, #eeeeee);
27
36
  --bg-color: var(--color-neutral-200, #f5f5f5);
28
37
  --bg-color-hover: #eaeaea;
29
38
 
@@ -11,9 +11,10 @@ interface DragOffset {
11
11
  * @param e - The drag event
12
12
  * @param field - The field being dragged
13
13
  * @param pdfWrapperRef - Reference to the PDF wrapper element
14
+ * @param zoom - The current zoom level of the PDF
14
15
  * @returns The drag offset object or null if wrapper is not available
15
16
  */
16
- export declare const handleFieldDragStart: (e: DragEvent<HTMLDivElement>, field: PdfField, pdfWrapperRef: RefObject<HTMLDivElement>) => DragOffset | null;
17
+ export declare const handleFieldDragStart: (e: DragEvent<HTMLDivElement>, field: PdfField, pdfWrapperRef: RefObject<HTMLDivElement>, zoom?: number) => DragOffset | null;
17
18
  /**
18
19
  * Handles the drag event for a PDF field
19
20
  * Calculates new position and clamps it to page boundaries
@@ -22,7 +23,8 @@ export declare const handleFieldDragStart: (e: DragEvent<HTMLDivElement>, field:
22
23
  * @param dragOffset - The drag offset from drag start
23
24
  * @param pdfWrapperRef - Reference to the PDF wrapper element
24
25
  * @param onFieldMove - Callback to update field position
26
+ * @param zoom - The current zoom level of the PDF
25
27
  */
26
- export declare const handleFieldDrag: (e: DragEvent<HTMLDivElement>, field: PdfField, dragOffset: DragOffset, pdfWrapperRef: RefObject<HTMLDivElement>, onFieldMove: (fieldId: string, newX: number, newY: number, pageNumber: number) => void) => void;
28
+ export declare const handleFieldDrag: (e: DragEvent<HTMLDivElement>, field: PdfField, dragOffset: DragOffset, pdfWrapperRef: RefObject<HTMLDivElement>, onFieldMove: (fieldId: string, newX: number, newY: number, pageNumber: number) => void, zoom?: number) => void;
27
29
  export {};
28
30
  //# sourceMappingURL=field-drag.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-drag.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-drag.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,UAAU,UAAU;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC7B,GAAG,SAAS,CAAC,cAAc,CAAC,EAC5B,OAAO,QAAQ,EACf,eAAe,SAAS,CAAC,cAAc,CAAC,KACzC,UAAU,GAAG,IAmCf,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GACxB,GAAG,SAAS,CAAC,cAAc,CAAC,EAC5B,OAAO,QAAQ,EACf,YAAY,UAAU,EACtB,eAAe,SAAS,CAAC,cAAc,CAAC,EACxC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,KACvF,IA2BF,CAAC"}
1
+ {"version":3,"file":"field-drag.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-drag.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,UAAU,UAAU;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC7B,GAAG,SAAS,CAAC,cAAc,CAAC,EAC5B,OAAO,QAAQ,EACf,eAAe,SAAS,CAAC,cAAc,CAAC,EACxC,aAAQ,KACT,UAAU,GAAG,IAqCf,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GACxB,GAAG,SAAS,CAAC,cAAc,CAAC,EAC5B,OAAO,QAAQ,EACf,YAAY,UAAU,EACtB,eAAe,SAAS,CAAC,cAAc,CAAC,EACxC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,EACtF,aAAQ,KACT,IA2BF,CAAC"}
@@ -5,19 +5,22 @@ import { getPageDimensions, getPageNumberFromClientY, getPagePosition } from '..
5
5
  * @param e - The drag event
6
6
  * @param field - The field being dragged
7
7
  * @param pdfWrapperRef - Reference to the PDF wrapper element
8
+ * @param zoom - The current zoom level of the PDF
8
9
  * @returns The drag offset object or null if wrapper is not available
9
10
  */
10
- export const handleFieldDragStart = (e, field, pdfWrapperRef) => {
11
+ export const handleFieldDragStart = (e, field, pdfWrapperRef, zoom = 1) => {
11
12
  if (!pdfWrapperRef.current) {
12
13
  return null;
13
14
  }
14
15
  /*
15
- * Calculate drag offset in page-relative coordinates
16
+ * Calculate drag offset in page-relative coordinates.
17
+ * DOM measurements reflect the current zoom, so divide by zoom to bring
18
+ * them into the same unzoomed reference space as the stored field.x/y.
16
19
  */
17
20
  const startPagePos = getPagePosition(field.page, pdfWrapperRef);
18
21
  const wrapperRect = pdfWrapperRef.current.getBoundingClientRect();
19
- const cursorXInPage = e.clientX - wrapperRect.left - startPagePos.left;
20
- const cursorYInPage = e.clientY - wrapperRect.top - startPagePos.top;
22
+ const cursorXInPage = (e.clientX - wrapperRect.left - startPagePos.left) / zoom;
23
+ const cursorYInPage = (e.clientY - wrapperRect.top - startPagePos.top) / zoom;
21
24
  const dragOffset = {
22
25
  x: cursorXInPage - field.x,
23
26
  y: cursorYInPage - field.y,
@@ -46,8 +49,9 @@ export const handleFieldDragStart = (e, field, pdfWrapperRef) => {
46
49
  * @param dragOffset - The drag offset from drag start
47
50
  * @param pdfWrapperRef - Reference to the PDF wrapper element
48
51
  * @param onFieldMove - Callback to update field position
52
+ * @param zoom - The current zoom level of the PDF
49
53
  */
50
- export const handleFieldDrag = (e, field, dragOffset, pdfWrapperRef, onFieldMove) => {
54
+ export const handleFieldDrag = (e, field, dragOffset, pdfWrapperRef, onFieldMove, zoom = 1) => {
51
55
  if (!pdfWrapperRef.current || e.clientX === 0 || e.clientY === 0) {
52
56
  return;
53
57
  }
@@ -55,17 +59,17 @@ export const handleFieldDrag = (e, field, dragOffset, pdfWrapperRef, onFieldMove
55
59
  const currentPagePos = getPagePosition(currentPage, pdfWrapperRef);
56
60
  const wrapperRect = pdfWrapperRef.current.getBoundingClientRect();
57
61
  const pageDimensions = getPageDimensions(currentPage, pdfWrapperRef);
58
- // Calculate position in page coordinates
59
- const x = e.clientX - wrapperRect.left - currentPagePos.left - dragOffset.x;
60
- const y = e.clientY - wrapperRect.top - currentPagePos.top - dragOffset.y;
62
+ // Calculate position in page (unzoomed reference) coordinates
63
+ const x = (e.clientX - wrapperRect.left - currentPagePos.left) / zoom - dragOffset.x;
64
+ const y = (e.clientY - wrapperRect.top - currentPagePos.top) / zoom - dragOffset.y;
61
65
  /*
62
66
  * Clamp x and y to stay within page boundaries.
63
67
  * Account for field width and height to prevent dragging outside.
64
68
  */
65
69
  const minX = 0;
66
70
  const minY = 0;
67
- const maxX = Math.max(0, pageDimensions.width - field.width);
68
- const maxY = Math.max(0, pageDimensions.height - field.height);
71
+ const maxX = Math.max(0, pageDimensions.width / zoom - field.width);
72
+ const maxY = Math.max(0, pageDimensions.height / zoom - field.height);
69
73
  const clampedX = Math.max(minX, Math.min(maxX, x));
70
74
  const clampedY = Math.max(minY, Math.min(maxY, y));
71
75
  onFieldMove(field.id, clampedX, clampedY, currentPage);
@@ -1 +1 @@
1
- {"version":3,"file":"field-drag.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-drag.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-drag.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-drag.utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAQtF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,CAA4B,EAC5B,KAAe,EACf,aAAwC,EACxC,IAAI,GAAG,CAAC,EACS,EAAE;IACnB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAClE,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChF,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE9E,MAAM,UAAU,GAAe;QAC3B,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC;QAC1B,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC;IAEF,mEAAmE;IACnE,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;IACtC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAEvD,yEAAyE;IACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACtC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC/B,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1D,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,CAA4B,EAC5B,KAAe,EACf,UAAsB,EACtB,aAAwC,EACxC,WAAsF,EACtF,IAAI,GAAG,CAAC,EACJ,EAAE;IACN,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAG,wBAAwB,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAClE,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAErE,8DAA8D;IAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;IAEnF;;;OAGG;IACH,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnD,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ interface ReadingOrderField {
2
+ page: number;
3
+ x: number;
4
+ y: number;
5
+ height: number;
6
+ }
7
+ /**
8
+ * Orders fields the way a person visually scans a page: top row first,
9
+ * left-to-right within a row, then down to the next row - rather than a
10
+ * strict y-then-x sort, which misorders fields that sit on the same visual
11
+ * row but don't share an exact y coordinate.
12
+ */
13
+ export declare const sortFieldsByReadingOrder: <T extends ReadingOrderField>(fields: T[]) => T[];
14
+ export {};
15
+ //# sourceMappingURL=field-reading-order.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-reading-order.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-reading-order.utils.ts"],"names":[],"mappings":"AAAA,UAAU,iBAAiB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,iBAAiB,EAAE,QAAQ,CAAC,EAAE,KAAG,CAAC,EA6BpF,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Orders fields the way a person visually scans a page: top row first,
3
+ * left-to-right within a row, then down to the next row - rather than a
4
+ * strict y-then-x sort, which misorders fields that sit on the same visual
5
+ * row but don't share an exact y coordinate.
6
+ */
7
+ export const sortFieldsByReadingOrder = (fields) => {
8
+ const byPosition = [...fields].sort((a, b) => a.page - b.page || a.y - b.y || a.x - b.x);
9
+ const rows = [];
10
+ let currentRow = [];
11
+ let currentPage = NaN;
12
+ let rowBottom = -Infinity;
13
+ for (const field of byPosition) {
14
+ const startsNewRow = field.page !== currentPage || field.y >= rowBottom;
15
+ if (startsNewRow) {
16
+ if (currentRow.length) {
17
+ rows.push(currentRow);
18
+ }
19
+ currentRow = [field];
20
+ currentPage = field.page;
21
+ rowBottom = field.y + field.height;
22
+ }
23
+ else {
24
+ currentRow.push(field);
25
+ rowBottom = Math.max(rowBottom, field.y + field.height);
26
+ }
27
+ }
28
+ if (currentRow.length) {
29
+ rows.push(currentRow);
30
+ }
31
+ return rows.flatMap(row => row.sort((a, b) => a.x - b.x));
32
+ };
33
+ //# sourceMappingURL=field-reading-order.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-reading-order.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-reading-order.utils.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAA8B,MAAW,EAAO,EAAE;IACtF,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,UAAU,GAAQ,EAAE,CAAC;IACzB,IAAI,WAAW,GAAG,GAAG,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;QAExE,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;YACD,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,SAAS,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC"}
@@ -12,12 +12,13 @@ interface ResizeStartData {
12
12
  * @param e - Mouse event
13
13
  * @param field - The field being resized
14
14
  * @param pdfWrapperRef - Reference to the PDF wrapper element
15
+ * @param zoom - The current zoom level of the PDF
15
16
  * @returns Resize start data or null if calculation fails
16
17
  */
17
18
  export declare const handleFieldResizeStart: (e: {
18
19
  clientX: number;
19
20
  clientY: number;
20
- }, field: PdfField, pdfWrapperRef: RefObject<HTMLDivElement>) => ResizeStartData | null;
21
+ }, field: PdfField, pdfWrapperRef: RefObject<HTMLDivElement>, zoom?: number) => ResizeStartData | null;
21
22
  /**
22
23
  * Handles the resize event for a PDF field from bottom-right corner
23
24
  * Only changes width and height, keeping x and y coordinates unchanged
@@ -26,10 +27,11 @@ export declare const handleFieldResizeStart: (e: {
26
27
  * @param resizeStartData - Data from resize start
27
28
  * @param pdfWrapperRef - Reference to the PDF wrapper element
28
29
  * @param onFieldResize - Callback to update field dimensions
30
+ * @param zoom - The current zoom level of the PDF
29
31
  */
30
32
  export declare const handleFieldResize: (e: {
31
33
  clientX: number;
32
34
  clientY: number;
33
- }, field: PdfField, resizeStartData: ResizeStartData, pdfWrapperRef: RefObject<HTMLDivElement>, onFieldResize: (fieldId: string, newWidth: number, newHeight: number, pageNumber: number) => void) => void;
35
+ }, field: PdfField, resizeStartData: ResizeStartData, pdfWrapperRef: RefObject<HTMLDivElement>, onFieldResize: (fieldId: string, newWidth: number, newHeight: number, pageNumber: number) => void, zoom?: number) => void;
34
36
  export {};
35
37
  //# sourceMappingURL=field-resize.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-resize.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-resize.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,UAAU,eAAe;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAC/B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,QAAQ,EACf,eAAe,SAAS,CAAC,cAAc,CAAC,KACzC,eAAe,GAAG,IAmBpB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC1B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,QAAQ,EACf,iBAAiB,eAAe,EAChC,eAAe,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACjB,IAAI,KACV,IA8CF,CAAC"}
1
+ {"version":3,"file":"field-resize.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/field-resize.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,UAAU,eAAe;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAC/B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,QAAQ,EACf,eAAe,SAAS,CAAC,cAAc,CAAC,EACxC,aAAQ,KACT,eAAe,GAAG,IAmBpB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC1B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,QAAQ,EACf,iBAAiB,eAAe,EAChC,eAAe,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACjB,IAAI,EACT,aAAQ,KACT,IA8CF,CAAC"}
@@ -5,17 +5,18 @@ import { getPageDimensions, getPagePosition } from '../pdf';
5
5
  * @param e - Mouse event
6
6
  * @param field - The field being resized
7
7
  * @param pdfWrapperRef - Reference to the PDF wrapper element
8
+ * @param zoom - The current zoom level of the PDF
8
9
  * @returns Resize start data or null if calculation fails
9
10
  */
10
- export const handleFieldResizeStart = (e, field, pdfWrapperRef) => {
11
+ export const handleFieldResizeStart = (e, field, pdfWrapperRef, zoom = 1) => {
11
12
  if (!pdfWrapperRef.current) {
12
13
  return null;
13
14
  }
14
15
  const pagePos = getPagePosition(field.page, pdfWrapperRef);
15
16
  const wrapperRect = pdfWrapperRef.current.getBoundingClientRect();
16
- // Calculate mouse position relative to the page
17
- const startX = e.clientX - wrapperRect.left - pagePos.left;
18
- const startY = e.clientY - wrapperRect.top - pagePos.top;
17
+ // Calculate mouse position relative to the page, in unzoomed reference coordinates
18
+ const startX = (e.clientX - wrapperRect.left - pagePos.left) / zoom;
19
+ const startY = (e.clientY - wrapperRect.top - pagePos.top) / zoom;
19
20
  return {
20
21
  startX,
21
22
  startY,
@@ -32,8 +33,9 @@ export const handleFieldResizeStart = (e, field, pdfWrapperRef) => {
32
33
  * @param resizeStartData - Data from resize start
33
34
  * @param pdfWrapperRef - Reference to the PDF wrapper element
34
35
  * @param onFieldResize - Callback to update field dimensions
36
+ * @param zoom - The current zoom level of the PDF
35
37
  */
36
- export const handleFieldResize = (e, field, resizeStartData, pdfWrapperRef, onFieldResize) => {
38
+ export const handleFieldResize = (e, field, resizeStartData, pdfWrapperRef, onFieldResize, zoom = 1) => {
37
39
  var _a, _b;
38
40
  if (!pdfWrapperRef.current) {
39
41
  return;
@@ -41,9 +43,9 @@ export const handleFieldResize = (e, field, resizeStartData, pdfWrapperRef, onFi
41
43
  const pageDimensions = getPageDimensions(resizeStartData.page, pdfWrapperRef);
42
44
  const pagePos = getPagePosition(resizeStartData.page, pdfWrapperRef);
43
45
  const wrapperRect = pdfWrapperRef.current.getBoundingClientRect();
44
- // Calculate mouse position relative to the page
45
- const mouseX = e.clientX - wrapperRect.left - pagePos.left;
46
- const mouseY = e.clientY - wrapperRect.top - pagePos.top;
46
+ // Calculate mouse position relative to the page, in unzoomed reference coordinates
47
+ const mouseX = (e.clientX - wrapperRect.left - pagePos.left) / zoom;
48
+ const mouseY = (e.clientY - wrapperRect.top - pagePos.top) / zoom;
47
49
  // Calculate delta from the start position
48
50
  const deltaX = mouseX - resizeStartData.startX;
49
51
  const deltaY = mouseY - resizeStartData.startY;
@@ -65,8 +67,8 @@ export const handleFieldResize = (e, field, resizeStartData, pdfWrapperRef, onFi
65
67
  newWidth = Math.max(FIELD_CONSTANTS.minWidth, newWidth);
66
68
  newHeight = Math.max(FIELD_CONSTANTS.minHeight, newHeight);
67
69
  // Clamp to page boundaries (ensure the field doesn't go outside the page)
68
- const maxWidth = pageDimensions.width - field.x;
69
- const maxHeight = pageDimensions.height - field.y;
70
+ const maxWidth = pageDimensions.width / zoom - field.x;
71
+ const maxHeight = pageDimensions.height / zoom - field.y;
70
72
  newWidth = Math.min(newWidth, maxWidth);
71
73
  newHeight = Math.min(newHeight, maxHeight);
72
74
  onFieldResize(field.id, newWidth, newHeight, resizeStartData.page);
@@ -1 +1 @@
1
- {"version":3,"file":"field-resize.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-resize.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAU5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,CAAuC,EACvC,KAAe,EACf,aAAwC,EAClB,EAAE;IACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAElE,gDAAgD;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAEzD,OAAO;QACH,MAAM;QACN,MAAM;QACN,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC7B,CAAuC,EACvC,KAAe,EACf,eAAgC,EAChC,aAAwC,EACxC,aAKS,EACL,EAAE;;IACN,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;IACX,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAElE,gDAAgD;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAEzD,0CAA0C;IAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAE/C;;;OAGG;IACH,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,MAAA,MAAA,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,0CAC3E,KAAK,CAAC,OAAQ,CACjB,mCAAI;QACD,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,KAAK;KACzB,CAAC;IAEF,IAAI,QAAQ,GAAG,iBAAiB;QAC5B,CAAC,CAAC,eAAe,CAAC,UAAU;QAC5B,CAAC,CAAC,eAAe,CAAC,UAAU,GAAG,MAAM,CAAC;IAC1C,IAAI,SAAS,GAAG,eAAe;QAC3B,CAAC,CAAC,eAAe,CAAC,WAAW;QAC7B,CAAC,CAAC,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC;IAE3C,8BAA8B;IAC9B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3D,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAClD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3C,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC,CAAC"}
1
+ {"version":3,"file":"field-resize.utils.js","sourceRoot":"","sources":["../../../src/utils/field/field-resize.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAU5D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,CAAuC,EACvC,KAAe,EACf,aAAwC,EACxC,IAAI,GAAG,CAAC,EACc,EAAE;IACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAElE,mFAAmF;IACnF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAElE,OAAO;QACH,MAAM;QACN,MAAM;QACN,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,IAAI,EAAE,KAAK,CAAC,IAAI;KACnB,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC7B,CAAuC,EACvC,KAAe,EACf,eAAgC,EAChC,aAAwC,EACxC,aAKS,EACT,IAAI,GAAG,CAAC,EACJ,EAAE;;IACN,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;IACX,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAElE,mFAAmF;IACnF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAElE,0CAA0C;IAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAE/C;;;OAGG;IACH,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,MAAA,MAAA,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,0CAC3E,KAAK,CAAC,OAAQ,CACjB,mCAAI;QACD,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,KAAK;KACzB,CAAC;IAEF,IAAI,QAAQ,GAAG,iBAAiB;QAC5B,CAAC,CAAC,eAAe,CAAC,UAAU;QAC5B,CAAC,CAAC,eAAe,CAAC,UAAU,GAAG,MAAM,CAAC;IAC1C,IAAI,SAAS,GAAG,eAAe;QAC3B,CAAC,CAAC,eAAe,CAAC,WAAW;QAC7B,CAAC,CAAC,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC;IAE3C,8BAA8B;IAC9B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3D,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACzD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3C,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC,CAAC"}
@@ -7,6 +7,13 @@ interface FieldBoundsStyleOptions {
7
7
  };
8
8
  backgroundColor?: string;
9
9
  borderColor?: string;
10
+ /**
11
+ * Current page zoom factor (1 = 100%). Field `x/y/width/height` are stored
12
+ * relative to the unzoomed reference page width, so they must be scaled by
13
+ * zoom for display while `pageOffset` (read live from the DOM) already
14
+ * reflects the zoomed page.
15
+ */
16
+ zoom?: number;
10
17
  }
11
18
  /**
12
19
  * Shared absolute-position style for PDF field overlays.
@@ -1 +1 @@
1
- {"version":3,"file":"get-field-bounds-style.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/get-field-bounds-style.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAiB,KAAK,QAAQ,EAAwB,MAAM,uBAAuB,CAAC;AAG3F,UAAU,uBAAuB;IAC7B,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAsBD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC5B,OAAO,QAAQ,EACf,UAAU,uBAAuB,KAClC,aAwBF,CAAC"}
1
+ {"version":3,"file":"get-field-bounds-style.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/field/get-field-bounds-style.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAiB,KAAK,QAAQ,EAAwB,MAAM,uBAAuB,CAAC;AAG3F,UAAU,uBAAuB;IAC7B,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC5B,OAAO,QAAQ,EACf,UAAU,uBAAuB,KAClC,aA6BF,CAAC"}
@@ -27,13 +27,13 @@ const getFieldTypeSpecificStyle = (field) => {
27
27
  * and shared typography (font size / family / weight).
28
28
  */
29
29
  export const getFieldBoundsStyle = (field, options) => {
30
- const { backgroundColor, borderColor, pageOffset = { left: 0, top: 0 } } = options !== null && options !== void 0 ? options : {};
30
+ const { backgroundColor, borderColor, pageOffset = { left: 0, top: 0 }, zoom = 1, } = options !== null && options !== void 0 ? options : {};
31
31
  return {
32
32
  position: 'absolute',
33
- left: pageOffset.left + field.x,
34
- top: pageOffset.top + field.y,
35
- width: field.width,
36
- height: field.height,
33
+ left: pageOffset.left + field.x * zoom,
34
+ top: pageOffset.top + field.y * zoom,
35
+ width: field.width * zoom,
36
+ height: field.height * zoom,
37
37
  display: 'flex',
38
38
  alignItems: 'flex-start',
39
39
  justifyContent: 'flex-start',
@@ -1 +1 @@
1
- {"version":3,"file":"get-field-bounds-style.utils.js","sourceRoot":"","sources":["../../../src/utils/field/get-field-bounds-style.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAuC,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAQvE,MAAM,yBAAyB,GAAG,CAAC,KAAe,EAAiB,EAAE;;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG;QACX,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YACtB,QAAQ,EAAE;gBACN,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,OAAO;aAClB;YACD,KAAK,EAAE;gBACH,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,OAAO;aAClB;SACJ;KAC6D,CAAC;IAEnE,OAAO,MAAA,MAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAG,KAAK,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,KAAe,EACf,OAAiC,EACpB,EAAE;IACf,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAEzF,OAAO;QACH,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC/B,GAAG,EAAE,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,YAAY;QAC5B,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,CAAC;QACb,GAAG,yBAAyB,CAAC,KAAK,CAAC;QACnC,GAAG,uBAAuB,CAAC,KAAK,CAAC;QACjC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"get-field-bounds-style.utils.js","sourceRoot":"","sources":["../../../src/utils/field/get-field-bounds-style.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAuC,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAevE,MAAM,yBAAyB,GAAG,CAAC,KAAe,EAAiB,EAAE;;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG;QACX,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YACtB,QAAQ,EAAE;gBACN,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,OAAO;aAClB;YACD,KAAK,EAAE;gBACH,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,OAAO;aAClB;SACJ;KAC6D,CAAC;IAEnE,OAAO,MAAA,MAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAG,KAAK,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,KAAe,EACf,OAAiC,EACpB,EAAE;IACf,MAAM,EACF,eAAe,EACf,WAAW,EACX,UAAU,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAChC,IAAI,GAAG,CAAC,GACX,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAElB,OAAO;QACH,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI;QACtC,GAAG,EAAE,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI;QACzB,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;QAC3B,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,YAAY;QAC5B,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,CAAC;QACb,GAAG,yBAAyB,CAAC,KAAK,CAAC;QACnC,GAAG,uBAAuB,CAAC,KAAK,CAAC;QACjC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACN,CAAC,CAAC"}
@@ -3,6 +3,7 @@ export * from './field-background-color.utils';
3
3
  export * from './field-coordinates.utils';
4
4
  export * from './field-drag.utils';
5
5
  export * from './field-placeholder-text.utils';
6
+ export * from './field-reading-order.utils';
6
7
  export * from './field-resize.utils';
7
8
  export * from './get-field-bounds-style.utils';
8
9
  export * from './get-field-font-size.utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/field/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/field/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
@@ -3,6 +3,7 @@ export * from './field-background-color.utils';
3
3
  export * from './field-coordinates.utils';
4
4
  export * from './field-drag.utils';
5
5
  export * from './field-placeholder-text.utils';
6
+ export * from './field-reading-order.utils';
6
7
  export * from './field-resize.utils';
7
8
  export * from './get-field-bounds-style.utils';
8
9
  export * from './get-field-font-size.utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/field/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/field/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-pdf-editor",
3
- "version": "1.77.0",
3
+ "version": "1.78.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",