@servicetitan/dte-pdf-editor 1.24.0 → 1.26.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 (94) hide show
  1. package/README.md +75 -38
  2. package/dist/components/display-conditions/display-condition.d.ts.map +1 -1
  3. package/dist/components/display-conditions/display-condition.js +0 -2
  4. package/dist/components/display-conditions/display-condition.js.map +1 -1
  5. package/dist/components/field-config-panel/field-config-panel.d.ts.map +1 -1
  6. package/dist/components/field-config-panel/field-config-panel.js +3 -2
  7. package/dist/components/field-config-panel/field-config-panel.js.map +1 -1
  8. package/dist/components/field-config-panel/table-configs.d.ts +9 -0
  9. package/dist/components/field-config-panel/table-configs.d.ts.map +1 -0
  10. package/dist/components/field-config-panel/table-configs.js +78 -0
  11. package/dist/components/field-config-panel/table-configs.js.map +1 -0
  12. package/dist/components/field-sidebar/field-menu-group.d.ts +1 -1
  13. package/dist/components/field-sidebar/field-menu-group.d.ts.map +1 -1
  14. package/dist/components/field-sidebar/field-menu-group.js +1 -5
  15. package/dist/components/field-sidebar/field-menu-group.js.map +1 -1
  16. package/dist/components/field-sidebar/field-sidebar.d.ts.map +1 -1
  17. package/dist/components/field-sidebar/field-sidebar.js +3 -2
  18. package/dist/components/field-sidebar/field-sidebar.js.map +1 -1
  19. package/dist/components/field-sidebar/generic-field-type-list.d.ts +9 -0
  20. package/dist/components/field-sidebar/generic-field-type-list.d.ts.map +1 -0
  21. package/dist/components/field-sidebar/generic-field-type-list.js +12 -0
  22. package/dist/components/field-sidebar/generic-field-type-list.js.map +1 -0
  23. package/dist/components/pdf-canvas/pdf-canvas.d.ts +1 -0
  24. package/dist/components/pdf-canvas/pdf-canvas.d.ts.map +1 -1
  25. package/dist/components/pdf-canvas/pdf-canvas.js +2 -2
  26. package/dist/components/pdf-canvas/pdf-canvas.js.map +1 -1
  27. package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
  28. package/dist/components/pdf-editor/pdf-editor.js +1 -1
  29. package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
  30. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts +1 -0
  31. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.d.ts.map +1 -1
  32. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js +2 -2
  33. package/dist/components/pdf-fields-overlay/pdf-fields-overlay.js.map +1 -1
  34. package/dist/components/pdf-fields-overlay/pdf-overlay-field-generic.d.ts +9 -0
  35. package/dist/components/pdf-fields-overlay/pdf-overlay-field-generic.d.ts.map +1 -0
  36. package/dist/components/pdf-fields-overlay/pdf-overlay-field-generic.js +83 -0
  37. package/dist/components/pdf-fields-overlay/pdf-overlay-field-generic.js.map +1 -0
  38. package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts +1 -0
  39. package/dist/components/pdf-fields-overlay/pdf-overlay-field.d.ts.map +1 -1
  40. package/dist/components/pdf-fields-overlay/pdf-overlay-field.js +6 -3
  41. package/dist/components/pdf-fields-overlay/pdf-overlay-field.js.map +1 -1
  42. package/dist/components/pdf-view/pdf-view-generic.d.ts +16 -0
  43. package/dist/components/pdf-view/pdf-view-generic.d.ts.map +1 -0
  44. package/dist/components/pdf-view/pdf-view-generic.js +68 -0
  45. package/dist/components/pdf-view/pdf-view-generic.js.map +1 -0
  46. package/dist/components/pdf-view/pdf-view.d.ts.map +1 -1
  47. package/dist/components/pdf-view/pdf-view.js +2 -1
  48. package/dist/components/pdf-view/pdf-view.js.map +1 -1
  49. package/dist/components/shared/index.d.ts +2 -0
  50. package/dist/components/shared/index.d.ts.map +1 -0
  51. package/dist/components/shared/index.js +2 -0
  52. package/dist/components/shared/index.js.map +1 -0
  53. package/dist/components/shared/inline-editable.d.ts +8 -0
  54. package/dist/components/shared/inline-editable.d.ts.map +1 -0
  55. package/dist/components/shared/inline-editable.js +17 -0
  56. package/dist/components/shared/inline-editable.js.map +1 -0
  57. package/dist/constants/field.constants.d.ts +8 -1
  58. package/dist/constants/field.constants.d.ts.map +1 -1
  59. package/dist/constants/field.constants.js +23 -0
  60. package/dist/constants/field.constants.js.map +1 -1
  61. package/dist/constants/menu-group.d.ts.map +1 -1
  62. package/dist/constants/menu-group.js +6 -0
  63. package/dist/constants/menu-group.js.map +1 -1
  64. package/dist/hooks/usePdfFieldDnD.d.ts.map +1 -1
  65. package/dist/hooks/usePdfFieldDnD.js +80 -20
  66. package/dist/hooks/usePdfFieldDnD.js.map +1 -1
  67. package/dist/interface/types.d.ts +24 -2
  68. package/dist/interface/types.d.ts.map +1 -1
  69. package/dist/interface/types.js +1 -0
  70. package/dist/interface/types.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/components/display-conditions/display-condition.tsx +0 -3
  73. package/src/components/field-config-panel/field-config-panel.tsx +8 -1
  74. package/src/components/field-config-panel/table-configs.tsx +136 -0
  75. package/src/components/field-sidebar/field-menu-group.tsx +16 -27
  76. package/src/components/field-sidebar/field-sidebar.tsx +5 -1
  77. package/src/components/field-sidebar/generic-field-type-list.tsx +27 -0
  78. package/src/components/pdf-canvas/pdf-canvas.tsx +3 -0
  79. package/src/components/pdf-editor/pdf-editor.tsx +1 -0
  80. package/src/components/pdf-fields-overlay/pdf-fields-overlay.tsx +3 -0
  81. package/src/components/pdf-fields-overlay/pdf-overlay-field-generic.tsx +188 -0
  82. package/src/components/pdf-fields-overlay/pdf-overlay-field.tsx +11 -1
  83. package/src/components/pdf-view/pdf-view-generic.tsx +129 -0
  84. package/src/components/pdf-view/pdf-view.tsx +4 -0
  85. package/src/components/shared/index.ts +1 -0
  86. package/src/components/shared/inline-editable.tsx +47 -0
  87. package/src/constants/field.constants.ts +27 -0
  88. package/src/constants/menu-group.ts +6 -0
  89. package/src/hooks/usePdfFieldDnD.ts +97 -27
  90. package/src/interface/types.ts +27 -1
  91. package/src/styles/index.css +1 -0
  92. package/src/styles/inline-editable.css +20 -0
  93. package/src/styles/pdf-field-overlay.css +31 -0
  94. package/src/styles/variables.css +6 -0
@@ -1,9 +1,85 @@
1
1
  import { useCallback, useRef, useState } from 'react';
2
2
  import { v4 as uuidv4 } from 'uuid';
3
- import { FIELD_CONSTANTS, FILLABLE_FIELD_DEFAULT_SIZES } from '../constants';
3
+ import { FIELD_CONSTANTS, FILLABLE_FIELD_DEFAULT_SIZES, GENERIC_FIELD_DEFAULT_SIZES, GENERIC_FIELD_TABLE_ROW_HEIGHT, } from '../constants';
4
4
  import { FieldTypeEnum, } from '../interface/types';
5
5
  import { calculateDropCoordinates, generateESignPath, generateFillablePath, isDragOverCanvas, } from '../utils';
6
6
  const DRAG_OVER_THROTTLE_MS = 32; // ~30fps for drop effect updates
7
+ const initializeDroppedFieldByType = {
8
+ [FieldTypeEnum.eSign]: (base, option, recipientName) => ({
9
+ ...base,
10
+ recipient: recipientName,
11
+ path: generateESignPath(recipientName, option.subType),
12
+ }),
13
+ [FieldTypeEnum.fillable]: (base, option, recipientName) => {
14
+ const defaultSize = FILLABLE_FIELD_DEFAULT_SIZES[base.subType];
15
+ return {
16
+ ...base,
17
+ recipient: recipientName,
18
+ required: false,
19
+ path: generateFillablePath(recipientName, uuidv4()),
20
+ ...(defaultSize && {
21
+ width: defaultSize.width,
22
+ height: defaultSize.height,
23
+ }),
24
+ };
25
+ },
26
+ [FieldTypeEnum.calculated]: base => ({
27
+ ...base,
28
+ path: base.id,
29
+ }),
30
+ [FieldTypeEnum.dataModel]: base => base,
31
+ [FieldTypeEnum.generic]: base => {
32
+ const defaultSize = GENERIC_FIELD_DEFAULT_SIZES[base.subType];
33
+ if (base.subType === 'text') {
34
+ return {
35
+ ...base,
36
+ x: 0,
37
+ data: {
38
+ value: 'This is a new Text block.',
39
+ },
40
+ ...(defaultSize && {
41
+ width: defaultSize.width,
42
+ height: defaultSize.height,
43
+ }),
44
+ };
45
+ }
46
+ return {
47
+ ...base,
48
+ ...(defaultSize && {
49
+ width: defaultSize.width,
50
+ height: defaultSize.height,
51
+ }),
52
+ x: 0,
53
+ data: {
54
+ showHeader: true,
55
+ header: {
56
+ height: GENERIC_FIELD_TABLE_ROW_HEIGHT,
57
+ cells: [
58
+ {
59
+ value: 'id',
60
+ },
61
+ {
62
+ value: 'username',
63
+ },
64
+ ],
65
+ },
66
+ body: [
67
+ {
68
+ height: GENERIC_FIELD_TABLE_ROW_HEIGHT,
69
+ cells: [
70
+ {
71
+ value: '124',
72
+ },
73
+ {
74
+ value: 'test@gmail.com',
75
+ },
76
+ ],
77
+ },
78
+ ],
79
+ },
80
+ };
81
+ },
82
+ };
7
83
  export const usePdfFieldDnD = ({ fields, onFieldsChange, onSelectField, pdfWrapperRef, recipients, }) => {
8
84
  const [draggedFieldOption, setDraggedFieldOption] = useState(null);
9
85
  const lastDragOverTimeRef = useRef(0);
@@ -50,7 +126,8 @@ export const usePdfFieldDnD = ({ fields, onFieldsChange, onSelectField, pdfWrapp
50
126
  setDraggedFieldOption(null);
51
127
  return;
52
128
  }
53
- const newField = {
129
+ const recipientName = (_b = (_a = recipients[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
130
+ const baseField = {
54
131
  id: uuidv4(),
55
132
  type: draggedFieldOption.type,
56
133
  subType: draggedFieldOption.subType,
@@ -62,24 +139,7 @@ export const usePdfFieldDnD = ({ fields, onFieldsChange, onSelectField, pdfWrapp
62
139
  height: FIELD_CONSTANTS.defaultHeight,
63
140
  path: draggedFieldOption.path,
64
141
  };
65
- const recipientName = (_b = (_a = recipients[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
66
- if (newField.type === FieldTypeEnum.eSign) {
67
- newField.recipient = recipientName;
68
- newField.path = generateESignPath(recipientName, draggedFieldOption.subType);
69
- }
70
- if (newField.type === FieldTypeEnum.fillable) {
71
- const defaultSize = FILLABLE_FIELD_DEFAULT_SIZES[newField.subType];
72
- newField.recipient = recipientName;
73
- newField.required = false;
74
- newField.path = generateFillablePath(recipientName, uuidv4());
75
- if (defaultSize) {
76
- newField.width = defaultSize.width;
77
- newField.height = defaultSize.height;
78
- }
79
- }
80
- if (newField.type === FieldTypeEnum.calculated) {
81
- newField.path = newField.id;
82
- }
142
+ const newField = initializeDroppedFieldByType[baseField.type](baseField, draggedFieldOption, recipientName);
83
143
  onFieldsChange([...fields, newField]);
84
144
  onSelectField(newField.id);
85
145
  setDraggedFieldOption(null);
@@ -1 +1 @@
1
- {"version":3,"file":"usePdfFieldDnD.js","sourceRoot":"","sources":["../../src/hooks/usePdfFieldDnD.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePdfFieldDnD.js","sourceRoot":"","sources":["../../src/hooks/usePdfFieldDnD.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ export declare enum FieldTypeEnum {
2
2
  dataModel = "dataModel",
3
3
  eSign = "eSign",
4
4
  fillable = "fillable",
5
- calculated = "calculated"
5
+ calculated = "calculated",
6
+ generic = "generic"
6
7
  }
7
8
  export declare enum ESignFieldType {
8
9
  signature = "signature",
@@ -11,7 +12,27 @@ export declare enum ESignFieldType {
11
12
  fullName = "fullName"
12
13
  }
13
14
  export type FillableFieldType = 'text' | 'date' | 'checkbox' | 'radio' | 'number';
14
- export type PdfFieldSubType = FillableFieldType | ESignFieldType;
15
+ export type GenericFieldType = 'table' | 'text';
16
+ export type PdfFieldSubType = FillableFieldType | ESignFieldType | GenericFieldType;
17
+ export interface GenericFieldTableDataType {
18
+ showHeader: boolean;
19
+ header: {
20
+ height: number;
21
+ cells: {
22
+ value: string;
23
+ }[];
24
+ };
25
+ body: {
26
+ height: number;
27
+ cells: {
28
+ value: string;
29
+ }[];
30
+ }[];
31
+ }
32
+ export interface GenericFieldTextDataType {
33
+ value: string;
34
+ }
35
+ export type FieldDataType = GenericFieldTableDataType | GenericFieldTextDataType;
15
36
  export interface DisplayConditionState {
16
37
  behavior: 'show' | 'hide';
17
38
  groups: DisplayConditionGroup[];
@@ -42,6 +63,7 @@ export interface PdfField {
42
63
  path?: string;
43
64
  recipient?: string;
44
65
  description?: string;
66
+ data?: FieldDataType;
45
67
  formula?: StructuredFormula;
46
68
  formulaFormat?: CalculatedFieldFormat;
47
69
  displayCondition?: DisplayConditionState | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export var FieldTypeEnum;
4
4
  FieldTypeEnum["eSign"] = "eSign";
5
5
  FieldTypeEnum["fillable"] = "fillable";
6
6
  FieldTypeEnum["calculated"] = "calculated";
7
+ FieldTypeEnum["generic"] = "generic";
7
8
  })(FieldTypeEnum || (FieldTypeEnum = {}));
8
9
  export var ESignFieldType;
9
10
  (function (ESignFieldType) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;AAC7B,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;AACzB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAwDD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAkGtD;;GAEG;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACxD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;CAC1C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE;CACnD,CAAC;AAMX,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interface/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,oCAAmB,CAAA;AACvB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAED,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;AACzB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAiFD,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAkGtD;;GAEG;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IACxD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACtD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;CAC1C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC9C,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5D,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE;CACnD,CAAC;AAMX,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-pdf-editor",
3
- "version": "1.24.0",
3
+ "version": "1.26.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",
@@ -17,9 +17,6 @@ export const DisplayCondition: FC<DisplayConditionProps> = ({
17
17
  }) => {
18
18
  const [open, setOpen] = useState(false);
19
19
 
20
- // TODO hide for prod
21
- return null;
22
-
23
20
  return (
24
21
  <Fragment>
25
22
  <Button
@@ -11,6 +11,7 @@ import {
11
11
  import { generateESignPath, generateFillablePath } from '../../utils';
12
12
  import { DisplayCondition } from '../display-conditions/display-condition';
13
13
  import { FormulaGenerator } from './formula-generator';
14
+ import { TableConfigs } from './table-configs';
14
15
 
15
16
  interface FieldConfigPanelProps {
16
17
  field: PdfField;
@@ -133,7 +134,9 @@ export const FieldConfigPanel: FC<FieldConfigPanelProps> = ({
133
134
  </Combobox.Content>
134
135
  </Combobox>
135
136
  )}
136
- <TextField label="Data Path" value={field.path} disabled />
137
+ {field.type !== FieldTypeEnum.generic && (
138
+ <TextField label="Data Path" value={field.path} disabled />
139
+ )}
137
140
  {field.type === FieldTypeEnum.fillable && field.subType !== 'checkbox' && (
138
141
  <Checkbox
139
142
  label="Required"
@@ -160,6 +163,10 @@ export const FieldConfigPanel: FC<FieldConfigPanelProps> = ({
160
163
  />
161
164
  )}
162
165
 
166
+ {field.type === FieldTypeEnum.generic && field.subType === 'table' && (
167
+ <TableConfigs field={field} onFieldConfigChange={onFieldConfigChange} />
168
+ )}
169
+
163
170
  <DisplayCondition
164
171
  onSave={onFieldConfigChange}
165
172
  documentFields={documentFields}
@@ -0,0 +1,136 @@
1
+ import { Button, Flex, Switch } from '@servicetitan/anvil2';
2
+ import { FC, Fragment } from 'react';
3
+ import { GENERIC_FIELD_TABLE_ROW_HEIGHT } from '../../constants';
4
+ import { GenericFieldTableDataType, PdfField } from '../../interface/types';
5
+
6
+ interface TableConfigsProps {
7
+ field: PdfField;
8
+ onFieldConfigChange(updates: Partial<PdfField>): void;
9
+ }
10
+ export const TableConfigs: FC<TableConfigsProps> = ({ field, onFieldConfigChange }) => {
11
+ const data = field.data as GenericFieldTableDataType;
12
+
13
+ const handleClickAddRow = () => {
14
+ const newRow = {
15
+ height: GENERIC_FIELD_TABLE_ROW_HEIGHT,
16
+ cells: data.header.cells.map(() => ({ value: '' })),
17
+ };
18
+ onFieldConfigChange({
19
+ ...field,
20
+ height: field.height + GENERIC_FIELD_TABLE_ROW_HEIGHT,
21
+ data: {
22
+ ...data,
23
+ body: [...data.body, newRow],
24
+ },
25
+ });
26
+ };
27
+
28
+ const handleClickRemoveRow = () => {
29
+ const removedRow = data.body[data.body.length - 1];
30
+ onFieldConfigChange({
31
+ ...field,
32
+ height: field.height - removedRow.height,
33
+ data: {
34
+ ...data,
35
+ body: data.body.slice(0, -1),
36
+ },
37
+ });
38
+ };
39
+
40
+ const handleClickAddCell = () => {
41
+ onFieldConfigChange({
42
+ ...field,
43
+ data: {
44
+ ...data,
45
+ header: {
46
+ ...data.header,
47
+ cells: [...data.header.cells, { value: '' }],
48
+ },
49
+ body: data.body.map(row => ({
50
+ ...row,
51
+ cells: [...row.cells, { value: '' }],
52
+ })),
53
+ },
54
+ });
55
+ };
56
+
57
+ const handleClickRemoveCell = () => {
58
+ if (data.header.cells.length <= 1) {
59
+ return;
60
+ }
61
+ onFieldConfigChange({
62
+ ...field,
63
+ data: {
64
+ ...data,
65
+ header: {
66
+ ...data.header,
67
+ cells: data.header.cells.slice(0, -1),
68
+ },
69
+ body: data.body.map(row => ({
70
+ ...row,
71
+ cells: row.cells.slice(0, -1),
72
+ })),
73
+ },
74
+ });
75
+ };
76
+ return (
77
+ <Fragment>
78
+ <Switch
79
+ checked={data.showHeader}
80
+ onChange={(_e, { checked }) => {
81
+ onFieldConfigChange({
82
+ ...field,
83
+ height: field.height + (checked ? 40 : -40),
84
+ data: {
85
+ ...data,
86
+ showHeader: checked,
87
+ },
88
+ });
89
+ }}
90
+ label="Enable Header"
91
+ />
92
+ <Flex gap="2" justifyContent="space-between" alignItems="center">
93
+ Columns
94
+ <Flex gap="1">
95
+ <Button
96
+ size="small"
97
+ disabled={data.header.cells.length <= 1}
98
+ appearance="secondary"
99
+ onClick={handleClickRemoveCell}
100
+ >
101
+ -
102
+ </Button>
103
+ <Button
104
+ size="small"
105
+ disabled={data.header.cells.length >= 8}
106
+ appearance="secondary"
107
+ onClick={handleClickAddCell}
108
+ >
109
+ +
110
+ </Button>
111
+ </Flex>
112
+ </Flex>
113
+ <Flex gap="2" justifyContent="space-between" alignItems="center">
114
+ Rows
115
+ <Flex gap="1">
116
+ <Button
117
+ size="small"
118
+ disabled={data.body.length <= 1}
119
+ appearance="secondary"
120
+ onClick={handleClickRemoveRow}
121
+ >
122
+ -
123
+ </Button>
124
+ <Button
125
+ size="small"
126
+ disabled={data.body.length >= 50}
127
+ appearance="secondary"
128
+ onClick={handleClickAddRow}
129
+ >
130
+ +
131
+ </Button>
132
+ </Flex>
133
+ </Flex>
134
+ </Fragment>
135
+ );
136
+ };
@@ -1,6 +1,6 @@
1
1
  import { Flex, Icon, Text } from '@servicetitan/anvil2';
2
2
  import { FC } from 'react';
3
- import { MenuGroupModel } from '../../constants/menu-group';
3
+ import { MenuGroupModel } from '../../constants';
4
4
  import { FieldTypeEnum } from '../../interface/types';
5
5
 
6
6
  interface FieldMenuGroupProps {
@@ -16,32 +16,21 @@ export const FieldMenuGroup: FC<FieldMenuGroupProps> = ({
16
16
  }) => {
17
17
  return (
18
18
  <Flex className="dte-field-sidebar-menu" shrink={0} direction="column" gap="3">
19
- {menuGroups
20
- // TODO filter out calculated for prod
21
- .filter(mg => mg.key !== FieldTypeEnum.calculated)
22
- .map(({ key, label, svgIcon }) => (
23
- <Flex
24
- key={key}
25
- alignItems="center"
26
- justifyContent="center"
27
- direction="column"
28
- className={`dte-field-sidebar-menu-item cursor-pointer ${key === activeFieldKey ? '--active' : ''}`}
29
- onClick={() => onClickMenu(key)}
30
- >
31
- <Icon
32
- svg={svgIcon}
33
- size="large"
34
- className="dte-field-sidebar-menu-item-icon"
35
- />
36
- <Text
37
- variant="body"
38
- size="small"
39
- className="dte-field-sidebar-menu-item-text"
40
- >
41
- {label}
42
- </Text>
43
- </Flex>
44
- ))}
19
+ {menuGroups.map(({ key, label, svgIcon }) => (
20
+ <Flex
21
+ key={key}
22
+ alignItems="center"
23
+ justifyContent="center"
24
+ direction="column"
25
+ className={`dte-field-sidebar-menu-item cursor-pointer ${key === activeFieldKey ? '--active' : ''}`}
26
+ onClick={() => onClickMenu(key)}
27
+ >
28
+ <Icon svg={svgIcon} size="large" className="dte-field-sidebar-menu-item-icon" />
29
+ <Text variant="body" size="small" className="dte-field-sidebar-menu-item-text">
30
+ {label}
31
+ </Text>
32
+ </Flex>
33
+ ))}
45
34
  </Flex>
46
35
  );
47
36
  };
@@ -2,7 +2,7 @@ import { Button, Flex, Icon, Text } from '@servicetitan/anvil2';
2
2
  import IconMenuOpen from '@servicetitan/anvil2/assets/icons/material/round/menu_open.svg';
3
3
 
4
4
  import { FC, useState } from 'react';
5
- import { menuGroups } from '../../constants/menu-group';
5
+ import { menuGroups } from '../../constants';
6
6
  import { useToggle } from '../../hooks';
7
7
  import { DataModelFieldGroup, FieldTypeEnum, FieldTypeOption } from '../../interface/types';
8
8
  import { CalculatedFieldTypeList } from './calculated-field-type-list';
@@ -10,6 +10,7 @@ import { DataModelFieldTypeList } from './data-model-field-type-list';
10
10
  import { ESignFieldTypeList } from './e-sign-field-type-list';
11
11
  import { FieldMenuGroup } from './field-menu-group';
12
12
  import { FillableFieldTypeList } from './fillable-field-type-list';
13
+ import { GenericFieldTypeList } from './generic-field-type-list';
13
14
 
14
15
  interface FieldSidebarProps {
15
16
  dataModelGroups?: DataModelFieldGroup[];
@@ -63,6 +64,9 @@ export const FieldSidebar: FC<FieldSidebarProps> = ({
63
64
  {activeFieldType === FieldTypeEnum.calculated && (
64
65
  <CalculatedFieldTypeList onDragStart={onDragStart} onDragEnd={onDragEnd} />
65
66
  )}
67
+ {activeFieldType === FieldTypeEnum.generic && (
68
+ <GenericFieldTypeList onDragStart={onDragStart} onDragEnd={onDragEnd} />
69
+ )}
66
70
  </Flex>
67
71
  </Flex>
68
72
  <Button
@@ -0,0 +1,27 @@
1
+ import { FC, Fragment } from 'react';
2
+ import { GENERIC_FIELD_TYPES } from '../../constants';
3
+ import { FieldTypeOption } from '../../interface/types';
4
+ import { FieldType } from './field-type';
5
+
6
+ interface GenericFieldTypeListProps {
7
+ onDragStart(fieldOption: FieldTypeOption): void;
8
+ onDragEnd(): void;
9
+ }
10
+
11
+ export const GenericFieldTypeList: FC<GenericFieldTypeListProps> = ({ onDragEnd, onDragStart }) => {
12
+ return (
13
+ <Fragment>
14
+ {GENERIC_FIELD_TYPES.map(fieldOption => {
15
+ const key = `${fieldOption.type}-${fieldOption.path ?? fieldOption.label}`;
16
+ return (
17
+ <FieldType
18
+ key={key}
19
+ label={fieldOption.label}
20
+ onDragEnd={onDragEnd}
21
+ onDragStart={() => onDragStart(fieldOption)}
22
+ />
23
+ );
24
+ })}
25
+ </Fragment>
26
+ );
27
+ };
@@ -24,6 +24,7 @@ interface PdfCanvasProps {
24
24
  onFieldMove(fieldId: string, newX: number, newY: number, pageNumber: number): void;
25
25
  onFieldResize(fieldId: string, newWidth: number, newHeight: number, pageNumber: number): void;
26
26
  onDeselectField(): void;
27
+ onFieldConfigChange(updates: Partial<PdfField>): void;
27
28
  }
28
29
 
29
30
  export const PdfCanvas: FC<PdfCanvasProps> = ({
@@ -37,6 +38,7 @@ export const PdfCanvas: FC<PdfCanvasProps> = ({
37
38
  onDragOver,
38
39
  onDrop,
39
40
  onFieldClick,
41
+ onFieldConfigChange,
40
42
  onFieldMove,
41
43
  onFieldResize,
42
44
  onLoadSuccess,
@@ -79,6 +81,7 @@ export const PdfCanvas: FC<PdfCanvasProps> = ({
79
81
  <PdfFieldsOverlay
80
82
  fields={fields}
81
83
  errors={errors}
84
+ onFieldConfigChange={onFieldConfigChange}
82
85
  handleAddNewField={handleAddNewField}
83
86
  pdfWrapperRef={pdfWrapperRef}
84
87
  recipientsColors={recipientsColors}
@@ -109,6 +109,7 @@ export const PdfEditor: FC<PdfEditorProps> = ({
109
109
  onFieldMove={moveField}
110
110
  onFieldResize={resizeField}
111
111
  onDeselectField={deselectField}
112
+ onFieldConfigChange={updateField}
112
113
  />
113
114
  </Flex>
114
115
  </Flex>
@@ -8,6 +8,7 @@ interface PdfFieldsOverlayProps {
8
8
  errors: Record<string, string>;
9
9
  pdfWrapperRef: RefObject<HTMLDivElement>;
10
10
  recipientsColors: Record<string, string>;
11
+ onFieldConfigChange(updates: Partial<PdfField>): void;
11
12
  handleAddNewField(field: PdfField): void;
12
13
  onFieldClick(fieldId: string, e: MouseEvent): void;
13
14
  onFieldMove(fieldId: string, newX: number, newY: number, pageNumber: number): void;
@@ -19,6 +20,7 @@ export const PdfFieldsOverlay: FC<PdfFieldsOverlayProps> = ({
19
20
  fields,
20
21
  handleAddNewField,
21
22
  onFieldClick,
23
+ onFieldConfigChange,
22
24
  onFieldMove,
23
25
  onFieldResize,
24
26
  pdfWrapperRef,
@@ -31,6 +33,7 @@ export const PdfFieldsOverlay: FC<PdfFieldsOverlayProps> = ({
31
33
  <PdfOverlayField
32
34
  key={field.id}
33
35
  field={field}
36
+ onFieldConfigChange={onFieldConfigChange}
34
37
  error={errors[field.id]}
35
38
  handleAddNewField={handleAddNewField}
36
39
  onFieldMove={onFieldMove}