@servicetitan/dte-pdf-editor 1.40.0 → 1.42.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 (51) hide show
  1. package/dist/components/display-conditions/condition-group.d.ts +4 -1
  2. package/dist/components/display-conditions/condition-group.d.ts.map +1 -1
  3. package/dist/components/display-conditions/condition-group.js +6 -20
  4. package/dist/components/display-conditions/condition-group.js.map +1 -1
  5. package/dist/components/display-conditions/condition-groups-section.d.ts +2 -1
  6. package/dist/components/display-conditions/condition-groups-section.d.ts.map +1 -1
  7. package/dist/components/display-conditions/condition-groups-section.js +4 -9
  8. package/dist/components/display-conditions/condition-groups-section.js.map +1 -1
  9. package/dist/components/display-conditions/condition-row.d.ts.map +1 -1
  10. package/dist/components/display-conditions/condition-row.js +1 -1
  11. package/dist/components/display-conditions/condition-row.js.map +1 -1
  12. package/dist/components/display-conditions/display-condition-modal.d.ts.map +1 -1
  13. package/dist/components/display-conditions/display-condition-modal.js +41 -8
  14. package/dist/components/display-conditions/display-condition-modal.js.map +1 -1
  15. package/dist/components/field-config-panel/field-config-panel-overlay.d.ts +1 -0
  16. package/dist/components/field-config-panel/field-config-panel-overlay.d.ts.map +1 -1
  17. package/dist/components/field-config-panel/field-config-panel-overlay.js +2 -2
  18. package/dist/components/field-config-panel/field-config-panel-overlay.js.map +1 -1
  19. package/dist/components/field-config-panel/field-config-panel.d.ts +1 -0
  20. package/dist/components/field-config-panel/field-config-panel.d.ts.map +1 -1
  21. package/dist/components/field-config-panel/field-config-panel.js +2 -2
  22. package/dist/components/field-config-panel/field-config-panel.js.map +1 -1
  23. package/dist/components/field-sidebar/field-sidebar.d.ts +2 -1
  24. package/dist/components/field-sidebar/field-sidebar.d.ts.map +1 -1
  25. package/dist/components/field-sidebar/field-sidebar.js +9 -3
  26. package/dist/components/field-sidebar/field-sidebar.js.map +1 -1
  27. package/dist/components/pdf-editor/pdf-editor.d.ts +3 -1
  28. package/dist/components/pdf-editor/pdf-editor.d.ts.map +1 -1
  29. package/dist/components/pdf-editor/pdf-editor.js +2 -2
  30. package/dist/components/pdf-editor/pdf-editor.js.map +1 -1
  31. package/dist/constants/conditions.constants.d.ts +5 -0
  32. package/dist/constants/conditions.constants.d.ts.map +1 -1
  33. package/dist/constants/conditions.constants.js +5 -0
  34. package/dist/constants/conditions.constants.js.map +1 -1
  35. package/dist/interface/types.d.ts +0 -1
  36. package/dist/interface/types.d.ts.map +1 -1
  37. package/dist/utils/conditions/schema-data-points.utils.d.ts.map +1 -1
  38. package/dist/utils/conditions/schema-data-points.utils.js +0 -2
  39. package/dist/utils/conditions/schema-data-points.utils.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/components/display-conditions/condition-group.tsx +26 -53
  42. package/src/components/display-conditions/condition-groups-section.tsx +13 -27
  43. package/src/components/display-conditions/condition-row.tsx +0 -1
  44. package/src/components/display-conditions/display-condition-modal.tsx +78 -18
  45. package/src/components/field-config-panel/field-config-panel-overlay.tsx +3 -0
  46. package/src/components/field-config-panel/field-config-panel.tsx +10 -6
  47. package/src/components/field-sidebar/field-sidebar.tsx +11 -3
  48. package/src/components/pdf-editor/pdf-editor.tsx +7 -1
  49. package/src/constants/conditions.constants.ts +6 -0
  50. package/src/interface/types.ts +0 -1
  51. package/src/utils/conditions/schema-data-points.utils.ts +0 -2
@@ -3,4 +3,9 @@ export declare const defaultCondition: () => DisplayConditionSingle;
3
3
  export declare const defaultGroup: () => DisplayConditionGroup;
4
4
  export declare const defaultState: () => DisplayConditionState;
5
5
  export declare const MODAL_CONTENT_MAX_HEIGHT = "70vh";
6
+ /**
7
+ * Temporary product limit: the editor UI allows only this many rules (groups).
8
+ * The data model and evaluation still support multiple groups for existing templates.
9
+ */
10
+ export declare const MAX_DISPLAY_CONDITION_RULES_UI = 1;
6
11
  //# sourceMappingURL=conditions.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.constants.d.ts","sourceRoot":"","sources":["../../src/constants/conditions.constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,gBAAgB,QAAO,sBAKlC,CAAC;AAEH,eAAO,MAAM,YAAY,QAAO,qBAG9B,CAAC;AAEH,eAAO,MAAM,YAAY,QAAO,qBAG9B,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAS,CAAC"}
1
+ {"version":3,"file":"conditions.constants.d.ts","sourceRoot":"","sources":["../../src/constants/conditions.constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,gBAAgB,QAAO,sBAKlC,CAAC;AAEH,eAAO,MAAM,YAAY,QAAO,qBAG9B,CAAC;AAEH,eAAO,MAAM,YAAY,QAAO,qBAG9B,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC"}
@@ -14,4 +14,9 @@ export const defaultState = () => ({
14
14
  groups: [defaultGroup()],
15
15
  });
16
16
  export const MODAL_CONTENT_MAX_HEIGHT = '70vh';
17
+ /**
18
+ * Temporary product limit: the editor UI allows only this many rules (groups).
19
+ * The data model and evaluation still support multiple groups for existing templates.
20
+ */
21
+ export const MAX_DISPLAY_CONDITION_RULES_UI = 1;
17
22
  //# sourceMappingURL=conditions.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.constants.js","sourceRoot":"","sources":["../../src/constants/conditions.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAQpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAA2B,EAAE,CAAC,CAAC;IAC3D,YAAY,EAAE,EAAE;IAChB,EAAE,EAAE,MAAM,EAAE;IACZ,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,EAAE;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE,CAAC,CAAC;IACtD,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChC,EAAE,EAAE,MAAM,EAAE;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"conditions.constants.js","sourceRoot":"","sources":["../../src/constants/conditions.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAQpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAA2B,EAAE,CAAC,CAAC;IAC3D,YAAY,EAAE,EAAE;IAChB,EAAE,EAAE,MAAM,EAAE;IACZ,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,EAAE;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE,CAAC,CAAC;IACtD,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChC,EAAE,EAAE,MAAM,EAAE;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC"}
@@ -221,7 +221,6 @@ export declare const VALUE_LESS_OPERATORS: ConditionOperator[];
221
221
  export interface DataPointOption {
222
222
  fieldType: 'number' | 'string';
223
223
  fullKey: string;
224
- group: string;
225
224
  title: string;
226
225
  }
227
226
  export {};
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-data-points.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/conditions/schema-data-points.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EAEf,KAAK,QAAQ,EAEb,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;AA+C/B,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,eAAe,EAAE,CAG7F;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,GAC/B,eAAe,EAAE,CAkBnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,cAAc,EAAE,QAAQ,EAAE,GAAG,SAAS,GACvC,eAAe,EAAE,CAKnB"}
1
+ {"version":3,"file":"schema-data-points.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/conditions/schema-data-points.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EAEf,KAAK,QAAQ,EAEb,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;AA8C/B,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,eAAe,EAAE,CAG7F;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,GAC/B,eAAe,EAAE,CAiBnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,cAAc,EAAE,QAAQ,EAAE,GAAG,SAAS,GACvC,eAAe,EAAE,CAKnB"}
@@ -24,7 +24,6 @@ function walkSchema(schema, prefix, parentTitles) {
24
24
  result.push({
25
25
  fieldType,
26
26
  fullKey,
27
- group: fieldType === 'number' ? 'Numeric Fields' : 'Data Model',
28
27
  title: fullTitle || fullKey,
29
28
  });
30
29
  }
@@ -52,7 +51,6 @@ export function getDocumentFieldsDataPointOptions(fields) {
52
51
  result.push({
53
52
  fieldType,
54
53
  fullKey: f.path,
55
- group: 'Document Fields',
56
54
  title: f.label || f.path,
57
55
  });
58
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-data-points.utils.js","sourceRoot":"","sources":["../../../src/utils/conditions/schema-data-points.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,GAIhB,MAAM,uBAAuB,CAAC;AAE/B,SAAS,mBAAmB,CACxB,IAEe;;IAEf,OAAO,CACH,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,iBAAiB,MAAK,IAAI,IAAI,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,qBAAqB,MAAK,IAAI,CAC7F,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAChB,IAAgB;IAEhB,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CACf,MAAgC,EAChC,MAAc,EACd,YAAsB;;IAEtB,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAA,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAClD,MAAM,KAAK,GAAG,MAAC,IAA2B,CAAC,KAAK,mCAAI,GAAG,CAAC;QACxD,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAoB,EAAE,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC;gBACR,SAAS;gBACT,OAAO;gBACP,KAAK,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY;gBAC/D,KAAK,EAAE,SAAS,IAAI,OAAO;aAC9B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAgC;IACtE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC7C,MAA8B;IAE9B,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC/C,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC;YACR,SAAS;YACT,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI;SAC3B,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAC/B,MAAgC,EAChC,cAAsC;IAEtC,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,iCAAiC,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,eAAe,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"schema-data-points.utils.js","sourceRoot":"","sources":["../../../src/utils/conditions/schema-data-points.utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/dte-pdf-editor",
3
- "version": "1.40.0",
3
+ "version": "1.42.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",
@@ -1,4 +1,4 @@
1
- import { Button, Flex, SegmentedControl, Text } from '@servicetitan/anvil2';
1
+ import { Button, Flex, Text } from '@servicetitan/anvil2';
2
2
  import PlusIcon from '@servicetitan/anvil2/assets/icons/material/round/add.svg';
3
3
  import TrashIcon from '@servicetitan/anvil2/assets/icons/material/round/delete.svg';
4
4
  import { useCallback } from 'react';
@@ -12,31 +12,36 @@ import { ConditionRow } from './condition-row';
12
12
 
13
13
  export interface ConditionGroupProps {
14
14
  canDelete: boolean;
15
+ conditionJoinOperator: 'and' | 'or';
15
16
  dataPointOptions: DataPointOption[];
16
17
  group: DisplayConditionGroup;
17
18
  onDelete: () => void;
18
19
  onUpdate: (g: DisplayConditionGroup) => void;
19
20
  ruleIndex: number;
21
+ /** When 1, the UI hides the per-rule title (single-rule layout). */
22
+ totalRuleCount: number;
20
23
  }
21
24
 
22
25
  export function ConditionGroup({
23
26
  canDelete,
27
+ conditionJoinOperator,
24
28
  dataPointOptions,
25
29
  group,
26
30
  onDelete,
27
31
  onUpdate,
28
32
  ruleIndex,
33
+ totalRuleCount,
29
34
  }: Readonly<ConditionGroupProps>) {
30
35
  const addCondition = useCallback(() => {
31
36
  const newCondition: DisplayConditionSingle = {
32
37
  ...defaultCondition(),
33
- logicalOperator: 'and',
38
+ logicalOperator: conditionJoinOperator,
34
39
  };
35
40
  onUpdate({
36
41
  ...group,
37
42
  conditions: [...group.conditions, newCondition],
38
43
  });
39
- }, [group, onUpdate]);
44
+ }, [conditionJoinOperator, group, onUpdate]);
40
45
 
41
46
  const updateCondition = useCallback(
42
47
  (index: number, c: DisplayConditionSingle) => {
@@ -62,61 +67,29 @@ export function ConditionGroup({
62
67
  [group, onUpdate],
63
68
  );
64
69
 
65
- const handleLogicalOperatorChange = useCallback(
66
- (conditionIndex: number, value: string) => {
67
- const next = [...group.conditions];
68
- next[conditionIndex] = {
69
- ...next[conditionIndex],
70
- logicalOperator: value as 'and' | 'or',
71
- };
72
- onUpdate({ ...group, conditions: next });
73
- },
74
- [group, onUpdate],
75
- );
70
+ const showRuleHeading = totalRuleCount > 1;
76
71
 
77
72
  return (
78
73
  <Flex direction="column" gap="2" flex={1}>
79
- <Flex direction="row" alignItems="center" justifyContent="space-between" flex={1}>
80
- <Text size="medium" variant="body" style={{ fontWeight: 'bold' }}>
81
- Rule {ruleIndex + 1}
82
- </Text>
83
- {canDelete && (
84
- <Button
85
- appearance="ghost"
86
- aria-label="Delete rule"
87
- icon={{ before: TrashIcon }}
88
- size="large"
89
- onClick={onDelete}
90
- />
91
- )}
92
- </Flex>
93
- <Flex
94
- direction="column"
95
- gap="3"
96
- flex={1}
97
- style={{
98
- border: '1px solid #e0e0e0',
99
- borderRadius: 8,
100
- padding: 12,
101
- }}
102
- >
74
+ {showRuleHeading && (
75
+ <Flex direction="row" alignItems="center" justifyContent="space-between" flex={1}>
76
+ <Text size="medium" variant="body" style={{ fontWeight: 'bold' }}>
77
+ Rule {ruleIndex + 1}
78
+ </Text>
79
+ {canDelete && (
80
+ <Button
81
+ appearance="ghost"
82
+ aria-label="Delete rule"
83
+ icon={{ before: TrashIcon }}
84
+ size="large"
85
+ onClick={onDelete}
86
+ />
87
+ )}
88
+ </Flex>
89
+ )}
90
+ <Flex direction="column" gap="3" flex={1}>
103
91
  {group.conditions.map((c, i) => (
104
92
  <Flex key={c.id} direction="column" gap="3" style={{ padding: '8px 0' }}>
105
- {i > 0 && (
106
- <Flex justifyContent="center" alignItems="center" gap="2">
107
- <SegmentedControl
108
- selected={c.logicalOperator ?? 'and'}
109
- onChange={(v: string) => handleLogicalOperatorChange(i, v)}
110
- >
111
- <SegmentedControl.Segment value="and">
112
- And
113
- </SegmentedControl.Segment>
114
- <SegmentedControl.Segment value="or">
115
- Or
116
- </SegmentedControl.Segment>
117
- </SegmentedControl>
118
- </Flex>
119
- )}
120
93
  <ConditionRow
121
94
  canRemove
122
95
  condition={c}
@@ -1,9 +1,11 @@
1
- import { Button, Flex, SegmentedControl } from '@servicetitan/anvil2';
1
+ import { Button, Flex } from '@servicetitan/anvil2';
2
2
  import PlusIcon from '@servicetitan/anvil2/assets/icons/material/round/add.svg';
3
+ import { MAX_DISPLAY_CONDITION_RULES_UI } from '../../constants';
3
4
  import type { DataPointOption, DisplayConditionGroup } from '../../interface/types';
4
5
  import { ConditionGroup } from './condition-group';
5
6
 
6
7
  export interface ConditionGroupsSectionProps {
8
+ conditionJoinOperator: 'and' | 'or';
7
9
  dataPointOptions: DataPointOption[];
8
10
  groups: DisplayConditionGroup[];
9
11
  onAddGroup: () => void;
@@ -12,6 +14,7 @@ export interface ConditionGroupsSectionProps {
12
14
  }
13
15
 
14
16
  export function ConditionGroupsSection({
17
+ conditionJoinOperator,
15
18
  dataPointOptions,
16
19
  groups,
17
20
  onAddGroup,
@@ -22,42 +25,25 @@ export function ConditionGroupsSection({
22
25
  <Flex direction="column" gap="4">
23
26
  {groups.map((group, index) => (
24
27
  <Flex key={group.id} direction="column" gap="3">
25
- {index > 0 && (
26
- <Flex
27
- justifyContent="center"
28
- alignItems="center"
29
- gap="2"
30
- style={{ padding: '12px' }}
31
- >
32
- <SegmentedControl
33
- selected={group.logicalOperator ?? 'and'}
34
- onChange={(value: string) =>
35
- onUpdateGroup(index, {
36
- ...group,
37
- logicalOperator: value as 'and' | 'or',
38
- })
39
- }
40
- >
41
- <SegmentedControl.Segment value="and">And</SegmentedControl.Segment>
42
- <SegmentedControl.Segment value="or">Or</SegmentedControl.Segment>
43
- </SegmentedControl>
44
- </Flex>
45
- )}
46
28
  <ConditionGroup
47
29
  canDelete={groups.length > 1}
30
+ conditionJoinOperator={conditionJoinOperator}
48
31
  dataPointOptions={dataPointOptions}
49
32
  group={group}
50
33
  onDelete={() => onRemoveGroup(index)}
51
34
  onUpdate={g => onUpdateGroup(index, g)}
52
35
  ruleIndex={index}
36
+ totalRuleCount={groups.length}
53
37
  />
54
38
  </Flex>
55
39
  ))}
56
- <Flex justifyContent="center" flex={1} style={{ paddingTop: 8 }}>
57
- <Button appearance="secondary" icon={{ before: PlusIcon }} onClick={onAddGroup}>
58
- Add Rule
59
- </Button>
60
- </Flex>
40
+ {groups.length < MAX_DISPLAY_CONDITION_RULES_UI && (
41
+ <Flex justifyContent="center" flex={1} style={{ paddingTop: 8 }}>
42
+ <Button appearance="secondary" icon={{ before: PlusIcon }} onClick={onAddGroup}>
43
+ Add Rule
44
+ </Button>
45
+ </Flex>
46
+ )}
61
47
  </Flex>
62
48
  );
63
49
  }
@@ -100,7 +100,6 @@ export function ConditionRow({
100
100
  <Flex flex={1}>
101
101
  <Combobox
102
102
  flex={1}
103
- groupBy="group"
104
103
  itemToKey={(item: DataPointOption | null) => item?.fullKey ?? ''}
105
104
  itemToString={(item: DataPointOption | null) => item?.title ?? ''}
106
105
  items={dataPointOptions}
@@ -1,10 +1,45 @@
1
- import { Button, Dialog, Divider, Flex, SegmentedControl, Text } from '@servicetitan/anvil2';
1
+ import { Button, Chip, Dialog, Flex, SegmentedControl, Text } from '@servicetitan/anvil2';
2
2
  import { useCallback, useMemo, useState } from 'react';
3
3
  import { defaultGroup, defaultState, MODAL_CONTENT_MAX_HEIGHT } from '../../constants';
4
4
  import type { DisplayConditionState, PdfField, SchemaObject } from '../../interface/types';
5
5
  import { getDataPointOptions, isValidNumber } from '../../utils';
6
6
  import { ConditionGroupsSection } from './condition-groups-section';
7
7
 
8
+ type ConditionMatchType = 'and' | 'or';
9
+
10
+ const deriveConditionMatchType = (conditionState: DisplayConditionState): ConditionMatchType => {
11
+ for (let g = 0; g < conditionState.groups.length; g++) {
12
+ const group = conditionState.groups[g];
13
+ if (g > 0 && group.logicalOperator === 'or') {
14
+ return 'or';
15
+ }
16
+ for (let i = 1; i < group.conditions.length; i++) {
17
+ if (group.conditions[i]?.logicalOperator === 'or') {
18
+ return 'or';
19
+ }
20
+ }
21
+ }
22
+ return 'and';
23
+ };
24
+
25
+ const applyConditionMatchType = (
26
+ conditionState: DisplayConditionState,
27
+ matchType: ConditionMatchType,
28
+ ): DisplayConditionState => {
29
+ return {
30
+ ...conditionState,
31
+ groups: conditionState.groups.map((group, groupIndex) => ({
32
+ ...group,
33
+ ...(groupIndex > 0 ? { logicalOperator: matchType } : {}),
34
+ conditions: group.conditions.map((c, i) =>
35
+ i === 0
36
+ ? { ...c, logicalOperator: undefined }
37
+ : { ...c, logicalOperator: matchType },
38
+ ),
39
+ })),
40
+ };
41
+ };
42
+
8
43
  const BEHAVIOR_OPTIONS = [
9
44
  { label: 'Show', value: 'show' },
10
45
  { label: 'Hide', value: 'hide' },
@@ -30,6 +65,9 @@ export function DisplayConditionModal({
30
65
  const [state, setState] = useState<DisplayConditionState>(() =>
31
66
  initialState?.groups?.length ? initialState : defaultState(),
32
67
  );
68
+ const [matchType, setMatchType] = useState<ConditionMatchType>(() =>
69
+ deriveConditionMatchType(initialState?.groups?.length ? initialState : defaultState()),
70
+ );
33
71
 
34
72
  const dataPointOptions = useMemo(
35
73
  () => getDataPointOptions(schema, documentFields),
@@ -41,7 +79,8 @@ export function DisplayConditionModal({
41
79
  }, [onClose]);
42
80
 
43
81
  const handleSave = useCallback(() => {
44
- const hasValidGroup = state.groups.some(group =>
82
+ const finalState = applyConditionMatchType(state, matchType);
83
+ const hasValidGroup = finalState.groups.some(group =>
45
84
  group.conditions.some(
46
85
  c =>
47
86
  c.dataPointKey &&
@@ -51,12 +90,12 @@ export function DisplayConditionModal({
51
90
  ),
52
91
  );
53
92
  if (hasValidGroup) {
54
- onSave(state);
93
+ onSave(finalState);
55
94
  } else {
56
95
  onSave(null);
57
96
  }
58
97
  onClose();
59
- }, [onSave, state, onClose]);
98
+ }, [onSave, state, matchType, onClose]);
60
99
 
61
100
  const updateGroup = useCallback((index: number, group: DisplayConditionState['groups'][0]) => {
62
101
  setState(prev => {
@@ -86,14 +125,19 @@ export function DisplayConditionModal({
86
125
  const addGroup = useCallback(() => {
87
126
  setState(prev => ({
88
127
  ...prev,
89
- groups: [...prev.groups, { ...defaultGroup(), logicalOperator: 'and' }],
128
+ groups: [...prev.groups, { ...defaultGroup(), logicalOperator: matchType }],
90
129
  }));
91
- }, []);
130
+ }, [matchType]);
92
131
 
93
132
  const handleBehaviorChange = useCallback((behavior: DisplayConditionState['behavior']) => {
94
133
  setState(prev => ({ ...prev, behavior }));
95
134
  }, []);
96
135
 
136
+ const handleConditionMatchTypeChange = useCallback((value: ConditionMatchType) => {
137
+ setMatchType(value);
138
+ setState(prev => applyConditionMatchType(prev, value));
139
+ }, []);
140
+
97
141
  const canSave = useMemo(() => {
98
142
  for (const group of state.groups) {
99
143
  for (const condition of group.conditions) {
@@ -120,7 +164,7 @@ export function DisplayConditionModal({
120
164
 
121
165
  return (
122
166
  <Dialog open onClose={handleClose} size="xlarge">
123
- <Dialog.Header>Rules and Conditions</Dialog.Header>
167
+ <Dialog.Header>Conditions</Dialog.Header>
124
168
  <Dialog.Content>
125
169
  <Flex
126
170
  direction="column"
@@ -132,12 +176,34 @@ export function DisplayConditionModal({
132
176
  }}
133
177
  >
134
178
  <Flex direction="column" gap="3">
135
- <Text size="medium" variant="body" style={{ fontWeight: 'bold' }}>
136
- When conditions are met:
137
- </Text>
179
+ <Flex
180
+ direction="row"
181
+ alignItems="center"
182
+ gap="2"
183
+ style={{ flexWrap: 'wrap' }}
184
+ >
185
+ <Text size="medium" variant="body" style={{ fontWeight: 'bold' }}>
186
+ When
187
+ </Text>
188
+ <SegmentedControl
189
+ size="small"
190
+ selected={matchType}
191
+ onChange={handleConditionMatchTypeChange}
192
+ >
193
+ <SegmentedControl.Segment value="and">All</SegmentedControl.Segment>
194
+ <SegmentedControl.Segment value="or">Any</SegmentedControl.Segment>
195
+ </SegmentedControl>
196
+ <Text size="medium" variant="body" style={{ fontWeight: 'bold' }}>
197
+ of the
198
+ </Text>
199
+ <Chip label="IF" size="small" />
200
+ <Text size="medium" variant="body" style={{ fontWeight: 'bold' }}>
201
+ conditions are met
202
+ </Text>
203
+ </Flex>
138
204
  <Flex direction="row" alignItems="center" gap="3">
139
205
  <Text size="small" subdued variant="body">
140
- Select to show or hide this field.
206
+ Select to include or exclude selected template/file.
141
207
  </Text>
142
208
 
143
209
  <SegmentedControl
@@ -153,20 +219,14 @@ export function DisplayConditionModal({
153
219
  </SegmentedControl>
154
220
  </Flex>
155
221
  </Flex>
156
- <Divider />
157
222
  <ConditionGroupsSection
223
+ conditionJoinOperator={matchType}
158
224
  dataPointOptions={dataPointOptions}
159
225
  groups={state.groups}
160
226
  onAddGroup={addGroup}
161
227
  onRemoveGroup={removeGroup}
162
228
  onUpdateGroup={updateGroup}
163
229
  />
164
- {!canSave && (
165
- <Text size="small" subdued variant="body">
166
- Complete each condition before saving. Data point and value are
167
- required, and numeric fields must contain a valid number.
168
- </Text>
169
- )}
170
230
  </Flex>
171
231
  </Dialog.Content>
172
232
  <Dialog.Footer sticky>
@@ -10,6 +10,7 @@ interface FieldConfigPanelOverlayProps {
10
10
  documentFields?: PdfField[];
11
11
  selectedField: PdfField;
12
12
  recipients?: RecipientInfo[];
13
+ hideConditionalLogic?: boolean;
13
14
  onFieldConfigChange(updates: Partial<PdfField>): void;
14
15
  onDeleteField(): void;
15
16
  onDeselectField?(): void;
@@ -18,6 +19,7 @@ interface FieldConfigPanelOverlayProps {
18
19
  export const FieldConfigPanelOverlay: FC<FieldConfigPanelOverlayProps> = ({
19
20
  dataModel,
20
21
  documentFields = [],
22
+ hideConditionalLogic,
21
23
  onDeleteField,
22
24
  onDeselectField,
23
25
  onFieldConfigChange,
@@ -50,6 +52,7 @@ export const FieldConfigPanelOverlay: FC<FieldConfigPanelOverlayProps> = ({
50
52
  recipients={recipients}
51
53
  onFieldConfigChange={onFieldConfigChange}
52
54
  onDeleteField={onDeleteField}
55
+ hideConditionalLogic={hideConditionalLogic}
53
56
  />
54
57
  </div>
55
58
  </Flex>
@@ -19,6 +19,7 @@ interface FieldConfigPanelProps {
19
19
  /** All fields on the document (e.g., for a formula builder fillable section). */
20
20
  documentFields?: PdfField[];
21
21
  recipients?: RecipientInfo[];
22
+ hideConditionalLogic?: boolean;
22
23
  onDeleteField(): void;
23
24
  onFieldConfigChange(updates: Partial<PdfField>): void;
24
25
  }
@@ -27,6 +28,7 @@ export const FieldConfigPanel: FC<FieldConfigPanelProps> = ({
27
28
  dataModel,
28
29
  documentFields = [],
29
30
  field,
31
+ hideConditionalLogic = false,
30
32
  onDeleteField,
31
33
  onFieldConfigChange,
32
34
  recipients = [],
@@ -167,12 +169,14 @@ export const FieldConfigPanel: FC<FieldConfigPanelProps> = ({
167
169
  <TableConfigs field={field} onFieldConfigChange={onFieldConfigChange} />
168
170
  )}
169
171
 
170
- <DisplayCondition
171
- onSave={onFieldConfigChange}
172
- documentFields={documentFields}
173
- schema={dataModel}
174
- initialState={field.displayCondition ?? undefined}
175
- />
172
+ {!hideConditionalLogic && (
173
+ <DisplayCondition
174
+ onSave={onFieldConfigChange}
175
+ documentFields={documentFields}
176
+ schema={dataModel}
177
+ initialState={field.displayCondition ?? undefined}
178
+ />
179
+ )}
176
180
 
177
181
  <Textarea
178
182
  label="Description"
@@ -1,7 +1,6 @@
1
1
  import { Button, Flex, Icon, Text } from '@servicetitan/anvil2';
2
2
  import IconMenuOpen from '@servicetitan/anvil2/assets/icons/material/round/menu_open.svg';
3
-
4
- import { FC, useState } from 'react';
3
+ import { FC, useMemo, useState } from 'react';
5
4
  import { menuGroups } from '../../constants';
6
5
  import { useToggle } from '../../hooks';
7
6
  import { DataModelFieldGroup, FieldTypeEnum, FieldTypeOption } from '../../interface/types';
@@ -14,12 +13,14 @@ import { GenericFieldTypeList } from './generic-field-type-list';
14
13
 
15
14
  interface FieldSidebarProps {
16
15
  dataModelGroups?: DataModelFieldGroup[];
16
+ hideFields?: FieldTypeEnum[];
17
17
  onDragEnd(): void;
18
18
  onDragStart(fieldOption: FieldTypeOption): void;
19
19
  }
20
20
 
21
21
  export const FieldSidebar: FC<FieldSidebarProps> = ({
22
22
  dataModelGroups = [],
23
+ hideFields,
23
24
  onDragEnd,
24
25
  onDragStart,
25
26
  }) => {
@@ -31,10 +32,17 @@ export const FieldSidebar: FC<FieldSidebarProps> = ({
31
32
  open();
32
33
  };
33
34
 
35
+ const filteredMenuGroups = useMemo(() => {
36
+ if (hideFields?.length) {
37
+ return menuGroups.filter(menuGroup => !hideFields.includes(menuGroup.key));
38
+ }
39
+ return menuGroups;
40
+ }, [hideFields]);
41
+
34
42
  return (
35
43
  <Flex className="dte-field-sidebar-container skeleton-item">
36
44
  <FieldMenuGroup
37
- menuGroups={menuGroups}
45
+ menuGroups={filteredMenuGroups}
38
46
  onClickMenu={handleActiveFieldTypeChange}
39
47
  activeFieldKey={activeFieldType}
40
48
  />
@@ -1,7 +1,7 @@
1
1
  import { Flex } from '@servicetitan/anvil2';
2
2
  import { FC, ReactNode, useCallback, useMemo, useRef } from 'react';
3
3
  import { usePdfFieldDnD, usePdfFieldSelection } from '../../hooks';
4
- import { PdfField, RecipientInfo, SchemaObject } from '../../interface/types';
4
+ import { FieldTypeEnum, PdfField, RecipientInfo, SchemaObject } from '../../interface/types';
5
5
  import { extractGroupedFieldsFromDataModel, mapColorsToRecipients } from '../../utils';
6
6
  import { FieldConfigPanelOverlay } from '../field-config-panel/field-config-panel-overlay';
7
7
  import { FieldSidebar } from '../field-sidebar/field-sidebar';
@@ -18,6 +18,8 @@ export interface PdfEditorProps {
18
18
  dataModel?: SchemaObject;
19
19
  recipients?: RecipientInfo[];
20
20
  fields?: PdfField[];
21
+ hideFields?: FieldTypeEnum[];
22
+ hideConditionalLogic?: boolean;
21
23
  onLoadSuccess?(numPages: number): void;
22
24
  onFieldsChange(fields: PdfField[]): void;
23
25
  }
@@ -27,6 +29,8 @@ export const PdfEditor: FC<PdfEditorProps> = ({
27
29
  errorPlaceholder,
28
30
  errors = {},
29
31
  fields = [],
32
+ hideConditionalLogic,
33
+ hideFields,
30
34
  loading = false,
31
35
  loadingPlaceholder,
32
36
  onFieldsChange,
@@ -78,11 +82,13 @@ export const PdfEditor: FC<PdfEditorProps> = ({
78
82
  onDeleteField={deleteSelectedField}
79
83
  recipients={recipients}
80
84
  onDeselectField={deselectField}
85
+ hideConditionalLogic={hideConditionalLogic}
81
86
  />
82
87
  )}
83
88
 
84
89
  <Flex className="dte-pdf-editor-sidebar-container">
85
90
  <FieldSidebar
91
+ hideFields={hideFields}
86
92
  dataModelGroups={dataModelGroups}
87
93
  onDragStart={pdfFieldDnd.handleDragStart}
88
94
  onDragEnd={pdfFieldDnd.handleDragEnd}